You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

OpenCMIS Release Documentation

Introduction

This document describes the release guidelines for Apache Chemistry OpenCMIS.

Build Environments

OpenCMIS has to be built with Maven 2.

Release Artifacts

An OpenCMIS release consists of:

  • A source bundle containing all files that are necessary to build all other artifacts. It also contains the JavaDoc of the client API, the client bindings API and the server SPI as well as additional documentation and examples.
    Package formats: tar.gz and zip.
    Name: chemistry-opencmis-<version>-source
  • A binary client bundle containing all Jars that are necessary to build a CMIS client application.
    Package formats: tar.gz and zip.
    Name: chemistry-opencmis-<version>-client
  • A binary client bundle (as above) with all dependencies.
    Package formats: tar.gz and zip.
    Name: chemistry-opencmis-<version>-client-dep
  • A binary server bundle containing all JARs and WARs and dependencies that are necessary to build a CMIS server.
    Package formats: tar.gz and zip.
    Name: chemistry-opencmis-<version>-server
  • An InMemory repository bundle containing a ready-to-deploy WAR.
    Package formats: tar.gz and zip.
    Name: chemistry-opencmis-<version>-server-inmemory
  • An FileShare repository bundle containing a ready-to-deploy WAR.
    Package formats: tar.gz and zip.
    Name: chemistry-opencmis-<version>-server-fileshare
  • A Browser bundle containing a ready-to-deploy WAR.
    Package formats: tar.gz and zip.
    Name: chemistry-opencmis-<version>-browser

Preparation

Release Manager

A release manager must be appointed for a release. He or she is in charge of the release process, following the guidelines and eventually generating the release artifacts. The release manager might tailor the process to for a specific release.

Version

The committers decide if the release will be a major or a minor release and agree on a version number. The string "-incubating" will be attached to incubator release version numbers.

Open Issues

There must not be any open JIRA issues for this release. There might be open issues for future releases.

Unit Tests and Integration Tests

All unit tests and integration tests must succeed on a clean machine (starting with an empty Maven repository).

Documentation and JavaDoc

The documentation that will be part of the release must match the code. All examples in the documentation must work. The Java package documentation must be up-to-date.
The JavaDoc must be generated with Maven without warnings.

Apache License and Code Style

Each source code file must have a current ASF license header. The source code should follow the OpenCMIS code style.

Release Notes

Each release must provide a RELEASE-NOTES.txt file in the base directory of the source bundle. It must contain all known issues and should contain a description of all the changes since the previous release. The release notes should also contain the minimum target Java version and a list of all dependencies with their minimum version.
NOTICE.txt and LICENSE.txt must be present in all bundles and up-to-date.

Release Branch

A branch has to be created for every release. The naming rule for this branch is branches/chemistry-opencmis-<version>-release.
A tag has to be created for every release candidate. The naming rule for the tags is tags/chemistry-opencmis-<version>-RC<number>.

Release Candidate

Once all preparations are done, a release candidate has to be built. All release candidates must be cryptographically signed. The string "-RC1" will be attached to the names of the release candidate artifacts. If more than one release candidate is required a new tag has be created and the suffix has to be adjusted.
The release candidate artifacts will be made available on people.apache.org and the release manager kicks off the VOTE process.

If the vote fails, the issues will be fixed, a new release candidate will be built and the VOTE process will be restarted.

If the release candidate gets approved, the release candidate artifacts will be renamed and become the release artifacts.

Publishing The Release

Post Release Cleanup

  • No labels