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 🙂
NOTE: Do not make a PR on
gh-pagesdirectly:heavy_exclamation_mark:
- 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 ✅
- 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 🍹
Being an open-source contributor is awesome
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 servebasis. -
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
-
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,mediumandhard. -
Biweekly evaluation will be conducted based on each participants' score and the result will be declared on the Slack Workspace.
