summaryrefslogtreecommitdiff
path: root/src/build
Commit message (Collapse)AuthorAgeFilesLines
* Include scalap in the distro.Adriaan Moors2014-05-281-0/+5
|
* Re-added the scala.util.parsing package import, with optional resolution.Tobias Roeser2014-05-091-1/+1
|
* Refined package imports for scala modules.Tobias Roeser2014-05-061-2/+2
| | | | Made scala.xml.* import optional and removed scala.util.parsing.json import.
* Add JavaSE-1.7 to set of required execution environments.Tobias Roeser2014-05-0511-21/+11
| | | | Without it, Equinox on Java 7 might spit out some warnings, which might lead to the wrong impression, that the Scala bundles are not well supported for newer platforms.
* Restrict Import-Package for scala.*Tobias Roeser2014-04-3011-8/+40
| | | | | | | | Restrict the Import-Package OSGi manifest entry to match only binary compatible scala.* packages. This is necessary, because the Scala OSGi versions do not match the OSGi semantic versioning policy and are not binary compatible between their OSGi minor versions. This means that e.g. the scala-compiler-2.11 bundle will never work if it imports a scala.* package from 2.10 or 2.12. Thus this patch enforces a tight version range, only accepting versions within the same minor version. E.g. Applied to version 2.11.1 the range would expand to "[2.11,2.12)". Additionally, a Java 6 execution environment will be enforced for OSGi. All module bundles need to have their own version numbers. This was not the case before this commit. Although these module bundles were only build for testing, they are needed to be correct, now, that we have stricter package import constraints and some test cases rely on them.
* Further tweak version of continuations plugin in scala-dist.pomJason Zaugg2014-04-031-1/+2
| | | | | | | | | | | | | | | | | | | | While we must use full version, rather than the cross version (12720e699), we need to use latest non-snapshot version. This should avoid failures like: https://jenkins.scala-ide.org:8496/jenkins/view/Scala%20Xsource%20flag%20nightlies/job/Akka/63/console Such as: [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: UNRESOLVED DEPENDENCIES :: [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: org.scala-lang.plugins#scala-continuations-plugin_2.11.0-SNAPSHOT;1.0.1: not found [warn] :::::::::::::::::::::::::::::::::::::::::::::: sbt.ResolveException: unresolved dependency: org.scala-lang.plugins#scala-continuations-plugin_2.11.0-SNAPSHOT;1.0.1:
* Remove scala-continuations-plugin from scala-library-allAdriaan Moors2014-03-282-5/+10
| | | | | | The continuations plugin should instead be a dependency of scala-dist, as scala-library-all should be a drop-in replacement for scala-library, and as such should not (indirectly) depend on plugins/the compiler.
* No longer generate deprecated dists/maven/latest/build.xmlAdriaan Moors2014-03-031-281/+0
| | | | | The distpack-maven-* targets no longer create said dir/build. Use the publish tasks directly instead.
* Remove cruft from pom.Adriaan Moors2014-01-219-100/+1
| | | | | My understanding is distributionManagement is only needed to configure maven locally for publishing. Since we do that it ant, getting rid of it.
* Explicit jline dependency.Adriaan Moors2013-12-202-1/+12
| | | | | | | | | Duplicated from scala-compiler's pom (where it's optional), so that resolving scala-dist's transitive dependencies include jline. We won't see scala-compiler's optional dependency on jline when depending on scala-compiler. TODO: remove duplication once we have the scala-compiler-repl module
* Fix typo in scala-library-all-pom.xml.Adriaan Moors2013-12-201-2/+2
|
* scala-library-all: dependency for those who want it allAdriaan Moors2013-12-193-34/+165
| | | | | | | If you'd rather depend on all Scala has to offer, module-wise, depend on scala-library-all. This dependency determines the jars that ship with the Scala distribution. To achieve parity via maven resolution, this is the artifact to depend on.
* scala-dist: all you need to roll your own scala distributionAdriaan Moors2013-12-192-10/+130
| | | | | | | | | | | | | | | | | We now publish a scala-dist artifact every time we publish to maven. It captures everything needed to build a Scala distribution. The packager should resolve all transitive dependencies of scala-dist, put the class-file jars in the lib/ directory, the scaladoc jars in the api/ directory, and the source jars in the src/ directory, in addition to unpacking the scala-dist jar itself, which contains the bin/, doc/ and man/ directories, which previously weren't available on maven. This also removes the `@{dir}` abstraction, which was used to package the continuations plugin. Since it's moved out, we can go back to hard-coding it.
* Prepare maven-based distribution building.Adriaan Moors2013-12-191-11/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | NOTE: `maven/latest/build.xml` is now deprecated. To publish a Scala build, simply call `ant publish` or `ant publish-local`. `maven/latest/build.xml` will soon disappear from `dists/` The idea is that a Scala distribution is a simple repackaging of artifacts already available on maven. Already available: typical jars for the artifacts (classes, sources, scaladoc). To add: the bin/, doc/, and man/ directories. Thus, move the contents that should end up in the distribution from docs/ to doc/, create the man/ directory with the manpages, and include the scripts in bin/. Next up: package these directories in a jar and publish to maven, with a dependency on scala-library-all, scala-reflect and scala-compiler, for the jars that should end up in the distribution. Refactorings: - Pull filter-pom out from deploy-one. - Rename maven-base to dist.maven. - Set all properties in the init target (dist.maven)
* Fix osgi bundle name for continuations.Adriaan Moors2013-12-132-2/+2
|
* Modularize the swing library.Adriaan Moors2013-12-134-68/+1
| | | | | The Scala Swing library will still ship with 2.11 (albeit unsupported). It now resides at https://github.com/scala/scala-swing.
* Modularize continuations plugin.Adriaan Moors2013-12-136-67/+11
| | | | | The continuations plugin and library will still ship with 2.11 (albeit unsupported). They now reside at https://github.com/scala/scala-continuations.
* Refactoring to prepare modularization of the compiler.Adriaan Moors2013-11-126-15/+165
| | | | | | | | | | | | | | | | | | Actual modularization is delayed until 2.12. The one big (one-line) change is to make the interactive compiler independent of scaladoc. We have one "integration test": `MemoryLeaksTest`. This commit adds a bunch of comments marked `TODO: modularize the compiler`, that should be uncommented when we're ready to continue the modularization effort. I decided to merge them commented out to avoid having to rebase xml patches. There's still some chance of bitrot, but I'm willing to take my chances. I previously refactored the build to make it easier to add jars in a coherent way, which hinges on the `init-project-prop` mechanism, so the relevant properties are already injected there.
* De-duplicate logic in maven deployment.Adriaan Moors2013-11-061-22/+47
|
* Tidy pom xml files.Adriaan Moors2013-10-257-366/+358
|
* Fail build on error in signed maven publish.Adriaan Moors2013-10-251-1/+1
|
* Build cleanup. Prepare for scaladoc module build.Adriaan Moors2013-10-221-11/+10
|
* Towards minimal build for publishing core to maven.Adriaan Moors2013-10-222-2/+2
| | | | | | | | | | | | Use `unless` attribute in targets so that `docs.skip` influences dependency graph. Create `scaladoc` task in `pack.core` so that we don't need `pack.done` for publishing the core. Move source bundle creation from `dist.src` to `osgi.core`/`osgi.done`. Split dependencies of maven publishing into core/all variants: `osgi.core` creates osgi bundles for just lib/reflect/comp.
* Support publishing to maven from main buildAdriaan Moors2013-10-221-100/+101
| | | | | | | | | | | Publish to maven with `ant publish.local`, `ant publish`, or `ant publish.signed`. For now, we must keep copying `src/build/maven/maven-deploy.xml` to `dists/maven/latest.build.xml`, along with its dependencies, as it's used by jenkins jobs and PR validation. TODO: `inline src/build/maven/maven-deploy.xml` into `build.xml`.
* Inline src/build/pack.xml into build.xml.Adriaan Moors2013-10-211-263/+0
| | | | It tended too easily to get out of synch with build.xml.
* Correct license to 3-clause BSD in poms.Adriaan Moors2013-10-217-21/+14
|
* Use overwriting copy uniformly in our build.Jason Zaugg2013-10-181-11/+11
| | | | | | | | | | The staleness problem in our build had its roots in the flawed uptodate check fixed in the previous commit, but I spent a lot of time looking at these first. Maybe one was also complicit. We've got better things to worry about, so lets make the all overwrite.
* Skip more under ant -Ddocs.skip.Jason Zaugg2013-10-182-8/+17
| | | | | | | | - skip docs.lib, which doesn't route through the staged-docs macro - skip copying docs to the staged maven distribution - skip maven local deploy of doc jar under this mode - skip devel docs tarring
* Merge pull request #2942 from retronym/topic/build-number-mavenGrzegorz Kossakowski2013-09-171-1/+1
|\ | | | | Remove build.number.maven
| * Remove build.number.mavenJason Zaugg2013-09-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I can't find any justification for having this information in both build.number and build.number.maven. They have drifted apart on the 2.10.x branch, although that doesn't matter because build.number is correct, and loaded first, and Ant properties are write-once. I'm assuming that the Ant tasks in src/build/pack.xml are only invoked through the <antcall>-s in ./build.xml. Here's a test of that from the 2.10.x branch: % cat build.number #Tue Sep 11 19:21:09 CEST 2007 version.major=2 version.minor=10 version.patch=3 # This is the -N part of a version. if it's 0, it's dropped from maven versions. version.bnum=0 # Note: To build a release run ant with -Dbuild.release=true # To build an RC, run ant with -Dmaven.version.suffix=-RCN % cat build.number.maven version.major=2 version.minor=10 version.patch=0 % git diff diff --git a/build.xml b/build.xml index 3a83aa4..5cb952c 100644 --- a/build.xml +++ b/build.xml @@ -62,6 +62,9 @@ TODO: <target name="distpack" depends="dist.done, docs.done"> <ant antfile="${src.dir}/build/pack.xml" target="pack-all.done" inheritall="yes" inh + <target name="distpack.maven.info"> + <ant antfile="${src.dir}/build/pack.xml" target="pack-maven.info" inheritall="yes" i + <target name="distpack-maven" depends="dist.done, docs.done"> <ant antfile="${src.dir}/build/pack.xml" target="pack-maven.done" inheritall="yes" i diff --git a/src/build/pack.xml b/src/build/pack.xml index 20c4034..56863ff 100644 --- a/src/build/pack.xml +++ b/src/build/pack.xml @@ -133,6 +133,10 @@ MAIN DISTRIBUTION PACKAGING <mkdir dir="${dists.dir}/maven/${version.number}"/> </target> + <target name="pack-maven.info"> + <echo message="version.patch = ${version.patch}"/> + </target> + <target name="pack-maven.libs" depends="pack-maven.start"> <macrodef name="mvn-copy-lib"> <attribute name="mvn.artifact.name"/> % ant distpack.maven.info Buildfile: /Users/jason/code/scala2/build.xml distpack.maven.info: pack-maven.info: [echo] version.patch = 3 Notice how the stale `version.patch=0` in build.number.maven is ignored.
* | SI-7841 Remove commented out AnyRef specialization from Function{0,1}.Jason Zaugg2013-09-151-2/+2
|/ | | | In a sign of decreased optimism about that facility.
* Fix dbuild meta info: remove scaladoc projectJosh Suereth2013-09-061-4/+8
| | | | | | | | | That is, scaladoc is still in the scala-compiler artifact. Let dbuild know so that it won't freak out. ps: dbuild-meta.json should be kept in synch with src/build/dbuild-meta-json-gen.scala until we can automate that in the build
* Remove scala-xml and scala-parser-combinatorsAdriaan Moors2013-08-276-143/+13
| | | | | | | | | | | | | | | | | | | These modules move to their own repositories: - https://github.com/scala/scala-xml (v1.0-RC3) - https://github.com/scala/scala-parser-combinators (v1.0-RC1) The modularization depends on the new partest, as the old one's classpath handling did not support a modularized scala. The compiler pom now depends on the artifacts published separately, with versions specified in versions.properties. NOTES: - The osgi tests resolve the xml and parsers jars and osgi-fy them, as they are no longer built locally. TODO: Can we move the osgification to the module builds? - Disabled local repositories: don't want to accidentally include unpublished artifacts in releases etc.
* Move partest to https://github.com/scala/scala-partestAdriaan Moors2013-08-204-78/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As partest is now resolved from maven, `test/partest` uses `ant test.suite.init` to determine the classpath (serialized to build/pack/partest.properties) that's necessary to run `scala.tools.partest.nest.ConsoleRunner`. Thus, partest gets exactly the same classpath, whether run from the command line through `test/partest` or via `ant test`. The version of partest we're using is specified by properties defined in versions.properties (formerly `starr.number`). Currently, we're using: ``` scala.binary.version=2.11.0-M4 partest.version.number=1.0-RC3 ``` NOTES: - The version of Scala being tested must be backwards binary compatible with the version of Scala that was used to compile partest. - Once 2.11 goes final, `scala.binary.version=2.11`, and `starr.version=2.11.0`. - Need scalacheck on classpath for test/partest scalacheck tests. - Removed atrophied ant tests (haven't been run/changed for at least two years I checked 81d659141a as a "random" sample). - Removed scalacheck. It's resolved as a partest dependency. - For now, use a locally built scalap - Kept the trace macro in the main repo (partest-extras) - New targets for faster pr validation: test-core-opt, test-stab-opt - Reused partest eclipse/intellij project to partest-extras (note: the partest dependency is hard-coded)
* scaladoc needs xml and parser-combinatorsAdriaan Moors2013-07-081-23/+33
| | | | | | | | Concretely, update scala-compiler's pom to list scala-xml and scala-parser-combinators on behalf of scaladoc. NOTE: when spinning off scaladoc, move dependencies to its own pom
* Add meta-information for dbuild.Adriaan Moors2013-07-051-0/+63
| | | | | | | | | | | | | | | | | The next version of [dbuild](http://typesafehub.github.io/distributed-build/0.5.3/index.html) will parse `dbuild-meta.json` to determine which jars are produced by a Scala build. This way we can modularize without changing dbuild itself. Yes, I know `dbuild-meta.json` should be generated during the build. However, given the state of our build.xml, I think this is pointless. My goal is to generate build.xml, dbuild-meta.json and Eclipse projects from a higher-level description of our build. Baby steps... Including improvements by @cunei: - Removing outdated field "uri" from ExtractedBuildMeta - Changed "partest" to "scala-partest" (the actual jar name)
* Unfork jline: use vanilla jline 2.11 as a dependency.Adriaan Moors2013-07-055-83/+4
| | | | | | | | Notes: - no longer specifying terminal by class name in scripts (using 'unix') - jline doesn't need a separate jansi dependency; it includes its own version according to: http://mvnrepository.com/artifact/jline/jline/2.11
* Spin off parser combinators to scala-parser-combinators.jar.Adriaan Moors2013-07-054-0/+70
|
* Spin off src/library/scala/xml to src/xml/scala/xml.Adriaan Moors2013-07-054-0/+70
| | | | | | | | | | | | | | | | | | Summary: - Remove the last vestiges of xml from Predef and Contexts. - Change build to compile scala.xml to scala-xml.jar. - Deploy scala-xml module to maven. - Update partest accordingly. Note: An older compiler cannot use the new standard library to compile projects that use XML. Thus, skipping locker will break the build until we use 2.11.0-M4 for STARR. In the future build process, where we drop locker, we would have to release a milestone that supports the old and the new approach to xml. As soon as we'd be using that new milestone for starr, we could drop support for the old approach.
* No more duplication in maven-deploy.xml.Adriaan Moors2013-07-055-287/+87
| | | | | I just couldn't stand the incredible mess in there anymore. More cleanup to come. For now, suffice it to say you need only add one line per new module.
* Merge 2.10.x into masterAdriaan Moors2013-05-174-1/+12
|\ | | | | | | | | | | Conflicts: src/compiler/scala/tools/nsc/typechecker/Implicits.scala src/reflect/scala/reflect/runtime/JavaMirrors.scala
| * SI-7201 scaladoc url in scala-(library,actors,swing,reflect) pomAdriaan Moors2013-05-174-1/+12
| | | | | | | | | | | | | | | | The project/properties/info.apiURL pom property is used by SBT to link to an artifact's scaladoc. For scala library version $v, the url is http://www.scala-lang.org/api/$v/ Note that actors, reflect and swing are included in the library docs in 2.10.x.
* | Merge pull request #2483 from adriaanm/merge-2.10.xPaul Phillips2013-05-021-1/+3
|\ \ | | | | | | Merge 2.10.x
| * | Merge 2.10.x into masterAdriaan Moors2013-05-021-1/+3
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bincompat-forward.whitelist.conf src/compiler/scala/tools/nsc/matching/Patterns.scala src/compiler/scala/tools/nsc/transform/patmat/Logic.scala src/compiler/scala/tools/nsc/typechecker/Infer.scala src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala test/files/neg/t5663-badwarneq.check
| | * use relative symlink in distpackAdriaan Moors2013-04-301-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | To simplify building a release on jenkins, we run distpack-opt in one job, store the `dists/` directory in a tar ball, archive that artifact and copy it to the downstream jobs that package on windows and unix. To make the tarball portable between machines, it must not use absolute symlinks.
* | | SI-7421 remove unneeded extra-attachement in maven deployFrançois Garillot2013-04-251-5/+1
|/ /
* | Merge pull request #2290 from adriaanm/build-cleanup-squashedAdriaan Moors2013-03-251-9/+9
|\ \ | | | | | | Sanity for build.xml: exscriptus&positus delendus est.
| * | Merge 2.10.x into masterAdriaan Moors2013-03-251-9/+9
| |\| | | | | | | | | | | | | | | | Merges the relevant part of #2295 (build.xml cleanup), with the relevant differences in build.xml carried forward, as well as a fix in interactive/RangePositions for the sbt interface.
| | * Sanity for build.xml: exscriptus&positus delendus est.Adriaan Moors2013-03-231-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reduced copy/pasting to the best of my antabilities. The next person to duplicate anything without written permission will be sentenced to a week in xmhell. While I was at it, made sure that layering is respected. The quick phase exclusively uses the locker compiler for building. The jar task will fail when trying to create an empty jar. Replaced the crazy if/unless/depends constructs by if/then/else. Version suffix computation should now be comprehensible. I threw in some validation to make sure the various suffixes are consistent. Also, no more init/pre-foo tasks unless absolutely necessary. Introduced a couple of macros to capture the essence of staged compilation. Notes: - remove lib.extra, standardize on aux.libs - collapse *.javac.path and *.build.path - rename starr.classpath to starr.compiler.path - only repl needs jline, locker.compiler.path = locker.comp.build.path + forkjoin - more uniform build.paths (compiler = reflect + library) - uniformity means slightly bigger classpaths (e.g. forkjoin is only used in library, but inherited by compiler) - pruned: some spurious dependencies removed - compilerpathref = compiler build path - silence test.osgi, by hook or by crook - centralized clean tasks - reduce duplication in property usage - fix pack.xml to pack scaladoc/partest instead of scaladoc/scala-partest - TODO: -XDignore.symbol.file necessary for library? only needed for forkjoin? - document usage from jenkins, fix typo: partest.scalac*_*opts New targets: - quick-opt - strap-opt - test.bc - test.osgi - test.osgi.comp - test.osgi.init - test.stability-opt Removed/replaced targets: - asm.clean asm.lib asm.start - bc.run - dist.latest dist.latest.unix dist.latest.win dist.start - docs.all docs.manmaker docs.pre-comp docs.pre-continuations-plugin - docs.pre-jline docs.pre-lib docs.pre-man docs.pre-partest docs.pre-scalap - forkjoin.clean forkjoin.lib forkjoin.pack forkjoin.start - graph.clean - init.build.nopatch.release init.build.patch.release init.build.release - init.build.snapshot init.build.suffix.done init.extra.tasks - init.fail.bad.jdk init.hasbuildnum init.hasmavensuffix init.jars - init.jars.check init.maven.jars init.maven.tasks init.osgi.suffix - init.osgi.suffix.final init.osgi.suffix.snapshot init.testjava6 - init.version.done init.version.git init.version.release init.version.snapshot - init.warn.jdk7 locker.pre-comp locker.pre-lib locker.pre-reflect - locker.unlock.comp locker.unlock.lib locker.unlock.pre-comp - locker.unlock.pre-lib locker.unlock.pre-reflect locker.unlock.reflect - osgi.clean osgi.test osgi.test.comp osgi.test.init - pack.clean pack.pre-bin pack.pre-comp pack.pre-lib pack.pre-partest - pack.pre-plugins pack.pre-reflect pack.pre-scalap pack.start - palo.comp palo.lib palo.pre-bin palo.pre-comp palo.pre-lib palo.pre-reflect - palo.reflect palo.start quick.pre-bin - quick.pre-comp quick.pre-interactive quick.pre-lib quick.pre-partest - quick.pre-plugins quick.pre-reflect quick.pre-repl quick.pre-scalacheck - quick.pre-scaladoc quick.pre-scalap - sbt.clean sbt.compile sbt.done sbt.libs sbt.start - starr.clean - strap.clean strap.pre-comp strap.pre-lib strap.pre-reflect strap.start - test.debug test.pre-run
* | | SI-7294 Deprecate inheritance from TupleN.Jason Zaugg2013-03-241-0/+1
|/ / | | | | | | | | | | | | | | The motivation is to provide static warnings in cases like: scala> (1, 2) match { case Seq() => 0; case _ => 1 } res9: Int = 1