42deea5be2
Add set -euo pipefail, root checks, safer orphan cleanup, and a help message to fullupgrade. Refresh the README and project notes to match the current scripts and release process.
2.6 KiB
2.6 KiB
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 scriptmakerelease.sh: Git release automation script
The project is intentionally minimal and centered on these two scripts.
Current structure
fullupgrade: system update and cleanupmakerelease.sh: release workflow fromdevtomainREADME.md: English documentation with usage, warnings, and examplesLICENSE: 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 -Scis the right cache cleanup level for every use case
2) makerelease.sh
Current behavior:
- takes
VERSIONandMESSAGEas arguments - checks that the current branch is
dev - checks out
main - merges
devintomain - pushes the branch
- creates an annotated tag
- pushes tags
- returns to
dev
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
devis not protected if a command fails
Recommendations:
- add
set -euo pipefail - verify the Git status before releasing
- validate
VERSIONandMESSAGE - prevent duplicate tags
- use a
trapto return to the initial branch on failure - improve the help output
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
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
- Secure the Bash scripts
- Keep documentation aligned with the scripts
- 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.