Skip to main content

A bottom-up build tool.

Project description

Pants is an Apache2 licensed build tool written in Python.

The latest documentation can be found here.

RELEASE HISTORY

0.0.28 (2/1/2015)

Bugfixes

  • Numerous doc improvements & generation fixes

    • Steal some info from options docstring

    • Document –config-override & PANTS_ environment vars

    • Document JDK_HOME & JAVA_HOME use when choosing a java distribution

    • Rename “Goals Reference” page -> “Options Reference”

    • Document when to use isrequired

    • Fix Google indexing to ignore test sites

    • Update the code layout section of Pants Internals

    • Show changelog & for that support page(source=’something.rst’)

    • Add a reminder that you can do set-like math on FileSets

    • Hacking on Pants itself, update –pdb doc

    • Start of a “Why Choose Pants?” section

    • Highlight plugin examples from twitter/commons

    • Add a blurb about deploy_jar_rules to the JVM docs

    • Show how to pass -s to pytest

    • When to use java_sources, when not to

    • Start of a Pants-with-scala page

    • Publish page now shows provides= example

    • Add a flag to omit “internal” things

    • Slide tweaks based on class feedback

    • Document argument splitting for options

    Issue #897 RB #1092 RB #1490 RB #1532 RB #1544 RB #1546 RB #1548 RB #1549 RB #1550 RB #1554 RB #1555 RB #1559 RB #1560 RB #1565 RB #1575 RB #1580 RB #1583 RB #1584 RB #1593 RB #1607 RB #1608 RB #1609 RB #1618 RB #1622 RB #1633 RB #1640 RB #1657 RB #1658 RB #1563 RB #1564 RB #1677 RB #1678 RB #1694 RB #1695

  • Add calls to relpath so that we don’t generate overlong filenames on mesos RB #1528 RB #1612 RB #1644

  • Regularize headers RB #1691

  • Pants itself uses python2.7, kill unittest2 imports RB #1689

  • Make ‘setup-py’ show up in ‘./pants goal goals’ RB #1466

  • Test that CycleException happens for cycles (instead of a stack overflow) RB #1686

  • Replace t.c.collection.OrderedDict with 2.7+ stdlib RB #1687

  • Make ide_gen a subclass of Task to avoid depending on compile and resources tasks Issue #997 RB #1679

  • Remove with_sources() from 3rdparty/BUILD RB #1674

  • Handle thrift inclusion for python in apache_thrift_gen RB #1656 RB #1675

  • Make beautifulsoup4 dep fixed rather than floating RB #1670

  • Fixes for unpacked_jars RB #1624

  • Fix spurious Products requirements RB #1662

  • Fixup the options bootstrapper to support boolean flags RB #1660 RB #1664

  • Change Distribution.cached to compare using Revision objects RB #1653

  • Map linux i686 arch to i386 Issue #962 RB #1659

  • bump virtualenv version to 12.0.5 RB #1621

  • Bugfixes in calling super methods in traversable_specs and traversable_dependency_specs RB #1611

  • Raise TaskError on python antlr generation failure RB #1604

  • Fix topological ordering + chunking bug in jvm_compile RB #1598

  • Fix CI from RB 1604 (and change a test name as suggested by nhoward) RB #1606

  • Mark some missing-deps testprojects as expected to fail RB #1601

  • Fix scalac plugin support broken in a refactor RB #1596

  • Do not insert an error message as the “main” class in jvm_binary_task RB #1590

  • Remove variable shadowing from method in archive.py RB #1589

  • Don’t realpath jars on the classpath. RB #1588 RB #1591

  • Cache ivy report dependency traversals consistently RB #1557

  • Print the traceback when there is a problem loading or calling a backend module RB #1582

  • Kill unused Engine.execution_order method and test RB #1576

  • Support use of pytest’s –pdb mode RB #1570

  • fix missing dep. allows running this test on its own RB #1561

  • Remove dead code and no longer needed topo sort from cache_manager RB #1553

  • Use Travis CIs new container based builds and caching RB #1523 RB #1537 RB #1538

