Skip to content

Release GMT 6.4.0 #6772

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

Closed
51 tasks done
maxrjones opened this issue Jun 7, 2022 · 54 comments
Closed
51 tasks done

Release GMT 6.4.0 #6772

maxrjones opened this issue Jun 7, 2022 · 54 comments

Comments

@maxrjones
Copy link
Member

maxrjones commented Jun 7, 2022

Version: 6.4.0

Scheduled date: June 17, 2022

Remaining issues (add any blocking issues/PRs here):

Before release:

  • check if all tests pass on macOS, Linux and Windows
  • check if other GMT-derived projects work well
  • reserve a DOI on zenodo (@PaulWessel)
  • run src/gmt_make_*.sh to update some .c and .h files
  • run admin/gs_check.sh to test if latest ghostscript version works
  • update changelog
  • update the version information in CITATION.cff
  • check installation instructions in INSTALL.md
  • check if there are any warnings when building the documentation
  • add one new entry in doc/rst/_static/version_switch.js if it's a minor release
  • check/set values in cmake/ConfigDefault.cmake
    • GMT_VERSION_YEAR is current year
    • GMT_PACKAGE_VERSION_* is correctly set
    • GMT_LIB_SOVERSION is correctly set
    • set GMT_PUBLIC_RELEASE to TRUE
    • update GMT_VERSION_DOI
  • freeze codes and commit all changes to GitHub

