Skip to content

docs: clearly document breaking changes and migration paths#13

Merged
jbdevprimary merged 1 commit into
mainfrom
docs/breaking-changes-migration
Apr 10, 2026
Merged

docs: clearly document breaking changes and migration paths#13
jbdevprimary merged 1 commit into
mainfrom
docs/breaking-changes-migration

Conversation

@jbdevprimary
Copy link
Copy Markdown
Contributor

@jbdevprimary jbdevprimary commented Apr 10, 2026

Adds prominent warnings in the README, CHANGELOG, and INSTALLER docs to alert users about the breaking architectural shift to the consolidated ~/.get-bashed prefix, along with explicit backup and upgrade commands.

Summary by CodeRabbit

  • New Features

    • Sphinx documentation published on GitHub Pages
    • Automatic eza-based ls alias integration
    • New mkcd helper function
    • Stricter security permissions for secrets and SSH agent socket
  • Improvements

    • Enhanced startup performance through optimized shell configuration loading
  • Documentation

    • Added comprehensive upgrading guide with breaking changes details and automatic migration from legacy installation paths

Copilot AI review requested due to automatic review settings April 10, 2026 16:14
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 10, 2026

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

Documentation updates across three files describing a breaking change that consolidates runtime modules, local secrets, and dotfiles into a single managed directory prefix (~/.get-bashed/), including migration guidance and upgrade procedures for existing installations.

Changes

Cohort / File(s) Summary
Documentation - Breaking Changes & Upgrade Guidance
CHANGELOG.md, README.md, docs/INSTALLER.md
Added "Upgrading & Breaking Changes" sections documenting the consolidation of install/secrets/runtime modules under ~/.get-bashed/, dotfile symlinking behavior changes, automatic migration from legacy directories, and backup/upgrade procedures. Updated changelog format reference to v1.0.0.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

A rabbit hops through docs so neat, 🐰
Breaking changes, oh how sweet!
Consolidate and organize true,
Migration paths for me and you.
One managed home, no more to roam!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs: clearly document breaking changes and migration paths' directly reflects the main changes in the PR, which document breaking changes across CHANGELOG.md, README.md, and INSTALLER.md with explicit migration guidance.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/breaking-changes-migration

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@amazon-q-developer amazon-q-developer Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR adds important documentation for the breaking changes related to the consolidated installation prefix. The warnings and migration instructions are well-structured and prominently placed.

Critical issue identified:

  • Duplicate ## [Unreleased] header in CHANGELOG.md that will break changelog parsers

Once the duplicate header is removed, this documentation will properly inform users about the breaking changes and provide clear migration steps.


You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.

Comment thread CHANGELOG.md

<!-- Release Please inserts release sections above this line. -->

## [Unreleased]
Copy link
Copy Markdown

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.

Suggested change
## [Unreleased]

@jbdevprimary jbdevprimary merged commit 22eff2b into main Apr 10, 2026
9 of 11 checks passed
@jbdevprimary jbdevprimary deleted the docs/breaking-changes-migration branch April 10, 2026 16:16
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a consolidated installation prefix (~/.get-bashed/) for runtime modules and secrets, representing a significant structural change. The documentation and changelog have been updated to include migration instructions and a summary of new features like native globstar support and security enforcement for secrets. Review feedback highlights a versioning downgrade in the changelog specification, a duplicate header that may break release automation, and a security concern regarding the preservation of file permissions in the recommended backup commands.

Comment thread CHANGELOG.md
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/),
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The version of the "Keep a Changelog" specification has been downgraded from 1.1.0 to 1.0.0. Unless there is a specific reason to target the older 2017 version of the spec, it is recommended to use 1.1.0 which is the current standard.

Suggested change
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/),

Comment thread CHANGELOG.md
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

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.

Comment thread README.md
Comment on lines +28 to +29
cp -r ~/.bashrc.d ~/bashrc.d.backup 2>/dev/null || true
cp -r ~/.secrets.d ~/secrets.d.backup 2>/dev/null || true
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

security-medium medium

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.

Suggested change
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

Comment thread docs/INSTALLER.md
Comment on lines +13 to +14
cp -r ~/.bashrc.d ~/bashrc.d.backup 2>/dev/null || true
cp -r ~/.secrets.d ~/secrets.d.backup 2>/dev/null || true
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

security-medium medium

The backup commands use cp -r, which does not preserve file permissions. For sensitive directories like ~/.secrets.d, this could result in the backup being created with insecure permissions depending on the system umask. Using cp -rp ensures that the restrictive permissions of the secrets directory are maintained in the backup.

Suggested change
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

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to make the project’s breaking architectural migration to the consolidated ~/.get-bashed/ prefix highly visible and actionable for existing users by adding upgrade warnings and migration guidance across primary docs.

Changes:

  • Added an “Upgrading & Breaking Changes” warning section to the README and installer documentation.
  • Expanded the changelog with an Unreleased section detailing breaking changes plus related additions/changes.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

File Description
README.md Adds prominent upgrade/breaking-change notice plus backup + upgrade commands.
docs/INSTALLER.md Adds upgrade/breaking-change notice to installer docs (but this file appears generated).
CHANGELOG.md Adds detailed Unreleased breaking changes and other entries; adjusts Keep a Changelog link.
Comments suppressed due to low confidence (1)

CHANGELOG.md:36

  • There are now two ## [Unreleased] sections (one at the top and another immediately after the "Release Please" marker). This will confuse readers and may break/complicate release automation expectations. Please keep a single Unreleased section and remove/move the extra header so the file structure is unambiguous.
<!-- Release Please inserts release sections above this line. -->

## [Unreleased]

## [0.1.0] — 2026-02-03

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
**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
Copy link

Copilot AI Apr 10, 2026

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).

Suggested change
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

Copilot uses AI. Check for mistakes.
Comment thread README.md

**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.
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The docs say the installer will "migrate" legacy ~/.bashrc.d and ~/.secrets.d, but the installer actually removes those directories after copying their files (to avoid continuing to use legacy locations). It would be good to explicitly warn that the legacy directories will be deleted after a successful migration so users aren't surprised.

Suggested change
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.

Copilot uses AI. Check for mistakes.
Comment thread docs/INSTALLER.md
Comment on lines +5 to +16
## ⚠️ 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
```

Copy link

Copilot AI Apr 10, 2026

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.

Suggested change
## ⚠️ 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
```

Copilot uses AI. Check for mistakes.
Comment thread docs/INSTALLER.md
**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
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as README: the suggested cp -r ~/.secrets.d ~/secrets.d.backup backup will usually create ~/secrets.d.backup with default umask permissions, which may expose secrets to other local users. Recommend a backup command that preserves/forces restrictive permissions for the backup directory and files.

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 uses AI. Check for mistakes.
Comment thread CHANGELOG.md
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/),
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Keep a Changelog link was changed from 1.1.0 to 1.0.0. Unless there's a specific reason to pin to 1.0.0, consider reverting this to avoid unrelated churn in a PR focused on breaking-change documentation.

Suggested change
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/),

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants