Contributing
Contributing to DUMB#
Thanks for helping improve Distributed Unlimited Media Bridge (DUMB).
Code, docs, testing feedback, and issue triage are all valuable contributions.
Branch Strategy#
devis the default collaboration branch.masteris the production and release branch.- Open normal feature and fix PRs against
dev. - Open PRs against
masteronly for release work or approved hotfixes.
Development Setup#
Recommended: use the DUMB devcontainer:
Quick start:
- Fork I-am-PUID-0/DUMB.
- Clone your fork.
- Open the workspace in VS Code Dev Containers.
- Create a feature branch from
dev. - Make changes and run relevant checks.
- Open a PR to
dev.
If you do not use Dev Containers, run with Docker using the same mounts and environment layout.
Pull Request Guidelines#
- Keep PRs focused and small when possible.
- Include a clear summary, motivation, and test notes.
- Link related issues.
- Add screenshots for UI changes.
- Update docs when behavior changes.
Commit Format#
Use Conventional Commits for PR titles and commits, for example:
feat(api): add new symlink repair modefix(proxy): route iframe websocket path correctlydocs: update onboarding preflight guide
conventional-commits.yml validates PRs targeting both dev and master.
Dependabot and Automation Notes#
- Dependabot updates are targeted to
dev. - Integration testing for combined Dependabot updates runs from
dev. - Release automation remains pinned to
master.
Testing Expectations#
Before opening a PR:
- Run formatters/linters relevant to changed files. For DUMB backend changes, run
make formatbeforemake verify;make verifyis check-only and does not rewrite Black formatting drift. - Run focused tests for your change.
- Include manual verification notes when automated tests are not available.
Service update regression suite#
DUMB retains a disposable previous-version-to-latest regression matrix for service installers and updaters. It runs selected services in isolated Docker containers with fresh configuration, data, logs, mounts, and databases; it never downgrades the operator's live service data.
From the DUMB repository on a Docker-capable host:
make regression-image
make regression-service-updates REGRESSION_JOBS=2
Two workers are the conservative default because source builds can be CPU-, memory-, and disk-intensive. Cases run concurrently when they do not share a worker, while each service's install, update, and health checks remain ordered within that container. Use REGRESSION_ARGS="--case <case-id>" for focused coverage or REGRESSION_ARGS="--include-pending --case <case-id>" while qualifying a new matrix entry. REGRESSION_ARGS="--use-gh-auth-token" uses the current GitHub CLI token without printing it and avoids anonymous API limits.
The matrix lives in scripts/service_update_regression_matrix.json. Qualified cases run by default; pending entries document services that still need deterministic prior versions, dependency fixtures, or disposable credentials. Per-case logs and an aggregate JSON report are written under the ignored .regression-reports/ directory. The verified install cache is retained separately so repeat runs also exercise safe cache reuse.
Docs Contributions#
Docs live in DUMB_docs.
- Update docs when API behavior, onboarding flow, or service settings change.
- Keep examples and screenshots current.
- Prefer small, reviewable docs PRs.
Non-Code Contributions#
Even if you don't write code, there are plenty of ways to help!
Star the Repo#
A quick way to show support is by starring the project on GitHub: github.com/I-am-PUID-0/DUMB
Join the Community#
- Ask questions or help others in the DUMB Discord server
- Boost the server if you find it helpful
- Share your setups and improvements
Help with Documentation#
- Found a typo or confusing section in the docs? Open an issue or pull request.
- Suggestions and feedback on existing documentation are always welcome.
Monetary Contributions?#
- Sponsor the Dev through GitHub Sponsors
Roadmap & Feedback#
If you have ideas, feature requests, or feedback:
-
Create a GitHub Issue
-
Discuss in the community before starting larger PRs