Files
ukraine-timemap/CONTRIBUTING.md
Galen Reich 9719ce4b2a Revise community health documents (#76)
* Update CONTRIBUTING.md

Refer to the Bellingcat global Code of Conduct

* Supercede project-specific CoC with global CoC

Delete the CoC from this repo, and refer to the global CoC

* Refer to contribution guide in README

* Use Bellingcat links in CONTRIBUTING.md
2024-04-09 18:08:12 +01:00

84 lines
4.5 KiB
Markdown

# Contributing to timemap
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](https://github.com/bellingcat/.github/blob/main/CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
## What do I need to know to help?
### Javascript / React / Redux
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:
- [Building a voting app with Redux and React](https://teropa.info/blog/2015/09/10/full-stack-redux-tutorial.html)
### Node JS and Docker
Timemap doesn't actually use these technologies; but the main way of getting up
and running with a data provider for timemap,
[datasheet-server](https://github.com/bellingcat/datasheet-server),
does, and so they're helpful to know.
## Do I need to be an experienced JS developer?
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"](https://github.com/bellingcat/ukraine-timemap/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22).
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.
## How do I make a contribution?
1. Make sure you have a [GitHub account](https://github.com/signup/free)
2. 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.
3. 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](https://forensic-architecture.org/investigation/timemap-for-cartographic-platforms).
4. [Join the Bellingcat Discord server](https://discord.gg/bellingcat), 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](https://discord.gg/PjHKHJD5KX), 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:
1. 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 it `feature/{briefdesc`}. If
in doubt, prefix your branch with `feature/`.
2. Submit a pull request to the `develop` branch of `forensic-architecture/timemap`.
3. Wait for the pull request to be reviewed by a maintainer.
4. Make changes to the pull request if the reviewing maintainer recommends
them.
5. Celebrate your success once your pull request is merged!
## How do I validate my changes?
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.
## Credits
This contributing guide is based on the guidelines of both the
[SuperCollider contributing guide](https://raw.githubusercontent.com/supercollider/supercollider/develop/CONTRIBUTING.md),
and the [nteract contributing
guide](https://github.com/nteract/nteract/blob/master/CONTRIBUTING.md) (two
excellent open source projects!).
Thanks to [Scott Carver](https://github.com/scztt) for advice on how to put
a guide together.