Added: unomi/website/contribute/release-guide.html URL: http://svn.apache.org/viewvc/unomi/website/contribute/release-guide.html?rev=1894863&view=auto ============================================================================== --- unomi/website/contribute/release-guide.html (added) +++ unomi/website/contribute/release-guide.html Tue Nov 9 12:04:41 2021 @@ -0,0 +1,708 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + <meta name="description" content=""> + <meta name="author" content=""> + <link rel="icon" href="/assets/images/favicon.ico"> + + <title> | Contribute | Release guide</title> + + <!-- Google Analytics --> + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-70313240-1', 'auto'); + ga('send', 'pageview'); + </script> + <!-- End Google Analytics --> + + <!-- Bootstrap core CSS --> + <link href="/assets/css/bootstrap.min.css" rel="stylesheet"> + <!-- Fontawesome CSS CDN --> + <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous"> + <!-- Custom styles for this template --> + <link href="/assets/css/unomi.css" rel="stylesheet"> +</head> +<body> + +<header> + <nav class="navbar navbar-expand-md navbar-light bg-white fixed-top border-bottom box-shadow"> + <div class="container"> + <a class="navbar-brand" href="/index.html"> + <img src="/assets/images/unomi-86x20.png" alt="Logo Apache Unomi"/> + </a> + <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> + <div class="collapse navbar-collapse justify-content-end" id="navbarCollapse"> + <div> + <ul class="navbar-nav mr-auto align-items-center text-uppercase"> + <li class="nav-item"> + <a class="nav-link" href="/get-started.html">Get started</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/use-cases.html">Use cases</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/stories.html">Stories</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/download.html">Download</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/documentation.html">Documentation</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/resources.html">Resources</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/contribute/index.html">Contribute</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/community/index.html">Community</a> + </li> + <li class="nav-item"> + <a class="nav-link disabled" target="_blank" href="https://www.apache.org"> + <img src="/assets/images/apache-feather-tm-new.png" alt="Logo Apache Feather"/> + </a> + </li> + </ul> + </div> + </div> + </div> + </nav> +</header> + +<main> + <!-- Marketing messaging and featurettes + ================================================== --> + <!-- Wrap the rest of the page in another container to center all the content. --> + + <div class="container"> + <!-- CONTRIBUTE --> + <div class="row mb-5 mt-5 pt-3"> + <div class="col-2 sidenav-menu pt-3"> + <div class="pb-3 text-uppercase"><strong>Contribute</strong></div> + <ul class="list-unstyled mb-3"> + <li><a href="index.html">Get started contributing</a></li> + <li class="sidenav-menu-sub-title">Technical Docs</li> + <li> + <ul class="list-unstyled sidenav-menu-sub-list"> + <li><a href="testing.html">Testing guide</a></li> + <li><a href="dependencies-guide.html">Dependencies guide</a></li> + </ul> + </li> + <li class="sidenav-menu-sub-title">Policies</li> + <li> + <ul class="list-unstyled sidenav-menu-sub-list"> + <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li> + <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li> + </ul> + </li> + <li class="sidenav-menu-sub-title">Committers</li> + <li> + <ul class="list-unstyled sidenav-menu-sub-list"> + <li><a href="become-a-committer.html">Become a committer</a></li> + <li><a href="committer-guide.html">Committer guide</a></li> + <li><a href="release-guide.html">Release guide</a></li> + </ul> + </li> + </ul> + </div> + <div class="col-8 pt-3 offset-4"> + <h2 id="apache-unomi-release-guide">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> + + <p>The Unomi community treats releases with great importance. They are a public face of the project and most users interact with the project only through the releases. Releases are signed off by the entire Unomi community in a public vote.</p> + + <p>Each release is executed by a <em>Release Manager</em>, who is selected among the Unomi committers. This document describes the process that the Release Manager follows to perform a release. Any changes to this process should be discussed and adopted on the <a href="../community/index.html">dev@ mailing list</a>.</p> + + <p>Please remember that publishing software has legal consequences. This guide complements the foundation-wide <a href="https://www.apache.org/dev/release.html" target="_blank">Product Release Policy</a> and <a href="https://www.apache.org/dev/release-distribution" target="_blank">Release Distribution Policy</a>.</p> + + <h2 id="overview">Overview</h2> + + <p><img src="../assets/images/release-guide.png" alt="Apache Unomi release guide" title="Release Process" class="img-fluid" /></p> + + <p>The release process consists of several steps:</p> + + <ol> + <li>Decide to release</li> + <li>Prepare for the release</li> + <li>Build a release candidate</li> + <li>Vote on the release candidate</li> + <li>During vote process, run validation tests</li> + <li>If necessary, fix any issues and go back to step 3.</li> + <li>Finalize the release</li> + <li>Promote the release</li> + </ol> + + <hr /> + + <h2 id="decide-to-release">Decide to release</h2> + + <p>Deciding to release and selecting a Release Manager is the first step of the release process. This is a consensus-based decision of the entire community.</p> + + <p>Anybody can propose a release on the dev@ mailing list, giving a solid argument and nominating a committer as the Release Manager (including themselves). There's no formal process, no vote requirements, and no timing requirements. Any objections should be resolved by consensus before starting the release.</p> + + <p>In general, the community prefers to have a rotating set of 3-5 Release Managers. Keeping a small core set of managers allows enough people to build expertise in this area and improve processes over time, without Release Managers needing to re-learn the processes for each release. That said, if you are a committer interested in serving the community in this way, please reach out to the community on the dev@ mailing list.</p> + + <p>Basically we will be following the procedure described <a href="https://www.apache.org/dev/publishing-maven-artifacts.html" target="_blank">here</a> with a few more steps and details before and after.</p> + + + <h3 id="checklist-to-proceed-to-the-next-step">Checklist to proceed to the next step</h3> + + <ol> + <li>Community agrees to release</li> + <li>Community selects a Release Manager</li> + </ol> + + <hr /> + + <h2 id="prepare-for-the-release">Prepare for the release</h2> + + <h3 id="prepare-source">Pre-flight checks</h3> + <ol> + <li>Make sure all copyright years have been changed in NOTICE and any other file</li> + <li>Check that all SNAPSHOT versions are correct by searching for SNAPSHOT in all XML files</li> + </ol> + + <h3 id="prepare-gpg">GPG Key configuration</h3> + <ol> + <li> + Make sure to have a PGP key for your @apache.org email. + if not you can create a new one locally: + <pre class="alert alert-primary"><code>gpg --gen-key</code></pre> + </li> + <li>Make sure that your default GPG key is configured to use an signature with an @apache.org email. + You can do this by adding the following to your ~/.gnupg/gpg.conf : + <pre class="alert alert-primary"><code>default-key <key-uid></code></pre> + replacing <key-uid> with the key uid you want to use by default. You can get the <key-uid> using: + <pre class="alert alert-primary"><code>gpg --list-secret-keys</code></pre> + You should then check by signing a file and verifying its signature that you have the right + default key: + <pre class="alert alert-primary"><code>gpg -ab test.txt +gpg --verify test.txt.asc test.txt + </code></pre> + This should tell you which key was used and display the email address. + </li> + <li> + Make sure your public KEY is available in this files (if not add your key to the files and commit/push): + <ol> + <li><a href="https://github.com/apache/unomi/blob/master/KEYS">GIT https://github.com/apache/unomi/blob/master/KEYS (cherry-pick to the branches if necessary)</a></li> + <li><a href="https://dist.apache.org/repos/dist/dev/unomi/KEYS">SVN https://dist.apache.org/repos/dist/dev/unomi/KEYS</a></li> + <li><a href="https://dist.apache.org/repos/dist/release/unomi/KEYS">SVN https://dist.apache.org/repos/dist/release/unomi/KEYS</a></li> + </ol> + </li> + <li> + Make sure your public KEY is also available in public pgp server like <a href="https://keys.openpgp.org/">https://keys.openpgp.org/</a>. + You can export your key to file with: + <pre class="alert alert-primary"><code>gpg --export [email protected] > [email protected]</code></pre> + Then upload it on <a href="https://keys.openpgp.org/upload">https://keys.openpgp.org/upload</a> + </li> + </ol> + + <h3 id="prepare-jira">Jira</h3> + <ol> + <li>Setup new version in JIRA project</li> + <li> + Update all JIRAs, close the ones that are still not closed, review tickets that can be closed, postpone to another release tickets that are not managed now. + You can use this JIRA page: <a href="https://issues.apache.org/jira/projects/UNOMI?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased">Unomi JIRA releases</a>. + Then review the list of tickets that need to be updated, also additionally you can check the list of commits since previous release and insure they are closed using fix version: 1.6.0. + Ideally all tickets listed for version: 1.6.0 should be closed or moved to the next version in case they are not finished/started. + </li> + <li> + Then you can also generate a release notes automatically using: <a href="https://issues.apache.org/jira/secure/ConfigureReleaseNote.jspa?projectId=12319220&version=12350150">JIRA release note</a>, + By choosing the version: 1.6.0. It will be useful for linking the release notes in the voting mail. + </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-1.6.x + </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-1.6.x + </code></pre> + </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,performance-tests,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,performance-tests,rat,apache-release,docker,\!run-tests</code></pre> + </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-1.6.0-SNAPSHOT.rat</code></pre> + </li> + <li>Check that the KEYS file only contains signatures with @apache.org addresses (if there are non @apache.org don???t remove them because they have + been used to sign older releases) + </li> + <li>Check the Copyright notice years in the NOTICE file and anywhere else where it might be (by using search and replace)</li> + <li>If you get JavaDoc errors or other errors you must correct all of them before proceeding further</li> + <li>If you get a error while signing despite having the proper keys install that looks like this: + <pre class="alert alert-primary"><code>[INFO] --- maven-gpg-plugin:1.5:sign (default) @ unomi-root --- +gpg: 'echec de la signature : Inappropriate ioctl for device +gpg: signing failed: Inappropriate ioctl for device</code></pre> + you can either try to sign a file like this: + <pre class="alert alert-primary"><code>gpg -ab test.txt</code></pre> + this will ask for your password and remember it in the agent for a while, or if you want a more permanent solution: <a href="https://dan.cx/2016/11/gpg-inappropriate-ioctl-for-device-errors" target="_blank">https://dan.cx/2016/11/gpg-inappropriate-ioctl-for-device-errors</a> + </li> + </ol> + + <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 +cd target +gpg --verify unomi-root-1.6.0-SNAPSHOT-source-release.zip.asc unomi-root-1.6.0-SNAPSHOT-source-release.zip +shasum -a 512 unomi-root-1.6.0-SNAPSHOT-source-release.zip +cat unomi-root-1.6.0-SNAPSHOT-source-release.zip.sha512 +unzip unomi-root-1.6.0-SNAPSHOT-source-release.zip +cd unomi-root-1.6.0-SNAPSHOT +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,performance-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,performance-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,performance-tests,\!run-tests release:perform</code></pre> + </li> + <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 +scm.tag=unomi-root-1.6.0 +and run mvn release:perform</code></pre> + </li> + <li>Connect to <a href="https://repository.apache.org/#stagingRepositories" target="_blank">https://repository.apache + .org/#stagingRepositories</a> and look for the open staging repositories, you should have two (one for everything and the other for KAR/features) for releases <= 1.2 and just one for versions >= 1.3.0 (because of changes in the Karaf plugins). Close the repositories and given a meaningful comment when closing such as:<br> + <strong>Apache Unomi 1.6.0 Release Candidate 1</strong> + </li> + </ol> + + <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 1.6.0</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/1.6.0/" target="_blank">https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi/1.6.0/</a> + and + <a href="https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi-root/1.6.0/" target="_blank">https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi-root/1.6.0/</a> + using commands such as : <pre class="alert alert-primary"><code>wget https://repository.apache.org/content/repositories/orgapacheunomi-1030/org/apache/unomi/unomi-root/1.6.0/unomi-root-1.6.0-source-release.zip +wget https://repository.apache.org/content/repositories/orgapacheunomi-1030/org/apache/unomi/unomi-root/1.6.0/unomi-root-1.6.0-source-release.zip.asc +wget https://repository.apache.org/content/repositories/orgapacheunomi-1030/org/apache/unomi/unomi/1.6.0/unomi-1.6.0.tar.gz +wget https://repository.apache.org/content/repositories/orgapacheunomi-1030/org/apache/unomi/unomi/1.6.0/unomi-1.6.0.tar.gz.asc +wget https://repository.apache.org/content/repositories/orgapacheunomi-1030/org/apache/unomi/unomi/1.6.0/unomi-1.6.0.zip +wget https://repository.apache.org/content/repositories/orgapacheunomi-1030/org/apache/unomi/unomi/1.6.0/unomi-1.6.0.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-1.6.0-source-release.zip unomi-1.6.0-src.zip +mv unomi-root-1.6.0-source-release.zip.asc unomi-1.6.0-src.zip.asc +shasum -a 512 unomi-1.6.0-src.zip > unomi-1.6.0-src.zip.sha512 + +mv unomi-1.6.0.zip unomi-1.6.0-bin.zip +mv unomi-1.6.0.zip.asc unomi-1.6.0-bin.zip.asc +shasum -a 512 unomi-1.6.0-bin.zip > unomi-1.6.0-bin.zip.sha512 + +mv unomi-1.6.0.tar.gz unomi-1.6.0-bin.tar.gz +mv unomi-1.6.0.tar.gz.asc unomi-1.6.0-bin.tar.gz.asc +shasum -a 512 unomi-1.6.0-bin.tar.gz > unomi-1.6.0-bin.tar.gz.sha512 + </code></pre> + </li> + <li> + <pre class="alert alert-primary"><code>cd .. +svn add 1.6.0</code></pre> + </li> + <li> + <pre class="alert alert-primary"><code>svn commit -m "Apache 1.6.0 Release (for PMC voting)"</code></pre> + </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: + <ol> + <li>Drop the release in <a href="https://repository.apache.org/#stagingRepositories" target="_blank">Nexus</a></li> + <li>Remove the tag in Git: + <pre class="alert alert-primary"><code>git push --delete origin unomi-root-1.6.0 +git tag -d unomi-root-1.6.0</code></pre> + </li> + <li>Correct any problems in the source, make sure to do them in master and cherry-pick them to the relevant branches</li> + <li>Reset all versions with the following command: + <pre class="alert alert-primary"><code>mvn versions:set -DskipITs=true -DskipTests=true -P integration-tests,performance-tests,rat,apache-release,docker,\!run-tests</code></pre> + </li> + <li>Restart at the release:prepare step</li> + </ol> + </li> + <li> + If the vote is refused, you will need to restart the release process. Make sure you remove the staging repositories as well as the release tag. You will also need to reset the version in the project using: + <pre class="alert alert-primary"><code>mvn versions:set</code></pre> + </li> + <li>Send out a vote summary in the same thread to the Unomi mailing list once the voting period has expired, see <a href="#mail-2">[2]</a></li> + <li> + Promote the staging repositories now that the release is approved + </li> + </ol> + + <h2 id="finalize-release">Finalize the release</h2> + <ol> + <li> + Move the files uploaded to the unomi-dev repository to the unomi-release repository by doing the following: + <pre class="alert alert-primary"><code>svn mv https://dist.apache.org/repos/dist/dev/unomi/1.6.0 https://dist.apache.org/repos/dist/release/unomi/1.6.0 -m "Apache Unomi 1.6.0 Release"</code></pre> + </li> + <li> + In JIRA mark the version as released and add a release date + </li> + <li> + Connect to <a href="https://repository.apache.org/#stagingRepositories" target="_blank">https://repository.apache.org/#stagingRepositories</a> and look for the open staging repositories, you should have one. Select the staging repositoriy and click on <code>release</code>. + </li> + <li>Update the website to point to the new release on the download page by first copying the current release to the archive page. Make sure you change the links to use the archive.apache.org instead of the closer.lua script (see other archived versions for example). Then you can update the download page with the proper links to the new release (no direct links to <code>www.apache.org/dist</code>, make sure you use the closer.lua script). Be careful with links that contain & (ampersand) characters, they must be replaced with & Finally on the home page update the news section to add the release. + <pre class="alert alert-primary"><code>git clone https://gitbox.apache.org/repos/asf/unomi-site.git</code></pre> + Perform any modifications, notably change the versions in the pom.xml file: + <pre class="alert alert-primary"><code> <properties> + <latest.stable.version>1.5.4</latest.stable.version> + <next.development.version>1.5.5-SNAPSHOT</next.development.version> + <next.stable.version>1.5.5</next.stable.version> + <latest.development.version>2.0.0-SNAPSHOT</latest.development.version> + </properties> +</code></pre> + Then modify the index.html, download.html to add the new files. For the documentation see the next step. + </li> + <li> + Test the site modifications using the generated site HTML using Jekyll serve + <pre class="alert alert-primary"><code>mvn clean install gem:exec@jekyll-serve-filtered</code></pre> + Connect to http://127.0.0.1:4000 to check the modifications. If you need to make more modifications, + simply relaunch the above line after modifying the HTML files. + </li> + <li> + Deploy the web site changes using: + <pre class="alert alert-primary"><code>mvn clean install +mvn install scm-publish:publish-scm -Dusername=YOUR_APACHE_USERNAME -Dpassword=YOUR_APACHE_PASSWORD</code></pre> + </li> + <li> + Then make sure to commit all the changes to the web site's git project: + <pre class="alert alert-primary"><code>git commit -m "Apache Unomi 1.6.0 Release website update"</code></pre> + </li> + </ol> + + <h3 id="final-documentation">Documentation</h3> + + <ol> + <li>Check the generated site by opening <code>target/staging/index.html</code> and check your changes and verify that there are no broken links + </li> + <li>WAIT FOR THE MIRRORS TO SYNC (at least 24 hours)</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> + </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/1.6.0 +mv unomi-manual-1_6_x.pdf 1.6.0 +mv unomi-manual-1_6_x.pdf.asc 1.6.0 +mv unomi-manual-1_6_x.zip 1.6.0 +mv unomi-manual-1_6_x.pdf.sha512 1.6.0 +mv unomi-manual-1_6_x.zip.asc 1.6.0 +mv unomi-manual-1_6_x.zip.sha512 1.6.0 +cd 1.6.0 +svn add unomi-manual* +svn commit -m "Update Unomi manual packages"</code></pre> + </li> + </ol> + + <h3 id="final-docker">Docker image</h3> + + <ol> + <li> + Checkout the tagged version: + <pre class="alert alert-primary"><code>git checkout tags/unomi-root-1.6.0</code></pre> + </li> + <li> + Change to the Docker directory. Make sure you have docker running locally (start Docker Desktop for + example): + <pre class="alert alert-primary"><code>cd docker</code></pre> + </li> + <li> + Launch the docker build and push + <pre class="alert alert-primary"><code>mvn clean install +mvn docker:push</code></pre> + </li> + </ol> + + + <h3 id="rollback">Rollback</h3> + <ol> + <li>Delete the tag: + <pre class="alert alert-primary"><code>git push --delete origin unomi-root-1.6.0 +git tag --delete unomi-root-1.6.0</code></pre> + </li> + <li>Reset to the previous commit before the release preparation: + <pre class="alert alert-primary"><code>git reset --hard c65f9897ec5f31d9d22ad639738c7db9d109aa77 +git push origin -f</code></pre> + </li> + </ol> + + <h2 id="final">Announce</h2> + + <ol> + <li>Send an announce to the project mailing list and the incubator mailing list to announce the new release using mail template <a href="#mail-3">[3]</a></li> + <li>If you were releasing from a branch, make sure you merge all the branch changes for the release back to the master.</li> + </ol> + + <h3 id="social-media">Social media</h3> + + <p>Tweet, post on Facebook, LinkedIn, and other platforms. Ask other contributors to do the same.</p> + + <h3 id="remove-old-releases">Remove old releases</h3> + + <p> + In order to lighten the load on mirrors, remove old releases from the dist server once the new release + has properly been deployed to all the mirrors. Old releases are automatically archived so they are + not needed on the mirrors anymore. Just make sure that all the links in the download page do point + to the archive server. + </p> + + <h3 id="checklist-to-declare-the-process-completed">Checklist to declare the process completed</h3> + + <ol> + <li>Release announced on the user@ mailing list.</li> + <li>Release recorded in reporter.apache.org.</li> + <li>Release announced on social media.</li> + <li>Completion declared on the dev@ mailing list.</li> + <li>Check that old release where removed from the dist server</li> + </ol> + + <h2 id="improve-the-process">Improve the process</h2> + + <p>It is important that we improve the release processes over time. Once you???ve finished the release, please take a step back and look what areas of this process and be improved. Perhaps some part of the process can be simplified. Perhaps parts of this guide can be clarified.</p> + + <p>If we have specific ideas, please start a discussion on the dev@ mailing list and/or propose a pull request to update this guide. Thanks!</p> + + <hr /> + + <h2 id="mail-template">Mail templates</h2> + + <h6 id="mail-1" class="pt-3">[1] Mail template for the Unomi PMC vote:</h6> + <pre class="alert alert-primary"><code> +Subject: [VOTE] Apache Unomi 1.6.0 release [TAKE2] +Body: +Hi all, + +I submit Apache Unomi 1.6.0 release [TAKE2] to your vote. + +The following corrections were done since TAKE 1: +NOTICE year (2016) has been updated to 2018 +unexpected binaries inside zip file [1] : zip file has been completely removed +All artefacts are now signed in an apache email address + +Staging Repository: +*https://repository.apache.org/content/repositories/orgapacheunomi-1021/ +<https://repository.apache.org/content/repositories/orgapacheunomi-1021/>* + +You can find the sources here : + +*https://repository.apache.org/content/repositories/orgapacheunomi-1021/org/apache/ +unomi/unomi-root/1.6.0/unomi-root-1.6.0-source-release.zip +<https://repository.apache.org/content/repositories/orgapacheunomi-1021/org/apache/ +unomi/unomi-root/1.6.0/unomi-root-1.6.0-source-release.zip>* + +Convenience binaries are also available here: +*https://repository.apache.org/content/repositories/orgapacheunomi-1021/org/apache/ +unomi/unomi/1.6.0/ +<https://repository.apache.org/content/repositories/orgapacheunomi-1021/org/apache/ +unomi/unomi/1.6.0/>* + +Git tag: +unomi-root-1.6.0 + +Release Notes: +https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220& +version=12341610 + +Please vote to approve this release: + +[ ] +1 Approve the release +[ ] -1 Don't approve the release (please provide specific comments) + +This vote will be open for at least 72 hours, or until the necessary number +of binding votes (3 +1) is reached. + +Please let me know if you have any questions. + +Thanks, +Regards + </code></pre> + + <h6 id="mail-2" class="pt-3">[2] Mail template for the results of the Unomi PMC vote:</h6> + <pre class="alert alert-primary"><code> +Subject: [RESULT][VOTE] Apache Unomi 1.6.0 release [TAKE2] +Body: +Hi, + +Thank you for your votes. + +Here's the summary : + +3 binding votes +1: + +John Doe 1 +John Doe 2 +John Doe 3 + +2 non-binding vote +1: +John Doe 4 +John Doe 5 + +No 0 or -1. + +The proposal to release Unomi 1.6.0 is approved by the team. + +Thanks, +John Doe 1 + </code></pre> + + <h6 id="mail-3" class="pt-3">[3] Announce mailing list template:</h6> + <pre class="alert alert-primary"><code> +Subject : [ANNOUNCE] Apache Unomi 1.6.0 Release +Body: +The Apache Unomi team would like to announce the release of Apache +Unomi 1.6.0. + +Release notes are here: +https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220& +version=12338361 + +Apache Unomi is a Java Open Source customer data platform, a Java server +designed to manage customers, leads and visitors??? data and help personalize customers??? +experiences. + +More details regarding Apache Unomi can be found here: +http://unomi.apache.org/ + +The release artifacts can be downloaded here: +https://dist.apache.org/repos/dist/release/incubator/unomi/1.6.0/ + +All JIRAs completed for this release are tagged with 'FixVersion = +1.6.0'; the JIRA release notes can be found here: +https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220& +version=12338361 + +Thanks! +The Apache Unomi Team + + </code></pre> + </div> + </div> + </div> + +</main> + +<!-- FOOTER --> +<footer class="container-fluid bg-dark pt-5 pb-3 text-white text-center footer"> + + <div class="container pb-5"> + <div class="row"> + <div class="col-3 col-md-3"> + <h5>Start</h5> + <ul class="list-unstyled text-small"> + <li><a href="/get-started.html" title="Get started">Get started</a></li> + <li><a href="/get-started.html#quickstart" title="Quick start">Quick start</a></li> + <li><a href="/download.html" title="Download">Download</a></li> + </ul> + </div> + + <div class="col-3 col-md-3"> + <h5>Documentation</h5> + <ul class="list-unstyled text-small"> + <li><a href="/documentation.html" title="Main documentation">Main documentation</a></li> + <li><a href="/use-cases.html" title="More use cases">More use cases</a></li> + <li><a href="/rest-api-doc/index.html" title="REST API documentation">REST API documentation</a></li> + <li><a href="/unomi-api/apidocs/index.html" title="API Javadoc">API Javadoc</a></li> + </ul> + </div> + + <div class="col-3 col-md-3"> + <h5>Community</h5> + <ul class="list-unstyled text-small"> + <li><a href="/community/index.html" title="Mailing lists">Contact Us</a></li> + <li><a href="/contribute/index.html" title="Contribute">Contribute</a></li> + <li><a href="/community/team.html" title="Team">Team</a></li> + <li><a href="/community/maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> + </ul> + </div> + + <div class="col-3 col-md-3"> + <h5>About</h5> + <ul class="list-unstyled text-small"> + <li><a target="_blank" href="https://www.oasis-open.org/committees/cxs/" title="OASIS Context Server Technical Committee">OASIS CXS Committee</a></li> + <li><a href="/privacy-policy.html" title="Site policy">Site policy</a></li> + <li><a target="_blank" href="https://www.apache.org/events/current-event.html" title="Apache Events">Apache Events</a></li> + <li><a target="_blank" href="https://www.apache.org/licenses/" title="License">License</a></li> + <li><a target="_blank" href="https://www.apache.org/security/" title="Security">Security</a></li> + <li><a target="_blank" href="https://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li> + <li><a target="_blank" href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li> + </ul> + </div> + <div class="w-100 pt-md-3"></div> + </div> + </div> + + <p class="float-right"><a href="#">Back to top</a></p> + <p>Copyright ©2014 - 2020 <a target="_blank" href="https://www.apache.org">Apache Software Foundation</a> - All Rights Reserved - Powered by <a target="_blank" href="https://karaf.apache.org">Apache Karaf™</a><br/> + Apache Unomi, Unomi, Apache and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p> +</footer> + +<!-- Bootstrap core JavaScript +================================================== --> +<!-- Placed at the end of the document so the pages load faster --> +<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> +<script>window.jQuery || document.write('<script src="/assets/js/vendor/jquery-slim.min.js"><\/script>')</script> +<script src="/assets/js/vendor/popper.min.js"></script> +<script src="/assets/js/vendor/bootstrap.min.js"></script> +</body> +</html> \ No newline at end of file
Added: unomi/website/contribute/testing.html URL: http://svn.apache.org/viewvc/unomi/website/contribute/testing.html?rev=1894863&view=auto ============================================================================== --- unomi/website/contribute/testing.html (added) +++ unomi/website/contribute/testing.html Tue Nov 9 12:04:41 2021 @@ -0,0 +1,290 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + <meta name="description" content=""> + <meta name="author" content=""> + <link rel="icon" href="/assets/images/favicon.ico"> + + <title> | Contribute | Testing</title> + + <!-- Google Analytics --> + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-70313240-1', 'auto'); + ga('send', 'pageview'); + </script> + <!-- End Google Analytics --> + + <!-- Bootstrap core CSS --> + <link href="/assets/css/bootstrap.min.css" rel="stylesheet"> + <!-- Fontawesome CSS CDN --> + <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous"> + <!-- Custom styles for this template --> + <link href="/assets/css/unomi.css" rel="stylesheet"> +</head> +<body> + +<header> + <nav class="navbar navbar-expand-md navbar-light bg-white fixed-top border-bottom box-shadow"> + <div class="container"> + <a class="navbar-brand" href="/index.html"> + <img src="/assets/images/unomi-86x20.png" alt="Logo Apache Unomi"/> + </a> + <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> + <div class="collapse navbar-collapse justify-content-end" id="navbarCollapse"> + <div> + <ul class="navbar-nav mr-auto align-items-center text-uppercase"> + <li class="nav-item"> + <a class="nav-link" href="/get-started.html">Get started</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/use-cases.html">Use cases</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/stories.html">Stories</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/download.html">Download</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/documentation.html">Documentation</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/resources.html">Resources</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/contribute/index.html">Contribute</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/community/index.html">Community</a> + </li> + <li class="nav-item"> + <a class="nav-link disabled" target="_blank" href="https://www.apache.org"> + <img src="/assets/images/apache-feather-tm-new.png" alt="Logo Apache Feather"/> + </a> + </li> + </ul> + </div> + </div> + </div> + </nav> +</header> + +<main> + <!-- Marketing messaging and featurettes + ================================================== --> + <!-- Wrap the rest of the page in another container to center all the content. --> + + <div class="container"> + <!-- CONTRIBUTE --> + <div class="row mb-5 mt-5 pt-3"> + <div class="col-2 sidenav-menu pt-3"> + <div class="pb-3 text-uppercase"><strong>Contribute</strong></div> + <ul class="list-unstyled mb-3"> + <li><a href="index.html">Get started contributing</a></li> + <li class="sidenav-menu-sub-title">Technical Docs</li> + <li> + <ul class="list-unstyled sidenav-menu-sub-list"> + <li><a href="testing.html">Testing guide</a></li> + <li><a href="dependencies-guide.html">Dependencies guide</a></li> + </ul> + </li> + <li class="sidenav-menu-sub-title">Policies</li> + <li> + <ul class="list-unstyled sidenav-menu-sub-list"> + <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li> + <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li> + </ul> + </li> + <li class="sidenav-menu-sub-title">Committers</li> + <li> + <ul class="list-unstyled sidenav-menu-sub-list"> + <li><a href="become-a-committer.html">Become a committer</a></li> + <li><a href="committer-guide.html">Committer guide</a></li> + <li><a href="release-guide.html">Release guide</a></li> + </ul> + </li> + </ul> + </div> + <div class="col-8 pt-3 offset-4"> + <h2 class="pb-1">Apache Unomi Testing</h2> + <p>This document outlines how to write tests, which tests are appropriate where, and when tests are run, with some additional information about the testing systems at the bottom.</p> + + <h3 id="testing-scenarios">Testing Scenarios</h3> + + <p>Ideally, all available tests should be run against a pull request (PR) before it's allowed to be committed to Unomi's <a target="_blank" href="https://github.com/apache/unomi">Github</a> repo. This is not possible, however, due to a combination of time and resource constraints. Running all tests for each PR would take hours or even days using available resources, which would slow down development considerably.</p> + + <p>Thus tests are split into <em>pre-commit</em> and <em>post-commit</em> suites. Pre-commit is fast, while post-commit is comprehensive. As their names imply, pre-commit tests are run on each PR before it is committed, while post-commits run periodically against the master branch (i.e. on already committed PRs).</p> + + <p>Unomi uses <a target="_blank" href="https://builds.apache.org/job/unomi-master/">Jenkins</a> to run pre-commit and post-commit tests.</p> + + <h4 id="pre-commit">Pre-commit</h4> + + <p>The pre-commit test suite verifies correctness via two testing tools: unit tests and end-to-end (E2E) tests. Unit tests ensure correctness at a basic level, while WordCount E2E tests are run to verify that a basic level of functionality exists.</p> + + <p>This combination of tests hits the appropriate tradeoff between a desire for + short (ideally <30m) pre-commit times and a desire to verify that PRs going + into Unomi function in the way in which they are intended.</p> + + <p>Pre-commit jobs are kicked off when a contributor makes a PR against the <code>apache/unomi</code> repository. Job statuses are displayed at the bottom of the PR page. Clicking on "Details" will open the status page in the selected tool; there, you can view test status and output.</p> + + <h4 id="post-commit">Post-commit</h4> + + <p>Running in post-commit removes as stringent of a time constraint, which gives us the ability to do some more comprehensive testing. In post-commit we have a test suite running the ValidatesRunner tests against each supported runner, and another for running the full set of E2E tests against each runner. + Currently-supported runners are Dataflow, Flink, Spark, and Gearpump, with others soon to follow. Work is ongoing to enable Flink, Spark, and Gearpump in + the E2E framework, with full support targeted for end of August 2016. Post-commit tests run periodically, with timing defined in their Jenkins configurations.</p> + + <p>Adding new post-commit E2E tests is generally as easy as adding a *IT.java file to the repository - Failsafe will notice it and run it - but if you want to do more interesting things, take a look at <a target="_blank" href="https://github.com/apache/unomi/blob/master/examples/java/src/test/java/org/apache/unomi/examples/WordCountIT.java">WordCountIT.java</a>.</p> + + <p>Post-commit test results can be found in <a target="_blank" href="https://builds.apache.org/view/A-D/view/Unomi/">Jenkins</a>.</p> + + <h3 id="testing-types">Testing Types</h3> + + <h4 id="unit">Unit</h4> + + <p>Unit tests are, in Unomi as everywhere else, the first line of defense in ensuring software correctness. As all of the contributors to Unomi understand the importance of testing, Unomi has a robust set of unit tests, as well as testing overage measurement tools, which protect the codebase from simple to moderate breakages. Unomi Java unit tests are written in JUnit.</p> + + <h4 id="how-to-run-java-needsrunner-tests">How to run Java tests</h4> + + <p>//TODO add description</p> + + <pre class="alert alert-primary"><code>$ .mvn test -Dtest=MyClassTest</code></pre> + + <h4 id="e2e">E2E</h4> + + <p>End-to-End tests are meant to verify at the very highest level that the Unomi codebase is working as intended. Because they are implemented as a thin wrapper around existing pipelines, they can be used to prove that the core Unomi functionality is available. They will be used to verify //TODO</p> + + <h3 id="testing-systems">Testing Systems</h3> + + <h4 id="e2e-testing-framework">E2E Testing</h4> + + <p>//TODO</p> + + <h3 id="best_practices">Best practices for writing tests</h3> + + <p>The following best practices help you to write reliable and maintainable tests.</p> + + <h4 id="aim-for-one-failure-path">Aim for one failure path</h4> + + <p>An ideal test has one failure path. When you create your tests, minimize the possible reasons for a test failure. A developer can debug a problem more easily when there are fewer failure paths.</p> + + <h4 id="avoid-non-deterministic-code">Avoid non-deterministic code</h4> + + <p>Reliable tests are predictable and deterministic. Tests that contain non-deterministic code are hard to debug and are often flaky. Non-deterministic code includes the use of randomness, time, and multithreading.</p> + + <p>To avoid non-deterministic code, mock the corresponding methods or classes.</p> + + <h4 id="use-descriptive-test-names">Use descriptive test names</h4> + + <p>Helpful test names contain details about your test, such as test parameters and the expected result. Ideally, a developer can read the test name and know where the buggy code is and how to reproduce the bug.</p> + + <p>An easy and effective way to name your methods is to use these three questions:</p> + + <ul> + <li>What you are testing?</li> + <li>What are the parameters of the test?</li> + <li>What is the expected result of the test?</li> + </ul> + + <p>For example, consider a scenario where you want to add a test for the + <code>Divide</code> method</p> + + <p>If you use a simple test name, such as <code>testDivide()</code>, you are missing important information such as the expected action, parameter information, and expected test result. As a result, triaging a test failure requires you to look at the test implementation to see what the test does.</p> + + <p>Instead, use a name such as <code>invokingDivideWithDivisorEqualToZeroThrowsException()</code>, which specifies:</p> + + <ul> + <li>the expected action of the test (<code>invokingDivide</code>)</li> + <li>details about important parameters (the divisor is zero)</li> + <li>the expected result (the test throws an exception)</li> + </ul> + + <p>If this test fails, you can look at the descriptive test name to find the most probable cause of the failure. In addition, test frameworks and test result + dashboards use the test name when reporting test results. Descriptive names enable contributors to look at test suite results and easily see what features are failing.</p> + + <p>Long method names are not a problem for test code. Test names are rarely used (usually when you triage and debug), and when you do need to look at a + test, it is helpful to have descriptive names.</p> + + <h4 id="use-a-pre-commit-test-if-possible">Use a pre-commit test if possible</h4> + + <p>Post-commit tests validate that Unomi works correctly in broad variety of scenarios. The tests catch errors that are hard to predict in the design and implementation stages</p> + + <p>However, we often write a test to verify a specific scenario. In this situation, it is usually possible to implement the test as a unit test or a component test. You can add your unit tests or component tests to the pre-commit test suite, and the pre-commit test results give you faster code health feedback during the development stage, when a bug is cheap to fix.</p> + </div> + </div> + </div> + +</main> + +<!-- FOOTER --> +<footer class="container-fluid bg-dark pt-5 pb-3 text-white text-center footer"> + + <div class="container pb-5"> + <div class="row"> + <div class="col-3 col-md-3"> + <h5>Start</h5> + <ul class="list-unstyled text-small"> + <li><a href="/get-started.html" title="Get started">Get started</a></li> + <li><a href="/get-started.html#quickstart" title="Quick start">Quick start</a></li> + <li><a href="/download.html" title="Download">Download</a></li> + </ul> + </div> + + <div class="col-3 col-md-3"> + <h5>Documentation</h5> + <ul class="list-unstyled text-small"> + <li><a href="/documentation.html" title="Main documentation">Main documentation</a></li> + <li><a href="/use-cases.html" title="More use cases">More use cases</a></li> + <li><a href="/rest-api-doc/index.html" title="REST API documentation">REST API documentation</a></li> + <li><a href="/unomi-api/apidocs/index.html" title="API Javadoc">API Javadoc</a></li> + </ul> + </div> + + <div class="col-3 col-md-3"> + <h5>Community</h5> + <ul class="list-unstyled text-small"> + <li><a href="/community/index.html" title="Mailing lists">Contact Us</a></li> + <li><a href="/contribute/index.html" title="Contribute">Contribute</a></li> + <li><a href="/community/team.html" title="Team">Team</a></li> + <li><a href="/community/maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> + </ul> + </div> + + <div class="col-3 col-md-3"> + <h5>About</h5> + <ul class="list-unstyled text-small"> + <li><a target="_blank" href="https://www.oasis-open.org/committees/cxs/" title="OASIS Context Server Technical Committee">OASIS CXS Committee</a></li> + <li><a href="/privacy-policy.html" title="Site policy">Site policy</a></li> + <li><a target="_blank" href="https://www.apache.org/events/current-event.html" title="Apache Events">Apache Events</a></li> + <li><a target="_blank" href="https://www.apache.org/licenses/" title="License">License</a></li> + <li><a target="_blank" href="https://www.apache.org/security/" title="Security">Security</a></li> + <li><a target="_blank" href="https://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li> + <li><a target="_blank" href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li> + </ul> + </div> + <div class="w-100 pt-md-3"></div> + </div> + </div> + + <p class="float-right"><a href="#">Back to top</a></p> + <p>Copyright ©2014 - 2020 <a target="_blank" href="https://www.apache.org">Apache Software Foundation</a> - All Rights Reserved - Powered by <a target="_blank" href="https://karaf.apache.org">Apache Karaf™</a><br/> + Apache Unomi, Unomi, Apache and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p> +</footer> + +<!-- Bootstrap core JavaScript +================================================== --> +<!-- Placed at the end of the document so the pages load faster --> +<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> +<script>window.jQuery || document.write('<script src="/assets/js/vendor/jquery-slim.min.js"><\/script>')</script> +<script src="/assets/js/vendor/popper.min.js"></script> +<script src="/assets/js/vendor/bootstrap.min.js"></script> +</body> +</html> \ No newline at end of file Added: unomi/website/contribute/website.html URL: http://svn.apache.org/viewvc/unomi/website/contribute/website.html?rev=1894863&view=auto ============================================================================== --- unomi/website/contribute/website.html (added) +++ unomi/website/contribute/website.html Tue Nov 9 12:04:41 2021 @@ -0,0 +1,233 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + <meta name="description" content=""> + <meta name="author" content=""> + <link rel="icon" href="/assets/images/favicon.ico"> + + <title> | Contribute | Website</title> + + <!-- Google Analytics --> + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-70313240-1', 'auto'); + ga('send', 'pageview'); + </script> + <!-- End Google Analytics --> + + <!-- Bootstrap core CSS --> + <link href="/assets/css/bootstrap.min.css" rel="stylesheet"> + <!-- Fontawesome CSS CDN --> + <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous"> + <!-- Custom styles for this template --> + <link href="/assets/css/unomi.css" rel="stylesheet"> +</head> +<body> + +<header> + <nav class="navbar navbar-expand-md navbar-light bg-white fixed-top border-bottom box-shadow"> + <div class="container"> + <a class="navbar-brand" href="/index.html"> + <img src="/assets/images/unomi-86x20.png" alt="Logo Apache Unomi"/> + </a> + <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> + <div class="collapse navbar-collapse justify-content-end" id="navbarCollapse"> + <div> + <ul class="navbar-nav mr-auto align-items-center text-uppercase"> + <li class="nav-item"> + <a class="nav-link" href="/get-started.html">Get started</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/use-cases.html">Use cases</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/stories.html">Stories</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/download.html">Download</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/documentation.html">Documentation</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/resources.html">Resources</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/contribute/index.html">Contribute</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/community/index.html">Community</a> + </li> + <li class="nav-item"> + <a class="nav-link disabled" target="_blank" href="https://www.apache.org"> + <img src="/assets/images/apache-feather-tm-new.png" alt="Logo Apache Feather"/> + </a> + </li> + </ul> + </div> + </div> + </div> + </nav> +</header> + +<main> + <!-- Marketing messaging and featurettes + ================================================== --> + <!-- Wrap the rest of the page in another container to center all the content. --> + + <div class="container"> + <!-- CONTRIBUTE --> + <div class="row mb-5 mt-5 pt-3"> + <div class="col-2 sidenav-menu pt-3"> + <div class="pb-3 text-uppercase"><strong>Contribute</strong></div> + <ul class="list-unstyled mb-3"> + <li><a href="index.html">Get started contributing</a></li> + <li class="sidenav-menu-sub-title">Technical Docs</li> + <li> + <ul class="list-unstyled sidenav-menu-sub-list"> + <li><a href="testing.html">Testing guide</a></li> + <li><a href="dependencies-guide.html">Dependencies guide</a></li> + </ul> + </li> + <li class="sidenav-menu-sub-title">Policies</li> + <li> + <ul class="list-unstyled sidenav-menu-sub-list"> + <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li> + <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li> + </ul> + </li> + <li class="sidenav-menu-sub-title">Committers</li> + <li> + <ul class="list-unstyled sidenav-menu-sub-list"> + <li><a href="become-a-committer.html">Become a committer</a></li> + <li><a href="committer-guide.html">Committer guide</a></li> + <li><a href="release-guide.html">Release guide</a></li> + </ul> + </li> + </ul> + </div> + <div class="col-8 pt-3 offset-4"> + <h2 class="pb-1">Website Contributions</h2> + + <p>Contributions to the website require the same steps as contributions to the main repository, so start with the instructions for <a href="index.html">Contributing Code</a>.</p> + + <p>The Unomi website is in the <a target="_blank" href="https://github.com/apache/unomi-site">Unomi Site GitHub mirror</a> repository in the <code>asf-site</code> branch (<em>not</em> <code>master</code>).</p> + + <p>Issues are tracked in the <a target="_blank" href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20UNOMI%20AND%20component%20%3D%20website">website</a> component in JIRA.</p> + + <h3 id="one-time-setup">One-time Setup</h3> + + <p>The <a target="_blank" href="https://github.com/apache/unomi-site/blob/asf-site/README.md">README file</a> in the website repository has more information on how to set up the required dependencies for your development environment.</p> + + <p>The general guidelines for cloning a repository can be adjusted to use the <code>asf-site</code> branch of <code>unomi-site</code>:</p> + + <p class="alert alert-primary"><code>$ git clone -b asf-site https://github.com/apache/unomi-site.git + $ cd unomi-site + $ git remote add <GitHub_user> [email protected]:<GitHub_user>/unomi-site.git + $ git fetch --all + $ git checkout -b <my-branch> origin/asf-site + </code></p> + + <h3 id="working-on-your-change">Working on your change</h3> + + <p>While you are working on your pull request, you can test and develop live by running the following command in the root folder of the website:</p> + + <p class="alert alert-primary"><code>$ bundle exec jekyll serve --incremental</code></p> + + <p>Jekyll will start a webserver on port 4000. As you make changes to the content, Jekyll will rebuild it automatically.</p> + + <p>In addition, you can run the tests to valid your links using:</p> + + <p class="alert alert-primary"><code>$ bundle exec rake test</code></p> + + <p>Both of these commands will cause the <code>content/</code> directory to be generated. Merging autogenerated content can get tricky, so please leave this directory out of your commits and pull request by doing:</p> + + <p class="alert alert-primary"><code>$ git checkout -- content</code></p> + + <p>When you are ready, submit a pull request using the <a target="_blank" href="https://github.com/apache/unomi-site">Unomi Site GitHub mirror</a>, including the JIRA issue as usual.</p> + + <p>During review, committers will patch in your PR, generate the static <code>content/</code>, and review the changes.</p> + + <h3 id="committing-website-changes-committers-only">Committing website changes (committers only)</h3> + + <p>We have a bot that runs tests and merges changes to the website. When the pull request is fully ready to be merged, a committer can comment</p> + + <p class="alert alert-primary"><code>@asfgit merge</code></p> + </div> + </div> + </div> + +</main> + +<!-- FOOTER --> +<footer class="container-fluid bg-dark pt-5 pb-3 text-white text-center footer"> + + <div class="container pb-5"> + <div class="row"> + <div class="col-3 col-md-3"> + <h5>Start</h5> + <ul class="list-unstyled text-small"> + <li><a href="/get-started.html" title="Get started">Get started</a></li> + <li><a href="/get-started.html#quickstart" title="Quick start">Quick start</a></li> + <li><a href="/download.html" title="Download">Download</a></li> + </ul> + </div> + + <div class="col-3 col-md-3"> + <h5>Documentation</h5> + <ul class="list-unstyled text-small"> + <li><a href="/documentation.html" title="Main documentation">Main documentation</a></li> + <li><a href="/use-cases.html" title="More use cases">More use cases</a></li> + <li><a href="/rest-api-doc/index.html" title="REST API documentation">REST API documentation</a></li> + <li><a href="/unomi-api/apidocs/index.html" title="API Javadoc">API Javadoc</a></li> + </ul> + </div> + + <div class="col-3 col-md-3"> + <h5>Community</h5> + <ul class="list-unstyled text-small"> + <li><a href="/community/index.html" title="Mailing lists">Contact Us</a></li> + <li><a href="/contribute/index.html" title="Contribute">Contribute</a></li> + <li><a href="/community/team.html" title="Team">Team</a></li> + <li><a href="/community/maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> + </ul> + </div> + + <div class="col-3 col-md-3"> + <h5>About</h5> + <ul class="list-unstyled text-small"> + <li><a target="_blank" href="https://www.oasis-open.org/committees/cxs/" title="OASIS Context Server Technical Committee">OASIS CXS Committee</a></li> + <li><a href="/privacy-policy.html" title="Site policy">Site policy</a></li> + <li><a target="_blank" href="https://www.apache.org/events/current-event.html" title="Apache Events">Apache Events</a></li> + <li><a target="_blank" href="https://www.apache.org/licenses/" title="License">License</a></li> + <li><a target="_blank" href="https://www.apache.org/security/" title="Security">Security</a></li> + <li><a target="_blank" href="https://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li> + <li><a target="_blank" href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li> + </ul> + </div> + <div class="w-100 pt-md-3"></div> + </div> + </div> + + <p class="float-right"><a href="#">Back to top</a></p> + <p>Copyright ©2014 - 2020 <a target="_blank" href="https://www.apache.org">Apache Software Foundation</a> - All Rights Reserved - Powered by <a target="_blank" href="https://karaf.apache.org">Apache Karaf™</a><br/> + Apache Unomi, Unomi, Apache and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p> +</footer> + +<!-- Bootstrap core JavaScript +================================================== --> +<!-- Placed at the end of the document so the pages load faster --> +<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> +<script>window.jQuery || document.write('<script src="/assets/js/vendor/jquery-slim.min.js"><\/script>')</script> +<script src="/assets/js/vendor/popper.min.js"></script> +<script src="/assets/js/vendor/bootstrap.min.js"></script> +</body> +</html> \ No newline at end of file Modified: unomi/website/documentation.html URL: http://svn.apache.org/viewvc/unomi/website/documentation.html?rev=1894863&r1=1894862&r2=1894863&view=diff ============================================================================== --- unomi/website/documentation.html (original) +++ unomi/website/documentation.html Tue Nov 9 12:04:41 2021 @@ -33,7 +33,7 @@ <header> <nav class="navbar navbar-expand-md navbar-light bg-white fixed-top border-bottom box-shadow"> <div class="container"> - <a class="navbar-brand" href="index.html"> + <a class="navbar-brand" href="/index.html"> <img src="/assets/images/unomi-86x20.png" alt="Logo Apache Unomi"/> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> @@ -61,10 +61,10 @@ <a class="nav-link" href="/resources.html">Resources</a> </li> <li class="nav-item"> - <a class="nav-link" href="/contribute.html">Contribute</a> + <a class="nav-link" href="/contribute/index.html">Contribute</a> </li> <li class="nav-item"> - <a class="nav-link" href="/community.html">Community</a> + <a class="nav-link" href="/community/index.html">Community</a> </li> <li class="nav-item"> <a class="nav-link disabled" target="_blank" href="https://www.apache.org"> @@ -409,10 +409,10 @@ <div class="col-3 col-md-3"> <h5>Community</h5> <ul class="list-unstyled text-small"> - <li><a href="/community.html" title="Mailing lists">Contact Us</a></li> - <li><a href="/contribute.html" title="Contribute">Contribute</a></li> - <li><a href="/community-team.html" title="Team">Team</a></li> - <li><a href="/community-maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> + <li><a href="/community/index.html" title="Mailing lists">Contact Us</a></li> + <li><a href="/contribute/index.html" title="Contribute">Contribute</a></li> + <li><a href="/community/team.html" title="Team">Team</a></li> + <li><a href="/community/maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> </ul> </div> Modified: unomi/website/download.html URL: http://svn.apache.org/viewvc/unomi/website/download.html?rev=1894863&r1=1894862&r2=1894863&view=diff ============================================================================== --- unomi/website/download.html (original) +++ unomi/website/download.html Tue Nov 9 12:04:41 2021 @@ -33,7 +33,7 @@ <header> <nav class="navbar navbar-expand-md navbar-light bg-white fixed-top border-bottom box-shadow"> <div class="container"> - <a class="navbar-brand" href="index.html"> + <a class="navbar-brand" href="/index.html"> <img src="/assets/images/unomi-86x20.png" alt="Logo Apache Unomi"/> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> @@ -61,10 +61,10 @@ <a class="nav-link" href="/resources.html">Resources</a> </li> <li class="nav-item"> - <a class="nav-link" href="/contribute.html">Contribute</a> + <a class="nav-link" href="/contribute/index.html">Contribute</a> </li> <li class="nav-item"> - <a class="nav-link" href="/community.html">Community</a> + <a class="nav-link" href="/community/index.html">Community</a> </li> <li class="nav-item"> <a class="nav-link disabled" target="_blank" href="https://www.apache.org"> @@ -519,10 +519,10 @@ <div class="col-3 col-md-3"> <h5>Community</h5> <ul class="list-unstyled text-small"> - <li><a href="/community.html" title="Mailing lists">Contact Us</a></li> - <li><a href="/contribute.html" title="Contribute">Contribute</a></li> - <li><a href="/community-team.html" title="Team">Team</a></li> - <li><a href="/community-maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> + <li><a href="/community/index.html" title="Mailing lists">Contact Us</a></li> + <li><a href="/contribute/index.html" title="Contribute">Contribute</a></li> + <li><a href="/community/team.html" title="Team">Team</a></li> + <li><a href="/community/maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> </ul> </div> Modified: unomi/website/get-started.html URL: http://svn.apache.org/viewvc/unomi/website/get-started.html?rev=1894863&r1=1894862&r2=1894863&view=diff ============================================================================== --- unomi/website/get-started.html (original) +++ unomi/website/get-started.html Tue Nov 9 12:04:41 2021 @@ -33,7 +33,7 @@ <header> <nav class="navbar navbar-expand-md navbar-light bg-white fixed-top border-bottom box-shadow"> <div class="container"> - <a class="navbar-brand" href="index.html"> + <a class="navbar-brand" href="/index.html"> <img src="/assets/images/unomi-86x20.png" alt="Logo Apache Unomi"/> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> @@ -61,10 +61,10 @@ <a class="nav-link" href="/resources.html">Resources</a> </li> <li class="nav-item"> - <a class="nav-link" href="/contribute.html">Contribute</a> + <a class="nav-link" href="/contribute/index.html">Contribute</a> </li> <li class="nav-item"> - <a class="nav-link" href="/community.html">Community</a> + <a class="nav-link" href="/community/index.html">Community</a> </li> <li class="nav-item"> <a class="nav-link disabled" target="_blank" href="https://www.apache.org"> @@ -156,10 +156,10 @@ <div class="col-3 col-md-3"> <h5>Community</h5> <ul class="list-unstyled text-small"> - <li><a href="/community.html" title="Mailing lists">Contact Us</a></li> - <li><a href="/contribute.html" title="Contribute">Contribute</a></li> - <li><a href="/community-team.html" title="Team">Team</a></li> - <li><a href="/community-maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> + <li><a href="/community/index.html" title="Mailing lists">Contact Us</a></li> + <li><a href="/contribute/index.html" title="Contribute">Contribute</a></li> + <li><a href="/community/team.html" title="Team">Team</a></li> + <li><a href="/community/maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> </ul> </div> Modified: unomi/website/index.html URL: http://svn.apache.org/viewvc/unomi/website/index.html?rev=1894863&r1=1894862&r2=1894863&view=diff ============================================================================== --- unomi/website/index.html (original) +++ unomi/website/index.html Tue Nov 9 12:04:41 2021 @@ -33,7 +33,7 @@ <header> <nav class="navbar navbar-expand-md navbar-light bg-white fixed-top border-bottom box-shadow"> <div class="container"> - <a class="navbar-brand" href="index.html"> + <a class="navbar-brand" href="/index.html"> <img src="/assets/images/unomi-86x20.png" alt="Logo Apache Unomi"/> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> @@ -61,10 +61,10 @@ <a class="nav-link" href="/resources.html">Resources</a> </li> <li class="nav-item"> - <a class="nav-link" href="/contribute.html">Contribute</a> + <a class="nav-link" href="/contribute/index.html">Contribute</a> </li> <li class="nav-item"> - <a class="nav-link" href="/community.html">Community</a> + <a class="nav-link" href="/community/index.html">Community</a> </li> <li class="nav-item"> <a class="nav-link disabled" target="_blank" href="https://www.apache.org"> @@ -115,7 +115,7 @@ </div><!-- /.col-lg-8 --> <div class="col-lg-4 my-auto mx-auto"> - <p>Find the agenda, registration and more details on the <a href="/events/meetups/2021-11-18.html">event's page</a>.</p> + <p>Find the agenda, registration and more details on the <a href="/community/events/meetups/2021-11-18.html">event's page</a>.</p> </div><!-- /.col-lg-4 --> </div><!-- /.row --> @@ -290,7 +290,7 @@ <li>2016-10-04 Released version 1.1.0-incubating</li> <li>2016-05-22 Released version 1.0.0-incubating</li> <li>2015-11-23 Initial code base import in <a href="https://gitbox.apache.org/repos/asf?p=unomi.git" target="_blank">Git repository</a></li> - <li>2015-11-20 Added <a href="community-maturity-model-report.html">Apache Maturity Model report page</a></li> + <li>2015-11-20 Added <a href="community/maturity-model-report.html">Apache Maturity Model report page</a></li> <li>2015-11-13 Initial web site created</li> <li>2015-10-20 JIRA, mailing lists, git, website space created.</li> <li>2015-10-05 Project enters incubation.</li> @@ -315,8 +315,8 @@ We also love contributions : don't hesitate to contribute. </p> <p> - <a href="community.html">Be Involved In The Community</a> | - <a href="contribute.html">How To Contribute</a> + <a href="community/index.html">Be Involved In The Community</a> | + <a href="contribute/index.html">How To Contribute</a> </p> </div> <div class="col-md-5 align-items-center"> @@ -363,10 +363,10 @@ <div class="col-3 col-md-3"> <h5>Community</h5> <ul class="list-unstyled text-small"> - <li><a href="/community.html" title="Mailing lists">Contact Us</a></li> - <li><a href="/contribute.html" title="Contribute">Contribute</a></li> - <li><a href="/community-team.html" title="Team">Team</a></li> - <li><a href="/community-maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> + <li><a href="/community/index.html" title="Mailing lists">Contact Us</a></li> + <li><a href="/contribute/index.html" title="Contribute">Contribute</a></li> + <li><a href="/community/team.html" title="Team">Team</a></li> + <li><a href="/community/maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> </ul> </div> Modified: unomi/website/privacy-policy.html URL: http://svn.apache.org/viewvc/unomi/website/privacy-policy.html?rev=1894863&r1=1894862&r2=1894863&view=diff ============================================================================== --- unomi/website/privacy-policy.html (original) +++ unomi/website/privacy-policy.html Tue Nov 9 12:04:41 2021 @@ -33,7 +33,7 @@ <header> <nav class="navbar navbar-expand-md navbar-light bg-white fixed-top border-bottom box-shadow"> <div class="container"> - <a class="navbar-brand" href="index.html"> + <a class="navbar-brand" href="/index.html"> <img src="/assets/images/unomi-86x20.png" alt="Logo Apache Unomi"/> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> @@ -61,10 +61,10 @@ <a class="nav-link" href="/resources.html">Resources</a> </li> <li class="nav-item"> - <a class="nav-link" href="/contribute.html">Contribute</a> + <a class="nav-link" href="/contribute/index.html">Contribute</a> </li> <li class="nav-item"> - <a class="nav-link" href="/community.html">Community</a> + <a class="nav-link" href="/community/index.html">Community</a> </li> <li class="nav-item"> <a class="nav-link disabled" target="_blank" href="https://www.apache.org"> @@ -138,10 +138,10 @@ <div class="col-3 col-md-3"> <h5>Community</h5> <ul class="list-unstyled text-small"> - <li><a href="/community.html" title="Mailing lists">Contact Us</a></li> - <li><a href="/contribute.html" title="Contribute">Contribute</a></li> - <li><a href="/community-team.html" title="Team">Team</a></li> - <li><a href="/community-maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> + <li><a href="/community/index.html" title="Mailing lists">Contact Us</a></li> + <li><a href="/contribute/index.html" title="Contribute">Contribute</a></li> + <li><a href="/community/team.html" title="Team">Team</a></li> + <li><a href="/community/maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li> </ul> </div>
