source: tags/1.7.1/doc/releng.org

Last change on this file was 15341, checked in by Mark Evenson, 4 years ago

1.7.1: metadata for abcl-1.7.1

File size: 4.8 KB
Line 
1* ABCL Release Engineering
2
3See also <https://abcl.org/trac/wiki/ReleaseSteps>.
4
5*** Maven
6
7Instructions for releasing ABCL on Sonatype's OSS Maven repository.
8
9You need a Sonatype account, see
10<https://central.sonatype.org/pages/ossrh-guide.html>.  This will
11result in providing you with a "JIRA username and a password".
12
13**** settings.xml
14
15Enter your "JIRA username and a password" in a
16<file:.m2/settings.xml>.  This will authenticate
17
18#+BEGIN_SRC xml
19<settings>
20 <server>
21   <id>sonatype-nexus-snapshots</id>
22   <username>sonatype-jira-username</username>
23   <password>sonatype-jira-password</password>
24 </server>
25 <server>
26   <id>sonatype-nexus-staging</id>
27   <username>sonatype-jira-username</username>
28   <password>sonatype-jira-password</password>
29 </server>
30</settings>
31#+END_SRC
32
33**** Process
34
35Ensure that the artifacts you wish to upload are present by building
36them.
37#+begin_src
38ant abcl.release abcl.source.jar abcl.javadoc.jar abcl.contrib.javadoc.jar abcl.contrib.source.jar
39#+end_src
40
41#+BEGIN_SRC
42ant abcl.jar abcl.source.jar abcl.javadoc.jar abcl.contrib
43#+END_SRC
44
45And maybe test it as well
46
47#+BEGIN_SRC
48ant abcl.test
49#+END_SRC
50
51**** Snapshots
52For snapshots - development versions - the version in the POM should look like ~x.y.z-SNAPSHOT~.
53
54#+BEGIN_SRC bash
55keyname='<your_pgp_key@example.com>'
56mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots
57mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-sources.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots -Dclassifier=sources
58mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-javadoc.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots -Dclassifier=javadoc
59mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-contrib.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots
60#+END_SRC
61
62
63**** Release
64For releases - the version in the POM should look like  ~x.y.z~
65
66#+BEGIN_SRC bash
67keyname='<evenson.not.org@gmail.com>'
68abcl_version=1.7.1
69mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging
70mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-${abcl_version}-sources.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=sources
71mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-${abcl_version}-javadoc.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=javadoc
72#+END_SRC
73
74abcl-contrib release
75
76#+BEGIN_SRC bash
77keyname='<evenson.not.org@gmail.com>'
78abcl_version=1.7.1
79mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-contrib.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging
80mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-contrib-${abcl_version}-sources.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=sources
81mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-contrib-${abcl_version}-javadoc.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=javadoc
82#+END_SRC
83
84**** Releasing through Sonatype interface
85<https://www.sonatype.org/nexus/2015/06/02/how-to-publish-software-artifacts-to-maven-central/>
86<https://central.sonatype.org/pages/releasing-the-deployment.html>
87
881. "Close" the repo
89
902. wait
91
923. "Release" the repo
93
94**** Testing downloads
95
96#+BEGIN_SRC
97mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get -DrepoUrl=https://oss.sonatype.org/content/repositories/snapshots -Dartifact=org.abcl:abcl-contrib:1.5.0-SNAPSHOT:jar
98#+END_SRC
99
100
101
102
103*** Specifying GPG executable
104
105For specifying gpg executable, use a property specified via
106'-Dgpg.executable=gpg2'.
107
108**** Signing binary release
109
110gpg --default-key YOUR-KEY --detach-sign --armor FILE
111
112#+begin_src bash
113key="evenson.not.org@gmail.com"
114for file in *; do gpg --default-key ${key} --detach-sign --armor ${file} ; done
115#+end_src
116
117** Update CLiki page
118<https://www.cliki.net/ABCL>
119Roswell parses it for release information?
120
121* Colophon
122 
123  #+begin_example
124  Created: ??
125  Revised: <2020-06-05 Fri 08:46>
126  #+end_example
127 
Note: See TracBrowser for help on using the repository browser.