docs: add a CHANGELOG — the release archives have been shipping without one - #45
Merged
Conversation
…ut one
The agent has 86 commits on main and zero tags, so its release pipeline has
never run: both release.yml and docker-publish.yml are gated on `v*`. The image
in use today was built by hand.
Before the first tag is pushed I ran the pipeline against a throwaway tag to see
whether it works. It does — GoReleaser produces linux/amd64, linux/arm64 and
darwin/arm64 archives with checksums in 82 seconds, the config validates, and
the Docker image builds. One thing it reported, six times, once per archive:
• no files matched glob=CHANGELOG*
.goreleaser.yaml asks for README.md, LICENSE* and CHANGELOG* in every archive.
The first two exist. The third has never existed, so every archive would ship
with no record of what is in it — for the component customers install, on its
first release.
This is that record: what the 86 commits added, and in particular the security
work, which is most of the value. Two-tier SSRF guard with the hard tier no flag
can open, the dangerousToolFlags deny-list, the RFC-007 runner target-guard,
ExtraArgs bounds checking, SHA-256 verification of the scanner binaries at image
build, and three Go toolchain bumps for stdlib CVEs.
Re-ran the pipeline with this file present: the warning is gone and
CHANGELOG.md is in the archive alongside LICENSE, README.md and the binary.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context: the agent has never been released
86 commits on
main, zero tags. Bothrelease.ymlanddocker-publish.ymlare gated on
v*, so neither has ever run. Theopenctemio/agent:demo-ci-fixedimage in use today was built by hand.
Before anyone pushes the first tag, I ran the pipeline against a throwaway one
to find out whether it works.
It works
go build ./...,go vet ./...go test ./...goreleaser checkgoreleaser release --snapshot --skip=publish.tar.gz+.zip) + checksumsdocker buildSo a
v0.1.0tag would produce a real release. That is worth knowing beforepushing one, given this repo's history of workflows that had never actually run.
The one thing it reported
Six times, once per archive:
.goreleaser.yamlasks forREADME.md,LICENSE*andCHANGELOG*in everyarchive. The first two exist. The third never has:
The component customers install would ship its first release with no record
of what is in it.
What this adds
The record. Most of the 86 commits' value is security work, so that is where the
detail is:
(metadata endpoints, loopback, CGNAT, multicast, IPv6 link-local) and a soft
RFC1918 tier behind
AGENT_ALLOW_PRIVATE_TARGETSdangerousToolFlagsdeny-list, completeness CI-enforcedExtraArgsvalidation and bounds checkinggo 1.26plus the features: RFC-011 safe-check executor, RFC-007 Tenable runner mode,
risk-aware CI gate, RFC-008 PR-scoped baseline-diff, RFC-014 Phase 2 key
auto-renewal, RFC-001 asset-name normalisation.
Verified
Re-ran the pipeline with this file present — warning gone, and: