Great! We welcome contributions of all kinds, big or small! This includes bug reports, code fixes, documentation improvements, and code examples.
Before you dive in, please take a moment to read through this guide.
We use GitHub to manage the issues. Please open a new issue directly there.
- Head over to GitHub and fork the 5GSec Nimbus repository.
- Clone your forked repository onto your local machine.
git clone [email protected]:<your-username>/nimbus.git
You'll need these tools for a smooth development experience:
- Make
- Go SDK, version 1.21 or later
- Go IDE (Goland / VS Code)
- Container tools (Docker / Podman)
- Kubernetes cluster running version 1.26 or later.
- kubectl version 1.26 or later.
-
Install development tools (mentioned above).
-
Build Nimbus using:
make build
-
Generate code and manifests:
make manifests generate
-
Install CRDs:
make install
-
Run the operator:
make run
- Navigate to adapter's directory:
cd pkg/adapter/<adapter-name>
- Run it:
make run
Follow this guide to install Nimbus or the complete suite.
Alternatively, follow this guide to install individual adapters.
Before contributing to any Open Source project, it's important to have basic understanding of what the project is about. It is advised to try out the project as an end user.
We use GitHub pull requests for code contributions. All submissions, including those from project members, require review before merging. We typically aim for two approvals per pull request, with reviews happening within a week or two. Feel free to ping reviewers if you haven't received feedback within that timeframe.
We follow the Conventional Commits specification for clear and consistent commit messages.
Please make sure you have added the Signed-off-by: footer in your git commit. In order to do it automatically, use the --signoff flag:
git commit --signoff
With this command, git would automatically add a footer by reading your name and email from git config.
Tests and documentation are not optional, make sure your pull requests include:
- Tests that verify your changes and don't break existing functionality.
- Updated documentation reflecting your code changes.
- Reference information and any other relevant details.
-
Integration tests:
make integration-test
-
End-to-end tests: Requires installing the complete suite, follow this
make e2e-test