MSTICPy Development Guidelines
Contributions of improvements, fixes and new features are all welcomed. Whether this is your first time contributing to a project or you are a seasoned Open-Source contributor, we welcome your contribution. In this guide you can find a few pointers to help you create a great contribution.
What to contribute
There are many things that can make a good contribution. It might be a fix for a specific issue you have come across, an improvement to an existing feature that you have thought about such as a new data connector or threat intelligence provider, or a completely new feature category.
If you don’t have a specific idea in mind take a look at the Issues page on GitHub
This page tracks a range of issues, enhancements, and features that members of the community have thought of. The MSTICPy team uses these issues as a way to track work and includes many things we have added ourselves.
The issues are tagged with various descriptions that relate to the type of issue. You may see some with the ‘good first issue’ tag. These are issues that we think would make a good issue for someone contributing to MSTICPy for the first time, however anyone is welcome to work on any Issue. If you decide to start working on an Issue please make a comment on the Issue so that we can assign it to you and other members of the community know that it is being worked on and don’t duplicate work. Also if you are unclear about what the Issue feel free to comment on the Issue to get clarification from others.
What makes a good contribution?
Whilst there is no one thing that makes a contribution good here are some guidelines:
Scope
Focus your contribution on a single thing per PR (Pull Request) raised, whether it be a feature or a fix. If you have multiple things you want to contribute, consider splitting them into multiple PRs. Keeping each PR to a single item makes it easier for others to see what you are contributing and how it fits with the rest of the project.
Documentation
Make it clear what you are contributing, why its important, and how it works. This provides much needed clarity for others when reviewing contributions and helps to highlight the great value in your contribution.
Unit test and test Coverage
Write unit tests for your code. We use pytest to run our tests.
See the section Unit Tests for more information.
Using Git
To contribute you will need to fork the MSTICPy repo. Create a branch for your contribution, make the code changes and then raise a PR to merge the changes back into MSTICPy’s main branch. Please do not make changes to main of your fork and submit this as a PR. You should also consider granting permission on your fork so that we can push changes back to your forked branch. Sometimes, it’s quicker for us to make a quick change to fix something than to ask you to make the change. If we cannot push any changes back this is impossible to do.
If you are unfamiliar with Git and GitHub you can find some guidance here: https://docs.github.com/en/get-started/quickstart/set-up-git
Where to get help
We are more than happy to help support your contributions, if you need help you can comment on the Issue you are working on, or email [msticpy@microsoft.com](mailto:msticpy@microsoft.com)
You can also join our Discord #msticpy <https://discordapp.com/channels/717911137915764877/922881584288399410>.