Skip to content

chore(deps): drop jose fork via CLI v8 head - #6000

Merged
norman-abramovitz merged 3 commits into
cloudfoundry:developfrom
nabramovitz:norm/chore/cli-v8-golang-jwt
Oct 13, 2026
Merged

norman-abramovitz merged 3 commits into
cloudfoundry:developfrom
nabramovitz:norm/chore/cli-v8-golang-jwt

Conversation

@nabramovitz

Copy link
Copy Markdown
Contributor

What

Removes the github.com/SermoDigital/jose dependency and the norman-abramovitz/fw-jose fork that replaced it.

SermoDigital/jose registers hash id 0 in an init, which Go 1.27 rejects with a panic before main. It reached jetstream only through code.cloudfoundry.org/cli/v8/actor/v7action, used by cfapppush for app push, so both modules carried a replace to a patched fork. cloudfoundry/cli#3872 moved the CLI to golang-jwt v5 and is merged on the v8 branch, but no release has been tagged since v8.19.0.

  • Pins code.cloudfoundry.org/cli/v8 to the current v8 head as a pseudo-version (v8.19.1-0.20261006035801-8f3eae3b52da) and drops both replace lines. The pseudo-version should give way to the release tag once v8 is tagged.
  • The move also brings grpc 1.83.2 → 1.84.0 and a handful of small indirect bumps (tlsconfig, bytefmt, logrus, go-runewidth). All seven Go modules are tidied; no go.mod or go.sum references jose any more.
  • Bumps golangci-lint 2.13.1 → 2.14.0. Go 1.27.2 writes compiler export data version 5, which 2.13.1 cannot decode, so make check lint and make check gate failed in typecheck on any machine with Go 1.27.2. go.mod still targets 1.27.1, so the Makefile's version stamp matched and never rebuilt the linter.
  • Adds changelog.d/0006-cli-golang-jwt.md.

Checks

  • make check gate: frontend 3769 passed, production build, golangci-lint 0 issues across all seven modules, every module's Go tests pass, including cfapppush and the root jetstream package, whose test binaries link the CLI push code that used to pull in jose.
  • make changelog reports no uncovered bumps; make preview assembles the fragment.

AI disclosure (RFC-0047): prepared with AI coding assistance; reviewed by the author.

Go 1.27.2 writes compiler export data version 5, which 2.13.1 cannot
decode, so typecheck fails on fmt in src/jetstream and the gate stops
there. go.mod still targets 1.27.1, so the version stamp matched and
nothing rebuilt the linter. 2.14.0 reads the new format.
SermoDigital/jose panics at init under Go 1.27, so both modules
replaced it with the norman-abramovitz/fw-jose fork. CLI v8 now
uses golang-jwt v5 (cloudfoundry/cli#3872, merged on v8, untagged),
so pin the v8 head as a pseudo-version and drop both replaces. Swap
in the release tag once v8 is tagged.

The move also brings grpc 1.84.0 and small indirect bumps. All
seven modules are tidied; none references jose any more.
Record the move off SermoDigital/jose and the fw-jose fork, the
dependency versions the CLI v8 head brings, and the golangci-lint
bump that Go 1.27.2 needs.

@norman-abramovitz norman-abramovitz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM CF CLI has updated its dependencies about JWT usage

@norman-abramovitz
norman-abramovitz merged commit 586649e into cloudfoundry:develop Oct 13, 2026
24 checks passed
@nabramovitz
nabramovitz deleted the norm/chore/cli-v8-golang-jwt branch October 13, 2026 19:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants