Commit Graph

271 Commits

Author SHA1 Message Date
Mark Harrah 5523d16a77 Configurable conflict manager and corresponding documentation on conflictManager, dependencyOverrides, and force(). Fixes #603. 2013-01-11 16:01:31 -05:00
Mark Harrah 1d70775d7b Don't try to automatically detect a main artifact when packaging=pom. Fixes #636.
For the rare case where a main artifact is expected, add an explicit jar()
to the dependency declaration.
2013-01-11 16:01:30 -05:00
Mark Harrah d0815e88ae Split IvyInterface into Artifact, Configuration, ModuleID, and Resolver source files 2013-01-10 16:06:13 -05:00
Mark Harrah bad48a6f0d API documentation for ModuleID methods 2013-01-10 16:06:12 -05:00
Mark Harrah 8e34e15f69 Option to automatically manage API documentation mappings
Set autoAPIMappings := true to enable.

Then, set apiURL to the base URL of the API documentation for a project.
This will get stored in an extra attribute in the ivy.xml or as a property
a pom.xml.

When using managed dependencies that have set their apiURL, the -doc-external-doc
setting for scaladoc will be automatically configured.  Note that this option
will only be available in Scala 2.10.1 and so enabling autoAPIMappings for
earlier versions will result in an error from scaladoc.

For unmanaged dependencies or dependencies without an automatic apiURL, add the
(File,URL) mapping to apiMappings.  The File is the classpath entry and the URL
is the location of the API documentation.
2013-01-10 16:06:12 -05:00
Mark Harrah ff78892895 Disable Ivy debug-level logging (see elaboration below). Fixes #635.
The verbose-level logging is what usually contains relevant information for the user.
Persisting the debug logging slows down update noticeably and clutters the more useful
debug logging output from verbose.
2013-01-10 16:06:12 -05:00
Mark Harrah 16c719764e Convert references to harrah/xsbt to sbt/sbt 2013-01-04 17:22:40 -05:00
Mark Harrah 469202aeec More cleanup of Scala version handling, including managedScalaInstance to control automatic 'scala-tool' configuration and dependencies. 2012-12-09 20:40:41 -05:00
Grzegorz Kossakowski 3f8a09a6c7 Follow source layout convention supported by Eclipse.
Moved source files so directory structure follow package
structure. That makes it possible to use Scala Eclipse plugin
with sbt's source code.
2012-12-07 10:27:08 -08:00
Mark Harrah 91553875a4 add scala-tool configuration and dependencies when configuring via pom.xml/ivy.xml 2012-12-06 07:25:41 -05:00
Josh Suereth 7f5f936db4 Bumped the Scalatest/Specs versions for 2.10.0-RC3
* Modified tests to use mutable Specs API
* Fixed a few minor specs issues.
2012-12-04 13:10:09 -05:00
Mark Harrah ae67f6f85d ConflictWarning cleanup, added strict convenience method for failing on any conflicts 2012-12-02 03:17:19 -05:00
Mark Harrah 3f091e5f86 Resolve Scala version for projects in the normal `update` task.
1. Scala jars won't be copied to the boot directory, except for those needed to run sbt.
2. Scala SNAPSHOTs behave like normal SNAPSHOTs.  In particular, running `update` will properly re-resolve the dynamic revision.
3. Scala jars are resolved using the same repositories and configuration as other dependencies.
4. Classloaders (currently, Scala classloaders) are cached by the timestamps of entries instead of Scala class loaders being cached by version.

TODO: Support external dependency configuration
2012-11-17 20:23:06 -05:00
Mark Harrah c6a3b352c4 taking care of deprecations removed in Scala master 2012-11-14 11:48:06 -05:00
Mark Harrah f95c45f76e Fixes #582. Don't merge dependencies with mismatched transitive/force/changing values.
This avoids the assertion, but note that Ivy is unlikely to work properly in this situation.
2012-11-12 14:45:36 -05:00
Mark Harrah 14057fb211 cleanup of #585: compatible with earlier launchers 2012-10-29 09:52:10 -04:00
Eric Bowman bc6770bec3 XSBT-5: maven-style ivy repo support in the launcher config
Change-Id: I22c1ff126961d61d92e2e45a5b7eff329d3def90
Reviewed-on: https://gerrit.gilt.com/10950
Reviewed-by: Eric Bowman <ebowman@gilt.com>
Tested-by: Eric Bowman <ebowman@gilt.com>
2012-10-29 09:04:42 -04:00
Mark Harrah 614d9976d6 invalidate cache when metadata deleted from local repository 2012-09-23 15:46:26 -04:00
Mark Harrah a0b5b0e7ac Fail publishing when artifacts to publish do not exist. 2012-09-11 11:37:41 -04:00
Mark Harrah 66ac1dbc9a use context logger instead of initial logger for Resolving messages 2012-09-01 09:56:09 -04:00
Mark Harrah 9a0b59b597 Force update on change to last modified time of artifacts or cached descriptor.
This is part 2 of the fix for #532.  It may also fix issues when working with
multiple local projects via 'publish-local' and binary dependencies.
2012-08-29 11:13:48 -04:00
Mark Harrah 7ed0c85097 Second part of resolution cache work. Fixes #532.
Replaces the standard Ivy resolution cache:
 1. Separate the cached resolved Ivy files from resolution reports,
    making resolution reports easier to find (target/resolution-cache/reports/)
 2. Cache location includes extra attributes so that cross builds of a plugin
    do not overwrite each other.
