Prerequisite
...
1.
...
Use
...
Genesis
...
2.0
...
as
...
a
...
parent
...
pom
Code Block | ||||
---|---|---|---|---|
| ||||
{code:xml} <parent> <groupId>org.apache.geronimo.genesis</groupId> <artifactId>genesis-java5-flava</artifactId> <version>2.0</version> </parent> {code} * |
- genesis-java5-flava-2.0.pom
...
- genesis-default-flava-2.0.pom
...
- genesis-2.0.pom
...
- apache-6.pom
...
2. Use Maven 2.2.1
...
(not
...
try
...
if
...
2.0.10
...
or
...
2.0.11
...
can
...
run)
...
- Enable
...
- Apache
...
- Servers
...
- (refer:
...
...
- )
Code Block | ||||
---|---|---|---|---|
| ||||
{code:xml} <settings> ... <servers> <!-- To publish a snapshot of some part of Maven --> <server> <id>apache.snapshots.https</id> <username> <!-- YOUR APACHE LDAP USERNAME --> </username> <password> <!-- YOUR APACHE LDAP PASSWORD --> </password> </server> <!-- To publish a website of some part of Maven --> <server> <id>apache.website</id> <username> <!-- YOUR APACHE LDAP USERNAME --> </username> <filePermissions>664</filePermissions> <directoryPermissions>775</directoryPermissions> </server> <!-- To stage a release of some part of Maven --> <server> <id>apache.releases.https</id> <username> <!-- YOUR APACHE LDAP USERNAME --> </username> <password> <!-- YOUR APACHE LDAP PASSWORD --> </password> </server> <!-- To stage a website of some part of Maven --> <server> <id>stagingSite</id> <!-- must match hard-coded repository identifier in site:stage-deploy --> <username> <!-- YOUR APACHE LDAP USERNAME --> </username> <filePermissions>664</filePermissions> <directoryPermissions>775</directoryPermissions> </server> ... </servers> </settings> {code} h3. |
3.
...
Setup
...
PGP
...
Keys
...
(for
...
the
...
ones
...
who
...
be
...
the
...
release
...
manager
...
the
...
first
...
time,
...
refer:
...
http://maven.apache.org/developers/release/pmc-gpg-keys.html
...
)
...
- Download
...
- pnugp2
...
- Generate
...
- your
...
- PGP
...
- Key
...
- (refer:
...
...
- )
...
- How
...
- To
...
- Avoid
...
- SHA-1
...
- How
...
- To
...
- Generate
...
- a
...
- Strong
...
- Key
...
- Append
...
- your
...
- key
...
- to
...
...
- Update
...
- Maven's
...
- settings.xml
...
- with
...
- following:
...
Code Block xml xml <settings> ... <profiles> <profile> <id>apache-release</id> <properties> <gpg.passphrase> <!-- YOUR KEY PASSPHRASE --> </gpg.passphrase> </properties> </profile> </profiles> ... </settings>
...
Special changes for releasing the server 2.1.5
...
1.
...
Add
...
"all-subprojects"
...
profile(Similar
...
with
...
what
...
David
...
Jencks
...
did
...
for
...
2.2)
...
By
...
default,
...
maven-release-plugin
...
will
...
use
...
the
...
default
...
profile
...
to
...
search
...
all
...
the
...
pom.xml
...
files
...
and
...
auto-update
...
the
...
version
...
numbers.
...
But
...
integration
...
tests
...
are
...
often
...
run
...
from
...
non-pom
...
packaging
...
projects,
...
so
...
We
...
also
...
need
...
include
...
them
...
during
...
the
...
release
...
plugin
...
running.
...
Hence
...
we
...
create
...
a
...
new
...
"all-subprojects"
...
profile:
...
- /pom.xml
...
This
...
- profile
...
- is
...
- just
...
- the
...
- same
...
- as
...
- default
...
- profile.
...
Code Block xml xml <profile> <id>all-subprojects</id> <modules> <module>repository</module> <module>buildsupport</module> <module>testsupport</module> <module>framework</module> <module>plugins</module> <module>assemblies</module> <module>testsuite</module> </modules> </profile>
...
- /framework/configs/pom.xml
...
The
...
- config
...
- modules
...
- are
...
- all
...
- included
...
- by
...
- default,
...
- but
...
- the
...
- 4
...
- integration
...
- test
...
- are
...
- not.
...
- So
...
- if
...
- we
...
- want
...
- this
...
- 4
...
- projects'
...
- pom
...
- can
...
- be
...
- updated
...
- by
...
- maven-release-profile,
...
- we
...
- need
...
- explicitly
...
- point
...
- out.
...
Code Block xml xml <profile> <id>all-subprojects</id> <modules> <module>geronimo-gbean-deployer/src/it/j2ee-system-it1</module> <module>geronimo-gbean-deployer/src/it/j2ee-system-it2</module> <module>geronimo-gbean-deployer/src/it/metadatageneration-it3</module> <module>geronimo-gbean-deployer/src/it/metadatageneration-it4</module> </modules> </profile>
...
btw,
...
- I
...
- refactored
...
- the
...
- names
...
- of
...
- above
...
- 4
...
- itest
...
- to
...
- make
...
- them
...
- the
...
- same
...
- with
...
- 2.2,
...
- i.e.
...
- j2ee-system
...
- ->
...
- j2ee-system-it1
...
- j2ee-system-2
...
- ->
...
- j2ee-system-it2
...
- metadatageneration ->
...
- metadatageneration-it3
...
- metadatageneration-2
...
- ->
...
- metadatageneration-it4
...
- /plugins/pom.xml
...
- (and
...
- some
...
- others
...
- do
...
- not
...
- need
...
- to
...
- add
...
- "all-subprojects"
...
- profile)
...
Not
...
- all
...
- the
...
- pom.xml
...
- must
...
- have
...
- an
...
- "all-subprojects"
...
- in
...
- file.
...
- If
...
- there
...
- is
...
- no
...
- special
...
- projects
...
- as
...
- above,
...
- you
...
- can
...
- just
...
- leave
...
- the
...
- pom
...
- as
...
- is
...
- (take
...
- /plugins/pom.xml
...
- as
...
- example).
...
- /testsuite/pom.xml
...
- and
...
- its
...
- childern
...
A
...
- lot
...
- of
...
- efforts
...
- ware
...
- put
...
- on
...
- testsuite.
...
- When
...
- run
...
- with
...
- "all-subprojects"
...
- profile
...
- to
...
- do
...
- a
...
- release,
...
- we
...
- don't
...
- need
...
- really
...
- run
...
- and
...
- pass
...
- the
...
- tests.
...
- Remember
...
- the
...
- goal
...
- of
...
- this
...
- profile
...
- is
...
- just
...
- to
...
- find
...
- all
...
- the
...
- sub-projects'
...
- pom
...
- files
...
- so
...
- that
...
- release-plugin
...
- can
...
- auto
...
- update
...
- their
...
- versions.
...
- prepare
...
- the
...
- release
...
Code Block xml xml mvn release:prepare -DdryRun=true -Pall-subprojects -Papache-release -Dtest=false
...
In
...
- above
...
- command
...
- -Dtest=false
...
- seems
...
- not
...
- take
...
- effect??
...
- So,
...
- currently
...
- I
...
- add
...
- following
...
- in
...
- root
...
- pom's
...
- all-subprojects
...
- profile.
...
Code Block
...
xml
...
xml <properties> <maven.test.skip>true</maven.test.skip> </properties>
...
and
...
- use
...
- the
...
- following
...
- command:
...
Code Block xml xml mvn release:prepare -DdryRun=true -Pall-subprojects
...
- Check if all pom.xml
...
- files
...
- have
...
- a
...
- pom.xml.tag
...
- generated
...
Compare
...
- the
...
- quantity
...
- of
...
- the
...
- 2
...
- files
...
- and
...
- if
...
- the
...
- versions
...
- in
...
- pom.xml.tag
...
- are
...
- updated
...
- correctly,
...
The
...
- only
...
- things
...
- that
...
- should
...
- be
...
- different
...
- between
...
- these
...
- files
...
- are
...
- the
...
- <version>
...
- and
...
- <scm>
...
- elements.
...
- and
...
- if
...
- there
...
- is
...
- no
...
- "SNAPSHOT"
...
- in
...
- pom.xml.tag
...
- files.
...
Just
...
- find
...
- in
...
- files..
...
2.
...
Don't
...
deploy
...
the
...
test
...
artifacts
...
to
...
maven
...
repo
...
Because
...
there
...
are
...
a
...
lot
...
of
...
sub-projects
...
that
...
not
...
need
...
to
...
be
...
released,
...
such
...
as
...
integration
...
tests
...
and
...
testsuites,
...
we
...
need
...
filter
...
them
...
out
...
when
...
do
...
maven
...
deploy:
Code Block | ||||
---|---|---|---|---|
| ||||
{code:xml} <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> {code} * |
- /framework/configs/geronimo-gbean-deployer/src/it/j2ee-system-it1/pom.xml
...
- /framework/configs/geronimo-gbean-deployer/src/it/j2ee-system-it2/pom.xml
...
- /framework/configs/geronimo-gbean-deployer/src/it/metadatageneration-it3/pom.xml
...
- /framework/configs/geronimo-gbean-deployer/src/it/metadatageneration-it4/pom.xml
...
- /testsuite/pom.xml
...
3.
...
Other
...
changes
...
- Remove tools-maven-plugin
...
- and
...
- use
...
- the
...
- ianal-maven-plugin
...
- (defined
...
- in
...
- genesis-default-flava-2.0.pom)
...
- to
...
- verify-legal-files
...
- Add
...
- following
...
- in
...
- testsuite/pom.xml
...
Code Block xml xml <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>ianal-maven-plugin</artifactId> <configuration> <!-- Don't bother checking legal file here, we never publish them. --> <skip>true</skip> </configuration> </plugin>
...
- Remove a bunch of maven plugins definition in server root pom
- Update xmlbeans-maven-plugin
...
- to
...
- 2.3.3
...
- and
...
- remove
...
- all
...
- the
...
- following
...
- hacked
...
- codes:
...
Code Block xml xml <!-- HACK: Copy XmlBeans generated schemas. --> <plugin> <groupId>org.apache.geronimo.buildsupport</groupId> <artifactId>buildsupport-maven-plugin</artifactId> <executions> <execution> <goals> <goal>copy-xmlbeans-schemas</goal> </goals> </execution> </executions> </plugin>
...
Release memo
1. NOTICE.txt
...
files
...
- Check
...
- the
...
- "Year"
...
- of
...
- copyright
...
- in
...
- all
...
- NOTICE.txt
...
- file.
...
2.
...
Before
...
release,
...
need
...
manually
...
update
...
versions
...
from
...
2.1.5-SNAPSHOT
...
to
...
2.1.5
...
- Update
...
- the
...
- VERSION
...
- in
...
- README.txt
...
- /
...
- RELEASE_NOTES-2.1.5-SNAPSHOT.txt,
...
- and
...
- rename
...
- to
...
- RELEASE_NOTES-2.1.5.txt
...
- Update
...
- <version>
...
- properties
...
- in
...
- root
...
- pom.xml
...
- ??
...
- (need
...
- update
...
- to
...
- <version>${version}</version>)
...
- Update
...
- versions
...
- in
...
- "assemblies\geronimo-boilerplate-minimal\src\main\underlay\etc*\gsh-classworlds.conf*"
...
- Others
- plugins\remote-deploy\geronimo-remote-deploy\src\main\webapp\WEB-INF\geronimo-web.xml
...
- plugins\welcome\geronimo-welcome\src\main\webapp\WEB-INF\geronimo-web.xm
...
- framework\modules\geronimo-plugin\src\test\resources\geronimo-plugins.xml
...
- framework\modules\geronimo-upgrade\src\test\resources\gbean_1.xml
...
framework\modules\geronimo-upgrade\src\test\resources\gbean_1_result.xml
...
- framework\configs\geronimo-gbean-deployer\src\it\j2ee-system-it1\src\test\resources\META-INF\geronimo-plugin.xml
...
framework\configs\geronimo-gbean-deployer\src\it\j2ee-system-it1\src\test\resources\META-INF\plan.xml
...
framework\configs\geronimo-gbean-deployer\src\it\metadatageneration-it3\src\test\resources\META-INF\geronimo-plugin.xml
...
3.
...
After
...
release,
...
update
...
versions
...
to
...
2.1.6-SNAPSHOT
...
- Update artifact-alias,
...
- add
...
- version
...
- 2.1.5
...
- in
...
- artifact-alias
...
- after
...
- 2.1.5
...
- release
...
- /framework/configs/pom.xml
...
- /plugins/client/pom.xml
...
- /plugins/corba/client-corba-yoko/pom.xml
...
- /plugins/pom.xml
...
- Revert
...
- versions
...
- definition
...
- in
...
- README.txt
...
- /
...
- RELEASE_NOTES-2.1.5.txt,
...
- rename
...
- to
...
- RELEASE_NOTES-2.1.6-SNAPSHOT.txt,
...
- Update <version> properties from ${version}
...
- to
...
- 2.1.6-SNAPSHOT
...
- in
...
- root
...
- pom.xml
...
- so
...
- that
...
- can
...
- be
...
- built
...
- in
...
- mvn
...
- 2.0.10
...
- Update
...
- versions
...
- in
...
- "assemblies\geronimo-boilerplate-minimal\src\main\underlay\etc
...
- gsh-classworlds.conf
...
- "
...
- Others,
...
- same
...
- as
...
- in
...
- #2