- Fork the project.
- Clone your fork to your computer.
- From the command line:
git clone https://github.com/<USERNAME>/evoke.git
- From the command line:
- Change into your new project folder.
- From the command line:
cd evoke
- From the command line:
- [optional] Add the upstream repository to your list of remotes.
- From the command line:
git remote add upstream https://github.com/signalling-games-org/evoke.git
- From the command line:
- Create a branch for your new feature.
- From the command line:
git checkout -b my-feature-branch-name
- From the command line:
- Make your changes.
- Avoid making changes to more files than necessary for your feature (i.e. refrain from combining your "real" merge request with incidental bug fixes). This will simplify the merging process and make your changes clearer.
- If you are adding examples from the literature:
- place the file containing the example into
examples
, naming it<first author><year><title's first letter>.py
in lower case without spaces, e.g.skyrms2010signals.py
. - each example object should inherit from an existing Figure object. If necessary create your own in
figure.py
first. - name each example object _ in camel case with underscores replacing periods, e.g. Skyrms's Figure 3.4 becomes
Skyrms2010_3_4
. If the figure does not have a number in the original text, use a uniquely identifying and descriptive name.
- place the file containing the example into
- Commit your changes. From the command line:
git add <FILE-NAMES>
git commit -m "A descriptive commit message"
- While you were working some other changes might have gone in and break your stuff or vice versa. This can be a merge conflict but also conflicting behavior or code. Before you test, merge with master.
git fetch upstream
git merge upstream/main
- Test. Run the program and do something related to your feature/fix.
- Push the branch, uploading it to GitHub.
git push origin my-feature-branch-name
- Make a "merge request" from your branch here on GitHub.
Test scripts can be found in evoke/tests/
.
Each test script corresponds to a source script; for example test_evolve.py
contains tests for the classes and methods in evolve.py
.
To run a test script simply call python <script name>
; for example python test_evolve.py
will run all the tests for evolve.py
.
To run all test scripts at once, navigate to the test directory and run python -m unittest
.
Please use the issue tracker to report problems.
Email Stephen Mann.
Parts of this document were adapted from taguette's CONTRIBUTING.md.