2012-08-29 11:13:48 -04:00
Mark Harrah 69724c4f87 don't write <scope> section of pom if scope is 'compile' 2012-08-28 11:55:24 -04:00
Mark Harrah d641c72a45 per-project resolution cache that deletes cached files before each update
These are the ivy files, properties, and resolve reports for the project,
not dependencies and their artifacts.
2012-08-28 11:55:24 -04:00
Mark Harrah 152d51465d Merge multiple dependency definitions for the same ID. Fixes #468, #285, #419, #480.
This is only a workaround.  Multiple dependency definitions should be avoided
in general.
2012-08-27 10:49:13 -04:00
Thomas Lockney f0bdadc437 Actually pass in the artifact, rather than just a global match 2012-07-17 15:20:26 -04:00
Mark Harrah af6e99acc2 'orbit' packaging should be handled like a standard jar. fixes #499. ref #463 2012-07-06 10:28:51 -04:00
Mark Harrah e54e411451 hk2-jar packaging should be handled like a standard jar. fixes #463 2012-05-16 07:34:15 -04:00
Mark Harrah 9983f6f19a remove duplicate conflict warnings 2012-05-06 15:11:46 -04:00
Mark Harrah 9141618744 change Scala binary version check to a warning 2012-05-06 14:15:03 -04:00
Mark Harrah db3fd82236 more scala-tools replacements 2012-05-05 20:35:04 -04:00
Mark Harrah 52af295b42 deprecations backported to 0.11.3 2012-05-05 20:35:04 -04:00
Mark Harrah 3d1766a96e bump to Ivy 2.3.0-RC1 2012-05-02 19:56:35 -04:00
Mark Harrah 9fe6049352 update-classifiers fixes: mark modules intransitive and don't exclude sources/docs for scala jars 2012-05-02 19:56:35 -04:00
Mark Harrah 9fe72a546e exclude should apply to any artifact type, not just jars. fixes #436 2012-04-28 18:58:52 -04:00
Mark Harrah ce8f7b677d reorganize compilation modules 2012-04-18 08:08:25 -04:00
Mark Harrah c111fc1ae2 configuration via ivysettings.xml: use URI instead of URL and make 'inter-project' resolver available for multi-project builds. ref #416 2012-04-11 22:40:45 -04:00
Michael Allman 38289ad08a Add support for loading Ivy settings from a URL 2012-04-08 20:22:15 -07:00
Indrajit Raychaudhuri 2999cf8df9 Update Resolver configuration
- deprecate scala-tools resolvers
- rename `typesafeResolver` to `typesafeReleases` for consistency
- add reference for other wel known resolvers, viz., oss.sonatype.org and scalasbt.artifactoryonline.com
- rearrange locations for helper methods
2012-03-12 05:25:12 +05:30
Indrajit Raychaudhuri 89122005cb Have convenient toString for `FileCredentials` 2012-02-28 23:01:17 +05:30
Indrajit Raychaudhuri 403383d7cf Added support for providing basic SCM info
Sonatype OSS repo (where many libraries are expected to migrate) requires
populating SCM info in additional to what is already provisioned for
populating in SBT.

