feat(cli): independent otdfctl releases#3268
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request establishes an independent release pipeline for the otdfctl component. By integrating it into the existing release-please infrastructure and defining a new automated workflow, the changes ensure that otdfctl can be versioned and distributed separately from the rest of the monorepo, streamlining the release process for this specific tool. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. The pipeline flows with steady hand, / To ship the code across the land. / With tags in place and versions set, / The best release is coming yet. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request configures release-please for the otdfctl component by updating the main configuration, adding a component-specific configuration file, and updating the manifest. A suggestion was provided to add the bump-minor-pre-major setting to the new configuration file to ensure consistent versioning behavior for pre-1.0.0 versions.
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
|
dmihalcik-virtru
left a comment
There was a problem hiding this comment.
Can you keep the lists alphabetized, i.e. insert the otdfctl blocks between the lib/* and protocol/* blocks?
69d6f81 to
5af1d61
Compare
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
|
| @@ -0,0 +1,251 @@ | |||
| package main | |||
There was a problem hiding this comment.
can you rebase or update the feature branch from main? i think a lot of these changes are from other commits (like this codegen stuff and the sort proto changes)
ac9d36a to
40e396b
Compare
Add otdfctl component to platform release-please configuration for independent versioned releases with cross-platform binary artifacts. - Add otdfctl package to release-please-config.main.json with extra-files pointing to pkg/config/config.go for version bumps - Add otdfctl entry to release-please-manifest.json at v0.30.0 - Create release-please-config.otdfctl.json for release branch support - Create release-otdfctl.yaml workflow: triggers on otdfctl/v* release tags, builds 8 cross-platform binaries via Makefile, uploads artifacts to GitHub release DSPX-2660 Signed-off-by: Krish Suchak <suchak.krish@gmail.com>
5af1d61 to
ed7b855
Compare
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
|
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
|
|
|
changed to alphabetical order @dmihalcik-virtru |
| env: | ||
| SEM_VER: ${{ steps.version.outputs.version }} | ||
| COMMIT_SHA: ${{ github.sha }} | ||
| run: make build |
There was a problem hiding this comment.
nit: do we need to build everything?
There was a problem hiding this comment.
working-directory: otdfctl
There are two Makefiles: the platform one at the root which will build everything and an otdfctl scoped one from the original repo which will build cross-platform otdfctl.
572446e
into
DSPX-2655-migrate-otdfctl
### Proposed Changes * Add `otdfctl/e2e` to the `github-actions` dependabot ecosystem so composite action dependencies (`actions/setup-go`, `bats-core/bats-action`, `actions/upload-artifact`) are tracked * Add `otdfctl` gomod entry with daily schedule and `github.com/opentdf/*` internal dep exclusion, matching existing module patterns #### Files modified | File | Change | |------|--------| | `.github/dependabot.yml` | Add `otdfctl/e2e` to github-actions directories; add `otdfctl` gomod entry | #### Already configured (no changes needed) | Workflow | Status | |----------|--------| | Backport | Uses repo-wide reusable workflow | | CodeQL | Scans entire repo (no path filters) | | Dependency review | Single consolidated deny-license list | | PR lint | `cli` scope already present | | Checks matrix | `otdfctl` already in directory list | #### PR Stack (DSPX-2654) 1. #3205 — Subtree merge + module path rewrite (DSPX-2655, DSPX-2656) 2. #3208 — Makefile and build scripts (DSPX-2657) 3. #3221 — CI workflows (DSPX-2658) 4. #3236 — e2e tests and lint fixes (DSPX-2659) 5. #3268 — Release pipeline (DSPX-2660) 6. **This PR** — Supporting workflows (DSPX-2661) ### Checklist - [ ] I have added or updated unit tests - [x] I have added or updated integration tests (if appropriate) - [x] I have added or updated documentation ### Testing Instructions - Verify YAML is valid: `python3 -c "import yaml; yaml.safe_load(open('.github/dependabot.yml'))"` - Verify otdfctl gomod entry: search for `directory: "/otdfctl"` in dependabot.yml - Verify github-actions directories include `/otdfctl/e2e`
* Add otdfctl component to platform release-please configuration for independent versioned releases * Tags follow the monorepo per-component pattern: `otdfctl/v0.30.0` * Register `otdfctl/pkg/config/config.go` as extra-file so release-please bumps the `Version` constant (already has `// x-release-please-version` marker) * Create release workflow that triggers on `otdfctl/v*` tags, builds 8 cross-platform binaries (darwin amd64/arm64, linux amd64/arm/arm64, windows amd64/arm/arm64), and uploads artifacts to the GitHub release | File | Change | |------|--------| | `release-please-config.main.json` | Add `otdfctl` package entry with `extra-files` | | `release-please-manifest.json` | Add `"otdfctl": "0.30.0"` version tracking | | `release-please-config.otdfctl.json` | **New** — component config for `release/otdfctl/vX.Y` branches | | `release-otdfctl.yaml` | **New** — build and upload workflow on release publish | 1. #3205 — Subtree merge + module path rewrite (DSPX-2655, DSPX-2656) 2. #3208 — Makefile and build scripts (DSPX-2657) 3. #3221 — CI workflows (DSPX-2658) 4. #3236 — e2e tests and lint fixes (DSPX-2659) 5. **This PR** — Release pipeline (DSPX-2660) - [ ] I have added or updated unit tests - [x] I have added or updated integration tests (if appropriate) - [x] I have added or updated documentation - Verify JSON configs are valid: `cat .github/release-please/release-please-config.main.json | jq .packages.otdfctl` - Verify manifest version: `cat .github/release-please/release-please-manifest.json | jq .otdfctl` - Verify `reusable_release-please.yaml` config lookup: branch `release/otdfctl/v0.30` → sanitized name `otdfctl` → resolves to `release-please-config.otdfctl.json` - Full release flow testable after merge by creating a manual release with tag `otdfctl/v0.30.0` --------- Signed-off-by: Krish Suchak <suchak.krish@gmail.com>
### Proposed Changes * Add `otdfctl/e2e` to the `github-actions` dependabot ecosystem so composite action dependencies (`actions/setup-go`, `bats-core/bats-action`, `actions/upload-artifact`) are tracked * Add `otdfctl` gomod entry with daily schedule and `github.com/opentdf/*` internal dep exclusion, matching existing module patterns #### Files modified | File | Change | |------|--------| | `.github/dependabot.yml` | Add `otdfctl/e2e` to github-actions directories; add `otdfctl` gomod entry | #### Already configured (no changes needed) | Workflow | Status | |----------|--------| | Backport | Uses repo-wide reusable workflow | | CodeQL | Scans entire repo (no path filters) | | Dependency review | Single consolidated deny-license list | | PR lint | `cli` scope already present | | Checks matrix | `otdfctl` already in directory list | #### PR Stack (DSPX-2654) 1. #3205 — Subtree merge + module path rewrite (DSPX-2655, DSPX-2656) 2. #3208 — Makefile and build scripts (DSPX-2657) 3. #3221 — CI workflows (DSPX-2658) 4. #3236 — e2e tests and lint fixes (DSPX-2659) 5. #3268 — Release pipeline (DSPX-2660) 6. **This PR** — Supporting workflows (DSPX-2661) ### Checklist - [ ] I have added or updated unit tests - [x] I have added or updated integration tests (if appropriate) - [x] I have added or updated documentation ### Testing Instructions - Verify YAML is valid: `python3 -c "import yaml; yaml.safe_load(open('.github/dependabot.yml'))"` - Verify otdfctl gomod entry: search for `directory: "/otdfctl"` in dependabot.yml - Verify github-actions directories include `/otdfctl/e2e`
Proposed Changes
otdfctl/v0.30.0otdfctl/pkg/config/config.goas extra-file so release-please bumps theVersionconstant (already has// x-release-please-versionmarker)otdfctl/v*tags, builds 8 cross-platform binaries (darwin amd64/arm64, linux amd64/arm/arm64, windows amd64/arm/arm64), and uploads artifacts to the GitHub releaseFiles added/modified
release-please-config.main.jsonotdfctlpackage entry withextra-filesrelease-please-manifest.json"otdfctl": "0.30.0"version trackingrelease-please-config.otdfctl.jsonrelease/otdfctl/vX.Ybranchesrelease-otdfctl.yamlPR Stack (DSPX-2654)
Checklist
Testing Instructions
cat .github/release-please/release-please-config.main.json | jq .packages.otdfctlcat .github/release-please/release-please-manifest.json | jq .otdfctlreusable_release-please.yamlconfig lookup: branchrelease/otdfctl/v0.30→ sanitized nameotdfctl→ resolves torelease-please-config.otdfctl.jsonotdfctl/v0.30.0