Our project welcomes external contributions. If you have an itch, please feel free to scratch it.
To contribute code or documentation, please submit a pull request.
A good way to familiarize yourself with the codebase and contribution process is to look for and tackle low-hanging fruit in the issue tracker.
If you would like to implement a new feature, please raise an issue before sending a pull request so the feature can be discussed. This is to avoid you wasting your valuable time working on a feature that the project developers are not interested in accepting into the code base.
If you would like to fix a bug, please raise an issue before sending a pull request, so it can be tracked.
The project maintainers will review any proposed code in a pull request. A change requires approval from at least one of the maintainers.
For a list of the maintainers, see the MAINTAINERS.md page.
Each source file must include a license header for the Apache Software License 2.0. Using the SPDX format is the simplest approach. e.g.
/*
Copyright <holder> All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
We have tried to make it as easy as possible to make contributions. This applies to how we handle the legal aspects of contribution. We use the same approach - the Developer's Certificate of Origin 1.1 (DCO) - that the Linux® Kernel community uses to manage code contributions.
We simply ask that when submitting a patch for review, the developer must include a sign-off statement in the commit message.
Here is an example Signed-off-by line, which indicates that the submitter accepts the DCO:
Signed-off-by: John Doe <[email protected]>
You can include this automatically when you commit a change to your local git repository using the following command:
git commit -s
Please feel free to email each one of the maintainers.
To set up a development environment follow the instructions below.
git clone [email protected]:IBM/network-config-analyzer.git
cd network-config-analyzer
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
Windows (using Git bash)
git clone [email protected]:IBM/network-config-analyzer.git
cd network-config-analyzer
python -m venv venv
source venv/Scripts/activate
pip install -r requirements.txt
Verify your setup by running python -m nca -h
. You should get NCA's usage text.
We recommend using either PyCharm or VSCode for writing your Python code.
Please run both unit testing and end-to-end testing, and make sure they pass before opening a pull request.
Running unit testing from the project root directory:
PYTHONPATH=$PWD python tests/run_unittests.py
Running end-to-end tests from the project root directory:
PYTHONPATH=$PWD python tests/run_all_tests.py
We use flake8 to loosely enforce style.
Install flake8 to your virtual environment:
pip install flake8
Run flake8 from the project root directory to check style:
flake8 nca --max-complexity=15 --max-line-length=127