...
- patch CLJ-681 has been applied
- Keeps the Ant build the way it is now
- Developers can continue to use Ant for local builds
- Maven controls the build/test/release process on Hudson
- Real pom.xml
- Declares Sonatype's oss-parent POM as a parent
- Enables releases to public open-source repositories managed by Sonatype
- Calls out to Ant for Clojure-specific compile and test phases
- Temporary until we have better plugins, see Clojure Maven Plugin and Why Maven?
- Keeps the Ant build the way it is now
- SNAPSHOT releases automatically deployed by hudson
- Numbered releases controlled by Hudson/Maven
- Only Clojure language committers may initiate a release
New contrib projects
- To promote new contrib projects, see How to Create New Contrib Projects
- To release, see How to Make Releases
- Git repositories
- New contrib libs get their own repos under the Clojure github organization
- Each lib gets one or more "owners" who have commit access
- Library authors still use JIRA + patches to accept contributions
- All contributors must have a CA
- JIRA
- Each contrib library/project will get its own JIRA
- Maven
- Contrib projects must be built with Maven 2
- All contrib POMs must declare "org.clojure:pom.contrib" as a parent
- Inherits from Sonatype's OSS POM
- Defines release process (OSS snapshots + staging)
- Set dependency on latest Clojure release (1.3.0-alpha5)
- May be overridden on a per-project basis
- Support building with a local Clojure JAR
- Inherits from pom.oss-deploy
- Sets license to EPL
- Configures Java 1.5 as a target
- Sets common plugin/build configurations
- Uses com.theoryinpractise:clojure-maven-plugin
- Temporary until we have better plugins, see Clojure Maven Plugin and Why Maven?
- Defaults to source-only JAR, override to AOT-compile only when necessary
- Procedure for SNAPSHOT releases
- Push to github
- Hudson builds automatically
- Automatically deploys to Sonatype OSS SNAPSHOT repo
Procedure for numbered releases - Project owners have permission in Hudson to do a release of their projects
- Project owners must follow release numbering policy
- Use Semantic Versioning: major.minor.patch
- Core team must approve first 1.0.0 release
In Hudson, click
"
...
- Specify a release version number and the next development version number
- In Hudson's local checkout of the project:
- modifies pom.xml with the release version number, commits, tags with version
- modifies pom.xml with the dev. version number, commits to master
- checks out the tagged release, builds & deploys to Sonatype OSS
- Creates a numbered "staging" repository
- Automatically closes and promotes the staging repo to Sonatype "releases"
- Sonatype automatically syncs to Maven Central
- After a successful release; tags and new master are automatically pushed to Github
"Classic" / old clojure-contrib
...