get ready for release

This commit is contained in:
fatalerrors
2026-04-21 15:24:04 +02:00
parent 6106ca7684
commit a6e4d7a256
7 changed files with 109 additions and 21 deletions

View File

@@ -29,9 +29,48 @@ to target). Stale forks cause avoidable merge conflicts.
---
## 3. Development environment
## 3. Branch policy
| Requirement | Minimum version | Notes |
| Branch | Purpose |
|---|---|
| `master` | Main development branch — new features and enhancements go here |
| `<version>` (e.g. `3.x`) | Maintenance branch for a released version — bugfixes backported from `master` |
**New functionality** must always target `master`.
**Bugfixes** must target the branch where the bug was introduced:
- If the bug exists in a released version, open the fix against that version's
maintenance branch first, then cherry-pick onto `master`.
- If the bug is only in `master` (unreleased), fix it directly on `master`.
- During a release-candidate cycle, bugfixes go on the `x.*` branch and are
merged back into `master` before the final release.
Do **not** add new features to a maintenance branch.
---
## 4. Versioning scheme
Versions follow the format **`MAJOR.MINOR.PATCH`** where the `MINOR` number
conveys the development stage of the next major release:
| Minor range | Stage | Rules |
|---|---|---|
| `x.90.y` | **Alpha** toward `x+1` | Stays on `master`. Development is open: new features are welcome, regressions are acceptable. |
| `x.95.y` | **Beta** toward `x+1` | The `x+1.*` maintenance branch is created at this point. No regression unless absolutely necessary; new features still allowed. |
| `x.99.y` | **RC** toward `x+1` | Bugfixes only. No new features. No regression allowed. Becomes `x+1.0.0` when stable. |
Examples: `3.90.1` is the first alpha toward `4.0`, `3.99.2` is the second
release candidate for `4.0`.
The `PATCH` number increments freely within a stage. A bump in `MINOR`
(e.g. `90``95`) always indicates a stage promotion in development phase.
Any experimental version must have it's dedicated branch.
---
## 5. Development environment
|---|---|---|
| Bash | 4.3 | Namerefs (`local -n`) required |
| shellcheck | any recent | Run before every commit |
@@ -52,7 +91,7 @@ brew install shellcheck
---
## 4. Code style
## 6. Code style
### General rules
- **Bash only** — no external interpreters in core modules. Python or Perl is
@@ -62,8 +101,8 @@ brew install shellcheck
- **`[[ … ]]`** for all conditionals — not `[ … ]`.
- **`(( … ))`** for arithmetic — not `$(( … ))` in conditionals.
- **`local`** for all function-internal variables — avoid polluting the
environment.
- **`printf`** instead of `echo` wherever the format matters.
environment. Prefer upper case for global and lowercase for local.
- **`printf`** instead of `echo` all the time.
- **Never `eval`** — use namerefs (`local -n`), `${!varname}` indirection, or
`declare -g` instead.
- **No hardcoded defaults** — wire every configurable value through
@@ -100,7 +139,7 @@ Add the `load_conf` call near the top after any variable declarations.
---
## 5. Configuration keys
## 7. Configuration keys
When adding a configurable default:
@@ -110,7 +149,7 @@ When adding a configurable default:
---
## 6. Theming
## 8. Theming
New theme files go in `profile.d/themes/` with a `.theme` extension.
They are **parsed, not executed** — do not add shell logic.
@@ -118,7 +157,7 @@ See the existing themes and `README.md §4.4` for the allowed syntax.
---
## 7. Running shellcheck
## 9. Running shellcheck
```bash
shellcheck -x profile.sh profile.d/*.sh
@@ -130,7 +169,7 @@ comment explaining why the suppression is necessary.
---
## 8. Submitting a contribution
## 10. Submitting a contribution
### Via Git (preferred)
1. Contact the maintainer to obtain push access, or fork on the Gitea instance.
@@ -156,7 +195,7 @@ Reference issue numbers if applicable: closes #42.
---
## 9. What will be rejected
## 11. What will be rejected
- Code requiring packages not in a minimal Debian or CentOS install.
- Use of `eval`, `source`-based config loading, or other code-injection vectors.
@@ -166,6 +205,6 @@ Reference issue numbers if applicable: closes #42.
---
## 10. Financial contributions
## 12. Financial contributions
Contact the maintainer by mail if you wish to make a financial contribution.