[ 
https://issues.apache.org/jira/browse/QPID-8361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16933155#comment-16933155
 ] 

ASF GitHub Bot commented on QPID-8361:
--------------------------------------

vavrtom commented on pull request #36: QPID-8361: [Broker-J] Create a developer 
guide for Qpid Broker-J
URL: https://github.com/apache/qpid-broker-j/pull/36#discussion_r326037679
 
 

 ##########
 File path: doc/developer-guide/src/main/markdown/release-instructions.md
 ##########
 @@ -0,0 +1,193 @@
+# Releasing Qpid Broker-J
+
+This document summarizes the steps of release process for Qpid Broker-J
+
+<!-- toc -->
+
+- [Pre-Requirements](#pre-requirements)
+  * [PGP](#pgp)
+  * [Maven](#maven)
+  * [Java](#java)
+  * [Git](#git)
+- [Release Steps](#release-steps)
+
+<!-- tocstop -->
+
+## Pre-Requirements
+
+The release process is based on [Apache Release 
Policy](http://www.apache.org/dev/release.html),
+ [Release Signing](http://www.apache.org/dev/release-signing.html) and
+ [Publishing of Maven 
Documents](http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env).
+
+### PGP
+
+Release artifacts needs to be signed. GNU Privacy Guard from 
[OpenPGP](https://www.openpgp.org) is used to sign on
+ Apache. Please, refer [Release 
Signing](http://www.apache.org/dev/release-signing.html) about PGP public key
+ cryptography. The document provides basic information about release signing 
and contains links to various resources
+ about PGP public key cryptography and how to use GNU Privacy Guard to 
generate and sign the PGP keys. Install
+ [GNU Privacy Guard](http://www.gnupg.org), generate keys following steps 
provided here and upload public keys to
+ keyservers . After publishing keys, login into <https://id.apache.org> and 
enter PGP key fingerprint(s),
+ then the corresponding keys will be made available under 
<https://people.apache.org/keys/> within a few hours.
+ Additionally, qpid project requires adding a public key into 
<https://dist.apache.org/repos/dist/release/qpid/KEYS>.
+
+### Maven
+
+Maven is used to build and manage Qpid Java project. 3.x version of maven 
needs to be installed and the development
+ environment should be setup as described at
+ [Publishing of Maven 
Artifacts](http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env).
+
+Please, note that repository id (server id) in `setting.xml` should be 
**apache.releases.https**. Using different id
+ would result in failures to publish release artifacts into staging maven repo.
+
+
+### Java
+
+JDK 1.8 is required to compile java classes. Install latest 1.8 JDK. At the 
moment of writing this document JDK version
+1.8.0_192  was the latest one.
+
+### Git
+
+Sources are kept in a Git repository. Thus a git client is required.
+
+## Release Steps
+
+1.  Checkout Qpid Broker-J Sources
+    * For new major/minor release; checkout sources master
+
+        git clone https://gitbox.apache.org/repos/asf/qpid-broker-j.git 
qpid-broker-j
+    * For bugfix release
+        * if support branch does not exist, cut the support branch and set the 
correct version in maven.
+          For example, here are the  commands to cut branch '8.0.x'
+
+                git clone 
https://gitbox.apache.org/repos/asf/qpid-broker-j.git qpid-broker-j
+                cd ./qpid-broker-j
+                git checkout -b 8.0.x
+                git push -u origin 8.0.x
+        * if branch exists, checkout branch sources
+
+                git clone -b 8.0.x 
https://gitbox.apache.org/repos/asf/qpid-broker-j.git 8.0.x
+                cd 8.0.x
+2.  Run RAT tool to verify that all source files have license headers
+
+        mvn  apache-rat:check
+3.  Add license headers to the files which do not have licenses. Update RAT 
excludes if required.
+4.  Check that images don't have a non-free ICC profile.
+
+        find . -regextype posix-extended -iregex '.*\.(jpg|png|ico|tif)' -exec 
sh -c 'identify -verbose "$0" | grep -i copyright && echo "$0"' {} \;
+5.  Check that build completes successfully using profile **apache-release**
+
+        mvn clean install -Papache-release -DskipTests
+    The gpg plugin will prompt for the password of PGP  signing key. If 
password is asked for every release artifact,
+    then gpg2 should be configured to use. The easiest way to configure gpg2 
is to add an active profile with pgp
+    plugin settings into `settings.xml` as illustrated in [maven settings 
example](examples/maven-settings.md).
+6.  Verify third party licenses
+
+        mvn -Pdependency-check prepare-package -DskipTests
+    The check should finish successfully. Otherwise, dependencies with not 
complaint licenses should be resolved
+    before taking next release step.
+7.  Check JIRA system for any unresolved JIRAs for the release and notify 
assigned developers to take actions
+    on uncompleted JIRAs.
+8.  Build RC
+    * If it is not a first RC, remove previous tag from git
+
+            git push --delete origin x.y.z
+            git tag --delete x.y.z # deletes local tag
+    * Cut the tag using maven:prepare
+
+            mvn release:clean
+            mvn release:prepare -Papache-release,java-mms.1-0  
-DautoVersionSubmodules=true -DpreparationGoals=test
+      Release plugin will ask about new release version, tag name and new 
development version.
+      Enter the same values for version and tag.
+      On successful execution a tag with a provided name will be created, the 
tag version will be set to the specified
+      release version and development version on the branch will be changed to 
the provided one.
+    * Build the RC and publish release artifacts into maven staging repo
+
+            mvn release:perform -Papache-release,java-mms.1-0 
-Darguments="-DskipTests"
+    * The staging maven repository needs to be closed. Log into
+      [Apache Nexus UI](https://repository.apache.org/#stagingRepositories), 
select the repository under
+      **Staging Repository** and click `Close` button to close staging 
repository for any publishing of artifacts.
+      After closing, a permanent link to the staging repository will be 
available.
+    * Copy source and binary bundles and their signatures/checksum files from 
the nexus staging repository into
+      qpid dev staging area at 
<https://dist.apache.org/repos/dist/dev/qpid/broker-j/> under the sub-folder 
with
+      the same name as tag. Binary bundles  and their signatures/checksum 
files need to be put into sub-folder
+      with name binaries. (Not doing so would break the site). Manually rename 
the source artefact to keep with
 
 Review comment:
   Probably typo in word 'artefact', because word 'artifact' is used across 
document
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> [Broker-J] Create a developer guide for Qpid Broker-J
> -----------------------------------------------------
>
>                 Key: QPID-8361
>                 URL: https://issues.apache.org/jira/browse/QPID-8361
>             Project: Qpid
>          Issue Type: Task
>          Components: Broker-J
>            Reporter: Alex Rudyy
>            Priority: Major
>             Fix For: qpid-java-broker-8.0.0
>
>
> The developer documentation is currently scattered over various Qpid 
> confluence pages. It could be challenging for people interested in 
> contributing to the project to find that documentation. A developer guide 
> could be added to cover such aspects as
> * Environment Setup
> * Building project
> * Running tests
> * Releasing
> * Architecture overview
> The following wiki pages are good candidates for inclusion into a developer 
> guide:
> [High Level 
> Architecture|https://cwiki.apache.org/confluence/display/qpid/High+Level+Architecture]
> [How To Build Qpid 
> Broker-J|https://cwiki.apache.org/confluence/display/qpid/How+To+Build+Qpid+Broker-J]
> [Releasing Qpid 
> Broker-J|https://cwiki.apache.org/confluence/display/qpid/Releasing+Qpid+Broker-J]
> The wiki pages below might be included as well
> [Java Coding 
> Standards|https://cwiki.apache.org/confluence/display/qpid/Java+Coding+Standards]
> [Qpid Java Run 
> Scripts|https://cwiki.apache.org/confluence/display/qpid/Qpid+Java+Run+Scripts]
> The developer documentation should be easy to modify, maintain and preview. 
> Thus, it can be written in  markdown or 
> [asciidoc|https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/]. The 
> latter is also supported on github. 
> Potentially, it can be published on Qpid  project site as part of release 
> process.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to