This document outlines the contribution guidelines for the SPIRE API SDK.
This project follows the contribution and governance guidelines from the SPIFFE project (see CONTRIBUTING and GOVERNANCE).
The Makefile in the project is set up to download required dependencies for code generation.
The Makefile uses internal variables or inspects go.mod to determine the versions of various tools in the toolchain. See the Makefile for specifics.
To (re)generate service definitions do the following:
$ make
If you are adding a new .proto file, you first need to update the Makefile
and add the .proto file to the relevant variables.
All PRs should target the next
branch. The next
branch is a staging area
for all features under development but not ready for release in an official
version of SPIRE.
Changes are cherry-picked into main
from the next
branch ahead of an
official SPIRE release. The commits in main
are tagged with the supporting
SPIRE version.
While a new change in this repository is under development, you can use Go Workspaces to allow SPIRE to consume the changes before they are merged into this repository.
SPIRE's main branch depends on a pseudo-version of this repository based on the
next
branch (see https://golang.org/ref/mod#pseudo-versions). Once changes
have been merged into the next
branch, the pseudo-version dependency in the
SPIRE repository can be updated by running go get github.com/spiffe/spire-api-sdk@next
from the SPIRE repository.
Relying on a pseudo versions means that this repository only needs tags for the offically released versions, while still allowing SPIRE to work with unreleased changes during development.