release-process-improvements (#10)

Reviewed-on: lxcafe/lxcafe#10
This commit is contained in:
2026-03-15 12:05:52 +01:00
parent fb40815e6c
commit 63e26040fa
4 changed files with 194 additions and 107 deletions
+24 -15
View File
@@ -20,30 +20,39 @@ This way you can test the script multiple times without needing to reinstall Lin
## Release Process
This project uses a simple release process based on git tags.
This project uses a two-step release process.
### Versioning
- Version is stored in `VERSION` file (format: v0, v1, v2, ...)
- Major version increments only (major-bugfix scheme)
- Script version is also stored in `SCRIPT_VERSION` variable within the main script to display version during script execution
- Major version increments only
- Script version stored in `SCRIPT_VERSION` variable
### Creating a Release
Run the release script from the repository root:
### Step 1: Prepare Release
- Make sure you are on main branch with no local changes. Script will abort otherwise
Run from repository root:
```bash
./release.sh
./01_prepare_release.sh
```
The script will:
1. Check for uncommitted local changes (exits if any exist)
2. Show current version and propose next version
3. Prompt for confirmation
4. Update VERSION file and SCRIPT_VERSION in the script
5. Create a git commit
6. Create an annotated tag
7. Prompt to push to origin (including tags)
- Update VERSION file and SCRIPT_VERSION in the script
- Create a release branch (e.g., `release/v1`)
- Push the release branch
### Gitea Integration
When a tag is pushed to the remote, Gitea automatically creates a release from it.
### After step 1 (manual)
- Create and merge PR from release branch to main
### Step 2: Finalize Release (After PR Merged)
Run from repository root:
```bash
./02_finalise_release.sh
```
The script will:
- Create and push tag for release version to main
### After step 2 (manual)
- Create a release in gitea
### Requirements
- Clean working tree (no uncommitted changes)