Refer also to the Wiki for developer documentation: https://vassalengine.org/wiki/Main_Page#Engine_Development
Note
|
Reference: https://maven.apache.org/ref/3.6.3/maven-core/lifecycles.html |
-
clean: deletes everything in
/target
-
validate
-
checkstyle
-
-
generate-resources
-
asciidoctor
-
-
compile: compiles code and copies resources to
/target/classes
-
test: runs unit tests
-
spotbugs
-
clirr
-
Travis runs up to here
-
-
-
package: creates build artifacts (.jar files) in
/target
-
javadoc
-
source: creates source code jar
-
license: downloads licenses
-
-
verify
-
pmd
-
-
install: copies build artifacts into local maven repository
-
site: not used
-
deploy: copies build artifacts and maven meta files to
/snapshots
or/releases
Note
|
Runs goal checkstyle:check in validate phase |
-
Maven plugin version and checkstyle version in ../pom.xml
-
Maven plugin configuration in ../vassal-app/pom.xml
-
Checkstyle configuration in ../vassal-app/src/test/resources/checkstyle-checks.xml
-
Exceptions from checks in ../vassal-app/src/test/resources/checkstyle-suppressions.xml
Note
|
Runs goal pmd:check in verify phase |
-
Maven plugin version in ../pom.xml
-
Maven plugin configuration in ../vassal-app/pom.xml
Note
|
Runs goal source:jar-no-fork in package phase |
Note
|
Runs goal javadoc:jar in package phase |
-
Maven plugin version in ../pom.xml
-
Maven plugin configuration in ../vassal-app/pom.xml
Note
|
Runs goal spotbugs:check in test phase |
-
Maven plugin version in ../pom.xml
-
Maven plugin configuration in ../vassal-app/pom.xml
-
Spotbugs include filter configuration in ../vassal-app/src/test/resources/spotbugs-include-filter.xml
Note
|
Runs goal clirr:check-no-fork in test phase |
-
Maven plugin version in ../pom.xml
-
Maven plugin configuration in ../vassal-app/pom.xml
-
Configuration of ignores in ../vassal-app/src/test/resources/clirr-ignored-differences.xml
Note
|
Runs goal asciidoctor:process-asciidoc in generate-resources phase |
Asciidoc documentation:
The asciidoctor plugin runs once for each of the following:
-
convert Reference Manual files to HTML
-
convert Userguide to PDF
-
convert Designer’s Guide to PDF
-
Maven plugin version in ../pom.xml
-
Maven plugin configuration in ../vassal-doc/pom.xml
Note
|
Runs goal license:aggregate-download-licenses in package phase |
-
Maven plugin version in ../pom.xml
-
Maven plugin configuration in ../release-prepare/pom.xml
The internal version number (the one shown in the about screen) is set by the maven parameter gitVersion
and defaults to the maven version number.
It is passed from the Makefile during the release process.
Each build step can be skipped by passing certain parameters.
Plugin | Skip parameter |
---|---|
Main (Skip code compilation) |
|
Surefire (Unit tests) |
|
Checkstyle |
|
Spotbugs |
|
Javadoc |
|
Asciidoctor |
|
Clirr |
|
License Maven Plugin |
|
-
Compile only, build jar in
vassal-app/target
, skip tests, checkstyle, spotbugs, javadoc, asciidoctor, clirr:
mvn clean package -DskipTests=true -Dcheckstyle.skip=true -Dspotbugs.skip=true -Dmaven.javadoc.skip=true -Dasciidoctor.skip=true -Dclirr.skip=true
-
Run AsciiDoctor only:
mvn clean compile -Dmaven.main.skip=true -DskipTests=true -Dcheckstyle.skip=true -Dspotbugs.skip=true -Dmaven.javadoc.skip=true -Dclirr.skip=true
The project’s public maven repository can be found at https://vassalengine.org/maven/
<project>
<dependencies>
<dependency>
<groupId>org.vassalengine</groupId>
<artifactId>vassal-app</artifactId>
<version>3.4.1</version> <!--(1)-->
</dependency>
</dependencies>
<repositories>
<repository>
<id>vassal-releases</id>
<url>https://vassalengine.org/maven/</url>
</repository>
</repositories>
</project>
-
Use desired Vassal version here
-
❏ Update the release announcement data
dist/notes/data.json
and Jinja templates indist/notes
with the changes for the new release. -
❏ Fill in the release date in
CHANGES
. -
❏ Set
MAVEN_VERSION
to$(VNUM)
in theMakefile
. -
❏
make clean
-
❏
make
(This will update variouspom.xml
with the new version number.) -
❏ Commit the changes.
-
❏
git tag -s -m 'The x.y.z release.' x.y.z
-
❏
git push --tags
-
❏
make release
-
❏
make release-announcements
-
❏ Add a new release at GitHub. Upload the release pacakges. Paste in the change log.
-
❏ Update
util/current-release
andutil/current-beta
with release version number and add release packages toreleases/
insite
repo and push to GitHub. -
❏ Pull
site
repo (in/var/www/html/site
on vassalengine.org). -
❏ Upload maven artifacts to our repo:
rsync -avP releases/ vassal.org:/var/www/html/site/maven
-
❏ From
/var/www/html/site/javadoc/
on vassalengine.org:mkdir x.y.z && cd x.y.z && unzip ../../maven/org/vassalengine/vassal-app/x.y.z/vassal-app-x.y.z-javadoc.jar
-
❏ Upload Reference Manual to site and set
latest
symlink. -
❏ Update the release branch in
.github/workflows/package.yml
. -
❏ Update the release notes in our wiki: https://vassalengine.org/wiki/VASSAL_3.5_Release_Notes
-
❏ Post release announcements (see
tmp/notes-*
):-
Our forum: https://forum.vassalengine.org/c/news/17 (Pin the new post, unpin the one for the previous release.)
-
BGG Computer Based Board Gaming forum: https://www.boardgamegeek.com/forum/28/bgg/computer-based-board-gaming
-
BGG Press Releases forum: https://www.boardgamegeek.com/forum/31/bgg/press-releases
-
Our forum at ConsimWorld: http://talk.consimworld.com/WebX/.ee6f15c/10067
-
VASL forum at GameSquad: http://www.gamesquad.com/forums/index.php?forums/vasl.103/
-
Facebook: Vassal Wargamers Americas: https://www.facebook.com/groups/vassalwargamers/
-
Facebook: Vassal Wargamers Europe: https://www.facebook.com/groups/VassalWargamersEurope
-
-
❏ Relax.