-
Notifications
You must be signed in to change notification settings - Fork 0
chore: R-16 toolchain pin + reconciliation #84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
76f2465
d0eda36
8bfa703
b66bed0
87592f7
5c35d85
c655117
c920a4d
5a5301d
b0586d1
be2f8b8
12ba584
fe01956
7e7d5f5
baaa3a4
a0b4cf0
db2d8f0
98dedee
5e2691e
a602c46
1259254
af0f5c3
9f5f880
9dab773
93d6094
ca50d85
c0f175d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| [tools] | ||
| just = "1.36.0" | ||
| julia = "1.10.11" |
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| # Architecture | ||
|
|
||
| ## Overview | ||
|
|
||
| This repository follows a modular, maintainable architecture designed for clarity, scalability, and long-term sustainability. | ||
|
|
||
| ## Directory Structure | ||
|
|
||
| ``` | ||
| . | ||
| ├── src/ # Source code | ||
| ├── tests/ # Test suites | ||
| ├── docs/ # Documentation | ||
| ├── scripts/ # Utility scripts | ||
| ├── config/ # Configuration files | ||
| ├── LICENSE # License file | ||
| ├── LICENSES/ # Full license texts | ||
| └── README.adoc # Project documentation | ||
| ``` | ||
|
|
||
| ## Design Principles | ||
|
|
||
| - **Separation of Concerns**: Each module has a single responsibility | ||
| - **Testability**: Code is written to be easily testable | ||
| - **Documentation**: All public APIs are documented | ||
| - **Configuration**: Environment-specific settings are externalized | ||
|
|
||
| ## Dependencies | ||
|
|
||
| - External dependencies are minimized and clearly declared | ||
| - Version pinning is used for reproducibility | ||
|
|
||
| ## Security Considerations | ||
|
|
||
| - Sensitive data is never committed to the repository | ||
| - Secrets are managed through environment variables or secure vaults | ||
| - Regular dependency audits are performed | ||
|
|
||
| ## Maintainability | ||
|
|
||
| - Code follows consistent style guidelines | ||
| - Pull requests require review and CI checks | ||
| - Issues and discussions are tracked transparently | ||
|
|
||
| --- | ||
|
|
||
| *Last updated: 2026-07-18* | ||
Large diffs are not rendered by default.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| # Maintainers | ||
|
|
||
| This file lists the current maintainers of this project. | ||
|
|
||
| ## Active Maintainers | ||
|
|
||
| | Name | GitHub | Role | Since | | ||
| |------|--------|------|-------| | ||
| | Metadatastician | @metadatastician | Primary | Project Start | | ||
|
|
||
|
Comment on lines
+7
to
+10
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win Reconcile the primary maintainer with This table names Use one authoritative maintainer identity across both files. Otherwise, governance, review, merge, and security-sensitive ownership instructions can target different accounts. 🤖 Prompt for AI Agents |
||
| ## Emeritus Maintainers | ||
|
|
||
| None at this time. | ||
|
|
||
| ## Becoming a Maintainer | ||
|
|
||
| To become a maintainer: | ||
|
|
||
| 1. Demonstrate consistent, high-quality contributions | ||
| 2. Show understanding of the project's goals and architecture | ||
| 3. Be active in code reviews and community discussions | ||
| 4. Be nominated by an existing maintainer | ||
| 5. Be approved by consensus of existing maintainers | ||
|
|
||
| ## Maintainer Responsibilities | ||
|
|
||
| - Reviewing and merging pull requests | ||
| - Managing releases | ||
| - Triaging issues | ||
| - Enforcing code standards | ||
| - Mentoring new contributors | ||
| - Participating in decision-making | ||
|
|
||
| ## Maintainer Expectations | ||
|
|
||
| - Respond to issues and PRs in a timely manner | ||
| - Follow the code of conduct | ||
| - Be transparent in decision-making | ||
| - Communicate clearly and respectfully | ||
|
|
||
| --- | ||
|
|
||
| *Last updated: 2026-07-18* | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| [tools] | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔴 HIGH RISK This file conflicts with |
||
| # Language runtimes | ||
| node = "latest" | ||
| python = "latest" | ||
| rust = "latest" | ||
| go = "latest" | ||
| zig = "latest" | ||
| java = "latest" | ||
| bun = "latest" | ||
| denojs = "latest" | ||
|
|
||
| # Package managers | ||
| npm = "latest" | ||
| yarn = "latest" | ||
| pnpm = "latest" | ||
| pip = "latest" | ||
| cargo = "latest" | ||
| go-task = "latest" | ||
|
|
||
| # Formatting & Linting | ||
| gofmt = "latest" | ||
| black = "latest" | ||
| isort = "latest" | ||
| ruff = "latest" | ||
| prettier = "latest" | ||
| shfmt = "latest" | ||
| stylua = "latest" | ||
|
|
||
| # Build tools | ||
| cmake = "latest" | ||
| make = "latest" | ||
| ninja = "latest" | ||
|
|
||
| # Shell tools | ||
| git = "latest" | ||
| gnu-sed = "latest" | ||
| gnu-tar = "latest" | ||
| gnu-grep = "latest" | ||
|
|
||
| # Testing | ||
| vitest = "latest" | ||
| pytest = "latest" | ||
| jest = "latest" | ||
|
Comment on lines
+3
to
+43
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟠 Major | 🏗️ Heavy lift 🔎 Supported by static analysis🏁 Script executed: printf '%s\n' '--- mise.toml ---'
cat -n mise.toml
printf '%s\n' '--- repository files relevant to tool configuration and workflows ---'
git ls-files | rg '(^|/)(mise(\.toml|\.lock)?|\.github/workflows/|Project\.toml|Manifest\.toml|package\.json|pyproject\.toml|Cargo\.toml|go\.mod|Makefile|Taskfile.*)$' || true
printf '%s\n' '--- workflow/tool references ---'
rg -n --glob '.github/workflows/**' --glob '!**/node_modules/**' 'julia|mise|install|pytest|vitest|jest|go-task|gofmt|ruff|black|isort|prettier|cargo|rust|node|python|go|zig|java|bun|deno' .github 2>/dev/null || true
printf '%s\n' '--- project language/config indicators ---'
rg -n 'Julia|julia|mise install|mise\.lock|toolchain|pytest|vitest|jest|go-task|gofmt' README.md .github mise.toml 2>/dev/null || trueRepository: hyperpolymath/statistikles Length of output: 12645 🏁 Script executed: printf '%s\n' '--- top-level project files ---'
git ls-files | awk 'index($0,"/")==0 {print}' | sort
printf '%s\n' '--- setup and tool references ---'
rg -n '(^|[^[:alnum:]_-])(just|julia|agda|zig|rust|cargo|node|python|go|npm|pnpm|yarn|mise)([^[:alnum:]_-]|$)' \
--glob 'Justfile' --glob '*.md' --glob '*.adoc' --glob '*.toml' --glob '*.yml' --glob '*.yaml' \
. 2>/dev/null | head -200
printf '%s\n' '--- project manifests ---'
cat -n Project.toml
cat -n Manifest.toml | head -80Repository: hyperpolymath/statistikles Length of output: 19564 🌐 Web query:
💡 Result: When you run Citations:
🌐 Web query:
💡 Result: In mise, you can manage tools using the shorthand names registered in the tool registry [1][2]. While some tools are aliased by default, you can also install tools using their full names (via backends like aqua, github, or asdf) if they are not in the registry [1][3]. For the specific tools requested, here are their primary registry shorthands or recommended installation approaches: - go-task: The registry uses the shorthand task [4]. - gofmt: This is typically distributed as part of the Go toolchain itself, which is managed via the core go runtime in mise, rather than as a separate registry tool entry [1][5]. - pytest: As a Python-based tool, it is generally managed via your Python environment (e.g., using pip or pipx) rather than a standalone mise-registry entry. You can manage it using the pipx backend [5]. - vitest: As a Node.js-based tool, it is typically managed as a local dependency via npm, pnpm, or yarn within your project, rather than as a global tool entry in the mise registry [5]. - jest: Similar to vitest, this is typically managed as a local project dependency for Node.js projects [5]. To verify if a specific tool is available in your version of the registry, you can run the command Citations:
🌐 Web query:
💡 Result: In Citations:
🏁 Script executed: printf '%s\n' '--- primary mise configuration ---'
cat -n .mise.toml
printf '%s\n' '--- documented setup and relevant Justfile recipes ---'
sed -n '1,90p' QUICKSTART-DEV.adoc
sed -n '230,365p' Justfile
printf '%s\n' '--- exact file status and tracked configuration names ---'
git status --short
git ls-files --stage -- mise.toml .mise.toml mise.lock .mise.lockRepository: hyperpolymath/statistikles Length of output: 7300 Keep the project toolchain minimal and reproducible. This project uses Julia as its primary runtime. The added 🤖 Prompt for AI Agents |
||
|
|
||
| [env] | ||
| # Common environment variables | ||
| NODE_ENV = "development" | ||
| PYTHONDONTWRITEBYTECODE = "1" | ||
| PYTHONUNBUFFERED = "1" | ||
|
|
||
| # Task runner alias | ||
| [alias] | ||
| task = "go-task" | ||
| build = "cargo build --release || npm run build || go build" | ||
| test = "cargo test || npm test || go test ./..." | ||
| lint = "ruff check . || prettier --check . || black --check ." | ||
| fmt = "ruff format . || prettier --write . || black ." | ||
|
Comment on lines
+54
to
+57
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 MEDIUM RISK Chaining unrelated build systems with '||' in the [alias] section can mask legitimate failures in the intended toolchain. In a Julia-focused project, these error-masking command chains for Cargo, NPM, and Go should be removed to ensure that failures are correctly reported.
Comment on lines
+52
to
+57
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win Register and preserve the repository tasks. These entries are under deprecated 📍 Affects 1 file
🤖 Prompt for AI Agents |
||
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -150,7 +150,8 @@ function descriptive_stats(data::Vector{Float64}) | |||||||
| "max" => sorted[end], | ||||||||
| "range" => sorted[end] - sorted[1], | ||||||||
| "outlier_fences" => [q1 - 1.5 * iqr_val, q3 + 1.5 * iqr_val], | ||||||||
| "normality_hint" => normality_hint | ||||||||
| "normality_hint" => abs(skew) < 2 && abs(kurt) < 7 ? | ||||||||
| "Approximately normal" : "Possibly non-normal" | ||||||||
|
Comment on lines
+153
to
+154
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 MEDIUM RISK Suggestion: The calculation logic for the normality hint was already performed in the preceding block (lines 120-122). Inlining the logic again here is redundant and leaves an unused variable in scope. Use the existing variable instead:
Suggested change
Comment on lines
+153
to
+154
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- target source ---'
sed -n '95,160p' src/stats/descriptive.jl
printf '%s\n' '--- Julia/runtime declarations ---'
find . -maxdepth 3 -type f \( -name 'Project.toml' -o -name 'Manifest.toml' -o -iname '*julia*' \) -print
for f in $(find . -maxdepth 3 -type f \( -name 'Project.toml' -o -name 'Manifest.toml' \)); do
printf '%s\n' "--- $f ---"
rg -n -C 2 'julia|compat|normality_hint|skew|kurt' "$f" || true
done
printf '%s\n' '--- relevant tests ---'
rg -n -C 5 'normality_hint|Insufficient data for shape assessment|skew|kurt' test tests 2>/dev/null || trueRepository: hyperpolymath/statistikles Length of output: 11426 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- moment definitions ---'
sed -n '35,95p' src/stats/descriptive.jl
printf '%s\n' '--- Julia executable and relevant dispatch ---'
if command -v julia >/dev/null 2>&1; then
julia --version
julia --startup-file=no --history-file=no -e '
try
println(abs(nothing))
catch e
println(typeof(e))
println(e)
end
'
else
echo 'julia executable is unavailable'
fiRepository: hyperpolymath/statistikles Length of output: 2645 Preserve the insufficient-data branch. For 🤖 Prompt for AI Agents |
||||||||
| ) | ||||||||
| end | ||||||||
|
|
||||||||
|
|
||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Add a language tag to the directory-tree fence.
markdownlint-cli2reports MD040 at Line 9. Usetextfor this non-code directory tree.Proposed fix
📝 Committable suggestion
🧰 Tools
🪛 markdownlint-cli2 (0.23.2)
[warning] 9-9: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Source: Linters/SAST tools