Skip to content

feat: define semantic_release.proto v1 plugin contract#101

Merged
mwaldheim merged 1 commit into
mainfrom
feat/89-proto-definition
May 23, 2026
Merged

feat: define semantic_release.proto v1 plugin contract#101
mwaldheim merged 1 commit into
mainfrom
feat/89-proto-definition

Conversation

@mwaldheim
Copy link
Copy Markdown
Contributor

Summary

Defines the Protocol Buffers v1 contract that all go-semrel plugins must implement. Follows the architecture described in ADR-001 (#100).

Closes #89
Depends on #100

Changes

  • \�pi/proto/v1/semantic_release.proto\ — full gRPC service definitions
  • \�uf.yaml\ — buf lint (STANDARD) + breaking-change detection
  • \�uf.gen.yaml\ — code generation config (protocolbuffers/go + grpc/go)
  • .gitignore\ — exclude /api/gen/\ (generated, not committed)

Services defined

Service RPCs
\ProviderPlugin\ GetLastRelease, GetCommitsSince, CreateRelease, UploadAsset
\CIConditionPlugin\ VerifyConditions
\CommitAnalyzerPlugin\ AnalyzeCommits
\ChangelogGeneratorPlugin\ GenerateNotes
\FilesUpdaterPlugin\ UpdateFiles
\HooksPlugin\ OnSuccess, OnFail

Note on generated code

\�pi/gen/\ is generated via \�uf generate\ and is excluded from version control.
A follow-up issue will wire buf generation into CI.

Checklist

Closes #89

Defines the gRPC interface that all go-semrel plugins must implement,
as described in ADR-001.

Services defined:
- ProviderPlugin     - VCS platform abstraction (GetLastRelease, GetCommitsSince,
                       CreateRelease, UploadAsset)
- CIConditionPlugin  - environment gate (VerifyConditions)
- CommitAnalyzerPlugin - version bump determination (AnalyzeCommits)
- ChangelogGeneratorPlugin - release notes rendering (GenerateNotes)
- FilesUpdaterPlugin - pre-tag file mutations (UpdateFiles)
- HooksPlugin        - lifecycle callbacks (OnSuccess, OnFail)

Shared messages: SemanticVersion, Commit, ReleaseContext (carries full
release context including dry_run flag and arbitrary plugin config map).

Also adds:
- buf.yaml   - buf lint (STANDARD) + breaking-change detection (FILE level)
- buf.gen.yaml - code generation targets (protocolbuffers/go + grpc/go)
- .gitignore - exclude /api/gen/ (generated, not committed)

Generated code (api/gen/) is produced by \�uf generate\ and excluded from
version control; CI will add a buf-generate step in a follow-up issue.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: mwaldheim <mwaldheim@users.noreply.github.com>
@mwaldheim mwaldheim added area: plugin Plugin architecture priority: high High priority type: feature New feature area: architecture Core architectural decisions and ADRs labels May 22, 2026
Base automatically changed from docs/88-adr-001-grpc-transport to main May 23, 2026 17:15
@mwaldheim mwaldheim merged commit 901d452 into main May 23, 2026
@mwaldheim mwaldheim deleted the feat/89-proto-definition branch May 23, 2026 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: architecture Core architectural decisions and ADRs area: plugin Plugin architecture priority: high High priority type: feature New feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Protocol Buffers: define semantic_release.proto v1 plugin contract

1 participant