geotrellis / gdal-warp-bindings

Thread-safe bindings for GDAL's Warp functionality
Apache License 2.0
17 stars 6 forks source link

Release 1.2.0 with the initial ARM support #112

Closed pomadchin closed 2 years ago

pomadchin commented 2 years ago

I'm pretty interested in the fresh release (even as is) that includes this PR https://github.com/geotrellis/gdal-warp-bindings/pull/107. It's still not Mac M1 support which could be ideal, but better than nothing: simplifies (performance-wise) binaries usage in ARM docker.

jamesmcclain commented 2 years ago

Okay, I'll see if I can add this to next sprint :+1:

jamesmcclain commented 2 years ago

@pomadchin Can you get in touch with me via email or some other way and update me on what the procedure is for cutting releases is? I believe that some things have changed and I no longer know how to do it.

pomadchin commented 2 years ago

Yo @jamesmcclain i think it’s just pushing the non lightweight (tag with a message, git tag -a v1.2.0 -m "v1.2.0" ) version tag!

I don’t remember if you still need to publish artifact manually from the staging maven repository (https://oss.sonatype.org/#stagingRepositories) though

jamesmcclain commented 2 years ago

Okay, got it. Quesiton for you: why is the CI trying to publish artifacts from PR branches (running build-publish on PRs)? Shouldn't it only be doing that from master after a merge? I'm looking at this: https://github.com/geotrellis/gdal-warp-bindings/blob/master/.circleci/config.yml#L189

jamesmcclain commented 2 years ago

Ah, never mind -- it seems to do the right thing when I make a PR from my own fork of the project.

pomadchin commented 2 years ago

yea, there are these lines: https://github.com/geotrellis/gdal-warp-bindings/blob/master/.circleci/config.yml#L139-L146

It publishes packages from branches in case its not a fork as well. It creates artifacts versioned properly, i.e. 1.1.2-pull_114-SNAPSHOT and publishes to the sonatype snapshots repo

jamesmcclain commented 2 years ago

I just updated the changelog. Will wait for the CI to finish then push the tag

jamesmcclain commented 2 years ago

The publish target failed when I merged the PR branch. Is that expected?

pomadchin commented 2 years ago

check the GPG Key! Its expired?

Really it needs any valid GPG key, there is always an option to generate the new Azavea GPG key and sign artifacts with it.

jamesmcclain commented 2 years ago

Are you able to get on gitter real fast?

jamesmcclain commented 2 years ago

@pomadchin I will not be able to do the release today. I have a new key generated and working, but I am now encountering a different problem with gpg in CircleCI:

[DEBUG] Populating class realm plugin>org.apache.maven.plugins:maven-gpg-plugin:1.6
[DEBUG]   Included: org.apache.maven.plugins:maven-gpg-plugin:jar:1.6
[DEBUG]   Included: backport-util-concurrent:backport-util-concurrent:jar:3.1
[DEBUG]   Included: org.codehaus.plexus:plexus-interpolation:jar:1.11
[DEBUG]   Included: junit:junit:jar:3.8.1
[DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:3.0.20
[DEBUG]   Included: org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4
[DEBUG]   Included: org.sonatype.plexus:plexus-cipher:jar:1.4
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-gpg-plugin:1.6:sign from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-gpg-plugin:1.6, parent: sun.misc.Launcher$AppClassLoader@1b6d3586]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-gpg-plugin:1.6:sign' with basic configurator -->
[DEBUG]   (f) ascDirectory = /workdir/target/gpg
[DEBUG]   (f) defaultKeyring = true
[DEBUG]   (f) interactive = true
[DEBUG]   (f) passphraseServerId = gpg.passphrase
[DEBUG]   (f) project = MavenProject: com.azavea.geotrellis:gdal-warp-bindings:1.1.2-release-SNAPSHOT @ /tmp/pom8533530067155805602.jgitver-maven-plugin.xml
[DEBUG]   (f) settings = org.apache.maven.execution.SettingsAdapter@427308f8
[DEBUG]   (f) skip = false
[DEBUG]   (f) useAgent = true
[DEBUG] -- end configuration --
[DEBUG] Generating signature for /workdir/target/gdal-warp-bindings-1.1.2-release-SNAPSHOT.jar
gpg: signing failed: Required environment variable not set
gpg: signing failed: Required environment variable not set
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.346 s
[INFO] Finished at: 2022-08-01T18:33:30Z
[INFO] ------------------------------------------------------------------------

There is an error there about a required environment variable being set -- I can see people complaining about this happening in CircleCI, but I don't see a clear solution. I was getting an error previously about the tty not being set, I have already added export GPG_TTY=$(tty) to the recipe to (seemingly) address that problem.

Unless you know how to address this problem, we might end up having to wait until we have more time to iterate on this and/or switch the build to GitHub actions.

pomadchin commented 2 years ago

@jamesmcclain I'll take a look mb later today, just to double check, did you base64 encode the GPG key?

jamesmcclain commented 2 years ago

@pomadchin Yup, the key import (both from the keyserver and from the enviornment variable) is working. The problem that I cited seems to be coming from an invocation of gpg within mvn (that is just what it seems, not 100% sure).

pomadchin commented 2 years ago

@jamesmcclain do you have the GPG_PASSPHRASE set? Or this key is without a passphrase?

jamesmcclain commented 2 years ago

@pomadchin The passpharase is set and in the environment

pomadchin commented 2 years ago

@jamesmcclain if there is a passphrase, then maven requires extra configurations, check this out https://github.com/geotrellis/gdal-warp-bindings/pull/116#issuecomment-1202705325

jamesmcclain commented 2 years ago

@pomadchin Okay, the build is succeeding now with the new key, many thanks. I just pushed the 1.2.0 tag but the CI was not automatically triggered. I restarted the CI on the tip of master hoping that that will push the release but it did not.

Are the release instructions up to date in that regard? Is further configuration needed to get the CI to push the release?

pomadchin commented 2 years ago

Hey @jamesmcclain, the tag should start with v, git tag -a v1.2.0 -m "v1.2.0"

vs 1.2.0 right now https://github.com/geotrellis/gdal-warp-bindings/tree/1.2.0

jamesmcclain commented 2 years ago

@pomadchin Okay, it has been released. Many thanks :+1: