Skip to content

Versioning and Release Process Proposal #41

@mostlygeek

Description

@mostlygeek

Now that tsidp lives outside of the monorepo it requires a versioning and release process that is simple and familiar.

Versioning

  • Use semver v2.0.
  • While we require TAILSCALE_USE_WIP_CODE=1, the version will be v0.x.x
    • Versions in v0.x.x is for rapid iteration and come with no guarantees of backwards compatibility
  • From v1.0.0 onwards the API guarantees backwards compatibility following semver's constraints

Release Process

The release process is based on git tags. When a tag is created and pushed it will trigger automated processes to build and publish artifacts.

  • Use git tags to create a new release
  • tags always point to a commit in the main branch
  • tagged versions:
    • builds a binary release for various GOOS and GOARCH combos: linux (arm64/amd64), darwin (arm64), windows (amd64 - tbd)
    • containers built and labeled like: ghcr.io/tailscale/tsidp:v1.2.3 and ghcr.io/tailscale/tsidp:latest
  • untagged versions:
    • commits to main will NOT trigger builds of binary archives or containers
    • users who wish to use the latest code are expected to build their own local binaries or use go run ...

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions