Lexical Tools - build Processes
This pages describes the build, development and test procedures on Lexical Tools annual releases:
Command | setup | Operation results |
---|---|---|
shell> ant clean | build.xml |
|
shell> ant | build.xml |
|
shell> ant dist | build.xml |
|
shell> ant release | build.xml |
|
shell> packLvgFull ${YEAR} | use ./lib/lvg${YEAR}dist.jar | create ./lvg${year}.tgz |
shell> packLvgLite ${YEAR} | use ./lib/lvg${YEAR}dist.jar | create ./lvg${year}lite.tgz |
Test Type | setup | Operation results |
---|---|---|
unit test | install ./lvg${YEAR}.tgz to ${PROJECT} | check results on all flows and options |
lite test | unzip ./lib/lvg${YEAR}Lite.tgz | Check all scripts |
groupId | artifactId | version | Notes |
---|---|---|---|
gov.nih.nlm | lvg |
| SNAPSHOT is used for development. |
com.ibm.icu | icu4j | 73.2 | Unicode package |
org.hsqldb | hsqldb | 2.7.2 | HsqlDb database (use jdk8) |
junit | junit | 4.13.2 | for unit tests |
org.apache.maven.plugins | maven-compiler-plugin | 3.11.0 | maven compiler |
org.apache.maven.plugins | maven-jar-plugin | 3.3.0 | Maven manifest |
Profile | |||
org.apache.maven.plugins | maven-assembly-plugin | 3.6.0 | mvn package -Psingle generates ./target/lvg-${YEAR}.0-jar-with-depednencies.jar |
org.apache.maven.plugins | maven-resources-plugin | 3.3.1 | copy resource files |
org.apache.maven.plugins | maven-shade-plugin | 3.5.1 |
|
org.apache.maven.plugins | maven-javadoc-plugin | 3.6.0 | mvn package -P javadoc generate ./target/apidocs/* (not used in the release) |
org.apache.maven.plugins | maven-source-plugin | 3.3.0 | mvn package -P source generates lvg-{YEAR}.0-sources.jar (include source) |
Command | setup | Operation results |
---|---|---|
shell> mvn clean | pom.xml |
|
shell> mvn validate | pom.xml |
|
shell> mvn compile | pom.xml |
|
shell> mvn test | pom.xml ./test/java/*.java |
|
shell> mvn package | pom.xml |
|
shell> mvn install | pom.xml |
|
shell> mvn deploy | pom.xml |
|
Command | setup | Operation results |
---|---|---|
shell> mvn deploy -Pshade | pom.xml |
|
shell> packLvgFull ${YEAR} TRUE | use ./target/lvg-${YEAR}.0-shaded.jar to replace ./lib/lvg${YEAR}dist.jar |
|
shell> packLvgLite ${YEAR} TRUE | use ./target/lvg-${YEAR}.0-shaded.jar to replace ./lib/lvg${YEAR}dist.jar |
|
Test Type | setup | Operation results |
---|---|---|
unit test | install lvg to ${PROJECT} | check results on all flows and options |
lite test | unzip lvgLite | Check all scripts |
variable | operations |
---|---|
login | login to docker |
build | use maven to build and deploy lvg artifacts to LHC-Nexus |
packLite | pack lite (min.) Lvg to ./lvgLite${YEAR}.tgz |
packFull | pack full Lvg to ./lvg${YEAR}.tgz |
Variable name | function | Notes |
---|---|---|
${VERSION} | lvg version | updated in the Makefile |
${LVG_PACK} | pack lvg${YEAR}lite.tgz and lvg${YEAR}.tgz |
|
${LVG_UPLOAD} | upload to Nexus |
|
${LVG_MVN_SNAPSHOT} | snapshot build |
|
${LVG_MVN_JAR} | Use mvn to build |
|
Variable name | Dev - Ant | Maven/PreProcess | Production |
---|---|---|---|
${YEAR} | year | year | year |
${LVG_PACK} | TRUE | TRUE | TRUE |
${LVG_UPLOAD} | FALSE | FALSE | TRUE |
${LVG_MVN_SNAPSHOT} | TRUE | TRUE | FALSE |
${LVG_MVN_JAR} | FALSE | TRUE | TRUE |
command | desciption | notes |
---|---|---|
git branch | check which branch is on | |
git checkout develop | Use "develop" for development | development uses snapshot build |
| save software changes to Git remote | |
git tag | show all tags | tag is used to start the Ci-Cd build |
git tag -a v.${YEAR}.0 -m "msg" | tag the current version | |
git push origin tagName | push a tag to remote origin | A new tag will start the Ci-Cd pipleline |
git push origin -- tags | pushshow all tags to remote origin |
Test Type | setup | Operation results |
---|---|---|
unit test | install lvg to ${PROJECT} | check results on all flows and options |
lite test | unzip lvgLite | Check all scripts |
GUI Lexical Tool test | unzip lvgLite | Check all scripts |
Perfromance test | unzip lvgLite | Check all scripts |
Other tests | unzip lvgLite | Check all scripts |
Git command | Descriptions | Notes |
---|---|---|
git checkout master | switch to master | |
git merge develop | merge changes in dev to master | |
git tag | show all tags | |
git tag -a v.${YEAR}.01 -m "msg" | tag the current version | tag is used to save the official release (not to start a Ci-Cd pipeline). |