Graduating Bootstrap from 'Collection of Scripts' to an 'Environment Manager'
@sortedcord is already working on this.
Since Jun 28, 2026.
Assessment
This issue has not been assessed yet.
Description
Contrary to how I started bootstrap, it has outgrown the scope of a project that's just "a collection of scripts"
With changes like #16 (Three strategy install model) and procedural rollback implementation and #5 in the future, bootstrap is taking shape of declarative, distro agnostic environment manager.
Like a personal package manager that installs and tracks CLI tools, runtimes and system packages that a user relies on all behind a single audited registry.
To achieve this, bootstrap needs to do the following:
-
#23
-
The CLI, planned async exec graph,
registry.jsonengine, the plugin runtime, and the auth server integration remains as the Bootstrap Core (b) -
The collection of base-only installers are yanked out of bootstrap into a Default Registry. These installers do not touch the
~/.configyet. -
Personal Overlays (Taps): Personal dotfiles, aliases, and specific configurations become a separate repository. This is added as a "tap" (Borrowing from homebrew). Taps work pretty straightforward
b tap add johndoe/bootstrapSo when a user runs
b install nvim, they get the base. If they want another person's exact setup they would need to add their tap and then install itb tap add johndoe/mybootstrap b johndoe/nvim-confThe specifics and UX is subject to revision.
-
-
#24
-
We standardize installers to expose Targets (or Phases).
-
An installer should be a standard bash file that defines specific, named function. Bootstrap's CLI then parses these and allows the user to invoke them directly as well.
b ware nvim:base|system-symlink
this would install the base and system-symlink targets.
-
-
#25
- Instead of using the old
installers/install_<toolname>.shstructure, use atools/<toolname>/tool.shscaffolding for registries. - Each tool gets its own namespace directory
- Allows for per-tool extras: patches, hooks, etc
- Instead of using the old
-
Structured Documentation and basic wiki
- Dominant language
- Shell
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sortedcord/bootstrap
-
enhancement
sortedcord/bootstrap#28 · 1 assignee ·
-
feature
sortedcord/bootstrap#27 · 1 assignee ·
-
Install Targets Openfeature
sortedcord/bootstrap#24 · 1 assignee ·
-
sortedcord/bootstrap#23 · 1 assignee ·
-
enhancement
sortedcord/bootstrap#17 · 1 assignee ·
All issues in sortedcord/bootstrap
Similar issues
-
docs(agents): strengthen the no-backslash-escaped-backticks rule with an issue-creation example Open
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
package-update
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
oSoWoSo/vOid_Community_repOsitory#148 · 1 comment ·
-
chore
Difficulty 1/5 Under an hour Newbie friendliness 91/100
alunduil/alunduil-chezmoi#792 ·
-
area: compat bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
zenhub-dev
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
OpenLiberty/ci.docker#747 ·