1.3.x Stable Releases
This document describes releases leading up to the 1.3.x stable series.
1.3.1rc2 (01/12/2018)
The third release candidate for the 1.3.1 stable release.
1.3.1rc1 (11/09/2017)
The second release candidate for the 1.3.1 stable release.
1.3.1rc0 (11/03/2017)
The first release candidate for the 1.3.1 stable release.
API Changes
Bugfixes
- Switch default binary-baseurls to s3 (#4806) PR #4806
- Fix JarCreate invalidation in the presence of changing resources. (#5030) PR #5030
- Allow in-repo scalac plugins to have in-repo deps. (#4987) PR #4987
- Add default routing for OSX High Sierra binaries. (#4894) PR #4894
- Fingerprint a bunch of go options. (#4743) PR #4743
- Improve transitive resolve package checking in tests. (#4738) PR #4738
- Ensure that target root order is preserved (#4708) PR #4708
- Fix new PytestRun task deselection handling. (#4648) PR #4648
Refactoring, Improvements, and Tooling
1.3.0 (06/06/2017)
The 1.3.0 stable release, with no addition changes since the rc4 release!
A quick summary of exciting changes since the 1.2.x branch:
- Pants' python backend has been overhauled and modernized to support caching, and to lower the latency of re-running tests after a code edit.
- Pants now uses a native code 'engine' implemented in rust, which unlocks significant performance improvements in the future.
- A daemon that caches BUILD file parsing and file fingerprinting (and more to follow!) is now ready for alpha testing (with two significant caveats).
- A default set of implicit_sources can now be manually enabled to further reduce BUILD file boilerplate. This option should become the default in the next stable release.
- The Zinc incremental scala compiler is now at 1.0.0, with improved incremental behaviour.
- Style-related tasks that used to be in the compile goal have moved to a new lint goal.
- The fmt goal was added, with support for scalafmt, gofmt, and python isort to start.
- Support for yarnpkg in the node contrib module.
- Support for relative 'jar' declarations, to allow for committing jars in your repo (if that's your bag!)
- A contrib module for errorprone was added.
- Direct support for scalatest tests in the pants JVM test runner.
See the rest of this page for the complete list of changes.
1.3.0rc4 (05/27/2017)
The fifth release candidate for 1.3.0, with fixes for two more user reported issues.
Bugfixes
- Temporarily restore recursive behaviour for bundle filesets (#4630) PR #4630 PR #4624 PR #4624
- Check that test case attribute exists in junit xml file before converting it (#4623) Issue #4619 PR #4623
1.3.0rc3 (05/23/2017)
The fourth release candidate for 1.3.0, which fixes an issue that caused spurious cache misses cross platform in the v2 engine.
Bugfixes
Refactoring, Improvements, and Tooling
- Remove Oracle Java6, which is now 404ing in Travis. (#4615) PR #4615
1.3.0rc2 (05/19/2017)
The third release candidate for 1.3.0. This fixes a few more issues discovered during very thorough testing by the community. Thank you everyone!
API Changes
Bugfixes
- Revert "Enable --compile-zinc-use-classpath-jars by default" (#4607) PR #4607
- Pass env vars through in ./pants run for python (#4606) PR #4606
- Fix broken export-classpath (#4603) PR #4603
- Fix export-classpaths exclude behavior (#4592) PR #4592
- Fix splitting of the build_flags for golang. (#4580) PR #4580
Refactoring, Improvements, and Tooling
- Don't register newpython tasks in the oldpython backend (#4602) PR #4602
1.3.0rc1 (05/12/2017)
The second release candidate for 1.3.0! Thanks to excellent reports from a bunch of folks, a few issues have been shaken out of the new codepaths introduced by the v2 engine.
It's possible that this will be the final release candidate for 1.3.0: please help give it a thorough testing to help discover any more issues!
API Changes
Bugfixes
1.3.0rc0 (05/08/2017)
The first release candidate for the 1.3.0 stable release branch! Almost 7 months in the making, this release brings a huge set of changes, which will be summarized for the 1.3.0 final release.
Please test this release candidate to help ensure a stable stable 1.3.0 release!
API Changes
Bugfixes
- Warn when implicit_sources would be used, but is disabled (#4559) PR #4559
- Ignore dot-directories by default (#4556) PR #4556
- Dockerize native engine builds. (#4554) PR #4554
- Make "changed" tasks work with deleted files (#4546) PR #4546
- Fix tag builds after the more-complete isort edit. (#4532) PR #4532
Refactoring, Improvements, and Tooling
1.3.0.dev19 (4/28/2017)
A weekly unstable release.
API Changes
Bugfixes
Refactoring, Improvements, and Tooling
- [pantsd] Ensure rust panics surface in output or daemon logs (#4522) PR #4522
- Make the release script more idempotent. (#4504) PR #4504
- [engine] pass on ResolveErrors during address injection (#4523) PR #4523
- [engine] Improve error messages for missing/empty dirs (#4517) PR #4517
- Render failed junit tests with no target owner. (#4521) PR #4521
- [engine] Better error messages for missing targets (#4509) PR #4509
- Options should only default to --color=True when sys.stdout isatty (#4503) PR #4503
Documentation Updates
- Add a scala specs2 example (#4516) PR #4516
1.3.0.dev18 (4/21/2017)
A weekly unstable release.
API Changes
- Create a lint goal and put checkstyle tasks in it. (#4481) PR #4481
Bugfixes
- Fix some incorrectly formatted dev release semvers. (#4501) PR #4501
- Make go targets work with v2 changed. (#4500) PR #4500
- Fix pytest fixture registration bug. (#4497) PR #4497
- Don't trigger deprecated scope warnings for options from the DEFAULT section (#4487) PR #4487
- Ensure that incomplete scalac plugin state doesn't get memoized. (#4480) PR #4480
Refactoring, Improvements, and Tooling
- [engine] Skip re-creating copy of address if no variants (#4032) PR #4032
- Default Fetcher.ProgressListener to stderr. (#4499) PR #4499
- A contrib plugin to run the Kythe indexer on Java source. (#4457) PR #4457
- Keep failed target mapping free from None key. (#4493) PR #4493
- Bring back --no-fast mode in pytest run. (#4491) PR #4491
- [engine] Use enum for RuleEdges keys, add factory for Selects w/o variants (#4461) PR #4461
- Bump scala platform versions to 2.11.11 and 2.12.2 (#4488) PR #4488
- Get rid of the '2' registrations of the new python tasks. (#4486) PR #4486
- Make pytest report sources paths relative to the buildroot. (#4472) PR #4472
Documentation Updates
1.3.0.dev17 (4/15/2017)
A weekly unstable release, highlighted by setting the new python backend as the default.
API Changes
Bugfixes
Refactoring, Improvements, and Tooling
1.3.0.dev16 (4/08/2017)
A weekly unstable release.
This release brings the new pantsbuild.pants.contrib.jax_ws plugin that can generate Java client stubs from WSDL sources. Thanks to Chris Heisterkamp for this!
The release also pulls in a few fixes for python requirement resolution in the PEX library used by pants. In the past, the python-setup.resolver_allow_prereleases configuration option would not always be respected; it now is. Additionally, a longstanding bug in transitive requirement resolution that would lead to erroneous 'Ambiguous resolvable' errors has now been fixed. Thanks to Todd Gardner and Nathan Butler for these fixes!
New Features
- Add JAX-WS plugin to generate client stub files from WSDL files (#4411) PR #4411
API Changes
Bugfixes
- Default --resolver-allow-prereleases to None. (#4445) PR #4445
- Fully hydrate a BuildGraph for the purposes of ChangedCalculator. (#4424) PR #4424
- Upgrade zinc to 1.0.0-X7 (python portion) (#4419) Issue #75 Issue #218 PR #4419
1.3.0.dev15 (4/03/2017)
A weekly unstable release, delayed by a week!
This release contains multiple significant new features, including the "exports" literal on JVM targets (to better support common cases in repositories using "strict_deps"), the initial release of the new python backend with caching support, a new "outdated.ivy" goal to report which JVM dependencies are out of date, speedups for go builds, and last but not least: the first release with the v2 engine enabled by default (to enable stabilization of the pants daemon before the 1.3.x stable releases).
Thanks to the contributors!
New Features
- Add outdated.ivy command that looks for 3rd party jar updates with Ivy (#4386) PR #4386
- Implement exports literal in jvm_target (#4329) PR #4329
- Make jar_library target export all its dependencies (#4395) PR #4395
- A temporary python2 backend with just the new python pipeline tasks. (#4378) PR #4378
- [engine] include rule graph in dot files generated with --visualize-to (#4367) PR #4367
- Speed up typical go builds. (#4362) PR #4362
- Enable v2 engine by default. (#4340) PR #4340
API Changes
Bugfixes
- [pantsd] Lazily initialize CpuPool for Core and PosixFS to address SchedulerService crash on Linux. (#4412) PR #4412
- [pantsd] Address pantsd-runner hang on Linux and re-enable integration test. (#4407) PR #4407
- Switch the new PytestRun task to use junitxml output. (#4403) Issue #3837 PR #4403
- [contrib/go] only pass go sources to gofmt (#4402) PR #4402
- Remove Address/BuildFileAddress ambiguity and fix list-owners (#4399) PR #4399
- Avoid creating deprecated resources in JavaAgent's constructor (#4400) PR #4400
- Invalidate all go compiles when the go version changes. (#4382) PR #4382
- Repair handling on resources kwargs for changed. (#4396) PR #4396
- python-binary-create task maps all product directories to the same target (#4390) PR #4390
- Fix Go source excludes; Cleanup old filespec matching (#4350) PR #4350
- inserted a www. into some pantsbuild links to un-break them (#4388) PR #4388
- Switch to using the new PythonEval task instead of the old one. (#4374) PR #4374
- Adding pragma back in the default coverage config (#4232) PR #4232
- decode compile logs (#4368) PR #4368
- Skip cycle detection test (#4361) PR #4361
- [engine] Fix whitelisting of files in pants_ignore (#4357) PR #4357
- Revert the shared workaround (#4354) PR #4348 PR #4354
Refactoring, Improvements, and Tooling
- Cleanup and give better debug output for exclude patterns in findbugs and errorprone (#4408) PR #4408
- [engine] Rules as decorators (#4369) PR #4369
- [engine] Move snapshots from /tmp to pants workdir. (#4373) PR #4373
- [engine] Init Tasks before Scheduler (#4381) PR #4381
- TravisCI tuning. (#4385) PR #4385
- Switch the pants repo entirely over to the new python pipeline. (#4316) PR #4316
- Fix missing deps. (#4372) PR #4372
- A PythonEval task that uses the new pipeline. (#4341) PR #4341
- Create a pants.init package. (#4356) PR #4356
- [engine] short circuit native engine build failures (#4353) PR #4353
- Check for stale native_engine_version. (#4360) PR #4360
- [engine] Improving performance by iteratively expanding products within SelectTransitive (#4349) PR #4349
- Move all logic out of Context (#4343) PR #4343
- Add support for subprojects in v2 (#4346) PR #4346
- Fix missing and circular deps. (#4345) Issue #4138 PR #4345
1.3.0.dev14 (3/17/2017)
A weekly unstable release.
API Changes
Bugfixes
Refactoring, Improvements, and Tooling
- Fix product mapping for ivy resolve when libraries are not jar files (#4339) PR #4339
- Refactor the new SelectInterpreter and GatherSources tasks. (#4337) PR #4337
- Lock down the native-engine-version (#4338) PR #4338
- [engine] Inline execution of Select/Dependencies/Projection/Literal (#4331) PR #4331
- Upgrade to mock 2.0.0. (#4336) PR #4336
- [engine] Improve memory layout for Graph (#4333) PR #4333
- [engine] Split SelectDependencies into SelectDependencies and SelectTransitive (#4334) PR #4334
- Simplify PythonSetup usage (#4328) PR #4328
- Bump native engine version. (#4330) PR #4330
- [engine] Move to new-style CFFI callbacks. (#4324) PR #4324
- Profile the pants invocations in integration tests. (#4325) PR #4325
1.3.0.dev13 (3/10/2017)
A weekly unstable release.
API Changes
- Bump pex version to latest. (#4314) PR #4314
New Features
Bugfixes
1.3.0.dev12 (3/3/2017)
A weekly unstable release.
API Changes
- Completely revamp how we support JVM compiler plugins. (#4287) PR #4287
New Features
Bugfixes
- Fix missed native_engine_version. Commit cbdb97515
Refactoring, Improvements, and Tooling
- [engine] Rust IO (#4265) PR #4265
- [engine] Support implicit sources in v2 engine (#4294) PR #4294
- SelectLiteral isn't tied to the requester's subject: it has its own. (#4293) PR #4293
- Include Javascript files in JVM binary (#4264) PR #4264
- Update errorprone to version 2.0.17 (#4291) PR #4291
- node_modules and node_test support yarnpkg as package manager (#4255) PR #4255
1.3.0.dev11 (2/24/2017)
A weekly unstable release.
API Changes
- Support local jar with relative path in JarDependency (#4279) PR #4279
Refactoring, Improvements, and Tooling
- Upgrade default jarjar to 1.6.4. (#4271) Issue #26 PR #4271
- Memoize validation of deprecated versions (#4273) PR #4273
- [engine] Remove type_id field from Value (#4274) PR #4274
- [New Python Pipeline] Add resources to PEXes correctly. (#4275) PR #4275
- Upgrade default go to 1.8. (#4272) PR #4272
- Fix missed native_engine_version commit. Commit d966f9592
- Make options fingerprinting very difficult to disable (#4262) PR #4262
- Bump pex requirement to 1.2.3 (#4277) PR #4277
- Strip the root-level __init__.py that apache thrift generates. (#4281) PR #4281
- Small tweak to the Dockerfile. (#4263) PR #4263
- Make "./pants changed" output correct results when BUILD files are modified (#4282) PR #4282
- [engine] minor clean up engine.close usage in visualizer (#4284) PR #4284
1.3.0.dev10 (2/17/2017)
Bugfixes
API Changes
New Features
Documentation
- Fixing grammatical error in why use pants doc page (#4239) PR #4239
Refactoring, Improvements, and Tooling
- Work around native engine/tag chicken-egg. (#4270) PR #4270
- [engine] Make Graph.get generic and make Externs static (#4261) PR #4261
- A Dockerfile for building a pants development image. (#4260) PR #4260
- [engine] Use Value in invoke_runnable as the function instead of Function (#4258) PR #4258
- [engine] Storage clean ups (#4257) PR #4257
- [engine] remove Field type in favor of using String directly (#4256) PR #4256
- Remove our use of resources= and resource_targets= in python targets. (#4250) PR #4250
- Get rid of resources=[] stanzas in our JVMTargets. (#4247) PR #4247
- Change engine visual graph layout from LR to TB (#4245) PR #4245
- Simplify ci script test running stanzas. (#4209) PR #4209
- [engine] Porting validation to Rust pt ii (#4243) PR #4243
- Require dev-suffixed deprecation versions (#4216) PR #4216
- [engine] Begin port of engine rule graph validation to Rust (#4227) PR #4227
- Derive object id used in the native context from object's content (#4233) PR #4233
- [engine] Use futures for scheduling (#4221) PR #4221
- Add a 'current' symlink to the task-versioned prefix of the workdir. (#4220) PR #4220
- Improve BUILD file matching in the v2 path. (#4226) PR #4226
- Batch address injections in dependees task. (#4222) PR #4222
1.3.0.dev9 (1/27/2017)
Bugfixes
1.3.0.dev8 (1/20/2017)
API Changes
New Features
- Scrooge codegen improvements (#4177) PR #4177
Refactoring, Improvements, and Tooling
1.3.0.dev7 (1/13/2017)
API Changes
- Upgrade zinc and default scala-platform in pants repo to 2.11 (#4176) PR #4176
New Features
- Add contrib module for Error Prone http://errorprone.info/ (#4163) PR #4163
Refactoring, Improvements, and Tooling
Bugfixes
- fix a small bug in ApacheThriftGenBase class (#4181) PR #4181
1.3.0.dev6 (1/06/2017)
API Changes
1.3.0.dev5 (12/30/2016)
API Changes
- Upgrade default go to 1.7.4. (#4149) PR #4149
Bugfixes
Documentation
1.3.0.dev4 (12/08/2016)
Bugfixes
- Redirect bootstrapping calls in pants binary to stderr (#4131) PR #4131
- Ensure that the protoc root import path is examined first (#4129) PR #4129
- Allow the buildroot to be a source root (#4093) PR #4093
- A flag to add the buildroot to protoc's import path (#4122) PR #4122
- Drop libc dependency from native engine (#4124) PR #4124
- Execute traces for all non-Return values (#4118) PR #4118
Refactoring, Improvements, and Tooling
- directly invoke runnable from native code (#4128) PR #4128
- Bump pex version.
- [engine] model snapshots in validation, make root rules a dict instead of a set (#4125) PR #4125
- classmap: a jvm console task that outputs mapping from class products to their targets (#4081) PR #4081
- Update bintray deploys to use a shared account. (#4126) PR #4126
- Plumb a configurable worker count to thrift linter. (#4121) PR #4121
Documentation
- [docs] Add section for building multiplatform python binaries with native dependencies (#4119) PR #4119
1.3.0.dev3 (12/02/2016)
A weekly unstable release.
API Changes
Bugfixes
- Update junit-runner to 1.0.17 (#4113) PR #4113 PR #4106
- Don't exit the JUnitRunner with number of failures because Java will mod the exit code. (#4106) PR #4106
- Allow for using the native engine from-source in another repo (#4105) PR #4105
- Un-publish the jar goal. (#4095) PR #4095
- Restore compile-zinc-name-hashing option to follow deprecation cycle (#4091) PR #4091
- Fix a Python requirement resolution test bug. (#4087) PR #4087
Refactoring, Improvements, and Tooling
- [engine] Remove variant selecting from native engine (#4108) PR #4108
- Reduce hashing during v2 transitive graph walks (#4109) PR #4109
- Add a native engine release check. (#4096) PR #4096
- Remove coveralls from CI. (#4099) PR #4099
- Run the proto compiler in workunit. (#4092) PR #4092
- Restore propagation of thrown exceptions between rust and python (#4083) PR #4083
- Make cargo build --release the default for native engine bootstrapping. (#4090) PR #4090
1.3.0dev2 (11/20/2016)
A return to the regular schedule of weekly unstable releases.
API Changes
Refactoring, Improvements, and Tooling
- Fixup OSX bintray prep. (#4086) PR #4086
- Task to gather local python sources into a pex. PR #4084
- [engine] Initial Trace implementation for rust engine (#4076) Issue #4025 PR #4076
- Propose a github review workflow RB #4333
- Spelling mistake in first_tutorial (#4045) PR #4045
- Replace instances of pantsbuild.github.io in the docs with pantsbuild.org. PR #4074
- A task to resolve python requirements. PR #4065
- Upgrade zinc's sbt dependency to 1.0.0: python portion RB #4064 RB #4340 RB #4342
- Skip failing tests to get CI green. RB #4391
- Avoid using expensive bootstrap artifacts from temporary cache location RB #4342 RB #4368
1.3.0dev1 (11/16/2016)
There has been a month gap between master releases and a corresponding large number of changes. Most notably:
- Pants now ships with a new native engine core that is the future of pants scalability work.
- Pants has adopted a code of conduct
API Changes
- Make findbugs task not transitive by default and modify findbugs progress output RB #4376
- Adding a Code of Conduct RB #4354
- Surface --dereference-symlinks flag to task caching level RB #4338
- support mutually_exclusive_group parameter in option registration RB #4336
- Deprecate the java_tests alias in favor of junit_tests. RB #4322
- Add a target-types option to scalafmt to avoid formatting all targets RB #4328
- Adding scalafmt formatting to fmt goal RB #4312
Bugfixes
- Capture testcase for unknown test failures in the JUnit Xml RB #4377
- Correction on [resolve.node] RB #4362 RB #4364
- Remove safe_mkdir on results_dir in [resolve.node] RB #4362
- Improve python_binary target fingerprinting. RB #4353
- Bugfix: when synthesizing remote libraries in Go, pin them to the same rev as adjacent libs. RB #4325
- Fix the SetupPy target ownership check. RB #4315
- Update junit runner to 1.0.15 to get java 7 compatibility RB #4324
- Fix erroneous deprecated scope warnings. RB #4323
- Back down the minimum required java version for running Pants tools to java 7 RB #4127 RB #4253 RB #4314
- Fix exclude_target_regexp breakage in test-changed and --files option breakage in changed with diffspec RB #4321
- Prevent cleanup error at end of pants test with --test-junit-html-report option, update safe_rmtree to be symlink aware RB #4319
Refactoring, Improvements, and Tooling
- Format / Sort COMMITTERS.md; Add Yujie Chen to Active list RB #4382
- Bump junit-runner to 1.0.16 RB #4381
- Patch to make scala tests work RB #4361
- Kill un-used pants.jenkins.ini. RB #4369
- Kill unused Jenkins experiment. RB #4366
- Split test_zinc_compile_integration into two smaller tests RB #4365
- Upgrade zinc's sbt dependency to 1.0.0: JVM portion Issue #144 Issue #151 Issue #185 RB #3658 RB #4342 RB #4340
- Perf improvement: rebase analysis file once instead of multiple times Issue #8 RB #4352
- Leverage default sources where possible. RB #4358
- [python-ng] A task to select a python interpreter. RB #4346
- Parallelize thrift linter RB #4351
- normalize filespec exclude usage RB #4348
- clean up deprecated global_subsystems and task_subsystems RB #4349
- [jvm-compile] Ensure all invalid dependencies of targets are correctly represented in compile graph RB #4136 RB #4343
- Change default ./pants fmt.isort <empty> behavior to no-op; Add sources check for isort. RB #4327
- Allow targets to have sensible defaults for sources=. RB #4300
- Remove the long-deprecated Target.is_codegen(). RB #4318
- Add one more shard to travis ci RB #4320
New Engine Work
- Revert "Revert "Generate 32 bit native engine binaries."" RB #4380 Issue #4035
- Add contrib, 3rdparty to copy list for mock buildroot as v2 engine to pass prefix checks. RB #4379
- Generate 32 bit native engine binaries. RB #4373
- Add support for publishing for OSX 10.7+. RB #4371
- Wire up native binary deploy to bintray. RB #4370
- Re-work native engine version. RB #4367
- First round of native engine feedback Issue #4020 RB #4270 RB #4359
- [engine] Native scheduler implementation RB #4270
- Bootstrap the native engine from live sources. RB #4345
1.3.0dev0 (10/14/2016)
The first unstable release of the 1.3.x series.
API Changes
- Add subsystem_utils to test_infra RB #4303
Bugfixes
Refactoring, Improvements, and Tooling
- Migrate changed integration tests to isolated temp git repos and add an environment variable to override buildroot RB #4295
- Get rid of the "Skipped X files" messages from isort output. RB #4301
- Version clarification RB #4299
- Fix isort to run ./pants fmt.isort once. RB #4297
- Dogfood ./pants fmt.isort. RB #4289
- Extract the junit xml report parser. RB #4292
- Leverage default targets throughout pants BUILDs. RB #4287
New Engine Work
- [engine] Improve daemon run profiling. RB #4293