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

BOUT++ v5.0.0 release candidate #2604

Merged
merged 3,842 commits into from
Feb 8, 2023
Merged

BOUT++ v5.0.0 release candidate #2604

merged 3,842 commits into from
Feb 8, 2023

Conversation

ZedThree
Copy link
Member

@ZedThree ZedThree commented Nov 2, 2022

A truly monumental PR -- BOUT++ v5 is almost here!

See changelog for list of changes. Still lots of maintainer things to do:

  • Check there are no open issues/PRs for this milestone
    • Fix or bump to next version
  • Make a branch named vX.Y.Z-rc
    • The GitHub repo is setup to protect branches named in this style
    • Major and minor release points (X/Y) should be off
      next. Bugfix releases (Z) should be off master
  • Make pull request into master
    • Any new bugfixes should be PRs into the RC branch, where
      "bugfixes" can include:
      • silencing warnings
      • improving documentation
      • adding tests
  • Run make check-all
    • Raise issues for any tests that fail
  • Possibly run clang-tidy, clang-check, coverity, etc.
  • Review pinned pip package versions for Travis

Before merging PR:

  • Update locale translation files
    • make -C locale update-all
    • Be aware that this will update the timestamps and possibly
      reorder file paths in the .po and .pot files
  • Update [CHANGELOG.md][changelog]:
    • Install github_changelog_generator
      • Make sure it is at least v1.15!
    • Run like make changelog LAST_VERSION=vA.B.C RELEASE_BRANCH=master|next
      • See the docs for how to get the token
      • RELEASE_BRANCH might need to be the RC branch to get
        bugfix PRs
    • Check [CHANGELOG.md][changelog]!
      • Remove duplicate header/footer
      • Replace extraneous escaping: \(\)
  • Get list of authors:
    • git log --format='%aN' | sort | uniq
    • Compare to list in CITATION.cff, add new authors
  • Prep a new Zenodo release:
  • Change DOI in CITATION.cff to new DOI
  • Change DOI in [README.md][README.md] to new DOI
  • Change date-released in CITATION.cff
  • Check abidiff to see if soname needs bumping in makefile:
  • Change version number, removing prerelease tag in:

After PR is merged:

  • Make tarball: ./configure && make dist
  • Try to summarise the changes!
  • Make GitHub Release, include change summary NB: tag should have
    leading v
  • Upload tarball to GitHub Release
  • Upload tarball to Zenodo and publish new version
  • Email BOUT++ User Group mailing list, include change summary
  • Make news post on project website, include change summary
  • Update downloads page
  • PR master into next
  • Bump version number and add prerelease tag in:

ZedThree and others added 30 commits July 28, 2022 15:16
Fixes #2543

Was deprecated in #448, and `Field3D.setBackground` was removed in #2291.
This removes the private member and all uses of it
* next: (1519 commits)
  Remove some useless forward declarations
  Revert "Remove some unused headers from vecops"
  Remove some unused headers from vecops
  Fix bad merge: missed removing extraneous `const` on return value
  Remove `Up/DownXSplitIndex`
  Remove last remaining uses of `deprecated.hxx`
  Apply clang-format
  Apply clang-format changes
  CI: Don't update submodules (already updated)
  CI: Workaround for git ownership checks in container
  CI: Bump actions/checkout version
  CI: Use latest version of cmake in clang-tidy-review
  Use MPI_COMM_NULL rather than nullptr
  Add 'u' format flag to BOUT.settings output
  Adds a 'u' format, commenting unused options
  Apply clang-format changes
  Apply clang-format changes
  Don't compile LaplaceXY2 with 3D metrics
  Apply clang-format changes
  Apply clang-format changes
  ...
- implicit narrowing conversion
- C-style array
- loop variable name too short
- multiple declarations on same line
- dead stores
Add PCR Thomas Laplacian inversion solver
Fully remove deprecated `Field3D.background`
Rather than checking if the count is odd, check if there are more
opening brackets than closing.
Several test require (optional) FFTW. Skip those if FFTW is not present.
Correct and add missing info to docs for x/y/z values in input file expressions
@ZedThree
Copy link
Member Author

ZedThree commented Feb 3, 2023

I think I need to turn off the clang-format/tidy workflows on protected branches

Fix use of removed `Datafile` in `Laplacian` constructor; update docs
@ZedThree
Copy link
Member Author

ZedThree commented Feb 3, 2023

Ok last few things to do:

  • Make sure version is correct everywhere
  • DOI
  • manually run clang-format

@ZedThree ZedThree closed this Feb 3, 2023
@ZedThree ZedThree reopened this Feb 3, 2023
@ZedThree
Copy link
Member Author

ZedThree commented Feb 3, 2023

Ok, all v5.0 PRs merged, housekeeping done -- after almost 5 years, v5 is ready to launch! Release is scheduled for Wednesday the 8th.

The CI is going to show this as failing because the clang-format and clang-tidy actions don't like this branch (protected, so can't push, and way too many files, respectively)

@bendudson
Copy link
Contributor

Thank you @ZedThree! And thanks to everyone who has volunteered their time and effort to work on this open source effort. There is still work to do, but I think we can all be proud of what we've created.

@ZedThree
Copy link
Member Author

ZedThree commented Feb 3, 2023

Broken :( Fix incoming though

@bendudson
Copy link
Contributor

:( Somewhat ironic. Seems to be something PETSc-related.

ZedThree and others added 5 commits February 3, 2023 18:00
One of the clang-format patches rearranged some headers... and it
turns out PETSc helpfully clobbers some MPI functions with its own
macros for reasons, and this interferes with our `MpiWrapper` class.

Some files had `#undef` some of these macros, but rearranging headers
left some exposed.

This instead defines a macro in the `PetscLib` header that should stop
PETSc defining the MPI macros in the first place. We just need to make
sure that all PETSc headers are `#include`d _after_ our `PetscLib`
Workaround PETSc clobbering MPI functions with its macros
Provide overloaded virtual function also in derived class
@ZedThree ZedThree merged commit d935fa1 into master Feb 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants