Commit Graph

1121 Commits

Author SHA1 Message Date
Jean-Rémi Desjardins 4c99188f06 Merge branch '0.13' of github.com:sbt/sbt into 0.13 2014-09-10 22:56:01 -07:00
Jean-Rémi Desjardins ac83ec98f2 Add developers keySetting
The motivation for this is mainly to avoid having to define a pomExtra to publish to Maven central
2014-09-10 20:18:28 -07:00
Josh Suereth 33dd118386 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 bff6d7adfa Fixes from review, better names and internal code documentation. 2014-09-10 07:56:19 -04:00
Josh Suereth e1130eabbc Fix Maven configuration mappings in Ivy.
It turns out there was a very subtle, and evil, issue sitting the Ivy/maven configuration, and it
related to dependency mapping.    A mapping of `foo->bar(*)` means that the local configuration
`foo` depends on the remote configuration `bar`, if it exists, or *ALL CONFIGURATIONS* if `bar`
does not exist.   Since the default Ivy configuration mapping was using the random `master`
configuration, which AFAICT is NEVER specified, just an assumed default, this would cause leaks
between maven + ivy projects.

i.e. if  a maven POM depends on a module denoted by an ivy.xml file, then you'd wind up accidentally
bleeding ALL the ivy module's configurations into the maven module's configurations.

This fix works around the issue, by assuming that if there is no `master` configuration, than the
maven default of `compile` is intended.   As sbt forces generated `ivy.xml` files to abide by
maven conventions, this works in all of our test cases.   The only scenario where it wouldn't work
is those who have custom ivy.xml files *and* have pom.xml files which rely on those custom ivy.xml files,
a very unlikely situation where the workaround is:  "define a master configuration".

Includes a test demonstrating the issue.
2014-09-09 17:45:02 -04:00
Josh Suereth f18ef08ed5 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 c34515fcfd 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 b7a056f95d Merge remote-tracking branch 'origin/0.13.6' into wip/merge-0.13.6 2014-09-08 12:46:08 -04:00
eugene yokota 35eed37d04 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 f6212e421e 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
Josh Suereth 448eaff4bd 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 cd9205cffe 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
Antonio Cunei 751305ab95 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
Eugene Yokota 9018085a7a Merge branch '0.13' into 0.13.6 2014-08-24 18:24:37 -04:00
Josh Suereth ca0665d7f0 Merge pull request #1537 from sbt/fix/1275
Improves pom dynamic revision conversion
2014-08-24 18:19:02 -04:00
Josh Suereth 98bdefb9c5 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 97110b6c9d #1541. Use HTTPS for sbt plugin repository 2014-08-24 16:37:24 -04:00
eugene yokota 34ef2d2dd7 Merge pull request #1548 from sbt/fix/1541
HTTPS: Various HTTPS related changes
2014-08-23 23:32:19 -04:00
Eugene Yokota 090e3a6468 #1541. Use HTTPS for Typesafe repository 2014-08-23 17:47:48 -04:00
Eugene Yokota d86e6ccd26 Fixes #1549. Use HTTPS for Java.net Maven 2 repository 2014-08-23 17:47:48 -04:00
Eugene Yokota 1566058227 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 92214f739a 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
eugene yokota 18597ac93a Merge pull request #1536 from benmccann/typesafe-https
Fetch typesafe artifacts using https
2014-08-22 02:48:59 -04:00
Havoc Pennington 9728c086bc 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 7dd1949ab2 Merge pull request #1540 from sbt/wip/quieter-cleaning
Removes println when removing unused *.class files.
2014-08-18 12:12:04 -04:00
Havoc Pennington ed03a6c42d Merge pull request #1539 from sbt/wip/1201
Fixes #1201. Display instruction to overrideScalaVersion
2014-08-18 12:11:56 -04:00
Eugene Yokota 676e95eaee Fixes #1201. Display instruction to overrideScalaVersion
scala-library is currently treated as just one of the library modules.
This means that it’s at the mercy of eviction if some other library
uses newer version of scala-library.
This commit displays a instruction on how to force scalaVersion if
warnScalaVersionEviction flag is true on EvictionWarningOptions.
2014-08-18 00:54:19 -04:00
Eugene Yokota cc02bcef87 Fixes #1439. Fixes metabuild downloading unused Scala 2.10.2
Scala instance is added to the Ivy graph via autoLibraryDependency.
For metabuilds, scala-library is scoped under “provided” configuration,
which does not seem to evict modules on “compiled” configuration.
This commit turns overrideScalaVersion flag to true for the metabuilds,
so override rules are added for the following modules:
- scala-library
- scala-compiler
- scala-reflect
2014-08-17 23:18:32 -04:00
Eugene Yokota 697a28771e Fixes #1275. Fixes pom dynamic revision conversion
Ivy and pom uses slightly different notation for version range and
dynamic revision.
This change fixes the dynamic revisions involving “+”.
First, when a revision like “1.1+” is found, it will now be treated as
“1.+”.
Next, when it finds a revision like “1+” is found, it will be treated
as “+”.
The conversion of “+” is hardcoded to be “[0,)”.
2014-08-16 22:38:35 -04:00
eugene yokota 05c77ae1e9 Merge pull request #1535 from sbt/fix/670
Fixes #670. Exclude http.proxyPassword from update.log
2014-08-16 17:11:10 -04:00
eugene yokota 1b83a50dde Merge pull request #1534 from havocp/wip/havocp-server-mem
Set JVM memory options for server applications
2014-08-16 17:10:47 -04:00
eugene yokota 770766c27d Merge pull request #1533 from sbt/fix/1530
Fixes #1530. Fixes NPE by using IO.listFiles
2014-08-16 14:42:11 -04:00
eugene yokota eaaa47a81c Merge pull request #1532 from sbt/fix/1484-again
Fix NPE during update again
2014-08-16 14:39:33 -04:00
Eugene Yokota 74c6c18a4c Fixes #1484. Fixes another variant of update NPE
Ivy gives an array that contains null for caller configurations.
sbinary barfs when it sees null. Curiously two of the sbt plugins that
hit this bug happens to be from Typesafe:
    addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.2")
    addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager"  % "0.7.3")
