{"push_id":886544520,"size":70,"distinct_size":70,"ref":"refs/heads/master","head":"fb30d2db66b95d2bb602cbaae60037c18d2710b6","before":"604f58a366b66bc5cfa83e7250cb8af8130832cf","commits":[{"sha":"9a0424863f12161825eb67cc26d5520b2d5c0379","author":{"email":"5c03386320a2b453ce4a1ee67bf5a90e435fee84@gmail.com","name":"Timur Abishev"},"message":"Do not invalidate jvm targets in zinc for resource dependencies change\n\nTarget's jvm compile should not be triggered by changes in dependencies with Resources type.\n\nPR: https://github.com/pantsbuild/pants/pull/2535\nReviewed at https://rbcommons.com/s/twitter/r/3106/\n\nTesting Done:\nhttps://travis-ci.org/ttim/pants/builds/90560450\n\nBugs closed: 2535\n\nReviewed at https://rbcommons.com/s/twitter/r/3106/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/9a0424863f12161825eb67cc26d5520b2d5c0379"},{"sha":"bd0a85deef1abb21022b00e8999b47ba1f8ab600","author":{"email":"8a48ad68f751b273a85583580b85b5eceb3e5ac9@twopensource.com","name":"Kris Wilson (Twitter)"},"message":"Break out core runtime logic into a PantsRunner\n\nThis change sets us up for different methods/modes of running pants. Expect two subsequent PantsRunner variants to follow: `DaemonPantsRunner` (a subclass of LocalPantsRunner that runs in the daemon/nailgunned context) and `ThinPantsRunner` (a nailgun-client PantsRunner).\n\n- Introduce PantsRunner ABC.\n- Break out current pants_exe.py logic into LocalPantsRunner + Exiter.\n- Plumb Exiter usage all the way through to GoalRunner.\n\nTesting Done:\n1) CI green @ https://travis-ci.org/pantsbuild/pants/builds/88187104\n\n2) `PANTS_DEV=1 ./pants clean-all binary examples/src/java::` -> works\n\n3) `PANTS_PROFILE=/tmp/xyz.out PANTS_DEV=1 ./pants clean-all binary examples/src/java::` -> works and produces expected profiling output\n\nBugs closed: 2469\n\nReviewed at https://rbcommons.com/s/twitter/r/3054/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/bd0a85deef1abb21022b00e8999b47ba1f8ab600"},{"sha":"42c741af1057d48cbe4c80d671b9151e6843524c","author":{"email":"2ac228e2f053465958e5e82ec8aff1ff5dd1c7a1@gmail.com","name":"Justin Trobec"},"message":"Run coverage instrumentation once for each target, streamline command line parameters\n\nTesting the latest cobertura code against non-trivial targets revealed a few issues...two of them are addressed here:\n\n1) we run instrumentation once for all files to be instrumented from all targets...existing code runs it for all files x each target.\n2) streamline command-line params by removing unnecessary params (i.e. auxclasspath) and using the listOfFilesToInstrument to keep the command-line short.\n\nThere will be another branch to fix-up the instrumentation classpath...these changes stand on their own tho, so keeping the review small.\n\nTesting Done:\nManual coverage runs against larger projects in twitter code base, also ran manually against oss pants test targets.\n\nBugs closed: 2539\n\nReviewed at https://rbcommons.com/s/twitter/r/3107/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/42c741af1057d48cbe4c80d671b9151e6843524c"},{"sha":"b5d6313847b0c346b1bb249131064f561cd804b2","author":{"email":"86f39098c3d6e8fa24cceea9f4753c2782977b2d@gmail.com","name":"John Sirois"},"message":"Add `pants_requirement()` for plugin authors.\n\nWhen writing a plugin outside the `pantsbuild/pants` repo, if you want\nto use pants itself to build the plugin or test it, you need to express\na BUILD dependency on pants itself.  This should always match the\nrunning pants and for users of the `pantsbuild.pants` official sdists,\nthis is awkward.  The `pants_requirement()` macro provides a clean way\nto express the plugin's dependency on the correct pants distribution.\n\nTesting Done:\nLocally green: `./pants test-changed`.\n\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/90867348\n\nBugs closed: 2545, 2551\n\nReviewed at https://rbcommons.com/s/twitter/r/3112/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/b5d6313847b0c346b1bb249131064f561cd804b2"},{"sha":"3f32eec239f60a69b39e88984a32ca1f2a0bf22c","author":{"email":"dca09fa552d5f5420fc379f8dbee04108226bffc@gmail.com","name":"Tansy Arron-Walker"},"message":"Inline twitter.common.config.Properties and remove t.c.config dep\n\njar_publish was the only consumer. This gets rid of a twitter commons dependency and updates the module to use six.string_types instead of compatibility.string.\n\nTesting Done:\nCI is green: https://travis-ci.org/pantsbuild/pants/builds/90875685\n\nBugs closed: 2544, 2546\n\nReviewed at https://rbcommons.com/s/twitter/r/3113/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/3f32eec239f60a69b39e88984a32ca1f2a0bf22c"},{"sha":"6fa627f5f48762d78aaf7b4cc59c356579119e85","author":{"email":"64b2b6d12bfe4baae7dad3d018f8cbf6b0e7a044@lahosken.san-francisco.ca.us","name":"Larry Hosken"},"message":"docfix: pants.ini must exist with that name. Not some other name.\n\nWhile I was in there, touched that \"As of September 2014...\" sentence.\n\nTesting Done:\nhttps://travis-ci.org/pantsbuild/pants/builds/90838531\n\nBugs closed: 2537\n\nReviewed at https://rbcommons.com/s/twitter/r/3110/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/6fa627f5f48762d78aaf7b4cc59c356579119e85"},{"sha":"69910ce1b4d5b7a6eaf91b4184fc0a91079f794a","author":{"email":"86f39098c3d6e8fa24cceea9f4753c2782977b2d@gmail.com","name":"John Sirois"},"message":"Fixup invoking.md to refer to `--config-override`.\n\nPreviously it referred to a pluralized verison of the flag.\n\nTesting Done:\nPublished here:\n  http://pantsbuild.github.io/staging/jsirois/invoking.html#overlay-ini-files-with-config-override\n\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/90989394\n\nBugs closed: 2555, 2556\n\nReviewed at https://rbcommons.com/s/twitter/r/3115/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/69910ce1b4d5b7a6eaf91b4184fc0a91079f794a"},{"sha":"51c48026691b08d12e6b003ebd3aecaee219b1b2","author":{"email":"86f39098c3d6e8fa24cceea9f4753c2782977b2d@gmail.com","name":"John Sirois"},"message":"Extract `python-eval` and `pythonstyle` to plugin.\n\nThis moves these two tasks to a python checks plugin in contrib and adds\nregistration in the 'compile' goal to enable easy install and activation\nof these extra checks using the `plugins` mechanism; ie a pure\n`pants.ini` activation.\n\nTo enable use of individual checks but not all, a `--skip` is added to\n`python-eval`.\n\nTesting Done:\nLocally ran `./pants test contrib/python/::` and\n`./build-support/bin/release.sh -n` successfully.\n\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/90969899\n\nBugs closed: 2554\n\nReviewed at https://rbcommons.com/s/twitter/r/3114/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/51c48026691b08d12e6b003ebd3aecaee219b1b2"},{"sha":"5672b97211a453cd4320d1efbc41d6e8945fe052","author":{"email":"86f39098c3d6e8fa24cceea9f4753c2782977b2d@gmail.com","name":"John Sirois"},"message":"Remove `--strategy` & `--infer-test-from-siblings`.\n\nThese options were marked deprecated for removal in `0.0.58`.\n\nTesting Done:\nGreen locally:\n  `./pants test-changed --include-dependees=transitive`\n\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/91013471\n\nBugs closed: 2557\n\nReviewed at https://rbcommons.com/s/twitter/r/3116/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/5672b97211a453cd4320d1efbc41d6e8945fe052"},{"sha":"9f7a094ce05dab089ad1efb93f47703f6b54093a","author":{"email":"86f39098c3d6e8fa24cceea9f4753c2782977b2d@gmail.com","name":"John Sirois"},"message":"Prepare the `0.0.58` release.\n\nTesting Done:\nThis ran green locally:\n  `./build-support/bin/publish_docs.sh -opdjsirois`\n\nAnd the CHANGELOG render looks good:\n  http://pantsbuild.github.io/staging/jsirois/changelog.html\n\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/91017846\n\nBugs closed: 2557, 2559\n\nReviewed at https://rbcommons.com/s/twitter/r/3117/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/9f7a094ce05dab089ad1efb93f47703f6b54093a"},{"sha":"e246df1862a14f297ebf7964615d9ac1e334ec2e","author":{"email":"bb1f132dcb86bfc59bf4a043a3139a9ac7c0b658@gmail.com","name":"Stu Hood"},"message":"Add a per-JvmTarget option to pass only direct dependencies to the compiler\n\n_applies atop [r/3036](https://rbcommons.com/s/twitter/r/3036/), but probably doesn't need to_\n\nThis adds support for 'strict' dependency checking, whereby only directly declared dependencies are provided to the compiler.\n\n- Add `strict_deps` to JvmTarget\n- Add the `--strict-deps` option on a new ZincLanguageMixin for subsystems\n- Add a `Java` language subsystem (perhaps the most contentious part of the patch?\n- Compute dependency lists in JvmCompile based on strict deps\n- Fix a package oddity in `org.pantsbuild.zinc` that I noticed while running with strict\n- Clean up tests for missing dependencies, which may now be checked in multiple ways\n\n----\n\nSidenotes:\n\njavac never inspects transitive deps during compilation, so by providing only direct deps you can compile with signficantly smaller classpaths (less analysis loaded, fewer entries to check). scalac, on the other hand, has plenty of cases where transitive deps are necessary for inference. In particular, to compute the least-upper-bound of the left and right hand side of a conditional:\n\n    // may need to inspect transitive deps to infer the LUB for the two types\n    // on the rhs, so that it can be used as the type for the variable on the lhs\n    val animal = if (feline) Cat(\"\") else Dog(\"\")\n\nThis improves in `dotty`, the next version of the scala compiler. Rather than eagerly finding a LUB for the types, it instead infers the type of `animal` to be a union type: literally, `val animal: Cat | Dog`. Later, the types explicitly declared at the use-site for `animal` are checked against the union type:\n\n    def walk(a: Animal) = ???\n    // the typecheck compares the union type to the declared type and passes if:\n    //   (Cat <: Animal && Dog <: Animal)\n    walk(animal)\n\nTesting Done:\nhttps://travis-ci.org/pantsbuild/pants/builds/91009354\n\nBugs closed: 2456\n\nReviewed at https://rbcommons.com/s/twitter/r/3037/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/e246df1862a14f297ebf7964615d9ac1e334ec2e"},{"sha":"a52a5f2a4468ad575e323798f64a986f8d4143fa","author":{"email":"1fa2ef4755a9226cb9a0a4840bd89b158ac71391@digital-wanderlust.com","name":"Matt Olsen"},"message":"Add options to repro and expand user on output file\n\n* Add an option to repro that allows the user to ignore dirs.  This was added to\n  allow users to submit an archive of important dirs when they do clean-all that\n  don't include the whole source tree.\n* Update repro to expand userdir\n\nTesting Done:\nhttps://travis-ci.org/pantsbuild/pants/builds/90852016\nhttps://travis-ci.org/pantsbuild/pants/builds/90997968\nhttps://travis-ci.org/pantsbuild/pants/builds/91033153 [green]\n\nBugs closed: 2542, 2550\n\nReviewed at https://rbcommons.com/s/twitter/r/3109/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/a52a5f2a4468ad575e323798f64a986f8d4143fa"},{"sha":"e7d48dfb5e3d6dab51a02d3701ecc71f5613d774","author":{"email":"c04adb29a15043e181c29f1f6e048ba362b8d55f@gmail.com","name":"Matt Landis"},"message":"Allow per-jvm-target configuration of fatal warnings\n\nProblem\n\nGiven a large codebase with many warnings that are ignored in practice, it's very expensive to simply add `-Xfatal-warnings` (scala) or `-Werror` (java) to the compiler args, since that'd require actually fixing all the warnings in one go.  This means that developers/projects that desire fatal warnings cannot have them, and fatal warnings cannot be made the default for new code.\n\nSolution\n\nAdd a compile.zinc option `default-fatal-warnings` that controls whether fatal warnings are enabled in compilation.\nAdd a jvm_target option `fatal_warnings` that trumps `--compile-zinc-default-fatal-warnings` for that particular target.\n\nResult\n\nLarge legacy codebases with warnings can:\nset `default-fatal-warnings` to `False` and allow individual targets to opt in as appropriate\nor\nset `default-fatal-warnings` to `True`, add `fatal_warnings=False` to all existing jvm targets in their BUILD files, and work on removing those lines target by target, while new targets get fatal warnings by default.\n\nTesting Done:\nhttps://travis-ci.org/pantsbuild/pants/builds/91050661\n\nBugs closed: 2504\n\nReviewed at https://rbcommons.com/s/twitter/r/3080/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/e7d48dfb5e3d6dab51a02d3701ecc71f5613d774"},{"sha":"a285845a6907f745745e712d68f553d5d3461601","author":{"email":"981d5e83fa588ac2434cde15f86f867409cdda95@gmail.com","name":"Karin Lundberg"},"message":"Allow bundle to run for all targets, rather than just target roots\n\nProblem\n\nWe are developing an integration test framework where we will start JVM applications from within a JVM test. As part of this, we need to build the bundles for dependency applications and to have all this happen automatically, we want to specify the jvm_app targets as dependencies for our junit_tests target.\n\nUnfortunately, this currently doesn't work as the bundle task only runs for the target roots, not all targets so calling bundle on the junit_tests target will not call bundle for its dependencies.\n\nSolution\n\nChange the bundle_create task to run for all targets, not just target roots.\n\nThis is in general safe as jvm_app targets should not have dependees themselves and targets should in general depend on library targets, not on jvm_app (or jvm_binary) targets.\n\nBugs closed: 2558\n\nReviewed at https://rbcommons.com/s/twitter/r/3119/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/a285845a6907f745745e712d68f553d5d3461601"},{"sha":"0d95104ee4cc4a27af7549a09c849ed9fdcfdfeb","author":{"email":"040cff05bd320eb0560246813fe142b421636f09@gmail.com","name":"Benjy Weinberger"},"message":"Delay many re.compile calls.\n\nThis is done either by moving the compile calls out of module scope,\nor by importing code lazily.\n\nThis takes re.compile from 11% of startup time, and 100s of calls,\nto 3.5% of startup time, and tens of calls.\n\nTesting Done:\nRan relevant tests locally.\nCI passes: https://travis-ci.org/pantsbuild/pants/builds/91066061\n\nReviewed at https://rbcommons.com/s/twitter/r/3122/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/0d95104ee4cc4a27af7549a09c849ed9fdcfdfeb"},{"sha":"fac976efbc71aef758382015854f550c57d96461","author":{"email":"dca09fa552d5f5420fc379f8dbee04108226bffc@gmail.com","name":"Tansy Arron-Walker"},"message":"Remove use of twitter.common.util.topological_sort in SortTargets\n\nUse our own topological sort which already operates over targets. Allows us to remove a twitter commons dependency.\n\nThis is what our cycle detection on sort looks like now:\n\n```\n]$ ./pants sort testprojects/src/java/org/pantsbuild/testproject/cycle1::\nWARN] Injecting dependency from BuildFileAddress(FilesystemBuildFile(/home/tansy/code/pants/testprojects/src/java/org/pantsbuild/testproject/cycle2/BUILD), cycle2) on testprojects/src/java/org/pantsbuild/testproject/cycle1:cycle1, but the dependency is not in the BuildGraph.  This probably indicates a dependency cycle, but it is not an error until sort_targets is called on a subgraph containing the cycle.\nINFO] Detected git repository at /home/tansy/code/pants on branch master\n\nFAILURE\n\nException caught: (<class 'twitter.common.util.DependencyCycle'>)\n  File \"/home/tansy/code/pants/src/python/pants/bin/pants_exe.py\", line 32, in <module>\n    main()\n  File \"/home/tansy/code/pants/src/python/pants/bin/pants_exe.py\", line 26, in main\n    LocalPantsRunner(exiter).run()\n  File \"/home/tansy/code/pants/src/python/pants/bin/pants_runner.py\", line 60, in run\n    self._maybe_profiled(self._run)\n  File \"/home/tansy/code/pants/src/python/pants/bin/pants_runner.py\", line 57, in _maybe_profiled\n    runner()\n  File \"/home/tansy/code/pants/src/python/pants/bin/pants_runner.py\", line 90, in _run\n    result = goal_runner.run()\n  File \"/home/tansy/code/pants/src/python/pants/bin/goal_runner.py\", line 353, in run\n    result = self._execute_engine()\n  File \"/home/tansy/code/pants/src/python/pants/bin/goal_runner.py\", line 342, in _execute_engine\n    result = engine.execute(self._context, self._goals)\n  File \"/home/tansy/code/pants/src/python/pants/engine/engine.py\", line 26, in execute\n    self.attempt(context, goals)\n  File \"/home/tansy/code/pants/src/python/pants/engine/round_engine.py\", line 218, in attempt\n    goal_executor.attempt(explain)\n  File \"/home/tansy/code/pants/src/python/pants/engine/round_engine.py\", line 47, in attempt\n    task.execute()\n  File \"/home/tansy/code/pants/src/python/pants/backend/core/tasks/console_task.py\", line 57, in execute\n    for value in self.console_output(targets):\n  File \"/home/tansy/code/pants/src/python/pants/backend/core/tasks/sorttargets.py\", line 43, in console_output\n    for group in topological_sort(depmap):\n  File \"/home/tansy/code/pants/build-support/pants_dev_deps.venv/local/lib/python2.7/site-packages/twitter/common/util/__init__.py\", line 101, in topological_sort\n    raise DependencyCycle('Data contained a cycle! Unsatisfied deps: %s' % remaining_deps)\n\nException message: Data contained a cycle! Unsatisfied deps: set([u'testprojects/src/java/org/pantsbuild/testproject/cycle1:cycle1', u'testprojects/src/java/org/pantsbuild/testproject/cycle2:cycle2'])\n```\n\nThis is what a cycle detected exception looks like with this change:\n\n```\n$ ./pants sort testprojects/src/java/org/pantsbuild/testproject/cycle1::\nWARN] Injecting dependency from BuildFileAddress(FilesystemBuildFile(/home/tansy/code/pants/testprojects/src/java/org/pantsbuild/testproject/cycle2/BUILD), cycle2) on testprojects/src/java/org/pantsbuild/testproject/cycle1:cycle1, but the dependency is not in the BuildGraph.  This probably indicates a dependency cycle, but it is not an error until sort_targets is called on a subgraph containing the cycle.\nINFO] Detected git repository at /home/tansy/code/pants on branch tansy.issue2543\n\nFAILURE\n\nException caught: (<class 'pants.build_graph.build_graph.CycleException'>)\n  File \"/home/tansy/code/pants/src/python/pants/bin/pants_exe.py\", line 32, in <module>\n    main()\n  File \"/home/tansy/code/pants/src/python/pants/bin/pants_exe.py\", line 26, in main\n    LocalPantsRunner(exiter).run()\n  File \"/home/tansy/code/pants/src/python/pants/bin/pants_runner.py\", line 60, in run\n    self._maybe_profiled(self._run)\n  File \"/home/tansy/code/pants/src/python/pants/bin/pants_runner.py\", line 57, in _maybe_profiled\n    runner()\n  File \"/home/tansy/code/pants/src/python/pants/bin/pants_runner.py\", line 90, in _run\n    result = goal_runner.run()\n  File \"/home/tansy/code/pants/src/python/pants/bin/goal_runner.py\", line 353, in run\n    result = self._execute_engine()\n  File \"/home/tansy/code/pants/src/python/pants/bin/goal_runner.py\", line 342, in _execute_engine\n    result = engine.execute(self._context, self._goals)\n  File \"/home/tansy/code/pants/src/python/pants/engine/engine.py\", line 26, in execute\n    self.attempt(context, goals)\n  File \"/home/tansy/code/pants/src/python/pants/engine/round_engine.py\", line 218, in attempt\n    goal_executor.attempt(explain)\n  File \"/home/tansy/code/pants/src/python/pants/engine/round_engine.py\", line 47, in attempt\n    task.execute()\n  File \"/home/tansy/code/pants/src/python/pants/backend/core/tasks/console_task.py\", line 57, in execute\n    for value in self.console_output(targets):\n  File \"/home/tansy/code/pants/src/python/pants/backend/core/tasks/sorttargets.py\", line 22, in console_output\n    sorted_targets = sort_targets(targets)\n  File \"/home/tansy/code/pants/src/python/pants/build_graph/build_graph.py\", line 459, in sort_targets\n    roots, inverted_deps = invert_dependencies(targets)\n  File \"/home/tansy/code/pants/src/python/pants/build_graph/build_graph.py\", line 451, in invert_dependencies\n    invert(target)\n  File \"/home/tansy/code/pants/src/python/pants/build_graph/build_graph.py\", line 444, in invert\n    invert(dependency)\n  File \"/home/tansy/code/pants/src/python/pants/build_graph/build_graph.py\", line 444, in invert\n    invert(dependency)\n  File \"/home/tansy/code/pants/src/python/pants/build_graph/build_graph.py\", line 437, in invert\n    raise CycleException(cycle)\n\nException message: Cycle detected:\n\ttestprojects/src/java/org/pantsbuild/testproject/cycle1:cycle1 ->\n\ttestprojects/src/java/org/pantsbuild/testproject/cycle2:cycle2 ->\n\ttestprojects/src/java/org/pantsbuild/testproject/cycle1:cycle1\n```\n\nTesting Done:\nCI is running: https://travis-ci.org/pantsbuild/pants/builds/91062204\n\nBugs closed: 2543, 2561\n\nReviewed at https://rbcommons.com/s/twitter/r/3121/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/fac976efbc71aef758382015854f550c57d96461"},{"sha":"93c97e37eb5336a97225b9f27477503d7edf845c","author":{"email":"86f39098c3d6e8fa24cceea9f4753c2782977b2d@gmail.com","name":"John Sirois"},"message":"Fixup floating `pytest-timeout` dep.\n\nA `1.0.0` release of `pytest-timeout` bumped its pytest dep to\n`>=2.8.0` which conflicts with our injected `pytest` requirement.  As a\nbandaid, bound `pytest-timeout` to prevent conflict.\n\nTesting Done:\nLocally reproed with:\n```\n$ ./pants clean-all test tests/python/pants_test/base::\n...\nException message: Could not satisfy all requirements for pytest>=2.6,<2.7:\n    pytest>=2.6,<2.7, pytest>=2.6.0(from: pytest-cov>=1.8,<1.9), pytest>=2.8.0(from: pytest-timeout)\n``\n\nAfter fix the same command line successfully resolves a test chroot and\ngoes green.\n\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/91257325\n\nBugs closed: 2566, 2567\n\nReviewed at https://rbcommons.com/s/twitter/r/3126/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/93c97e37eb5336a97225b9f27477503d7edf845c"},{"sha":"7f5fd65cb7edc39f90b707e6277fbbd7ab136547","author":{"email":"86f39098c3d6e8fa24cceea9f4753c2782977b2d@gmail.com","name":"John Sirois"},"message":"Prepare the pants `0.0.59` hotfix release.\n\nThis fixes a requirements conflict in the pants python test runner\ncaused by the release of `pytest-timeout` `1.0.0` on 11/15/2015 which\nhas a `pytest>=2.8.0` requirement conflicting with our own\n`pytest>=2.6,<2.7` requirement.\n\nSeveral `0.0.59` deprecations are pushed back to `0.0.60`.\n\nTesting Done:\nCI went green here:\n  https://travis-ci.org/pantsbuild/pants/builds/91260663\n\nBugs closed: 2568\n\nReviewed at https://rbcommons.com/s/twitter/r/3127/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/7f5fd65cb7edc39f90b707e6277fbbd7ab136547"},{"sha":"85b811b27ebf8bed061b6f02484611ace125aa9a","author":{"email":"da4a4efb907a17fabb3e092841511e7f24e226cf@creativedestruction.com","name":"Sameer Brenn"},"message":"Fix append help\n\nCloses #2571\n\nTesting Done:\nBefore this change\n```\n./pants test.pytest --help\n\n--test-pytest-options=\"['str1','str2',...]\" (--test-pytest-options=\"['str1','str2',...]\") ... (default: [])\n    Pass these options to pytest.\n```\n\nAfter this change\n```\n./pants test.pytest --help\n\n--test-pytest-options=<str> (--test-pytest-options=<str>) ... (default: [])\n    Pass these options to pytest.\n```\n\nBugs closed: https://github.com/pantsbuild/pants/issues/2571\n\nReviewed at https://rbcommons.com/s/twitter/r/3131/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/85b811b27ebf8bed061b6f02484611ace125aa9a"},{"sha":"a31e175730dad9b6694204b4de7fbb9906542cbb","author":{"email":"bb1f132dcb86bfc59bf4a043a3139a9ac7c0b658@gmail.com","name":"Stu Hood"},"message":"Fix cases where transitivity is required despite strict_deps; enable within the repo for Java\n\nThis patch fixes two cases where transitive deps are required at compile time despite `strict_deps`:\n\n1. `target` aliases: the direct deps search now walks through aliases (but not fully transitively). In particular, when depending on the alias `3rdparty:protobuf-java`, it is resolved to `3rdparty:protobuf-2.4.1`\n2. \"compiler plugins\": for code that runs in the compiler, compiletime is actually runtime, so transitive deps must be provided\n\nThe patch also enabled `strict_deps` for Java code within the repo, and applies it explicitly to zinc.\n\n----\n\nThere is one open question represented by a few TODOs in the patch: should it be possible for a target `A`, depended on by target `B`, to add additional deps for `B`? Some potential usecases represented by TODOs in the patch:\n\n* @Annotation interfaces seem to be required in cases where a class in package `B` inherits from an annotated class in package `A`\n* In codegen, it will frequently be the case that it is impossible to use the generated code in target `A` without importing a runtime library in target `B`\n* Also in codegen, there are cases where deps are directly inserted into the build graph without existing on disk (see `wire-runtime`), and where writing them out to disk (anywhere other than in `BUILD.tools`) would make it very likely for them to go out of sync with the in memory declaration.\n\nTesting Done:\nhttps://travis-ci.org/pantsbuild/pants/builds/91487624\n\nBugs closed: 2565\n\nReviewed at https://rbcommons.com/s/twitter/r/3125/","distinct":true,"url":"https://api.github.com/repos/jtrobec/pants/commits/a31e175730dad9b6694204b4de7fbb9906542cbb"}]}