source: trunk/abcl/doc/releng.org @ 15464

Last change on this file since 15464 was 15464, checked in by Mark Evenson, 2 years ago

abcl 1.8.0 metadata

rc14

TODO manual needs much description about pathnames

File size: 5.0 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 be used for authentication when
17the =mvn= tool uploads artifacts to the Sonatype snapshot and staging
18infrastructure.
19
20#+BEGIN_SRC xml
21<settings>
22 <server>
23   <id>sonatype-nexus-snapshots</id>
24   <username>sonatype-jira-username</username>
25   <password>sonatype-jira-password</password>
26 </server>
27 <server>
28   <id>sonatype-nexus-staging</id>
29   <username>sonatype-jira-username</username>
30   <password>sonatype-jira-password</password>
31 </server>
32</settings>
33#+END_SRC
34
35**** Process
36
37Ensure that the artifacts you wish to upload are present by building
38them.
39#+begin_src
40ant abcl.release abcl.source.jar abcl.javadoc.jar abcl.contrib.javadoc.jar abcl.contrib.source.jar
41#+end_src
42
43#+BEGIN_SRC
44ant abcl.jar abcl.source.jar abcl.javadoc.jar abcl.contrib
45#+END_SRC
46
47And maybe test it as well
48
49#+BEGIN_SRC
50ant abcl.test
51#+END_SRC
52
53**** Snapshots
54For snapshots (aka development versions) the version in the POM should
55be of the form ~x.y.z-SNAPSHOT~.
56
57#+BEGIN_SRC bash
58keyname='<your_pgp_key@example.com>'
59mvn 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
60mvn 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
61mvn 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
62mvn 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
63#+END_SRC
64
65**** Release
66For releases the version in the POM should be of the form  ~x.y.z~
67
68#+BEGIN_SRC bash
69keyname='<your_pgg_key@example.com>'
70abcl_version=1.8.0
71mvn 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
72mvn 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
73mvn 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
74#+END_SRC
75
76abcl-contrib release
77
78#+BEGIN_SRC bash
79keyname='<evenson.not.org@gmail.com>'
80abcl_version=1.8.0
81mvn 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
82mvn 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
83mvn 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
84#+END_SRC
85
86**** Releasing through Sonatype interface
87<https://www.sonatype.org/nexus/2015/06/02/how-to-publish-software-artifacts-to-maven-central/>
88<https://central.sonatype.org/pages/releasing-the-deployment.html>
89
901. "Close" the repo
91
922. wait
93
943. "Release" the repo
95
96**** Testing downloads
97
98#+BEGIN_SRC
99mvn 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
100#+END_SRC
101
102
103
104*** Specifying GPG executable
105
106For specifying the =gpg= executable used via =mvn= use a property
107specified via the =gpg.executable= property (e.g. '-Dgpg.executable=gpg2'.)
108
109**** Signing binary release
110
111gpg --default-key YOUR-KEY --detach-sign --armor FILE
112
113#+begin_src bash
114key="evenson.not.org@gmail.com"
115for file in *; do gpg --default-key ${key} --detach-sign --armor ${file} ; done
116#+end_src
117
118** Update CLiki page
119<https://www.cliki.net/ABCL>
120Roswell parses it for release information?
121
122* Colophon
123 
124  #+begin_example
125  Created: ??
126  Revised: <2020-10-21 Wed 10:01>
127  #+end_example
128 
Note: See TracBrowser for help on using the repository browser.