rigsmith 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rigsmith-0.1.0/.github/ISSUE_TEMPLATE/bug.yml +27 -0
- rigsmith-0.1.0/.github/ISSUE_TEMPLATE/new-artifact.yml +39 -0
- rigsmith-0.1.0/.github/dependabot.yml +8 -0
- rigsmith-0.1.0/.github/pull_request_template.md +10 -0
- rigsmith-0.1.0/.github/workflows/ci.yml +17 -0
- rigsmith-0.1.0/.github/workflows/e2e.yml +57 -0
- rigsmith-0.1.0/.github/workflows/release.yml +23 -0
- rigsmith-0.1.0/.github/workflows/sources.yml +16 -0
- rigsmith-0.1.0/.gitignore +10 -0
- rigsmith-0.1.0/.python-version +1 -0
- rigsmith-0.1.0/DESIGN.md +572 -0
- rigsmith-0.1.0/LICENSE +21 -0
- rigsmith-0.1.0/PKG-INFO +216 -0
- rigsmith-0.1.0/README.md +197 -0
- rigsmith-0.1.0/config/example.yaml +218 -0
- rigsmith-0.1.0/config/presets/backend-go.yaml +56 -0
- rigsmith-0.1.0/config/presets/data-engineer.yaml +58 -0
- rigsmith-0.1.0/config/presets/java.yaml +47 -0
- rigsmith-0.1.0/config/presets/ml-engineer.yaml +56 -0
- rigsmith-0.1.0/config/presets/platform.yaml +61 -0
- rigsmith-0.1.0/config/presets/python.yaml +52 -0
- rigsmith-0.1.0/config/presets/rust.yaml +44 -0
- rigsmith-0.1.0/config/presets/server.yaml +32 -0
- rigsmith-0.1.0/config/presets/web.yaml +49 -0
- rigsmith-0.1.0/config/reference.yaml +333 -0
- rigsmith-0.1.0/docs/CATALOG.md +336 -0
- rigsmith-0.1.0/docs/screenshots/confirm.svg +195 -0
- rigsmith-0.1.0/docs/screenshots/help.svg +206 -0
- rigsmith-0.1.0/docs/screenshots/picker.svg +201 -0
- rigsmith-0.1.0/docs/screenshots/questionnaire.svg +199 -0
- rigsmith-0.1.0/install.sh +22 -0
- rigsmith-0.1.0/pyproject.toml +48 -0
- rigsmith-0.1.0/scripts/check_sources.py +54 -0
- rigsmith-0.1.0/scripts/gen_catalog.py +79 -0
- rigsmith-0.1.0/src/rigsmith/__init__.py +1 -0
- rigsmith-0.1.0/src/rigsmith/__main__.py +3 -0
- rigsmith-0.1.0/src/rigsmith/backends.py +305 -0
- rigsmith-0.1.0/src/rigsmith/cli.py +323 -0
- rigsmith-0.1.0/src/rigsmith/config.py +235 -0
- rigsmith-0.1.0/src/rigsmith/effects.py +158 -0
- rigsmith-0.1.0/src/rigsmith/library/__init__.py +26 -0
- rigsmith-0.1.0/src/rigsmith/library/_util.py +25 -0
- rigsmith-0.1.0/src/rigsmith/library/backend.py +9 -0
- rigsmith-0.1.0/src/rigsmith/library/cli.py +107 -0
- rigsmith-0.1.0/src/rigsmith/library/cloud.py +45 -0
- rigsmith-0.1.0/src/rigsmith/library/containers.py +40 -0
- rigsmith-0.1.0/src/rigsmith/library/core.py +23 -0
- rigsmith-0.1.0/src/rigsmith/library/data.py +21 -0
- rigsmith-0.1.0/src/rigsmith/library/dev.py +21 -0
- rigsmith-0.1.0/src/rigsmith/library/docs.py +9 -0
- rigsmith-0.1.0/src/rigsmith/library/editor.py +130 -0
- rigsmith-0.1.0/src/rigsmith/library/files/Catppuccin-Mocha.itermcolors +344 -0
- rigsmith-0.1.0/src/rigsmith/library/fun.py +17 -0
- rigsmith-0.1.0/src/rigsmith/library/git.py +53 -0
- rigsmith-0.1.0/src/rigsmith/library/go.py +11 -0
- rigsmith-0.1.0/src/rigsmith/library/iac.py +30 -0
- rigsmith-0.1.0/src/rigsmith/library/java.py +15 -0
- rigsmith-0.1.0/src/rigsmith/library/kubernetes.py +54 -0
- rigsmith-0.1.0/src/rigsmith/library/ml.py +15 -0
- rigsmith-0.1.0/src/rigsmith/library/python.py +57 -0
- rigsmith-0.1.0/src/rigsmith/library/questions.py +37 -0
- rigsmith-0.1.0/src/rigsmith/library/rust.py +23 -0
- rigsmith-0.1.0/src/rigsmith/library/shell.py +112 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/atuin.zsh +2 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/bat-aliases.zsh +5 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/direnv.zsh +2 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/docker-aliases.zsh +5 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/eza-aliases.zsh +13 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/fd-aliases.zsh +4 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/fun-aliases.zsh +8 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/fzf.zsh +26 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/gcloud.zsh +10 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/gcp-aliases.zsh +38 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/git-aliases.zsh +44 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/go.zsh +2 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/helix.zsh +1 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/helm-aliases.zsh +7 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/helm.zsh +7 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/homebrew.zsh +5 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/k8s-aliases.zsh +31 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/krew.zsh +2 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/kubectl.zsh +7 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/lazygit.zsh +1 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/micro.zsh +1 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/mise.zsh +2 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/neovim.zsh +1 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/omz-plugins.zsh +8 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/openjdk.zsh +4 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/p10k-instant.zsh +4 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/p10k.zsh +3 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/python-aliases.zsh +10 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/ripgrep-aliases.zsh +6 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/rustup.zsh +2 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/shell-aliases.zsh +19 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/shell-extras.zsh +17 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/shell-functions.zsh +40 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/starship.zsh +2 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/sys-aliases.zsh +6 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/terraform-aliases.zsh +10 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/thefuck.zsh +3 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/yazi.zsh +7 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/zinit.zsh +2 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/zoxide.zsh +4 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/zsh-autosuggestions.zsh +5 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/zsh-completion.zsh +7 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/zsh-completions.zsh +2 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/zsh-history-substring-search.zsh +4 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/zsh-options.zsh +11 -0
- rigsmith-0.1.0/src/rigsmith/library/snippets/zsh-syntax-highlighting.zsh +2 -0
- rigsmith-0.1.0/src/rigsmith/library/terminal.py +44 -0
- rigsmith-0.1.0/src/rigsmith/library/web.py +20 -0
- rigsmith-0.1.0/src/rigsmith/model.py +339 -0
- rigsmith-0.1.0/src/rigsmith/plan.py +183 -0
- rigsmith-0.1.0/src/rigsmith/runner.py +249 -0
- rigsmith-0.1.0/src/rigsmith/settings.py +118 -0
- rigsmith-0.1.0/src/rigsmith/shell.py +82 -0
- rigsmith-0.1.0/src/rigsmith/state.py +61 -0
- rigsmith-0.1.0/src/rigsmith/tui.py +483 -0
- rigsmith-0.1.0/tests/conftest.py +10 -0
- rigsmith-0.1.0/tests/e2e/check.py +48 -0
- rigsmith-0.1.0/tests/e2e/run.sh +38 -0
- rigsmith-0.1.0/tests/test_cli.py +134 -0
- rigsmith-0.1.0/tests/test_engine.py +196 -0
- rigsmith-0.1.0/tests/test_library.py +87 -0
- rigsmith-0.1.0/tests/test_runner.py +221 -0
- rigsmith-0.1.0/tests/test_tui.py +68 -0
- rigsmith-0.1.0/uv.lock +284 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: Bug
|
|
2
|
+
description: Something rigsmith did (or didn't do) that it shouldn't have
|
|
3
|
+
labels: [bug]
|
|
4
|
+
body:
|
|
5
|
+
- type: textarea
|
|
6
|
+
id: what
|
|
7
|
+
attributes:
|
|
8
|
+
label: What happened, and what did you expect?
|
|
9
|
+
validations: {required: true}
|
|
10
|
+
- type: input
|
|
11
|
+
id: command
|
|
12
|
+
attributes:
|
|
13
|
+
label: Command you ran
|
|
14
|
+
placeholder: rigsmith install -p standard -y
|
|
15
|
+
validations: {required: true}
|
|
16
|
+
- type: input
|
|
17
|
+
id: platform
|
|
18
|
+
attributes:
|
|
19
|
+
label: Platform (the last line of `rigsmith scan`)
|
|
20
|
+
placeholder: macos 15.1 (arm64)
|
|
21
|
+
validations: {required: true}
|
|
22
|
+
- type: textarea
|
|
23
|
+
id: log
|
|
24
|
+
attributes:
|
|
25
|
+
label: Relevant log lines
|
|
26
|
+
description: From ~/.local/state/rigsmith/logs/ (check for anything private first)
|
|
27
|
+
render: text
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
name: New artifact
|
|
2
|
+
description: Propose a tool for the built-in library
|
|
3
|
+
labels: [artifact]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
The built-in library takes **widely used, maintained** tools that install with Homebrew on macOS
|
|
9
|
+
and Homebrew or apt on Linux (or are clearly marked mac-only / linux-only). Niche tools are better as
|
|
10
|
+
a `custom:` entry in your own config.
|
|
11
|
+
- type: input
|
|
12
|
+
id: tool
|
|
13
|
+
attributes: {label: Tool and homepage}
|
|
14
|
+
validations: {required: true}
|
|
15
|
+
- type: textarea
|
|
16
|
+
id: why
|
|
17
|
+
attributes:
|
|
18
|
+
label: Why it belongs (who uses it, what it replaces)
|
|
19
|
+
validations: {required: true}
|
|
20
|
+
- type: input
|
|
21
|
+
id: sources
|
|
22
|
+
attributes:
|
|
23
|
+
label: Install names
|
|
24
|
+
placeholder: "brew: eza · cask: — · apt: eza · VS Code: —"
|
|
25
|
+
validations: {required: true}
|
|
26
|
+
- type: input
|
|
27
|
+
id: place
|
|
28
|
+
attributes:
|
|
29
|
+
label: Section / subsection / profile
|
|
30
|
+
placeholder: cli / files / minimal
|
|
31
|
+
- type: input
|
|
32
|
+
id: role
|
|
33
|
+
attributes:
|
|
34
|
+
label: Role, if it competes with an existing tool
|
|
35
|
+
placeholder: "prompt (alternative to p10k / starship)"
|
|
36
|
+
- type: textarea
|
|
37
|
+
id: config
|
|
38
|
+
attributes:
|
|
39
|
+
label: Config it needs to work (integration) vs optional taste (a separate artifact)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
## What
|
|
2
|
+
|
|
3
|
+
## Checklist (library changes)
|
|
4
|
+
|
|
5
|
+
- [ ] Every new artifact has a 1–2 sentence `help` that says what it is and the one command to try
|
|
6
|
+
- [ ] It's listed in `config/reference.yaml` (section, subsection, profile)
|
|
7
|
+
- [ ] Config the tool **needs** stays in its artifact; aliases, themes and preferences are a separate artifact
|
|
8
|
+
- [ ] Snippets use the right phase (10 env · 30 plugins · 50 tool init · 70 aliases · 90 prompt)
|
|
9
|
+
- [ ] `uv run python scripts/check_sources.py` passes (brew names and VS Code ids exist)
|
|
10
|
+
- [ ] Tried on macOS / Linux (say which), or explain why CI covers it
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: ci
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches: [main]
|
|
5
|
+
pull_request:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
check:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v7
|
|
12
|
+
- uses: astral-sh/setup-uv@v7
|
|
13
|
+
- run: uv sync --locked
|
|
14
|
+
- run: uv run ruff check .
|
|
15
|
+
- run: uv run ruff format --check .
|
|
16
|
+
- run: uv run ty check src
|
|
17
|
+
- run: uv run pytest -q
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
name: e2e
|
|
2
|
+
# The real install → verify → reinstall (0 changes) → uninstall → verify cycle, on throwaway machines.
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
schedule:
|
|
8
|
+
- cron: "0 3 * * 0" # weekly: every preset on Ubuntu
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
inputs:
|
|
11
|
+
args:
|
|
12
|
+
description: "rigsmith filters, e.g. `-p standard` or `-c platform`"
|
|
13
|
+
default: "-c platform"
|
|
14
|
+
os:
|
|
15
|
+
description: Where to run
|
|
16
|
+
type: choice
|
|
17
|
+
options: [both, ubuntu, macos]
|
|
18
|
+
default: both
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
macos:
|
|
22
|
+
# macOS minutes are billed 10x on private repos: pushes, PRs and manual runs only.
|
|
23
|
+
if: github.event_name != 'schedule' && inputs.os != 'ubuntu'
|
|
24
|
+
runs-on: macos-latest
|
|
25
|
+
env:
|
|
26
|
+
E2E_ARGS: ${{ inputs.args || '-p minimal -s system -s shell -s cli -s git' }}
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v7
|
|
29
|
+
- uses: astral-sh/setup-uv@v7
|
|
30
|
+
- run: tests/e2e/run.sh
|
|
31
|
+
|
|
32
|
+
ubuntu:
|
|
33
|
+
# A bare container: exercises the Homebrew bootstrap, apt, chsh, as a non-root user (brew refuses root).
|
|
34
|
+
# One job per preset keeps each container's disk use bounded.
|
|
35
|
+
if: inputs.os != 'macos'
|
|
36
|
+
runs-on: ubuntu-latest
|
|
37
|
+
container: ubuntu:24.04
|
|
38
|
+
strategy:
|
|
39
|
+
fail-fast: false
|
|
40
|
+
matrix:
|
|
41
|
+
args: >-
|
|
42
|
+
${{ fromJSON(github.event_name == 'schedule'
|
|
43
|
+
&& '["-c python", "-c backend-go", "-c rust", "-c java", "-c web",
|
|
44
|
+
"-c data-engineer", "-c ml-engineer", "-c platform", "-c server"]'
|
|
45
|
+
|| format('["{0}"]', inputs.args || '-p minimal -s system -s shell -s cli -s git')) }}
|
|
46
|
+
env:
|
|
47
|
+
E2E_ARGS: ${{ matrix.args }}
|
|
48
|
+
steps:
|
|
49
|
+
- run: apt-get update -q && apt-get install -y -q sudo curl git ca-certificates
|
|
50
|
+
- uses: actions/checkout@v7
|
|
51
|
+
- run: |
|
|
52
|
+
useradd -m -s /bin/bash tester
|
|
53
|
+
echo 'tester ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/tester
|
|
54
|
+
chown -R tester "$GITHUB_WORKSPACE"
|
|
55
|
+
- run: |
|
|
56
|
+
su tester -c "curl -LsSf https://astral.sh/uv/install.sh | sh && \
|
|
57
|
+
export PATH=\$HOME/.local/bin:\$PATH && cd '$GITHUB_WORKSPACE' && E2E_ARGS='$E2E_ARGS' tests/e2e/run.sh"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: release
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
tags: ["v*"]
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
pypi:
|
|
8
|
+
# Needs a PyPI "trusted publisher" for this repo + workflow (no API token stored anywhere).
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
environment: pypi
|
|
11
|
+
permissions:
|
|
12
|
+
id-token: write
|
|
13
|
+
contents: write
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v7
|
|
16
|
+
- uses: astral-sh/setup-uv@v7
|
|
17
|
+
- name: tag matches pyproject version
|
|
18
|
+
run: test "v$(uv version --short)" = "$GITHUB_REF_NAME"
|
|
19
|
+
- run: uv build
|
|
20
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
21
|
+
- run: gh release create "$GITHUB_REF_NAME" dist/* --generate-notes
|
|
22
|
+
env:
|
|
23
|
+
GH_TOKEN: ${{ github.token }}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: sources
|
|
2
|
+
# Upstreams move: formulae get removed (licenses), extensions get built in. Catch it before users do.
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
paths: ["src/rigsmith/library/**", "scripts/check_sources.py"]
|
|
6
|
+
schedule:
|
|
7
|
+
- cron: "0 6 * * 1"
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
check:
|
|
12
|
+
runs-on: macos-latest # has brew, for tap formulae and aliases
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v7
|
|
15
|
+
- uses: astral-sh/setup-uv@v7
|
|
16
|
+
- run: uv run python scripts/check_sources.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.14
|