We now support populating the basic SCM info as thus:
```
// Usual <scm><url/><connection/></scm>
scmInfo := Some(ScmInfo(url("https://github.com/foo/project"), "scm:git:https://github.com/foo/project.git"))

// Also add <developerConnection/>
scmInfo := Some(ScmInfo(url("https://github.com/foo/project"), "scm:git:https://github.com/foo/project.git", Some("dev_connection")))
```
For anything more esoteric than the basic info, there is always `pomPostProcess` :)
2012-02-28 15:30:51 +05:30
Mark Harrah ec955474c4 Declare extra namespace in ModuleDescriptor for parsed plugin poms. Fixes #368. 2012-02-27 18:38:04 -05:00
Mark Harrah ebc0e90690 add ConflictWarning.disable convenience method 2012-02-21 22:47:07 -05:00
Eugene Vigdorchik 2b3db35d84 test- preffix should be stripped to obtain classifier. 2012-02-21 18:52:50 +04:00
Mark Harrah c74b03513f work around 'data has not been loaded' exception when direct dependency overridden by newer version 2012-02-14 21:59:13 -05:00
Mark Harrah 1b168c37e4 support for dependency overrides 2012-02-14 21:59:12 -05:00
Eugene Vigdorchik 851864f9f6 Mirror ivy \'force\' attribute in sbt. 2012-02-07 20:14:45 +04:00
Mark Harrah 80589d1f5b rework cross versioning to account for prerelease Scala versions 2012-01-22 22:06:53 -05:00
Mark Harrah 45e097e281 org.scala-tools.sbt -> org.scala-sbt and dropping scala-tools.org from defaults 2012-01-22 22:06:52 -05:00
Eric J. Christeson bb30184470 Remove trailing whitespace from entries in credentials file 2011-12-30 11:49:43 -06:00
杨博 3817c0ce48 Allow `ModuleID % Configuration` 2011-12-13 00:08:18 +08:00
Indrajit Raychaudhuri 31f5133ff6 Miscellaneous updates
- honor includeTypes to filter dependency artifact candidates for classifier setting
- prefer the more stable Seq[_] instead of Iterable[_]
- import cleanups
2011-11-22 02:08:16 +05:30
Mark Harrah 7141000e65 revert XNode/Node rename because of shadowing when running full API doc generation 2011-11-19 18:17:30 -05:00
Indrajit Raychaudhuri 4e7f7092ae Cleanups activities
- extract exclusion block to separate method
- replace simple cases of mapping over function with pattern matching
2011-11-20 00:51:04 +05:30
Indrajit Raychaudhuri b31c510f38 Add classifier for 'jar' artifact type only. Closes #257. 2011-11-20 00:10:43 +05:30
Indrajit Raychaudhuri c597ec1e5e Support for enhanced cross build suffix in dependencies. Closes #267
Overloading `%%` for library dependency to allow using a library built
with an alternative version of Scala that is different from the Scala
version used in the current build (but hopefully binary compatible).

This is useful in cases, where the binary build of a dependency with
the exact Scala version isn't yet available but an otherwise binary
compatible build (maybe with a previous Scala release) is available.
2011-11-17 22:17:06 +05:30
Mark Harrah 226db8b597 only require descriptors for dependencies without an explicit URL. fixes #263 2011-11-09 18:30:35 -05:00
Mark Harrah 2eab86bf25 add missing newline in conflict warning 2011-11-04 13:40:59 -04:00
Mark Harrah f478b0b907 log during resolution 2011-11-04 13:40:59 -04:00
Mark Harrah 579938b72e track whether UpdateReport was cached or freshly generated 2011-10-30 18:39:47 -04:00
Mark Harrah 8c1c2a8c1d use Charset.name instead of toString (which currently calls name) 2011-10-26 19:28:26 -04:00
Indrajit Raychaudhuri 34260c022a Use IO.write instead of explicit resource management 2011-10-26 21:43:42 +05:30
Mark Harrah 31e4e5682f drop configurations when storing unavailable classifiers. fixes #46 2011-10-16 17:27:36 -04:00
Jan Berkel 2f52a17b6b Added support for <classifier> in makePom
Avoid second call to getExtraAttribute
2011-10-12 02:59:16 +02:00
Mark Harrah d605408950 fixes #212. dependencies on plugins must be encoded in <properties> element. 2011-10-01 19:47:06 -04:00
Mark Harrah a32278bfc7 require metadata by default 2011-09-21 22:49:58 -04:00
Mark Harrah fe264c4f4e work around for Ivy-899. fixes #194 2011-09-20 20:51:47 -04:00
Mark Harrah 31f492f4bc make ComponentManager honor value of Ivy home provided by the launcher 2011-09-16 23:08:01 -04:00
Indrajit Raychaudhuri a6396f839b Support for simple exclusion rules in inline dependencies
This support excluding a library from the dependency tree for a given
set of `ExclusionRule`s. There are two ways to achieve this:

- Using `organization` and `name` pairs:
val dep = "org" % "name" % "version" exclude("commons-codec", "commons-codec") exclude("org.slf4j", "slf4j-log4j")

