Squad is an open source project that welcomes all contributions following this guide. If you're reading this, thanks! We appreciate your interest in the project and encourage you to try making a contribution and joining the community.
Before contributing, you should be familiar with Squad and its architecture (LINK TO DOCUMENTATION) and have a clear idea of what you're trying to achieve.
If you're not sure what type of contribution to make, you can look through unaddressed github issues or join our Discord and ask for ideas. We'll be happy to give you something to do!
If you've found a bug, please go to Squad's github issues, check if the bug has already been submitted, and if it hasn't, submit a new issue. Tag your issue with "bug" and use existing bug-tagged issues as examples for how to format your submission.
If you'd like to request a new feature or a change, follow the same protocol using the "suggestion" tag instead of "bug."
WIP
- Make
- nix-shell (unless using the mock metastore)
- npm
- lerna
- c++ buildtools (gcc-c++ in rpm based systems)
To stand up a dev environment to work on squad games, run the following in separate terminals
make squad-games-web
make app-spec-web
If you are not doing development work on the metastore, you may want
to use the mock metastore. In order to do so, set the MOCK_METASTORE
environment variable to true
and skip making the metastore. This
makes the build process much quicker and does not depend on nix-shell.
MOCK_METASTORE=true make squad-games-web
MOCK_METASTORE=true make app-spec-web
TODO: make app-spec-web
should not open a browser automatically,
you'll have to close that tab yourself for now.
Squad uses a number of languages and frameworks. Our approaches to each are still forming, but we'll update them here as they stabilize:
TODO
React/Redux
Non-React Javascript
Solidity
Rust
TODO
Javascript & React: StandardJS
Solidity: Solhint
Rust: Clippy? Maybe not necessary because of Rust's built in linting
TODO
Squad uses a develop -->
master
git branch structure. Your contribution should start with a fork of
the develop
branch and end with a pull request to merge your fork
back into the develop
branch.
Please give your pull request a clear title. If the request is a
response to an issue, put Issue [NUMBER]
at the beginning of the
title. In the description, briefly explain:
- What changes are included in the pull request
- How these change are a valuable contribution to Squad
- Why you've implemented them the way you have
Before submitting your pull request, please make sure the automatic tests pass or give a good reason why you are submitting with failing tests (NOT IMPLEMENTED). We make an effort to respond to all pull requests, and if your request is not merged, we'll be sure to give you feedback about why.
That's it. Thank you for contributing to Squad!
The best way to get in touch with people working on Squad directly is through our Discord. The core contributors to Squad as of October, 2019, are:
- Jesse B. Miller ("BayesianAgent | Jesse#2255" on Discord)
- Ezra Weller ("Ezra Weller#4662" on Discord)