Feature Freeze FAQ

A few months prior to finalizing a new release of ACME, there will be a scientific "feature freeze" on a specified date.

Q.  What does "scientific feature freeze" mean?

A.  After the specified date, no code that introduces new scientific capabilities of the model can be introduced to the version being finalized.  More specifically,

  1. Steps 1 and 2 of Phase 1 of the /wiki/spaces/CNCL/pages/25231511 must be competed for the feature.
  2. A github "pull request" for completed code implementing the feature must be made before the feature freeze date/time.    
    1. Example:   all ACME v1 features must have their coding complete and have a PR issued by 11:59:59 pm PT, .

Q.  What if the pull request for my needed feature misses the deadline?

A.  Then that feature will go in the release after the one being finalized.

Q.  But what if it's is a really important feature that's supposed to be in that version?

A.  The executive committee/Council retains the option of allowing exceptions, but exceptions will be few and should not be expected.

Q. Why is the feature freeze deadline so far in advance of the release?

A.  The integrators need time to bring all the new features to master including new tests and resolve any conflicts (Step 3 of Phase 1 of the /wiki/spaces/CNCL/pages/25231511) and the coupled model and performance groups need time to complete their testing/review (Phase 2 of the /wiki/spaces/CNCL/pages/25231511.)

Q. What about alpha and beta versions?

A. See the documentation at Branch, Tag, and Version name conventions

Q.  Can I add code/features for the version being prepared for release before its alpha or beta tags?

A. No.  The only changes allowed during the alpha/beta phase are to fix problems with the climate simulations or performance as revealed by Phase 2 of the /wiki/spaces/CNCL/pages/25231511.

Q.  What if the feature is completed after the freeze but "turned off" and doesn't change answers and we'd like it in the v1 release?

A.  This case is still under discussion.

Q. What about code for new diagnostics or new data sets?

A. If the new code does not change answers, it can still be integrated to master before the release.

Q. What about bug fixes?

A.  Of course if bugs are found in the frozen features during testing, fixes for those bugs can go in.

Q. I have a feature for the next version that will change answers and is ready to go.  What do I do?

A.  Wait until the maintenance branch has been established for the version being finalized.  After that, master can accept answer- or climate-changing code for future versions.

Q. What if I'm working on the build or test system?

A.  The build/test system will have a different feature freeze date but the same rules apply.

Q. When can I no longer make any changes at all to any part of the code base in the version being finalized?

A.  That is the "code freeze" date and will happen shortly before the release.