Hello! Thanks for being part of the Bellingcat Tech Community 💪 We really appreciate your ideas, thoughts, and involvement. Read on for guidance on how to contribute to this project 🏆
Contributions to this project are released to the public under the project's open source license.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
In order to contribute code upstream, you'll likely need to have a sense of ES6 Javascript, React, and Redux. If these terms are new to you, or not as familiar as you might like, here's a good tutorial to get you up to speed:
Timemap doesn't actually use these technologies; but the main way of getting up and running with a data provider for timemap, datasheet-server, does, and so they're helpful to know.
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 timemap a usable community tool doesn't involve writing any code. The following are all very welcome contributions:
- Writing, updating or correcting documentation
- Fixing an open issue
- Requesting a feature
- Reporting a bug
If you're new to this project, you could check the issues that are tagged "good first issue".
These are a range 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 timemap's maintainers.
- 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 timemap and datasheet-server. The easiest way to do this is by reading this blog post on the forensic architecture website.
- Join the Bellingcat Discord server, this is our main community hub. Check out the #tool-and-sites and #tech-support channels for support with the ukraine-timemap. Also consider joining the Forensic Architecture Discord, the #timemap and #support channels are the two best channels to ask questions about setting timemap up.
Once you're set up with a local copy of timemap and datasheet-server, 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/timemap
. - 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 set of tests. Right now, it is enough to confirm that
the application runs as expected with npm run dev
. If your changes introduce
other issues, a maintainer will flag it in stage 3 of the submission process
above.
This contributing guide is based on the guidelines of both the SuperCollider contributing guide, and the nteract contributing guide (two excellent open source projects!).
Thanks to Scott Carver for advice on how to put a guide together.