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.
Files changed (127) hide show
  1. rigsmith-0.1.0/.github/ISSUE_TEMPLATE/bug.yml +27 -0
  2. rigsmith-0.1.0/.github/ISSUE_TEMPLATE/new-artifact.yml +39 -0
  3. rigsmith-0.1.0/.github/dependabot.yml +8 -0
  4. rigsmith-0.1.0/.github/pull_request_template.md +10 -0
  5. rigsmith-0.1.0/.github/workflows/ci.yml +17 -0
  6. rigsmith-0.1.0/.github/workflows/e2e.yml +57 -0
  7. rigsmith-0.1.0/.github/workflows/release.yml +23 -0
  8. rigsmith-0.1.0/.github/workflows/sources.yml +16 -0
  9. rigsmith-0.1.0/.gitignore +10 -0
  10. rigsmith-0.1.0/.python-version +1 -0
  11. rigsmith-0.1.0/DESIGN.md +572 -0
  12. rigsmith-0.1.0/LICENSE +21 -0
  13. rigsmith-0.1.0/PKG-INFO +216 -0
  14. rigsmith-0.1.0/README.md +197 -0
  15. rigsmith-0.1.0/config/example.yaml +218 -0
  16. rigsmith-0.1.0/config/presets/backend-go.yaml +56 -0
  17. rigsmith-0.1.0/config/presets/data-engineer.yaml +58 -0
  18. rigsmith-0.1.0/config/presets/java.yaml +47 -0
  19. rigsmith-0.1.0/config/presets/ml-engineer.yaml +56 -0
  20. rigsmith-0.1.0/config/presets/platform.yaml +61 -0
  21. rigsmith-0.1.0/config/presets/python.yaml +52 -0
  22. rigsmith-0.1.0/config/presets/rust.yaml +44 -0
  23. rigsmith-0.1.0/config/presets/server.yaml +32 -0
  24. rigsmith-0.1.0/config/presets/web.yaml +49 -0
  25. rigsmith-0.1.0/config/reference.yaml +333 -0
  26. rigsmith-0.1.0/docs/CATALOG.md +336 -0
  27. rigsmith-0.1.0/docs/screenshots/confirm.svg +195 -0
  28. rigsmith-0.1.0/docs/screenshots/help.svg +206 -0
  29. rigsmith-0.1.0/docs/screenshots/picker.svg +201 -0
  30. rigsmith-0.1.0/docs/screenshots/questionnaire.svg +199 -0
  31. rigsmith-0.1.0/install.sh +22 -0
  32. rigsmith-0.1.0/pyproject.toml +48 -0
  33. rigsmith-0.1.0/scripts/check_sources.py +54 -0
  34. rigsmith-0.1.0/scripts/gen_catalog.py +79 -0
  35. rigsmith-0.1.0/src/rigsmith/__init__.py +1 -0
  36. rigsmith-0.1.0/src/rigsmith/__main__.py +3 -0
  37. rigsmith-0.1.0/src/rigsmith/backends.py +305 -0
  38. rigsmith-0.1.0/src/rigsmith/cli.py +323 -0
  39. rigsmith-0.1.0/src/rigsmith/config.py +235 -0
  40. rigsmith-0.1.0/src/rigsmith/effects.py +158 -0
  41. rigsmith-0.1.0/src/rigsmith/library/__init__.py +26 -0
  42. rigsmith-0.1.0/src/rigsmith/library/_util.py +25 -0
  43. rigsmith-0.1.0/src/rigsmith/library/backend.py +9 -0
  44. rigsmith-0.1.0/src/rigsmith/library/cli.py +107 -0
  45. rigsmith-0.1.0/src/rigsmith/library/cloud.py +45 -0
  46. rigsmith-0.1.0/src/rigsmith/library/containers.py +40 -0
  47. rigsmith-0.1.0/src/rigsmith/library/core.py +23 -0
  48. rigsmith-0.1.0/src/rigsmith/library/data.py +21 -0
  49. rigsmith-0.1.0/src/rigsmith/library/dev.py +21 -0
  50. rigsmith-0.1.0/src/rigsmith/library/docs.py +9 -0
  51. rigsmith-0.1.0/src/rigsmith/library/editor.py +130 -0
  52. rigsmith-0.1.0/src/rigsmith/library/files/Catppuccin-Mocha.itermcolors +344 -0
  53. rigsmith-0.1.0/src/rigsmith/library/fun.py +17 -0
  54. rigsmith-0.1.0/src/rigsmith/library/git.py +53 -0
  55. rigsmith-0.1.0/src/rigsmith/library/go.py +11 -0
  56. rigsmith-0.1.0/src/rigsmith/library/iac.py +30 -0
  57. rigsmith-0.1.0/src/rigsmith/library/java.py +15 -0
  58. rigsmith-0.1.0/src/rigsmith/library/kubernetes.py +54 -0
  59. rigsmith-0.1.0/src/rigsmith/library/ml.py +15 -0
  60. rigsmith-0.1.0/src/rigsmith/library/python.py +57 -0
  61. rigsmith-0.1.0/src/rigsmith/library/questions.py +37 -0
  62. rigsmith-0.1.0/src/rigsmith/library/rust.py +23 -0
  63. rigsmith-0.1.0/src/rigsmith/library/shell.py +112 -0
  64. rigsmith-0.1.0/src/rigsmith/library/snippets/atuin.zsh +2 -0
  65. rigsmith-0.1.0/src/rigsmith/library/snippets/bat-aliases.zsh +5 -0
  66. rigsmith-0.1.0/src/rigsmith/library/snippets/direnv.zsh +2 -0
  67. rigsmith-0.1.0/src/rigsmith/library/snippets/docker-aliases.zsh +5 -0
  68. rigsmith-0.1.0/src/rigsmith/library/snippets/eza-aliases.zsh +13 -0
  69. rigsmith-0.1.0/src/rigsmith/library/snippets/fd-aliases.zsh +4 -0
  70. rigsmith-0.1.0/src/rigsmith/library/snippets/fun-aliases.zsh +8 -0
  71. rigsmith-0.1.0/src/rigsmith/library/snippets/fzf.zsh +26 -0
  72. rigsmith-0.1.0/src/rigsmith/library/snippets/gcloud.zsh +10 -0
  73. rigsmith-0.1.0/src/rigsmith/library/snippets/gcp-aliases.zsh +38 -0
  74. rigsmith-0.1.0/src/rigsmith/library/snippets/git-aliases.zsh +44 -0
  75. rigsmith-0.1.0/src/rigsmith/library/snippets/go.zsh +2 -0
  76. rigsmith-0.1.0/src/rigsmith/library/snippets/helix.zsh +1 -0
  77. rigsmith-0.1.0/src/rigsmith/library/snippets/helm-aliases.zsh +7 -0
  78. rigsmith-0.1.0/src/rigsmith/library/snippets/helm.zsh +7 -0
  79. rigsmith-0.1.0/src/rigsmith/library/snippets/homebrew.zsh +5 -0
  80. rigsmith-0.1.0/src/rigsmith/library/snippets/k8s-aliases.zsh +31 -0
  81. rigsmith-0.1.0/src/rigsmith/library/snippets/krew.zsh +2 -0
  82. rigsmith-0.1.0/src/rigsmith/library/snippets/kubectl.zsh +7 -0
  83. rigsmith-0.1.0/src/rigsmith/library/snippets/lazygit.zsh +1 -0
  84. rigsmith-0.1.0/src/rigsmith/library/snippets/micro.zsh +1 -0
  85. rigsmith-0.1.0/src/rigsmith/library/snippets/mise.zsh +2 -0
  86. rigsmith-0.1.0/src/rigsmith/library/snippets/neovim.zsh +1 -0
  87. rigsmith-0.1.0/src/rigsmith/library/snippets/omz-plugins.zsh +8 -0
  88. rigsmith-0.1.0/src/rigsmith/library/snippets/openjdk.zsh +4 -0
  89. rigsmith-0.1.0/src/rigsmith/library/snippets/p10k-instant.zsh +4 -0
  90. rigsmith-0.1.0/src/rigsmith/library/snippets/p10k.zsh +3 -0
  91. rigsmith-0.1.0/src/rigsmith/library/snippets/python-aliases.zsh +10 -0
  92. rigsmith-0.1.0/src/rigsmith/library/snippets/ripgrep-aliases.zsh +6 -0
  93. rigsmith-0.1.0/src/rigsmith/library/snippets/rustup.zsh +2 -0
  94. rigsmith-0.1.0/src/rigsmith/library/snippets/shell-aliases.zsh +19 -0
  95. rigsmith-0.1.0/src/rigsmith/library/snippets/shell-extras.zsh +17 -0
  96. rigsmith-0.1.0/src/rigsmith/library/snippets/shell-functions.zsh +40 -0
  97. rigsmith-0.1.0/src/rigsmith/library/snippets/starship.zsh +2 -0
  98. rigsmith-0.1.0/src/rigsmith/library/snippets/sys-aliases.zsh +6 -0
  99. rigsmith-0.1.0/src/rigsmith/library/snippets/terraform-aliases.zsh +10 -0
  100. rigsmith-0.1.0/src/rigsmith/library/snippets/thefuck.zsh +3 -0
  101. rigsmith-0.1.0/src/rigsmith/library/snippets/yazi.zsh +7 -0
  102. rigsmith-0.1.0/src/rigsmith/library/snippets/zinit.zsh +2 -0
  103. rigsmith-0.1.0/src/rigsmith/library/snippets/zoxide.zsh +4 -0
  104. rigsmith-0.1.0/src/rigsmith/library/snippets/zsh-autosuggestions.zsh +5 -0
  105. rigsmith-0.1.0/src/rigsmith/library/snippets/zsh-completion.zsh +7 -0
  106. rigsmith-0.1.0/src/rigsmith/library/snippets/zsh-completions.zsh +2 -0
  107. rigsmith-0.1.0/src/rigsmith/library/snippets/zsh-history-substring-search.zsh +4 -0
  108. rigsmith-0.1.0/src/rigsmith/library/snippets/zsh-options.zsh +11 -0
  109. rigsmith-0.1.0/src/rigsmith/library/snippets/zsh-syntax-highlighting.zsh +2 -0
  110. rigsmith-0.1.0/src/rigsmith/library/terminal.py +44 -0
  111. rigsmith-0.1.0/src/rigsmith/library/web.py +20 -0
  112. rigsmith-0.1.0/src/rigsmith/model.py +339 -0
  113. rigsmith-0.1.0/src/rigsmith/plan.py +183 -0
  114. rigsmith-0.1.0/src/rigsmith/runner.py +249 -0
  115. rigsmith-0.1.0/src/rigsmith/settings.py +118 -0
  116. rigsmith-0.1.0/src/rigsmith/shell.py +82 -0
  117. rigsmith-0.1.0/src/rigsmith/state.py +61 -0
  118. rigsmith-0.1.0/src/rigsmith/tui.py +483 -0
  119. rigsmith-0.1.0/tests/conftest.py +10 -0
  120. rigsmith-0.1.0/tests/e2e/check.py +48 -0
  121. rigsmith-0.1.0/tests/e2e/run.sh +38 -0
  122. rigsmith-0.1.0/tests/test_cli.py +134 -0
  123. rigsmith-0.1.0/tests/test_engine.py +196 -0
  124. rigsmith-0.1.0/tests/test_library.py +87 -0
  125. rigsmith-0.1.0/tests/test_runner.py +221 -0
  126. rigsmith-0.1.0/tests/test_tui.py +68 -0
  127. 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,8 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: uv
4
+ directory: /
5
+ schedule: {interval: weekly}
6
+ - package-ecosystem: github-actions
7
+ directory: /
8
+ schedule: {interval: weekly}
@@ -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,10 @@
1
+ .DS_Store
2
+ __pycache__/
3
+ *.py[cod]
4
+ .venv/
5
+ dist/
6
+ build/
7
+ *.egg-info/
8
+ .pytest_cache/
9
+ .ruff_cache/
10
+ .coverage
@@ -0,0 +1 @@
1
+ 3.14