Commit Graph

3667 Commits

Author SHA1 Message Date
Antonio Cunei 9aa0985f4b This commit reverts part of 322f6de655
The implementation of Relation should in theory make no difference
whether an element is unmapped, or whether it is mapped to an empty
set. One of the changes in 322f6de655
introduced an optimization to the '+' operation on Relations that,
in theory, should have made no difference to the semantic.

The result of that optimization is that some mappings of the form
"elem -> Set()" are no longer inserted in the forwardMap of the
Relation.

Unfortunately, the change resulted in the breakage of #1430,
causing "set every" to behave incorrectly. There must be, somewhere
in the code, a test on the presence of a key rather than an access
via <relation>.get(), or some other access that bypasses the
supposed semantic equivalence described above. I spent several
hours trying to track down exactly the offending test, without
success.

By undoing the relevant change in 322f6de655, "set every"
works again. That however offers no guarantee that everything else
will keep working correctly; the underlying quirk in the code that
depends on this supposedly inessential detail is also still
lurking in the code, which is less than ideal.
2014-09-11 02:04:17 +02:00
Antonio Cunei 3d981177df Adding test for broken "set every", see #1430
To test, use:
> scripted tests/set-every
2014-09-11 02:03:38 +02:00
Josh Suereth 0f88b7a4f3 Merge pull request #1584 from sbt/wip/fix-test-classloader-issues
Fix issues with specifying scalaHome/scalaInstance and running tests
2014-09-10 12:26:15 -04:00
Josh Suereth da1fc33b52 Removing printlns and adding the test, DOH. 2014-09-09 09:16:10 -04:00
Josh Suereth d2950da9dd Fix issue where ScalaInstance broke the thread-context-classloader for all scala classes.
The issue is that when you manually set a ScalaInstance, i.e. not one from Ivy, the
classpath which is returned for any given configuration ONLY uses Ivy.   This means that
the legitimate Scala JAR files that need to be on the classpath are missing from the list.
For some reason, the way we instantiate tests uses an unfiltered classloader against the
ScalaInstance, *BUT* the thread-context-classloader DOES use a filtered instance by
classpath.   This add the hook into the TestFramework runner creation so that
the classpath accurately reflects the jars needed.

cc @rkuhn
2014-09-09 08:56:51 -04:00
Josh Suereth 50460fad28 Add toString methods to classloaders, for debugging.
* Add toString methods to all classloader classes.
2014-09-09 08:56:20 -04:00
Josh Suereth fa36d0e290 Add missing `configs` method from Project to the build.sbt DSL.
* Create `configs` method for the sbt DSL
* Add ProjectManipulation for this method to implement.
2014-09-09 08:54:43 -04:00
Josh Suereth 9a60ca7da9 Merge pull request #1579 from copumpkin/0.13
Support publishing to file repositories specified in ~/.sbt/repositories. Fixes #1570
2014-09-08 13:24:25 -04:00
eugene yokota b0e4545586 Merge pull request #1582 from sbt/wip/merge-0.13.6
Merge 0.13.6
2014-09-09 02:11:08 +09:00
Josh Suereth 653a1c11ea Merge remote-tracking branch 'origin/0.13.6' into wip/merge-0.13.6 2014-09-08 12:46:08 -04:00
eugene yokota f3a84e39b9 Merge pull request #1581 from sbt/wip/fix-config-class-gc
Fix issue where generated config-classes was not propogated.
2014-09-08 22:57:03 +09:00
eugene yokota 115d404072 Merge pull request #1577 from sbt/wip/fix-inter-project-chains
Split out inter-project resolver into its own Chain.
2014-09-08 22:51:25 +09:00
Daniel Peebles a857ae2759 Fixes #1570 2014-09-08 00:55:58 -04:00
Josh Suereth bc421f0ac9 Fix issue where generated config-classes was not propogated.
Fixes #1568.

This is the fallout of attempting not to leak config-file classes. Since
we DO NOT have valid incremental compiler for config-classes, we've instituted
workaround to ensure that regular incremental compilation *AND* our own
sbt loader do not hose each other.   A full solution will eventually be
to find a way for .sbt files to participate in regular compilation of a
project.

