Skip to content

Latest commit

 

History

History
112 lines (80 loc) · 4.61 KB

CONTRIBUTING.md

File metadata and controls

112 lines (80 loc) · 4.61 KB

Contributing to Arkime AWS All In One

✨ Glad to see you here! ✨


Just have a question ❓


Where do I start? 🚥

First, checkout the main Arkime AWS AIO README for information on how to build and run Arkime. We do all development on MacBook Pros.

How do I contribute?

Documentation! 📃

Documentation, READMEs, examples, and FAQs are important. Please help improve and add to them.

Bugs 🐛 🪲 🐜

Before submitting a bug report:

  • Ensure the bug was not already reported by searching for existing issues in Arkime AWS AIO
    • If an issues is already open, make a comment that you are experiencing the same thing and provide any additional details
  • Check the FAQs for a list of common questions and problems

Bugs are tracked as GitHub Issues. Please follow these guidelines when submitting a bug:

  • Provide a clear and descriptive title
  • Describe the exact steps to reproduce the problem
  • Explain the expected behavior

Feature Requests ✨

Feature requests include new features and minor improvements to existing functionality.

Feature requests are tracked as GitHub Issues. Please follow these guidelines when submitting a feature request:

  • Please use a fork to submit a pull request for your contribution.
  • Provide a clear and descriptive title
  • Describe the suggested feature in as much detail as possible
  • Use examples to help us understand the use case of the feature
  • If you are requesting a minor improvement, describe the current behavior and why it is not sufficient
  • If possible, provide examples of where this feature exists elsewhere in other tools

Pull Requests 💪

We welcome all collaboration! If you can fix it or implement it, please do! 🔨 To implement something new, please create an issue first so we can discuss it together.

To better help us review your pull request, please follow these guidelines:

  • Provide a clear and descriptive title
  • Clearly describe the problem and solution
  • Include the relevant issue number(s) if applicable
  • Additionally, any substantive changes should include:
    • A clear explanation of what automated and manual testing you performed
    • The output from the CLI of the test commands you ran to confirm the change operated as expected
    • Screenshots of the AWS Console/Arkime Dashboard/etc as appropriate to demonstrate the change operates as expected
  • Run unit tests and lint as described below
  • When creating a Pull Request please follow best practices for creating git commits.
  • When your code is ready to be submitted, submit a Pull Request to begin the code review process.

Versioning: We use a GitHub workflow to automatically tag merges to main using semver rules. By default, it increments the minor version number. If you need to increment the major version or patch version, include #major or #patch somewhere in your merge commit's message.

How to run the unit tests & lint

We require that the ruff linter and unit tests pass before merging PRs.

Step 1 - Activate your Python virtual environment

To isolate the Python environment for the project from your local machine, create virtual environment like so:

python3 -m venv .venv
source .venv/bin/activate
(cd manage_arkime ; pip install -r requirements.txt)

You can exit the Python virtual environment and remove its resources like so:

deactivate
rm -rf .venv

Learn more about venv here.

Step 2 - Run Pytest

The unit tests are executed by invoking Pytest:

python -m pytest test_manage_arkime/ --cov manage_arkime

You can read more about running unit tests with Pytest here.

Step 3 - Run Ruff

The Python linter is executed by invoking Ruff:

ruff .

You can read more about Python linting with Ruff here.

Step 4 - Run eslint

The Typescript linter is executed by invoking [eslint]((https://eslint.org/):

npx eslint .