Skip to content

improve(build): add make build-dev for a dev CLI - #3468

Draft
Dave Shoup (shouples) wants to merge 3 commits into
djs/channel-state-dirfrom
djs/dev-build-tooling
Draft

improve(build): add make build-dev for a dev CLI#3468
Dave Shoup (shouples) wants to merge 3 commits into
djs/channel-state-dirfrom
djs/dev-build-tooling

Conversation

@shouples

@shouples Dave Shoup (shouples) commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Release Notes

No user-facing changes. This adds a contributor build target and documents it; nothing ships in the CLI binary.

Checklist

  • I have successfully built and used a custom CLI binary, without linter issues from this PR.
  • I have clearly specified in the What section below whether this PR applies to Confluent Cloud, Confluent Platform, or both.
  • I have verified this PR in Confluent Cloud pre-prod or production environment, if applicable.
  • I have verified this PR in Confluent Platform on-premises environment, if applicable.
  • I have attached manual CLI verification results or screenshots in the Test & Review section below.
  • I have added appropriate CLI integration or unit tests for any new or updated commands and functionality.
  • I confirm that this PR introduces no breaking changes or backward compatibility issues.
  • I have indicated the potential customer impact if something goes wrong in the Blast Radius section below.
  • I have put checkmarks below confirming that the feature associated with this PR is enabled in:
    • Confluent Cloud prod
    • Confluent Cloud stag
    • Confluent Platform
    • Check this box if the feature is enabled for certain organizations only

Cloud/Platform verification, tests, and feature-flag items are N/A: this adds a make target and docs, with no shipped-binary or command behavior to test.

What

Builds on the channel-state isolation below it to give contributors a one-command dev binary. make build-dev compiles confluent-dev onto your PATH (default ~/.local/bin/confluent-dev); because a local build reports the dev channel, it keeps its state in ~/.confluent-dev, isolated from the ~/.confluent of any installed release - so you can hack on the CLI without logging out of your real one. Unlike the coverage-instrumented test builds, it keeps debug symbols so delve can attach.

CONTRIBUTING.md gains a "Running a Dev Build" section (including the caveat that login --save still shares the macOS keychain across channels), and AGENTS.md lists the new target.

Note: this edits the Makefile, which is a "⚠️ ask first" file in AGENTS.md's edit-zone table - it adds a new target and touches no existing recipe. Editing the Makefile carries one non-obvious obligation: the Debian packaging build derives debian/patches/standard_build_layout.patch from diff Makefile debian/Makefile, so any Makefile change makes that checked-in patch stale. It's been regenerated here (make generate-packaging-patch) to keep CI green - that regeneration, not the new target, accounts for most of this diff's line count.

Applies to: neither Cloud nor Platform. Contributor tooling only.

Blast Radius

No customer impact - nothing here ships in the CLI binary. Contributor-facing only: a broken target would fail at make build-dev on a developer's machine, visibly and immediately, with no effect on released builds or CI.

References

  • Stacked on channel-state-dir, which provides the ~/.confluent-dev isolation this target relies on.

Test & Review

  • make build-dev produces ~/.local/bin/confluent-dev; confluent-dev version reports the 0.0.0-dev-<sha> version, and the binary reads/writes ~/.confluent-dev, leaving ~/.confluent untouched.
  • delve can attach to the resulting binary (debug symbols retained).
  • Reviewer check: confirm the Makefile change is additive (new build-dev target only), the debian/patches/standard_build_layout.patch diff is a clean regeneration rather than a hand-edit (make generate-packaging-patch reproduces it), and the CONTRIBUTING.md dev-build section is accurate.

@confluent-cla-assistant

Copy link
Copy Markdown

🎉 All Contributor License Agreements have been signed. Ready to merge.
Please push an empty commit if you would like to re-run the checks to verify CLA status for all contributors.

@shouples Dave Shoup (shouples) changed the title improve(build): add make build-dev for a dev CLI improve(build): add make build-dev for a dev CLI Aug 21, 2026
Dave Shoup (shouples) and others added 3 commits August 21, 2026 19:24
make build-dev compiles confluent-dev onto your PATH with a dev version
stamp, so it reports the dev release channel and keeps its state in
~/.confluent-dev, isolated from an installed release's ~/.confluent (the
isolation mechanism itself landed in the parent commit). Documented in
CONTRIBUTING, and the tutorial's run step now points at it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The prior regeneration ran on macOS (BSD diff), which emits different
unified-diff hunk grouping than the GNU diff CI uses to regenerate and
compare the patch, so the drift check failed. Regenerated with GNU diff
to match CI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@sonarqube-confluent

Copy link
Copy Markdown

Quality Gate failed Quality Gate failed

Failed conditions
72.1% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube

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.

1 participant