Development Policies

CESM Development Project Policies & Terms of Use

Please read the following CESM Distribution and Repository Access Policies and Terms of Use before requesting access or working with the code in the CESM and HOMME repositories (the “Development Code”).

If you do not agree to be bound by these Policies and Terms of Use, you may not use or contribute to the Development Code. UCAR and/or the CESM Scientific Steering Committee reserves the right to modify these Policies and Terms of Use at its discretion, upon notice to you, the Developer. Such modifications will be effective when posted.

Distribution Policy

Developers doing research resulting in presentations or papers agree to the following procedures with regard to co-authorship:

  1. Users of CESM development code must offer co-authorship (or other mutually agreed upon recognition) on papers, conference abstracts or other scientific communications to the contributors of CESM development code named in the code if the following three conditions all apply:
    • The research utilized the code by invoking it at run time
    • Not utilizing the code would change the results and/or conclusions
    • At the time the code was first utilized, it had not yet been publicly released
  2. Developers may not redistribute code to anyone outside of a research group.
  3. Any Developer doing research using a developmental version of the model that results in presentations or papers should document their experiments in the experiments database (or provide similar documentation through another means) and provide the High Performance Storage System (HPSS) location of the history files used in the presentation or paper. If the source code used in the experiments is not available through the Subversion repository, it should be made available to the development team for checking back into the CESM code repository.

To avoid violating this policy, Developers working with unreleased code should contact the co-chairs of the relevant working group(s)before beginning any work with unreleased and unreferenced code. Failure to abide to the above policy will lead to developer's access being revoked.

Repository Access Policy

Repository usage is monitored and access will be terminated if any terms of the access policy listed below are violated.

CESM uses Subversion and Github as tools for source code control. Development occurs only within specific component directories. Within each component directory, there is one main trunk and multiple branches. Branches can be created from any point in the repository and can be merged together at any point in the repository. Under this policy, collaborator development is allowed only on branches and under no circumstance should any developer commit changes to the main trunk unless specific permission is granted by a working group co-chair. The trunks are reserved for formal component releases (staged, internal, or external).

Developers are allowed to create branches off their own branches and are allowed to work on multiple branches and update or merge codes from other branches as long as permission to access all those branches has been formally granted. In general, development versions should be kept up to date by the Developer with the latest version on the main trunk. Before a Developer's branch is merged onto the main trunk, the Developer must make a request to the working group co-chair; the component must pass certain testing and validation criteria; the Developer must show scientific or software benefits; the branch version must be consistent with the latest release on the main trunk; and the change must be approved by the relevant working group co-chairs.

Source code from the repository will only be used for the agreed upon code development project and may not be used for any projects outside the scope of the agreed upon project.

Developer shall be responsible for obtaining agreement to these Policies and the Terms of Use from the individuals with whom they share Development Code:

  • Who are developing code under the direction of someone with repository access
  • Who are working on the same tasks as those described in the repository request
  • Whose work is supervised by the primary developer

No other sharing of development code is allowed and the Developer may not extract code from CESM Development versions for inclusion in other models.

Terms of Use

  1. Disclaimer. ALL DEVELOPMENT CODE IS AND HAS BEEN PROVIDED BY UCAR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UCAR OR ANY CONTRIBUTING DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  2. Developer agrees:
    1. To access, use and contribute to the Development Code only as permitted by these Terms of Use and the CESM Development Project Policies;
    2. To treat the Development Code and all Project access codes and passwords as confidential information; not to share this confidential information; and to take all reasonable precautions to protect such confidential information from access by unauthorized persons
    3. To comply with all policies and procedures adopted by the Project’s Scientific Steering Committee to manage the Project and the use of, and contributions to, the Development Code.
    4. To comply with all applicable laws related to your use of and contributions to the Development Code;
  3. Developer grants to UCAR a non-exclusive, perpetual, worldwide, unlimited, irrevocable license: (i) to reproduce, translate, use, create derivative works of, publish and display any and all Contributions submitted by Developer, and (ii) to grant to other Developers all or a portion of these rights. Granting this license does not change Developer’s rights to use Contributions for any purpose, and Developer retains title to Developer’s Contributions.
  4. Developer certifies:
    1. That none of Developer’s Contributions include information or software that is export-controlled under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (except under EAR99);
    2. That all of Developer’s Contributions are either original creations of the Developer or the Developer has the legal right and authority to grant the license described in the immediately preceding section 3 and has not knowingly included any other person’s material in the Contributions, without the consent of the copyright owner;
  5. Definitions:
    • “CESM” means the Community Earth System Model
    • “Contribution” means any work of authorship, including any modifications or additions to an existing work, submitted for inclusion in the Development Code. For the purposes of this definition "submitted" means any form of electronic, verbal, or written communication sent to UCAR or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, UCAR for the purpose of discussing and improving the Project.
    • “Developer” means any person who participates in the CESM Development Project, by accessing, using and/or contributing to the Development Code.
    • “Development Code” means the development source code contained within the Project Code Repositories managed by UCAR, including any contributions to those repositories.
    • “Homme” means the High-Order Methods Modeling Environment.
    • “Project Code Repositories” are those development source code repositories, including the CESM/HOMME Development Code Repositories, that are managed by UCAR for purposes of the Project.

CESM/HOMME Development Code Repositories Access, Renewal and Update Forms

New Access Request
New access requests require CESM working group co-chair and CSEG approval. You will also be required to provide the name of a NCAR staff member who can vouch for your work.
CESM / HOMME Development Code Repository Access Request Form

Renew Access
Expired users can use this form to request a renewal of their account. You will still be required to input your CESM SVN developer's credentials in order to access the form. Renewal requests also require CESM working group co-chair and CSEG approval. You will also be required to provide the name of a NCAR staff member who can vouch for your work.
CESM / HOMME Development Code Repository Access Renewal Form

Update Developer Information
Existing, active developer's can use this form to update their information on record including adding a Github account login. You will be required to enter your CESM SVN developer's credentials in order to access the form.
Updates DO NOT require additional CESM working group co-chair or CSEG approval.
CESM / HOMME Development Code Repository Access Update Form

Dashboard
** CSEG admin and working group co-chairs only **
CESM / HOMME Development Code Repository Access Dashboard

Code / Data Repositories