API Changes

  • Improvements and extensions of WhatChanged functionality

    • Skip loading graph if no changed targets

    • Filter targets from changed using exclude_target_regexp

    • Compile/Test “changed” targets

    • Optionally include direct or transitive dependees of changed targets

    • Add changes-in-diffspec option to what-changed

    • Refactor WhatChanged into base class, use LazySourceMapper

    • Introduce LazySourceMapper and test

    RB #1526 RB #1534 RB #1535 RB #1542 RB #1543 RB #1567 RB #1572 RB #1595 RB #1600

  • More options migration, improvements and bugfixes

    • Centralize invertible arg logic

    • Support loading boolean flags from pants.ini

    • Add a clarifying note in migrate_config

    • Some refactoring of IvyUtils

    • Rename the few remaining “jvm_args” variables to “jvm_options”

    • ./pants –help-all lists all options

    • Add missing stanza in the migration script

    • Switch artifact cache setup from config to new options

    • Migrate jvm_compile’s direct config accesses to the options system

    • Added some formatting to parse errors for dicts and lists in options

    • s/new_options/options/g

    • Re-implement the jvm tool registration mechanism via the options system

    • Make JvmRun support passthru args

    RB #1347 RB #1495 RB #1521 RB #1527 RB #1552 RB #1569 RB #1585 RB #1599 RB #1626 RB #1630 RB #1631 RB #1646 RB #1680 RB #1681 RB #1696

  • Upgrade pex dependency to 0.8.4

    • Pick up several perf wins

    • Pick up fix that allows pex to read older pexes

    RB #1648 RB #1693

  • Upgrade jmake to org.pantsbuild releases

    • Upgrade jmake to version with isPackagePrivateClass fix

    • Upgrade jmake to version that works with java 1.5+

    Issue #13 RB #1594 RB #1628 RB #1650

  • Fix ivy resolve args + added ability to provide custom ivy configurations RB #1671

  • Allow target specs to come from files RB #1669

  • Remove obsolete twitter-specific hack ‘is_classpath_artifact’ RB #1676

  • Improve RoundEngine lifecycle RB #1665

  • Changed Scala version from 2.9.3 to 2.10.3 because zinc was using 2.10.3 already RB #1610

  • Prevent “round trip” dependencies RB #1603

  • Edit Config.get_required so as to raise error for any blank options RB #1638

  • Don’t plumb an executor through when bootstrapping tools RB #1634

  • Print jar_dependency deprecations to stderr RB #1632

  • Add configuration parameter to control the requirements cache ttl RB #1627

  • Got ivy to map in javadoc and source jars for pants goal idea RB #1613 RB #1639

  • Remove the ‘^’ syntax for the command line spec parsing RB #1616

  • Kill leftover imports handling from early efforts RB #592 RB #1614

  • Adding the ability to pull in a Maven artifact and extract its contents RB #1210

  • Allow FingerprintStrategy to opt out of fingerprinting RB #1602

  • Remove the ivy_home property from context RB #1592

  • Refactor setting of PYTHONPATH in pants.ini RB #1586

  • Relocate ‘to_jar_dependencies’ method back to jar_library RB #1574

  • Update protobuf_gen to be able to reference sources outside of the subdirectory of the BUILD file RB #1573

  • Kill goal dependencies RB #1577

  • Move excludes logic into cmd_line_spec_parser so it can filter out broken build targets RB #930 RB #1566

  • Replace exclusives_groups with a compile_classpath product RB #1539

  • Allow adding to pythonpath via pant.ini RB #1457

0.0.27 (12/19/2014)

Bugfixes

  • Fix python doc: “repl” and “setup-py” are goals now, don’t use “py” RB #1302

  • Fix python thrift generation RB #1517

  • Fixup migrate_config to use new Config API RB #1514

0.0.26 (12/17/2014)

Bugfixes

  • Fix the ScroogeGen target selection predicate RB #1497

0.0.25 (12/17/2014)

API Changes

