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

v4.2.4 release checklist #2983

Closed
11 of 24 tasks
rhc54 opened this issue Feb 17, 2023 · 7 comments
Closed
11 of 24 tasks

v4.2.4 release checklist #2983

rhc54 opened this issue Feb 17, 2023 · 7 comments
Assignees
Milestone

Comments

@rhc54
Copy link
Contributor

rhc54 commented Feb 17, 2023

Build the Release

  • Verify the major,minor,release,greek version numbers in VERSION
  • Update the c:r:a shared library version number(s) in VERSION per the GNU Libtool shared library version number rules
    • NOTE: It may be helpful to use a command like git checkout BRANCH; git pull --rebase; git log --stat --topo-order --decorate TAG_FROM_PREVIOUS_RELEASE..HEAD to examine the Git logs and see what has changed.
    • IF RELEVANT: If this is a new backwards-compatible release on a single branch (i.e., this is vx.y.z where z>1), you probably want to examine git log --stat --no-merges last_release_tag..this_branch_name to see what source code files have changed (which directly impacts how to increment the c:r:a values).
    • IF RELEVANT: If this is a new release series (e.g., vx.y.0), set r to 0 and increase c values by 10 compared to the first release in the prior series (i.e., vx.(y-1).0 or v(x-1).0.0, as relevant).
    • IF RELEVANT: If this is a new backwards-compatible release series (i.e., vx.y.0, where y>1), seta values to 10 so that the shared libraries will be ABI compatible with the prior release series.
    • IF RELEVANT: If this is a new backwards-INcompatible release series (i.e., vx.0.0), set a values to 0 so that there is no possibility of users accidentally mixing shared library versions.
  • Update all documentation files (especially including dates and version numbers), including:
    • README: all relevant updates, build options, etc. Be sure to update the date near the top of the file.
    • NEWS: List all user-noticeable changes. Similar to setting shared library versions (above):
      • Pro tip: if this is a new release on a single branch (i.e., this is vx.y.z where z>1), you probably want to examine git log --stat --no-merges last_release_tag..this_branch_name to see what has changed.
      • Pro tip: if this is a new release series (i.e., this is vx.y.0 where y>1, or this is vx.0.0), you will need to be more creative in examining the git logs because this release is on a different branch than the prior release (vx.(y-1).z). Hence, git log ... last_release_tag..this_branch_name will not necessarily give you need. You may need to merge what has changed on your branch with what has changed on the prior release branch, depending on when the prior release branched from this branch. Read the SPECIFYING RANGES section gitrevisions(7) for more details.
    • LICENSE: Update the years in the copyright notices

Publish pre-releases

  • Create a tag for the pre-release, matching the version being released (ie, git tag -a v3.0.1rc1 -m "v3.0.1rc1" <HASH>). Verify points to the correct release point. Push the tag for the release.
  • Create a PR (e.g., tickle README.md) to trigger CI and verify cross-version compatibility
  • PR release candidate to OMPI for MTT and verify passage (must run for at least one week for coverage)
  • Build the pre-release tarball and post it on the GitHub tag
  • Send an email to the pmix@googlegroups.com and ompi-packagers@lists.open-mpi.org mailing lists announcing the pre-release candidate being available for evaluation. Body of message should include the link to the GitHub tag and a copy of the NEWS items relating to this candidate.

Publish the release

  • DO NOT DO A FINAL RELEASE if you are too close to Supercomputing and/or Christmas. If you release during these time periods, there can be a ~2 week delay while the developer community is not paying attention to their email (and will not be able to respond to the inevitable post-release user emails).
  • Create a tag for the release, matching the version being released (ie, git tag -a v3.0.1 -m "v3.0.1" <HASH>). Verify points to the correct release point. Push the tag for the release.
  • Make the tarball for the release and the src rpm
  • Post the tarballs and src rpm on the GitHub tag. Include a copy of the NEWS items relating to this release (see prior releases for an example)
  • Close the relevant Github milestone in openpmix/openpmix
  • Send an email to the pmix@googlegroups.com and ompi-packagers@lists.open-mpi.orgmailing lists announcing the release

Prep for next release in series

  • Ensure that new Github milestones exist in GitHub for the next release
  • Re-target (change milestone) all still-open issues for the new release to the next major or minor release of PMIx as appropriate
  • Update the PMIx version number of the release branch in VERSION to <NEXT_VERSION> and set greek to a1
  • Open a duplicate of this issue for the next release in this series.
@rhc54 rhc54 added this to the v4.2.4 milestone Feb 17, 2023
@kloczek
Copy link

kloczek commented Apr 26, 2023

Just checked 4.2.3 + v4.2 commits and looks like autoreconf fails

+ autoreconf -fiv
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I ./config
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, './config'.
libtoolize: copying file './config/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, './config'.
libtoolize: copying file './config/libtool.m4'
libtoolize: copying file './config/ltoptions.m4'
libtoolize: copying file './config/ltsugar.m4'
libtoolize: copying file './config/ltversion.m4'
libtoolize: copying file './config/lt~obsolete.m4'
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: aclocal --force -I ./config
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:113: installing './config/compile'
configure.ac:101: installing './config/missing'
docs/Makefile.am:93: error: PMIX_BUILD_DOCS does not appear in AM_CONDITIONAL
docs/Makefile.am:144: error: PMIX_INSTALL_DOCS does not appear in AM_CONDITIONAL
examples/Makefile.am: installing './config/depcomp'
autoreconf: error: automake failed with exit status: 1

