Hi! I've been setting up our repo with pants v1 fo...
# general
Hi! I've been setting up our repo with pants v1 for scala. I like it quite a lot, I am eager to be able to use v2 😉 . In the meantime, I am trying to use the scalafmt task but it doesn't seem to be picking up my .scalafmt.conf and applying it to files. Ideally I would like the fmt task to always run on compile to enforce consistent formatting across the code base. An I am not sure how to do that, some of the logs on the formating task below
Copy code
16:41:08 [DEBUG] pants.engine.internals.scheduler:pid=68013: computed 1 nodes in 0.000809 seconds. there are 374 total nodes.

               Executing tasks in goals: bootstrap -> lint16:41:08 [DEBUG] pants.process.lock:pid=68013: acquiring lock: <pants.process.lock.OwnerPrintingInterProcessFileLock object at 0x1105a1c10>

11:41:08 00:01   [bootstrap]
11:41:08 00:01     [substitute-aliased-targets]
                   expanding //:platform
11:41:08 00:01     [jar-dependency-management]16:41:08 [DEBUG] pants.java.distribution.distribution:pid=68013: Located Distribution('/Users/nicolasjoseph/.sdkman/candidates/java/current/bin', minimum_version=None, maximum_version=None jdk=True) for constraints: minimum_version None, maximum_version None, jdk True

11:41:08 00:01     [bootstrap-jvm-tools]
11:41:08 00:01     [provide-tools-jar]
11:41:08 00:01   [lint]
11:41:08 00:01     [scalafix]
11:41:08 00:01     [scalafmt]
11:41:08 00:01     [scalastyle]
11:41:08 00:01     [checkstyle]
11:41:08 00:01     [jvm-dep-check]16:41:08 [DEBUG] pants.process.lock:pid=68013: releasing lock: <pants.process.lock.OwnerPrintingInterProcessFileLock object at 0x1105a1c10>

               Waiting for background workers to finish.
11:41:08 00:01   [complete]
@fancy-queen-20734 or @witty-crayon-22786 Do you happen to know about this?
hey @loud-stone-83419! to tell pants where your scalafmt.conf is, you’ll need to set the
option, which is
[scalafmt] config = ..
in pants.ini/pants.toml
Trying that now
np. and as previously discussed, it might be a little while before the JVM is “back” for v2, but it’s a priority for us.
Yeah that's why I am investing in the v1
It is defintely going to be worth it
but I might bug you as the setup is quite diverse
Scala + Python + typescript + docker
Would be super happy when you have some beta for me to test to try it out
for sure. note also that it’s also possible to run both v1 and v2 in parallel if you have different portions of your team using one language vs the other… maybe not worth it if it’s the same folks using all three languages, but.
How does the engine pick up what to format?
It doesn't seem to be applying the formating
I am using ./pants --level=debug fmt :platform
it will format whichever targets are specified on the command line, or the targets matched by
Does it format the dependencies of the target?
only if
is specified
ie not sure if it is best practice but I created a plaform target with my services as dependencies
generally you should create targets if you’d want someone to be able to depend on that target
a platform target might imply that you want someone to be able to depend on “all of the services”
I would want them to be able to build everything with one command
not necessarily depend on it
the other way to spell that is
./pants $goal ::
… where
means all targets recursively
./pants $goal $dir::
for all targets under a directory
oh nice!
options are described for v1 here: https://v1.pantsbuild.org/orgs.html#continuous-integration … they can be helpful for CI, but also for commithooks
it’s common to do
./pants --changed-since=HEAD fmt
, for example
While you are here, I could not figure out why in the pants repo there are files that are mentioned with the
build function
so, on the v2 cusp, tests become a lot more sandboxed
(in v1 it’s possible to enable via flags:
when a test is chrooted, only loose
that it declares dependencies on will be present in the chroot.
on the other hand are placed on the classpath and/or pythonpath, and are loaded via System.getResource / pkg_resources, respectively.
Makes sense - Thank you for the help!
👍 1
❤️ 1