Annually Release Procedures
This page describes an annually release procedures for Lexical tools package with new set of lexicon data.
I. lvg${YEAR} baseline (without new data)
shell> git checkout Master (or the latest tag)
shell> git checkout develop (not used after 2025+)
shell> ant release
shell> cd ${LHC_GIT}/lvg-baselinecode/bin
shell> ModifyLvgJavaCode
> YYYY (${YEAR})
> 1
> y
=> move sources.new to sources
shell> cd ${LHC_GIT}/lvg/src/main
shell> rm -rf java
shell> mv java.new java
shell> cd ${LHC_GIT}/lvg/src/main
shell> fgrep "LEX-" ./java/*/*/*/*/*/*/*.java
=> make sure no "LEX-" (should) exist in the source code
=> reload old data to database and update the DB_NAME to ${YEAR}
Please refer to Update DB session
=> update installation programs:
Please refer to Update Installation Program session
=> build and test to make sure the result is same as last release
> cd ${LVG}
> ant clean
> ant release
> packLvgFull ${YEAR}
or
> packLvgFull ${YEAR} TRUE FALSE TRUE FALSE
=> lvg${YEAR}Full
=> lvg${YEAR}.tgz
> install to ${PROJECT}
> The installation should be successful
Please see Regression test on Flows Unit pages. The result on unit test should be the same as last year because neither function or data are changed at this point. the only difference are:
=>The baseline (without features/packages updates) is completed after above 6 steps!
Tag this base line without new feature (git tag v.${YEAR}.1.baseline)
II. Upgrade all software components
<artifactId> hsqldb </artifactId> <version> 2.7.4 </version> <classifier> jdk8 </classifier>
13 (All Tables)
DbBase.ExecuteDdl(String query)
...
if((e.getSQLState().equals("25006"))
&& (e.getErrorCode() == -3706))
...
source ~/.cshrc
| Compile Option | Api jar file | Dist jar file |
| ant, release | ./lib/lvg${YEAR}api.jar | ./lib/lvg${YEAR}dist.jar |
| mvn, 2026.0-SNAPSHOT | ./target/lvg-${YEAR}.0-SNAPSHOT.jar | ./target/lvg-${YEAR}.0-SNAPSHOT-shaded.jar |
| mvn, 2026.0 | ./target/lvg-${YEAR}.0.jar | ./target/lvg-${YEAR}.0-shaded.jar |
| Compile Option | Full version | Lite Version |
| Ant | ./lvg${YEAR}.tgz | ./lib/lvg${YEAR}lite.tgz |
| mnv | ./lvg${YEAR}.tgz | ./lvg${YEAR}lite.tgz |
III. Update functions: Complete SCRs for ${YEAR} release
IV. Update data: Integrate with New Lexicon Data
| Release | Optimal Good Rules | Notes |
| 2018 | 86 | used 2017 (no new SD-Rules were evaluated) |
| 2019 | 86 | used 2017 (no new SD-Rules were evaluated) |
| 2020 | 93 | used new SD-Rules (./SdRulesOptimum/16.ility-le/sdRules.stats.out.16.1.opt) |
| 2021 | 104 | used new SD-Rules (./SdRulesOptimum/35.ity-y/sdRules.stats.out.35.3.opt) |
| 2022 | 104 | used 2021 (no new SD-Rules were evaluated) |
| 2023 | 104 | used 2021 (no new SD-Rules were evaluated) |
| 2024 | 105 | used new SD-Rules (./SdRulesOptimum/37.ity-y/sdRules.stats.out.37.1.opt) |
| 2025 | 105 | used 2024 (no new SD-Rules were evaluated) |
| 2026 | 105 | used 2024 (no new SD-Rules were evaluated) |
shell>cd ${SUFFIX_D}/bin
shell>GetSdRule ${YEAR}
8
${GOOD_RULE_NO} (105)
shell> ./bin/lvg -f:d -kd:3 -p -m
> 1234se
> ...
> 1234se|1234zation|128|1|d|1|RULE|se$|verb|base|zation$|noun|base| <= ensure this is in the output
> ...
shell>cp -p ${DERIVATION_DIR}/3.suffixD/data/${YEAR}/dataR/dm.rul.${YEAR}.${GOOD_NO} ${LVG_DIR}/data/rules/dm.rul.${YEAR}.${GOOD_NO}
V. Update other software components
================================================================
=> This is good enough for the internal release to OCCS (if have tight schedule)
=> Unit tests from following section should be perfromed before OCCS internal release
================================================================
Bellows can be done after internal release, but must complete before official public release. However, we try to complete this before internal release in the past.
VI. Test & More Documents
| Test Type | Descriptions |
|---|---|
| unit test | test all flows and options |
| lite test | test lvg${YEAR}lite.tgz |
| ASCII test | Check non-ASCII on norm and luiNorm |
| GUI Lexical Tool test | Test Lgt- Lvg GUI tools |
| Perfromance test | Test performance on norm and LuiNorm |
| Platform Test | release test on different platforms |
| Other tests | Other tests not listed in this table |
shell> cd ${LVG}/PostProc/TestExamples/bin
| Command | Description |
|---|---|
shell> 1.GenerateExampleHtmlFiles ${YEAR}
| convert unit test results to Html |
shell> 2.DeployExampleHtmlFiles ${YEAR}
| deploy unit test Html file to ${WWW_LVG} |
shell> cd /${LHC_GIT}/lvg-unicodetables/bin
| Command & options | Description |
|---|---|
shell> 0.VerifyFiles ${YEAR}
| check ${LVG}/data/Unicode/*.data |
shell> 1.GenerateDefaultHtmlFiles ${YEAR}
| generate default html files |
shell> 2.GetUnicodeCoreNormResult ${YEAR}
| generate core norm html file |
shell> 3.NormResults ${YEAR}
| generate norm html files |
shell> 4.DeployHtmlFiles ${YEAR}
4
| deploy html files to ${WWW_LVG} |
============================================================
Above tests should be completed for the internal release for OCSS. This is the best scenario for internal test. The following steps are needed for the final official public release.
============================================================
shell> cd ${GIT}/lvg-baselinecode/bin/ModifyLvgJavaCode
${YEAR}
2
VII. Lvg Compile & Pack
After 2020, CiCd is applied for official release (maven build). The Ant build is used for development because of ease of process.
VIII. Pack LVG programs to LEX/LEX_PGMS and LEX.tgz in AA Release
IX. Update Web Tools