You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by sh...@apache.org on 2022/12/05 10:03:01 UTC

[unomi-site] 01/01: UNOMI-721 Simplify release process - Add release scripts to release guide - Rename old release guide as 'manual release guide'

This is an automated email from the ASF dual-hosted git repository.

shuber pushed a commit to branch UNOMI-721-simplify-release
in repository https://gitbox.apache.org/repos/asf/unomi-site.git

commit d93e632b0d5292ed4d14872155815c8f8c3b64b8
Author: Serge Huber <sh...@jahia.com>
AuthorDate: Mon Dec 5 11:01:27 2022 +0100

    UNOMI-721 Simplify release process
    - Add release scripts to release guide
    - Rename old release guide as 'manual release guide'
---
 ...elease-guide.html => manual-release-guide.html} |   4 +-
 src/main/webapp/contribute/release-guide.html      | 143 +++------------------
 2 files changed, 20 insertions(+), 127 deletions(-)

diff --git a/src/main/webapp/contribute/release-guide.html b/src/main/webapp/contribute/manual-release-guide.html
similarity index 99%
copy from src/main/webapp/contribute/release-guide.html
copy to src/main/webapp/contribute/manual-release-guide.html
index 301d626..8568d43 100644
--- a/src/main/webapp/contribute/release-guide.html
+++ b/src/main/webapp/contribute/manual-release-guide.html
@@ -1,5 +1,5 @@
 ---
-title: Contribute | Release guide
+title: Contribute | Manual Release guide
 layout: default
 ---
 
@@ -39,7 +39,7 @@ layout: default
             </ul>
           </div>
           <div class="col-8 pt-3 offset-4">
-            <h2 id="apache-unomi-release-guide">Apache Unomi Release Guide</h2>
+            <h2 id="apache-unomi-release-guide">Manual Apache Unomi Release Guide</h2>
 
             <p>The Apache Unomi project periodically declares and publishes releases. A release is one or more packages of the project artifact(s) that are approved for general public distribution and use. They may come with various degrees of caveat regarding their perceived quality and potential for change, such as "alpha", "beta", "stable", etc.</p>
 
diff --git a/src/main/webapp/contribute/release-guide.html b/src/main/webapp/contribute/release-guide.html
index 301d626..0507b2f 100644
--- a/src/main/webapp/contribute/release-guide.html
+++ b/src/main/webapp/contribute/release-guide.html
@@ -146,35 +146,24 @@ gpg --verify test.txt.asc test.txt
                 </li>
             </ol>
 
-            <h3 id="prepare-git">Git</h3>
-            <ol>
-              <li>Clone and checkout the project using:
-                <pre class="alert alert-primary"><code>git clone https://gitbox.apache.org/repos/asf/unomi.git</code></pre>
-                 in a separate directory, to make sure you don’t have any additional files in the build
-                  (such as allCountries.zip or other binary files that should not be there)</li>
-                <li>
-                    Simply checkout an existing branch for release
-                    <pre class="alert alert-primary"><code>cd unomi
-git checkout unomi-${branch.version}
-                    </code></pre>
-                </li>
-                <li>OR Create a new branch if needed for the release using:
-                    <pre class="alert alert-primary"><code>cd unomi
-git checkout -b unomi-${branch.version}
-                    </code></pre>
-                </li>
-            </ol>
+            <h3 id="manual-release-guide">Automated vs manual release</h3>
+              <ol>
+                  <li>Most of the release steps are now executed through scripts. However if you prefer to do everything
+                  manually or are having some problems, you can find the manual release guide <a href="manual-release-guide.html">here.</a>
+                  </li>
+              </ol>
 
             <h3 id="prepare-build">Build the project</h3>
             <ol>
               <li>Make sure you have a Docker installation properly configured on the machine building the project,
                   as it is required to build everything.
               </li>
