billowy-motherboard-58443
09/21/2020, 4:06 PMaloof-angle-91616
09/21/2020, 4:07 PMaloof-angle-91616
09/21/2020, 4:07 PMaloof-angle-91616
09/21/2020, 4:07 PMutil
depends on from config
? or the other way around?billowy-motherboard-58443
09/21/2020, 4:08 PMbillowy-motherboard-58443
09/21/2020, 4:09 PMbillowy-motherboard-58443
09/21/2020, 4:09 PMaloof-angle-91616
09/21/2020, 4:09 PMConfigEntry
from gh/config
into its own target, that should workbillowy-motherboard-58443
09/21/2020, 4:09 PMaloof-angle-91616
09/21/2020, 4:09 PMaloof-angle-91616
09/21/2020, 4:10 PMbillowy-motherboard-58443
09/21/2020, 4:11 PM./pants dependencies --transitive gh/config
does not blow upaloof-angle-91616
09/21/2020, 4:12 PMbillowy-motherboard-58443
09/21/2020, 4:14 PMhundreds-father-404
09/21/2020, 4:15 PMaloof-angle-91616
09/21/2020, 4:16 PMaloof-angle-91616
09/21/2020, 4:16 PMaloof-angle-91616
09/21/2020, 4:16 PMaloof-angle-91616
09/21/2020, 4:16 PMbillowy-motherboard-58443
09/21/2020, 4:16 PMbillowy-motherboard-58443
09/21/2020, 4:16 PMaloof-angle-91616
09/21/2020, 4:17 PMit will always work to assume that a child inherits from the parent's dependencieswas this your question? or were you asking for best practices?
hundreds-father-404
09/21/2020, 4:17 PMit will always work to assume that a child inherits from the parentâs dependenciesI donât think this is quite the right relationship, as âparentâ to me sounds like âparent directoryâ vs. âsubdirectoryâ. Itâs not about the relationship in the file system. Generally, depending on a dependency means that Pants will then pull in all transitive dependencies
aloof-angle-91616
09/21/2020, 4:18 PMhundreds-father-404
09/21/2020, 4:18 PMso... whatâs my answer? đIâm still trying to catch up. Generally, I would recommend upgrading to 2.0. Dependency inference will do the right thing for you in most cases, so that you donât have to manually struggle with getting dependencies right. This is a huge reason we added the feature It will also handle this cycle fine for you. If Python is fine with the cycle, Pants will be fine with it
aloof-angle-91616
09/21/2020, 4:18 PMand should I upgrade to 2.0 ?yes, absolutely imho
billowy-motherboard-58443
09/21/2020, 4:19 PMbillowy-motherboard-58443
09/21/2020, 4:19 PMhundreds-father-404
09/21/2020, 4:19 PMaloof-angle-91616
09/21/2020, 4:19 PMbillowy-motherboard-58443
09/21/2020, 4:21 PMERROR: Could not find a version that satisfies the requirement pantsbuild.pants==2.0
hundreds-father-404
09/21/2020, 4:21 PMaloof-angle-91616
09/21/2020, 4:21 PMbillowy-motherboard-58443
09/21/2020, 4:21 PMaloof-angle-91616
09/21/2020, 4:21 PMbillowy-motherboard-58443
09/21/2020, 4:21 PMaloof-angle-91616
09/21/2020, 4:22 PMhundreds-father-404
09/21/2020, 4:26 PMaloof-angle-91616
09/21/2020, 4:26 PMbillowy-motherboard-58443
09/21/2020, 4:26 PMaloof-angle-91616
09/21/2020, 4:27 PMbillowy-motherboard-58443
09/21/2020, 4:27 PMrm -rf
on the ~/.cache/pants dir and just did pants --version
to reinstallhundreds-father-404
09/21/2020, 4:27 PMhundreds-father-404
09/21/2020, 4:27 PMbillowy-motherboard-58443
09/21/2020, 4:28 PMbillowy-motherboard-58443
09/21/2020, 4:28 PMbillowy-motherboard-58443
09/21/2020, 4:28 PM$ ./pants --version
Scrubbed PYTHONPATH=/home/mfischer/src/ghpylibs/python from the environment.
16:28:18.65 [INFO] initializing pantsd...
16:28:19.43 [INFO] pantsd initialized.
2.0.0b0
hundreds-father-404
09/21/2020, 4:28 PMaloof-angle-91616
09/21/2020, 4:29 PMbillowy-motherboard-58443
09/21/2020, 4:29 PM[WARN]
nowbillowy-motherboard-58443
09/21/2020, 4:29 PMaloof-angle-91616
09/21/2020, 4:30 PMhundreds-father-404
09/21/2020, 4:30 PMdependencies
field. Pants will infer based on your Python imports. You can run ./pants dependencies
to see what itâs inferring
You only need to fill it in when Pants cannot figure out the inference, such as when you depend on a files
or resources
target (e.g. JSON files)billowy-motherboard-58443
09/21/2020, 4:30 PMbillowy-motherboard-58443
09/21/2020, 4:30 PM16:29:20.05 [WARN] The constraints file constraints.txt does not contain entries for the following requirements: colorama, python-dateutil, mock, pytest, pytz, marshmallow
16:29:20.05 [WARN] Ignoring resolve_all_constraints setting in [python_setup] scope because constraints file does not cover all requirements.
aloof-angle-91616
09/21/2020, 4:30 PMhundreds-father-404
09/21/2020, 4:30 PMhmmm. it probably bumps the pytest version. you should be able to set that back to the version you were usingYes, it does do this. See https://www.pantsbuild.org/docs/python-test-goal#pytest-version-and-plugins for how to change the version to be Pytest 5
billowy-motherboard-58443
09/21/2020, 4:31 PM[WARN] <unknown>:587: DeprecationWarning: invalid escape sequence \{
billowy-motherboard-58443
09/21/2020, 4:31 PMbillowy-motherboard-58443
09/21/2020, 4:31 PMhundreds-father-404
09/21/2020, 4:31 PM[WARN] <unknown>587 DeprecationWarning: invalid escape sequence \{Sorry, I think thatâs from dependency inference. Weâll fix this in the next beta release. Pardon the temporary noise
billowy-motherboard-58443
09/21/2020, 4:33 PMbillowy-motherboard-58443
09/21/2020, 4:33 PMbillowy-motherboard-58443
09/21/2020, 4:33 PMhundreds-father-404
09/21/2020, 4:33 PMIgnoring resolve_all_constraints setting in [python_setup] scope because constraints file does not cover all requirements.So this warning is saying that we canât use a performance optimization that avoids having to re-resolve requirements multiple times. We use a single global resolve (like a single venv). It makes things much faster. https://www.pantsbuild.org/docs/python-third-party-dependencies#tip-set-up-a-virtual-environment-optional has a script you may find helpful to use Pants to query for your dependencies and then generate a constraints.txt You can alternatively turn off this optimization and silence the message by setting
resolve_all_constraints = never
in [python-setup]
in pants.toml
billowy-motherboard-58443
09/21/2020, 4:34 PMbillowy-motherboard-58443
09/21/2020, 4:34 PMhundreds-father-404
09/21/2020, 4:35 PMI see these already under plain pytest (but it tells me the filename)It sounds like Pytest is duplicating the warning, but yes, with the filename? Imo, Pants shouldnât be warning in the first place. Itâs warning because Pants parses the AST to be able to infer dependencies. We need to catch the DeprecationWarning
aloof-angle-91616
09/21/2020, 4:35 PMhundreds-father-404
09/21/2020, 4:35 PMseemingly what pants itself needs)Are you seeing things that you donât expect? It should only be what your own requirements are. Note that Pytest is showing up if you have
import pytest
anywherebillowy-motherboard-58443
09/21/2020, 4:35 PMpy.test -s gh/config/tests
it will tell mebillowy-motherboard-58443
09/21/2020, 4:35 PMgh/config/tests/fig_client/test_adapter.py:56
/src/gh-pants-test/gh/config/tests/fig_client/test_adapter.py:56: DeprecationWarning: invalid escape sequence \.
"nested.escaped\.<http://thing.int|thing.int>": "1",
gh/config/tests/fig_client/test_adapter.py:57
/src/gh-pants-test/gh/config/tests/fig_client/test_adapter.py:57: DeprecationWarning: invalid escape sequence \.
"nested.escaped\.thing.str": "horse",
gh/config/fig_client/adapter.py:587
/src/gh-pants-test/gh/config/fig_client/adapter.py:587: DeprecationWarning: invalid escape sequence \{
delim = "\{0}".format(delim)
billowy-motherboard-58443
09/21/2020, 4:36 PM<unknown>
billowy-motherboard-58443
09/21/2020, 4:36 PMaloof-angle-91616
09/21/2020, 4:37 PMaloof-angle-91616
09/21/2020, 4:37 PM/tmp/process-execution232141
prefix in the import error message from before, we should be able to scrub those error messagesbillowy-motherboard-58443
09/21/2020, 4:38 PMbillowy-motherboard-58443
09/21/2020, 4:38 PMbillowy-motherboard-58443
09/21/2020, 4:39 PMbillowy-motherboard-58443
09/21/2020, 4:39 PM.exceptions
which turns out to be coming from gh/config/__init__.py doing from .exceptions import....
billowy-motherboard-58443
09/21/2020, 4:39 PMaloof-angle-91616
09/21/2020, 4:40 PMbillowy-motherboard-58443
09/21/2020, 4:40 PMhundreds-father-404
09/21/2020, 4:40 PM**/*.py
?hundreds-father-404
09/21/2020, 4:40 PMbut something in an init parent did notWhat do you mean? Is the content in the
__init__.py
file?billowy-motherboard-58443
09/21/2020, 4:41 PMbillowy-motherboard-58443
09/21/2020, 4:41 PMfrom .exceptions import ConfigException # noqa (backwards compatibility, as ConfigException used to live here)
billowy-motherboard-58443
09/21/2020, 4:42 PMbillowy-motherboard-58443
09/21/2020, 4:44 PMbillowy-motherboard-58443
09/21/2020, 4:44 PMhundreds-father-404
09/21/2020, 4:44 PMso the tests/BUILD needs dep on âgh/configâTaking a step back, dependencies in 2.0 are more fine-grained. Generally, dependencies are between files, like file A depends on file B. Here, we want to make sure that the correct files are depending on the correct files, rather than the âentire targetâ, which ends up depending on every single file, even if you only need a few of them Sorry for the confusion - this changed a bit between 1.30 and 2.0
billowy-motherboard-58443
09/21/2020, 4:44 PMbillowy-motherboard-58443
09/21/2020, 4:45 PMbillowy-motherboard-58443
09/21/2020, 4:45 PMbillowy-motherboard-58443
09/21/2020, 4:46 PMhundreds-father-404
09/21/2020, 4:46 PMpython_library()
python_tests(name="tests")
billowy-motherboard-58443
09/21/2020, 4:46 PMbillowy-motherboard-58443
09/21/2020, 4:46 PMbillowy-motherboard-58443
09/21/2020, 4:47 PMbillowy-motherboard-58443
09/21/2020, 4:47 PMbillowy-motherboard-58443
09/21/2020, 4:47 PMbillowy-motherboard-58443
09/21/2020, 4:47 PMhundreds-father-404
09/21/2020, 4:47 PMpython_library
per directory, 1 python_tests
per directory, etc.
(Unless you have a reason to define things differently, like bump a timeout for just one test)billowy-motherboard-58443
09/21/2020, 4:48 PMpython_library
would only be declared at the top dir OF THAT LIBRARY?billowy-motherboard-58443
09/21/2020, 4:48 PMbillowy-motherboard-58443
09/21/2020, 4:48 PMhundreds-father-404
09/21/2020, 4:52 PMns/pkg/subdir/f.py
depends on a JSON file. You must explicitly declare that in the dependencies
field for the target that refers to f.py
. If you have only one python_library
for ns/pkg
, then youâd end up saying that every single file in ns/pkg
depends on that JSON file, even though thatâs likely not true. This results in worse invalidation
So, having one BUILD file per directory usually a) is easier to reason about and b) scales betterbillowy-motherboard-58443
09/21/2020, 4:53 PMbillowy-motherboard-58443
09/21/2020, 4:54 PMbillowy-motherboard-58443
09/21/2020, 4:54 PMbillowy-motherboard-58443
09/21/2020, 4:55 PMtests/
dir ?"billowy-motherboard-58443
09/21/2020, 4:55 PMbillowy-motherboard-58443
09/21/2020, 4:55 PMhundreds-father-404
09/21/2020, 4:56 PMhundreds-father-404
09/21/2020, 4:57 PMwhy doesnât the test goal recursively go down through the tests/ dir ?âAh, run
./pants test tests::
. This is a glob to say âevery relevant target in tests and subdirectoriesâbillowy-motherboard-58443
09/21/2020, 4:58 PMhundreds-father-404
09/21/2020, 4:58 PM:
glob for all relevant targets in the directory, but not subdirectories. And file globs with *
and **
)hundreds-father-404
09/21/2020, 5:02 PM./pants dependencies path/to/file.py
will show you which dependencies that specific file has. It should map to what your actual imports are, and is useful when debugging things like âwhy is this import failingâbillowy-motherboard-58443
09/21/2020, 5:03 PMbillowy-motherboard-58443
09/21/2020, 5:03 PMbillowy-motherboard-58443
09/21/2020, 5:04 PMbillowy-motherboard-58443
09/21/2020, 5:04 PMpants test ns/foo/tests::
is sayingbillowy-motherboard-58443
09/21/2020, 5:04 PMUnmatched globs from gh/garcon/tests's `sources` field: ["gh/garcon/tests/*_test.py", "gh/garcon/tests/conftest.py", "gh/garcon/tests/test_*.py", "gh/garcon/tests/tests.py"]
hundreds-father-404
09/21/2020, 5:05 PMns/foo/tests
and for it to cover all subdirectories, you need to change the sources
field:
python_tests(sources=["**/*_test.py", "**/conftest.py"])
billowy-motherboard-58443
09/21/2020, 5:06 PMhundreds-father-404
09/21/2020, 5:06 PMbillowy-motherboard-58443
09/21/2020, 5:06 PMbillowy-motherboard-58443
09/21/2020, 5:10 PMbillowy-motherboard-58443
09/21/2020, 5:10 PMhundreds-father-404
09/21/2020, 5:10 PMbillowy-motherboard-58443
09/21/2020, 5:10 PMbillowy-motherboard-58443
09/21/2020, 5:11 PMhundreds-father-404
09/21/2020, 5:11 PMbillowy-motherboard-58443
09/21/2020, 5:11 PMbillowy-motherboard-58443
09/21/2020, 5:11 PMbillowy-motherboard-58443
09/21/2020, 5:12 PMtox --
and "Build" python setup.py.....
billowy-motherboard-58443
09/21/2020, 5:12 PMbillowy-motherboard-58443
09/21/2020, 5:13 PMhundreds-father-404
09/21/2020, 5:16 PMIt is opinionated on its layout, as are its maintainersWe generally make it a goal for Pants to work with multiple different workflows / layouts. For example, allowing you to set source roots If there are particular features that would help you all out, please let us know. A lot of functionality is driven specifically by user interest. For example, a user wanted to be able to indicate source roots based on the presence of a marker file (
setup.py
). We had never used that workflow, but added it to support their layout.
In other words, we donât want you to have to rewrite your whole project to use Pants đ (Although, we hope that it will help encourage good practices at the same time, and bring you benefits like hermiticity, caching, and concurrency)hundreds-father-404
09/21/2020, 5:17 PMfewer BUILD files is an aim of this experimentCool. This was a major reason for two changes we made in 2.0: a) dependency inference, and b) being able to depend explicitly on files, rather than having to depend on the entire target and pulling in every single file. While I was advocating âone BUILD file per directoryâ, it is totally possible and valid to have fewer BUILD files like youâre doing now in 2.0. That was not really feasible in 1.x where you had to explicitly declare dependencies, but is now very valid
hundreds-father-404
09/21/2020, 5:20 PMpython setup.py.....If you havenât yet, check out https://www.pantsbuild.org/docs/python-setup-py-goal when youâre ready. With
./pants setup-py
, you will only define one python_distribution
target per package, like youâd expect.
Let us know if we can help with getting that goingbillowy-motherboard-58443
09/21/2020, 5:25 PMpython_distribution
and python_library
?billowy-motherboard-58443
09/21/2020, 5:26 PMbdist_wheel
with this and used python_library
and not distribution....hundreds-father-404
09/21/2020, 5:28 PMsetup-py
goal. You can set things like the version
and description
Meanwhile python_library
is metadata about any Python source files you have.billowy-motherboard-58443
09/21/2020, 5:28 PMhundreds-father-404
09/21/2020, 5:31 PMprovides
field on python_library
. python_distribution
is new to 2.0 to clean up the modeling
Again, sorry for the confusion of switching between them. We only changed the docs to default to 2.0 on Friday because we had to rewrite some parts to talk about things like dependency inference. So if you started Pants earlier, that explains why you were using 1.30billowy-motherboard-58443
09/21/2020, 5:32 PMbillowy-motherboard-58443
09/21/2020, 5:32 PMbillowy-motherboard-58443
09/21/2020, 5:32 PMpython_distribution
and python_library
stanzas?billowy-motherboard-58443
09/21/2020, 5:33 PMbillowy-motherboard-58443
09/21/2020, 5:34 PMbillowy-motherboard-58443
09/21/2020, 5:34 PMhundreds-father-404
09/21/2020, 5:37 PMIâd have both python_distribution and python_library stanzas?Yep, youâd have something like this:
python_library(
name="lib",
sources=["**/*.py"]
)
python_distribution(
name="dist"
dependencies=[":lib"],
provides=setup_py(
name="gh-config-dist",
version="1.0.1",
...
)
)
The python_library
is attaching metadata to your actual .py
files. For example, what dependencies each .py
file has. Or, what compatibility
it has for Python versions
Meanwhile, python_distribution
is metadata about your distribution you want to buildbillowy-motherboard-58443
09/21/2020, 5:37 PM$ ./pants setup-py gh/core
hundreds-father-404
09/21/2020, 5:38 PMpython_distribution
does not work with dependency inference. Why? It doesnât have any source files, so Pants canât analyze imports. Instead, you use an explicit dependency
Here, Iâm assuming that you want to depend on âeverything in the lib
target, and everything that those files in the target depends on tooâbillowy-motherboard-58443
09/21/2020, 5:38 PMTargetNotExported: Cannot run setup.py on these targets, because they have no `provides=` clause: gh/core/collections.py, gh/core/concurrency/__init__.py:../core, gh/core/log.py, gh/core/logging/formatter.py:../core, gh/core/property.py, gh/core/tests/concurrency/executor_test.py:../../core, gh/core/util.py, gh/core/ioc/service_locator.py:../core, gh/core/retry.py, gh/core/__init__.py, gh/core/ioc/__init__.py:../core, gh/core/ioc/exceptions.py:../core, gh/core/tests/retry_test.py:../core, gh/core/logging/__init__.py:../core, gh/core/tests/collections_test.py:../core, gh/core/tests/ioc/service_locator_test.py:../../core, gh/core/patterns.py, gh/core/concurrency/executor.py:..
hundreds-father-404
09/21/2020, 5:38 PM./pants setup-py gh/core:dist
hundreds-father-404
09/21/2020, 5:38 PM./pants setup-py gh/core
, you can leave off the name
field for the python_distribution
target. If you leave off name
, it will default to the name of the directoryhundreds-father-404
09/21/2020, 5:39 PM./pants setup-py gh/core
is shorthand for ./pants setup-py gh/core:core
)billowy-motherboard-58443
09/21/2020, 5:39 PMbillowy-motherboard-58443
09/21/2020, 5:40 PM./pants setup-py gh/core:dist
17:39:37.01 [ERROR] 1 Exception encountered:
ResolveError: 'dist' was not found in namespace 'gh/core'. Did you mean one of:
:core
:gh.core
hundreds-father-404
09/21/2020, 5:40 PMbillowy-motherboard-58443
09/21/2020, 5:41 PMpython_library(
sources=['**/*.py'],
dependencies=[],
)
python_distribution(
name="gh.core",
dependencies=[ ],
provides=setup_py(
name="gh.core",
version="0.1",
description="this is gh.core",
author="mycorp",
classifiers=[
"Programming Language :: Python :: 3.6",
],
namespace_packages=['gh.core'],
)
)
hundreds-father-404
09/21/2020, 5:43 PMpython_library
has the address of gh/core:core
, which you can also use gh/core
as shorthand. This is because you left off the name
field.
You explicitly set name
to gh.core
for the python_distribution
, so its address is gh/core:gh.core
--
I suspect that instead, you want to leave off name
for python_distribution
. This will result in the address gh/core:core
, which you can use gh/core
as shorthand.
But, if you do this, you need to add something like name="lib"
to the python_library
. Each address must be unique, so you can only have one target in each directory that leaves off the name
fieldbillowy-motherboard-58443
09/21/2020, 5:45 PMbillowy-motherboard-58443
09/21/2020, 5:46 PMValueError: namespace_packages cannot be set in the `provides` field for gh/core, but it was set to ['gh.core']. Pants will dynamically set the value for you.
)hundreds-father-404
09/21/2020, 5:47 PMsetup_py(name="gh.core")
is the name of the actual distribution, like what the wheel will be called. Itâs different than Pantsâs address to the python_distribution
target.
Thatâs pretty confusing. I think it might make more sense if we called it dist_name
? Generally, that setup_py
thing uses the same keyword args you would use in a setup.py
, which is why we stuck with name
. But it could be worth diverging here.billowy-motherboard-58443
09/21/2020, 5:48 PMbillowy-motherboard-58443
09/21/2020, 5:49 PM./pants setup-py gh/core
worked, but it created an empty dist/gh.core-0.1/src/ dir....hundreds-father-404
09/21/2020, 5:49 PMdependencies
is empty. Add dependencies=[":lib"]
billowy-motherboard-58443
09/21/2020, 5:50 PMhundreds-father-404
09/21/2020, 5:51 PMgh/config:lib
to have a sources like sources=["**/*.py", "!**/*_test.py"]
hundreds-father-404
09/21/2020, 5:51 PM./pants dependencies --transitive gh/config
to spot check what is going to end up in the python_distribution
billowy-motherboard-58443
09/21/2020, 5:52 PMbillowy-motherboard-58443
09/21/2020, 5:52 PMbillowy-motherboard-58443
09/21/2020, 5:53 PMbillowy-motherboard-58443
09/21/2020, 5:54 PMbillowy-motherboard-58443
09/21/2020, 5:54 PMERROR: gh.core-0.1-py2-none-any.whl is not a supported wheel on this platform.
hundreds-father-404
09/21/2020, 5:55 PM./pants setup-py gh/confg -- bdist_wheel --python-tag=py36.py37
for examplebillowy-motherboard-58443
09/21/2020, 5:56 PM./pants setup-py gh/core -- bdist_wheel
billowy-motherboard-58443
09/21/2020, 5:56 PM--python-tag
do here?billowy-motherboard-58443
09/21/2020, 5:57 PMbillowy-motherboard-58443
09/21/2020, 5:58 PMbillowy-motherboard-58443
09/21/2020, 5:58 PMIn [1]: import gh.core
In [2]: from gh.core.log import class_logger
hundreds-father-404
09/21/2020, 5:58 PMbdist_wheel
. Anything after the --
gets passed through
It tells the bdist_wheel
program that itâs compatible with Py36 and Py37, for example
Iâm starting to get out of my expertise, though. @happy-kitchen-89482 do you know why Michael is having to set --python-tag
to get the wheel built properly?
(Only the last few messages are relevant, you can ignore most this thread)billowy-motherboard-58443
09/21/2020, 5:58 PMbillowy-motherboard-58443
09/21/2020, 5:59 PM[bdist_wheel]
universal=1
billowy-motherboard-58443
09/21/2020, 5:59 PMhundreds-father-404
09/21/2020, 5:59 PMbdist_wheel
what this is compatible withbillowy-motherboard-58443
09/21/2020, 6:01 PMbillowy-motherboard-58443
09/21/2020, 6:01 PMtest --changed-since=origin/master
trick with 2.0billowy-motherboard-58443
09/21/2020, 6:02 PMhundreds-father-404
09/21/2020, 6:02 PMresources
target for your setup.cfg
file and add it to the dependencies
field of your python_distribution
. I suspect it would fix it
We are also considering redesigning/improving some of the setup-py
stuff so that you can associate certain passthrough arguments permanently to a python_distribution
targethundreds-father-404
09/21/2020, 6:04 PMthen to test the test --changed-since=origin/master trick with 2.0Yay! One of my favorite features. I use
./pants --changed-since=HEAD fmt
all the time
For test
, often you will want to use --changed-dependees=transitive
. This means that if you change source file a.py, and b.py depends on it, then test_b.py will rerun because it knows a transitive dep changed
Also, you may find ./pants --changed-since=origin/master list
helpful when experimenting with the behavior. That will list every file that is picked up, without the cost of actually running testsbillowy-motherboard-58443
09/21/2020, 6:05 PMbillowy-motherboard-58443
09/21/2020, 6:05 PMlist
billowy-motherboard-58443
09/21/2020, 6:06 PMhundreds-father-404
09/21/2020, 6:07 PM--changed-dependees=direct
or --changed-dependees=transitive
option though
The default is --changed-dependees=none
, which is only the changed files themselvesbillowy-motherboard-58443
09/21/2020, 6:09 PMbillowy-motherboard-58443
09/21/2020, 6:10 PM./pants --changed-since=master --changed-dependees=transitive list
and it listed I think, the whole repo treebillowy-motherboard-58443
09/21/2020, 6:11 PMbillowy-motherboard-58443
09/21/2020, 6:12 PMtest
it ist testing things which are not on the graph with that filehundreds-father-404
09/21/2020, 6:14 PMhundreds-father-404
09/21/2020, 6:14 PMhundreds-father-404
09/21/2020, 6:15 PMhundreds-father-404
09/21/2020, 6:15 PM./pants dependees path/to/f.py
to see everything that is directly depending on it. Does that look right? Then, you can use dependees --transitive
as the next stepbillowy-motherboard-58443
09/21/2020, 6:18 PMbillowy-motherboard-58443
09/21/2020, 6:19 PMbillowy-motherboard-58443
09/21/2020, 6:26 PMdependees
be showing me
18:26:11.56 [WARN] <unknown>:587: DeprecationWarning: invalid escape sequence \{
witty-crayon-22786
09/21/2020, 6:28 PMdependees
, per-se⌠but i donât think weâve triaged it yet.witty-crayon-22786
09/21/2020, 6:29 PMbillowy-motherboard-58443
09/21/2020, 6:32 PMpytest
over the same code, those warnings are eemitted, but with the filename rather than <unknown>
witty-crayon-22786
09/21/2020, 6:32 PMhundreds-father-404
09/21/2020, 6:33 PMwitty-crayon-22786
09/21/2020, 6:34 PMwitty-crayon-22786
09/21/2020, 6:34 PMbillowy-motherboard-58443
09/21/2020, 6:34 PMhundreds-father-404
09/21/2020, 6:36 PMwitty-crayon-22786
09/21/2020, 6:36 PMwitty-crayon-22786
09/21/2020, 6:37 PMhundreds-father-404
09/21/2020, 6:37 PMwitty-crayon-22786
09/21/2020, 6:38 PMhundreds-father-404
09/21/2020, 6:39 PMwitty-crayon-22786
09/21/2020, 6:40 PMhundreds-father-404
09/21/2020, 6:42 PMbillowy-motherboard-58443
09/21/2020, 6:42 PMvarname = "foo\bar"
in your code somewherebillowy-motherboard-58443
09/21/2020, 6:42 PMr
witty-crayon-22786
09/21/2020, 6:56 PMhundreds-father-404
09/25/2020, 1:13 AMbillowy-motherboard-58443
09/25/2020, 3:24 PM