2014-08-15 02:57:17 -04:00
Eugene Yokota 1e3f31df16 ModuleDetailReport => OrganizationArtifactReport
ModuleDetailReport hasn’t been released yet, so this rename is safe.
2014-08-15 01:57:21 -04:00
Grzegorz Kossakowski 7ecbc7f869 Merge pull request #1531 from gkossakowski/positions-crash
Set currentRun and currentUnit in Eval
2014-08-14 15:52:01 +02:00
eugene yokota 218ddc24c3 Merge pull request #1512 from sbt/wip/fix-1506
Fix unknown host exception in junit xml listener.
2014-08-12 14:55:20 -04:00
eugene yokota 10e9ce3587 Merge pull request #1521 from sbt/wip/fix-flaky-settings-test
Fixes flaky no-such-element exception from bad generation of random test...
2014-08-12 11:12:44 -04:00
eugene yokota 804772d10d Merge pull request #1516 from sbt/wip/fix-1455
Allow root plugins to be disabled.
2014-08-12 11:12:18 -04:00
Josh Suereth e49e6b46f9 Merge pull request #1520 from sbt/fix/1514
Fixes #1514, #321. Fixes -SNAPSHOT issue by re-implemeting ChainResolver
2014-08-12 10:04:10 -04:00
Eugene Yokota ad2ac6198f Using iterators 2014-08-11 22:49:48 -04:00
Eugene Yokota 333eb706b0 Special treatment for a special resolver: inter-project 2014-08-11 12:45:14 -04:00
Josh Suereth d20bfa50ef Merge pull request #1491 from sbt/fix/528
Unresolved dependency warning includes source position. Fixes #528
2014-08-11 07:51:33 -04:00
Eugene Yokota 8e682691c2 Fixes #1514, #321. Fixes -SNAPSHOT issue by re-implemeting ChainResolver.
Adds `lastestSnapshots` flag to `updateOptions`, which controls the behavior of the chained resolver. Up until 0.13.6, sbt was picking the first `-SNAPSHOT` revision it found along the chain. When  is enabled (default: ), it will look into all resolvers on the chain, and compare them using the publish date.
The tradeoff is probably a longer resolution time if you have many remote repositories on the build or you live away from the severs. So here's how to disable it:

    updateOptions := updateOptions.value.withLatestSnapshots(false)

Ivy by default uses latest-revision as the latest strategy. This strategy I don't think takes in account for the possibility that a changing revision may exist in multiple repositories/resolvers with having identical version number like 0.1.0-SNAPSHOT.
The implementation is a bit hacky, but I think it attacks the core of this problem.
2014-08-10 18:56:58 -04:00
eugene yokota 1b5ecff914 Merge pull request #1515 from sbt/wip/fix-1398
Disable flaky test, as it's timeout based.
2014-08-09 18:31:41 -04:00
eugene yokota d9355fb781 Merge pull request #1507 from sbt/wip/optional-https-maven-central
"Use HTTPS for downloading artifacts from Maven Central" + disable flag
2014-08-09 18:31:13 -04:00
Roberto Tyley 1185e5b5dd Fix pom-export of Maven Central repository
Commit a1e26ca6 broke the `make-pom` & `pom-advanced` dependency-management
tests by replacing one reference to `IBiblioResolver.DEFAULT_M2_ROOT` in
`Resolver`, but not the other reference in `MakePom`:

https://travis-ci.org/sbt/sbt/jobs/31939788#L2517-L2519

...the secure url was no longer recognised as the default Maven Repository
root, so was erroneously exported.
2014-08-08 17:08:54 -04:00
Eugene Yokota 9e245b3fc3 Adds sbt.repository.secure (default: true) #1494 2014-08-08 17:08:54 -04:00
Roberto Tyley 16eb7b28fd Use HTTPS for downloading artifacts from Maven Central
Sonatype have enabled HTTPS access for Maven Central:

http://central.sonatype.org/articles/2014/Aug/03/https-support-launching-now/

Note that the Ivy class IBiblioResolver contains the old http url
(ie DEFAULT_M2_ROOT="http://repo1.maven.org/maven2/"):

http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java?revision=1557968&view=markup#l72
2014-08-08 17:07:44 -04:00
Josh Suereth 5e8a061485 Merge pull request #1509 from sbt/fix/1501
Fixes #1181/#1501. Fixes ArrayIndexOutOfBoundsException: -1
2014-08-08 13:39:01 -04:00