-              <li>Tests source, javadocs, docker and signature generation using:
-                <pre class="alert alert-primary"><code>mvn clean install -P apache-release,integration-tests,docker</code></pre>
-              </li>
-              <li>Make sure we generate all sub-projects using:
-                <pre class="alert alert-primary"><code>mvn clean install -DskipITs=true -DskipTests=true -P integration-tests,rat,apache-release,docker,\!run-tests</code></pre>
+                <li>Setup server passwords for publishing as document here:
+                    <a href="https://www.apache.org/dev/publishing-maven-artifacts.html" target="_blank">https://www.apache.org/dev/publishing-maven-artifacts.html</a> and <a href="https://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords" target="_blank">https://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords</a>
+                </li>
+              <li>Launch the first build script using
+                <pre class="alert alert-primary"><code>./release-stage-1.sh ${next.stable.version} BRANCH_NAME</code></pre>
+                  where BRANCH_NAME is the branch you want to release (It must be created first if it doesn't exist !)
               </li>
               <li>Check that there are no JARs or ZIP files in the source code, you can do this by looking at the generated RAT report here :
                 <pre class="alert alert-primary"><code>less target/unomi-root-${next.development.version}.rat</code></pre>
@@ -196,37 +185,7 @@ gpg: signing failed: Inappropriate ioctl for device</code></pre>
 
             <h2 id="publish-the-release">Publish the release</h2>
             <h3 id="publish-repository">Repository</h3>
-
-            <ol>
-              <li>Setup server passwords for publishing as document here:
-                <a href="https://www.apache.org/dev/publishing-maven-artifacts.html" target="_blank">https://www.apache.org/dev/publishing-maven-artifacts.html</a> and <a href="https://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords" target="_blank">https://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords</a>
-              </li>
-              <li>Check into the target directory and unzip the source release and compile it using:
-                <pre class="alert alert-primary"><code>pushd target
-gpg --verify unomi-root-${next.development.version}-source-release.zip.asc unomi-root-${next.development.version}-source-release.zip
-shasum -a 512 unomi-root-${next.development.version}-source-release.zip
-cat unomi-root-${next.development.version}-source-release.zip.sha512
-unzip unomi-root-${next.development.version}-source-release.zip
-cd unomi-root-${next.development.version}
-mvn clean install
-popd</code></pre>
-                to check that the packaged source build properly
-              </li>
-              <li>Go back to the root project directory (pushd/popd did that for you normally) and run:
-                <pre class="alert alert-primary"><code>mvn release:prepare -DskipITs=true -DskipTests=true -Drelease.arguments="-Papache-release,integration-tests -DskipITs=true -DskipTests=true"  -DdryRun=true -P apache-release,integration-tests,docker,\!run-tests</code></pre>
-              </li>
-              <li>Publish a snapshot to test the deployment passwords:
-                <pre class="alert alert-primary"><code>mvn deploy -DskipITs=true -DskipTests=true -P \!run-tests</code></pre>
-              </li>
-                <li>Delete the release.properties file
-                    <pre class="alert alert-primary"><code>rm release.properties</code></pre>
-                </li>
-              <li>
-                <pre class="alert alert-primary"><code>mvn -P apache-release,integration-tests,docker,\!run-tests release:prepare</code></pre>
-              </li>
-              <li>
-                <pre class="alert alert-primary"><code>mvn -DskipITs=true -DskipTests=true -Drelease.arguments="-Papache-release,integration-tests -DskipITs=true -DskipTests=true" -P integration-tests,docker,\!run-tests release:perform</code></pre>
-              </li>
+              <ol>
               <li>If something fails, make sure you first drop the staging repository created here: <a href="https://repository.apache.org/#stagingRepositories" target="_blank">https://repository.apache.org/#stagingRepositories</a>.<br>
 If you need to relaunch the <code>release:perform</code> and don’t have a release.properties, create a <code>release.properties</code> file with the following contents:
                 <pre class="alert alert-primary"><code>scm.url=scm:git:https://gitbox.apache.org/repos/asf?p=unomi.git
@@ -241,50 +200,9 @@ and run mvn release:perform</code></pre>
 
             <h3 id="publish-vote">Vote</h3>
             <ol>
-              <li>Upload the source and binary distributions to the Apache Dist repository before the PMC vote:
-                <pre class="alert alert-primary"><code>svn checkout https://dist.apache.org/repos/dist/dev/unomi unomi-dev</code></pre>
-              </li>
-              <li>
-                <pre class="alert alert-primary"><code>cd unomi-dev
-mkdir ${next.stable.version}</code></pre>
-              </li>
-              <li>
-                Copy all the Zip and Tarbars including ASC (but do not copy the SHA1 or MD5 sum) files from:
-                <a href="https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi/${next.stable.version}/" target="_blank">https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi/${next.stable.version}/</a>
-                and
-                <a href="https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi-root/${next.stable.version}/" target="_blank">https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi-root/${next.stable.version}/</a>
-                  using commands such as : <pre class="alert alert-primary"><code>export REPO_ID=orgapacheunomi-1033
-wget https://repository.apache.org/content/repositories/$REPO_ID/org/apache/unomi/unomi-root/${next.stable.version}/unomi-root-${next.stable.version}-source-release.zip
-wget https://repository.apache.org/content/repositories/$REPO_ID/org/apache/unomi/unomi-root/${next.stable.version}/unomi-root-${next.stable.version}-source-release.zip.asc
-wget https://repository.apache.org/content/repositories/$REPO_ID/org/apache/unomi/unomi/${next.stable.version}/unomi-${next.stable.version}.tar.gz
-wget https://repository.apache.org/content/repositories/$REPO_ID/org/apache/unomi/unomi/${next.stable.version}/unomi-${next.stable.version}.tar.gz.asc
-wget https://repository.apache.org/content/repositories/$REPO_ID/org/apache/unomi/unomi/${next.stable.version}/unomi-${next.stable.version}.zip
-wget https://repository.apache.org/content/repositories/$REPO_ID/org/apache/unomi/unomi/${next.stable.version}/unomi-${next.stable.version}.zip.asc</code></pre>
-
-              </li>
-              <li>
-                Rename the source and binary files to something shorter and consistent with previous releases and generate
-                  the SHA 512 checksum manually:
-                <pre class="alert alert-primary"><code>
-mv unomi-root-${next.stable.version}-source-release.zip unomi-${next.stable.version}-src.zip
-mv unomi-root-${next.stable.version}-source-release.zip.asc unomi-${next.stable.version}-src.zip.asc
-shasum -a 512 unomi-${next.stable.version}-src.zip > unomi-${next.stable.version}-src.zip.sha512
-
-mv unomi-${next.stable.version}.zip unomi-${next.stable.version}-bin.zip
-mv unomi-${next.stable.version}.zip.asc unomi-${next.stable.version}-bin.zip.asc
-shasum -a 512 unomi-${next.stable.version}-bin.zip > unomi-${next.stable.version}-bin.zip.sha512
-
-mv unomi-${next.stable.version}.tar.gz unomi-${next.stable.version}-bin.tar.gz
-mv unomi-${next.stable.version}.tar.gz.asc unomi-${next.stable.version}-bin.tar.gz.asc
-shasum -a 512 unomi-${next.stable.version}-bin.tar.gz > unomi-${next.stable.version}-bin.tar.gz.sha512
-                </code></pre>
-              </li>
-              <li>
-                <pre class="alert alert-primary"><code>cd ..
-svn add ${next.stable.version}</code></pre>
-              </li>
-              <li>
-                <pre class="alert alert-primary"><code>svn commit -m "Apache ${next.stable.version} Release (for PMC voting)"</code></pre>
+              <li>Launch the second stage of the release script
+                <pre class="alert alert-primary"><code>./release-stage-2.sh ${next.stable.version} orgapacheunomi-NEXUS-UNOMI-ID</code></pre>
+                  where NEXUS-UNOMI-ID is the ID generated by Nexus
               </li>
                 <li>Send out to the Unomi mailing list a mail to start the voting process, see <a href="#mail-1">[1]</a></li>
                 <li>If the vote is refused or cancelled, peform the following steps to restart the release process:
@@ -359,17 +277,7 @@ git push</code></pre>
 
             <ol>
                 <li>
-                    In the `unomi` project, on the master, branch, make sure that you have a archive for the current
-                    branch in the `manual/src/archives` directory. If not, create one with the current main version and
-                    copy the contents of `manual/src/main` into the newly created directory. Make sure you add all the
-                    files to the git repository.
-                </li>
-                <li>
-                    Modify the `generate-site.sh` and `generate-site-and-upload.sh` if needed to add the new version
-                    you added in the previous step.
-                </li>
-                <li>
-                    Launch <pre class="alert alert-primary"><code>./generate-site.sh</code></pre> from the project's
+                    Launch <pre class="alert alert-primary"><code>./generate-site.sh ${doc.version} ${next.stable.version}</code></pre> from the project's
                     root directory.
                 </li>
               <li>Check the generated site by opening <code>target/staging/manual/index.html</code>
@@ -377,23 +285,8 @@ git push</code></pre>
               </li>
               <li>
                 Upload the site modification by using:
-                <pre class="alert alert-primary"><code>./generate-site-and-upload.sh APACHE_LDAP_USERNAME APACHE_LDAP_PASSWORD</code></pre>
+                <pre class="alert alert-primary"><code>./generate-site-and-upload.sh ${doc.version} ${next.stable.version} APACHE_LDAP_USERNAME APACHE_LDAP_PASSWORD</code></pre>
               </li>
-                <li>
-                    You will now need to publish the new version of the manual as downloadable resources
-                    <pre class="alert alert-primary"><code>cd manual
-cd target
-svn co https://dist.apache.org/repos/dist/release/unomi/${next.stable.version}
-mv unomi-manual-${doc.version}.pdf ${next.stable.version}
-mv unomi-manual-${doc.version}.pdf.asc ${next.stable.version}
-mv unomi-manual-${doc.version}.zip ${next.stable.version}
-mv unomi-manual-${doc.version}.pdf.sha512 ${next.stable.version}
-mv unomi-manual-${doc.version}.zip.asc ${next.stable.version}
-mv unomi-manual-${doc.version}.zip.sha512 ${next.stable.version}
-cd ${next.stable.version}
-svn add unomi-manual*
-svn commit -m "Update Unomi manual packages"</code></pre>
-                </li>
                 <li>
                     Go back to the site project and make sure you update the documentation page to link to the proper
                     versions of the documents.