-
-
Notifications
You must be signed in to change notification settings - Fork 647
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support using scie-pants
for Pants dev work.
#18158
Conversation
As mentioned elsewhere, I don't necessary agree with this change. I think it would be great to have an easy way to run a released version of Pants on the Pants repo, and this is basically stomping on that possibility... |
OK. But I guess, for now at least, the default normal mode of operation is to run pants from source. So if we had an easy from the cli/env escape hatch to disable the Given also that there's still some open questions about what it would mean to run a pants release over the pants sources.. My idea are along the lines of |
I just think "pants runs a released version, ./pants" runs from sources" is pretty easy to grok. This seems to add nuance and complication, to where it's not clear what's happening. |
What's the motivation to run a released Pants on the pants source repo from the command line? For me, I'm starting to use I guess using a released Pants make sense to fmt lint check and maybe even test the Pants sources--when checking in the code primarily, so I can see the benefit if used from the pre-commit hook for instance. |
Running a release Pants, you'd still have to provide a version--and this doesn't even work (yet)
So I'm in favour of having a single well known entry point to running pants, and the fact that it in the pants repo delegates to With the above, there's a clear way to escape this (not to mention really easy to revert; and if you prefer to use |
@benjyw I'd appreciate a response to pantsbuild/scie-pants#33 (comment) |
With experimental_run_in_sandbox, or with future first-class Rust support, we could avoid rebuilding the engine all the time.
Yes, but you are also actually doing a different thing, so the different command makes sense? |
Anyway, I won't block this but I'm not a fan of it either. However, as long as we have a way to turn it off, I can live with it. |
I'm a fan of reducing the amount we need to build. But if I'm not mistaken we're only rebuilding the engine when there are changes to the rust code--and in that case I want it to be recompiled in order to be up-to-date, no?
Not really. I'm still running pants. Just in a different repo, and there really isn't any alternative modes of operation for Pants in the Pants repo. My issue is to keep track of which repo I'm currently working in--and using the correct incantation for it. That's something I'd like to not have to keep actively loaded in my mind when running Pants; it's distracting. (I've made the mistake numerous times already to run
Noted 📓 Thank you 🙏 I suspect it'll be "off by default" whenever there's a fix for how to specify which released version we want to run with when using a released Pants instead of running from sources, or otherwise a one line config change in |
You would build the rust code, but with a released pants, so that you can enjoy caching, and then invoke that built engine in from-sources pants. For example, today you rebuild the engine every time you switch between main and a release branch. |
My point is that running from sources and running from a release are two very different things, so you're not "just running pants" at all from my POV. You're specifically and deliberately running from sources. And making it obvious seems like a good thing to me, but as I said, not going to block this. |
Thank you, that clarifies it quite a bit. And work is under way to make the two co-exist well together. pantsbuild/scie-pants#98 Going forward, you may tweak your environment to have |
Ok, yeah - but that's positively space-aged right now and will not come until ~forever. The Pants repo is not pants and we need not kvetch about breaking people. These are special people who can handle it if we say, things have changed at some point in the future. AFAICT we never can make a decision in the Pants repo that closes anything off for the Pants repo - we all hack on it after all. This feels like a great instinct for Pants OSS product consumers and a mis-placed one for Pants developers themselves. That said, and as @kaos says - you can make |
Internal changes: * go: fix go vet test flakiness ([#18296](#18296) * Add default gha 1000:1000 user to GHA images. ([#18281](#18281)) * Don't specify interpreter_constraints when building the release pex. ([#18280](#18280)) * go: update pass-through `go test` options for Go v1.20 ([#18229](#18229)) * Fix release for /tmp on a seperate filesystem. ([#18272](#18272)) * upgrade to Rust v1.67.1 ([#18269](#18269)) * Prepare the 2.15.0rc6 release. ([#18263](#18263)) * Allow lambdas for `Field` and `Target` help ([#18248](#18248)) * Revert "Avoid bind-mounts for docker environments on macOS (#18225)" ([#18247](#18247)) * Refactors `experimental_shell_command`-related files to better separate concerns ([#18223](#18223)) * Prepare the 2.15.0rc5 release. ([#18224](#18224)) * Give dedicated threads names ([#18214](#18214)) * Prepare 2.15.0rc4. ([#18196](#18196)) * Remove the `boot_script` from `experimental_shell_command`/`experimental_run_in_sandbox` ([#18168](#18168)) * Adjusts `BinaryShims` to use native digest operations and `immutable_input_digests` ([#18184](#18184)) * go: update build tags check from latest go sources ([#18176](#18176)) * [internal] note dependency to `scie-pants` on "testing" env vars. ([#18170](#18170)) * go: allow coverage for standard library packages ([#18171](#18171)) * Support using `scie-pants` for Pants dev work. ([#18158](#18158)) * Prepare the 2.15.0rc3 release ([#18156](#18156)) * Splits up `shell_command.py` ([#18147](#18147))
Internal changes: * go: fix go vet test flakiness ([pantsbuild#18296](pantsbuild#18296) * Add default gha 1000:1000 user to GHA images. ([pantsbuild#18281](pantsbuild#18281)) * Don't specify interpreter_constraints when building the release pex. ([pantsbuild#18280](pantsbuild#18280)) * go: update pass-through `go test` options for Go v1.20 ([pantsbuild#18229](pantsbuild#18229)) * Fix release for /tmp on a seperate filesystem. ([pantsbuild#18272](pantsbuild#18272)) * upgrade to Rust v1.67.1 ([pantsbuild#18269](pantsbuild#18269)) * Prepare the 2.15.0rc6 release. ([pantsbuild#18263](pantsbuild#18263)) * Allow lambdas for `Field` and `Target` help ([pantsbuild#18248](pantsbuild#18248)) * Revert "Avoid bind-mounts for docker environments on macOS (pantsbuild#18225)" ([pantsbuild#18247](pantsbuild#18247)) * Refactors `experimental_shell_command`-related files to better separate concerns ([pantsbuild#18223](pantsbuild#18223)) * Prepare the 2.15.0rc5 release. ([pantsbuild#18224](pantsbuild#18224)) * Give dedicated threads names ([pantsbuild#18214](pantsbuild#18214)) * Prepare 2.15.0rc4. ([pantsbuild#18196](pantsbuild#18196)) * Remove the `boot_script` from `experimental_shell_command`/`experimental_run_in_sandbox` ([pantsbuild#18168](pantsbuild#18168)) * Adjusts `BinaryShims` to use native digest operations and `immutable_input_digests` ([pantsbuild#18184](pantsbuild#18184)) * go: update build tags check from latest go sources ([pantsbuild#18176](pantsbuild#18176)) * [internal] note dependency to `scie-pants` on "testing" env vars. ([pantsbuild#18170](pantsbuild#18170)) * go: allow coverage for standard library packages ([pantsbuild#18171](pantsbuild#18171)) * Support using `scie-pants` for Pants dev work. ([pantsbuild#18158](pantsbuild#18158)) * Prepare the 2.15.0rc3 release ([pantsbuild#18156](pantsbuild#18156)) * Splits up `shell_command.py` ([pantsbuild#18147](pantsbuild#18147))
In prep for pantsbuild/scie-pants#75
This allow us to run
pants ...
instead of./pants ...
to run Pants from sources in the Pants repo, once the above PR has been merged and released.