Files

2.7 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 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

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
  • displays the computed release tag before proceeding
  • asks for confirmation before any Git action
  • 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 automatically generated as Release <version>
  • the script no longer requires a separate release message argument
  • the current increment logic assumes simple dotted numeric tags
  • normal releases now require an interactive confirmation after the tag is displayed

Recommendations:

  • 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 includes release increments, dry-run usage, and the confirmation step 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

Maintenance notes

  • Always keep the README, the scripts, and this file consistent.
  • If a script changes, update this note immediately (./continue/rules/project.md).
  • If a new usage rule appears, document it here.