From 4f758391cb3c75273b12b19657e4e9fc217b1a86 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Sep 2026 23:07:49 +0000 Subject: [PATCH] Update code.cloudfoundry.org/credhub-cli digest to f80c1c8 --- go.mod | 8 +- go.sum | 16 +- vendor/github.com/onsi/ginkgo/v2/.gitignore | 3 +- vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md | 16 ++ vendor/github.com/onsi/ginkgo/v2/README.md | 7 +- vendor/github.com/onsi/ginkgo/v2/RELEASING.md | 108 +++++++++--- .../onsi/ginkgo/v2/reporters/junit_report.go | 17 ++ .../onsi/ginkgo/v2/types/version.go | 2 +- vendor/github.com/onsi/gomega/.gitignore | 3 +- vendor/github.com/onsi/gomega/CHANGELOG.md | 14 ++ vendor/github.com/onsi/gomega/README.md | 7 +- vendor/github.com/onsi/gomega/RELEASING.md | 166 +++++++++++++++--- vendor/github.com/onsi/gomega/gomega_dsl.go | 2 +- vendor/modules.txt | 8 +- 14 files changed, 307 insertions(+), 70 deletions(-) diff --git a/go.mod b/go.mod index 5cf9ac16..2fb890dc 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.26.6 tool github.com/golangci/golangci-lint/v2/cmd/golangci-lint require ( - code.cloudfoundry.org/credhub-cli v0.0.0-20260915183920-858ec47b73bd + code.cloudfoundry.org/credhub-cli v0.0.0-20260921130234-f80c1c8a1b4a github.com/BurntSushi/toml v1.6.0 github.com/apex/log v1.9.0 github.com/buildpacks/lifecycle v0.21.19 @@ -14,8 +14,8 @@ require ( github.com/google/go-containerregistry v0.22.1 github.com/jarcoal/httpmock v1.4.2 github.com/moby/moby/api v1.56.0 - github.com/onsi/ginkgo/v2 v2.32.2 - github.com/onsi/gomega v1.43.0 + github.com/onsi/ginkgo/v2 v2.33.0 + github.com/onsi/gomega v1.43.1 github.com/spf13/cobra v1.10.2 github.com/testcontainers/testcontainers-go v0.44.0 ) @@ -105,7 +105,7 @@ require ( github.com/clipperhouse/displaywidth v0.11.0 // indirect github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/cloudfoundry/go-socks5 v0.0.0-20250423223041-4ad5fea42851 // indirect - github.com/cloudfoundry/socks5-proxy v0.2.188 // indirect + github.com/cloudfoundry/socks5-proxy v0.2.189 // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect github.com/containerd/log v0.1.0 // indirect diff --git a/go.sum b/go.sum index 034125c9..ff547131 100644 --- a/go.sum +++ b/go.sum @@ -4,8 +4,8 @@ 4d63.com/gochecknoglobals v0.2.2/go.mod h1:lLxwTQjL5eIesRbvnzIP3jZtG140FnTdz+AlMa+ogt0= charm.land/lipgloss/v2 v2.0.6 h1:EaGKeuA8FvF+v2BT5VmZd2LoYLaMZJXA5n34th8nCIQ= charm.land/lipgloss/v2 v2.0.6/go.mod h1:ipDDJNSGa1hlwDtSfW1s2/xR8Vdhbut4PXh2zEKZd0Q= -code.cloudfoundry.org/credhub-cli v0.0.0-20260915183920-858ec47b73bd h1:U99F9mJg5VQdRm8xsVUgQf0pCc/Trd8z7G3NlLyWzqw= -code.cloudfoundry.org/credhub-cli v0.0.0-20260915183920-858ec47b73bd/go.mod h1:aI5pkdg2N1ZowOk7R/qQPBI2u2tQ7rmW+VsK2/d2iDQ= +code.cloudfoundry.org/credhub-cli v0.0.0-20260921130234-f80c1c8a1b4a h1:gQtGz5/m1HmCKzSC5YpJDOT3FIFyiTAI9DjGov5RCA4= +code.cloudfoundry.org/credhub-cli v0.0.0-20260921130234-f80c1c8a1b4a/go.mod h1:XNrC+Bzf8WNysq6X5DmsYmz1u7hgpW2HDKgmeS8syGM= codeberg.org/chavacava/garif v0.2.0 h1:F0tVjhYbuOCnvNcU3YSpO6b3Waw6Bimy4K0mM8y6MfY= codeberg.org/chavacava/garif v0.2.0/go.mod h1:P2BPbVbT4QcvLZrORc2T29szK3xEOlnl0GiPTJmEqBQ= codeberg.org/polyfloyd/go-errorlint v1.9.0 h1:VkdEEmA1VBpH6ecQoMR4LdphVI3fA4RrCh2an7YmodI= @@ -209,8 +209,8 @@ github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/cloudfoundry/go-socks5 v0.0.0-20250423223041-4ad5fea42851 h1:oy59UYcspoP44ggE8DM3kjxl1+sTFd802bbZlBBhBMk= github.com/cloudfoundry/go-socks5 v0.0.0-20250423223041-4ad5fea42851/go.mod h1:72EEm1oq5oXqGfu9XGtaRPWEcAFYd/P10cMNln0QhA8= -github.com/cloudfoundry/socks5-proxy v0.2.188 h1:EDZcnN6LlWaKuAcn2ydLB4eCZtv7waXM+qMthEEwFQs= -github.com/cloudfoundry/socks5-proxy v0.2.188/go.mod h1:f2gssQrrbrfdD5SrHSRREhtAqI60E215AaAJWktovRM= +github.com/cloudfoundry/socks5-proxy v0.2.189 h1:2YPLhKLjXTlAaDXRm9FKiFpBAx37Y2r3pkAbOeQOhc0= +github.com/cloudfoundry/socks5-proxy v0.2.189/go.mod h1:VoEL9xD0DAEVY2hBBPVr9FKF/vlHZMu2edUggfX6ZcM= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= @@ -567,11 +567,11 @@ github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3L github.com/nunnatsa/ginkgolinter v0.24.0 h1:Mp0EagluLFP98JatP6nqp/gGEoljNG97uf9AcxcBVy8= github.com/nunnatsa/ginkgolinter v0.24.0/go.mod h1:2ZMRuzX6+3XXyY6UZOwb6n+MCocVGbkIsDBC4vuWz5c= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo/v2 v2.32.2 h1:2o6vyFvR6snrJWgRVztC+OwuqqPEMI1UzYl2s2iU7Cg= -github.com/onsi/ginkgo/v2 v2.32.2/go.mod h1:+aXOY+vzZ5mu2iI2HpTZUPmM//oQfsNFX6gU9kNcA44= +github.com/onsi/ginkgo/v2 v2.33.0 h1:C8gBA6Uc2ZEubiV+SXiu5tZnMTwEmXHgkJwGozKtZf8= +github.com/onsi/ginkgo/v2 v2.33.0/go.mod h1:+aXOY+vzZ5mu2iI2HpTZUPmM//oQfsNFX6gU9kNcA44= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.43.0 h1:VlG/1FxqNxhSO+lq/OHBNaaqwiBK/mO8JbVkX9Y+FeU= -github.com/onsi/gomega v1.43.0/go.mod h1:REff/hsDsodHoKlWsP2mAPhu1+5/6hVYNf9rIEBpeSg= +github.com/onsi/gomega v1.43.1 h1:vGIPFuYrIO6/0Z09s0I0QQQgFchiX4+tb1re3MScJYo= +github.com/onsi/gomega v1.43.1/go.mod h1:e/C2HwaZ1DhvjzXXuFhcR7hY7Sh9pl7MmoWKEjzwcdA= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= diff --git a/vendor/github.com/onsi/ginkgo/v2/.gitignore b/vendor/github.com/onsi/ginkgo/v2/.gitignore index c9f05462..54fe2bd1 100644 --- a/vendor/github.com/onsi/ginkgo/v2/.gitignore +++ b/vendor/github.com/onsi/ginkgo/v2/.gitignore @@ -6,4 +6,5 @@ integration/tmp_*/ .vscode .idea/ *.log -*.test \ No newline at end of file +*.test +/.release/ diff --git a/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md b/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md index 45fa5343..396f97ce 100644 --- a/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md +++ b/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md @@ -1,3 +1,19 @@ +## Unreleased + +### Features + +### Fixes + +### Maintenance + +## 2.33.0 + +### Features +- The JUnit reporter now records each spec's `ReportEntry`s as `` on its `` element, with the entry's name and its JSON-encoded value. Thanks @pohly! [23db51a] + +### Maintenance +- Releases are now cut by a GitHub Actions workflow (Actions -> Release -> Run workflow) rather than by hand, with changelog entries collected under `## Unreleased` as the work happens. See RELEASING.md. [8616ecb] + ## 2.32.2 ### Fixes diff --git a/vendor/github.com/onsi/ginkgo/v2/README.md b/vendor/github.com/onsi/ginkgo/v2/README.md index ad5e45f6..3d658346 100644 --- a/vendor/github.com/onsi/ginkgo/v2/README.md +++ b/vendor/github.com/onsi/ginkgo/v2/README.md @@ -1,6 +1,9 @@ -![Ginkgo](https://onsi.github.io/ginkgo/images/ginkgo.png) + + + Ginkgo + -[![test](https://github.com/onsi/ginkgo/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/onsi/ginkgo/actions?query=workflow%3Atest+branch%3Amaster) | [Ginkgo Docs](https://onsi.github.io/ginkgo/) +[![test](https://github.com/onsi/ginkgo/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/onsi/ginkgo/actions/workflows/test.yml?query=branch%3Amaster) [![Ginkgo Docs](docs/images/docs-badge.svg)](https://onsi.github.io/ginkgo/) [![Sponsor onsi](docs/images/sponsor-badge.svg)](https://github.com/sponsors/onsi) --- diff --git a/vendor/github.com/onsi/ginkgo/v2/RELEASING.md b/vendor/github.com/onsi/ginkgo/v2/RELEASING.md index 363815d7..559e7e52 100644 --- a/vendor/github.com/onsi/ginkgo/v2/RELEASING.md +++ b/vendor/github.com/onsi/ginkgo/v2/RELEASING.md @@ -1,23 +1,85 @@ -A Ginkgo release is a tagged git sha and a GitHub release. To cut a release: - -1. Ensure CHANGELOG.md is up to date. - - Use - ```bash - LAST_VERSION=$(git tag --sort=version:refname | tail -n1) - CHANGES=$(git log --pretty=format:'- %s [%h]' HEAD...$LAST_VERSION) - echo -e "## NEXT\n\n$CHANGES\n\n### Features\n\n### Fixes\n\n### Maintenance\n\n$(cat CHANGELOG.md)" > CHANGELOG.md - ``` - to update the changelog - - Categorize the changes into - - Breaking Changes (requires a major version) - - New Features (minor version) - - Fixes (fix version) - - Maintenance (which in general should not be mentioned in `CHANGELOG.md` as they have no user impact) -1. Update `VERSION` in `types/version.go` -1. Commit, push, and release: - ``` - git commit -m "vM.m.p" - git push - gh release create "vM.m.p" - git fetch --tags origin master - ``` \ No newline at end of file +# Releasing Ginkgo + +A release is one GitHub Actions run: **Actions → Release → Run workflow → bump: patch | minor**, +from `master`. From the command line: + +```bash +gh workflow run release.yml -f bump=patch # or -f bump=minor +``` + +The run: + +1. Runs the whole test workflow (`test.yml`). Nothing else happens unless it passes. +2. Runs `scripts/release.sh`, which + - computes the next version from `VERSION` in `types/version.go`, + - renames `## Unreleased` in `CHANGELOG.md` to `## X.Y.Z` (dropping empty `###` subsections) and + puts a fresh, empty `## Unreleased` above it, + - writes `VERSION` and stamps the version into every plugin manifest + (`plugins/*/.claude-plugin/plugin.json`), so the Claude Code plugin ships in lockstep, + - commits `vX.Y.Z` as `github-actions[bot]`, tags it `vX.Y.Z`, and pushes the commit and the tag + together (`git push --atomic`, fast-forward only), + - creates the GitHub release `vX.Y.Z`, whose notes are the body of `## X.Y.Z`. + +The Go module is released by the `vX.Y.Z` tag. There is no other release tooling. + +## The changelog + +`CHANGELOG.md` starts with an `## Unreleased` section: + +```markdown +## Unreleased + +### Features + +### Fixes + +### Maintenance + +## 2.32.2 +... +``` + +Add an entry under `## Unreleased` with each user-facing change, as you make it. Never edit a +released section. Empty subsections are dropped when the section is released, so leaving +`### Maintenance` empty costs nothing. + +If `## Unreleased` has no entries (only blank lines and `###` headings), the release stops before +changing anything — and so does a re-run after a successful release. + +To draft entries from the commits since the last release: + +```bash +git log --pretty=format:'- %s [%h]' "$(git tag --sort=version:refname | tail -n1)"..HEAD +``` + +Categorize what you keep into + +- Breaking changes (these need a major version, which this workflow does not cut) +- `### Features` (minor version) +- `### Fixes` (patch version) +- `### Maintenance` (in general, changes with no user impact don't belong in the changelog at all) + +## If a release fails + +Open the failed run and click **Re-run failed jobs**. A re-run checks out the same commit as the +first attempt and computes the same version. It resumes based on what already exists: + +| Where it failed | What a re-run does | +|---|---| +| Tests, or before the push | Nothing reached GitHub. The re-run starts over. | +| The push (master moved during the run) | The re-run fails the same way. Start a new run from the current master. | +| After the push (the tag `vX.Y.Z` is on GitHub) | The re-run builds from the tag instead of making a new commit. | +| Creating the GitHub release | The release is created, or its notes are refreshed if it already exists. | + +The commit and the tag are pushed together, so the tag being on GitHub means the release commit is +on master too. + +## Trying the release script locally + +`GINKGO_RELEASE_DRY_RUN=1 scripts/release.sh patch` does the whole release locally — the changelog +and version rewrites, the commit and the tag — then skips the push and the GitHub release. It still +checks `origin` for an existing tag, so run it in a throwaway clone whose `origin` is a local bare +repository, not in your working copy. + +The version and changelog logic lives in `scripts/release`, with its own Ginkgo suite +(`scripts/release/release_test.go`) that runs with the rest of the suites. diff --git a/vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go b/vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go index d4720ee9..b7ef42c2 100644 --- a/vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go +++ b/vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go @@ -11,6 +11,7 @@ The schema used for the generated JUnit xml file was adapted from https://llg.cu package reporters import ( + "encoding/json" "encoding/xml" "fmt" "maps" @@ -136,6 +137,8 @@ type JUnitTestCase struct { SystemOut string `xml:"system-out,omitempty"` //SystemOut maps onto any captured GinkgoWriter output - maps onto SpecReport.CapturedGinkgoWriterOutput SystemErr string `xml:"system-err,omitempty"` + //Properties captures any ReportEntries attached to the spec via AddReportEntry, as key/value pairs with the JSON dump of the value as value. + Properties *JUnitProperties `xml:"properties,omitempty"` } type JUnitSkipped struct { @@ -241,6 +244,20 @@ func GenerateJUnitReportWithConfig(report types.Report, dst string, config Junit if !config.OmitCapturedStdOutErr { test.SystemOut = systemOutForUnstructuredReporters(spec) } + if len(spec.ReportEntries) > 0 { + properties := JUnitProperties{} + for _, entry := range spec.ReportEntries { + value, err := json.Marshal(entry.GetRawValue()) + if err != nil { + value = []byte(fmt.Sprintf("%q", err.Error())) + } + properties.Properties = append(properties.Properties, JUnitProperty{ + Name: entry.Name, + Value: string(value), + }) + } + test.Properties = &properties + } suite.Tests += 1 switch spec.State { diff --git a/vendor/github.com/onsi/ginkgo/v2/types/version.go b/vendor/github.com/onsi/ginkgo/v2/types/version.go index a34f1f3a..9fb4938e 100644 --- a/vendor/github.com/onsi/ginkgo/v2/types/version.go +++ b/vendor/github.com/onsi/ginkgo/v2/types/version.go @@ -1,3 +1,3 @@ package types -const VERSION = "2.32.2" +const VERSION = "2.33.0" diff --git a/vendor/github.com/onsi/gomega/.gitignore b/vendor/github.com/onsi/gomega/.gitignore index 425d0a50..b3003b4e 100644 --- a/vendor/github.com/onsi/gomega/.gitignore +++ b/vendor/github.com/onsi/gomega/.gitignore @@ -4,4 +4,5 @@ .idea gomega.iml TODO -.vscode \ No newline at end of file +.vscode +/.release/ diff --git a/vendor/github.com/onsi/gomega/CHANGELOG.md b/vendor/github.com/onsi/gomega/CHANGELOG.md index 8f1d34e3..51239daf 100644 --- a/vendor/github.com/onsi/gomega/CHANGELOG.md +++ b/vendor/github.com/onsi/gomega/CHANGELOG.md @@ -1,3 +1,17 @@ +## Unreleased + +### Features + +### Fixes + +### Maintenance + +## 1.43.1 + +### Maintenance +- Update go.yaml.in/yaml/v3 to v3.0.5 [d547015] +- Releases are now cut by a GitHub Actions workflow (Actions -> Release -> Run workflow) rather than by hand, with changelog entries collected under `## Unreleased` as the work happens. Releases still ship the stripped-down tree on `master-lite` - tests removed and Ginkgo dropped from `go.mod` - and the workflow now builds it and checks it on every push. See RELEASING.md. [e9dc84d] + ## 1.43.0 ### Features diff --git a/vendor/github.com/onsi/gomega/README.md b/vendor/github.com/onsi/gomega/README.md index 6eb36fdf..ac545907 100644 --- a/vendor/github.com/onsi/gomega/README.md +++ b/vendor/github.com/onsi/gomega/README.md @@ -1,6 +1,9 @@ -![Gomega: Ginkgo's Preferred Matcher Library](http://onsi.github.io/gomega/images/gomega.png) + + + Gomega: Ginkgo's Preferred Matcher Library + -[![test](https://github.com/onsi/gomega/actions/workflows/test.yml/badge.svg)](https://github.com/onsi/gomega/actions/workflows/test.yml) +[![test](https://github.com/onsi/gomega/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/onsi/gomega/actions/workflows/test.yml?query=branch%3Amaster) [![Gomega Docs](docs/images/docs-badge.svg)](https://onsi.github.io/gomega/) [![Sponsor onsi](docs/images/sponsor-badge.svg)](https://github.com/sponsors/onsi) Jump straight to the [docs](http://onsi.github.io/gomega/) to learn about Gomega, including a list of [all available matchers](http://onsi.github.io/gomega/#provided-matchers). diff --git a/vendor/github.com/onsi/gomega/RELEASING.md b/vendor/github.com/onsi/gomega/RELEASING.md index 9973fff4..fdbeb37c 100644 --- a/vendor/github.com/onsi/gomega/RELEASING.md +++ b/vendor/github.com/onsi/gomega/RELEASING.md @@ -1,23 +1,143 @@ -A Gomega release is a tagged sha and a GitHub release. To cut a release: - -1. Ensure CHANGELOG.md is up to date. - - Use - ```bash - LAST_VERSION=$(git tag --sort=version:refname | tail -n1) - CHANGES=$(git log --pretty=format:'- %s [%h]' HEAD...$LAST_VERSION) - echo -e "## NEXT\n\n$CHANGES\n\n### Features\n\n### Fixes\n\n### Maintenance\n\n$(cat CHANGELOG.md)" > CHANGELOG.md - ``` - to update the changelog - - Categorize the changes into - - Breaking Changes (requires a major version) - - New Features (minor version) - - Fixes (fix version) - - Maintenance (which in general should not be mentioned in `CHANGELOG.md` as they have no user impact) -1. Update GOMEGA_VERSION in `gomega_dsl.go` -1. Commit, push, and release: - ``` - git commit -m "vM.m.p" - git push - gh release create "vM.m.p" - git fetch --tags origin master - ``` \ No newline at end of file +# Releasing Gomega + +A release is one GitHub Actions run: **Actions → Release → Run workflow → bump: patch | minor**, +from `master`. From the command line: + +```bash +gh workflow run release.yml -f bump=patch # or -f bump=minor +``` + +The run: + +1. Runs the whole test workflow (`test.yml`). Nothing else happens unless it passes. +2. Runs `scripts/release.sh`, which + - computes the next version from `GOMEGA_VERSION` in `gomega_dsl.go`, + - renames `## Unreleased` in `CHANGELOG.md` to `## X.Y.Z` (dropping empty `###` subsections) and + puts a fresh, empty `## Unreleased` above it, + - writes `GOMEGA_VERSION` and stamps the version into every plugin manifest + (`plugins/*/.claude-plugin/plugin.json`), so the Claude Code plugin ships in lockstep, + - commits that on `master` as `vX.Y.Z (full)`, as `github-actions[bot]`, + - builds the released tree on `master-lite` and tags **that** commit `vX.Y.Z` (see below), + - pushes `master`, `master-lite`, and the tag together (`git push --atomic`, fast-forward only), + - creates the GitHub release `vX.Y.Z`, whose notes are the body of `## X.Y.Z`. + +## master and master-lite + +Gomega uses Ginkgo for its own tests, and the go toolchain pulls a dependency's *test* dependencies +into consuming projects as indirect requirements — so a project that uses only Gomega would end up +with all of Ginkgo in its `go.mod`. Since 1.40.0, releases therefore ship a stripped-down tree: + +- `master` holds the real repository, tests and all. The release commit there is `vX.Y.Z (full)`, + and it is **not** what the go toolchain resolves. +- `master-lite` holds the released trees: the same tree with every `_test.go` file deleted and + `go.mod` re-tidied, which drops Ginkgo. `scripts/strip-tests.sh` does that, and asserts that the + result still builds and no longer requires Ginkgo. +- Each release adds one commit to `master-lite`: a merge whose tree is the stripped tree and whose + parents are the previous `master-lite` commit and the `vX.Y.Z (full)` commit on `master`. So + `master-lite`'s history connects to master's, and `git log master-lite` reads as the release + history. +- The `vX.Y.Z` tag is on that `master-lite` commit. It is what `go get github.com/onsi/gomega` + resolves, so `go build` never even sees the test files. + +The test workflow's **Check the released (lite) tree** job runs `scripts/strip-tests.sh` on every +push. If a non-test file ever imports Ginkgo, that job fails long before release day — the released +module could not be built otherwise. + +Release tags are not on `master`, so `git describe` on master does not find them. `GOMEGA_VERSION` +in `gomega_dsl.go` is the version of record, and `git tag --sort=version:refname | tail -n1` names +the latest release. + +If this release process ever causes unexpected changes for a project, please open an issue. + +### Never merge master-lite into master + +`master-lite` always looks ahead of `master`, because its newest commit merges master's release +commit. But its *tree* has the tests taken out, so merging or rebasing it back into master deletes +every `_test.go` file and drops Ginkgo from `go.mod` — cleanly, with no conflicts. GitHub's +"master-lite had recent pushes — Compare & pull request" banner is the one click to avoid. + +Nothing you do locally needs `master-lite`: the release workflow writes it from a fresh checkout. A +stale local `master-lite` branch is harmless, and you can delete it. + +`scripts/check-full-tree.sh` guards against a stripped master: it asserts that a checkout has +`_test.go` files and that `go.mod` requires Ginkgo. The test workflow runs it on every push and +`scripts/release.sh` runs it before cutting a release, so a stripped master gets reported plainly +instead of turning into a test run with nothing in it. + +### Cutting one release after another + +Work on master as usual between releases. The `vX.Y.Z (full)` commit the workflow pushed is an +ordinary commit: `git pull` fast-forwards onto it, it carries the released `CHANGELOG.md` and +`GOMEGA_VERSION`, and you add new `## Unreleased` entries above it. The next release repeats the +same two steps — a new `vX.Y.Z (full)` commit on master, and a new merge on `master-lite` whose +tree is the stripped version of it, carrying the tag. + +Nothing accumulates between releases, and nothing needs reconciling in either direction: each +`master-lite` commit's tree is built from the release commit rather than merged into the previous +one, so `git diff vX.Y.Z vX.Y.Z+1` over two releases shows only the real changes. + +## The changelog + +`CHANGELOG.md` starts with an `## Unreleased` section: + +```markdown +## Unreleased + +### Features + +### Fixes + +### Maintenance + +## 1.43.0 +... +``` + +Add an entry under `## Unreleased` with each user-facing change, as you make it. Never edit a +released section. Empty subsections are dropped when the section is released, so leaving +`### Maintenance` empty costs nothing. + +If `## Unreleased` has no entries (only blank lines and `###` headings), the release stops before +changing anything — and so does a re-run after a successful release. + +To draft entries from the commits since the last release: + +```bash +git log --pretty=format:'- %s [%h]' "$(git tag --sort=version:refname | tail -n1)"..HEAD +``` + +Categorize what you keep into + +- Breaking changes (these need a major version, which this workflow does not cut) +- `### Features` (minor version) +- `### Fixes` (patch version) +- `### Maintenance` (in general, changes with no user impact don't belong in the changelog at all) + +## If a release fails + +Open the failed run and click **Re-run failed jobs**. A re-run checks out the same commit as the +first attempt and computes the same version. It resumes based on what already exists: + +| Where it failed | What a re-run does | +|---|---| +| Tests, or before the push | Nothing reached GitHub. The re-run starts over. | +| The push (master or master-lite moved during the run) | The re-run fails the same way. Start a new run from the current master. | +| After the push (the tag `vX.Y.Z` is on GitHub) | The re-run builds from the tag instead of making new commits. | +| Creating the GitHub release | The release is created, or its notes are refreshed if it already exists. | + +Both branches and the tag are pushed together, so the tag being on GitHub means both release +commits are there too. + +## Trying the release script locally + +`GOMEGA_RELEASE_DRY_RUN=1 scripts/release.sh patch` does the whole release locally — the changelog +and version rewrites, the `master` commit, the stripped `master-lite` commit and the tag on it — +then skips the push and the GitHub release. It still checks `origin` for an existing tag and needs +`origin/master-lite`, so run it in a throwaway clone whose `origin` is a local bare repository, not +in your working copy. + +`scripts/strip-tests.sh` rewrites the working tree in place, so run *it* only on a throwaway +checkout too. + +The version and changelog logic lives in `scripts/release`, with its own Ginkgo suite +(`scripts/release/release_test.go`) that runs with the rest of the suites. diff --git a/vendor/github.com/onsi/gomega/gomega_dsl.go b/vendor/github.com/onsi/gomega/gomega_dsl.go index 3206e05d..dd1511f2 100644 --- a/vendor/github.com/onsi/gomega/gomega_dsl.go +++ b/vendor/github.com/onsi/gomega/gomega_dsl.go @@ -22,7 +22,7 @@ import ( "github.com/onsi/gomega/types" ) -const GOMEGA_VERSION = "1.43.0" +const GOMEGA_VERSION = "1.43.1" const nilGomegaPanic = `You are trying to make an assertion, but haven't registered Gomega's fail handler. If you're using Ginkgo then you probably forgot to put your assertion in an It(). diff --git a/vendor/modules.txt b/vendor/modules.txt index 28e9a3ef..b68c0df0 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -7,7 +7,7 @@ # charm.land/lipgloss/v2 v2.0.6 ## explicit; go 1.25.0 charm.land/lipgloss/v2 -# code.cloudfoundry.org/credhub-cli v0.0.0-20260915183920-858ec47b73bd +# code.cloudfoundry.org/credhub-cli v0.0.0-20260921130234-f80c1c8a1b4a ## explicit; go 1.26.0 code.cloudfoundry.org/credhub-cli/credhub code.cloudfoundry.org/credhub-cli/credhub/auth @@ -444,7 +444,7 @@ github.com/clipperhouse/uax29/v2/graphemes # github.com/cloudfoundry/go-socks5 v0.0.0-20250423223041-4ad5fea42851 ## explicit; go 1.21.0 github.com/cloudfoundry/go-socks5 -# github.com/cloudfoundry/socks5-proxy v0.2.188 +# github.com/cloudfoundry/socks5-proxy v0.2.189 ## explicit; go 1.26.0 github.com/cloudfoundry/socks5-proxy # github.com/containerd/errdefs v1.0.0 @@ -1174,7 +1174,7 @@ github.com/nunnatsa/ginkgolinter/internal/rules github.com/nunnatsa/ginkgolinter/internal/typecheck github.com/nunnatsa/ginkgolinter/linter github.com/nunnatsa/ginkgolinter/version -# github.com/onsi/ginkgo/v2 v2.32.2 +# github.com/onsi/ginkgo/v2 v2.33.0 ## explicit; go 1.25.0 github.com/onsi/ginkgo/v2 github.com/onsi/ginkgo/v2/config @@ -1198,7 +1198,7 @@ github.com/onsi/ginkgo/v2/internal/reporters github.com/onsi/ginkgo/v2/internal/testingtproxy github.com/onsi/ginkgo/v2/reporters github.com/onsi/ginkgo/v2/types -# github.com/onsi/gomega v1.43.0 +# github.com/onsi/gomega v1.43.1 ## explicit; go 1.25.0 github.com/onsi/gomega github.com/onsi/gomega/format