0.12.0
Features
Bugs
- Log in to Docker Hub as
docker.io, not registry-1.docker.io. Both names resolve to the same registry and either can be pulled from anonymously, but the credential is stored under the host you logged in as while a push normalises the reference back to Docker Hub‘s canonical host -- so the chart push looked up a credential that had never been written there and would have failed with a 401. apache/skywalking uses docker.io throughout for this reason. The docs and the chart’s NOTES use the same name now. - Publish snapshots to GHCR and releases to Docker Hub, and nothing to both, with the workflow's jobs named for the path they serve --
publish-snapshot-images, publish-snapshot-chart, publish-release-image, publish-release-chart. The per-component images and the GHCR chart were pushed on the release path too, so a release also produced ghcr.io/apache/skywalking-swck/operator:<version> -- artifacts nobody asked for, published from a job whose failure then blocked the release. They are snapshot-only now, and a release publishes the combined image and the chart to Docker Hub. - Fetch the release tarball from
dist/release, which is where the svn move puts it and is servable immediately. Dockerfile.release downloaded it from archive.apache.org instead -- a copy that holds every release ever made but takes hours to receive a new one -- so a just-voted release could not be built until the archive caught up, and both release-passed.sh and the publish workflow sat in long polls waiting for it, up to an hour and thirty minutes respectively. Neither wait was for anything the build reads. - Take
release-passed.sh's default version from dist/dev rather than from Chart.yaml. By the time a vote passes, release.sh has already opened the next-version PR and it is usually merged, so Chart.yaml holds the version after the one being released -- pressing Enter at the prompt tried to publish a candidate that does not exist. It failed, but several prompts later and with an svn path error rather than an explanation. The script now reads what is actually waiting in dist/dev, refuses to guess when there is more than one candidate, and checks the chosen version exists before asking whether the vote passed.
Chores