Return-Path: X-Original-To: apmail-manifoldcf-commits-archive@www.apache.org Delivered-To: apmail-manifoldcf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 90931DA5A for ; Tue, 14 Aug 2012 19:55:21 +0000 (UTC) Received: (qmail 30257 invoked by uid 500); 14 Aug 2012 19:55:21 -0000 Delivered-To: apmail-manifoldcf-commits-archive@manifoldcf.apache.org Received: (qmail 30209 invoked by uid 500); 14 Aug 2012 19:55:21 -0000 Mailing-List: contact commits-help@manifoldcf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@manifoldcf.apache.org Delivered-To: mailing list commits@manifoldcf.apache.org Received: (qmail 30200 invoked by uid 500); 14 Aug 2012 19:55:21 -0000 Delivered-To: apmail-incubator-connectors-commits@incubator.apache.org Received: (qmail 30197 invoked by uid 99); 14 Aug 2012 19:55:21 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Aug 2012 19:55:21 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Aug 2012 19:55:20 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id q7EJt0on001749 for ; Tue, 14 Aug 2012 19:55:00 GMT Date: Tue, 14 Aug 2012 15:55:00 -0400 (EDT) From: confluence@apache.org To: connectors-commits@incubator.apache.org Message-ID: <17333396.2656.1344974100022.JavaMail.confluence@thor> Subject: [CONF] Apache Connectors Framework > Release Process MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Auto-Submitted: auto-generated X-Virus-Checked: Checked by ClamAV on apache.org Space: Apache Connectors Framework (https://cwiki.apache.org/confluence/display/CONNECTORS) Page: Release Process (https://cwiki.apache.org/confluence/display/CONNECTORS/Release+Process) Edited by Karl Wright: --------------------------------------------------------------------- h1. The ManifoldCF Release Process ManifoldCF is a little harder to release than most software projects because it has a fair number of connectors which are conditionally compiled. Thus, you cannot do a full release until the required dependencies are installed on your release machine. Luckily, for packages that are proprietary, stubs have been created which allow you to skip the installation of proprietary libraries in order to create a release. Releases heretofore have been done on Windows (both US locale and Japan locale), and thus we feel that the release process is fairly robust for that platform. Batch scripts have been created that ease the process mightily. On Linux there has been no such development; if you like, you can be the first release engineer who wants to port the scripts. h2. Branches and tags For any release, there should be a release branch. This branch should be created by the appropriate "svn copy" command from trunk. For example: {{svn copy}} {{[https://svn.apache.org/repos/asf/manifoldcf/trunk]}} {{[https://svn.apache.org/repos/asf/manifoldcf/branches/release-0.6-branch]}} A major release will have its own release branch labeled with the release number (e.g. "release-0.6-branch"). A minor release will continue in the appropriate major release branch, and have the required changes pulled up from trunk one at a time. Thus 0.6.1 would be released from "release-0.6-branch" also. When the time comes to build a release candidate, the release engineer should make an appropriately-labeled copy of the release branch in the "tags" area. For instance: {{svn copy}} {{[https://svn.apache.org/repos/asf/manifoldcf/branches/release-0.6-branch]}} {{[https://svn.apache.org/repos/asf/manifoldcf/tags/release-0.6-RC0]}} When the release is finally completed, the appropriate tag is then renamed to be the release name, e.g.: {{svn move}} {{[https://svn.apache.org/repos/asf/manifoldcf/tags/release-0.6-RC0]}} {{[https://svn.apache.org/repos/asf/manifoldcf/tags/release-0.6]}} h2. Before releasing Before you cut a release, it's always a good idea to run all the tests you can on the software. Also necessary is a "rat" run, which detects unknown or incorrect licenses on source files. See the complete checklist below. # Download the dependencies for building and testing (ant make-core-deps make-deps). You will need svn 1.7+ installed for this step. # Check licenses (ant rat-sources). You are interested in verifying that there are zero files with unapproved licenses. (This comes at the very start of a long report.) You will need Apache Rat installed for this step. # Run standard integration tests (ant test-dr test-hs). If you have PostgreSQL installed and MySQL, run those too (ant test-pg test-my). # Run the UI tests (ant uitest). You'll need Python 2.7\+ for these. If everything looks good, you're ready to go ahead and cut the release\! h2. Building ManifoldCF for release NOTE: In order to proceed, you MUST have svn 1.7 or higher installed\! The ant build scripts require this in order to be able to apply patches on Windows platforms. On Windows, you will also need GnuPG installed (from [http://www.gnupg.org/download/]), and have your signing key created and installed (read this: [http://www.apache.org/dev/release-signing]). Also needed is the utility "pscp.exe". The first step of the build process is to check out the release branch into a work area. Technically it is more correct to check out the tag, but in practice that's not necessary because only the release engineer should be working on the release branch. All other development should be taking place in trunk. {{svn co}} {{[https://svn.apache.org/repos/asf/manifoldcf/release-0.6-branch]}} {{myworkarea}} Then, check out the Windows release scripts also: {{svn co}} {{[https://svn.apache.org/repos/asf/manifoldcf/release-scripts]}} The release scripts perform all the required fetching of dependencies automatically, through ant. But they do not know how to deal with proxies, so if you have a proxy you will need to figure out how to deal with that. Next, you will need to create a place to put the release in your people.apache.org public_html area. This directory should be named "apache-manifoldcf-". The release candidate will be copied there. The next step is to fire off the release script itself. You will need to supply your people.apache.org username also: {{cd myworkarea}} {{../release-scripts/release.bat 0.6 kwright}} After being prompted a few times for your key file password, and for your people.apache.org password, your release candidate should be created and copied to an appropriate subdirectory in your user area on people.apache.org, e.g. [http://people.apache.org/~kwright/apache-manifoldcf-0.6]. Change your notification preferences: https://cwiki.apache.org/confluence/users/viewnotifications.action