Bugfixes

  • Numerous doc improvements & generation fixes

    • Updates to the pants essentials tech talk based on another dry-run

    • On skinny displays, don’t show navigation UI by default

    • Handy rbt status tip from RBCommons newsletter

    • Document how to create a simple plugin

    • Update many bash examples that used old-style flags

    • Update Pants+IntelliJ docs to say the Plugin’s the new hotness, link to plugin’s README

    • Publish docs the new way

    • Update the “Pants Essentials” tech talk slides

    • Convert .rst files -> .md files

    • For included code snippets, don’t just slap in a pre, provide syntax highlighting

    • Add notes about JDK versions supported

    • Dust off the Task Developer’s Guide and rm the “pagerank” example

    • Add a sitegen task, create site with better navigation

    • For ‘goal builddict’, generate .rst and .html, not just .rst

    • Narrow setup ‘Operating System’ classfiers to known-good

    Issue #16 Issue #461 Issue #739 RB #891 RB #1074 RB #1075 RB #1079 RB #1084 RB #1086 RB #1088 RB #1090 RB #1101 RB #1126 RB #1128 RB #1134 RB #1136 RB #1154 RB #1155 RB #1164 RB #1166 RB #1176 RB #1178 RB #1182 RB #1191 RB #1196 RB #1205 RB #1241 RB #1263 RB #1277 RB #1284 RB #1292 RB #1295 RB #1296 RB #1298 RB #1299 RB #1301 RB #1314 RB #1315 RB #1326 RB #1348 RB #1355 RB #1356 RB #1358 RB #1363 RB #1370 RB #1377 RB #1386 RB #1387 RB #1401 RB #1407 RB #1427 RB #1430 RB #1434 RB #1440 RB #1446 RB #1464 RB #1484 RB #1491

  • CmdLineProcessor uses binary class name RB #1489

  • Use subscripting for looking up targets in resources_by_products RB #1380

  • Fix/refactor checkstyle RB #1432

  • Fix missing import RB #1483

  • Make ./pants help and ./pants help <goal> work properly Issue #839 RB #1482

  • Cleanup after custom options bootstrapping in reflect RB #1468

  • Handle UTF-8 in thrift files for python RB #1459

  • Optimize goal changed RB #1470

  • Fix a bug where a request for help wasn’t detected RB #1467

  • Always relativize the classpath where possible RB #1455

  • Gracefully handle another run creating latest link RB #1396

  • Properly detect existence of a symlink RB #1437

  • Avoid throwing in ApacheThriftGen.__init__ RB #1428

  • Fix error message in scrooge_gen RB #1426

  • Fixup BuildGraph to handle mixes of synthetic and BUILD targets RB #1420

  • Fix antlr package derivation RB #1410

  • Exit workers on sigint rather than ignore RB #1405

  • Fix error in string formatting RB #1416

  • Add missing class RB #1414

  • Add missing import for dedent in resource_mapping.py RB #1403

  • Replace twitter commons dirutil Lock with lockfile wrapper RB #1390

  • Make interpreter_cache a property, acquire lock in accessor Issue #819 RB #1392

  • Fix .proto files with unicode characters in the comments RB #1330

  • Make pants goal run for Python exit with error code 1 if the python program exits non-zero RB #1374

  • Fix a bug related to adding sibling resource bases RB #1367

  • Support for the –kill-nailguns option was inadvertently removed, this puts it back RB #1352

  • fix string formatting so test -h does not crash RB #1353

  • Fix java_sources missing dep detection RB #1336

  • Fix a nasty bug when injecting target closures in BuildGraph RB #1337

  • Switch src/* usages of Config.load to use Config.from_cache instead RB #1319

  • Optimize what_changed, remove un-needed extra sort RB #1291

  • Fix DetectDuplicate’s handling of an append-type flag RB #1282

  • Deeper selection of internal targets during publishing RB #1213

  • Correctly parse named_is_latest entries from the pushdb RB #1245

  • Fix error message: add missing space RB #1266

  • WikiArtifact instances also have provides; limit ivy to jvm RB #1259

  • Fix [run.junit] -> [test.junit] RB #1256

  • Fix signature in goal targets and BUILD dictionary RB #1253

  • Fix the regression introduced in https://rbcommons.com/s/twitter/r/1186 RB #1254

  • Temporarily change stderr log level to silence log.init if –quiet RB #1243

  • Add the environment’s PYTHONPATH to sys.path when running dev pants RB #1237

  • Remove java_sources as target roots for scala library in depmap project info Issue #670 RB #1190

  • Allow UTF-8 characters in changelog RB #1228

  • Ensure proper semantics when replacing all tasks in a goal RB #1220 RB #1221

  • Fix reading of scalac plugin info from config RB #1217

  • Dogfood bintray for pants support binaries RB #1208

  • Do not crash on unicode filenames RB #1193 RB #1209

  • In the event of an exception in jvmdoc_gen, call get() on the remaining futures RB #1202

  • Move workdirs creation from __init__ to pre_execute in jvm_compile & Remove QuietTaskMixin from several tasks RB #1173

  • Switch from os.rename to shutil.move to support cross-fs renames when needed RB #1157

  • Fix scalastyle task, wire it up, make configs optional RB #1145

  • Fix issue 668: make release.sh execute packaged pants without loading internal backends during testing Issue #668 RB #1158

  • Add payload.get_field_value() to fix KeyError from pants goal idea testprojects:: RB #1150

  • Remove debug_args from pants.ini Issue #650 RB #1137

  • When a jvm doc tool (e.g. scaladoc) fails in combined mode, throw an exception RB #1116

  • Remove hack to add java_sources in context RB #1130

  • Memoize Address.__hash__ computation RB #1118

  • Add missing coverage deps RB #1117

  • get goal targets using similar codepath to goal builddict RB #1112

  • Memoize fingerprints by the FPStrategy hash RB #1119

  • Factor in the jvm version string into the nailgun executor fingerprint RB #1122

  • Fix some error reporting issues RB #1113

  • Retry on failed scm push; also, pull with rebase to increase the odds of success RB #1083

  • Make sure that ‘option java_package’ always overrides ‘package’ in protobuf_gen RB #1108

  • Fix order-dependent force handling: if a version is forced in one place, it is forced everywhere RB #1085

  • Survive targets without derivations RB #1066

  • Make internal_backend plugins 1st class local pants plugins RB #1073

0.0.24 (9/23/2014)

API Changes

  • Add a whitelist to jvm dependency analyzer RB #888

  • Refactor exceptions in build_file.py and build_file_parser.py to derive from a common baseclass and eliminate throwing IOError. RB #954

  • Support absolute paths on the command line when they start with the build root RB #867

  • Make :: fail for an invalid dir much like : does for a dir with no BUILD file. Issue #484 RB #907

  • Deprecate pants & dependencies aliases and remove config, goal, phase, get_scm & set_scm aliases RB #899 RB #903 RB #912

  • Export test infrastructure for plugin writers to use in pantsbuild.pants.testinfra sdist Issue #539 RB #997 RB #1004

  • Publishing improvements:

    • Add support for doing remote publishes with an explicit snapshot name

    • One publish/push db file per artifact

    RB #923 RB #994

  • Several improvements to IdeGen derived goals:

    • Adds the –<goal>-use-source-root for IDE project generation tasks

    • Added –idea-exclude-maven-target to keep IntelliJ from indexing ‘target’ directories

    • Changes the behavior of goal idea to create a subdirectory named for the project name

    • Added exclude-folders option in pants.ini, defaulted to excluding a few dirs in .pants.d

    Issue #564 RB #1006 RB #1017 RB #1019 RB #1023

  • Enhancements to the depmap goal to support IDE plugins:

    • Add flag to dump project info output to file

    • Add missing resources to targets

    • Add content type to project Info

    Issue #5 RB #964 RB #987 RB #998

  • Make SourceRoot fundamentally understand a rel_path RB #1036

  • Added thrift-linter to pants RB #1044

  • Support limiting coverage measurements globally by module or path Issue #328 Issue #369 RB #1034

  • Update interpreter_cache.py to support a repo-wide interpreter requirement RB #1025

  • Changed goal markdown:

    Issue #535 RB #949 RB #961

  • Rename Phase -> Goal RB #856 RB #879 RB #880 RB #887 RB #890 RB #910 RB #913 RB #915 RB #931

  • Android support additions:

    • Add AaptBuild task

    • Add JarsignerTask and Keystore target

    RB #859 RB #883

  • Git/Scm enhancements:

    • Allow the buildroot to be a subdirectory of the git worktree

    • Support getting the commit date of refs

    • Add merge-base and origin url properties to git

    Issue #405 RB #834 RB #871 RB #884 RB #886

Bugfixes

0.0.23 (8/11/2014)

API Changes

  • Remove unused Task.invalidate_for method and unused extra_data variable RB #849

  • Add DxCompile task to android backend RB #840

  • Change all Task subclass constructor args to (*args, **kwargs) RB #846

  • The public API for the new options system Issue #425 RB #831 RB #819

  • Rename pants.goal.goal.Goal to pants.goal.task_registrar.TaskRegistrar Issue #345 RB #843

Bugfixes

  • Better validation for AndroidTarget manifest field RB #860

  • Remove more references to /BUILD:target notation in docs RB #855 RB #853

  • Fix up the error message when attempting to publish without any configured repos RB #850

  • Miscellaneous fixes to protobuf codegen including handling collisions deterministically RB #720

  • Migrate some reasonable default values from pants.ini into ‘defaults’ in the pants source Issue #455 Issue #456 Issue #458 RB #852

  • Updated the basename and name of some targets to prevent colliding bundles in dist/ RB #847

  • Provide a better error message when referencing the wrong path to a BUILD file RB #841

  • Add assert_list to ensure an argument is a list - use this to better validate many targets RB #811

  • Update front-facing help and error messages for Android targets/tasks RB #837

  • Use JvmFingerprintStrategy in cache manager RB #835

0.0.22 (8/4/2014)

API Changes

  • Upgrade pex dependency from twitter.common.python 0.6.0 to pex 0.7.0 RB #825

  • Added a –spec-exclude command line flag to exclude specs by regular expression RB #747

  • Upgrade requests, flip to a ranged requirement to help plugins RB #771

  • New goal ensime to generate Ensime projects for Emacs users. RB #753

Bugfixes

  • goal repl consumes targets transitively RB #781

  • Fixup JvmCompile to always deliver non-None products that were required by downstream RB #794

  • Relativize classpath for non-ng java execution RB #804

  • Added some docs and a bugfix on debugging a JVM tool (like jar-tool or checkstyle) locally RB #791

  • Added an excludes attribute that is set to an empty set for all SourcePayload subclasses Issue #414 RB #793

  • Add binary fetching support for OSX 10.10 and populate thrift and protoc binaries RB #789

  • Fix the pants script exit status when bootstrapping fails RB #779

  • Added benchmark target to maven_layout() RB #780

  • Fixup a hole in external dependency listing wrt encoding RB #776

  • Force parsing for filtering specs RB #775

  • Fix a scope bug for java agent manifest writing RB #768 RB #770

  • Plumb ivysettings.xml location to the publish template RB #764

  • Fix goal markdown: README.html pages clobbered each other RB #750

0.0.21 (7/25/2014)

Bugfixes

  • Fixup NailgunTasks with missing config_section overrides RB # 762

0.0.20 (7/25/2014)

API Changes

Bugfixes

0.0.19 (7/23/2014)

API Changes

Bugfixes

  • Numerous doc fixes RB #699 RB #703 RB #704

  • Fixup broken bundle alias Issue #375 RB #722

  • Remove dependencies on twitter.common.{dirutil,contextutils} RB #710 RB #713 RB #717 RB #718 RB #719 RB #726

  • Fixup missing JunitRun resources requirement RB #709

  • Fix transitive dependencies for GroupIterator/GroupTask RB #706

  • Ensure resources are prepared after compile Issue #373 RB #708

  • Upgrade to twitter.common.python 0.5.10 to brings in the following bugfix:

    Update the mtime on retranslation of existing distributions.
    
    1bff97e stopped existing distributions from being overwritten, to
    prevent subtle errors. However without updating the mtime these
    distributions will appear to be permanently expired wrt the ttl.

    RB #707

  • Resurrected pants goal idea with work remaining on source and javadoc jar mapping RB #695

  • Fix BinaryUtil raise of BinaryNotFound Issue #367 RB #705

0.0.18 (7/16/2014)

API Changes

Bugfixes

0.0.17 (7/15/2014)

  • Initial published version of pantsbuild.pants.

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 Distribution

pantsbuild.pants-0.0.28.tar.gz (646.8 kB view hashes)

Uploaded Source

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