Release:

  • create source tarballs (tar.gz and tar.xz) (@PaulWessel)
  • create macOS bundle (@PaulWessel)
  • create Windows installers (win32 and win64) (@joa-quim)
  • check if the source tarballs, macOS bundle and Windows installers work well
  • upload source tarballs, macOS bundle, Windows installers to the GMT FTP (@PaulWessel)
  • update README and VERSION files on the GMT FTP (@PaulWessel)
  • make a tag and push it to github (Must be done after uploading packages to the GMT FTP)
    # checkout master (for minor releases) or 6.x branch (for patch releases)
    git checkout XXXX
    # create the tag x.x.x
    git tag x.x.x
    # Push tags to GitHub
    git push --tags
  • make a GitHub release.
    The GitHub Actions automatically create a draft release after pushing the tag to github.
    We need to go to the GitHub Release page, and review it manually.
    • 7 files are attached as release assets (2 source tarballs, 4 installers and 1 checksum file).
    • download the checksum file and check if the checksums are correct
    • edit the draft release, set the target to the correct tag, and publish the release
  • upload the tarball to zenodo (@PaulWessel)
  • make announcements in the GMT forum
  • make announcements on the GMT twitter (https://twitter.com/gmt_dev/status/1538331453716672513)
  • update links on the main site (News, Download & Documentation)
  • update install instructions on the wiki if needed

After release:

  • create branch 6.x for bug-fixes if this is a minor release (i.e. create branch 6.1 after 6.1.0 is released)
    git checkout master
    git checkout -b 6.1
    git push --set-upstream origin 6.1
    
  • update GMT_PACKAGE_VERSION_* in cmake/ConfigDefault.cmake
  • comment the set (GMT_PUBLIC_RELEASE TRUE) line
  • commit changes to GitHub

3rd-party update

Volunteers needed! Please let us know if you volunteer to help to maintain GMT in these 3rd-party tools.


  • Party 🎉 (don't tick before all other checkboxes are ticked!)
@maxrjones
Copy link
Member Author

What GS version will go into the release? 9.56 is out and causing a few tiny changes/annoying failures (#6598), but isn't updated on macports or ubuntu packages yet.

@PaulWessel
Copy link
Member

I think we are stuck with 9.55.0 until macports changes.

@PaulWessel
Copy link
Member

Do we need to change the SO_VERSION to 7 given that we added this to the API:

EXTERN_MSC int GMT_FFT_Reset (void *API, void *data, unsigned int dim, unsigned int mode);

The CMakefile says

# Increment this when more or fewer functions are included in the
# library, the function prototype changes, or data type changes.
set (GMT_LIB_SOVERSION 6)

@seisman
Copy link
Member

seisman commented Jun 8, 2022

Do we need to change the SO_VERSION to 7 given that we added this to the API:

EXTERN_MSC int GMT_FFT_Reset (void *API, void *data, unsigned int dim, unsigned int mode);

The CMakefile says

# Increment this when more or fewer functions are included in the
# library, the function prototype changes, or data type changes.
set (GMT_LIB_SOVERSION 6)

I don't think we need to bump the SO_VERSION to 7. Adding new API functions doesn't break any external programs that are linked to GMT.

@PaulWessel
Copy link
Member

Building docs I got these warnings. ANyone able to help/address?

source/events.rst:425: WARNING: duplicate label trajectories, other instance in /Users/pwessel/UH/RESEARCH/CVSPROJECTS/GMTdev/gmt-dev/rbuild/doc/rst/source/events.rst
/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/sphinx/builders/html/__init__.py:619: FutureWarning: The configuration setting "embed_images" will be removed in Docutils 1.2. Use "image_loading: link".

@seisman seisman added this to the 6.4.0 milestone Jun 8, 2022
@PaulWessel
Copy link
Member

Thanks for the events help. I guess we need to live with this one for now?

/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/sphinx/builders/html/__init__.py:619: FutureWarning: The configuration setting "embed_images" will be removed in Docutils 1.2. Use "image_loading: link".
  self.docwriter.write(doctree, destination)

@seisman
Copy link
Member

seisman commented Jun 8, 2022

Thanks for the events help. I guess we need to live with this one for now?

/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/sphinx/builders/html/__init__.py:619: FutureWarning: The configuration setting "embed_images" will be removed in Docutils 1.2. Use "image_loading: link".
  self.docwriter.write(doctree, destination)

Yes, you may be using an old version of Sphinx.

@joa-quim
Copy link
Member

joa-quim commented Jun 8, 2022

Needless changing the SO version number is the main source of compatibility hell on unix.
I can't currently build GMT.jl docs because of that.

Reason: Incompatible library version: libgdal.31.dylib requires version 13.0.0 or later, but libcurl.4.dylib provides version 12.0.0

@seisman seisman pinned this issue Jun 9, 2022
@PaulWessel
Copy link
Member

@joa-quim , please test and if GMT.jl works with this candidate then check off above. If it is easy for you to run a basic check on gmt.mex as well then that would be great.

@PaulWessel
Copy link
Member

Hi @meghanrjones and @seisman - the tests run fine for me locally in macos but I think one of you typically turns on full checks in the CI before we check off on the test box?

@joa-quim
Copy link
Member

I think all fine in MEX. Run a couple of Mirone/GMT MEX commands and no problems.
GMT.jl is tested continuously.

@seisman
Copy link
Member

seisman commented Jun 10, 2022

Hi @meghanrjones and @seisman - the tests run fine for me locally in macos but I think one of you typically turns on full checks in the CI before we check off on the test box?

The latest full tests (https://github.com/GenericMappingTools/gmt/actions/runs/2474641289) pass on Linux and Windows. There are four failures on macOS are due to changes in ghostscript 9.56.1 and are tracked in #6598 (comment).

@maxrjones
Copy link
Member Author

Could we use brew install [email protected] to get the CI on the same version for all OS?

@seisman
Copy link
Member

seisman commented Jun 10, 2022

Could we use brew install [email protected] to get the CI on the same version for all OS?

I don't think brew can install a specific version using this syntax, and there is no simple way to do it (https://blog.sandipb.net/2021/09/02/installing-a-specific-version-of-a-homebrew-formula/)

@claudiodsf
Copy link
Contributor

I don't think brew can install a specific version using this syntax, and there is no simple way to do it (https://blog.sandipb.net/2021/09/02/installing-a-specific-version-of-a-homebrew-formula/)

Maybe someone can create a brew tap for Ghostscript versions, like this one https://github.com/chhei/homebrew-ghostscript ?

@PaulWessel
Copy link
Member

Given this, I have checked the "pass test" box for now.

@PaulWessel
Copy link
Member

Please check if PyGMT is OK with this version.

@maxrjones
Copy link
Member Author

Please check if PyGMT is OK with this version.

Working on it now

@maxrjones
Copy link
Member Author

The only PyGMT failures were known (GenericMappingTools/pygmt#1929), so I checked the box.

@anbj
Copy link
Contributor

anbj commented Jun 11, 2022

Would it be an idea to add ‘update gmt page on wikipedia’ (https://en.m.wikipedia.org/wiki/Generic_Mapping_Tools) to the check list? Not that wikipedia is crucial, but it often is what people first meet when trying to find out more about something, e.g. gmt.

@maxrjones
Copy link
Member Author

Would it be an idea to add ‘update gmt page on wikipedia’ (https://en.m.wikipedia.org/wiki/Generic_Mapping_Tools) to the check list? Not that wikipedia is crucial, but it often is what people first meet when trying to find out more about something, e.g. gmt.

Yes, I think that could go under the "volunteer's needed" section if you want to submit a PR with an edit to https://github.com/GenericMappingTools/gmt/blob/master/.github/ISSUE_TEMPLATE/release_checklist.md. For this release, you should have permissions to manually edit the checklist.

@PaulWessel
Copy link
Member

Tried to build tarballs and bundle but macos certification failed, probably because certificates have expired. Awaiting feedback from UH IT.

@PaulWessel
Copy link
Member

I have made the tar balls:

d267c0c7d6fb30c9ea7e029ef27dadb26ffd7b92cb4b4703f9a3ba0e8f393a1b  gmt-6.4.0-src.tar.gz
b46effe59cf96f50c6ef6b031863310d819e63b2ed1aa873f94d70c619490672  gmt-6.4.0-src.tar.xz

both are at ftp.soest.hawaii.edu/pwessel/release

I will make the bundles tomorrow as my wifi and cellular at the apartment messes with the certification (I have updated the certificates but Xcode needs to check a time-server which fails at home). But @joa-quim should be able to build from tarball.

@joa-quim
Copy link
Member

@seisman
Copy link
Member

seisman commented Jun 17, 2022

@joa-quim There are two copies of README and LICENSE in the share/dcw directory.

image

@PaulWessel
Copy link
Member

I have finally been able to build the macos bundles for arm and x86_64, both now on the ftp.soest.hawaii.edu/pwessel/release place:

38637c92f1f062a66d0df99e8e14451fc869ae5b6cece840ddb56c7f62684455  gmt-6.4.0-darwin-arm64.dmg
7c2eab1a180a494e6fb2f816785edc9285a84ab50461c9a449cacc4a91a8b8e1  gmt-6.4.0-darwin-x86_64.dmg

@PaulWessel
Copy link
Member

Great, thanks!

@seisman
Copy link
Member

seisman commented Jun 17, 2022

.dvcignore should NOT be included in the release tarballs. It's a minor issue so it can be fixed after the release.

@PaulWessel
Copy link
Member

Trying the x86 bundle built in Hawaii on my iMap Pro here:

gmt coast -RFR -Gred -B -pdf t
coast [NOTICE]: Downloading dcw-countries.txt for the first time - be patient
coast [NOTICE]: Downloading dcw-states.txt for the first time - be patient
coast [NOTICE]: Downloading dcw-collections.txt for the first time - be patient
coast [NOTICE]: Downloading dcw-gmt.nc for the first time - be patient

Plot works. GSHHS is included but there are no DCW files in the bundle... Did we change anything?

@seisman
Copy link
Member

seisman commented Jun 17, 2022

GSHHS is included but there are no DCW files in the bundle... Did we change anything?

I can see the DCW files in the ARM bundle. Weird.

@seisman seisman closed this as completed Jun 17, 2022
@seisman seisman reopened this Jun 17, 2022
@PaulWessel
Copy link
Member

Checking the Hawaii Intel mac. I do have these set in the environment

GMT_GSHHG_SOURCE=/Users/pwessel/GMTdev/gshhg-gmt-2.3.7
GMT_DCW_SOURCE=/Users/pwessel/GMTdev/dcw-gmt-2.1.1

and both directories exist and have the files. Sam as on the M1 mac.

@PaulWessel
Copy link
Member

Cmake says

*  Found GSHHG database       : /Users/pwessel/GMTdev/gshhg-gmt-2.3.7 (2.3.7)
*  Found DCW-GMT database     : /Users/pwessel/GMTdev/dcw-gmt-2.1.1 (2.1.1)

@PaulWessel
Copy link
Member

Building log says:

-- Installing: /Users/pwessel/GMTdev/gmt-dev/build/gmt-6.4.0/share/coast/binned_river_i.nc
-- Installing: /Users/pwessel/GMTdev/gmt-dev/build/gmt-6.4.0/share/coast/binned_border_i.nc
-- Installing: /Users/pwessel/GMTdev/gmt-dev/build/gmt-6.4.0/share/coast/binned_GSHHS_c.nc
-- Installing: /Users/pwessel/GMTdev/gmt-dev/build/gmt-6.4.0/share/coast/COPYINGv3
-- Installing: /Users/pwessel/GMTdev/gmt-dev/build/gmt-6.4.0/share/dcw
-- Installing: /Users/pwessel/GMTdev/gmt-dev/build/gmt-6.4.0/share/dcw/LICENSE
-- Installing: /Users/pwessel/GMTdev/gmt-dev/build/gmt-6.4.0/share/dcw/ChangeLog
-- Installing: /Users/pwessel/GMTdev/gmt-dev/build/gmt-6.4.0/share/dcw/dcw-countries.txt

But then

CPack Error: Error executing: /usr/bin/codesign --deep -f --options runtime -s "Developer ID Application: University of Hawaii (B8Y298FMLQ)" "/Users/pwessel/GMTdev/gmt-dev/build/_CPack_Packages/Darwin/Bundle/gmt-6.4.0-darwin-x86_64/GMT-6.4.0.app"

so probably got an incomplete bundle. The one built on the iMac Pro (also Intel) comleted and has the files so I will update the file in release shortly.

@PaulWessel
Copy link
Member

Updated:

e1b4f8e5d5bfaa40a8e8d8dcb3ef752c172b5c3195ec4bd8f1c3a2bdcdd22687 gmt-6.4.0-darwin-x86_64.dmg

This one has GSHHG and DCW. It is interesting that the ARM file is 179Mb and the Intel is 159Mb though.

@PaulWessel
Copy link
Member

@joa-quim There are two copies of README and LICENSE in the share/dcw directory.

image

This is probably because the DCW repo has files without extensions, which Windows abhors. Leave for now, but perhaps the DCW repo should just rename those two files to end in .TXT?

@PaulWessel
Copy link
Member

Hi @anbj and @Esteban82, might you be able to test the 6.4 tarball to make sure you can build from it? E.g.

ftp.soest.hawaii.edu/pwessel/release/gmt-6.4.0-src.tar.gz

@anbj
Copy link
Contributor

anbj commented Jun 17, 2022

Built and works as expected.

@PaulWessel
Copy link
Member

I suggest we break the task that says check if the source tarballs, macOS bundle and Windows installers work well since most of us cannot check all three and we are reluctant to check to box based on testing just one. While there is no binding agreements here, perhaps we could split into three and add suggsted names like for other tasks? E.g.

  • Tarball (for Linux), i.e. @anbj @Esteban82 any others?
  • Bundle (for macos), i.e., @seisman @meghanrjones any others we can use instead since they are many tasks?
  • Installer (for Windows), i.e., @seisman, anyone else other than @joa-quim ?

I am often testing the bundle myself but I think it is best if people other than the maker of the item do the testing.

@anbj
Copy link
Contributor

anbj commented Jun 17, 2022

The tarball for Linux - this is basically just checking out a given commit (which is to be released), right? Or is it more to it? (No problem testing the tarball, just curious).

@joa-quim
Copy link
Member

The extra DCW are probably due to me having unzipped the file into a my share folder some older ones that got renamed meanwhile stayed there too.

@joa-quim
Copy link
Member

The tarball for Linux - this is basically just checking out a given commit (which is to be released), right? Or is it more to it? (No problem testing the tarball, just curious).

Yes, I think so. For several releases now I build the installers from master while it has that commit active.

@PaulWessel
Copy link
Member

Well, I think the test is to actually take the tarball since if we have screwed up then master will not be the same as a crippled tarball, so best to actually download the tarball and build from it to detect any problems,

@maxrjones
Copy link
Member Author

I suggest we break the task that says check if the source tarballs, macOS bundle and Windows installers work well since most of us cannot check all three and we are reluctant to check to box based on testing just one. While there is no binding agreements here, perhaps we could split into three and add suggsted names like for other tasks?

I think it's best to use https://github.com/GenericMappingTools/gmt-release-testbot if possible. Testing in the CI is less likely to be impacted by local configuration nuances.

@PaulWessel
Copy link
Member

Agreed, even better. So we need a CI script we can trigger to install the bundle and then run said test script?

@maxrjones
Copy link
Member Author

https://github.com/GenericMappingTools/gmt-release-testbot/pull/33/files is an example of how to test the pre-released files. I can set this up manually this evening.

@PaulWessel
Copy link
Member

@joa-quim, might there be a time when we can drop the 32 vs 64 and just release the 64-bit installer? Are there 32-bit Windows computers in the wild still? Asking for a friend.

@PaulWessel
Copy link
Member

Might we check the box on testing and move into releasing today? I know the macos bundle runs (perhaps requires latest OS) and linux can build from the tarball. have anyone tried the windows installers ? I used to at least run the installer and try a coast command but my Win laptop is in Hawaii.

@joa-quim
Copy link
Member

I tested the installers to see if they run.
Yes, every release I ask if it worths do the 32 bits version. Probably not, but I also need the 32 bits infrastructure working because I need it in Mirone.

@PaulWessel
Copy link
Member

OK, I have checked the box and will place 6.4 on the GMT ftp server etc.

@PaulWessel
Copy link
Member

Hopefully @meghanrjones or @leouieda can do the Twitter item and @Esteban82 the Instagram posting now.

@Esteban82
Copy link
Member

I just post it on Instagram.
I ought there was a "make announcements on the GMT instagram" on the check list.

@remkos
Copy link
Contributor

remkos commented Jun 20, 2022

Submitted PR for macports update of gmt6 port: macports/macports-ports#15164

@seisman seisman unpinned this issue Jul 1, 2022
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

No branches or pull requests

8 participants