Contribution Guidelines
Contribute
Opening a new issue? Please read our issue guidelines first.
Contributing code? Check the code contribution guidelines.
Investigating bugs? These debugging commands can help.
Need help with git? git howto might be what you’re looking for.
Contributing code or data to Cataclysm: Dark Days Ahead is easy - simply fork the repository on our GitHub, make your changes, and then send us a pull request.
Cataclysm: Dark Days Ahead is released under the Creative Commons Attribution ShareAlike 3.0 license. The code and content of the game is free to use, modify, and redistribute for any purpose whatsoever. See https://creativecommons.org/licenses/by-sa/3.0/ for details. This means any contribution you make to the project will also be covered by the same license, and this license is irrevocable.
Guidelines
There are a couple of guidelines we suggest sticking to:
- Add the repository as an
upstream
remote. - Keep your
master
branch clean. This means you can easily pull changes made to this repository into yours. - Create a new branch for each new feature or set of related bug fixes.
- Never merge from your local branches into your
master
branch. Only updatemaster
by pulling fromupstream/master
.
Frequently Asked Questions
Why does git pull --ff-only
result in an error?
If git pull --ff-only
shows an error, it means that you’ve committed directly to your local master
branch. To fix this, you can create a new branch with these commits, find the point at which you diverged from upstream/master
, and then reset master
to that point.
$ git pull --ff-only upstream master
From https://github.com/CleverRaven/Cataclysm-DDA
* branch master -> FETCH_HEAD
fatal: Not possible to fast-forward, aborting.
$ git branch new_branch master # mark the current commit with a tmp branch
$ git merge-base master upstream/master
cc31d0... # the last commit before we committed directly to master
$ git reset --hard cc31d0....
HEAD is now at cc31d0... ...
Now that master
has been cleaned up, you can easily pull from upstream/master
, and then continue working on new_branch
.
$ git pull --ff-only upstream master
# gets changes from the "upstream" remote for the matching branch, in this case "master"
$ git checkout new_branch
How does the project work anyway?
I-am-Erk has written a guide outlining project governance. https://github.com/CleverRaven/Cataclysm-DDA/blob/master/doc/development_process.md