Skip to content

Latest commit

 

History

History
126 lines (77 loc) · 4.65 KB

File metadata and controls

126 lines (77 loc) · 4.65 KB

Contribution is fun! 💚

With your contribution, we can create a comprehensive mathematical tool that may potentially aid millions of people who wanna do competitive programming in JavaScript for years to come. In order to make a hassle-free environment, I implore you all (while contributing) to follow the instructions/guidelines mentioned below!

Happy Contributing 🙂

🔍 Project Architecture

NOTE: Do not make a PR on gh-pages directly:heavy_exclamation_mark:

⬇️ Installation

  • First, fork this repository 🍴 and follow the given instructions:
# clone the repository to your local machine
$ git clone https://github.com/<YOUR-GITHUB-USERNAME>/Mathball.git

# navigate to the project's directory and install all the relevant dev-dependencies
$ cd Mathball && npm i --save-dev

# include all the latest changes from the remote repository
$ git remote add upstream https://github.com/pbiswas101/Mathball.git
$ git fetch upstream
$ git merge upstream/master
  • If you wanna work on deploy branch then you need to make a slight change regarding the above commands, like so:
$ git clone https://github.com/<YOUR-GITHUB-USERNAME>/Mathball.git
$ cd Mathball && npm i

$ git checkout -b deploy

$ git remote add upstream https://github.com/pbiswas101/Mathball.git
$ git fetch upstream
$ git merge upstream/deploy

Next, create a new branch for the particular issue - $ git checkout -b <NEW-BRANCH-NAME> and make PR from that branch while leaving master branch unchanged ✅

🚧 Development

  • In master branch you can run the following command:
# testing locally
$ npm run test

# building locally
$ npm run build
  • In deploy branch you can run the following command:
# setting up development server
$ npm run start
  • While working on the documentation site, make sure to make PR for deploy branch! Under no circumstance should you use $ npm run eject
  • Once you have made your changes, run the following command:
# add your changes
$ git add .

# make your commit
$ git commit -m "<YOUR-COMMIT-MESSAGE>"

Think you're ready ❔ Make the PR 🍹

📃 Guidelines

Being an open-source contributor is awesome :bowtie: but with great awesomeness comes great responsibility; and the responsibility of what you might ask! Well, you certainly don't wanna make a PR that would break the codebase ❌, or instead of fixing bugs, creates more 🪲. So, here are some curated guidelines one should follow while contributing 🏆

  • Raise an issue regarding bug fixes or feature enhancements, before making a PR.

  • While raising an issue, please follow the ISSUE_TEMPLATE.md guidelines.

  • First, claim an issue and make a PR only when you're assigned to it.

  • To claim an issue, just leave a comment and you'll be assigned on first come, first serve basis.

  • Organize your code adhered to Airbnb style guide as much as possible.

  • Configure your editor to support the preferences from the .editorconfig file.

  • A feature enhancement PR should include corresponding unit tests. Also, make sure to update src/index.js and README.md in an alphabetical manner under the proper category.

  • Squash your commits for cleaner commit history.

  • While making a PR, please follow the PULL_REQUEST_TEMPLATE.md guidelines and mention the issue you are solving, like so - Fixed #2.

  • Your PR must pass the Travis CI, Codacy, Snyk checks for it to be considered getting merged.

  • Codecov checks ain't mandatory to pass but your PR shouldn't decrease the overall project's coverage by a huge margin.

  • Use ES6+ syntax precisely and do not review others' PR!

  • Maintain a healthy environment and don't indulge in any kind of activities that's against the CODE_OF_CONDUCT.md

Additional Instructions for GirlScript Summer of Code 2019 Participants:
  • If a participant resolves any issue which includes the label gssoc19, he/she would earn a score!

  • Scores are rewarded according to the difficulty level of the corresponding issue which can be identified by the labels like easy, medium and hard.

  • Biweekly evaluation will be conducted based on each participants' score and the result will be declared on the Slack Workspace.

Made with ♥️ for the Community!