CONTRIBUTING.md
Rama main · réplica de lectura del repositorio original.
# Contributing
vpn-switch is a personal project by Dr. Johannes Brügmann, shared in the hope
that it is useful and developed primarily to fit the author's own needs. That
shapes how contributions are handled — please read this before opening an
issue or a pull request.
## Issues
Bug reports and questions are welcome via GitHub issues. Please include:
- your OS and version (FreeBSD release, or Linux distribution),
- the output of `vpn-switch validate`, and `vpn-switch inspect` if relevant,
- the exact command you ran, and what you expected versus what happened.
Start with [docs/TUTORIAL_TROUBLESHOOTING.md](docs/TUTORIAL_TROUBLESHOOTING.md):
most problems are environment-related, and `vpn-switch validate` usually points
straight at them.
## Pull requests
PRs are read and appreciated, but **not guaranteed to be merged**. This is a
personal project with a deliberate, opinionated design; a change that doesn't
fit that design won't land, however well-made. For anything non-trivial, please
open an issue to discuss it first so you don't invest effort in vain.
If you do send a PR:
- Keep the code **pure POSIX `/bin/sh`** — no bashisms.
- Run `gmake check` (syntax), `gmake shellcheck`, and the relevant tests before
submitting; see [COMMIT_CHECKLIST.md](COMMIT_CHECKLIST.md) for the definition
of done.
- Follow the combinator conventions and naming rules in
[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md), and match the surrounding style.
- User-facing commands carry an in-source `#@help` doc-block; see
[docs/HELP_TEMPLATE_SPEC.md](docs/HELP_TEMPLATE_SPEC.md). The architecture
tests fail if a command is missing or malformed.
## Code of conduct
There is none, by design. This is one individual's project, not a
thousand-developer community — interaction here runs on ordinary courtesy and
applicable law, nothing more.
## Licensing
By contributing, you agree that your contribution is licensed under the
project's terms: the [BSD 2-Clause license](LICENSE).