Hi there! Thank you already, for taking the time to contribute to improve mtriage. This document is the right place to start. Read it thoroughly!
The majority of mtriage is written in Python. You'll be best placed to contribute if you're comfortable working with classes, decorators, etc- but don't worry if these terms are not familiar just yet!
Mtriage uses Docker containers to abstract dependencies from needing to be installed on the local host. It's not essential, but a good operational knowledge of Docker will be helpful.
Contributing can of course be about contributing code, but it can also take many other forms. A great amount of work that remains to be done to make mtriage a usable community tool doesn't involve writing any code. The following are just a few examples of other welcome contributions:
- Writing, updating or correcting documentation.
- Requesting a feature
- Reporting a bug
If you're new to this project and looking for a good problem to get started, you might want to check out the open issues that are tagged "good first issue".
These are a rnage of the issues that have come up in conversation for which we would welcome community contributions. These are, however, by no means exhaustive! If you see a gap or have an idea, please open up an issue to discuss it with mtriage's maintainers.
You can learn about what we are currently working on by looking at the latest update. Updates can be found here.
- Make sure you have a GitHub account
- Fork the repository on GitHub. This is necessary so that you can push your changes, as you can't do this directly on our repo.
- Get set up with a local instance of mtriage. The easiest way to do this is by following through the tutorial.
- Join our Discord server. Here you'll be able to track commits that are actively being made across our projects; but more importantly it's where you can ask questions if something's not clear or not working as you expect. The #mtriage and #support channels are the two best places to ask questions about setting mtriage up, or how it works.
Once you're set up with a local copy of mtriage, you can start modifying code and making changes.
When you're ready to submit a contribution, you can do it by making a pull request from a branch on your forked copy of timemap to this repository. You can do this with the following steps:
- Push the changes to a remote repository. If the changes you have made
address a bug, you should name it
bug/{briefdesc}
, where{briefdesc}
is a hyphen-separated description of your change. If instead you are contributing changes as a feature request, name itfeature/{briefdesc
}. If in doubt, prefix your branch withfeature/
. - Submit a pull request to the
develop
branch offorensic-architecture/mtriage
(notmain
!). - Wait for the pull request to be reviewed by a maintainer.
- Make changes to the pull request if the reviewing maintainer recommends them.
- Celebrate your success once your pull request is merged!
We are still working on a full set of tests, but there are some basic ones in place that need to pass before we can merge any contributions.
Tests can be run with the following command:
./mtriage dev test
All code must be formatted according to the black formatter. (CI builds will fail if code is not Black-formatted.)
If you are contributing a new component (i.e. an analyser or a selector), ensure that your component lists the correct dependencies. You can do so by ensuring that it works in a standalone custom build.