GenericMappingTools / gmt

The Generic Mapping Tools
https://www.generic-mapping-tools.org
Other
858 stars 359 forks source link

Release GMT 6.2.0rc2 #5191

Closed maxrjones closed 3 years ago

maxrjones commented 3 years ago

Version: 6.2.0rc2

Scheduled date: May 24, 2021

Before release:

Release:

After release:

3rd-party update

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


maxrjones commented 3 years ago

Are there any outstanding issues that need to be addressed before rc2, @PaulWessel?

joa-quim commented 3 years ago

Why will there be an RC2? We are not even respecting RC1.

maxrjones commented 3 years ago

Why will there be an RC2? We are not even respecting RC1.

What do you mean we are not respecting RC1?

joa-quim commented 3 years ago

An RC is a release candidate. And it means that if no new bugs are found that RC is promoted to the final release. It means also that a feature freeze was in action and any new changes would have gone to the master branch but not included in the next release. We have not done that.

maxrjones commented 3 years ago

I do not recall any new features being added to the master branch since 6.2.0rc1. Which merged PRs do you consider to be new features? There were bug fixes since RC1 (e.g., https://github.com/GenericMappingTools/gmt/pull/5170, https://github.com/GenericMappingTools/gmt/pull/5178, and https://github.com/GenericMappingTools/gmt/pull/5181), which were the motivation for an RC2.

joa-quim commented 3 years ago

5124 for example touched quite a bit of code.

PaulWessel commented 3 years ago

Yes, it did, but it was in the interest of fixing a bug (the assumption that all angles are always longitudes). There was no way of fixing that without adding the new modifier so the user can specify what they plot. I think we only did bug-fixes even if some requires what is sort-of a new feature.

PaulWessel commented 3 years ago

I guess I do not know how to trigger the full tests in the CI. @meghanrjones or @seisman, did these run overnight so we can check the test-boxes, or do we need to set them up for a run first.?

maxrjones commented 3 years ago

They are triggered on any PRs that change src/**, test/**, share/**, doc/examples/**, doc/scripts/**, .github/workflows/**, or ci/**. The tests passed on the last PR that triggered the workflow (https://github.com/GenericMappingTools/gmt/pull/5193), so I will check the box.

PaulWessel commented 3 years ago

Hi @joa-quim, I successfully built gmtmex and MB system. Let me know if you have any concerns for those two, then please build GMT.jl and check that box for us.

joa-quim commented 3 years ago

All clear, but I've not tried MB. Too risky.

seisman commented 3 years ago

Looks good for PyGMT.

seisman commented 3 years ago

Any schedule for the rc2 release?

PaulWessel commented 3 years ago

With Meghan off on vacation this week and me dealing with e-graduation this Saturday I think we just have to do it early next week.

maxrjones commented 3 years ago

What is the status of the grdinterpolate bug with GMT.jl? It was not clear to me whether the recent PRs fixed the issues with grdinterpolate and whether there are further changes needed before rc2.

PaulWessel commented 3 years ago

It is tricky but I will need to reproduce the problem and it seems I cannot do so on macOS.

PaulWessel commented 3 years ago

Hi @joa-quim please check the GMT.jl box above if passes your tests.

PaulWessel commented 3 years ago

Pinging @joa-quim again on this - other than the grdinterpolate KEY change there are no memory layout changes or other KEY changes in 6.20rc2 so not sure what issues you are having and why they should hold up a release? Can you explain what the problems are in GMT.jl?

joa-quim commented 3 years ago

Issue solved. It was a trick regression that failed in my computer but passed in the CI tests.

PaulWessel commented 3 years ago

Great. Are you really gonna make me check that box or will you?

maxrjones commented 3 years ago

macOS tarballs and bundle are at ftp.soest.hawaii.edu://gmtrelease for testing:

f2bc929e4c427d8fd1cda4cf72746ec6457c8340167995453ffc0504fa989096  gmt-6.2.0rc2-darwin-x86_64.dmg
4ddb92b9a8e148444de7b4213bd42411d047f7ed5b1a96a05a4fd7f76880ba89  gmt-6.2.0rc2-src.tar.gz
4cf1798998205667004f7b70913da4b489f9a94c686c3fe021f79372451d4db5  gmt-6.2.0rc2-src.tar.xz
PaulWessel commented 3 years ago

Hi @joa-quim hoping you can build the win installer.

joa-quim commented 3 years ago

http://fct-gmt.ualg.pt/tmp/gmt-6.2.0rc2-win64.exe

PaulWessel commented 3 years ago

I have placed the win installer in the gmtrelease ftp with the other items. It would be great if @GenericMappingTools/core and @GenericMappingTools/gmt-contributors could give the RC2 installers a test. If all works OK then we have our 6.2.0 release soon.

maxrjones commented 3 years ago

@joa-quim, can you please post the sha256sum for the win64 installer?

joa-quim commented 3 years ago

SHA1 hash of .\gmt-6.2.0rc2-win64.exe: c9be92c397c41fb998eb904e61b6f502e5543d33

maxrjones commented 3 years ago

A quick test of each worked for me.

PaulWessel commented 3 years ago

I am wondering if we should add a 2nd bundle for those who have M1 macs to avoid the slowing down of conversion from arm to intel architecture. It is too hard yet to produce the universal binaries that have both architectures in them. I guess it is sort of win32 and win64 except the translation is more serious.

PaulWessel commented 3 years ago

I tested the bundle on my M1 mac and it worked fine of course.

seisman commented 3 years ago

I am wondering if we should add a 2nd bundle for those who have M1 macs to avoid the slowing down of conversion from arm to intel architecture

Sounds good to me.

PaulWessel commented 3 years ago

Then when I start trying I learn cannot install gcc9 form brew for M1 yet, so cannot build an Open-MP aware release. I could probably build one with Xcode and then without openMP. I will play with this to see if it is worth it.

PaulWessel commented 3 years ago

I am making edits to admin/build-release.sh so it could run for homebrew with xcode. One issue relates to proj7. On macports I need to add /opt/local/lib/proj7/share/proj. On homebrew I only find this in /opt/homebrew/Cellar/proj/7.2.1/share/proj. Is that the actual install place for proj7? Seems very version specific to me and in the "Cellar"? Am I missing a proj7 lib install command or something, @seisman ?

seisman commented 3 years ago

The version-independent share directory is /usr/local/share/proj for me. You should also be able to find it in /opt/homebrew/share/proj for your M1 Mac.

PaulWessel commented 3 years ago

Thanks, /opt/homebrew/share/proj worked.

PaulWessel commented 3 years ago

I am changing build-release.sh to use clang instead of gcc. This allows OpenMP builds on M1 architecture. I have build and uploaded an arm64 bundle under MacPorts. SHA256 codes:

f39faca480832602e85fb06c6f43c1a29ef68dc39015b790c88646229c88c26a gmt-6.2.0rc2-darwin-arm64.dmg

joa-quim commented 3 years ago

Does the M1 bundle build work with Julia? (the Intel doesn't because of the dependencies name screwing mess). Setting the right GMT_LIBRARY env variable should be enough to test it.

PaulWessel commented 3 years ago

Slow this morning. Just installing julia on the laptop now and will see.

PaulWessel commented 3 years ago

Life is an eternal struggle. I am not sure why this is happening, but there are those warnings that macports is confused about (version of framework). So I failed to build bundle on M1 because testing the compiler fails with this message:

    Run Build Command(s):/opt/local/bin/ninja cmTC_6720f && [1/2] Building C object CMakeFiles/cmTC_6720f.dir/testCCompiler.c.o
    FAILED: CMakeFiles/cmTC_6720f.dir/testCCompiler.c.o 
    /opt/local/bin/clang-mp-11   -flax-vector-conversions  -arch arm64 -o CMakeFiles/cmTC_6720f.dir/testCCompiler.c.o -c testCCompiler.c
    xcrun: error: unable execute utility "/opt/local/libexec/llvm-11/bin/clang" because it requires a newer version of macOS.
    ninja: build stopped: subcommand failed.

Of course, there is no newer version of macOS. This has to do with MacPorts yelling stupidity like this:

ld: warning: dylib (/opt/homebrew/lib/libfftw3f.dylib) was built for newer macOS version (11.3) than being linked (11.0)

It seems to b a macports limitation - I will dig around but that is what @meghanrjones is getting to I think. I may need to try clang-10 etc.

maxrjones commented 3 years ago

Yes, it is annoying.

PaulWessel commented 3 years ago

So Xcode 12.5 is out but did not show up as an update for me until I logged into Apple Developer and selected it to see it in teh App Store. After a long download I now have 12.5 which finally comes with MacOSX11.3.sdk. Doing the same on the other Macs here (it is a big download) and hope this will fix all the macports issues. @meghanrjones probably will want to do the same.

PaulWessel commented 3 years ago

Finally got Xcode 12.5 installed, updated MacPorts to 2.7, and more importantly added

set (CMAKE_OSX_DEPLOYMENT_TARGET "11.3")

to the cmake/ConfigUserAdvanced.cmake file. No more complaints about version linking mismatch. However, I would like to know why and what is setting 11.0 as the target under the hood somewhere (cmake?).

Now onwards to see if this works with Julia.

joa-quim commented 3 years ago

When I asked that I forgot about one detail. Julia itself is not distributed with an ARM build. Did you build it with Homebrew? Or running the Intel binary?

PaulWessel commented 3 years ago

Just learned right now that macports fails to install Julia on arm64. It is because gcc is not yet available and it apparently is built with gcc. So not sure if we will learn much, or if it would even work, having an intel julia run via rosetta1 try to call native arm64 GMT libraries...

joa-quim commented 3 years ago

I guess we'll have to wait. The curiosity was to see if the ARM bundle works where the Intel one fails.

PaulWessel commented 3 years ago

Yes, and Matlab 2021a is still Intel only so no point testing mex yet either.

maxrjones commented 3 years ago

CMAKE_OSX_DEPLOYMENT_TARGET - Specify the minimum version of the target platform (e.g. macOS or iOS) on which the target binaries are to be deployed

Would this impact the use of the binaries on older macOS's?

PaulWessel commented 3 years ago

Good question - and I have no older macos to test on.

maxrjones commented 3 years ago

Good question - and I have no older macos to test on.

Me neither. Unless @seisman knows off hand whether this setting impacts use on older macos, I could place a bundle built with set (CMAKE_OSX_DEPLOYMENT_TARGET "11.3") on the ftp site for the gmt-release-testbot to check with 10.15.

seisman commented 3 years ago

Good question - and I have no older macos to test on.

Me neither. Unless @seisman knows off hand whether this setting impacts use on older macos, I could place a bundle built with set (CMAKE_OSX_DEPLOYMENT_TARGET "11.3") on the ftp site for the gmt-release-testbot to check with 10.15.

I have no idea.

PaulWessel commented 3 years ago

Bundle ships all libs except more permanent system libraries whose function names do not change. I think it will be OK but your test sounds good.