Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add release process markdown file #4312

Merged
merged 14 commits into from
Apr 20, 2024

Conversation

glennsong09
Copy link
Contributor

Add a release process markdown file to more clearly document our release process.

| Task Name | Task Items | Task Details |
| ------------- | ------------- | ---------- |
| 3. Prepare Release Notes (Release Manager) | | |
| | 1. Audit Release Changes (Release Manager) | Confirm that all non-trivial changes made to the source are reflected in the release notes. Verify the following: <br> [HDF5 Milestones Projects](https://github.com/HDFGroup/hdf5/milestones) <br> Each entry in [RELEASE.txt](https://github.com/HDFGroup/hdf5/blob/develop/release_docs/RELEASE.txt) traces to one or more resolved GH issues marked with FixVersion="X.Y.Z". <br> Each resolved GH milestone issue traces to an entry in [RELEASE.txt](https://github.com/HDFGroup/hdf5/blob/develop/release_docs/RELEASE.txt).<br>Each resolved GH milestone issue traces to one or more revisions to the HDF5 source. <br> Each resolved GH milestone issue traces to one or more pull requests. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we put these numbered substeps under the Task before the table and then just use the Task Details as a list?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, can I get a bit more clarification on what you want?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decompose the table moving each row of a task and steps under the task # above the table
line 36 is replaced by :

  1. Audit Release Changes (Release Manager)
    • Confirm that all non-trivial changes made to the source are reflected in the release notes.
    • Verify the following:
      - HDF5 Milestones Projects
      - Each entry in RELEASE.txt traces to one or more resolved GH issues marked with FixVersion="X.Y.Z".
      - ....
  2. Confirm and Update Known Issues (Release Manager or Software Maintainers)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has also been updated.

@byrnHDF byrnHDF added Component - Documentation Doxygen, markdown, etc. Type - Improvement Improvements that don't add a new feature or functionality labels Apr 3, 2024
| | 2. Review |
| | 3. Change status from Pre-Release to Release |
| 10. Conduct Release Retrospective (Release Manager) | |
| | 1. Schedule Time and Solicit Comments (Release Manager) |
Copy link
Contributor

@byrnHDF byrnHDF Apr 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add these two line to number 10 above and then you should be able to delete this whole table.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have deleted the table.

| | 12. Resolve Issues (Release Manager) |
| | 13. Review Test Sufficiency (Release Manager)|
| 8. Finalize Release Notes (Release Manager) | |
| | 1. Update Release Notes in **release** branch (Release Manager)|
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't see this line under Task 8 above, just support branch

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved this up as well.

- E-mail [email protected] to indicate that the code freeze on the release support branch (i.e. hdf5_X_Y) has been lifted and development on the next maintenance release can resume. The code freeze will remain in place on the release preparation branch (i.e. hdf5_X_Y_Z) indefinitely.

7. Perform Release Testing (Test Automation Team | Release Manager | Project Leads)
- Verify that source and binary distributions of HDF5 are acceptable on all target operating environments.
Copy link
Contributor

@byrnHDF byrnHDF Apr 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should the sub-tasks be an ordered list? Or is this unnumbered list good?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have updated this.

6. See [Updating version info (Libtool)](https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html#Updating-version-info) for rules to help update library version numbers.
7. Select release build from workflow.
8. Choose the release branch
9. Change ‘Release version tag’ name to 'release'
Copy link
Contributor

@byrnHDF byrnHDF Apr 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hdf5_X.Y.Z.P instead of release

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been updated.

Release a new version of HDF software, which corrects defects, adds functionality, improves maintainability, and/or ports it to new operational environments.

## Description (General):
At regularly scheduled intervals throughout each year, The HDF Group releases a new version of each of its maintained / core software products and corresponding documentation set. This is referred to as a maintenance release. The main purpose of a maintenance release is to address defects reported against previous releases of the software, to port the software to new operating environments, and to improve maintainability by way of refactoring code and improving documentation. A maintenance release may also include new functionality in any of the product's components.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maintained/core vs. maintained / core?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have fixed this.

- Release Manager — The individual responsible for coordinating and overseeing the activities specific to releasing a software product at The HDF Group.
- Software Developer — An individual or group responsible for performing maintenance on supported HDF software.
- Software Tester — An individual responsible for identifying, implementing, and conducting tests of software code, modules, packages, executables, and/or release binaries.
- Test Automation Team — A team at The HDF Group responsible for overseeing the the daily automated regression tests of software maintained by the company's Sustaining Engineering program.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extra "the"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

6. Confirm the necessity of and approve of any interface-breaking changes. If any changes need to be reverted, task the developer who made the change to do so as soon as possible. If a change is reverted, return to the previous step and regenerate the compatibility report after the changes is made. Otherwise, continue to the next step.
7. Update the .so version numbers in the [config/lt_vers.am](https://github.com/HDFGroup/hdf5/blob/develop/config/lt_vers.am) file in the support branch according to [libtool's library interface version](https://www.gnu.org/software/libtool/manual/libtool.html#Versioning) scheme.
- See [Updating version info (Libtool)](https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html#Updating-version-info) for rules to help update library version numbers.
8. After the release branch has been created, run `./autogen.sh` to regenerate build system files on the release branch and commit changes.
Copy link
Contributor

@bmribler bmribler Apr 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest: "...and commit the changes."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated.

- `$ git checkout hdf5_X_Y`
- `$ git checkout -b hdf5_X_Y_Z`
- or create the new branch in GitHub GUI.
4. Check that required CMake files to point to the specific versions of the third-party software (szip and zlib) that they depend on.
Copy link
Contributor

@bmribler bmribler Apr 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest: "Check that required CMake files point to..." (leave out a "to")

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

7. Choose the release branch
8. Change ‘Release version tag’ name to 'hdf5_X.Y.Z.P'
- P is some pre-release number.
9. Send a message to the HDF forum indicating that a pre-release source package is available for testing at <e.g. gamma.hdfgroup.org/ftp/pub/outgoing/hdf5/{hdf5-X.Y.Z-pre<n>}> and that feedback from the user community on their test results is being accepted.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'P' vs "pre<n>"?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Binh-Minh, I tried updating this link, but it didn't seem to pass the links check once I did, so I have reverted the change.

9. Send a message to the HDF forum indicating that a pre-release source package is available for testing at <e.g. gamma.hdfgroup.org/ftp/pub/outgoing/hdf5/{hdf5-X.Y.Z-pre<n>}> and that feedback from the user community on their test results is being accepted.
10. Contact paying clients who are interested in testing the pre-release source package and inform them that it is available for testing and that feedback on their test results of the pre-release is appreciated.
11. This should be automated and currently github binaries are not signed.
- Follow the [How to sign binaries with digital certificates(this is missing)]() work instructions to sign each windows and mac binary package with a digital certificate.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Windows and Mac? (cap?)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated.

17. Update the test results Confluence page with status/outcome of all test assignments.
18. If any test source (hdf-forum, clients, internal testers, automated regression suite) identifies any issues:
- a) Enter the issue in JIRA summarizing the failure if it is not already there.
- b) Decide whether or not to resolve the issue for this release, or to simply document it as a known issue for this release.
Copy link
Contributor

@bmribler bmribler Apr 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest: "Decide whether to resolve the issue for this release or to simply document..."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated.


10. Conduct Release Retrospective (Release Manager)
1. Schedule time and solicit comments from retrospective
2. Identify issues and document them
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe a different numbering should be used for the sub-lists, for example:
1.
a.
b.
or
1.
1.1
1.2

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, @byrnHDF already suggested about the numbering.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe make the tasks bold? Might help in distinguishing tasks from its steps?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried changing how the formatting of that section looks. Please let me know if this is better.

- `$ git checkout hdf5_X_Y`
- `$ git checkout -b hdf5_X_Y_Z`
- or create the new branch in GitHub GUI.
4. Check that required CMake files point to the specific versions of the third-party software (szip and zlib) that they depend on.
Copy link
Contributor

@byrnHDF byrnHDF Apr 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change "(szip and zlib)" to "(szip, zlib and plugins)"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated.

@lrknox lrknox merged commit 3bf963b into HDFGroup:develop Apr 20, 2024
3 checks passed
lrknox pushed a commit to lrknox/hdf5 that referenced this pull request Apr 22, 2024
lrknox added a commit that referenced this pull request Apr 25, 2024
* Fixed dead links in docs (#4334)

* Revert "Fixed dead links in docs (#4334)" (#4335)

This reverts commit 408fc66.

* Fix grammar and content in HDF5Examples (#4333)

* Remove HD macros for C time functions (#4337)

* HDasctime
* HDclock
* HDctime
* HDdifftime
* HDgmtime
* HDlocaltime
* HDmktime
* HDtime
* HDtzset

HDgettimeofday will be done later

* Remove HD prefix from toupper/tolower (#4340)

* Add VDS and SWMR to documentation (#4336)

* Clean up random number generator code (#4338)

* Clean up random number generator code

Depending on the platform, we use a mix of random, rand, and rand_r
to generate pseudo-random numbers, along with a messy set of ifdefs
in H5private.h. We are not a cryptographic library, only use random
numbers in our test code, and have no need for anything more than the
C standard's (s)rand(). There's no point dithering about using rand()
vs random() when we're also doing bad things like using mod to
restrict the range, which introduces bias.

Also removes CMake/configure checks for rand_r and random

* Remove random/rand_r checks from build system

* Fix missed HDrandom after GitHub merge

* Remove the getting started guide (#4339)

This was moved to the wiki

* Remove noise comment from H5DO.c (#4342)

* Add note about H5Iregister_type hash_table param (#4345)

The hash_table parameter is unused in HDF5 1.8.13 and later, when we moved from using hash tables to skip lists for storing IDs. The current hash table implementation does not use this parameter.

* Remove `#undef ERR` from H5private.h (#4346)

This is an old work-around that is no longer necessary.

The only place where we defined ERR is in h5import, and that code
has been updated (in this PR) to rename ERR to INVALID_TOKEN.

* Add NAMECHECK_ONLY to macro list in .clang-format (#4343)

This caused H5TS.c functions to be mis-formatted

* Remove HD from last non-win32 C89 functions (#4348)

Removes the HD prefix from the last C89 functions with no special
Windows equilvalent:

* rename
* rewind
* setbuf
* signal
* tmpfile

* Fix dead links cont. (#4349)

Added img/images_to_copy.dox as a temporary solution because doxygen didn't copy
the images used in the examples/*.html files - will investigate more.  This was
necessary for the links to intro_SWMR.html and intro_VDS.html.

* Fix a typo (#4352)

* Fix use of possibly uninitialized memory in h5repack (#4354)

* Match content listing with content. (#4357)

* Remove obsolete c++ doxygen config files (#4358)

* Fix typo VERSIO (#4363)

* Removed duplicate entries in compile line for h5* compiler wrappers (#4360)

* h5fc remove duplicate args
* h5 wrappers remove duplicate args

* Added CVE info to RELEASE.txt (#4367)

* Change doxygen version from 1.10.0 to 1.9.7 (#4371)

* Fix all doxygen versions (#4377)

* Change date to data in INSTALL_parallel (#4384)

* Fix a broken link for zlib url (#4383)

* Fix broken links and references in INSTALL_Auto.txt (#4382)

* Remove  signature in comment (#4366)

* switched from \returns to commonly used \return (#4389)

* Add CXX flags (#4359)

* Remove TRACE macros (#4341)

* Set available CMake build types for non-multi-config generators (#4330)

* Correct the high-level library link (#4398)

* Correct the high-level library link

The link currently used points to 1.13 release.  Changed to use the md file instead.

* Update Doxyfile for md files

* Update to include md files

* Add additional terms to the glossary (#4401)

Fixes GH #4390

* added missing doxygen \since (#4410)

* Update Intel oneAPI version to 2024.1 (#4412)

* Update documentation (#4403)

- Added File Image Operations to Technical Notes

* Use a correct example location

* Use aliases for URLs (#4409)

* Fix CXX sanitizer by moving marco include to after CXX code. (#4414)

* Update and use more URL alias (#4413)

* Update documentation (#4415)

Added the replacement for https://docs.hdfgroup.org/archive/support/HDF5/doc/TechNotes/Version.html
Corrected some minor typos and another deadlink

* Remove obsolete file (#4416)

* Update oneAPI version to 2024.1 for Daily Build (#4418)

* Add training videos page (#4422)

* Updates for release_docs/NEWSLETTER.txt. (#4423)

* Add release process markdown file (#4312)

* Lowercase  in File Format Specification (#4424)

* Fixing string in RELEASE_PROCESS.md that is causing a doxygen error - (#4430)

Unsupported xml/html tag <n> found.

* Allow clang-format to format H5Cpkg.h (#4429)

Co-authored-by: Larry Knox <[email protected]>

* Fix broken links in md files needing full URLs.

* Add URL for Java examples that was accidentally dropped.
Change paths from develop to 1.14 directories for some doxygen generated
files.

* Correct typo.

* Fix 2 more dead URLs.

* Revert "Clean up random number generator code (#4338)"

This reverts commit 58e4d08.
byrnHDF pushed a commit to byrnHDF/hdf5 that referenced this pull request May 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component - Documentation Doxygen, markdown, etc. Type - Improvement Improvements that don't add a new feature or functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants