Skip to content

Latest commit

 

History

History
63 lines (53 loc) · 2.78 KB

release.rst

File metadata and controls

63 lines (53 loc) · 2.78 KB

Instructions for Creating a DAGMC Release

Because of a complex dependency between DAGMC and PyNE the following procedures are recommended for navigating those dependencies for a new release.

DAGMC depends on PyNE only as a submodule from which C++ files are directly incorporated into the build. It may be desirable to perform a patch-level release of DAGMC when any of the C++ files on PyNE change.

PyNE depends on DAGMC as a third-party library that must be installed prior to building PyNE. Changes in DAGMC do not necessarily require updates to PyNE, so may not result in a patch-level release of PyNE.

It is often desirable to perform patch-level releases of PyNE and DAGMC on concert. If so, the following procedure should reduce conflicts in the dependencies.

Assumptions

  1. The DAGMC source code repository has a tag named stable that points to the same SHA as the newest release.
  2. The PyNE CI docker images rely on the DAGMC stable source code tag (this was incorporated in PyNE PR #1415)

Procedure

  1. Prepare PyNE for release
    1. Create release candidate (RC) branch in pyne/pyne
    2. Create a pull request (PR) into the PyNE RC branch in order to
      1. Change the version number in pyne/pyne_version.py
      2. Update CHANGELOG.txt
    3. Merge that PR when approved
    4. Potentially perform other updates to the RC branch via PRs
    5. DO NOT MERGE RC branch
  2. Prepare DAGMC for release
    1. Create RC branch in svalinn/DAGMC
    2. Create PR into DAGMC RC branch
      1. Update PyNE Submodule in DAGMC after all changes are made to PyNE RC branch. The PyNE RC branch is still not merged at this point.
      2. Update the DAGMC version number in CMakeLists.txt
      3. Update DAGMC's CHANGELOG.rst
    3. Merge that PR when approved
    4. Potentially perform other updates to the RC branch via PRs
    5. DO NOT MERGE RC branch
  3. Update DAGMC stable tag to future release hash = DAGMC RC branch HEAD

    git tag -d stable; git tag stable; git push -f --tags upstream

  4. Manually invoke Github action to rebuild PyNE Docker images. Note that this will automatically build & test PyNE with the updated DAGMC RC that is pointed to by the stable tag

  5. Publish PyNE release - DAGMC depends on a specific hash of PyNE, while PyNE depends on a tag of DAGMC

    1. Merge PyNE RC branch to develop
    2. Create release from develop
  6. Update PyNE Submodule in DAGMC after merge of PyNE RC

  7. Publish the DAGMC release
    1. Merge DAGMC RC branch to develop
    2. Create release from develop