Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: fix missing page caused by .gitignore #28

Merged
merged 1 commit into from
May 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -412,4 +412,6 @@ _deps
out

# Idea
.idea
.idea

!docs/**/release
37 changes: 37 additions & 0 deletions docs/docs/developer-guide/release/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Release

Release of a new version can be performed only by the project's maintainers after accumulating enough changes.

## Versioning

We follow [Semantic Versioning 2.0.0](https://semver.org/).

As long as we stay on MAJOR = 0, the rules of version bumping are liberal, and we can bump MINOR only on finalized
milestone features, while using PATCH for small features and bugfixes.

## Release Build

To create a Release Build, the maintainer creates a tag on `main` branch with the version and pushes it.

```bash
git tag v1.2.3
git push --tags
```

GitHub Actions workflow will start and create a draft release on GitHub. The maintainer reviews the release
and publishes it manually.

### Release Workflow Failure

If the workflow fails, we have to fix it and clean up unused tags.

1. Remove tag from GitHub using the UI.
2. Remove local tag: `git tag -d v1.2.3`
3. Create tag again: `git tag v1.2.3`
4. Push tags again: `git push --tags`

## Non-Release Builds

It's also possible to create GitHub releases that don't count as an official Release.
Such a build must have a version suffix like `v1.2.3-rc1`.
To create a Non-Release Build, follow the same rules as with Release Build but create a tag with a suffix.