proud-dentist-22844
05/13/2021, 3:06 PMhundreds-father-404
05/13/2021, 3:13 PMhappy-kitchen-89482
05/13/2021, 3:49 PMhappy-kitchen-89482
05/13/2021, 3:51 PMhundreds-father-404
05/13/2021, 3:52 PMhat assumes you have postgres installed on your machine of courseReasonable for a private org's codebase, possibly not as reasonable for an open source project. But perhaps the experience could be somewhat improved by eagerly erroring when it's not yet installed and giving instructions
happy-kitchen-89482
05/13/2021, 3:52 PMhappy-kitchen-89482
05/13/2021, 3:53 PMhappy-kitchen-89482
05/13/2021, 3:54 PMhappy-kitchen-89482
05/13/2021, 3:55 PMhappy-kitchen-89482
05/13/2021, 3:57 PMhappy-kitchen-89482
05/13/2021, 3:57 PMhappy-kitchen-89482
05/13/2021, 3:57 PMhappy-kitchen-89482
05/13/2021, 3:58 PMproud-dentist-22844
05/13/2021, 3:58 PMhappy-kitchen-89482
05/13/2021, 3:58 PMproud-dentist-22844
05/13/2021, 4:04 PM> that assumes you have postgres installed on your machine of course
Reasonable for a private org's codebase, possibly not as reasonable for an open source project. But perhaps the experience could be somewhat improved by eagerly erroring when it's not yet installed and giving instructionsOoh, yeah. Erroring out with instructions would be a very good experience. Then the instructions could be tailored to the active platform (CentOS, Ubuntu, Gentoo (because that's what I like to use), Mac OS X, ...)
proud-dentist-22844
05/13/2021, 4:08 PMproud-dentist-22844
05/13/2021, 4:12 PMproud-dentist-22844
05/13/2021, 4:19 PMa pool of running services and each remote invocation is assigned one from the pool
We already do slot management like this for local concurrency, we could extend it to remote
PANTS_CONCURRENCY_SLOT=<some small integer>
your code can use that to pick a pool service to talk to, no matter where it runs, assuming it can access that service over the networkSo, remote execution in this way would require extra infrastructure to provide those pooled resources. The REAPI service wouldn't provide that itself.
If the services have to be local to the machine the process is executing on, then concurrency isn't an issue but setup isThis is where I imagine a pants plugin might come in? Do the pants plugins get sent over REAPI? Or would there have to be some kind of dependency on a script that would get executed to setup the REAPI environment before running the target (eg) pytest command?
proud-dentist-22844
05/13/2021, 4:22 PMenough-analyst-54434
05/13/2021, 5:19 PMDo the pants plugins get sent over REAPI?The REAPI only gets sent the description of a process to run: {args, env, CWD & an optional input blob that gets materialized as the file system tree in CWD on the remote machine} and a description of the output to capture (blob paths).
enough-analyst-54434
05/13/2021, 5:20 PMproud-dentist-22844
05/13/2021, 5:39 PMenough-analyst-54434
05/13/2021, 5:54 PMhappy-kitchen-89482
05/13/2021, 6:45 PMproud-dentist-22844
05/13/2021, 7:02 PMproud-dentist-22844
05/13/2021, 7:04 PMhundreds-father-404
05/13/2021, 7:07 PM--test-fail-fast
option, which could be a useful feature in general
Only, I'm not sure you'd want that permanently toggled for your repo. I personally really like seeing all my test failures when iteratingproud-dentist-22844
05/13/2021, 7:09 PMhappy-kitchen-89482
05/13/2021, 7:10 PMhappy-kitchen-89482
05/13/2021, 7:10 PMhundreds-father-404
05/13/2021, 7:14 PMOccassionally I'll turn on fail fastUsing Pytest options w/o Pants, right? Trying to determine if we should add
--test-fail-fast
to Pants. It's pretty trivial to implement (like 10 lines), only that again we're careful to add new features w/o vetting themproud-dentist-22844
05/13/2021, 7:17 PMenough-analyst-54434
05/13/2021, 7:33 PM./pants --fail-fast ...
for any combination of goals.