This repository contains the TSTool main application source code and supporting files for the development environment. Multiple other repositories are used to create the TSTool application. Eclipse is used for development and repositories currently contain Eclipse project files to facilitate setting up the Eclipse development environment.
TSTool is part of Colorado's Decision Support Systems (CDSS). See the following online resources:
The developer documentation and guidelines will be updated as the development environment is used in development. See the following sections in this page:
The following are the main folders and files in this repository, listed alphabetically. See also the Development Environment Folder Structure for overall folder structure recommendations.
cdss-app-tstool-main/ TSTool source code and development working files.
.classpath Eclipse configuration file.
.git/ Git repository folder (DO NOT MODIFY THIS except with Git tools).
.gitattributes Git configuration file for repository.
.gitignore Git configuration file for repository.
.project Eclipse configuration file.
.pydevproject Eclipse configuration file for Python integration (experimental).
bin/ Eclipse folder for compiled files (dynamic so ignored from repo).
build-util/ Utility scripts used in development environment.
conf/ Configuration files for installer build tools.
dist/ Folder used to build distributable installer (ignored from repo).
externals/ Third-party libraries and tools (may remove/move in future).
graphics/ Images (may remove/move in future).
installer/ TSTool-specific files used to create installer.
lib/ Third-party libraries.
LICENSE.md TSTool license file.
nbproject/ NetBeans project (legacy, may be removed).
README.md This file.
resources/ Additional resources, such as runtime files for installer.
scripts/ Eclipse run and external tools configurations.
src/ TSTool main application source code.
test/ Unit tests using JUnit.
Repository dependencies fall into three categories as indicated below.
The main TSTool code depends on other repositories The following repositories are used to create the main TSTool application. Some repositories correspond to Eclipse projects and others are not used within Eclipse, indicated as follows:
Repository | Eclipse project? | Description |
---|---|---|
cdss-app-tstool-doc |
y | Legacy TSTool documentation and training (Word/PDF). |
cdss-app-tstool-doc-dev |
N | TSTool developer documentation (Markdown/MkDocs). |
cdss-app-tstool-doc-user |
N | TSTool user documentation (Markdown/MkDocs). |
cdss-app-tstool-main |
Y | TSTool main application code (this repo). |
cdss-app-tstool-test |
y | TSTool functional tests using TSTool testing framework. |
cdss-archive-nsis-2.46 |
N | Archive of NSIS 2.46, to set up development environment. |
cdss-lib-cdss-java |
Y | Library that is shared between CDSS components. |
cdss-lib-common-java |
Y | Library of core utility code used by multiple repos. |
cdss-lib-dmi-hydrobase-java |
Y | Library to directly access Colorado's HydroBase database. |
cdss-lib-dmi-hydrobase-rest-java |
Y | Library to access Colorado's HydroBase REST API. |
cdss-lib-dmi-nwsrfs-java |
Y2 | Legacy library to access National Weather Service River Forecast System (NWSRFS) data files. |
cdss-lib-models-java |
Y | Library to read/write CDSS StateCU and StateMod model files. |
cdss-lib-processor-ts-java |
Y | Library containing processor code for TSTool commands. |
cdss-util-buildtools |
Y | Tools to create CDSS Java software installers. |
Plugins are a new design feature that allows third parties to develop command and datastore plugins. Plugins therefore allow functionality to be added to TSTool for specific systems without burdening the core TSTool team with maintaining those plugins.
See the Plugin Reference documentation.
This repository is not known to be a dependency for any other projects.
The following folder structure is recommended for TSTool development. Top-level folders should be created as necessary. Repositories are expected to be on the same folder level to allow cross-referencing scripts in those repositories to work.
C:\Users\user\ Windows user home folder (typical development environment).
/home/user/ Linux user home folder (not tested).
/cygdrive/C/Users/user Cygdrive home folder (not tested).
cdss-dev/ Projects that are part of Colorado's Decision Support Systems.
TSTool/ TSTool product folder.
eclipse-workspace/ Folder for Eclipse workspace, which references Git repository folders.
The workspace folder is not maintained in Git.
git-repos/ Git repositories for TSTool.
cdss-app-tstool-doc/ See repository dependency list above.
cdss-app-tstool-doc-dev/
cdss-app-tstool-doc-user/
cdss-app-tstool-main/
cdss-app-tstool-test/
cdss-archive-nsis-2.46/
cdss-lib-cdss-java/
cdss-lib-common-java/
cdss-lib-dmi-hydrobase-java/
cdss-lib-dmi-hydrobase-rest-java/
cdss-lib-dmi-nwsrfs-java/
cdss-lib-models-java/
cdss-lib-processor-ts-java/
cdss-util-buildtools/
...others may be added...
Contributions to this project can be submitted using the following options:
See also the OpenCDSS / TSTool protocols.
Copyright Colorado Department of Natural Resources.
The software is licensed under GPL v3+. See the LICENSE.md file.