Skip to content

Commit 2903ff0

Browse files
author
David Saff
committed
Merge pull request #614 from stephenc/junit.reopen
Tweaks on pull request https://github.com/KentBeck/junit/pull/613
2 parents 3aca014 + d0e050c commit 2903ff0

File tree

3 files changed

+209
-162
lines changed

3 files changed

+209
-162
lines changed

Diff for: doc/building-junit.txt

+84-5
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,97 @@ Steps to build junit:
22

33
- Must be manual
44
- Write release notes
5-
- Update version in pom.xml
65
- Not too tedious:
76
- Push to github (dsaff _and_ KentBeck)
87
- Run the mvn clean install
9-
- Upload stuff to github (including tag)
10-
- Push to maven
11-
- mvn -Dgpg.passphrase="<passphrase>" -Psign clean deploy
12-
- Promote
8+
- If not done, update src/main/config/settings.xml in /private/.../settings.xml on CloudBees' webdav share.
9+
- If not done, copy GnuPG keys in to ${gpg.homedir}. See settings.xml.
10+
- Perform Maven deployment of a snapshot or release version in Jenkins
11+
Remember that the version specified in the pom.xml indicates the version
12+
to be deployed, with -SNAPSHOT indicating that this is an unofficial
13+
pre-release version towards the goal of the version without the -SNAPSHOT
14+
15+
- (to deploy gpg signed snapshot version)
16+
17+
$ mvn -Pjunit-release clean deploy
18+
19+
- (to cut a release of the current targetted version)
20+
21+
$ mvn -B release:prepare release:perform
22+
23+
This will result in the current pom.xml version having -SNAPSHOT removed
24+
and the release cut from that version. The version will then be incremented
25+
and -SNAPSHOT added back in anticipation of the next release version.
26+
27+
- (to cut a release of while changing the version from the current target)
28+
29+
$ mvn -B -DreleaseVersion=5.0 release:prepare release:perform
30+
31+
This will ignore the current version in the pom.xml, set it to 5.0 and
32+
the release cut from that 5.0 version. Then 5.0 will be incremented (to 5.1)
33+
and -SNAPSHOT added back in anticipation of the next release version.
34+
35+
- (to deploy specified release version and next target release in non-interactive mode -B)
36+
An example with the next development version and deploying release version:
37+
38+
$ mvn -B -DreleaseVersion=4.12 -DdevelopmentVersion=4.13-SNAPSHOT release:prepare release:perform
39+
40+
- If you are not an official release manager, and you want to cut a release of
41+
JUnit for use within your organization, use the following command
42+
43+
$ mvn -DpushChanges=false -DlocalCheckout '-Darguments=-Dgpg.skip=true -DaltDeploymentRepository=my-company-repo-id::default::my-company-repo-url' -B -DreleaseVersion=4.12-mycompany-1 release:prepare release:perform
44+
45+
where
46+
- my-company-repo-id is the <id> of your company's <server> entry in your
47+
settings.xml with the credentials to deploy to your company's Maven repository
48+
- my-company-repo-url is the deployment URL of your company's Maven repository
49+
- 4.12-mycompany-1 is the version you are deploying, be sure to namespace
50+
the version so that you don't conflict with others, hence why the text "mycompany"
51+
is included in the example version number.
52+
53+
- Promote the maven artifacts and close staging repository if released successfully
1354
- Tedious:
1455
- Update SourceForge if major release
1556
- Update javadocs on github site (and "latest" link)
1657
- Update javadocs on junit.org
1758
- Put release notes on github.
1859
- Announce on blog, user list, dev list, announce list, junit.org, twitter
1960
- Profit!
61+
62+
63+
===================================================================================
64+
== Internal template of Maven settings used by JUnit build machine. ==
65+
== settings.xml ==
66+
===================================================================================
67+
<?xml version="1.0" encoding="UTF-8"?>
68+
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
69+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
70+
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
71+
<servers>
72+
<server>
73+
<id>junit-snapshot-repo</id>
74+
<username><!--a username registered with Sonatype for deployment--></username>
75+
<password><!--corresponding password--></password>
76+
</server>
77+
<server>
78+
<id>junit-releases-repo</id>
79+
<username><!--a username registered with Sonatype for deployment--></username>
80+
<password><!--corresponding password--></password>
81+
</server>
82+
</servers>
83+
<profiles>
84+
<profile>
85+
<id>junit-release</id>
86+
<properties>
87+
<!-- NOTE: See keyname used by maven-gpg-plugin in pom.xml. -->
88+
<gpg.passphrase>...</gpg.passphrase>
89+
<gpg.defaultKeyring>false</gpg.defaultKeyring>
90+
<gpg.useagent>true</gpg.useagent>
91+
<gpg.homedir>/private/.../.gnupg</gpg.homedir>
92+
<gpg.publicKeyring>/private/.../.gnupg/pubring.gpg</gpg.publicKeyring>
93+
<gpg.secretKeyring>/private/.../.gnupg/secring.gpg</gpg.secretKeyring>
94+
</properties>
95+
</profile>
96+
</profiles>
97+
</settings>
98+
===================================================================================

0 commit comments

Comments
 (0)