Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Code review mentioned here is the minimum. Groups may define more requirements.

This document provides details on ACME development conventions and practices.

...

important -- Items colored in red mean they are important, and should not be ignored.

one time -- Items colored in green are commands to be issued once per machine.

repo once -- Items colored in orange are commands to be issued once per local repository.

...

Before communicating with remotes, you might want to add or remove remotes. In order to add and remove remotes the git remote command can be used. The two uses are as follows:


git remote add remote-name protocol:address/to/repo # Creates a remote

git remote remove remote-name # Removes a remote


In order to communicate with remotes, there are three actions. push, pull, and fetch.

...

Using the "Assignee" menu, add the name of the designated Integrator for your component.  See Integrator Guide for a list.  This will start the code review.


This document can be used to help with pull request related issues.


ACME Minimum Code

...

Review

An ACME Integrator conducts the code review.  

Code reviews are conducted online on github using comments on the pull request.  

The minimum code review should first

  • determine if the requested code check-in fits within the scientific development plan and timeline for that component and ACME overall.
  • Look over code diffs for glaring mistakes or code style issues (e.g. useful comments, reasonable subroutine lengths).
  • The commit messages

...

  • follow the ACME standards.
  • Necessary tests pass.

An ACME group may define additional review procedures for code changes affecting their component.

Handling reviewer comments
 

...

Below is a summary of the above sections. It will provide an ordered list of commands for a typical workflow. This will not describe why you would use these commands, or even what they do, simply a typical order for a standard project. Some items will be left out, like incorporating changes from an external project that your project is dependent on.


  1. git clone git@github.com:ACME-Climate/ACME.git  
    (only need to do this once per development platform (your laptop, Mira,Titan, etc.)

  2. cd ACME

  3. git checkout -b github-username/component/feature acme-vXX

  4. Repeat the following until development is complete:

    • vim file # make changes to files, or add new files

    • git add new-files

    • git commit -a # Edit commit message, based on template

    • Optional: git rebase -i <commit>

  5. Optional: Incorporate externally developed feature into your feature

    • Option 1: git cherry-pick <commit>

    • Option 2: git merge [commit] [branch]

    • Option 3: git rebase -i <new-base>

  6. Perform tests as needed throughout development process, but at a minimum before you submit a pull request.

  7. git push ACME-Climate/ACME github-username/component/feature
    (push to the shared repository on github)

  8. Visit http://github.com/ACME-Climate/ACME and submit a pull request to ACME/master

...