diff --git a/.continue/rules/project.md b/.continue/rules/project.md index 681a9fb..e8f418b 100644 --- a/.continue/rules/project.md +++ b/.continue/rules/project.md @@ -1,4 +1,4 @@ -# Project status — fullupgrade +# Project Status — fullupgrade Last updated: 2026-04-27 @@ -31,38 +31,36 @@ Notes: Recommendations: - keep documenting the system impact clearly -- consider whether `pacman -Sc` is the right cache cleanup level for every use case ### 2) `makerelease.sh` Current behavior: -- takes `VERSION` and `MESSAGE` as arguments +- supports explicit versions like `1.2.3` +- supports version increments with `+0.0.1`, `+0.1`, and `+1` +- supports `--dry-run` to print the computed release version - checks that the current branch is `dev` +- verifies the working tree is clean +- checks that the target tag does not already exist - checks out `main` - merges `dev` into `main` - pushes the branch - creates an annotated tag - pushes tags -- returns to `dev` +- attempts to return to the original branch on exit Notes: -- the script currently does not use `set -euo pipefail` -- there is no check for a clean working tree -- there is no validation of the release message -- there is no guard against duplicate tags -- returning to `dev` is not protected if a command fails +- the script uses `set -euo pipefail` +- the release tag message is now generated automatically as `Release ` +- the script no longer requires a separate release message argument +- the current increment logic assumes simple dotted numeric tags Recommendations: -- add `set -euo pipefail` -- verify the Git status before releasing -- validate `VERSION` and `MESSAGE` -- prevent duplicate tags -- use a `trap` to return to the initial branch on failure -- improve the help output +- consider validating the version format more strictly if release rules grow +- keep the dry-run behavior documented and aligned with the script ### 3) `README.md` Current status: -- the README has a first complete pass in English -- it explains both scripts, their requirements, usage, warnings, and an example release command +- the README documents both scripts in English +- it now includes release increments and dry-run usage for `makerelease.sh` Recommendations: - keep it aligned with the actual script behavior @@ -75,11 +73,6 @@ This file should be updated whenever: - new constraints or design decisions are introduced - release workflow rules evolve -## Current priorities -1. Secure the Bash scripts -2. Keep documentation aligned with the scripts -3. Make the release workflow more robust - ## Maintenance notes - Always keep the README, the scripts, and this file consistent. - If a script changes, update this note immediately. diff --git a/project.md b/project.md deleted file mode 100644 index aad913c..0000000 --- a/project.md +++ /dev/null @@ -1,86 +0,0 @@ -# Project Status — fullupgrade - -Last updated: 2026-04-27 - -## Project goal -This repository contains two Bash scripts for system administration and Git release management: -- `fullupgrade`: Arch Linux maintenance script -- `makerelease.sh`: Git release automation script - -The project is intentionally minimal and centered on these two scripts. - -## Current structure -- `fullupgrade`: system update and cleanup -- `makerelease.sh`: release workflow from `dev` to `main` -- `README.md`: English documentation with usage, warnings, and examples -- `LICENSE`: GPLv3 - -## Current analysis - -### 1) `fullupgrade` -Current behavior: -- updates `archlinux-keyring` -- runs `pacman -Syu --noconfirm` -- removes orphaned packages only when any are found -- cleans the pacman cache - -Notes: -- the script already uses `set -euo pipefail` -- it checks for root privileges before running package operations -- it can have a significant system impact - -Recommendations: -- keep documenting the system impact clearly -- consider whether `pacman -Sc` is the right cache cleanup level for every use case - -### 2) `makerelease.sh` -Current behavior: -- supports explicit versions like `1.2.3` -- supports version increments with `+0.0.1`, `+0.1`, and `+1` -- supports `--dry-run` to print the computed release version -- checks that the current branch is `dev` -- verifies the working tree is clean -- checks that the target tag does not already exist -- checks out `main` -- merges `dev` into `main` -- pushes the branch -- creates an annotated tag -- pushes tags -- attempts to return to the original branch on exit - -Notes: -- the script uses `set -euo pipefail` -- the release tag message is now generated automatically as `Release ` -- the script no longer requires a separate release message argument -- the current increment logic assumes simple dotted numeric tags - -Recommendations: -- consider whether tags may need a `v` prefix in the future -- consider validating the version format more strictly if release rules grow -- keep the dry-run behavior documented and aligned with the script - -### 3) `README.md` -Current status: -- the README documents both scripts in English -- it now includes release increments and dry-run usage for `makerelease.sh` - -Recommendations: -- keep it aligned with the actual script behavior -- add more examples only if they improve clarity - -## Project tracking rules -This file should be updated whenever: -- script behavior changes -- documentation changes materially -- new constraints or design decisions are introduced -- release workflow rules evolve - -## Current priorities -1. Secure the Bash scripts -2. Keep documentation aligned with the scripts -3. Make the release workflow more robust - -## Maintenance notes -- Always keep the README, the scripts, and this file consistent. -- If a script changes, update this note immediately. -- If a new usage rule appears, document it here.