# Contributing Contributions to **scripts** are governed by the Contributor terms below; submitting one means you accept them. ## Contributor terms 1. This project belongs to its owner alone. The owner decides what is accepted, in what form and when; the decision is final and needs no justification. 2. By submitting a contribution you assign to Petr BalvĂ­n all present and future copyright and related rights in it, worldwide, for the full term of the rights, with the right to relicense and sublicense without restriction, including under proprietary terms. 3. Where that assignment is not effective, it counts as a perpetual, irrevocable, royalty-free licence with the same scope. 4. To the fullest extent permitted by law, you waive any right of attribution and integrity in the contribution. The project names no contributors and keeps no credits list. 5. By submitting you represent that the work is yours and that you hold the rights to assign it as above. ## Development setup Requirements: Perl 5.38 or newer, which is what the oldest supported system ships (CentOS Stream 10 carries 5.40, openEuler 24.03 LTS carries 5.38). No module beyond the interpreter is needed, by design: the scripts use builtins only. Podman is needed only for the container rigs described in [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md). ```sh git clone https://sourcedock.dev/petrbalvin/scripts.git cd scripts perl -c network-diag.pl perl tests/network-diag.pl ``` ## Workflow 1. Branch from `development`. Never commit directly to `main`, which is release-only. 2. Commit in [Conventional Commits](https://www.conventionalcommits.org/) form: `type(scope): description`, subject line only, imperative mood, lowercase after the colon, no trailing full stop. Allowed types: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`, `ci`, `build`, `revert`. 3. One logical change per commit. A refactor, a behaviour change and a formatting pass are three commits, never one. 4. Add or extend the checks in `tests/` for the code you touched. A new script arrives with its own `tests/