Skip to content

Latest commit

 

History

History
130 lines (90 loc) · 3.83 KB

CONTRIBUTING.md

File metadata and controls

130 lines (90 loc) · 3.83 KB

Contributing to Squad

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.

Table of Contents

Introduction

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!

Bugs and Suggestions

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."

Dev Environment Setup

WIP

Requirements

  1. Make
  2. nix-shell (unless using the mock metastore)
  3. npm
  4. lerna
  5. 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.

Submitting Changes

Code Guidelines

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

Linting

TODO

Javascript & React: StandardJS

Solidity: Solhint

Rust: Clippy? Maybe not necessary because of Rust's built in linting

Testing

TODO

Pull Requests

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:

  1. What changes are included in the pull request
  2. How these change are a valuable contribution to Squad
  3. 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!

Contact us

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)