And ..

[tkloczko@pers-jacek pmix-4.2.3]$ grep -r PMIX_BUILD_DOCS
configure:PMIX_BUILD_DOCS_FALSE
configure:PMIX_BUILD_DOCS_TRUE
configure:  PMIX_BUILD_DOCS_TRUE=
configure:  PMIX_BUILD_DOCS_FALSE='#'
configure:  PMIX_BUILD_DOCS_TRUE='#'
configure:  PMIX_BUILD_DOCS_FALSE=
configure:if test -z "${PMIX_BUILD_DOCS_TRUE}" && test -z "${PMIX_BUILD_DOCS_FALSE}"; then
configure:  as_fn_error $? "conditional \"PMIX_BUILD_DOCS\" was never defined.
docs/Makefile.in:# PMIX_BUILD_DOCS conditional because "make dist" will fail due to
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@am__append_1 = \
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@        $(OUTDIR)/html \
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@        $(OUTDIR)/man
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@V = 0
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@PMIX_V_SPHINX_HTML = $(pmix__v_SPHINX_HTML_$V)
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@pmix__v_SPHINX_HTML_ = $(pmix__v_SPHINX_HTML_$AM_DEFAULT_VERBOSITY)
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@pmix__v_SPHINX_HTML_0 = @echo "  GENERATE HTML docs";
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@PMIX_V_SPHINX_MAN = $(pmix__v_SPHINX_MAN_$V)
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@pmix__v_SPHINX_MAN_ = $(pmix__v_SPHINX_MAN_$AM_DEFAULT_VERBOSITY)
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@pmix__v_SPHINX_MAN_0 = @echo "  GENERATE man pages";
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@ALL_MAN_BUILT = \
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@        $(PMIX_MAN1_BUILT) $(PMIX_MAN3_BUILD) $(PMIX_MAN5_BUILT)
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@BUILT_SOURCES = $(ALL_MAN_BUILT)
docs/Makefile.in:@PMIX_BUILD_DOCS_FALSE@maintainer-clean-local:
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@$(ALL_MAN_BUILT): $(RST_SOURCE_FILES) $(IMAGE_SOURCE_FILES)
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@$(ALL_MAN_BUILT): $(TEXT_SOURCE_FILES) $(SPHINX_CONFIG)
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@$(ALL_MAN_BUILT):
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@ $(PMIX_V_SPHINX_HTML) $(SPHINX_BUILD) -M html "$(srcdir)" "$(OUTDIR)" $(SPHINX_OPTS)
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@ $(PMIX_V_SPHINX_MAN) $(SPHINX_BUILD) -M man "$(srcdir)" "$(OUTDIR)" $(SPHINX_OPTS)
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@linkcheck:
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@ $(SPHINX_BUILD) -M linkcheck "$(srcdir)" "$(OUTDIR)" $(SPHINX_OPTS)
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@.PHONY: linkcheck
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@maintainer-clean-local:
docs/Makefile.in:@PMIX_BUILD_DOCS_TRUE@ $(SPHINX_BUILD) -M clean "$(srcdir)" "$(OUTDIR)" $(SPHINX_OPTS)
docs/Makefile.am:if PMIX_BUILD_DOCS
docs/Makefile.am:# PMIX_BUILD_DOCS conditional because "make dist" will fail due to
docs/Makefile.am:endif PMIX_BUILD_DOCS

BTW all Makefiles.in. condfigre and aclocal.m4 files should be removed from git repo.
Those files should be generated by autoreconf.

@rhc54
Copy link
Contributor Author

rhc54 commented Apr 26, 2023

BTW all Makefiles.in. condfigre and aclocal.m4 files should be removed from git repo.

Not sure what you mean - those files do not exist in the git repo. They are, however, present in the tarball we provide, which is correct.

autoreconf -fiv

As noted on another issue ticket, this command is incomplete. You have to add -I config/oac to the cmd line.

@kloczek
Copy link

kloczek commented Apr 26, 2023

Not sure what you mean - those files do not exist in the git repo. They are, however, present in the tarball we provide, which is correct.

My mistake ..
I was almost sure that I'm using as input source tar ball autogenerated from git tag 😋

As noted on another issue ticket, this command is incomplete. You have to add -I config/oac to the cmd line.

That path can be specifies in configure.ac by use AC_CONFIG_MACRO_DIRS([config/oac]).
In other words with such adjustment whole autogen.pl can be replaced by single command autoreconf -fiv.

@rhc54
Copy link
Contributor Author

rhc54 commented Apr 26, 2023

That path can be specifies in configure.ac by use AC_CONFIG_MACRO_DIRS([config/oac]).
In other words with such adjustment whole autogen.pl can be replaced by single command autoreconf -fiv.

Well, that won't actually replace autogen.pl as that code does more than what autoreconf can do. However, it is a fair point and worth making the change. Thanks!

@boegel
Copy link

boegel commented May 24, 2023

Is there any ETA for the final v4.2.4 release?

@rhc54
Copy link
Contributor Author

rhc54 commented May 24, 2023

Not a firm one, no - but soon. I've been consumed by moving to another location over here, but that is nearly at a stage that should allow me to focus on this again.

@rhc54
Copy link
Contributor Author

rhc54 commented Aug 7, 2023

v4.2.4 has flown - v4.2.5 is about to join it.

@rhc54 rhc54 closed this as completed Aug 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants