Contributions are welcome and appreciated!
Table of Contents:
Report bugs in the GitHub issue tracker.
Please use the template, which should remind you to include:
- A clear and concise description of the bug
- Detailed steps to reproduce the bug
- Expected behavior
- Screenshots, where appropriate
- Additional context
- Your operating system name and version
- Any details about your local setup that might be helpful in troubleshooting
Security issues should be disclosed following the security policy.
Request new features in the GitHub issue tracker, by following the suggested template.
All patches have to be sent on Github as pull requests.
All Pull Requests must have an associated issue and should include tests and documentation where appropriate.
The CLI is tested using Rust's built in tools:
cargo testTo validate none of the pre-release features have been broken, you can pass the
--all-features flag:
cargo test --all-featuresCode should be documented where appropriate. The existing code can be used as
guidance and the general rustfmt rules should be followed for formatting.
All user-facing CLI changes require regenerating the CLI documentation. This is automatically validated by CI and can be done with the following command:
cargo run -p xtask gendocsYou can add a file to the doc_templates directory to add
extra detail to a command's CLI documentation.
General code format is maintained using rustfmt:
cargo fmtSome additional style lints are enforced with clippy:
cargo clippyThis should also pass for all pre-release features:
cargo clippy --all-featuresFirst-party extensions are written in TypeScript. Extensions code must be
formatted and checked with deno. See the deno manual for installation
instructions.
To apply formatting
deno fmtTo run lint checks
deno lintAdditionally, there are a couple of script files that are part of the Phylum CLI project. These are linted by using shellcheck. The following command performs a full analysis on all scripts in the repository:
shellcheck -o all -S style -s sh $(find . -iname "*.sh")If there are any outstanding questions about contributing to the Phylum CLI, they can be asked on the issue tracker.
As an alternative, you can also contact dl-phylum-engineering@veracode.com for
issues with using the Phylum CLI.