- Using `ExclusionRule`:
val dep = "org" % "name" % "version" excludeAll(ExclusionRule("commons-codec", "commons-codec"), ExclusionRule("org.slf4j", "slf4j-log4j"))
2011-09-10 04:32:47 +05:30
Indrajit Raychaudhuri 2585c57760 Honor <exclusions/> in <dependency/> when available 2011-09-06 17:29:42 +05:30
Indrajit Raychaudhuri 2c0819d7c7 Add start-year for compliance in ProjectInfo 2011-09-03 02:19:08 +05:30
Mark Harrah a258d4f3b5 clean up optional dependency handling for make-pom. fixes #162 2011-08-26 23:27:03 -04:00
Mark Harrah 5f674dbea4 more on #155 2011-08-23 19:51:50 -04:00
Mark Harrah 86c0ff1c09 minor improvements to conflict message. closes #132 2011-08-23 19:51:50 -04:00
Mark Harrah 964f83244a improved fix for #155 2011-08-22 22:48:35 -04:00
Mark Harrah 6961dff60e better error when publish resolver from custom configuration doesn't exist 2011-08-22 22:48:21 -04:00
Mark Harrah e73e0938eb remove duplication in conflict warning message 2011-08-22 22:48:21 -04:00
Mark Harrah de91865fae append sbt pattern to leave the default IBiblioResolver pattern in place. fixes #155 2011-08-19 22:13:56 -04:00
Mark Harrah 6d583f36c1 move to 2.9.1 (RC3), bump to 0.11.0-SNAPSHOT 2011-08-16 17:32:26 -04:00
Indrajit Raychaudhuri 9d6fca5d2a Remove some deprecations and redundant code 2011-08-05 13:30:04 +05:30
Mark Harrah c96aa6f9d2 remove obsolete assertion. ref #143 2011-08-04 18:08:21 -04:00
Indrajit Raychaudhuri 479c088772 - Extra Settings are now available to control project information, viz., name, description, homepage, organization name, organization homepage, licenses
- Modified name/signature of some private types/methods to reduce confusion (all in limited scope, so nothing should change from end user's pov)
- Enriched Ivy and Maven descriptors produced out of the box (see Keys.scala and Defaults.scala for more)
- Projects do not need to create custom Ivy <info/> block anymore, there is more settings-specific control instead
2011-08-03 08:49:46 +05:30
Mark Harrah 0c9f6d88f9 use configurations for modules for update-classifiers. fixes #104 2011-07-31 22:17:50 -04:00
Indrajit Raychaudhuri 6dca8bda66 JavaNet1Repository should have legacy layout (see: http://maven.apache.org/pom.html#Repository) 2011-07-31 20:47:10 +05:30
Indrajit Raychaudhuri a24e2d06bb Add java.net M2 repo for convenience 2011-07-31 20:47:10 +05:30
Indrajit Raychaudhuri 009c34e021 fix distribution method (see: http://maven.apache.org/pom.html#Licenses) 2011-07-31 20:47:10 +05:30
Mark Harrah d7a5dca812 fix pom packaging autodetection 2011-07-30 18:11:20 -04:00
Mark Harrah 73d52dc031 fix inter-project dependencies involving extra attributes 2011-07-29 23:33:10 -04:00
Mark Harrah 392754e165 maven-compatible plugin dependency system 2011-07-27 19:50:59 -04:00
Mark Harrah 149edd6ee8 explicitly set pattern for Maven resolver for more control 2011-07-27 19:50:59 -04:00
Mark Harrah 1cbd4a2e47 log conflict messages as one unit 2011-07-27 19:50:58 -04:00
Mark Harrah b8b06a5ba7 fix spurious extra attributes warning 2011-07-25 21:38:01 -04:00
Mark Harrah efe920fff0 includes sbt, Scala version extra attributes in repository/cache patterns 2011-07-23 23:07:54 -04:00
Mark Harrah 1dced5cc41 includes extra attributes in ModuleID.toString 2011-07-23 23:07:54 -04:00
Mark Harrah d96c5ad1b4 extra information when dependencies with extra attributes cannot be resolved 2011-07-23 23:07:54 -04:00
Mark Harrah 703c1e841a preserve extraAttributes in a couple of places 2011-07-23 23:07:54 -04:00
Mark Harrah 7bb3cddf3c drop problem summary for update-seems entirely redundant 2011-07-23 23:07:54 -04:00
Mark Harrah b122934936 support configuring checksums differently for publish, publish-local, update, and update-sbt-classifiers. fixes #115 2011-07-21 22:03:56 -04:00
Mark Harrah 987dc0f3ba use launcher repositories for update-sbt-classifiers. fixes #88 2011-07-19 21:29:05 -04:00
Mark Harrah c766412885 use 'scalaVersion in update' for cross building, IvyScala.substituteCross for generality. fixes #86
also, 'scalaVersion in artifactName` for the version to append to artifacts
2011-07-17 11:26:27 -04:00