Skip to content
Branch: master
Commits on Jun 11, 2019
  1. Prepare the 1.18.0dev0 release (#7879)

    mateor committed Jun 11, 2019
Commits on Mar 3, 2019
  1. Prepare the 1.15.0.dev2 release. (#7306)

    mateor committed Mar 3, 2019
Commits on Jan 19, 2019
  1. Prepare 1.14.0dev2 release (#7063)

    mateor committed Jan 19, 2019
  2. Move pants.init.subprocess into pants.process (#7081)

    mateor committed Jan 19, 2019
    * Move pants.init.subprocess into pants.process
    ProcessManager, NailgunTask and GlobalOptions BUILD files
    had no declared dependency on the imported module
    This led to runtime failures during test runs that looked like
                      .pants.d/pyprep/sources/ae8f7a03d241798e1604e92b254c9c09a614234a/pants/pantsd/ in <module>
                             from pants.init.subprocess import Subprocess
                         E   ImportError: No module named init.subprocess
    Adding the BUILD dep revealed a cycle:
    Exception message: Build graph construction failed: ExecutionError 1 Exception encountered:
    Computing Select(Specs(dependencies<=tuple>=(SingleAddress(directory=u'tests/python/pants_test/java/distribution', name=u'distribution'),), matcher<=SpecsMatcher>=SpecsMatcher(tags<=tuple>=(), exclude_patterns<=tuple>=())), =TransitiveHydratedTargets)
      Computing Task(transitive_hydrated_targets, Specs(dependencies<=tuple>=(SingleAddress(directory=u'tests/python/pants_test/java/distribution', name=u'distribution'),), matcher<=SpecsMatcher>=SpecsMatcher(tags<=tuple>=(), exclude_patterns<=tuple>=())), =TransitiveHydratedTargets, true)
        Computing Task(transitive_hydrated_target, tests/python/pants_test/java/distribution:distribution, =TransitiveHydratedTarget, true)
          Computing Task(transitive_hydrated_target, src/python/pants/java/distribution:distribution, =TransitiveHydratedTarget, true)
            Computing Task(transitive_hydrated_target, src/python/pants/java:util, =TransitiveHydratedTarget, true)
              Computing Task(transitive_hydrated_target, src/python/pants/java:nailgun_executor, =TransitiveHydratedTarget, true)
                Computing Task(transitive_hydrated_target, src/python/pants/pantsd:process_manager, =TransitiveHydratedTarget, true)
                  Computing Task(transitive_hydrated_target, src/python/pants/init/process:process, =TransitiveHydratedTarget, true)
                    Computing Task(transitive_hydrated_target, src/python/pants/core_tasks:core_tasks, =TransitiveHydratedTarget, true)
                      Computing Task(transitive_hydrated_target, src/python/pants/pantsd:process_manager, =TransitiveHydratedTarget, true)
                        Throw(Dep graph contained a cycle.)
                          Traceback (no traceback):
                            <pants native internals>
                          Exception: Dep graph contained a cycle.
    The solution taken here was to move the subprocess thin wrapper
    into the prexisting pants.process module. This makes the diff
    of this patch less intuitive, because those modules already
    brought that in. But the next-best place would have maybe been
    next to the process_manager, which would require the jvm
    backend to depend on pantsd and all that nonsense.
    This seems like the best fit with the lightest cost - feel free
    to move elsewhere as you see fit in a followup.
    * Add another missing BUILD dep:
    * manual sorting.
    I get no change or sort when running the autotools and I am out of time
    to learn it.
Commits on Nov 27, 2018
  1. Prepare 1.13.0.dev0 release. (#6815)

    mateor committed Nov 27, 2018
Commits on Oct 6, 2018
  1. Prepare 1.11.0.dev2 release (#6603)

    mateor authored and stuhood committed Oct 6, 2018
Commits on Sep 29, 2018
  1. Prepare for 1.11.0.dev1 release (#6573)

    mateor committed Sep 29, 2018
Commits on Mar 26, 2018
  1. Prepare the 1.6.0dev1 release (#5626)

    mateor committed Mar 26, 2018
Commits on Feb 5, 2018
  1. Prepare the 1.5.0dev2 release. (#5439)

    mateor committed Feb 5, 2018
    * Prepare the 1.5.0dev2 release.
Commits on Dec 17, 2017
  1. Prepare the 1.4.0.dev24 release. (#5216)

    mateor committed Dec 17, 2017
Commits on Oct 30, 2017
  1. Prepare the 1.4.0dev18 release. (#5034)

    mateor committed Oct 30, 2017
    * Prepare the 1.4.0dev18 release.
    Releasing due to package signing issues in 1.4.0dev17.
    Bumped version due to changes in the wheels.
    * Update master.rst
Commits on Oct 29, 2017
  1. Have twine use the previously established pgp key during release. (#5031

    mateor committed Oct 29, 2017
    Twine was using the default key of the box, not the key the release
    script gleaned from the git config.
    Explicitly ask twine to use the key from git.
    Correct key used.
    NOTE: Pushing this TBR since it was required for me to complete release.
Commits on Oct 28, 2017
  1. Prepare the 1.4.0dev17 release. (#5028)

    mateor committed Oct 28, 2017
Commits on Sep 14, 2017
  1. Fix markdown rendering typo.

    mateor committed Sep 14, 2017
    Submitting TBR to publish the docsite.
  2. Updated the 1.4.0dev12 release notes (#4862)

    mateor committed Sep 14, 2017
    * Updated the 1.4.0dev12 release notes
    Some changes landed to unblock the release, so updating the notes.
    There was never any packages published under this version, the
    release cut from the coming tag will be the sole 1.4.0dev12 release.
    * Upgrade release to get pyopenssl workaround
Commits on Sep 12, 2017
  1. Downgrade to vanilla requests. (#4858)

    mateor committed Sep 12, 2017
    requests[security] has a dependency on pyopenssl, which is currently
    triggering a depreaction due to an OpenSSL.rand call.
    pyopenssl has fixed this issue in code, but is waiting for a maintainer
    to return from vacation and cut a release.
    In the meantime, the release cannot be completed with the current
    dep due to the non-zero it raises.
          .7/site-packages/urllib3/contrib/ DeprecationWarning: OpenSSL.rand is deprecated - you should use os.urandom instead
      import OpenSSL.SSL
          **** Failed to install cryptography-2.0.3 (caused by: NonZeroExit("received exit code 1 during execution of
    This was a CI-fix around ssl handshakes, and since the CI is currently having its own
    issues, I figured we could unlock the release while we wait.
    If this commit lands, it should be short-term and be undone once the
    pyopenssl can be released.
    References: #4856
Commits on Sep 9, 2017
  1. Prepare the 1.4.0.dev12 release. (#4857)

    mateor committed Sep 9, 2017
Commits on Jul 22, 2017
  1. Prepare the 1.4.0dev6 release. (#4765)

    mateor committed Jul 22, 2017
Commits on Apr 16, 2017
  1. Prepare the 1.3.0.dev17 release. (#4470)

    mateor committed Apr 16, 2017
Commits on Feb 25, 2017
  1. Prepare the 1.3.0.dev11 release. (#4286)

    mateor committed Feb 25, 2017
Commits on Jan 26, 2017
  1. Make open_zip print realpath when raising BadZipfile. (#4186)

    mateor committed Jan 26, 2017
    open_zip is used to unzip jars, but is usually called
    on files under .pants.d, which increasingly are symlinks.
    In the motivating example, a jar was corrupted and could
    not be opened by detect_duplicates task. The Exception was:
    Exception message: Bad Zipfile
    /buildroot/.pants.d/<snip>/syms/org/some/corrupted.jar: \
        File is not a zip file
    The corrupted file is really at the realpath, and
    neither cleaning nor deleting the symlink will help.
    The updated output hopefully makes that more clear.
    This commit also adds a None check for the passed file_path.
    It turns out that zipfile does not filter falsey values but instead
    bubbles up an AttributeError that is tough to traceback:
            # Determine file size
    >, 2)
    E       AttributeError: 'NoneType' object has no attribute 'seek'
    a custom subclass of BadZipFile to return in that instance.
    None of the behavior here is new, this commit just provides improved feedback.
    Passing None to zipfile.Zipfile has always halted execution, as did non-zip files.
Commits on Jan 6, 2017
  1. Prepare the 1.3.0.dev6 release. (#4169)

    mateor committed Jan 6, 2017
Commits on Dec 30, 2016
  1. [docs] Update the cache section on the Task developer page. (#4152)

    mateor committed Dec 30, 2016
    The existing example had a bug, in that it was only checking the cache
    for a VTS of the invalid_vts. I also simplified the examples.
    The new example is possibly marginally not optimal, in that it doesn't update
    the cache with all pairs at once, but once per vt. But we do this within jvm_compile,
    so it isn't like it doesn't happen. But I think that this is much
    clearer about what needs to happen, since it doesn't offload the
    pair construction to an unimplemented match_up function.
Commits on Dec 19, 2016
  1. Ensure that invalid vts have results_dir cleaned before passing to ta… (

    mateor committed Dec 19, 2016
    Tasks that sometimes fail due to outside factors (download failures,
    resolve issues, etc) often would call safe_mkdir(vt.results_dir, clean=True)
    in order to wipe possibly truncated or crufty state.
    But since vt.results_dir is a symlink, that replaced it with a real dir.
    That ended up breaking caching, since:
        * Product pipeline was consuming from the vt.results_dir
        * But the artifacts in the cache were created using vt.current_results_dir,
           which no longer got the output.
    If a target is invalid, the cache_manager will now wipe the results_dir prior
    to passing to the task, removing the need for tasks to clean it themself.
    It also now checks to make sure that the results_dir is legal before marking
    a VT valid and passing to the artifact_cache.
    * Raise an Exception if relative_symlink tries to unlink a concrete file
    * Copy over previous results *only* after checking for cache hits
        * Before this change every file in compile.zinc results_dir was copied twice
           per cache hit, and then thrown away. Now it only copies after a cache miss.
    The majority of the change is added test coverage to cover the original
    and added behavior.
Commits on Nov 21, 2016
  1. Prepare the 1.3.0dev2 release. (#4080)

    mateor committed Nov 21, 2016
Commits on Oct 1, 2016
  1. Prepare the 1.2.0dev12 release

    mateor committed Oct 1, 2016
    Testing Done:
    Unit tests pass
    Travis is away:
    Bugs closed: 3920
    Reviewed at
Commits on Sep 29, 2016
  1. Update binary_util OS map for OSX Sierra.

    mateor committed Sep 29, 2016
    This is in anticipation of posting the rebuilt
    binaries for 10.12. This will land in master as
    a followup.
    Testing Done:
    Ran the unit tests locally - CI is green.
    Hope to get the binaries up tonight, I finished installing Sierra this morning.
    My home MacBook was, um, two major versions behind.
    Bugs closed: 3910
    Reviewed at
Commits on Aug 13, 2016
  1. Prepare the 1.2.0-dev4 release.

    mateor committed Aug 13, 2016
    Testing Done:
    Passed the unit tests and dry-run. Travis is away:
    Bugs closed: 3781
    Reviewed at
Commits on Jun 25, 2016
  1. Prepare the 1.1.0-pre6 release

    mateor committed Jun 25, 2016
    Testing Done:
    Travis/Jenkins is running and I am currently doing a dryrun.
    Bugs closed: 3600
    Reviewed at
Commits on Jun 9, 2016
  1. Delete the spindle-plugin from contrib.

    mateor committed Jun 9, 2016
    We now publish this out of, and the Pants contrib
    module code has lagged behind. It is unlikely to get any further
    updates from Foursquare and since it isn't providing much value
    elsewhere we think it should be deleted.
    It used to be useful as an example of a contrib module
    but now that there are many plugins that no longer
    is unique.
    It is unclear if we have any process around halting updates
    or deleting plugins. But a bunch plugins are only being
    published because we hardcode the pantsbuild.pants requirement,
    the plugins themselves are generally pretty stable.
    Testing Done:
    Passed Travis. (Jenkins failed b/c the node download failed, unrelated):
    Ran a dryrun of the
    Bugs closed: 3571
    Reviewed at
Commits on May 10, 2016
  1. Prepare the 1.1.0-pre0 release.

    mateor committed May 10, 2016
    First release with new numbering scheme.
    Releases from master are now labeled 1.1.M-preN.
    Pants is building to patch number M and is N
    zero-indexed releases towards that milestone.
    The 1.0.0 is still the currently LTS release.
    Versions under the 1.1.M-preN numbering scheme
    are to be considered volatile in comparison.
    * Removed options that were to be deprecated in 0.0.83.
    * Bumped deprecation of `preferred_jvm_distribution`.
      It was to expire in .89, so bumped it to 1.1.1 for now.
    Testing Done:
    Ran the unit tests and pre-commit tests.
    Jenkins run is away (again):
    Bugs closed: 3375
    Reviewed at
Commits on Apr 24, 2016
  1. Add public API markers to targets and base tasks used by plugins.

    mateor committed Apr 24, 2016
    Foursquare has plugins that use these internally and they appear
    to be things that would be of use to task or plugin developers.
    The targets are self explanatory - we consume products of these
    targets in plugin tasks. The fingerprint strategy is a core tool
    in a task developer's toolbox.
    If the task involves jvm code, then it may need do jar operations,
    this exposes as public some of those tasks.
    Ivy is marked public because it provides a custom exception that
    doesn't inherit from anything descriptive - Ivy.Error is just an
    Exception. We publish jars with a custom pom-publish task - where
    every jar has a common version. Catching Ivy failures required
    catching Ivy.Error.
    Testing Done:
    I ran the unit tests locally to catch style or syntax errors.
    Running the CI to be sure since we are getting so close to release.
    Bugs closed: 3253
    Reviewed at
Commits on Apr 21, 2016
  1. Remove duplicated line from ci help.

    mateor committed Apr 21, 2016
    The android skip was miakenly defined twice,
    here and on line 33
    Testing Done:
    Manually compared the help before/after.
    Did not run the CI since there was no functional changes.
    Reviewed at
Commits on Apr 12, 2016
  1. Remove unused config_section from codegen tasks.

    mateor committed Apr 12, 2016
    I thought that we had banned tasks the CONFIG_SECTION.
    We had a couple tasks internally that still
    defined (but did not use) the config_section method.
    I removed them internally and thought I would do the same for upstream.
    Testing Done:
    Travis and Jenkins passed. I didn't notice
    any functional changes in the help.
    Bugs closed: 3177
    Reviewed at
Commits on Mar 19, 2016
  1. Add the Android SDK to the linux CI and turn on Android tests.

    mateor committed Mar 19, 2016
    This installs and caches the Android SDK on linux CI
    runs. The debug.keystore used to be installed along
    with the SDK - but I had to recreate it for the CI.
    That directory is cached so it should only run once
    or if a layer changes.
    The Android tests will now be run in the contrib shard.
    In 3531 I maintained the '-a' flag as a way to skip
    running Android tests, even now that it is moved to
    contrib. I did that because since the OSX CI is not
    container based it would have to redownload the entire
    SDK each run. So Android tests (and the install-android-sdk
    script) are only being run on the Linux CI.
    Testing Done:
    This is all that is left to land: A travis run with just the RB passed at:
    Bugs closed: 10, 937, 2993, 3006, 3012
    Reviewed at
You can’t perform that action at this time.