Please read through the instructions carefully.
- Please ensure that you have these or later version of
node
andnpm
.node
>=12.11.0
npm
>=6.11.3
- If you are using Unix-based system
- use latest version of
bash
orzsh
terminals.
- use latest version of
- If you are windows
- use
Git bash
. - The VSCode internal terminal may not work properly. So use Git Bash where ever possible.
- use
- It is recommended that you use
nvm
to manage node versions. - We recommend that you use VSCode with these extensions installed/enabled.
- Clone your version of the repo on your local system
cd
into the folder where the repo was cloned and runnpm install
ORyarn
.- Then,
cd
intojs-exercises
and runnpm install
ORyarn
for this sub-folder. - For each new day, follow the following steps --
- Create a new branch.
- For example, if the topic is Expressing Programs, the branch can be
solutions-expressing-programs
- For example, if the topic is Expressing Programs, the branch can be
- Use the commands mentioned below download the questions
- Read the README file for instructions.
- Solve the question
- Commit the files
- Push the branch to your repo
- Create a pull request on your repo from the above branch to master.
- DO NOT MERGE THE PR
- Create a new branch.
You can also watch the following video for step by step setup instructions and workflow to submit your solutions Setup instructions
If you are getting the warning of Too Many Requests from GitHub, then
you can add an .env
file in the root directory with your GITHUB api key.
You can refer to this link to generate your own token.
Here's an example of an .env
file:
GITHUB_API_KEY=here_goes_your_api_key
(Make sure to not commit your .env
);
You do NOT need to check any checkbox in "Select Scopes" section. The token is just used to extend the rate limit for downloading files from Github.
Please ensure you are in the top-level of the package and not in any subfolders (like js-exercises
).
This command lets you fetch a question. Here is an example usage. If you want to fetch a question, you can use npx pesto download -e <question-name>
and type your question. Here's an example fetching questions cache-function
and flip-args
$ npm run download <question-name>
OR
$ yarn run download <question-name>
- Don't modify
.babelrc
,.eslintrc
,jest.config.json
.- If you need to disable any eslint rule, use inline comments. Refer to this link for more info.
- Don't download any extra dependency for solving any question. You can only use internal node modules.
- A solution will not be considered complete until an implementation and a test file are both provided.
- For example — if the question is to code
add
function, thenadd.js
should contain the implementation andadd.test.js
should contain the test cases. - For some questions, test cases are provided. For questions where test cases are missing, you need to add them.
- Write tests for all the questions using Jest
- For example — if the question is to code
- For daily exercises the pull request should be created before 8 PM (IST) the next day.
- For long exercises the pull request should be created before 8 PM (IST) on Monday.
- Your homework will not be counted as complete if the pull request is not created within the above time frame.
- One question per Pull Request
- Each Pull Request should have code only related to that question
- If you have changes related to
babel
etc. please create a separate PR for that and merge it