1 | * ABCL Release Engineering |
---|
2 | |
---|
3 | See also <https://abcl.org/trac/wiki/ReleaseSteps>. |
---|
4 | |
---|
5 | *** Maven |
---|
6 | |
---|
7 | Instructions for releasing ABCL on Sonatype's OSS Maven repository. |
---|
8 | |
---|
9 | You need a Sonatype account, see |
---|
10 | <https://central.sonatype.org/pages/ossrh-guide.html>. This will |
---|
11 | result in providing you with a "JIRA username and a password". |
---|
12 | |
---|
13 | **** settings.xml |
---|
14 | |
---|
15 | Enter 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 | |
---|
35 | Ensure that the artifacts you wish to upload are present by building |
---|
36 | them. |
---|
37 | #+begin_src |
---|
38 | ant abcl.release abcl.source.jar abcl.javadoc.jar abcl.contrib.javadoc.jar abcl.contrib.source.jar |
---|
39 | #+end_src |
---|
40 | |
---|
41 | #+BEGIN_SRC |
---|
42 | ant abcl.jar abcl.source.jar abcl.javadoc.jar abcl.contrib |
---|
43 | #+END_SRC |
---|
44 | |
---|
45 | And maybe test it as well |
---|
46 | |
---|
47 | #+BEGIN_SRC |
---|
48 | ant abcl.test |
---|
49 | #+END_SRC |
---|
50 | |
---|
51 | **** Snapshots |
---|
52 | For snapshots - development versions - the version in the POM should look like ~x.y.z-SNAPSHOT~. |
---|
53 | |
---|
54 | #+BEGIN_SRC bash |
---|
55 | keyname='<your_pgp_key@example.com>' |
---|
56 | mvn 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 |
---|
57 | mvn 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 |
---|
58 | mvn 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 |
---|
59 | mvn 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 |
---|
64 | For releases - the version in the POM should look like ~x.y.z~ |
---|
65 | |
---|
66 | #+BEGIN_SRC bash |
---|
67 | keyname='<evenson.not.org@gmail.com>' |
---|
68 | abcl_version=1.7.1 |
---|
69 | mvn 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 |
---|
70 | mvn 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 |
---|
71 | mvn 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 | |
---|
74 | abcl-contrib release |
---|
75 | |
---|
76 | #+BEGIN_SRC bash |
---|
77 | keyname='<evenson.not.org@gmail.com>' |
---|
78 | abcl_version=1.7.1 |
---|
79 | mvn 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 |
---|
80 | mvn 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 |
---|
81 | mvn 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 | |
---|
88 | 1. "Close" the repo |
---|
89 | |
---|
90 | 2. wait |
---|
91 | |
---|
92 | 3. "Release" the repo |
---|
93 | |
---|
94 | **** Testing downloads |
---|
95 | |
---|
96 | #+BEGIN_SRC |
---|
97 | mvn 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 | |
---|
105 | For specifying gpg executable, use a property specified via |
---|
106 | '-Dgpg.executable=gpg2'. |
---|
107 | |
---|
108 | **** Signing binary release |
---|
109 | |
---|
110 | gpg --default-key YOUR-KEY --detach-sign --armor FILE |
---|
111 | |
---|
112 | #+begin_src bash |
---|
113 | key="evenson.not.org@gmail.com" |
---|
114 | for 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> |
---|
119 | Roswell 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 | |
---|