RigForge is the companion miner for the Pithead P2Pool stack. Bug fixes, CPU tuning profiles, and docs changes are all welcome.
If your idea is about the stack as a whole rather than the miner, the Pithead repo may be the better home for it.
- For anything beyond a small fix, open an issue first so we can agree on the approach before you spend time on it. This avoids duplicated work.
- Check the existing issues to see if someone is already on it.
RigForge is portable Bash that has to run on Ubuntu/Debian and macOS:
-
Keep it portable. Avoid GNU-only flags and other Linux-isms where a POSIX-friendly alternative exists, and guard platform-specific code paths.
-
Run
make lintbefore you push and fix any warnings. It runs ShellCheck andshfmtover the script, utilities, and the test scripts, exactly as CI does:make lint # or: make test (lint + the full dependency-free suite)CI runs the same checks, so a clean local run keeps your PR green. (
make fmtauto-applies theshfmtformatting.) -
Update the README or other docs when you change behavior or add options.
Install the hooks once and they run on every commit, catching issues before they reach CI:
pipx install pre-commit # or: pip install pre-commit
pre-commit installThis runs make lint (ShellCheck + shfmt over the Makefile's SHELL_FILES),
gitleaks secret scanning (the same pinned version CI runs, so
a committed token or pool credential is caught before it's pushed), and a few hygiene checks:
private-key detection, a large-file guard, and final-newline and trailing-whitespace fixers.
The YAML, Markdown, and link checks gate in CI and have matching Make targets for local runs:
make lint-yaml # yamllint the workflows + configs (.yamllint)
make lint-md # markdownlint the docs (.markdownlint-cli2.yaml; needs node)
make lint-links # lychee link-check the docs (.lychee.toml; needs lychee — runs weekly in CI)
make lint-all # shell + yaml + markdown in one goAn .editorconfig encodes the whitespace conventions (shfmt -i 4, LF, final
newline) so most editors match these checks automatically.
RigForge uses a two-branch model (same as Pithead):
developis the default, integration branch. All PRs targetdevelop.mainis the release branch.developis merged intomainat each release, and version tags are cut frommain.
- Fork the repo and create a topic branch off
develop. - Make your change and confirm
shellcheckpasses. - Open a PR against
developand fill out the template. - All PRs require review before merging; a code owner will take a look.
Keep PRs focused and the description clear about what changed and why. Small, reviewable changes get merged faster.
By contributing, you agree that your contributions are licensed under the project's MIT License.