Source tree of OmegaT project¶
This section describes a source tree and each folders’ roles.
main source code¶
There are three main source code, one is source code, others are test codes.
srcsrcis a main folder where OmegaT source code is stored.There are three sub folders under
src.org: main source code.schemas: XML schemas for JAXB code generation.gen: generated source code by JAXB jxc command.
testtestis a test folder where unit and regression test is stored. There are two sub folders undertest. one isdataand other issrc.test-integrationtest-integrationis a folder for an integration test. There are two sub folders undertest-integration.dockerhasDockerfilefor test server and client environment to help developer to run the test automation.
documentations¶
doc_srcdoc_srcis a home folder for manuals, and start guide.docs_develdocs_develis a place for developer notes that you read now. These are written by Markdown and the developer note can be converted into html using MkDocs document processing system.docsThere are manuals in the folder that is generated from document source in the
doc_srcfolder. A content here is updated by project manager, document/localization administrator or lead developer.Packaging script copy all the contents here into distribution package. When user click
help->user manualmenu, browser will be open with contents here.
sub modules code¶
tipofthedaytipofthedayfolder is a place of one of subprojects of OmegaT. This provides a feature of “Tip of the Day” startup screen as an OmegaT plugin. There is subprojectbuild.gradlefile under the folder and most configuration is in it.A source tree is placed under Maven standard.
Contents which are displayed on “Tip of the Day” dialog is defined in
docsfolder. When you add new contents in it, you also requires updatetips.yamlindex file.
additional materials¶
scriptsYou can find several user defined scripts in
scriptsfolder. These scripts are installed in thescriptsfolder in installation system directory.releaseThere are several important document file here.
changes.txthas a change log of versions.readme_*.txtis a localized readme files.libraries.txthold license information about dependencies.There are also
*-specificfolders that is used when building installer or distribution packages.liblicensesubfolder hold raw license texts of dependencies libraries.When you download source package and extract zip file, you will find a folder
providedwhich has all the dependencies jar files. When the folder provided exist, OmegaT can be built without downloading dependencies from the internet. This is to guarantee users to get all necessary materials even when one of dependency stop a distribution of its version.imagesThere are logo images that is used for OS menu icons and window UI decorations.
gradleThere are files used by
Gradlebuild system.
CI/CD and quality assurance configs¶
configIt is a folder where
checkstyleconfiguration file is stored. When launch `./gradlew checkstyleJava verification command, the config file is used in a process.ciIt is a folder where CI/CD scripts are stored.
dot files and folders¶
.github.githubis a folder that has configurations for GitHub service..docker-compose.ymlIt is a configuration file when developer run an integration-test in the automated way.
.readthedocs.yamlIt is a configuration file for readthedocs.org service how to build developer note on it.
Plugins.propertiesIt defines an internal plugins which source is inside main source tree. plugin metadata will be generated automatically in artifacts
MANIFEST.MFfile.local.properties.sampleThis is a sample file of
local.propertiesthat is required for maintainer to define a signature key and passphrase, account of publish site and related.