Annual Release Procedures

This page describes annual release procedures for lexAccess tools software with new set of THE SPECIALIST LEXICON data.

  1. Prepare lexAccess${YEAR} web site for new documents
    • Copy lexAccess ${YEAR-1} to ${YEAR}
    • Manually replace/add ${YEAR-1} by ${YEAR} for all files
      • ${LEXACCESS_WEB}/web/*.html
      • ${LEXACCESS_WEB}/web/release/index.html
      • ${LEXACCESS_WEB}/web/release/${YEAR}.html
      • ${LEXACCESS_WEB}/docs/index.html

  2. Prepare lexAccess${YEAR} baseline
    • Copy lexAccess ${PRE_YEAR} to lexAccess ${YEAR}
    • Update jar files
      • Copy lvg${YEAR}api.jar to ${LEXACCESS}/lib/Other
      • Copy lexCheck2006api.jar to ${LEXACCESS}/lib/Other
      • Update the latest JDBC driver for HSqlDb and MySql
    • Update flat files
      • Modify ${LEXACCESS}/overview.html (${PRE_YEAR} -> ${YEAR})
      • Update ${LEXACCESS}/sources/gov/nih/nlm/nls/lexAccess/*/package.html
      • Update ${LEXACCESS}/data/config/*
      • Update ${LEXACCESS}/docs/updateDoc
      • Modify build.xml under following directories (${PRE_YEAR} -> ${YEAR})
        • ${LEXACCESS}
          • project.year
          • lvg.jar
        • ${LEXACCESS}/examples
        • ${LEXACCESS}/install
        • ${LEXACCESS}/loadDb
      • Update ${LEXACCESS}/bin/packLite (${PRE_YEAR} -> ${YEAR})
      • Update ${LEXACCESS}/bin/lexAccess (${PRE_YEAR} -> ${YEAR})
      • Update ${LEXACCESS}/bin/lagt (${PRE_YEAR} -> ${YEAR})
    • lexAccess java source code:
      • shell> cd /export/home/lu/Development/LVG/Components/BaselineCode/bin
      • shell> ModifyLAJavaCode
        • ${YEAR}: select year of version to be modified
        • 1: change the prolog
        • 2: change tab to 4 space
      • shell> cp -rp sources.new sources

  3. Compile (check) to finish the baseline
    • ant clean
    • ant release

    • Test run
      shell>cd ${LEXACCESS}
      shell>./bin/lexAccess -ci
      

  4. LA PreProc
    • Prepare preDatabase
      • update lexCheck2006api.jar and lvg${YEAR}.jar under ${LA_PreProc}/PreDatabase/lib/Other/
      • Update ${LA_PreProc}/PreDatabase/build.xml
        => lvg${YEAR}api.jar
      • Recompile
        => ant
      • Update ${LA_PRE_DB}/bin/ModifyLexicon
        => ${YEAR}
    • Generate Db table files
      shell> cd {LA_PRE_DB}/bin
      shell> 1.GenerateDbFiles ${YEAR}
      --------------------------------------
      Which Program ?
      --------------------------------------
      1) Copy LEXICON
      2) Copy inflVars.data
      3) Generate lexicon.data
      4) Generate eui.data
      5) Copy above 4 file to LexAccess
      6) All (default)
      ----------
      

      4 files are copied and generated:
      File nameAction
      LEXICON copy ${LEX_DIR}/data/${YEAR}/tables.frozen/LEXICON to ${LA_DIR}/data/tables/LEXICON
      inflVars.data copy ${LEX_DIR}/data/${YEAR}/tables.frozen/inflVars.data to ${LA_DIR}/data/tables/inflVars.data
      lexicon.data Generate ${LA_DIR}/data/tables/lexicon.data (from LEXICON)
      shell> ${LA}/PreDatabase/bin/ModifyLexicon -f:d -i:LEXICON -o:lexicon.data
      eui.data Generate eui.data. The total number of EUI should be equals to total lexical records in LEXICON because this file include deleted records if using lexicon.data from LB.

    • Check Max. length of fields in Lexicon.data
      shell> cd {LA_PRE_DB}/bin
      shell> 2.AnalyzeDbFiles ${YEAR}
      

  5. LoadDb Program
    • Setup Database in HSqlDb
      • update ${YEAR} in ${LA_DIR}/loadDb/sources/gov/nih/nlm/nls/lexAccess/loadDb/HSqlDb/db.cfg
      • mv ${LA_DIR}/data/HSqlDb ${LA_DIR}/data/HSqlDb.old

    • skip MySql DB
      • update $LA_DIR/loadDb/sources/gov/nih/nlm/nls/lexAccess/loadDb/MySql/db.cfg
        shell> 1.SetupMySql ${YEAR}
        
        => Use this script to create Db and user in MySql Db for current release. The database name and username are defined in the cfg.data file.
    • Load data into HSqlDb (skip MySql)
      shell> cd ${LA_DIR}/loadDb/bin/
      shell> 2.LoadDb ${YEAR}
      1
      3
      
      • load data into HSqlDb => change "readonly=true" in *.properties after tables are loaded
    • Check loaded data from DB
      shell> 3.TestDb ${YEAR}
      
      => check loaded data in Db. The total number of lexicon only includes not deleted records.

  6. Update Installation Program
    • Modify java source codes
      • ${LA_DIR}/install/sources/gov/nih/nlm/nls/lexAccess/install/Setup/Param.java
    • Modify scripts under ${LA_DIR}/install/bin/* (${PRE_YEAR} -> ${YEAR})

  7. Complete SCRs for current ${YEAR} release
    • modify version (lexAccess.${YEAR}) in file of ${LA_DIR}/sources/gov/nih/nlm/nls/lexAccess/Api/LexAccessCmdApi.java
    • modify LA_JAR_FILE (lexAccess${YEAR}api.jar) in file of ${LA_DIR}/sources/gov/nih/nlm/nls/lexAccess/Tools/GuiTool/Model/LaObj.java
    • modify VERSION_STR (${YEAR}) in file of ${LA_DIR}/sources/gov/nih/nlm/nls/lexAccess/Tools/GuiTool/Model/GlobalVars.java
    • modify LA_VERSION (LexAccess, ${YEAR}) in file of ${LA_DIR}/sources/gov/nih/nlm/nls/lexAccess/Tools/GuiTool/Gui/LaFrame.java

  8. Build & Test (Complete the software part)
    • shell> ant release
    • release test (install to ${PROJECTS})
    • go through unit test

  9. Update other software components
    • Update web documents
    • Update web tools

  10. Compile (see above) & Test
    • go through all options

  11. Compile & pack
    • ant clean
    • ant release