Skip to content

Commit 22bc61c

Browse files
author
Jonathan D.A. Jewell
committed
feat: create asdf-tool-plugins monorepo
0 parents  commit 22bc61c

3,100 files changed

Lines changed: 275695 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.adoc

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
= asdf Tool Plugins
2+
// SPDX-License-Identifier: PMPL-1.0-or-later
3+
4+
Hyperpolymath's collection of asdf plugins for installing and managing development tools and runtimes.
5+
6+
Each subdirectory is a standalone asdf plugin that can be installed via `asdf plugin add`.
7+
8+
== License
9+
10+
PMPL-1.0-or-later
11+
12+
== Author
13+
14+
Jonathan D.A. Jewell <jonathan.jewell@open.ac.uk>

asdf-ada-plugin/.claude/CLAUDE.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# CLAUDE.md - AI Assistant Instructions
2+
3+
## Language Policy (Hyperpolymath Standard)
4+
5+
### ALLOWED Languages & Tools
6+
7+
| Language/Tool | Use Case | Notes |
8+
|---------------|----------|-------|
9+
| **ReScript** | Primary application code | Compiles to JS, type-safe |
10+
| **Deno** | Runtime & package management | Replaces Node/npm/bun |
11+
| **Rust** | Performance-critical, systems, WASM | Preferred for CLI tools |
12+
| **Tauri 2.0+** | Mobile apps (iOS/Android) | Rust backend + web UI |
13+
| **Dioxus** | Mobile apps (native UI) | Pure Rust, React-like |
14+
| **Gleam** | Backend services | Runs on BEAM or compiles to JS |
15+
| **Bash/POSIX Shell** | Scripts, automation | Keep minimal |
16+
| **JavaScript** | Only where ReScript cannot | MCP protocol glue, Deno APIs |
17+
| **Nickel** | Configuration language | For complex configs |
18+
| **Guile Scheme** | State/meta files | STATE.scm, META.scm, ECOSYSTEM.scm |
19+
| **Julia** | Batch scripts, data processing | Per RSR |
20+
| **OCaml** | AffineScript compiler | Language-specific |
21+
| **Ada** | Safety-critical systems | Where required |
22+
23+
### BANNED - Do Not Use
24+
25+
| Banned | Replacement |
26+
|--------|-------------|
27+
| TypeScript | ReScript |
28+
| Node.js | Deno |
29+
| npm | Deno |
30+
| Bun | Deno |
31+
| pnpm/yarn | Deno |
32+
| Go | Rust |
33+
| Python | Julia/Rust/ReScript |
34+
| Java/Kotlin | Rust/Tauri/Dioxus |
35+
| Swift | Tauri/Dioxus |
36+
| React Native | Tauri/Dioxus |
37+
| Flutter/Dart | Tauri/Dioxus |
38+
39+
### Mobile Development
40+
41+
**No exceptions for Kotlin/Swift** - use Rust-first approach:
42+
43+
1. **Tauri 2.0+** - Web UI (ReScript) + Rust backend, MIT/Apache-2.0
44+
2. **Dioxus** - Pure Rust native UI, MIT/Apache-2.0
45+
46+
Both are FOSS with independent governance (no Big Tech).
47+
48+
### Enforcement Rules
49+
50+
1. **No new TypeScript files** - Convert existing TS to ReScript
51+
2. **No package.json for runtime deps** - Use deno.json imports
52+
3. **No node_modules in production** - Deno caches deps automatically
53+
4. **No Go code** - Use Rust instead
54+
5. **No Python anywhere** - Use Julia for data/batch, Rust for systems, ReScript for apps
55+
6. **No Kotlin/Swift for mobile** - Use Tauri 2.0+ or Dioxus
56+
57+
### Package Management
58+
59+
- **Primary**: Guix (guix.scm)
60+
- **Fallback**: Nix (flake.nix)
61+
- **JS deps**: Deno (deno.json imports)
62+
63+
### Security Requirements
64+
65+
- No MD5/SHA1 for security (use SHA256+)
66+
- HTTPS only (no HTTP URLs)
67+
- No hardcoded secrets
68+
- SHA-pinned dependencies
69+
- SPDX license headers on all files

