Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

DRAFT

Speculative Long-term Development is any development intended for ACME AND its not clear when or if it will be officially added to a future version of the model.  For this discussion, "Officially Added" means it is on master, can be turned on using appropriate configuration options, and tests of that feature must pass (the test becomes part of acme_developer or acme_integration). Examples of speculative long-term development include ACME developments for 2+ versions ahead of current version,  developments from other programs (CMDV, ECP)

The ACME SE group has some recommended procedures for doing speculative development.  Which one to use depends on the nature of your code development.

Direct development in master (recommended)

  1. Split the long-term development in to logical pieces that can be checked in to master over time.
  2. Add pieces with PRs as is done for mainline ACME development.
  3. Add a test or tests for your new feature.  These tests won't be added to the main acme test suites until the feature is "officially added".  They could be part of a separate test suite.
  4. As you develop new pieces of your feature, run your tests to make sure mainline ACME development does not break your feature.   Run acme_developer on your branches to make sure you haven't broken the rest of ACME.

Feature is always in the ACME source but may not be fully working.  Once working and "officially added", test for that feature becomes part of standard test suite.

Long-lived fork (for many related features)

  1. Create a clone of ACME-Climate/ACME that others can push to such as https://github.com/ACME-Climate/ACME-ECP
  2. Each feature developed through small, focused branches, the PR for each branch merged to the master of the fork.
  3. Master of the fork is kept up-to-date with ACME master.

Long-lived branch in ACME-Climate/ACME

  1. Start a branch for your development from ACME-Climate/ACME like normal ACME development
  2. Make a test or tests for your feature
  3. Periodically rebase your branch to the head of master.
  4. Run your test on the rebased branch to make sure everything still works.
  5. Also run acme_developer on your branch to make sure you haven't broken other parts of ACME.

Feature lives on branch until its ready to be "officially accepted" in to ACME.



  • No labels