blob: 5e53b78655a702632d1d0e1052ef65a0a9b5c657 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<document>
<properties>
<title>Release Guide</title>
<author email="sebawagner@apache.org">
OpenMeetings Team
</author>
</properties>
<body>
<section name="How to Build a Release of OpenMeetings">
<subsection name="Required tools">
<div>
<p>To build a binary release of OpenMeetings you need: </p>
<ul>
<li>Sun JDK6</li>
<li>Apache ANT (minimum) 1.8.3</li>
<li>
SVN Command line client (Subversion 1.7 required!)
<a href="http://subversion.apache.org/packages.html" target="_BLANK"
rel="nofollow">http://subversion.apache.org/packages.html</a>
</li>
<li>A text editor</li>
<li>You need to be online! The build process actively downloads
needed libraries and dependencies.
</li>
</ul>
</div>
</subsection>
<subsection name="Prepare your Apache ID">
<div>
Every release package must be signed with a PGP/GPG key.
<br />
So if you want to release a package your Apache Id must be
connected with a PGP key!
<br />
<br />
You might follow:
<br />
<a
href="http://www.apache.org/dev/new-committers-guide.html#security-and-pgp"
target="_blank">http://www.apache.org/dev/new-committers-guide.html#security-and-pgp
</a>
<br />
<br />
In short:
<br />
Create PGP key pairs (private + public) (and I recommend creating a
Revoke Cert)
<br />
Upload the public key (either bei using the PGP Tool that you use
to create the key) or by using the web form to:
<a href="http://pgp.mit.edu/" target="_blank" rel="nofollow">http://pgp.mit.edu/
</a>
<br />
Add the fingerprint string (something like "BF13 CF11 F9C9 0CBE
4413 09AB 0055 16BF 93A3 0395") to your profile at
<a href="http://id.apche-org" target="_blank" rel="nofollow">id.apche-org
</a>
<br />
Wait for 6-8 hours, the server will search for a public key based
on your fingerprint, if success it will create a file with your
name at:
<br />
<a href="https://people.apache.org/keys/committer/">https://people.apache.org/keys/committer/</a>
<br />
<br />
If that is "success" then add your key to:
<br />
<a
href="https://svn.apache.org/repos/asf/openmeetings/project/KEYS">https://svn.apache.org/repos/asf/openmeetings/project/KEYS
</a>
<br />
and follow the instructions in the file.
<br />
</div>
</subsection>
<subsection name="Step1 - Prepare files">
<p>
Check that all files:
<br />
LICENSE, NOTICE, DISCLAIMER, CHANGELOG, README
<br />
are up to date and refer to the right version.
</p>
<p>
Create a TAG of the SVN tree that you would like to release
</p>
<p>Get the source from your TAG: </p>
<div class="xmlcode">
svn checkout
https://svn.apache.org/repos/asf/openmeetings/$TREE/$BRANCHORTAG/
<br />
$TREE and $BRANCHORTAG should be replaced with your new TAG
</div>
<p>Edit the file build.properties</p>
<div class="xmlcode">
project.status=SNAPSHOT
</div>
<p>to</p>
<div class="xmlcode">
project.status=RELEASE
</div>
<p>Run the command: </p>
<div class="xmlcode">
ant dist-release
</div>
<p>Test building the source on windows and OSx or Linux</p>
<p>Test running the binary's</p>
<p>Create MD5 checksums</p>
<div class="xmlcode">
#On OSX you might use this command to make a MD5 checksum and store
it to a file
<br />
md5 -r apache-openmeetings-XXX-src.zip >
apache-openmeetings-XXX-src.zip.md5
</div>
<p>
Create signatures with the your KEY for every file, the KEY must be
available at:
<br />
<a href="http://www.apache.org/dist/incubator/openmeetings/KEYS">http://www.apache.org/dist/incubator/openmeetings/KEYS
</a>
</p>
<p>Upload the build artefacts to your public_html in your home
directory at people.apache.org
</p>
<div class="xmlcode">
#On OSX you might use this command to upload the file
<br />
scp apache-openmeetings-XXXX.zip
sebawagner@people.apache.org:~/public_html/
</div>
</subsection>
<subsection name="Step2 - VOTE and RESULT emails">
<p>
Send a "VOTE" to the developer mailing list including links to
release artefacts.
<br />
A VOTE always contains two parts:
<br />
Send an email to the developer mailing list with the subject line:
<br />
[VOTE] Apache OpenMeetings x.xx release
<br />
An example for such an email:
<a
href="http://mail-archives.apache.org/mod_mbox/incubator-openmeetings-dev/201207.mbox/%3CCACeMiA9dXXMnxA3EhJVPGhpvO4z2cLNqHVP7uOhSHT8e_vHoFQ%40mail.gmail.com%3E">example Vote email</a>
<br />
Forward (Not CC) this Vote email to: private@incubator.apache.org
<br />
<br />
After the vote is over, send a "RESULT" email to the list with the
subject line:
<br />
[RESULT][VOTE] Apache OpenMeetings x.xx release
<br />
An example for such an email:
<a
href="http://mail-archives.apache.org/mod_mbox/incubator-openmeetings-dev/201207.mbox/%3CCACeMiA-ibo6fGCbnLjJX9H5H2kFGDVJRMfxPyMtzWzCWNi%2BpOg%40mail.gmail.com%3E">example Result email</a>
<br />
Forward (Not CC) this RESULT VOTE email to:
private@incubator.apache.org
<br />
<br />
After the Vote was successful on the Developer mailing list,
you
need organize a vote on the general list:
general@incubator.apache.org
<br />
The vote on the general list has the same process, first a VOTE
email, then a RESULT email.
<br />
You need at least 3 IPMC votes for the release. You can summarize
the IPMC votes from both votes (dev + general).
</p>
</subsection>
<subsection name="Step3 - Distribute and announce">
<p>If VOTEs positive: Upload the release </p>
<div class="xmlcode">
The distribution upload location
(www.apache.org/dist)
for all Apache projects is the
/www/www.apache.org/dist directory on
people.apache.org. Each
project owns a directory within dist.
</div>
<p>
Our distribution directory is:
<br />
/www/www.apache.org/dist/incubator/openmeetings
<br />
each version should have a subfolder within this directory matching
the name of the release:
<br />
for example 2.0
<br />
Make sure the the files/folders in the section
/www/www.apache.org/dist/incubator/openmeetings have the proper
rights,
see:
<a
href="http://incubator.apache.org/guides/releasemanagement.html#distribution-permissions"
target="_BLANK">http://incubator.apache.org/guides/releasemanagement.html#distribution-permissions
</a>
</p>
<p>
Wait 24 hours (until all Apache mirrors have synced the packages)
and send an announcement to the mailing list + blog and any other
channel.
</p>
<p>
Email announcements should have the subject line:
<br />
[ANNOUNCE] Apache OpenMeetings x.xx [Incubating] released
</p>
<p>
Add a section to
<a href="downloads.html">downloads</a>
website.
<br />
Make sure that the binary packages are linked using the mirror URL
as base path (
<b>not</b>
www.apache.org/dist):
<br />
Mirror URL:
<a href="http://www.apache.org/dyn/closer.cgi/incubator/openmeetings/">http://www.apache.org/dyn/closer.cgi/incubator/openmeetings/
</a>
</p>
</subsection>
</section>
</body>
</document>