incubator-celix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r1549313 - in /incubator/celix/site/trunk: content/celix/documentation/releasing-links.mdtext content/celix/documentation/releasing.mdtext templates/sidenav.mdtext
Date Sun, 08 Dec 2013 21:38:07 GMT
Author: abroekhuis
Date: Sun Dec  8 21:38:07 2013
New Revision: 1549313

CELIX-100: Added first draft of the release guide


Added: incubator/celix/site/trunk/content/celix/documentation/releasing-links.mdtext
--- incubator/celix/site/trunk/content/celix/documentation/releasing-links.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/documentation/releasing-links.mdtext Sun Dec
 8 21:38:07 2013
@@ -0,0 +1,11 @@
+## Requirements
+- CMake (2.8.1)
+- GCC (4.2.1)
+- GNU Make (3.81)
+- ZLib
+- CUnit
+- Celix Source
+## Useful Links
+- [CMake Documentation](
\ No newline at end of file

Added: incubator/celix/site/trunk/content/celix/documentation/releasing.mdtext
--- incubator/celix/site/trunk/content/celix/documentation/releasing.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/documentation/releasing.mdtext Sun Dec  8 21:38:07
@@ -0,0 +1,140 @@
+Title: Releasing Apache Celix
+Links: documentation/releasing-links.mdtext
+Note: This information is only of use to Apache Celix Release Managers!
+Loosely based on:
+Steps to follow:
+* Be sure to have a key on file
+* Update/Create CHANGES file
+* Generate Release Notes (Combine with Changes?)
+* Run complete build, including tests and coverage targets. Make sure the provided examples
+* Run Apache RAT target
+* Create TAG
+* Create and sign artefacts
+* Copy artefact and signatures to dev repo
+* Run the Vote
+* Tally the vote results
+* Stage release for mirroring by copying to release repo
+* Announce release (wait for mirror syncing) 
+## Code Signing keys
+Each Release Manager must have his own signing keys. Information about and instruction for
the generation of these keys can be found on the
+[Signing Releases page]( Be sure
to follow the information provided on that site and its references.
+Next, the public key signature must be added to the KEYS file. Again, read the [Signing Releases
+for more information. This updated file needs to be uploaded to SVN, be sure to upload it
+## Update Release Related Files
+For every release the related files must be updated. The following files are relevant:
+  Add a list of fixed issues which can be created using Jira.
+  Add additional notes regarding this release, eg known short comings.
+  Even though the BUILDING file doesn't have any specific release information, it should
be verified before making a release.
+  If needed, add any new license related information to this file.
+Besides this information, the version needs to be bumped. Even though every bundle has its
own version, a release is made with one overall version. This version
+is defined in the top-level CMakeLists.txt file.
+Update the following pieces:
+SET(CELIX_QUALIFIER "incubating")
+While Celix is in incubation, the qualifier should (at least) always contain "incubating"
as text.
+Note: The DEFAULT_VERSION property is used as default version for new bundles and as such
does not need to be updated when making a release.
+## Compile and Test
+Before creating a branch, be sure that the source compiles and tests run successfully. If
there are any known shortcomings, make sure they are listed in the 
+RELEASE_NOTES. Details for compiling and testing are available in the BUILDING file.
+Also verify that the provides examples work as expected. If needed ask other committers to
test parts, eg the GTK examples.
+After verifying the build, run Apache RAT to check for any licensing problems. If Apache
RAT is configured in the CMake build the "rat" target can be used to run
+the check: make rat 
+Apache RAT should not raise any concers, if there are, check the source files for 
+a license header. If it is a false positive update the rat-excludes.txt file in the root
of the project. Be sure it is a false positive! If in doubt, ask the 
+mailing list! Third party licenses may need to be mentioned in the NOTICE file.
+## Tag release
+After changing all files a tag for the new release must be made. Before doing so, make sure
all changed files are committed.
+The tag should be named like this: celix-X.Y.Z.incubating
+To make a tag use the following command:
+svn copy
-m "X.Y.Z release of the Apache Celix project."
+Note: Make sure there are no new changes made on trunk while working on the release. Discuss:
Use a branch for staging the release and the files? Or possibly use a revision nr?
+## Publish Source Archive for Voting
+Copy the archive of the source to
(using SVN).
+## Run the Vote
+Before a release is official a vote has to be held. More information on voting can be found
on [Apache Voting Process](
+Since Apache Celix is still in incubation, both the PPMC and the IPMC have to vote for it.
+The first vote has to be done on the public mailinglist of the project itself (
The following template must be used for this vote:
+Subject: [VOTE] Release Celix version X.Y.Z
+This is the release vote for Apache Celix, version X.Y.Z.
+It fixes the following issues: 
+<Create Release Note link using (>
+Source files:
+The tag to be voted upon:
+Celix's keys can be found at:
+Information for voting on a release can be found at
+Please vote to approve this release:
+[ ] +1 Approve the release
+[ ] -1 Disapprove the release (please provide specific comments)
+This vote will be open for at least 72 hours.
+After this first vote the results must be posted to the "dev" list, see below for more information.
+The second vote has to go to the general incubator list, this is to give the IPMC a chance
to verify the release. This vote can only be published if the PPMC 
+has had enough time to review the release, following the defacto standard, this is ate least
72 hours.
+The template provided above can be reused for this, but needs to be extended (directly after
"This is the release vote for..." with the following information:
+This release has already been approved by:
+* Name of Approver (apache ID) (binding|not binding)
+* Name of Approver (apache ID) (binding|not binding)
+* ...
+See <link to markmail archive of Celix release thread> for their votes.
+Todo: Check usability of
+Note: Be sure to use the [VOTE] tag, this is used by the automated vote tracking system to
keep track of outstanding vote threads.
+## Post Vote Results
+As mentioned before, after each vote the results must be posted to the corresponding list.
This "Result" vote contains the number of votes made, including 
+wether a vote is binding or not.
+Note: Be sure to post the vote result as a reply to the original message. Also prepend the
subject with [RESULT]. This is, again, needed to be able to keep track
+of vote threads. See and
+## Roll Out Release
+If the vote is passed successfully the release can be moved from the "dev" area to "release".
The automated svnpubsub will move the artifact to the correct 
+server for mirroring. Mirroring typically can take up to 24 hours.
+After these 24 hours the release can be announced. 
+## Announce release
+Update website's "news section".
+Post message to ""?

Modified: incubator/celix/site/trunk/templates/sidenav.mdtext
--- incubator/celix/site/trunk/templates/sidenav.mdtext (original)
+++ incubator/celix/site/trunk/templates/sidenav.mdtext Sun Dec  8 21:38:07 2013
@@ -17,6 +17,7 @@
 	- [Utils](/celix/subprojects/utils.html)
 - [Documentation](/celix/documentation.html)
     - [Building and Running](/celix/documentation/buildingandrunning.html)
+    - [How To Release](/celix/documentation/releasing.html)
     - [Design](/celix/documentation/design.html)
     - [Mapping](/celix/documentation/mapping.html)
     - [Memory Pools](/celix/documentation/memorypools.html)

View raw message