For now, we fix the tracking of generated.class files throughout an sbt
"loadProjects" call, and then clean any .class files that were not
generated for a full reload.   This commit just fixes
a minor tracking issue.
2014-09-07 12:01:50 -04:00
Josh Suereth b43d358e0e Merge pull request #1573 from cunei/wip-scala-bin-compat
Allow the "-bin" Scala version suffix to specify a bincompat version
2014-09-05 11:34:05 -04:00
Josh Suereth dbf69b11cd Split out inter-project resolver into its own Chain.
Fixes #1565

* Create two chains if we have inter-project resolver
  - One which ensures inter-project deps are always taken
  - One which will look in all "other" repositories for
    dependencies and will use the "most up-to-date" -SNAPSHOT
    strategy.
* No additional tests, as this would simple break every
  multi-project test if it were wrong.
2014-09-05 10:40:49 -04:00
Josh Suereth 86480a3f6c Merge pull request #1561 from jamesward/patch-2
Fix url to sbt-dev group
2014-09-04 14:39:51 -04:00
Antonio Cunei a6d85ae2cb Allow the "-bin" Scala version suffix to specify a bincompat version
There is sometimes the need to use a test version of Scala that is
intended to be binary compatible with a standard release version.

At this time, due to the particular logic implemented within sbt,
a non-numeric suffix will never have the same binaryScalaVersion
of a release version ending in ".0", like for instance "2.11.0".

This commit allows developers to use as suffix any string that
begins with "-bin", for instance "2.11.0-bin-compat-test-1".
Such a suffix will have a binaryScalaVersion of "2.11", being
therefore considered binary compatible with release versions.
2014-09-04 01:15:58 +02:00
James Ward cfd9da5789 Fix url to sbt-dev group 2014-08-31 09:51:58 -06:00
eugene yokota 68602278d5 Merge pull request #1557 from gkossakowski/scripted-compactify
Fix `compactify` scripted test failure.
2014-08-27 14:18:28 -04:00
Grzegorz Kossakowski b4110bfc17 Fix `compactify` scripted test failure.
Travis CI stopped allowing long file names on its file system. We need
to explicitly set lower limit on file name length using
`-Xmax-classfile-name` Scala compiler option. We set the limit to 240
characters.

Fixes #1553
2014-08-27 16:24:28 +02:00
Eugene Yokota 7e0c76f5a6 Merge branch '0.13' into 0.13.6 2014-08-24 18:24:37 -04:00
Eugene Yokota 66ad21ec52 notes 2014-08-24 18:21:32 -04:00
Josh Suereth 260d67f288 Merge pull request #1537 from sbt/fix/1275
Improves pom dynamic revision conversion
2014-08-24 18:19:02 -04:00
Josh Suereth dfb5943731 Merge pull request #1555 from sbt/fix/1541-scala-sbt
#1541. Use HTTPS for sbt plugin repository
2014-08-24 18:18:02 -04:00
Eugene Yokota a5a44a88c2 #1541. Use HTTPS for sbt plugin repository 2014-08-24 16:37:24 -04:00
Eugene Yokota d2b86f5cc5 notes 2014-08-23 23:37:45 -04:00
eugene yokota 3aa8e7dd2d Merge pull request #1548 from sbt/fix/1541
HTTPS: Various HTTPS related changes
2014-08-23 23:32:19 -04:00
Eugene Yokota 7e2982e056 notes 2014-08-23 17:47:48 -04:00
Eugene Yokota 2904bdcb32 #1541. Use HTTPS for Typesafe repository 2014-08-23 17:47:48 -04:00
Eugene Yokota 9b42a1899d Fixes #1549. Use HTTPS for Java.net Maven 2 repository 2014-08-23 17:47:48 -04:00
Eugene Yokota 1e180cc030 Deprecate JavaNet1Repository. #1541
I don’t think there’s an alternative for java.net Maven 1 repository.
2014-08-23 17:47:47 -04:00
Eugene Yokota c648a31c59 #1541. Launcher uses HTTPS Maven Central by default 2014-08-23 17:47:47 -04:00
eugene yokota 631ec5134f Merge pull request #1554 from sbt/wip/compactify-pending
#1553/#1546. Mark compactify test as pending
2014-08-23 17:46:33 -04:00
Eugene Yokota 180956f180 #1553/#1546. Mark compactify test as pending 2014-08-23 17:43:43 -04:00
eugene yokota 425940e483 Merge pull request #1551 from sbt/fix/1550
Fixes #1550/#1546. Name hashing change to fix the build
2014-08-23 14:36:50 -04:00
Eugene Yokota bb20310922 Run AnalysisTest without name hashing 2014-08-23 02:58:44 -04:00
Eugene Yokota 1387f720b3 Move notes item to compatibility implication 2014-08-22 19:24:52 -04:00
Eugene Yokota 8f39a84db2 Fixes #1550. Turning off name hashing to test Ant style 2014-08-22 19:15:08 -04:00
Eugene Yokota 112052241c #1550. Fixes scripted/join that broke with #1546
Name hashing is now turned on by default, so I’m changing the value for
inc.Relations.empty, so inc.Analysis.empty functions as expected when
it’s joined with name hashing analyses.
2014-08-22 19:12:27 -04:00
eugene yokota 6fa61e972f Merge pull request #1547 from joshk/patch-1
Use the new Docker queue on Travis
2014-08-22 18:10:35 -04:00
Josh Kalderimis f4c20563d7 bumping the file to run the build again
fixed an issue with the Docker workers
2014-08-22 11:41:21 +02:00
Eugene Yokota f99c5817f5 Based on Ivy's behavior, bringing back approximation
I assumed 1.1+ should be treated as 1.+, but it seems like Ivy treats
it more as “any version that starts with 1.1” including 1.10.
Josh’s original implementation approximates this by making ranges for
multiple digits, 1.1~1.2, 1.10~1.20, etc.
2014-08-22 03:54:32 -04:00
Josh Kalderimis 6e5a57d1bd Use the new Docker queue on Travis
faster, better, stronger

