-
Notifications
You must be signed in to change notification settings - Fork 0
docs: clearly document breaking changes and migration paths #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -8,9 +8,27 @@ status: current | |||||||
|
|
||||||||
| All notable changes to this project will be documented in this file. | ||||||||
|
|
||||||||
| The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), | ||||||||
| The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), | ||||||||
|
||||||||
| The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), | |
| The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This adds a second ## [Unreleased] header to the file (the existing one is at line 34). This duplication can break automated tools like "Release Please" which rely on specific header markers to insert new release notes. Consider merging this content under the existing header or removing the redundant one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛑 Logic Error: Duplicate "## [Unreleased]" section header. Line 14 introduces a new Unreleased section with breaking changes, but line 34 contains an existing duplicate header. This will break changelog parsers and confuse readers about which section is active. Remove the duplicate header at line 34.
| ## [Unreleased] | |
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -17,6 +17,23 @@ status: current | |||||||||||||
|
|
||||||||||||||
| A modular, portable Bash environment you can install on any machine. get-bashed gives you clean shell defaults, ordered runtime modules, a centralized tool installer, and reproducible configuration — without touching anything you do not explicitly ask it to touch. | ||||||||||||||
|
|
||||||||||||||
| ## ⚠️ Upgrading & Breaking Changes | ||||||||||||||
|
|
||||||||||||||
| **BREAKING CHANGE:** As of the latest release, get-bashed consolidates all runtime modules, local secrets, and dotfiles into a single managed prefix (default: `~/.get-bashed/`). | ||||||||||||||
|
|
||||||||||||||
| If you are upgrading from a legacy installation (where files were stored in `~/.bashrc.d` and `~/.secrets.d`), the installer will attempt to automatically migrate your custom scripts and secrets into the new managed prefix. | ||||||||||||||
|
||||||||||||||
| If you are upgrading from a legacy installation (where files were stored in `~/.bashrc.d` and `~/.secrets.d`), the installer will attempt to automatically migrate your custom scripts and secrets into the new managed prefix. | |
| If you are upgrading from a legacy installation (where files were stored in `~/.bashrc.d` and `~/.secrets.d`), the installer will attempt to automatically migrate your custom scripts and secrets into the new managed prefix. After a successful migration, the legacy `~/.bashrc.d` and `~/.secrets.d` directories are deleted so the old locations are no longer used. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The backup commands use cp -r, which does not preserve file permissions and relies on the current umask for the destination. For sensitive directories like ~/.secrets.d, this could result in the backup being created with overly permissive access (e.g., world-readable). Using cp -rp is safer as it preserves the original restrictive permissions.
| cp -r ~/.bashrc.d ~/bashrc.d.backup 2>/dev/null || true | |
| cp -r ~/.secrets.d ~/secrets.d.backup 2>/dev/null || true | |
| cp -rp ~/.bashrc.d ~/bashrc.d.backup 2>/dev/null || true | |
| cp -rp ~/.secrets.d ~/secrets.d.backup 2>/dev/null || true |
Copilot
AI
Apr 10, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The backup command for ~/.secrets.d uses cp -r into ~/secrets.d.backup, which will typically create the destination directory with default umask (often 755). That can unintentionally make secret material readable by other local users. Consider using a backup approach that preserves restrictive permissions (e.g., cp -a/tar plus an explicit chmod 700 on the backup dir).
| cp -r ~/.secrets.d ~/secrets.d.backup 2>/dev/null || true | |
| cp -a ~/.secrets.d ~/secrets.d.backup 2>/dev/null && chmod 700 ~/secrets.d.backup || true |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -2,6 +2,18 @@ | |||||||||||||||||||||||
|
|
||||||||||||||||||||||||
| Installer and configurator for get-bashed. | ||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
| ## ⚠️ Upgrading & Breaking Changes | ||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
| **BREAKING CHANGE:** As of the latest release, get-bashed consolidates all runtime modules, local secrets, and dotfiles into a single managed prefix (default: `~/.get-bashed/`). | ||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
| If you are upgrading from a legacy installation (where files were stored in `~/.bashrc.d` and `~/.secrets.d`), the installer will attempt to automatically migrate your custom scripts and secrets into the new managed prefix. | ||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
| **Before upgrading, it is highly recommended to back up your custom modules:** | ||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||
| cp -r ~/.bashrc.d ~/bashrc.d.backup 2>/dev/null || true | ||||||||||||||||||||||||
| cp -r ~/.secrets.d ~/secrets.d.backup 2>/dev/null || true | ||||||||||||||||||||||||
|
Comment on lines
+13
to
+14
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The backup commands use
Suggested change
|
||||||||||||||||||||||||
| cp -r ~/.secrets.d ~/secrets.d.backup 2>/dev/null || true | |
| install -d -m 700 ~/secrets.d.backup 2>/dev/null && cp -a ~/.secrets.d/. ~/secrets.d.backup/ 2>/dev/null || true |
Copilot
AI
Apr 10, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
docs/INSTALLER.md is generated by scripts/gen-docs.sh (via shdoc < install.bash > docs/INSTALLER.md). Manual edits here will be overwritten the next time docs are regenerated. Please move this breaking-change/upgrade guidance into the shdoc source in install.bash (or the docs generation pipeline) and regenerate the file.
| ## ⚠️ Upgrading & Breaking Changes | |
| **BREAKING CHANGE:** As of the latest release, get-bashed consolidates all runtime modules, local secrets, and dotfiles into a single managed prefix (default: `~/.get-bashed/`). | |
| If you are upgrading from a legacy installation (where files were stored in `~/.bashrc.d` and `~/.secrets.d`), the installer will attempt to automatically migrate your custom scripts and secrets into the new managed prefix. | |
| **Before upgrading, it is highly recommended to back up your custom modules:** | |
| ```bash | |
| cp -r ~/.bashrc.d ~/bashrc.d.backup 2>/dev/null || true | |
| cp -r ~/.secrets.d ~/secrets.d.backup 2>/dev/null || true | |
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The version of the "Keep a Changelog" specification has been downgraded from
1.1.0to1.0.0. Unless there is a specific reason to target the older 2017 version of the spec, it is recommended to use1.1.0which is the current standard.