We welcome contributions from the community! Whether you're fixing a bug, adding a new module, or improving the documentation, your help is appreciated.
- If you are proposing a new feature or a significant change, please open an issue first to discuss it with the maintainers.
- Make sure you have read the project's
README.mdto understand its purpose and functionality.
- Fork the repository on GitHub.
- Clone your fork to your local machine.
- Create a new branch for your changes.
git checkout -b feature/your-awesome-feature
- Make your changes. See the "Technical Guidelines" below.
- Add tests for your changes in the
test/directory. - Run the test suite to ensure everything is working correctly.
npm test - Commit your changes with a clear and descriptive message.
- Push your branch to your fork on GitHub.
- Open a Pull Request to the
mainbranch of the original repository.
- Bash v3.2 Compatibility: All shell scripts must be compatible with Bash version 3.2. This is the default version on macOS, so it's important for cross-platform compatibility.
- POSIX Compliance: Use standard POSIX-compliant tools and shell features where possible. Avoid Bash-specific features that are not available in other shells unless necessary.
- Minimal Dependencies: The core application should only depend on
curlandjq. New modules should not add new system-level dependencies. - Style: Follow the existing code style. Use comments to explain complex parts of the code.
- All new features and bug fixes must be accompanied by tests.
- We use the BATS (Bash Automated Testing System) for testing.
- Module tests are located in
test/. Please add a new.batsfile for your new module or add tests to an existing one. - To run the tests, use the
npm testcommand.