vms boot in seconds, network is more stable

also cleaned up the .travis.yml file a little :)
2014-08-22 09:53:26 +02:00
Eugene Yokota fc504d87d7 notes 2014-08-22 02:56:04 -04:00
eugene yokota 8af683a1f8 Merge pull request #1536 from benmccann/typesafe-https
Fetch typesafe artifacts using https
2014-08-22 02:48:59 -04:00
eugene yokota c69b0066af Merge pull request #1546 from gkossakowski/nameHashingOnByDefault
Enable name hashing incremental compilation by default.
2014-08-21 20:28:39 -04:00
Grzegorz Kossakowski c440c578fc Enable name hashing incremental compilation by default.
This commit changes the default value of `IncOptions.nameHashing` to be
set to true. It means, the improved incremental compilation algorithm
known as "name hashing" will be enabled by default.

In order to disable it, users should add this to their sbt configuration:

  incOptions := incOptions.value.withNameHashing(false)

Number of tests has been cleaned up as part of this change. All tests
that were marked as name hashing specific are removed. The list includes:

  * constants-name-hashing
  * import-class-name-hashing
  * java-static-name-hashing
  * macro-name-hashing
  * struct-name-hashing

We'll keep just regular version of those tests. The tests will just
exercise the default algorithm: name hashing. This is the first step
towards phasing out of the old incremental compilation algorithm.

Apart from that, a few tests changed its status due to enabling name
hashing algorithm.

The `constants` test has been marked pending due to issue described in
#1543.

The `import-class` test has been marked as passing because name hashing
tracks dependencies introduced by import statements correctly, now.

The `macro` test has been marked as pending due to issue described in
#1544.

The `struct` test has been marked as pending due to issue described in
#1545.

The `java-static` has been slightly modified to exercise just static field
and not run into the same issue as with `constants` test.

There are no other known issues related to name hashing so we conclude
that name hashing is ready to be shipped to all sbt, Scala IDE and zinc
users.
2014-08-22 02:08:07 +02:00
Havoc Pennington b202bd6848 Merge pull request #1538 from sbt/fix/1439
Fixes #1439. Fixes metabuild downloading unused Scala 2.10.2
2014-08-20 14:26:02 -04:00
Havoc Pennington b827768faa Merge pull request #1540 from sbt/wip/quieter-cleaning
Removes println when removing unused *.class files.
2014-08-18 12:12:04 -04:00