Casal2 User and Developer Support
All work in the Casal2 GitHub repository will be coordinated by the Casal2 Development Team and tracked using GitHub issues. Supporting documents can be attached to these issues. The changes will be managed in branches and integrated in pull requests.
The required documents include:
Please provide documents in LaTeX or Markdown format.
All contributions to the Casal2 project are made via Pull Requests against the master branch. Non-trivial developments must be discussed and agreed to in advance in a GitHub issue.
Report bugs by opening an issue in the GitHub repository.
For source code bugs: provide a description of the bug(s), the filename(s) for the code that has the bug(s), and the initial steps that will be taken to fix the bug(s).
For executable bugs: provide the version of the software affected by the bug, the operating system type and version, the input files necessary to reproduce the bug, how the expected result differs from the actual result, whether the released version of the executable was used or if the executable was built from source (then provide the compiler and version, and information on the other build tools used), and any other relevant information.
Request enhancements by opening an issue in the GitHub repository. Provide, at minimum, a technical description document with equations that provides detailed conceptual information on the new feature/functionality, and the rationale for implementing it. Please also describe how implementing and using this enhancement would affect existing functionality, proposals for changes to the input data and/or output formats, example use cases, and other supporting information.
Work with the Casal2 Development Team to create document(s) and GitHub issue(s) to fully describe the existing functionality and the changes required to achieve the planned maintenance or development work. The description should also include the scope of the changes and which sections of the repository will be updated.
Include details about the contracted milestones, objectives, and deliverables that this work is associated with.
Work with the Casal2 Development Team to create a GitHub issue with detailed task information and narrow scope
Have the Casal2 Development Team create a branch to work on the issue in the format <topic area>_YYYYMM
, e.g., retention_unit_tests_201911
Review the issue and add additional information about the work to be performed
Comment regularly in the issue as work progresses about what decisions were made and why, problems or questions that arise and proposed solutions, requests for clarification, etc.
Create a pull request after completing the changes and passing the unit and system tests locally
Work with the Casal2 Development Team to review the changes
The Casal2 Development Team will merge the changes after the code review
The first part of each line of the commit message should indicate the type of modification:
NOTE: commits pertaining to a specific issue should include Ref issue #[issue number]
in the commit message
The Casal2 project uses the Google C++ Style Guide and the Google R Style Guide, which is a fork of the Tidyverse Style Guide. Other Google Style Guides are available here.
The code review will include:
doBuild library release
, doBuild library [optimizer]
, doBuild library test
, doBuild frontend
, doBuild rlibrary
, and doBuild archive true
all complete successfully;doBuild modelrunner
, and other system tests complete successfully;Code reviews will be coordinated with the Casal2 Development Team.
After the pull request has been applied, the Casal2 Development Team will check that the CI/CD jobs completed successfully.
Note: as well as using the above style guides, development with the C++ source code in the Casal2 repository should also have these style characteristics: