Welcome to Nauta project. Now, you are reading the document where process of contributing to repository is described. There are a lot of guidelines which are prepared especcially for you. Fell free to be a Nauta developer and help us to make our project better.
Before you start to contribute top the Nauta, please read first our Code of Conduct document.
Each software is not free from bugs. When you find a problem in Nauta, please tell us about it. Report it using GitHub issues. Before creating an issue you should make sure that problem which you found has not been already reported by others. Fill a valid title and clear description. Try to provide more information about problem by attaching logs and providing steps to reproduce a problem. Tell us also something about your environment: OS, CPU, memory, hard disk size etc.
However, if you encounter on a security vulnerability, please contact with one of the core repository contributors directly. It will allow to fix the issue before it is exploited in the wild.
Nauta documentation consists of two areas: Installation & Configuration and User Guide.
If you have some ideas for documentation improvements or you would like to make our documentation more consistent and readable, please help us. Use Pull requests mechanism for proposing your changes. Anyone can contribute to the Nauta, we are happy that we can get help from your side.
Contribution process to Nauta repository is based on Github Workflow. There are several steps you should do before your changes are merged to the Nauta code.
- Log into your Github account.
- Go to https://github.com/intelai/nauta
- Create fork of nauta repository by clicking on the Fork button.
- On your developer machine clone a forked repository of Nauta:
git clone https://github.com/{{ your_github_username }}/nauta
. - Set upstream do official Nauta repo:
git remote add upstream https://github.com/intelai/nauta
. - Block push command for upstream remote:
git remote set-url --push upstream no_push
. - Now you should be able to see properly configured remotes:
git remote -v
.
- Enter into the main repository directory.
- Make sure that you have fresh code:
git fetch upstream
. - Set up your base branch:
git checkout develop
. - Create your feature branch where you will be developing your changes:
git checkout -b {{ branch_name }}
.
When you prepared some code and you think that it is already OK, you should test it. Some of components have integrated test tools which run unit tests and check styles. Be sure that your code does not break any compatibility and all tests pass.
Now when your changes are finished, you can commit them using git commit -a
command.
Next push your changes to the remote: git push -f {{ your_github_username }} {{ branch_name }}
.
- Go to
https://github.com/{{ your_github_username }}/nauta
. - Click the
New Pull Request
button. - Set up branches, fill the title and clear description, then create a new Pull Request.
When you creates a new Pull Request, some of Nauta developers will check your changes and give you a feedback. If everything is OK, you will be able to merge your changes, if not - then you will do next changes and next Review Process will be performed once again.
If a review process is completed with success, you can squash and merge your changes!
In Nauta we are using several programming languages and technologies like Python, Javascript, Golang... etc. Most of code is written in Python, but deployment scripts use ansible and bash scripting. As a Nauta developer you should write the clean code in accordance with the good practices and standards to avoid simple and popular mistakes.
Documentation is written using markup language. More information about syntax you can find here.