asdf-ada-plugin/.editorconfig

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# SPDX-License-Identifier: AGPL-3.0-or-later
2+
# Editor Configuration - https://editorconfig.org
3+
4+
root = true
5+
6+
[*]
7+
charset = utf-8
8+
end_of_line = lf
9+
indent_size = 2
10+
indent_style = space
11+
insert_final_newline = true
12+
trim_trailing_whitespace = true
13+
14+
[*.md]
15+
trim_trailing_whitespace = false
16+
17+
[*.adoc]
18+
trim_trailing_whitespace = false
19+
20+
[*.bash]
21+
indent_size = 2
22+
23+
[*.sh]
24+
indent_size = 2
25+
26+
[Makefile]
27+
indent_style = tab
28+
29+
[*.scm]
30+
indent_size = 2

asdf-ada-plugin/.gitattributes

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# SPDX-License-Identifier: AGPL-3.0-or-later
2+
# RSR-compliant .gitattributes
3+
4+
* text=auto eol=lf
5+
6+
# Source
7+
*.rs text eol=lf diff=rust
8+
*.ex text eol=lf diff=elixir
9+
*.exs text eol=lf diff=elixir
10+
*.jl text eol=lf
11+
*.res text eol=lf
12+
*.resi text eol=lf
13+
*.ada text eol=lf diff=ada
14+
*.adb text eol=lf diff=ada
15+
*.ads text eol=lf diff=ada
16+
*.hs text eol=lf
17+
*.chpl text eol=lf
18+
*.scm text eol=lf
19+
*.ncl text eol=lf
20+
*.nix text eol=lf
21+
22+
# Docs
23+
*.md text eol=lf diff=markdown
24+
*.adoc text eol=lf
25+
*.txt text eol=lf
26+
27+
# Data
28+
*.json text eol=lf
29+
*.yaml text eol=lf
30+
*.yml text eol=lf
31+
*.toml text eol=lf
32+
33+
# Config
34+
.gitignore text eol=lf
35+
.gitattributes text eol=lf
36+
justfile text eol=lf
37+
Makefile text eol=lf
38+
Containerfile text eol=lf
39+
40+
# Scripts
41+
*.sh text eol=lf
42+
43+
# Binary
44+
*.png binary
45+
*.jpg binary
46+
*.gif binary
47+
*.pdf binary
48+
*.woff2 binary
49+
*.zip binary
50+
*.gz binary
51+
52+
# Lock files
53+
Cargo.lock text eol=lf -diff
54+
flake.lock text eol=lf -diff
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
github: [hyperpolymath]
2+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
version: 2
3+
updates:
4+
- package-ecosystem: "github-actions"
5+
directory: "/"
6+
schedule:
7+
interval: "daily"
8+
open-pull-requests-limit: 10
9+
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
name: CI
3+
4+
on:
5+
push:
6+
branches: [main]
7+
pull_request:
8+
branches: [main]
9+
workflow_dispatch:
10+
11+
permissions: read-all
12+
13+
jobs:
14+
shellcheck:
15+
name: ShellCheck
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
19+
- name: Run ShellCheck
20+
run: |
21+
shellcheck --version
22+
shellcheck -x -e SC1091 bin/* lib/*.bash
23+
24+
test:
25+
name: Test Plugin
26+
runs-on: ${{ matrix.os }}
27+
strategy:
28+
fail-fast: false
29+
matrix:
30+
os: [ubuntu-latest, macos-latest]
31+
steps:
32+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
33+
34+
- name: Install asdf
35+
uses: asdf-vm/actions/setup@05e0d2ed97b598bfce82fd30daf324ae0c4570e6 # v3.0.2
36+
37+
- name: Test plugin
38+
run: |
39+
asdf plugin test ada . --asdf-tool-version latest --asdf-plugin-gitref ${{ github.sha }}
40+
env:
41+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
name: CodeQL Security Analysis
3+
4+
on:
5+
push:
6+
branches: [main, master]
7+
pull_request:
8+
branches: [main, master]
9+
schedule:
10+
- cron: '0 6 * * 1'
11+
12+
permissions: read-all
13+
14+
jobs:
15+
analyze:
16+
runs-on: ubuntu-latest
17+
permissions:
18+
contents: read
19+
security-events: write
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
include:
24+
- language: javascript-typescript
25+
build-mode: none
26+
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
30+
31+
- name: Initialize CodeQL
32+
uses: github/codeql-action/init@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v3.28.1
33+
with:
34+
languages: ${{ matrix.language }}
35+
build-mode: ${{ matrix.build-mode }}
36+
37+
- name: Perform CodeQL Analysis
38+
uses: github/codeql-action/analyze@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v3.28.1
39+
with:
40+
category: "/language:${{ matrix.language }}"

0 commit comments

Comments
 (0)