Difference between revisions of "Release Planning"

From SCECpedia
Jump to navigationJump to search
Line 32: Line 32:
 
# Credit
 
# Credit
 
# Curation
 
# Curation
 +
 +
 +
== Steps To Software Product: ==
 +
# Create citable, definitive version of software with doi, license, and repository.
 +
# Define reference publication used to cite software.
 +
# Define software as reference implementation of a method, and define a set of approved software acceptance/regression tests that can be used to establish a software implements that “method”.
 +
# Create software maintenance organization with commit authority for pull requests and approval process for change requests, and process of approving new releases.
 +
# Establish software community through registrations, newsletters, activity, regular calls, regular meetings, define community and roles.
 +
 +
== Adoption of Fork and Pull Git Repo Model ==
 +
* Use the model used by the majority of open-source projects (including pyCSEP).
 +
* The “maintainer” of the shared repo assigns rights to “Collaborators”
 +
* Collaborators do not have push access to main (upstream) repo
 +
* Core development teams accepts (PRs) from collaborators, reviews them, then merges them into main repo
 +
 +
== Contributor Process: ==
 +
Working with shared projects on GitHub
 +
# Fork the repository
 +
# Clone your forked copy
 +
# Sync your personal repo with shared repo
 +
# Git merge/git rebase
 +
# Make a contribution
 +
# Pull request

Revision as of 00:02, 22 October 2021

Fork and Pull Development

Using the fork and pull method, start with fork of sceccode/ucvm.git into personal repo. Then, to do development on CARC, plan to clone pjmaechling/ucvm.git for development. Set git upstream to original repo sceccode/ucvm.git to keep in sync with that repo. Follow Instruction for setting upstream here:

Development on CARC

Compiling

  • the source directory /project/scec_608/maechlin/dev/ucvm
  • the installation directory /project/scec_608/maechlin/ucvm_bin


When someone is looking at your project, they want to know:

  1. what is it?
  2. how good the code is?
  3. how much support is available?
  4. what’s included?
  5. what does it look like?
  6. how set it up?

Science Code Manifesto Elements:

  1. Code
  2. Copyright
  3. Citation
  4. Credit
  5. Curation


Steps To Software Product:

  1. Create citable, definitive version of software with doi, license, and repository.
  2. Define reference publication used to cite software.
  3. Define software as reference implementation of a method, and define a set of approved software acceptance/regression tests that can be used to establish a software implements that “method”.
  4. Create software maintenance organization with commit authority for pull requests and approval process for change requests, and process of approving new releases.
  5. Establish software community through registrations, newsletters, activity, regular calls, regular meetings, define community and roles.

Adoption of Fork and Pull Git Repo Model

  • Use the model used by the majority of open-source projects (including pyCSEP).
  • The “maintainer” of the shared repo assigns rights to “Collaborators”
  • Collaborators do not have push access to main (upstream) repo
  • Core development teams accepts (PRs) from collaborators, reviews them, then merges them into main repo

Contributor Process:

Working with shared projects on GitHub

  1. Fork the repository
  2. Clone your forked copy
  3. Sync your personal repo with shared repo
  4. Git merge/git rebase
  5. Make a contribution
  6. Pull request