Skip to main content

The Pants Python source code lint tool.

Project description

Pants is an Apache2 licensed build tool written in Python.

The latest documentation can be found at pantsbuild.

1.25.x Stable Releases

This document describes releases leading up to the 1.25.x stable series.

The 1.25.x series brings two major changes to Pants:

  1. Deprecating globs(), rglobs(), and zglobs() in BUILD files.

  2. Adding file args.

Please see https://groups.google.com/forum/#!topic/pants-devel/3nmdSeyvwU0 for more information.

1.25.0rc1 (03/6/2020)

API Changes

  • Add back ignore for –files-not-found-behavior (#9175) PR #9175

  • Remove pytest passthrough args deprecation. (#9126) PR #9126

  • Delay removing –test-fast from 1.27.0.dev0 to 1.28.0.dev0 (#9250) PR #9250

Bugfixes

  • Compiler option sets can be lists or sets (#9182) PR #9182

  • Add non-jvm targets with classpath elements to exported modules as libraries. (#9084) PR #9084

  • Revert “Switch to dot idea project type (#8745)” (#9096) PR #9096

  • Re-pin pytest, and add a pin for zipp. (#9095) PR #9095

  • Fix deprecation warning for –transitive for goals that ignore the option (#9076) PR #9076

  • Trigger warning/error for deprecated Target method overrides. (#9073) PR #9073

  • Fix warnings filtering under pantsd. (#9121) PR #9121

  • Allow test specs to be used with –no-fast for junit (#9093) PR #9093

1.25.0rc0 (02/4/2020)

API Changes

  • Deprecate globs, rglobs, and zglobs (#9040) PR #9040

  • Deprecate –owner-of in favor of file arguments (#9050) PR #9050

  • Deprecate –build-file-imports defaulting to warn and having the option allow (#9047) PR #9047

  • Deprecate –glob-expansion-failure in favor of –files-not-found-behavior (#9022) PR #9022

  • [thrift linter] use non-zero exit on warning when strict and zero exit warning when not strict (#9051) PR #9051

New Features

  • Allow using file args with every goal (#9048) PR #9048

  • Add –owners-not-found-behavior option for when file args do not have any owning targets (#9068) PR #9068

  • Support python2 in the setup.py rule. (#8956) PR #8956

  • [IntelliJ] Add compiler options and plugins to the output of export-dep-as-jar (#9036) PR #9036

  • [IntelliJ] Add javac_options and extra_jvm_options to the output of export-dep-as-jar (#9053) PR #9053

Bugfixes

  • Fix Python linters to work without pants.backend.python registered (#9059) PR #9059

  • Fix V2 test and setup-py2 to work with file args (#9056) PR #9056

  • Split Zinc argfile by newline instead of space (#9065) PR #9065

  • Fix race condition with deprecation warnings (#9060) PR #9060

Refactoring, Improvements, and Tooling

  • Change invalid file args to error instead of warn (#9041) PR #9041

  • Preserve the filesystem spec used to find owning targets (#9063) PR #9063

  • Decouple –owner-of implementation from –changed-* (#9046) PR #9046

  • Remove deps from the core into the Python backend’s subsystems (#9049) PR #9049

  • Allow options to be registered passively. (#9061) PR #9061

  • Don’t show core goals like binary and test when they have no implementation (#9002) PR #9002

  • Remove origin check from release.sh script (#9042) PR #9042

  • Snapshot subset intrinsic (#9006) PR #9006

  • No longer use globs, rglobs, and zglobs internally (#9029) PR #9029

  • Stop using globs in testprojects/ (#9039) PR #9039

  • Make fix_deprecated_globs_usage.py more robust (#9067) PR #9067

Documentation

  • Update docs to use the new ! exclude syntax for BUILD files (#9037) PR #9037

1.25.0.dev3 (01/29/2020)

API Changes

  • Remove the generate-pants-ini goal. (#8993) PR #8993

  • Deprecate –fast option (#8970) PR #8970

  • Switch to dot idea project type (#8745) PR #8745

  • Deprecate defaulting to –transitive (#8955) PR #8955

  • Add IPython subsystem and deprecate –repl-py options (#8996) PR #8996

  • Register certain optional conditionally on v1/v2 setup. (#8997) PR #8997

New Features

  • Allow filesystem specs with cloc2 and validate (#8985) PR #8985

  • Allow excludes in BUILD files via new ! syntax (#9025) PR #9025

Bugfixes

  • Ensure that every filesystem spec is valid (#9009) PR #9009

  • remove custom NodeResolveFingerprintStrategy (#8398) PR #8398

  • Removing the exception when setup_py task has no work to do. (#8620) PR #8620

  • Resolve v2 plugins. (#9020) PR #9020

  • Fix Outputting mixin for V2 goals (#9011) PR #9011

  • Fix non-deterministic ConsolidateClasspath (#9001) PR #9001

  • Fix validate and cloc2 breaking with targets with no sources (#9000) PR #9000

  • Fix rule type hint validation to work with from __future__ import annotations (#9004) PR #9004

  • correctly fingerprint scoverage options and copy output into dist/ (#8705) PR #8705

  • Restore support for dependencies outputting 3rdparty deps through new enum option (#8960) PR #8960

  • Set workunit parent IDs correctly (fixes #7969) (#8947) PR #8947

Refactoring, Improvements, and Tooling

  • Modify options parser to allow ! in file args (#9031) PR #9031

  • Refactor PathGlobs to support ! ignore globs in its constructor (#9032) PR #9032

  • Fix some clippy errors which will appear in 1.41.0 (#9027) PR #9027

  • Expand config_test.py to better define the Config API (#9021) PR #9021

  • Refactor engine/legacy/structs.py (#9023) PR #9023

  • Describe the origin of failure when globs do not match (#9013) PR #9013

  • Small improvements to release script (#8964) PR #8964

  • First usage of async-await (#9018) PR #9018

  • Refactor config.py to allow supporting possible future config file formats (#9014) PR #9014

  • Bump to Rust 1.40 (#9017) PR #9017

  • Improve unmatched globs error message (#9010) PR #9010

  • Improve error messages for rule graph issues (#8998) PR #8998

  • Add type hints to options.py, options_bootstrapper.py, and config.py (#8990) PR #8990

  • Move intrinsics code into new module (#8999) PR #8999

  • Change distribution lookup for JvmTask subclasses to call into JvmTask (#8938) PR #8938

  • Refactor –changed-include-dependees to use an Enum option (#8995) PR #8995

  • Allow for deprecation of child scopes (#8984) PR #8984

Testing

  • Fix Zipp 2.0 release breaking Python 2 integration tests (#8994) PR #8994

Documentation

  • Fix typo in in Python examples docs (#8987) PR #8987

1.25.0.dev2 (01/17/2020)

New Features

  • Add Bandit Python linter (#8929) PR #8929

API Changes

  • Deprecate –fmt-transitive and –lint-transitive and switch defaults to False (#8969) PR #8969

  • Use Python 3.6+ by default for Python users (#8968) PR #8968

  • Remove –cloc2-transitive (#8957) PR #8957

Refactoring, Improvements, and Tooling

  • Introduce SourcesSnapshot for goals that only need source files to operate (#8980) PR #8980

  • Tweak options parser to allow globs in filesystem specs (#8981) PR #8981

  • Gitignore the twine venv created when we run the release script. (#8966) PR #8966

  • Fix more typos (#8983) PR #8983

  • Add type hints to source/ (#8977) PR #8977

  • Add type hints to Address, Struct, TargetAdaptor, Parser, and HydratedTarget (#8967) PR #8967

  • Stop requesting AddressSpecs in @goal_rules (#8972) PR #8972

  • update maven artifact url (#8975) PR #8975

  • Use daemon thread (#8959) PR #8959

  • Add type hints to the setup of target roots (#8965) PR #8965

  • Port V2 python_test_runner.py integration tests to V2 style (#8924) PR #8924

1.25.0.dev1 (01/14/2020)

API Changes

  • Mark certain types as “side-effecting” (#8922) PR #8922

  • Rename @console_rule to @goal_rule (#8942) PR #8942

  • Deprecate –positional-arg-file in favor of –spec-file (#8928) PR #8928

  • Rename optionable_rule to subsystem_rule (#8893) PR #8893

New Features

  • Make streaming workunits report interval a configurable option (#8946) PR #8946

  • A rule to topologically sort targets. (#8921) PR #8921

  • Add –debug option to run V2 tests interactively. (#8827) PR #8827

  • Rules to support running setup.py commands (#8882) PR #8882

Bugfixes

  • Set V2 Pytest pex files as –not-zip-safe to fix occasional hanging (#8953) PR #8953

  • Fix _maybe_handle_help (#8945) PR #8945

Refactoring, Improvements, and Tooling

  • Use f-strings in src/python/pants/pantsd/pailgun_server.py + fix typos in comments. (#8949) PR #8949

  • Add some type annotations to goal/ and auth/ (#8934) PR #8934

  • Use f-strings on src/python/pants/testutil and src/python/pants/util/ (#8950) PR #8950

  • Rename public Target methods to use address_spec instead of spec (#8944) PR #8944

  • Only compile non-module exports for export-dep-as-jar goal (#8914) PR #8914

  • Address some remaining issues with setup-py2. (#8927) PR #8927

  • Tweak the argument parser to allow file system specs (#8932) PR #8932

  • Share the local LMDB store to avoid creating one per test method. (#8933) PR #8933

  • Allow python_test_runner.py to get coverage for individual targets (#8910) PR #8910

  • Fix confusing error for an @console_rule not returning a Goal (#8931) PR #8931

  • Have handle_workunits callback use kwargs (#8918) PR #8918

  • Refactor options_test.py (#8906) PR #8906

  • Simplify ./pants test –debug requesting one single address (#8925) PR #8925

  • Stop adding our own colors to V2 test output (#8926) PR #8926

  • Update core test model to include coverage results (#8851) PR #8851

  • Use color in v2 pytest (#8901) PR #8901

  • Hotfix Specs rename conflicting with setup-py2 change (#8920) PR #8920

  • Prepare 1.24.0rc1. (#8919) PR #8919

  • Rename Spec to AddressSpec (#8916) PR #8916

  • Bump up deprecations for the 1.26 series to earlier in the 1.26 dev series (#8908) PR #8908

  • Add type hints to specs.py (#8913) PR #8913

  • Add experimental –fmt-only flag (#8911) PR #8911

  • Extract rule for preparing chrooted python sources (#8899) PR #8899

  • Add deprecated.resolve_conflicting_options to facilitate moving options (#8903) PR #8903

  • Add shell_str type to improve –args option support (#8904) PR #8904

Testing

  • Skip hanging Pantsd integration test (#8961) PR #8961

  • Test multiple V2 formatters modifying the same files (#8850) PR #8850

  • Skip failing tests from #8943 (#8948) PR #8948

  • Add create_options_bootstrapper() test util for less boilerplate in V2 tests (#8943) PR #8943

Documentation

  • Add helpful error message to rule authors when merging non-digests (#8962) PR #8962

  • Fix typo in export docs (#8936) PR #8936

1.25.0.dev0 (01/06/2020)

API Changes

  • Deprecate –fmt-skip and –lint-skip (#8900) Issue #8346 PR #8900

  • Add –skip option to every linter/formatter subsystem (#8898) PR #8898

  • Add ESLint subsystem and deprecate node-distribution ESLint options (#8891) PR #8891

  • Add –black-skip, –isort-skip, and –flake8-skip (#8888) PR #8888

  • Deprecate running python-eval by default (#8889) PR #8889

  • Add scrooge-linter subsystem and deprecate lint-thrift options (#8894) PR #8894

  • Add checkstyle subsystem and deprecate –lint-checkstyle-configuration (#8896) PR #8896

  • Deprecate option.custom_types.dict_option and list_option (#8885) PR #8885

  • Add scalafix, scalafmt, and scalastyle subsystems and deprecate task-level config options (#8886) PR #8886

  • Stop using Java 6 and 7 internally (#8657) PR #8657

  • Bump default MyPy from 0.740 to 0.761 (#8866) PR #8866

Bugfixes

  • Use absolute path when running interactive process in tempdir (#8895) PR #8895

  • Fix ./pants lint2 for Black and isort (#8877) PR #8877 PR #8823

  • Provide input_files Digest to InteractiveRunner (#8855) PR #8855

  • Support enums when displaying option help choices (#8853) PR #8853

  • Hotfix MyPy not working on macOS due to type alias (#8887) PR #8887

  • Fix isort, Pytest, and MyPy options to be fingerprinted (#8871) PR #8871

  • Report a deprecation for the option name rather than for the dest. (#8856) PR #8856

Refactoring, Improvements, and Tooling

  • Use V2 isort internally (#8756) PR #8756

  • Refactor python_test_runner to use the new pex creation rule (#8852) PR #8852

  • Add type hints to option/ and subsystem/ (#8878) PR #8878

  • Replace deprecated assertRaisesRegexp with assertRaisesRegex (#8879) PR #8879

  • Remove deprecated –pytest-requirements, –pytest-timeout-requirements, –pytest-cov-requirements, and –pytest-unittest2-requirements (#8876) PR #8876

  • Partially type check remaining 250 files (#8875) PR #8875

  • Stop referencing Python 4 in Python interpreter constraints (#8867) PR #8867

  • Partially type check TestBase and 235 test files (#8874) PR #8874

  • Finish partially type checking all src code (#8865) PR #8865

  • Refactor option and subsystem tests (#8872) PR #8872

  • Type check build-support/bin/generate_travis_yml.py (#8868) PR #8868

  • Move option and subsystem tests from tests/python to src/python (#8870) PR #8870

  • make match() on Enum into a top-level function in meta.py (#8504) PR #8504

  • add SingleFileExecutable to make it easier to consume Snapshots of executables (#8860) PR #8860

  • improve ergonomics of checking for @union types with new @decorated_type_checkable decorator (#8496) PR #8496

  • Partially type check backend/native and 100 more files (#8864) PR #8864

  • Fix type hints for decorators in memo.py and meta.py (#8863) PR #8863

  • [IntelliJ] Export only modulizable targets when in export-dep-as-jar (#8812) PR #8812

  • Use raw strings to fix regex deprecation warnings (#8880) PR #8880

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page