This repository contains Colorado's Decision Support Systems (CDSS) C# library for StateMod and StateCU models. One repository is used for both models because there is overlap in file formats and internal data structures These packages are used by CDSS StateMod C# applications and other C# libraries.
This code is experimental and is used in support of the experimental StateMod C# code.
See the following sections in this page:
- Repository Folder Structure
- Repository Dependencies
- Development Environment Folder Structure
- Version
- Development Environment
- Code Generation
- Contributing
- License
- Contact
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. This structure needs to be completely described when the experimental C# StateMod code is functional.
cdss-lib-common-cs/ Source code and development working files.
.git/ Git repository folder (DO NOT MODIFY THIS except with Git tools).
.gitattributes Git configuration file for repository.
.gitignore Git configuration file for repository.
LICENSE.md Library license file.
README.md This file.
resources/ Additional resources.
src/ Source code.
test/ Unit tests.
Repository dependencies fall into two categories as indicated below.
This library depends on other repositories listed in the following table.
Repository | Description |
---|---|
cdss-lib-common-cs |
Library of core utility code used by multiple repositories. |
cdss-lib-cdss-cs |
Library that is shared between CDSS components. |
The following repositories are known to depend on this repository:
Repository | Description |
---|---|
cdss-app-statemod-cs |
StateMod C# program. |
The following folder structure is recommended for software 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. StateMod C# is used as an example, and normally use of this repository will occur through development of the main CDSS applications. See the application's developer documentation for more information.
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.
StateMod-CS/ StateMod C# product folder (will be similar for other applications).
-------------- below here folder names should match exactly -----------------
git-repos/ Git repositories for StateMod C#.
cdss-lib-cdss-cs/ CDSS shared code repository.
cdss-lib-common-cs/ Shared code repository.
cdss-lib-models-cs/ Model code repository.
cdss-app-statemod-cs/ StateMod C# code.
A version for the library is typically not defined. Instead, tags are used to cross-reference the library version with commit of application code such as StateMod C#. This allows checking out a version of the library consistent with an application version. This approach might need to change if the library is seen as an independent resource that is used by many third-party applications.
The following tools are required to be installed in the development environment. See more information in the StateMod C# Repository Development Environment documentation.
The C# code in this repository was auto-generated using the
cdss-lib-common-java Java library as input and the
Tangible Software Solutions Java to C# Converter.
The converter was used to interactively convert the input src
folder with the following options:
- Accept default conversion options other than exceptions below.
- *Options / Miscellaneous Options
- Uncheck Convert methods to properties if preceded by
get
orset
(and optionally `is). This will ensure that C# code is more similar to original Java code. - Uncheck Convert generic type arguments of Java
wrapper
types (e.g., Integer) to primitive types.
- Uncheck Convert methods to properties if preceded by
Contributions to this project can be submitted using the following options:
- Software developers with commit privileges can write to this repository as per normal OpenCDSS development protocols.
- Post an issue on GitHub with suggested change. Provide information using the issue template.
- Fork the repository, make changes, and do a pull request. Contents of the current master branch should be merged with the fork to minimize code review before committing the pull request.
See also the OpenCDSS / protocols for each software application - currently hosted on the Open Water Foundation website while the OpenCDSS server is being configured.
Copyright Colorado Department of Natural Resources.
The software is licensed under GPL v3+. See the LICENSE.md file.
See the OpenCDSS information for overall contacts and contacts for each software product.