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.0hundreds-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.0b0hundreds-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.tomlbillowy-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/corehundreds-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:disthundreds-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.corehundreds-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_distributionbillowy-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_wheelbillowy-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_loggerhundreds-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=1billowy-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 PMlistbillowy-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 PMrwitty-crayon-22786
09/21/2020, 6:56 PMhundreds-father-404
09/25/2020, 1:13 AMbillowy-motherboard-58443
09/25/2020, 3:24 PM