diff --git a/docs/i18n/chinese-traditional/devops.md b/docs/i18n/chinese-traditional/devops.md index 7584aa04bc8..e082a8f1fdc 100644 --- a/docs/i18n/chinese-traditional/devops.md +++ b/docs/i18n/chinese-traditional/devops.md @@ -303,19 +303,19 @@ You should keep the VMs up to date by performing updates and upgrades. This will Update package information -```console +```bash sudo apt update ``` Upgrade installed packages -```console +```bash sudo apt upgrade -y ``` Cleanup unused packages -```console +```bash sudo apt autoremove -y ``` @@ -331,7 +331,7 @@ Provisioning VMs with the Code 1. Install NGINX and configure from repository. - ```console + ```bash sudo su cd /var/www/html @@ -352,7 +352,7 @@ Provisioning VMs with the Code Move over existing certificates: - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -364,7 +364,7 @@ Provisioning VMs with the Code Update Upstream Configurations: - ```console + ```bash vi configs/upstreams.conf ``` @@ -382,7 +382,7 @@ Provisioning VMs with the Code 1. Check status for NGINX service using the below command: - ```console + ```bash sudo systemctl status nginx ``` @@ -396,13 +396,13 @@ Config changes to our NGINX instances are maintained on GitHub, these should be 1. SSH into the instance and enter sudo -```console +```bash sudo su ``` 2. Get the latest config code. -```console +```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -410,7 +410,7 @@ git reset --hard origin/main 3. Test and reload the config [with Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). -```console +```bash nginx -t nginx -s reload ``` @@ -419,7 +419,7 @@ nginx -s reload 1. Install build tools for node binaries (`node-gyp`) etc. -```console +```bash sudo apt install build-essential ``` @@ -431,19 +431,19 @@ Provisioning VMs with the Code 2. Install pnpm globally. -```console +```bash npm install -g pnpm ``` 3. Install pm2 globally. -```console +```bash npm install -g pm2 ``` 4. Clone freeCodeCamp, set up env, and keys. -```console +```bash git clone https://github.com/freeCodeCamp/freeCodeCamp.git cd freeCodeCamp git checkout prod-current # or any other branch to be deployed @@ -453,36 +453,36 @@ git checkout prod-current # or any other branch to be deployed 6. Install dependencies -```console +```bash pnpm install ``` 7. Setup pm2 `logrotate` and startup on boot -```console +```bash pm2 install pm2-logrotate pm2 startup ``` 8. Build the server -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 9. Start Instances -```console +```bash pnpm start:server ``` ### Logging and Monitoring -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -496,31 +496,31 @@ Code changes need to be deployed to the API instances from time to time. It can 1. Stop all instances -```console +```bash pm2 stop all ``` 2. Install dependencies -```console +```bash pnpm install ``` 3. Build the server -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 4. Start Instances -```console +```bash pnpm start:server && pm2 logs ``` #### 2. Rolling updates - Used for logical changes to code. -```console +```bash pnpm reload:server && pm2 logs ``` @@ -532,7 +532,7 @@ pnpm reload:server && pm2 logs 2. Update pm2 to use the new version -```console +```bash pm2 update ``` @@ -540,7 +540,7 @@ pm2 update 1. Install build tools for node binaries (`node-gyp`) etc. -```console +```bash sudo apt install build-essential ``` @@ -552,7 +552,7 @@ Provisioning VMs with the Code 2. Update `npm` and install PM2 and setup `logrotate` and startup on boot - ```console + ```bash npm i -g npm@8 npm i -g pm2@4 npm install -g serve@13 @@ -562,7 +562,7 @@ Provisioning VMs with the Code 3. Clone client config, setup env and keys. - ```console + ```bash git clone https://github.com/freeCodeCamp/client-config.git client cd client ``` @@ -571,7 +571,7 @@ Provisioning VMs with the Code > Todo: This setup needs to move to S3 or Azure Blob storage > - > ```console + > ```bash > echo "serve -c ../serve.json -p 50505 www" > client-start-primary.sh > chmod +x client-start-primary.sh > pm2 delete client-primary @@ -584,11 +584,11 @@ Provisioning VMs with the Code ### Logging and Monitoring -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -602,7 +602,7 @@ Code changes need to be deployed to the API instances from time to time. It can 1. Stop all instances - ```console + ```bash pm2 stop all ``` @@ -610,13 +610,13 @@ Code changes need to be deployed to the API instances from time to time. It can 3. Start Instances - ```console + ```bash pm2 start all --update-env && pm2 logs ``` #### 2. Rolling updates - Used for logical changes to code. -```console +```bash pm2 reload all --update-env && pm2 logs ``` @@ -636,7 +636,7 @@ Provisioning VMs with the Code 1. Install NGINX and configure from repository. - ```console + ```bash sudo su cd /var/www/html @@ -657,7 +657,7 @@ Provisioning VMs with the Code Move over existing certificates: - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -669,7 +669,7 @@ Provisioning VMs with the Code Update Upstream Configurations: - ```console + ```bash vi configs/upstreams.conf ``` @@ -687,7 +687,7 @@ Provisioning VMs with the Code 1. Install Docker and configure from the repository - ```console + ```bash git clone https://github.com/freeCodeCamp/chat-config.git chat cd chat ``` @@ -696,7 +696,7 @@ Provisioning VMs with the Code 3. Run rocket-chat server - ```console + ```bash docker-compose config docker-compose up -d ``` @@ -705,13 +705,13 @@ Provisioning VMs with the Code 1. Check status for NGINX service using the below command: - ```console + ```bash sudo systemctl status nginx ``` 2. Check status for running docker instances with: - ```console + ```bash docker ps ``` @@ -723,13 +723,13 @@ Config changes to our NGINX instances are maintained on GitHub, these should be 1. SSH into the instance and enter sudo - ```console + ```bash sudo su ``` 2. Get the latest config code. - ```console + ```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -737,7 +737,7 @@ Config changes to our NGINX instances are maintained on GitHub, these should be 3. Test and reload the config [with Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). - ```console + ```bash nginx -t nginx -s reload ``` @@ -746,44 +746,44 @@ Config changes to our NGINX instances are maintained on GitHub, these should be 1. SSH into the instance and navigate to the chat config path - ```console + ```bash cd ~/chat ``` 2. Get the latest config code. - ```console + ```bash git fetch --all --prune git reset --hard origin/main ``` 3. Pull down the latest docker image for Rocket.Chat - ```console + ```bash docker-compose pull ``` 4. Update the running instances - ```console + ```bash docker-compose up -d ``` 5. Validate the instances are up - ```console + ```bash docker ps ``` 6. Cleanup extraneous resources - ```console + ```bash docker system prune --volumes ``` Output: - ```console + ```bash WARNING! This will remove: - all stopped containers - all networks not used by at least one container @@ -802,7 +802,7 @@ Config changes to our NGINX instances are maintained on GitHub, these should be ssh into the VM (hosted on Digital Ocean). -```console +```bash cd tools git pull origin master pnpm install @@ -814,7 +814,7 @@ pm2 restart contribute-app List currently installed node & npm versions -```console +```bash nvm -v node -v npm -v @@ -824,25 +824,25 @@ nvm ls Install the latest Node.js LTS, and reinstall any global packages -```console +```bash nvm install --lts --reinstall-packages-from=default ``` Verify installed packages -```console +```bash npm ls -g --depth=0 ``` Alias the `default` Node.js version to the current LTS (pinned to the latest major version) -```console +```bash nvm alias default 16 ``` (Optional) Uninstall old versions -```console +```bash nvm uninstall ``` @@ -852,31 +852,31 @@ nvm uninstall Get the uninstall instructions/commands with the `unstartup` command and use the output to remove the systemctl services -```console +```bash pm2 unstartup ``` Get the install instructions/commands with the `startup` command and use the output to add the systemctl services -```console +```bash pm2 startup ``` Quick commands for PM2 to list, resurrect saved processes, etc. -```console +```bash pm2 ls ``` -```console +```bash pm2 resurrect ``` -```console +```bash pm2 save ``` -```console +```bash pm2 logs ``` @@ -898,32 +898,32 @@ Currently updating agents requires them to be removed and reconfigured. This is 1. Navigate and check status of the service - ```console + ```bash cd ~/azagent sudo ./svc.sh status ``` 2. Stop the service - ```console + ```bash sudo ./svc.sh stop ``` 3. Uninstall the service - ```console + ```bash sudo ./svc.sh uninstall ``` 4. Remove the agent from the pipeline pool - ```console + ```bash ./config.sh remove ``` 5. Remove the config files - ```console + ```bash cd ~ rm -rf ~/azagent ``` @@ -938,7 +938,7 @@ We use [a CLI tool](https://github.com/freecodecamp/sendgrid-email-blast) to sen 2. Set up the script to fetch the email list. - ```console + ```bash cd /home/freecodecamp/scripts/emails cp sample.env .env ``` @@ -947,7 +947,7 @@ We use [a CLI tool](https://github.com/freecodecamp/sendgrid-email-blast) to sen 3. Run the script. - ```console + ```bash node get-emails.js emails.csv ``` diff --git a/docs/i18n/chinese-traditional/how-to-add-cypress-tests.md b/docs/i18n/chinese-traditional/how-to-add-cypress-tests.md index 86cc7abe184..cb8c1f051e9 100644 --- a/docs/i18n/chinese-traditional/how-to-add-cypress-tests.md +++ b/docs/i18n/chinese-traditional/how-to-add-cypress-tests.md @@ -26,25 +26,25 @@ To run tests against production builds, replace `dev` with `prd` below. - To run all tests in the `./cypress` directory: - ```console + ```bash pnpm run cypress:dev:run ``` - To run a single test: - ```console + ```bash pnpm run cypress run --spec=cypress/ ``` For example: - ```console + ```bash pnpm run cypress run --spec=cypress/e2e/default/landing.ts ``` - To create a development build, start the development server, and run all existing cypress end-to-end tests: - ```console + ```bash pnpm run e2e:dev:run ``` @@ -57,25 +57,25 @@ If starting the Gitpod environment did not automatically develop the environment - Follow the [MongoDB installation guide](https://www.mongodb.com/basics/get-started). - Create a config file. -```console +```bash pnpm run create:shared ``` - Seed the database -```console +```bash pnpm run seed ``` - Develop the server and client -```console +```bash pnpm run develop ``` ### 2. Install Cypress Build Tools -```console +```bash pnpm run cypress:install-build-tools ``` diff --git a/docs/i18n/chinese-traditional/how-to-add-playwright-tests.md b/docs/i18n/chinese-traditional/how-to-add-playwright-tests.md index 7ff58224ee4..0f450480fea 100644 --- a/docs/i18n/chinese-traditional/how-to-add-playwright-tests.md +++ b/docs/i18n/chinese-traditional/how-to-add-playwright-tests.md @@ -4,7 +4,7 @@ To install Playwright run: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -181,49 +181,49 @@ To run tests with Playwright check the following below - Make sure you navigate to the e2e repo first - ```console + ```bash cd e2e ``` - To run tests in UI helper mode: - ```console + ```bash npx playwright test --ui ``` - To run a single test: - ```console + ```bash npx playwright test ``` For example: - ```console + ```bash npx playwright test landing-page.spec.ts ``` - Run a set of test files in respective folders: - ```console + ```bash npx playwright test ``` For example: - ```console + ```bash npx playwright test tests/todo-page/ tests/landing-page/ ``` - Run the test with the title: - ```console + ```bash npx playwright test -g ``` For example: - ```console + ```bash npx playwright test -g "add a todo item" ``` @@ -233,13 +233,13 @@ Since Playwright runs in Node.js, you can debug it with your debugger of choice - Debugging all tests: - ```console + ```bash npx playwright test --debug ``` - Debugging one test file: - ```console + ```bash npx playwright test example.spec.ts --debug ``` @@ -247,7 +247,7 @@ Since Playwright runs in Node.js, you can debug it with your debugger of choice The HTML Reporter shows you a full report of your tests allowing you to filter the report by browsers, passed tests, failed tests, skipped tests and flaky tests. -```console +```bash npx playwright show-report ``` @@ -257,13 +257,13 @@ Playwright is generally a solid bullet-proof tool. The contributor has already c - (MacOs and Linux) If running Playwright results in an error due to kernel dependencies, run the following command: - ```console + ```bash pnpm run playwright:install-build-tools-linux ``` - A common error seen in playwright is as follows: - ```console + ```bash Error: page.goto: Could not connect: Connection refused =========================== logs =========================== navigating to "https://127.0.0.1:8000/", waiting until "load" @@ -284,7 +284,7 @@ Playwright is generally a solid bullet-proof tool. The contributor has already c - Another common error seen in playwright is as follows: - ```console + ```bash Protocol error (Network.getResponseBody): Request content was evicted from inspector cache ``` @@ -305,25 +305,25 @@ If starting the Gitpod environment did not automatically develop the environment - Create the .env - ```console + ```bash cp sample.env .env ``` - Create a config file. - ```console + ```bash pnpm run create:shared ``` - Seed the database - ```console + ```bash pnpm run seed ``` - Develop the server and client - ```console + ```bash pnpm run develop ``` @@ -331,7 +331,7 @@ If starting the Gitpod environment did not automatically develop the environment To install necessary dependencies for running Playwright run the following command: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -339,6 +339,6 @@ pnpm run playwright:install-build-tools To run all Playwright tests, run the following command: -```console +```bash npx playwright test ``` diff --git a/docs/i18n/chinese-traditional/how-to-contribute-to-the-codebase.md b/docs/i18n/chinese-traditional/how-to-contribute-to-the-codebase.md index 50284e3c089..781427597f1 100644 --- a/docs/i18n/chinese-traditional/how-to-contribute-to-the-codebase.md +++ b/docs/i18n/chinese-traditional/how-to-contribute-to-the-codebase.md @@ -10,13 +10,13 @@ Follow these steps: 1. Validate that you are on the `main` branch: - ```console + ```bash git status ``` You should get an output like this: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -25,7 +25,7 @@ Follow these steps: If you got a different message, then you aren't on main or your working directory isn't clean, resolve any outstanding files/commits and checkout `main`: - ```console + ```bash git checkout main ``` @@ -39,25 +39,25 @@ Follow these steps: Update your copy of the freeCodeCamp upstream repository: - ```console + ```bash git fetch upstream ``` Hard reset your main branch with the freeCodeCamp main: - ```console + ```bash git reset --hard upstream/main ``` Push your main branch to your origin to have a clean history on your fork on GitHub: - ```console + ```bash git push origin main --force ``` You can validate that your current main matches the upstream/main by performing a diff: - ```console + ```bash git diff upstream/main ``` @@ -69,7 +69,7 @@ Follow these steps: Check that you are on `main` as explained previously, and branch off from there: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -93,13 +93,13 @@ Follow these steps: 7. Check and confirm the files you are updating: - ```console + ```bash git status ``` This should show a list of `unstaged` files that you have edited. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -118,25 +118,25 @@ Follow these steps: In this step, you should only mark files that you have edited or added yourself. You can perform a reset and resolve files that you did not intend to change if needed. - ```console + ```bash git add path/to/my/changed/file.ext ``` Or you can add all the `unstaged` files to the staging area: - ```console + ```bash git add . ``` Only the files that were moved to the staging area will be added when you make a commit. - ```console + ```bash git status ``` Output: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -151,7 +151,7 @@ Follow these steps: Now, you can commit your changes with a short message like so: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -181,7 +181,7 @@ Follow these steps: 9. If you realize that you need to edit a file or update the commit message after making a commit you can do so after editing the files with: - ```console + ```bash git commit --amend ``` @@ -189,7 +189,7 @@ Follow these steps: 10. Next, you can push your changes to your fork: - ```console + ```bash git push origin branch/name-here ``` diff --git a/docs/i18n/chinese-traditional/how-to-open-a-pull-request.md b/docs/i18n/chinese-traditional/how-to-open-a-pull-request.md index 1157e7439c2..4cd62933460 100644 --- a/docs/i18n/chinese-traditional/how-to-open-a-pull-request.md +++ b/docs/i18n/chinese-traditional/how-to-open-a-pull-request.md @@ -115,14 +115,14 @@ When you are working on regular bugs and features on our development branch `mai 1. Rebase your local copy: - ```console + ```bash git checkout <pr-branch> git pull --rebase upstream main ``` 2. Resolve any conflicts and add / edit commits - ```console + ```bash # Either git add . git commit -m "chore: resolve conflicts" @@ -134,7 +134,7 @@ When you are working on regular bugs and features on our development branch `mai 3. Push back your changes to the PR - ```console + ```bash git push --force origin <pr-branch> ``` @@ -144,7 +144,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, 1. Make sure your upstream comes in sync with your local: - ```console + ```bash git checkout main git fetch --all --prune git checkout next-python-projects @@ -155,7 +155,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, a. Either delete your local branch after taking a backup (if you still have it locally): - ```console + ```bash git checkout <pr-branch-name> # example: @@ -171,7 +171,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, b. Or just a backup of your PR branch (if you do not have it locally): - ```console + ```bash git checkout -b <backup-branch-name> origin/<pr-branch-name> # example: @@ -180,14 +180,14 @@ When you are working on features for our upcoming curriculum `next-*` branches, 3. Start off with a clean slate: - ```console + ```bash git checkout -b <pr-branch-name> next-python-projects git cherry-pick <commit-hash> ``` 4. Resolve any conflicts, cleanup, and install dependencies and run tests - ```console + ```bash pnpm run clean pnpm install @@ -201,6 +201,6 @@ When you are working on features for our upcoming curriculum `next-*` branches, 5. If everything looks good, push back to the PR - ```console + ```bash git push --force origin <pr-branch-name> ``` diff --git a/docs/i18n/chinese-traditional/how-to-setup-freecodecamp-locally.md b/docs/i18n/chinese-traditional/how-to-setup-freecodecamp-locally.md index 9d3dea27093..c93351f700f 100644 --- a/docs/i18n/chinese-traditional/how-to-setup-freecodecamp-locally.md +++ b/docs/i18n/chinese-traditional/how-to-setup-freecodecamp-locally.md @@ -75,7 +75,7 @@ We primarily support development on Linux and Unix-based systems like Ubuntu and If Node.js is already installed on your machine, run the following commands to validate the versions: -```console +```bash node -v pnpm -v ``` @@ -142,7 +142,7 @@ Run these commands on your local machine: 2. Clone your fork of freeCodeCamp, replacing `YOUR_USER_NAME` with your GitHub Username - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git ``` @@ -160,25 +160,25 @@ You need a reference from your local clone to the `upstream` repository in addit 1. Change the directory to the new freeCodeCamp directory: - ```console + ```bash cd freeCodeCamp ``` 2. Add a remote reference to the main freeCodeCamp repository: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git ``` 3. Ensure the configuration looks correct: - ```console + ```bash git remote -v ``` The output should look something like below (replacing `YOUR_USER_NAME` with your GitHub username): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch) origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push) upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch) @@ -203,12 +203,12 @@ And as always, feel free to ask questions on the ['Contributors' category on our The default API keys and environment variables are stored in the file `sample.env`. This file needs to be copied to a new file named `.env` that is accessed dynamically during the installation step. -```console +```bash # Create a copy of the "sample.env" and name it ".env". # Populate it with the necessary API keys and secrets ``` -```console +```bash cp sample.env .env ``` @@ -220,7 +220,7 @@ The keys in the `.env` file are _not_ required to be changed to run the app loca This step will install the dependencies required for the application to run: -```console +```bash pnpm install && pnpm run create:shared ``` @@ -234,7 +234,7 @@ Before you can run the application locally, you will need to start the MongoDB s Start the MongoDB server in a separate terminal: -```console +```bash mongod ``` @@ -242,15 +242,14 @@ mongod Next, let's seed the database. In this step, we run the below command that fills the MongoDB server with some initial data sets that are required by services. These include a few schemas, among other things. -```console +```bash pnpm run seed ``` By default, you will be signed in as a new user without any completed certifications. Run the following commands if you need to develop with completed certifications: -```console +```bash pnpm run seed:certified-user -pnpm run seed:exams ``` > [!WARNING] Running `pnpm run seed:certified-user` will log you out. You will have to clear your browser cookies and sign in again. @@ -259,7 +258,7 @@ pnpm run seed:exams You can now start up the API server and the client applications. -```console +```bash pnpm run develop ``` @@ -279,11 +278,12 @@ If you have issues while installing it, check out the [troubleshooting section]( A quick reference to the commands that you will need when working locally. -| command | description | -| ------------------------------ | ------------------------------------------------------------------------------------------------- | -| `pnpm install` | Installs / re-installs all dependencies and bootstraps the different services. | -| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. | -| `pnpm run seed:certified-user` | Creates authorized test users with certifications fully completed, and inserts them into MongoDB. | -| `pnpm run seed:exams` | Creates exams and inserts them into MongoDB. | -| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | -| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | +| command | description | +| ------------------------------ | ------------------------------------------------------------------------------------------------------------- | +| `pnpm install` | Installs / re-installs all dependencies and bootstraps the different services. | +| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. Also runs `seed:exams` and `seed:surveys` below. | +| `pnpm run seed:certified-user` | Creates authorized test users with certifications fully completed, and inserts them into MongoDB. | +| `pnpm run seed:exams` | Creates exams and inserts them into MongoDB. | +| `pnpm run seed:surveys` | Creates surveys for defaults users and inserts them into MongoDB. | +| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | +| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | diff --git a/docs/i18n/chinese-traditional/how-to-setup-freecodecamp-mobile-app-locally.md b/docs/i18n/chinese-traditional/how-to-setup-freecodecamp-mobile-app-locally.md index dcdd049e659..fa616db84dc 100644 --- a/docs/i18n/chinese-traditional/how-to-setup-freecodecamp-mobile-app-locally.md +++ b/docs/i18n/chinese-traditional/how-to-setup-freecodecamp-mobile-app-locally.md @@ -17,7 +17,7 @@ Start by installing the prerequisite software for your operating system. If Flutter is already installed on your machine, run the following commands to validate the versions: -```console +```bash flutter --version dart --version ``` @@ -70,7 +70,7 @@ Run these commands on your local machine: 2. Clone your fork of freeCodeCamp, replacing `YOUR_USER_NAME` with your GitHub Username - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/mobile.git ``` @@ -88,25 +88,25 @@ You need a reference from your local clone to the `upstream` repository in addit 1. Change directory to the new `mobile` directory: - ```console + ```bash cd mobile ``` 2. Add a remote reference to the main freeCodeCamp mobile repository: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/mobile.git ``` 3. Ensure the configuration looks correct: - ```console + ```bash git remote -v ``` The output should look something like below (replacing `YOUR_USER_NAME` with your GitHub username): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/mobile.git (fetch) origin https://github.com/YOUR_USER_NAME/mobile.git (push) upstream https://github.com/freeCodeCamp/mobile.git (fetch) @@ -129,20 +129,20 @@ And as always, feel free to ask questions on the ['Contributors' category on our The default API keys and environment variables are stored in the file `sample.env`. This file needs to be copied to a new file named `.env` which is accessed dynamically during the installation step. Remember to change the directory to `mobile-app` before running the following commands. -```console +```bash # Create a copy of the "sample.env" and name it ".env". # Populate it with the necessary API keys and secrets: ``` #### **macOS/Linux** -```console +```bash cp sample.env .env ``` #### **Windows** -```console +```bash copy sample.env .env ``` @@ -152,7 +152,7 @@ The keys in the `.env` file are _not_ required to be changed to run the app loca This step will install the dependencies required for the application to run: -```console +```bash flutter pub get ``` @@ -162,7 +162,7 @@ Start the emulator of your choice(Android or iOS) and wait for the bootup proces You can now start the app by running the following command: -```console +```bash flutter run ``` @@ -176,13 +176,13 @@ Follow these steps: 1. Validate that you are on the `main` branch: - ```console + ```bash git status ``` You should get an output like this: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -191,7 +191,7 @@ Follow these steps: If you are not on main or your working directory is not clean, resolve any outstanding files/commits and checkout `main`: - ```console + ```bash git checkout main ``` @@ -205,25 +205,25 @@ Follow these steps: Update your local copy of the freeCodeCamp mobile upstream repository: - ```console + ```bash git fetch upstream ``` Hard reset your main branch with the freeCodeCamp mobile main: - ```console + ```bash git reset --hard upstream/main ``` Push your main branch to your origin to have a clean history on your fork on GitHub: - ```console + ```bash git push origin main --force ``` You can validate that your current main matches the upstream/main by performing a diff: - ```console + ```bash git diff upstream/main ``` @@ -235,7 +235,7 @@ Follow these steps: Check that you are on `main` as explained previously, and branch off from there: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -259,13 +259,13 @@ Follow these steps: 7. Check and confirm the files you are updating: - ```console + ```bash git status ``` This should show a list of `unstaged` files that you have edited. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -282,25 +282,25 @@ Follow these steps: In this step, you should only mark files that you have edited or added yourself. You can perform a reset and resolve files that you did not intend to change if needed. - ```console + ```bash git add path/to/my/changed/file.ext ``` Or you can add all the `unstaged` files to the staging area: - ```console + ```bash git add . ``` Only the files that were moved to the staging area will be added when you make a commit. - ```console + ```bash git status ``` Output: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -313,7 +313,7 @@ Follow these steps: Now, you can commit your changes with a short message like so: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -345,7 +345,7 @@ Follow these steps: 9. If you realize that you need to edit a file or update the commit message after making a commit you can do so after editing the files with: - ```console + ```bash git commit --amend ``` @@ -353,7 +353,7 @@ Follow these steps: 10. Next, you can push your changes to your fork: - ```console + ```bash git push origin branch/name-here ``` @@ -363,14 +363,14 @@ Follow these steps: 1. Clone a copy of the [freeCodeCamp repo](https://github.com/freeCodeCamp/freeCodeCamp) locally outside of your local copy of the freeCodeCamp mobile repo. Your folder structure should look like this: - ```console + ```bash ├── freeCodeCamp ├── mobile ``` 2. Change the directory to the freeCodeCamp repo: - ```console + ```bash cd freeCodeCamp ``` @@ -378,25 +378,25 @@ Follow these steps: #### **macOS/Linux** - ```console + ```bash cp sample.env .env ``` #### **Windows** - ```console + ```bash copy sample.env .env ``` 4. Install the dependencies for the freeCodeCamp repo: - ```console + ```bash pnpm install && pnpm run create:shared ``` 5. Generate the challenge data JSON file: - ```console + ```bash pnpm run build:curriculum ``` @@ -404,54 +404,54 @@ Follow these steps: #### **macOS/Linux** - ```console + ```bash cp ./shared/config/curriculum.json ../mobile/mobile-app/curriculum.json ``` #### **Windows** - ```console + ```bash copy .\shared\config\curriculum.json ..\mobile\mobile-app\curriculum.json ``` 7. Change directory to the mobile app: - ```console + ```bash cd ../mobile/mobile-app ``` 8. Install the dependencies for the mobile app: - ```console + ```bash flutter pub get ``` 9. Update the test file to use the challenge data JSON file: - ```console + ```bash sed -i '' 's/..\/..\/shared\/config\/curriculum.json/.\/curriculum.json/g' test/widget_test.dart ``` 10. Generate the challenge files: - ```console + ```bash flutter test test/widget_test.dart ``` 11. Start a local server to serve the challenge files with the help of `serve` package: - ```console + ```bash npx serve ``` 12. In a different terminal go back to the freeCodeCamp repo: - ```console + ```bash cd ../../freeCodeCamp ``` 13. Run the cypress tests: - ```console + ```bash pnpm cypress run --config retries=1,screenshotOnRunFailure=false,video=false,baseUrl=http://localhost:3000/generated-tests/,specPattern=cypress/e2e/mobile-learn/test-challenges.js -s cypress/e2e/mobile-learn/test-challenges.js -b chrome ``` @@ -482,7 +482,7 @@ If you are on a different OS and/or are still running into issues, see [getting If you face issues with the UI, or build errors a cleanup can be useful: -```console +```bash flutter clean ``` diff --git a/docs/i18n/chinese-traditional/how-to-setup-wsl.md b/docs/i18n/chinese-traditional/how-to-setup-wsl.md index 97910f5ab77..19d9677a525 100644 --- a/docs/i18n/chinese-traditional/how-to-setup-wsl.md +++ b/docs/i18n/chinese-traditional/how-to-setup-wsl.md @@ -10,7 +10,7 @@ This guide covers some common steps with the setup of WSL2. Once some of the com ## Enable WSL -Follow the instructions on the [official documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL1 and followed by upgrading to WSL2. +Follow the instructions on the [official documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL2. ## Install Ubuntu @@ -20,9 +20,11 @@ Follow the instructions on the [official documentation](https://docs.microsoft.c > > While you may use other non-Debian-based distributions, they all come with their own 'gotchas' that are beyond the scope of this guide. + As of November 2023, Ubuntu and Debian are the only Linux distributions [officially supported by Playwright](https://playwright.dev/docs/intro#system-requirements), the end-to-end testing library used by freeCodeCamp. + 2. Update the dependencies for the OS - ```console + ```bash sudo apt update sudo apt upgrade -y @@ -70,23 +72,23 @@ This makes it so that the containers run on the WSL side instead of running on W Once you have configured Docker Desktop to work with WSL2, follow these steps to start a MongoDB service: -1. Launch a new Ubuntu-18.04 terminal +1. Launch a new Ubuntu terminal -2. Pull `MongoDB 4.0.x` from Docker Hub +2. Pull MongoDB from Docker Hub. Please refer to the [Prerequisites](how-to-setup-freecodecamp-locally.md#Prerequisites) table for the current version of MongoDB used by freeCodeCamp. For example, if the version number is `5.0.x`, replace `<x.y>` with `5.0` in the following two code snippets. - ```console - docker pull mongo:4.0 + ```bash + docker pull mongo:<x.y> ``` 3. Start the MongoDB service at port `27017`, and configure it to run automatically on system restarts - ```console + ```bash docker run -it \ -v mongodata:/data/db \ -p 27017:27017 \ --name mongodb \ --restart unless-stopped \ - -d mongo:4.0 + -d mongo:<x.y> ``` 4. You can now access the service from both Windows or Ubuntu at `mongodb://localhost:27017`. @@ -95,25 +97,17 @@ Once you have configured Docker Desktop to work with WSL2, follow these steps to We recommend you install the LTS release for Node.js with a node version manager - [nvm](https://github.com/nvm-sh/nvm#installing-and-updating). -Once installed use these commands to install and use the Node.js version as needed +Once installed use this command to install and use the latest Node.js LTS version: -```console +```bash nvm install --lts - -# OR -# nvm install <version> - -nvm install 14 - -# Usage -# nvm use <version> - -nvm use 12 ``` +For instructions on installing and using a different version of Node.js, please refer to the [nvm docs](https://github.com/nvm-sh/nvm#usage). + Node.js comes bundled with `npm`, which you can use to install `pnpm`: -```console +```bash npm install -g pnpm ``` @@ -125,6 +119,103 @@ Now that you have installed the pre-requisites, follow [our local setup guide](h > > Please note, at this time the setup for Cypress tests (and related GUI needs) is a work in progress. You should still be able to work on most of the codebase. +## Optimize Windows and WSL + + > [!NOTE] + > + > The following tips were collected from across the web and have not gone through vigorous testing. Your mileage may vary. + +### Adjust processer scheduling for background services + +This may reduce incidents of Docker containers crashing due to lack of resources. + +Open the System Properties control panel by pressing <kbd>Win + R</kbd> and entering `sysdm.cpl` + +<details> + <summary> + Enter <code>sysdm.cpl</code> in the Run dialog (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/run-sysdm.png" alt="Enter `sysdm.cpl` in the Run dialog" /> +</details> +<br> + +Go to Advanced -> Performance -> Settings… + +<details> + <summary> + Performance Settings button under Advanced tab in System Properties (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-performance-settings.png" alt="Performance Settings button under Advanced tab in System Properties" /> +</details> +<br> + +Under Advanced -> Processor scheduling, choose "Background services". Do not close the window. Continue to the next tip. + +<details> + <summary> + Background services radio button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/background-services.png" alt="Background services radio button under Advanced tab in Performance Options" /> +</details> + +### Increase the size of Windows paging file for the system drive + +Under Advanced -> Virtual memory, click "Change…" + +<details> + <summary> + Change virtual memory button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-virtual-memory.png" alt="Change virtual memory button under Advanced tab in Performance Options" /> +</details> +<br> + +Choose "Custom size". Set the initial size to 1.5x and the maximum size to 3x of your physical memory. Then click "Set". + +<details> + <summary> + Set custom size button in Virtual Memory window (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/set-custom-size.png" alt="Set custom size button in Virtual Memory window" /> +</details> + +### Increase the size of memory allocated to WSL + +Create a [`.wslconfig` file](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) in your [`%UserProfile%` directory](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#wslconfig) (typically `C:\Users\<UserName>\.wslconfig`). Please read the [WSL documentation](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) carefully and replace `x` with values that suit your own needs: + +```ini +# Settings apply across all Linux distros running on WSL 2 +[wsl2] + +# How much memory to assign to the WSL 2 VM. The default value might not be enough +memory=xGB + +# How much swap space to add to the WSL 2 VM, default is 25% of available RAM +swap=xGB +``` + +### Increase Node.js max old space size + +This fixes the ["JavaScript heap out of memory" error](https://stackoverflow.com/a/54456814) with ESLint. Add the following to your `~/.bashrc` or `~/.zshrc`: + +```sh +export NODE_OPTIONS="--max-old-space-size=4096" +``` + +### Avoid `pnpm run test` + +Instead, use the script [appropriate to your PR](https://forum.freecodecamp.org/t/wsl-performance-issues-while-working-on-the-codebase/644215/2#:~:text=usually%2C%20you%20just%20want%20to%20test%20something%20specific%20to%20either%20the%20curriculum%20or%20the%20client%20or%20the%20api%20-%20almost%20never%20all%203.); either `pnpm run test:api`, `pnpm run test:curriculum`, or `pnpm run test-client`. + ## Useful Links - [A WSL2 Dev Setup with Ubuntu 20.04, Node.js, MongoDB, VS Code, and Docker](https://hn.mrugesh.dev/wsl2-dev-setup-with-ubuntu-nodejs-mongodb-and-docker) - an article by Mrugesh Mohapatra (Staff Developer at freeCodeCamp.org) diff --git a/docs/i18n/chinese-traditional/how-to-work-on-coding-challenges.md b/docs/i18n/chinese-traditional/how-to-work-on-coding-challenges.md index 63ab8fbd989..2d34bbba0c6 100644 --- a/docs/i18n/chinese-traditional/how-to-work-on-coding-challenges.md +++ b/docs/i18n/chinese-traditional/how-to-work-on-coding-challenges.md @@ -232,6 +232,8 @@ Sentences should be clear and concise with minimal jargon. If used, jargon shoul Keep paragraphs short (around 1-4 sentences). People are more likely to read several short paragraphs than a wall of text. +Use american english, e.g., use `labeled` instead of `labelled`. + Challenge text should use the second person ("you") to help to give it a conversational tone. This way the text and instructions seem to speak directly to the camper working through the challenge. Try to avoid using the first person ("I", "we", "let's", and "us"). Don't use outbound links. These interrupt the flow. Campers should never have to google anything during these challenges. If there are resources you think campers would benefit from, add them to the challenge's Guide-related article. @@ -306,7 +308,7 @@ Challenges should have the minimum number of tests necessary to verify that a ca Our goal is to communicate the single point that the challenge is trying to teach, and test that they have understood that point. -Challenge tests can make use of the Node.js and Chai.js assertion libraries. Also, if needed, user-generated code can be accessed in the `code` variable. In addition, the `__helpers` object exposes several functions that simplify the process of writing tests. The available functions are defined in _client/src/utils/curriculum-helpers.ts_. +Challenge tests can make use of the Node.js and Chai.js assertion libraries. Also, if needed, user-generated code can be accessed in the `code` variable. In addition, the `__helpers` object exposes several functions that simplify the process of writing tests. The available functions are defined in the [curriculum-helpers](https://github.com/freeCodeCamp/curriculum-helpers/blob/main/lib/index.ts) repo. ## Formatting Seed Code diff --git a/docs/i18n/chinese-traditional/how-to-work-on-localized-client-webapp.md b/docs/i18n/chinese-traditional/how-to-work-on-localized-client-webapp.md index b1f4834855a..627ec531936 100644 --- a/docs/i18n/chinese-traditional/how-to-work-on-localized-client-webapp.md +++ b/docs/i18n/chinese-traditional/how-to-work-on-localized-client-webapp.md @@ -16,7 +16,7 @@ Let's understand how the i18n frameworks and tooling work. Most of the files for translating the platform are located in the [`client/i18n`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n) folder. Each language has a directory that contains JSON files with the translations. -```console +```bash config └── i18n.ts ... diff --git a/docs/i18n/chinese-traditional/how-to-work-on-the-docs-theme.md b/docs/i18n/chinese-traditional/how-to-work-on-the-docs-theme.md index 8a543eb6a69..a2a883c9ad9 100644 --- a/docs/i18n/chinese-traditional/how-to-work-on-the-docs-theme.md +++ b/docs/i18n/chinese-traditional/how-to-work-on-the-docs-theme.md @@ -47,7 +47,7 @@ Typically you would not need to change any configuration or build the site local Install freeCodeCamp locally ([see the local setup guide](how-to-setup-freecodecamp-locally)), we bundled the CLI with the development tools so you can run the command below as needed from the root of the repo: -```console +```bash pnpm run docs:serve ``` diff --git a/docs/i18n/chinese-traditional/troubleshooting-development-issues.md b/docs/i18n/chinese-traditional/troubleshooting-development-issues.md index 962fd04362c..e368b7c331e 100644 --- a/docs/i18n/chinese-traditional/troubleshooting-development-issues.md +++ b/docs/i18n/chinese-traditional/troubleshooting-development-issues.md @@ -16,7 +16,7 @@ If you are on a different OS or are still facing issues, see [getting help](#get When you build the client, Gatsby will cache the Fonts, language strings, and UI. If one of them isn't cached, run the following: -```console +```bash pnpm run clean pnpm install pnpm run seed @@ -53,7 +53,7 @@ git clean -ifdX If you can't sign in, and instead you see a banner with an error message saying that the error will be reported to freeCodeCamp, please double-check that your local port `3000` is not in use by a different program. #### **From Terminal:** -```console +```bash netstat -a | grep "3000" tcp4 0 0 0.0.0.0:3000 DESKTOP LISTEN diff --git a/docs/i18n/chinese/devops.md b/docs/i18n/chinese/devops.md index 75c5847ef83..25b168c9c31 100644 --- a/docs/i18n/chinese/devops.md +++ b/docs/i18n/chinese/devops.md @@ -303,19 +303,19 @@ You should keep the VMs up to date by performing updates and upgrades. This will Update package information -```console +```bash sudo apt update ``` Upgrade installed packages -```console +```bash sudo apt upgrade -y ``` Cleanup unused packages -```console +```bash sudo apt autoremove -y ``` @@ -331,7 +331,7 @@ Provisioning VMs with the Code 1. Install NGINX and configure from repository. - ```console + ```bash sudo su cd /var/www/html @@ -352,7 +352,7 @@ Provisioning VMs with the Code Move over existing certificates: - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -364,7 +364,7 @@ Provisioning VMs with the Code Update Upstream Configurations: - ```console + ```bash vi configs/upstreams.conf ``` @@ -382,7 +382,7 @@ Provisioning VMs with the Code 1. Check status for NGINX service using the below command: - ```console + ```bash sudo systemctl status nginx ``` @@ -396,13 +396,13 @@ Config changes to our NGINX instances are maintained on GitHub, these should be 1. SSH into the instance and enter sudo -```console +```bash sudo su ``` 2. Get the latest config code. -```console +```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -410,7 +410,7 @@ git reset --hard origin/main 3. Test and reload the config [with Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). -```console +```bash nginx -t nginx -s reload ``` @@ -419,7 +419,7 @@ nginx -s reload 1. Install build tools for node binaries (`node-gyp`) etc. -```console +```bash sudo apt install build-essential ``` @@ -431,19 +431,19 @@ Provisioning VMs with the Code 2. Install pnpm globally. -```console +```bash npm install -g pnpm ``` 3. Install pm2 globally. -```console +```bash npm install -g pm2 ``` 4. Clone freeCodeCamp, set up env, and keys. -```console +```bash git clone https://github.com/freeCodeCamp/freeCodeCamp.git cd freeCodeCamp git checkout prod-current # or any other branch to be deployed @@ -453,36 +453,36 @@ git checkout prod-current # or any other branch to be deployed 6. Install dependencies -```console +```bash pnpm install ``` 7. Setup pm2 `logrotate` and startup on boot -```console +```bash pm2 install pm2-logrotate pm2 startup ``` 8. Build the server -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 9. Start Instances -```console +```bash pnpm start:server ``` ### Logging and Monitoring -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -496,31 +496,31 @@ Code changes need to be deployed to the API instances from time to time. It can 1. Stop all instances -```console +```bash pm2 stop all ``` 2. Install dependencies -```console +```bash pnpm install ``` 3. Build the server -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 4. Start Instances -```console +```bash pnpm start:server && pm2 logs ``` #### 2. Rolling updates - Used for logical changes to code. -```console +```bash pnpm reload:server && pm2 logs ``` @@ -532,7 +532,7 @@ pnpm reload:server && pm2 logs 2. Update pm2 to use the new version -```console +```bash pm2 update ``` @@ -540,7 +540,7 @@ pm2 update 1. Install build tools for node binaries (`node-gyp`) etc. -```console +```bash sudo apt install build-essential ``` @@ -552,7 +552,7 @@ Provisioning VMs with the Code 2. Update `npm` and install PM2 and setup `logrotate` and startup on boot - ```console + ```bash npm i -g npm@8 npm i -g pm2@4 npm install -g serve@13 @@ -562,7 +562,7 @@ Provisioning VMs with the Code 3. Clone client config, setup env and keys. - ```console + ```bash git clone https://github.com/freeCodeCamp/client-config.git client cd client ``` @@ -571,7 +571,7 @@ Provisioning VMs with the Code > Todo: This setup needs to move to S3 or Azure Blob storage > - > ```console + > ```bash > echo "serve -c ../serve.json -p 50505 www" > client-start-primary.sh > chmod +x client-start-primary.sh > pm2 delete client-primary @@ -584,11 +584,11 @@ Provisioning VMs with the Code ### Logging and Monitoring -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -602,7 +602,7 @@ Code changes need to be deployed to the API instances from time to time. It can 1. Stop all instances - ```console + ```bash pm2 stop all ``` @@ -610,13 +610,13 @@ Code changes need to be deployed to the API instances from time to time. It can 3. Start Instances - ```console + ```bash pm2 start all --update-env && pm2 logs ``` #### 2. Rolling updates - Used for logical changes to code. -```console +```bash pm2 reload all --update-env && pm2 logs ``` @@ -636,7 +636,7 @@ Provisioning VMs with the Code 1. Install NGINX and configure from repository. - ```console + ```bash sudo su cd /var/www/html @@ -657,7 +657,7 @@ Provisioning VMs with the Code Move over existing certificates: - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -669,7 +669,7 @@ Provisioning VMs with the Code Update Upstream Configurations: - ```console + ```bash vi configs/upstreams.conf ``` @@ -687,7 +687,7 @@ Provisioning VMs with the Code 1. Install Docker and configure from the repository - ```console + ```bash git clone https://github.com/freeCodeCamp/chat-config.git chat cd chat ``` @@ -696,7 +696,7 @@ Provisioning VMs with the Code 3. Run rocket-chat server - ```console + ```bash docker-compose config docker-compose up -d ``` @@ -705,13 +705,13 @@ Provisioning VMs with the Code 1. Check status for NGINX service using the below command: - ```console + ```bash sudo systemctl status nginx ``` 2. Check status for running docker instances with: - ```console + ```bash docker ps ``` @@ -723,13 +723,13 @@ Config changes to our NGINX instances are maintained on GitHub, these should be 1. SSH into the instance and enter sudo - ```console + ```bash sudo su ``` 2. Get the latest config code. - ```console + ```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -737,7 +737,7 @@ Config changes to our NGINX instances are maintained on GitHub, these should be 3. Test and reload the config [with Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). - ```console + ```bash nginx -t nginx -s reload ``` @@ -746,44 +746,44 @@ Config changes to our NGINX instances are maintained on GitHub, these should be 1. SSH into the instance and navigate to the chat config path - ```console + ```bash cd ~/chat ``` 2. Get the latest config code. - ```console + ```bash git fetch --all --prune git reset --hard origin/main ``` 3. Pull down the latest docker image for Rocket.Chat - ```console + ```bash docker-compose pull ``` 4. Update the running instances - ```console + ```bash docker-compose up -d ``` 5. Validate the instances are up - ```console + ```bash docker ps ``` 6. Cleanup extraneous resources - ```console + ```bash docker system prune --volumes ``` Output: - ```console + ```bash WARNING! This will remove: - all stopped containers - all networks not used by at least one container @@ -802,7 +802,7 @@ Config changes to our NGINX instances are maintained on GitHub, these should be ssh into the VM (hosted on Digital Ocean). -```console +```bash cd tools git pull origin master pnpm install @@ -814,7 +814,7 @@ pm2 restart contribute-app List currently installed node & npm versions -```console +```bash nvm -v node -v npm -v @@ -824,25 +824,25 @@ nvm ls Install the latest Node.js LTS, and reinstall any global packages -```console +```bash nvm install --lts --reinstall-packages-from=default ``` Verify installed packages -```console +```bash npm ls -g --depth=0 ``` Alias the `default` Node.js version to the current LTS (pinned to the latest major version) -```console +```bash nvm alias default 16 ``` (Optional) Uninstall old versions -```console +```bash nvm uninstall <version> ``` @@ -852,31 +852,31 @@ nvm uninstall <version> Get the uninstall instructions/commands with the `unstartup` command and use the output to remove the systemctl services -```console +```bash pm2 unstartup ``` Get the install instructions/commands with the `startup` command and use the output to add the systemctl services -```console +```bash pm2 startup ``` Quick commands for PM2 to list, resurrect saved processes, etc. -```console +```bash pm2 ls ``` -```console +```bash pm2 resurrect ``` -```console +```bash pm2 save ``` -```console +```bash pm2 logs ``` @@ -898,32 +898,32 @@ Currently updating agents requires them to be removed and reconfigured. This is 1. Navigate and check status of the service - ```console + ```bash cd ~/azagent sudo ./svc.sh status ``` 2. Stop the service - ```console + ```bash sudo ./svc.sh stop ``` 3. Uninstall the service - ```console + ```bash sudo ./svc.sh uninstall ``` 4. Remove the agent from the pipeline pool - ```console + ```bash ./config.sh remove ``` 5. Remove the config files - ```console + ```bash cd ~ rm -rf ~/azagent ``` @@ -938,7 +938,7 @@ We use [a CLI tool](https://github.com/freecodecamp/sendgrid-email-blast) to sen 2. Set up the script to fetch the email list. - ```console + ```bash cd /home/freecodecamp/scripts/emails cp sample.env .env ``` @@ -947,7 +947,7 @@ We use [a CLI tool](https://github.com/freecodecamp/sendgrid-email-blast) to sen 3. Run the script. - ```console + ```bash node get-emails.js emails.csv ``` diff --git a/docs/i18n/chinese/how-to-add-cypress-tests.md b/docs/i18n/chinese/how-to-add-cypress-tests.md index 86cc7abe184..cb8c1f051e9 100644 --- a/docs/i18n/chinese/how-to-add-cypress-tests.md +++ b/docs/i18n/chinese/how-to-add-cypress-tests.md @@ -26,25 +26,25 @@ To run tests against production builds, replace `dev` with `prd` below. - To run all tests in the `./cypress` directory: - ```console + ```bash pnpm run cypress:dev:run ``` - To run a single test: - ```console + ```bash pnpm run cypress run --spec=cypress/<path_to_test_file> ``` For example: - ```console + ```bash pnpm run cypress run --spec=cypress/e2e/default/landing.ts ``` - To create a development build, start the development server, and run all existing cypress end-to-end tests: - ```console + ```bash pnpm run e2e:dev:run ``` @@ -57,25 +57,25 @@ If starting the Gitpod environment did not automatically develop the environment - Follow the [MongoDB installation guide](https://www.mongodb.com/basics/get-started). - Create a config file. -```console +```bash pnpm run create:shared ``` - Seed the database -```console +```bash pnpm run seed ``` - Develop the server and client -```console +```bash pnpm run develop ``` ### 2. Install Cypress Build Tools -```console +```bash pnpm run cypress:install-build-tools ``` diff --git a/docs/i18n/chinese/how-to-add-playwright-tests.md b/docs/i18n/chinese/how-to-add-playwright-tests.md index 7ff58224ee4..0f450480fea 100644 --- a/docs/i18n/chinese/how-to-add-playwright-tests.md +++ b/docs/i18n/chinese/how-to-add-playwright-tests.md @@ -4,7 +4,7 @@ To install Playwright run: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -181,49 +181,49 @@ To run tests with Playwright check the following below - Make sure you navigate to the e2e repo first - ```console + ```bash cd e2e ``` - To run tests in UI helper mode: - ```console + ```bash npx playwright test --ui ``` - To run a single test: - ```console + ```bash npx playwright test <filename> ``` For example: - ```console + ```bash npx playwright test landing-page.spec.ts ``` - Run a set of test files in respective folders: - ```console + ```bash npx playwright test <pathToFolder1> <pathToFolder2> ``` For example: - ```console + ```bash npx playwright test tests/todo-page/ tests/landing-page/ ``` - Run the test with the title: - ```console + ```bash npx playwright test -g <title> ``` For example: - ```console + ```bash npx playwright test -g "add a todo item" ``` @@ -233,13 +233,13 @@ Since Playwright runs in Node.js, you can debug it with your debugger of choice - Debugging all tests: - ```console + ```bash npx playwright test --debug ``` - Debugging one test file: - ```console + ```bash npx playwright test example.spec.ts --debug ``` @@ -247,7 +247,7 @@ Since Playwright runs in Node.js, you can debug it with your debugger of choice The HTML Reporter shows you a full report of your tests allowing you to filter the report by browsers, passed tests, failed tests, skipped tests and flaky tests. -```console +```bash npx playwright show-report ``` @@ -257,13 +257,13 @@ Playwright is generally a solid bullet-proof tool. The contributor has already c - (MacOs and Linux) If running Playwright results in an error due to kernel dependencies, run the following command: - ```console + ```bash pnpm run playwright:install-build-tools-linux ``` - A common error seen in playwright is as follows: - ```console + ```bash Error: page.goto: Could not connect: Connection refused =========================== logs =========================== navigating to "https://127.0.0.1:8000/", waiting until "load" @@ -284,7 +284,7 @@ Playwright is generally a solid bullet-proof tool. The contributor has already c - Another common error seen in playwright is as follows: - ```console + ```bash Protocol error (Network.getResponseBody): Request content was evicted from inspector cache ``` @@ -305,25 +305,25 @@ If starting the Gitpod environment did not automatically develop the environment - Create the .env - ```console + ```bash cp sample.env .env ``` - Create a config file. - ```console + ```bash pnpm run create:shared ``` - Seed the database - ```console + ```bash pnpm run seed ``` - Develop the server and client - ```console + ```bash pnpm run develop ``` @@ -331,7 +331,7 @@ If starting the Gitpod environment did not automatically develop the environment To install necessary dependencies for running Playwright run the following command: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -339,6 +339,6 @@ pnpm run playwright:install-build-tools To run all Playwright tests, run the following command: -```console +```bash npx playwright test ``` diff --git a/docs/i18n/chinese/how-to-contribute-to-the-codebase.md b/docs/i18n/chinese/how-to-contribute-to-the-codebase.md index 50284e3c089..781427597f1 100644 --- a/docs/i18n/chinese/how-to-contribute-to-the-codebase.md +++ b/docs/i18n/chinese/how-to-contribute-to-the-codebase.md @@ -10,13 +10,13 @@ Follow these steps: 1. Validate that you are on the `main` branch: - ```console + ```bash git status ``` You should get an output like this: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -25,7 +25,7 @@ Follow these steps: If you got a different message, then you aren't on main or your working directory isn't clean, resolve any outstanding files/commits and checkout `main`: - ```console + ```bash git checkout main ``` @@ -39,25 +39,25 @@ Follow these steps: Update your copy of the freeCodeCamp upstream repository: - ```console + ```bash git fetch upstream ``` Hard reset your main branch with the freeCodeCamp main: - ```console + ```bash git reset --hard upstream/main ``` Push your main branch to your origin to have a clean history on your fork on GitHub: - ```console + ```bash git push origin main --force ``` You can validate that your current main matches the upstream/main by performing a diff: - ```console + ```bash git diff upstream/main ``` @@ -69,7 +69,7 @@ Follow these steps: Check that you are on `main` as explained previously, and branch off from there: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -93,13 +93,13 @@ Follow these steps: 7. Check and confirm the files you are updating: - ```console + ```bash git status ``` This should show a list of `unstaged` files that you have edited. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -118,25 +118,25 @@ Follow these steps: In this step, you should only mark files that you have edited or added yourself. You can perform a reset and resolve files that you did not intend to change if needed. - ```console + ```bash git add path/to/my/changed/file.ext ``` Or you can add all the `unstaged` files to the staging area: - ```console + ```bash git add . ``` Only the files that were moved to the staging area will be added when you make a commit. - ```console + ```bash git status ``` Output: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -151,7 +151,7 @@ Follow these steps: Now, you can commit your changes with a short message like so: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -181,7 +181,7 @@ Follow these steps: 9. If you realize that you need to edit a file or update the commit message after making a commit you can do so after editing the files with: - ```console + ```bash git commit --amend ``` @@ -189,7 +189,7 @@ Follow these steps: 10. Next, you can push your changes to your fork: - ```console + ```bash git push origin branch/name-here ``` diff --git a/docs/i18n/chinese/how-to-open-a-pull-request.md b/docs/i18n/chinese/how-to-open-a-pull-request.md index 1157e7439c2..4cd62933460 100644 --- a/docs/i18n/chinese/how-to-open-a-pull-request.md +++ b/docs/i18n/chinese/how-to-open-a-pull-request.md @@ -115,14 +115,14 @@ When you are working on regular bugs and features on our development branch `mai 1. Rebase your local copy: - ```console + ```bash git checkout <pr-branch> git pull --rebase upstream main ``` 2. Resolve any conflicts and add / edit commits - ```console + ```bash # Either git add . git commit -m "chore: resolve conflicts" @@ -134,7 +134,7 @@ When you are working on regular bugs and features on our development branch `mai 3. Push back your changes to the PR - ```console + ```bash git push --force origin <pr-branch> ``` @@ -144,7 +144,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, 1. Make sure your upstream comes in sync with your local: - ```console + ```bash git checkout main git fetch --all --prune git checkout next-python-projects @@ -155,7 +155,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, a. Either delete your local branch after taking a backup (if you still have it locally): - ```console + ```bash git checkout <pr-branch-name> # example: @@ -171,7 +171,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, b. Or just a backup of your PR branch (if you do not have it locally): - ```console + ```bash git checkout -b <backup-branch-name> origin/<pr-branch-name> # example: @@ -180,14 +180,14 @@ When you are working on features for our upcoming curriculum `next-*` branches, 3. Start off with a clean slate: - ```console + ```bash git checkout -b <pr-branch-name> next-python-projects git cherry-pick <commit-hash> ``` 4. Resolve any conflicts, cleanup, and install dependencies and run tests - ```console + ```bash pnpm run clean pnpm install @@ -201,6 +201,6 @@ When you are working on features for our upcoming curriculum `next-*` branches, 5. If everything looks good, push back to the PR - ```console + ```bash git push --force origin <pr-branch-name> ``` diff --git a/docs/i18n/chinese/how-to-setup-freecodecamp-locally.md b/docs/i18n/chinese/how-to-setup-freecodecamp-locally.md index 9d3dea27093..c93351f700f 100644 --- a/docs/i18n/chinese/how-to-setup-freecodecamp-locally.md +++ b/docs/i18n/chinese/how-to-setup-freecodecamp-locally.md @@ -75,7 +75,7 @@ We primarily support development on Linux and Unix-based systems like Ubuntu and If Node.js is already installed on your machine, run the following commands to validate the versions: -```console +```bash node -v pnpm -v ``` @@ -142,7 +142,7 @@ Run these commands on your local machine: 2. Clone your fork of freeCodeCamp, replacing `YOUR_USER_NAME` with your GitHub Username - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git ``` @@ -160,25 +160,25 @@ You need a reference from your local clone to the `upstream` repository in addit 1. Change the directory to the new freeCodeCamp directory: - ```console + ```bash cd freeCodeCamp ``` 2. Add a remote reference to the main freeCodeCamp repository: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git ``` 3. Ensure the configuration looks correct: - ```console + ```bash git remote -v ``` The output should look something like below (replacing `YOUR_USER_NAME` with your GitHub username): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch) origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push) upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch) @@ -203,12 +203,12 @@ And as always, feel free to ask questions on the ['Contributors' category on our The default API keys and environment variables are stored in the file `sample.env`. This file needs to be copied to a new file named `.env` that is accessed dynamically during the installation step. -```console +```bash # Create a copy of the "sample.env" and name it ".env". # Populate it with the necessary API keys and secrets ``` -```console +```bash cp sample.env .env ``` @@ -220,7 +220,7 @@ The keys in the `.env` file are _not_ required to be changed to run the app loca This step will install the dependencies required for the application to run: -```console +```bash pnpm install && pnpm run create:shared ``` @@ -234,7 +234,7 @@ Before you can run the application locally, you will need to start the MongoDB s Start the MongoDB server in a separate terminal: -```console +```bash mongod ``` @@ -242,15 +242,14 @@ mongod Next, let's seed the database. In this step, we run the below command that fills the MongoDB server with some initial data sets that are required by services. These include a few schemas, among other things. -```console +```bash pnpm run seed ``` By default, you will be signed in as a new user without any completed certifications. Run the following commands if you need to develop with completed certifications: -```console +```bash pnpm run seed:certified-user -pnpm run seed:exams ``` > [!WARNING] Running `pnpm run seed:certified-user` will log you out. You will have to clear your browser cookies and sign in again. @@ -259,7 +258,7 @@ pnpm run seed:exams You can now start up the API server and the client applications. -```console +```bash pnpm run develop ``` @@ -279,11 +278,12 @@ If you have issues while installing it, check out the [troubleshooting section]( A quick reference to the commands that you will need when working locally. -| command | description | -| ------------------------------ | ------------------------------------------------------------------------------------------------- | -| `pnpm install` | Installs / re-installs all dependencies and bootstraps the different services. | -| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. | -| `pnpm run seed:certified-user` | Creates authorized test users with certifications fully completed, and inserts them into MongoDB. | -| `pnpm run seed:exams` | Creates exams and inserts them into MongoDB. | -| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | -| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | +| command | description | +| ------------------------------ | ------------------------------------------------------------------------------------------------------------- | +| `pnpm install` | Installs / re-installs all dependencies and bootstraps the different services. | +| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. Also runs `seed:exams` and `seed:surveys` below. | +| `pnpm run seed:certified-user` | Creates authorized test users with certifications fully completed, and inserts them into MongoDB. | +| `pnpm run seed:exams` | Creates exams and inserts them into MongoDB. | +| `pnpm run seed:surveys` | Creates surveys for defaults users and inserts them into MongoDB. | +| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | +| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | diff --git a/docs/i18n/chinese/how-to-setup-freecodecamp-mobile-app-locally.md b/docs/i18n/chinese/how-to-setup-freecodecamp-mobile-app-locally.md index dcdd049e659..fa616db84dc 100644 --- a/docs/i18n/chinese/how-to-setup-freecodecamp-mobile-app-locally.md +++ b/docs/i18n/chinese/how-to-setup-freecodecamp-mobile-app-locally.md @@ -17,7 +17,7 @@ Start by installing the prerequisite software for your operating system. If Flutter is already installed on your machine, run the following commands to validate the versions: -```console +```bash flutter --version dart --version ``` @@ -70,7 +70,7 @@ Run these commands on your local machine: 2. Clone your fork of freeCodeCamp, replacing `YOUR_USER_NAME` with your GitHub Username - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/mobile.git ``` @@ -88,25 +88,25 @@ You need a reference from your local clone to the `upstream` repository in addit 1. Change directory to the new `mobile` directory: - ```console + ```bash cd mobile ``` 2. Add a remote reference to the main freeCodeCamp mobile repository: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/mobile.git ``` 3. Ensure the configuration looks correct: - ```console + ```bash git remote -v ``` The output should look something like below (replacing `YOUR_USER_NAME` with your GitHub username): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/mobile.git (fetch) origin https://github.com/YOUR_USER_NAME/mobile.git (push) upstream https://github.com/freeCodeCamp/mobile.git (fetch) @@ -129,20 +129,20 @@ And as always, feel free to ask questions on the ['Contributors' category on our The default API keys and environment variables are stored in the file `sample.env`. This file needs to be copied to a new file named `.env` which is accessed dynamically during the installation step. Remember to change the directory to `mobile-app` before running the following commands. -```console +```bash # Create a copy of the "sample.env" and name it ".env". # Populate it with the necessary API keys and secrets: ``` #### **macOS/Linux** -```console +```bash cp sample.env .env ``` #### **Windows** -```console +```bash copy sample.env .env ``` @@ -152,7 +152,7 @@ The keys in the `.env` file are _not_ required to be changed to run the app loca This step will install the dependencies required for the application to run: -```console +```bash flutter pub get ``` @@ -162,7 +162,7 @@ Start the emulator of your choice(Android or iOS) and wait for the bootup proces You can now start the app by running the following command: -```console +```bash flutter run ``` @@ -176,13 +176,13 @@ Follow these steps: 1. Validate that you are on the `main` branch: - ```console + ```bash git status ``` You should get an output like this: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -191,7 +191,7 @@ Follow these steps: If you are not on main or your working directory is not clean, resolve any outstanding files/commits and checkout `main`: - ```console + ```bash git checkout main ``` @@ -205,25 +205,25 @@ Follow these steps: Update your local copy of the freeCodeCamp mobile upstream repository: - ```console + ```bash git fetch upstream ``` Hard reset your main branch with the freeCodeCamp mobile main: - ```console + ```bash git reset --hard upstream/main ``` Push your main branch to your origin to have a clean history on your fork on GitHub: - ```console + ```bash git push origin main --force ``` You can validate that your current main matches the upstream/main by performing a diff: - ```console + ```bash git diff upstream/main ``` @@ -235,7 +235,7 @@ Follow these steps: Check that you are on `main` as explained previously, and branch off from there: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -259,13 +259,13 @@ Follow these steps: 7. Check and confirm the files you are updating: - ```console + ```bash git status ``` This should show a list of `unstaged` files that you have edited. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -282,25 +282,25 @@ Follow these steps: In this step, you should only mark files that you have edited or added yourself. You can perform a reset and resolve files that you did not intend to change if needed. - ```console + ```bash git add path/to/my/changed/file.ext ``` Or you can add all the `unstaged` files to the staging area: - ```console + ```bash git add . ``` Only the files that were moved to the staging area will be added when you make a commit. - ```console + ```bash git status ``` Output: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -313,7 +313,7 @@ Follow these steps: Now, you can commit your changes with a short message like so: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -345,7 +345,7 @@ Follow these steps: 9. If you realize that you need to edit a file or update the commit message after making a commit you can do so after editing the files with: - ```console + ```bash git commit --amend ``` @@ -353,7 +353,7 @@ Follow these steps: 10. Next, you can push your changes to your fork: - ```console + ```bash git push origin branch/name-here ``` @@ -363,14 +363,14 @@ Follow these steps: 1. Clone a copy of the [freeCodeCamp repo](https://github.com/freeCodeCamp/freeCodeCamp) locally outside of your local copy of the freeCodeCamp mobile repo. Your folder structure should look like this: - ```console + ```bash ├── freeCodeCamp ├── mobile ``` 2. Change the directory to the freeCodeCamp repo: - ```console + ```bash cd freeCodeCamp ``` @@ -378,25 +378,25 @@ Follow these steps: #### **macOS/Linux** - ```console + ```bash cp sample.env .env ``` #### **Windows** - ```console + ```bash copy sample.env .env ``` 4. Install the dependencies for the freeCodeCamp repo: - ```console + ```bash pnpm install && pnpm run create:shared ``` 5. Generate the challenge data JSON file: - ```console + ```bash pnpm run build:curriculum ``` @@ -404,54 +404,54 @@ Follow these steps: #### **macOS/Linux** - ```console + ```bash cp ./shared/config/curriculum.json ../mobile/mobile-app/curriculum.json ``` #### **Windows** - ```console + ```bash copy .\shared\config\curriculum.json ..\mobile\mobile-app\curriculum.json ``` 7. Change directory to the mobile app: - ```console + ```bash cd ../mobile/mobile-app ``` 8. Install the dependencies for the mobile app: - ```console + ```bash flutter pub get ``` 9. Update the test file to use the challenge data JSON file: - ```console + ```bash sed -i '' 's/..\/..\/shared\/config\/curriculum.json/.\/curriculum.json/g' test/widget_test.dart ``` 10. Generate the challenge files: - ```console + ```bash flutter test test/widget_test.dart ``` 11. Start a local server to serve the challenge files with the help of `serve` package: - ```console + ```bash npx serve ``` 12. In a different terminal go back to the freeCodeCamp repo: - ```console + ```bash cd ../../freeCodeCamp ``` 13. Run the cypress tests: - ```console + ```bash pnpm cypress run --config retries=1,screenshotOnRunFailure=false,video=false,baseUrl=http://localhost:3000/generated-tests/,specPattern=cypress/e2e/mobile-learn/test-challenges.js -s cypress/e2e/mobile-learn/test-challenges.js -b chrome ``` @@ -482,7 +482,7 @@ If you are on a different OS and/or are still running into issues, see [getting If you face issues with the UI, or build errors a cleanup can be useful: -```console +```bash flutter clean ``` diff --git a/docs/i18n/chinese/how-to-setup-wsl.md b/docs/i18n/chinese/how-to-setup-wsl.md index 97910f5ab77..19d9677a525 100644 --- a/docs/i18n/chinese/how-to-setup-wsl.md +++ b/docs/i18n/chinese/how-to-setup-wsl.md @@ -10,7 +10,7 @@ This guide covers some common steps with the setup of WSL2. Once some of the com ## Enable WSL -Follow the instructions on the [official documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL1 and followed by upgrading to WSL2. +Follow the instructions on the [official documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL2. ## Install Ubuntu @@ -20,9 +20,11 @@ Follow the instructions on the [official documentation](https://docs.microsoft.c > > While you may use other non-Debian-based distributions, they all come with their own 'gotchas' that are beyond the scope of this guide. + As of November 2023, Ubuntu and Debian are the only Linux distributions [officially supported by Playwright](https://playwright.dev/docs/intro#system-requirements), the end-to-end testing library used by freeCodeCamp. + 2. Update the dependencies for the OS - ```console + ```bash sudo apt update sudo apt upgrade -y @@ -70,23 +72,23 @@ This makes it so that the containers run on the WSL side instead of running on W Once you have configured Docker Desktop to work with WSL2, follow these steps to start a MongoDB service: -1. Launch a new Ubuntu-18.04 terminal +1. Launch a new Ubuntu terminal -2. Pull `MongoDB 4.0.x` from Docker Hub +2. Pull MongoDB from Docker Hub. Please refer to the [Prerequisites](how-to-setup-freecodecamp-locally.md#Prerequisites) table for the current version of MongoDB used by freeCodeCamp. For example, if the version number is `5.0.x`, replace `<x.y>` with `5.0` in the following two code snippets. - ```console - docker pull mongo:4.0 + ```bash + docker pull mongo:<x.y> ``` 3. Start the MongoDB service at port `27017`, and configure it to run automatically on system restarts - ```console + ```bash docker run -it \ -v mongodata:/data/db \ -p 27017:27017 \ --name mongodb \ --restart unless-stopped \ - -d mongo:4.0 + -d mongo:<x.y> ``` 4. You can now access the service from both Windows or Ubuntu at `mongodb://localhost:27017`. @@ -95,25 +97,17 @@ Once you have configured Docker Desktop to work with WSL2, follow these steps to We recommend you install the LTS release for Node.js with a node version manager - [nvm](https://github.com/nvm-sh/nvm#installing-and-updating). -Once installed use these commands to install and use the Node.js version as needed +Once installed use this command to install and use the latest Node.js LTS version: -```console +```bash nvm install --lts - -# OR -# nvm install <version> - -nvm install 14 - -# Usage -# nvm use <version> - -nvm use 12 ``` +For instructions on installing and using a different version of Node.js, please refer to the [nvm docs](https://github.com/nvm-sh/nvm#usage). + Node.js comes bundled with `npm`, which you can use to install `pnpm`: -```console +```bash npm install -g pnpm ``` @@ -125,6 +119,103 @@ Now that you have installed the pre-requisites, follow [our local setup guide](h > > Please note, at this time the setup for Cypress tests (and related GUI needs) is a work in progress. You should still be able to work on most of the codebase. +## Optimize Windows and WSL + + > [!NOTE] + > + > The following tips were collected from across the web and have not gone through vigorous testing. Your mileage may vary. + +### Adjust processer scheduling for background services + +This may reduce incidents of Docker containers crashing due to lack of resources. + +Open the System Properties control panel by pressing <kbd>Win + R</kbd> and entering `sysdm.cpl` + +<details> + <summary> + Enter <code>sysdm.cpl</code> in the Run dialog (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/run-sysdm.png" alt="Enter `sysdm.cpl` in the Run dialog" /> +</details> +<br> + +Go to Advanced -> Performance -> Settings… + +<details> + <summary> + Performance Settings button under Advanced tab in System Properties (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-performance-settings.png" alt="Performance Settings button under Advanced tab in System Properties" /> +</details> +<br> + +Under Advanced -> Processor scheduling, choose "Background services". Do not close the window. Continue to the next tip. + +<details> + <summary> + Background services radio button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/background-services.png" alt="Background services radio button under Advanced tab in Performance Options" /> +</details> + +### Increase the size of Windows paging file for the system drive + +Under Advanced -> Virtual memory, click "Change…" + +<details> + <summary> + Change virtual memory button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-virtual-memory.png" alt="Change virtual memory button under Advanced tab in Performance Options" /> +</details> +<br> + +Choose "Custom size". Set the initial size to 1.5x and the maximum size to 3x of your physical memory. Then click "Set". + +<details> + <summary> + Set custom size button in Virtual Memory window (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/set-custom-size.png" alt="Set custom size button in Virtual Memory window" /> +</details> + +### Increase the size of memory allocated to WSL + +Create a [`.wslconfig` file](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) in your [`%UserProfile%` directory](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#wslconfig) (typically `C:\Users\<UserName>\.wslconfig`). Please read the [WSL documentation](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) carefully and replace `x` with values that suit your own needs: + +```ini +# Settings apply across all Linux distros running on WSL 2 +[wsl2] + +# How much memory to assign to the WSL 2 VM. The default value might not be enough +memory=xGB + +# How much swap space to add to the WSL 2 VM, default is 25% of available RAM +swap=xGB +``` + +### Increase Node.js max old space size + +This fixes the ["JavaScript heap out of memory" error](https://stackoverflow.com/a/54456814) with ESLint. Add the following to your `~/.bashrc` or `~/.zshrc`: + +```sh +export NODE_OPTIONS="--max-old-space-size=4096" +``` + +### Avoid `pnpm run test` + +Instead, use the script [appropriate to your PR](https://forum.freecodecamp.org/t/wsl-performance-issues-while-working-on-the-codebase/644215/2#:~:text=usually%2C%20you%20just%20want%20to%20test%20something%20specific%20to%20either%20the%20curriculum%20or%20the%20client%20or%20the%20api%20-%20almost%20never%20all%203.); either `pnpm run test:api`, `pnpm run test:curriculum`, or `pnpm run test-client`. + ## Useful Links - [A WSL2 Dev Setup with Ubuntu 20.04, Node.js, MongoDB, VS Code, and Docker](https://hn.mrugesh.dev/wsl2-dev-setup-with-ubuntu-nodejs-mongodb-and-docker) - an article by Mrugesh Mohapatra (Staff Developer at freeCodeCamp.org) diff --git a/docs/i18n/chinese/how-to-work-on-coding-challenges.md b/docs/i18n/chinese/how-to-work-on-coding-challenges.md index 63ab8fbd989..2d34bbba0c6 100644 --- a/docs/i18n/chinese/how-to-work-on-coding-challenges.md +++ b/docs/i18n/chinese/how-to-work-on-coding-challenges.md @@ -232,6 +232,8 @@ Sentences should be clear and concise with minimal jargon. If used, jargon shoul Keep paragraphs short (around 1-4 sentences). People are more likely to read several short paragraphs than a wall of text. +Use american english, e.g., use `labeled` instead of `labelled`. + Challenge text should use the second person ("you") to help to give it a conversational tone. This way the text and instructions seem to speak directly to the camper working through the challenge. Try to avoid using the first person ("I", "we", "let's", and "us"). Don't use outbound links. These interrupt the flow. Campers should never have to google anything during these challenges. If there are resources you think campers would benefit from, add them to the challenge's Guide-related article. @@ -306,7 +308,7 @@ Challenges should have the minimum number of tests necessary to verify that a ca Our goal is to communicate the single point that the challenge is trying to teach, and test that they have understood that point. -Challenge tests can make use of the Node.js and Chai.js assertion libraries. Also, if needed, user-generated code can be accessed in the `code` variable. In addition, the `__helpers` object exposes several functions that simplify the process of writing tests. The available functions are defined in _client/src/utils/curriculum-helpers.ts_. +Challenge tests can make use of the Node.js and Chai.js assertion libraries. Also, if needed, user-generated code can be accessed in the `code` variable. In addition, the `__helpers` object exposes several functions that simplify the process of writing tests. The available functions are defined in the [curriculum-helpers](https://github.com/freeCodeCamp/curriculum-helpers/blob/main/lib/index.ts) repo. ## Formatting Seed Code diff --git a/docs/i18n/chinese/how-to-work-on-localized-client-webapp.md b/docs/i18n/chinese/how-to-work-on-localized-client-webapp.md index b1f4834855a..627ec531936 100644 --- a/docs/i18n/chinese/how-to-work-on-localized-client-webapp.md +++ b/docs/i18n/chinese/how-to-work-on-localized-client-webapp.md @@ -16,7 +16,7 @@ Let's understand how the i18n frameworks and tooling work. Most of the files for translating the platform are located in the [`client/i18n`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n) folder. Each language has a directory that contains JSON files with the translations. -```console +```bash config └── i18n.ts ... diff --git a/docs/i18n/chinese/how-to-work-on-the-docs-theme.md b/docs/i18n/chinese/how-to-work-on-the-docs-theme.md index ce4f7f00b0d..8032d99d876 100644 --- a/docs/i18n/chinese/how-to-work-on-the-docs-theme.md +++ b/docs/i18n/chinese/how-to-work-on-the-docs-theme.md @@ -47,7 +47,7 @@ Typically you would not need to change any configuration or build the site local Install freeCodeCamp locally ([see the local setup guide](how-to-setup-freecodecamp-locally)), we bundled the CLI with the development tools so you can run the command below as needed from the root of the repo: -```console +```bash pnpm run docs:serve ``` diff --git a/docs/i18n/chinese/troubleshooting-development-issues.md b/docs/i18n/chinese/troubleshooting-development-issues.md index 962fd04362c..e368b7c331e 100644 --- a/docs/i18n/chinese/troubleshooting-development-issues.md +++ b/docs/i18n/chinese/troubleshooting-development-issues.md @@ -16,7 +16,7 @@ If you are on a different OS or are still facing issues, see [getting help](#get When you build the client, Gatsby will cache the Fonts, language strings, and UI. If one of them isn't cached, run the following: -```console +```bash pnpm run clean pnpm install pnpm run seed @@ -53,7 +53,7 @@ git clean -ifdX If you can't sign in, and instead you see a banner with an error message saying that the error will be reported to freeCodeCamp, please double-check that your local port `3000` is not in use by a different program. #### **From Terminal:** -```console +```bash netstat -a | grep "3000" tcp4 0 0 0.0.0.0:3000 DESKTOP LISTEN diff --git a/docs/i18n/espanol/devops.md b/docs/i18n/espanol/devops.md index 032788e5239..7927b961134 100644 --- a/docs/i18n/espanol/devops.md +++ b/docs/i18n/espanol/devops.md @@ -303,19 +303,19 @@ Debes mantener las máquinas virtuales actualizadas mediante la realización de Actualizar la información de paquetes -```console +```bash sudo apt update ``` Actualizar los paquetes instalados -```console +```bash sudo apt upgrade -y ``` Limpieza de paquetes no utilizados -```console +```bash sudo apt autoremove -y ``` @@ -331,7 +331,7 @@ Aprovisionamiento de máquinas virtuales con el código 1. Instala NGINX y configúralo desde el repositorio. - ```console + ```bash sudo su cd /var/www/html @@ -352,7 +352,7 @@ Aprovisionamiento de máquinas virtuales con el código Mueve los certificados existentes: - ```console + ```bash # En Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -364,7 +364,7 @@ Aprovisionamiento de máquinas virtuales con el código Actualiza las configuraciones upstream: - ```console + ```bash vi configs/upstreams.conf ``` @@ -382,7 +382,7 @@ Aprovisionamiento de máquinas virtuales con el código 1. Compruebe el estado del servicio NGINX utilizando el siguiente comando: - ```console + ```bash sudo systemctl status nginx ``` @@ -396,13 +396,13 @@ Los cambios en la configuración de nuestras instancias NGINX son mantenidos en 1. SSH en la instancia y entra en modo sudo -```console +```bash sudo su ``` 2. Obtén el código de configuración más reciente. -```console +```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -410,7 +410,7 @@ git reset --hard origin/main 3. Prueba y recarga la configuración [con Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). -```console +```bash nginx -t nginx -s reload ``` @@ -419,7 +419,7 @@ nginx -s reload 1. Instala las herramientas de compilación para archivos binarios de Node (`node-gyp`) etc. -```console +```bash sudo apt install build-essential ``` @@ -431,19 +431,19 @@ Aprovisionamiento de MVs con el código 2. Install pnpm globally. -```console +```bash npm install -g pnpm ``` 3. Install pm2 globally. -```console +```bash npm install -g pm2 ``` 4. Clone freeCodeCamp, set up env, and keys. -```console +```bash git clone https://github.com/freeCodeCamp/freeCodeCamp.git cd freeCodeCamp git checkout prod-current # or any other branch to be deployed @@ -453,36 +453,36 @@ git checkout prod-current # or any other branch to be deployed 6. Install dependencies -```console +```bash pnpm install ``` 7. Setup pm2 `logrotate` and startup on boot -```console +```bash pm2 install pm2-logrotate pm2 startup ``` 8. Build the server -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 9. Start Instances -```console +```bash pnpm start:server ``` ### Registro de eventos y monitoreo -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -496,31 +496,31 @@ Los cambios en el código deben desplegarse en las instancias de la API cada tan 1. Stop all instances -```console +```bash pm2 stop all ``` 2. Install dependencies -```console +```bash pnpm install ``` 3. Build the server -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 4. Start Instances -```console +```bash pnpm start:server && pm2 logs ``` #### 2. Rolling updates - Used for logical changes to code. -```console +```bash pnpm reload:server && pm2 logs ``` @@ -532,7 +532,7 @@ pnpm reload:server && pm2 logs 2. Update pm2 to use the new version -```console +```bash pm2 update ``` @@ -540,7 +540,7 @@ pm2 update 1. Install build tools for node binaries (`node-gyp`) etc. -```console +```bash sudo apt install build-essential ``` @@ -552,7 +552,7 @@ Aprovisionamiento de MVs con el código 2. Update `npm` and install PM2 and setup `logrotate` and startup on boot - ```console + ```bash npm i -g npm@8 npm i -g pm2@4 npm install -g serve@13 @@ -562,7 +562,7 @@ Aprovisionamiento de MVs con el código 3. Clone client config, setup env and keys. - ```console + ```bash git clone https://github.com/freeCodeCamp/client-config.git client cd client ``` @@ -571,7 +571,7 @@ Aprovisionamiento de MVs con el código > Todo: This setup needs to move to S3 or Azure Blob storage > - > ```console + > ```bash > echo "serve -c ../serve.json -p 50505 www" > client-start-primary.sh > chmod +x client-start-primary.sh > pm2 delete client-primary @@ -584,11 +584,11 @@ Aprovisionamiento de MVs con el código ### Registro de eventos y monitoreo -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -602,7 +602,7 @@ Los cambios en el código deben desplegarse en las instancias del API cada ciert 1. Stop all instances - ```console + ```bash pm2 stop all ``` @@ -610,13 +610,13 @@ Los cambios en el código deben desplegarse en las instancias del API cada ciert 3. Start Instances - ```console + ```bash pm2 start all --update-env && pm2 logs ``` #### 2. Actualizaciones continuas: Utilizadas para cambios lógicos en el código. -```console +```bash pm2 reload all --update-env && pm2 logs ``` @@ -636,7 +636,7 @@ Aprovisionamiento de MVs con el código 1. Install NGINX and configure from repository. - ```console + ```bash sudo su cd /var/www/html @@ -657,7 +657,7 @@ Aprovisionamiento de MVs con el código Move over existing certificates: - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -669,7 +669,7 @@ Aprovisionamiento de MVs con el código Update Upstream Configurations: - ```console + ```bash vi configs/upstreams.conf ``` @@ -687,7 +687,7 @@ Aprovisionamiento de MVs con el código 1. Install Docker and configure from the repository - ```console + ```bash git clone https://github.com/freeCodeCamp/chat-config.git chat cd chat ``` @@ -696,7 +696,7 @@ Aprovisionamiento de MVs con el código 3. Run rocket-chat server - ```console + ```bash docker-compose config docker-compose up -d ``` @@ -705,13 +705,13 @@ Aprovisionamiento de MVs con el código 1. Check status for NGINX service using the below command: - ```console + ```bash sudo systemctl status nginx ``` 2. Check status for running docker instances with: - ```console + ```bash docker ps ``` @@ -723,13 +723,13 @@ Los cambios de configuración a nuestras instancias NGINX se mantienen en GitHub 1. SSH into the instance and enter sudo - ```console + ```bash sudo su ``` 2. Get the latest config code. - ```console + ```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -737,7 +737,7 @@ Los cambios de configuración a nuestras instancias NGINX se mantienen en GitHub 3. Test and reload the config [with Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). - ```console + ```bash nginx -t nginx -s reload ``` @@ -746,44 +746,44 @@ Los cambios de configuración a nuestras instancias NGINX se mantienen en GitHub 1. SSH into the instance and navigate to the chat config path - ```console + ```bash cd ~/chat ``` 2. Get the latest config code. - ```console + ```bash git fetch --all --prune git reset --hard origin/main ``` 3. Pull down the latest docker image for Rocket.Chat - ```console + ```bash docker-compose pull ``` 4. Update the running instances - ```console + ```bash docker-compose up -d ``` 5. Validate the instances are up - ```console + ```bash docker ps ``` 6. Cleanup extraneous resources - ```console + ```bash docker system prune --volumes ``` Output: - ```console + ```bash WARNING! This will remove: - all stopped containers - all networks not used by at least one container @@ -802,7 +802,7 @@ Los cambios de configuración a nuestras instancias NGINX se mantienen en GitHub ssh en la máquina virtual (alojada en Digital Ocean). -```console +```bash cd tools git pull origin master pnpm install @@ -814,7 +814,7 @@ pm2 restart contribute-app Lista las versiones instaladas de node y npm -```console +```bash nvm -v node -v npm -v @@ -824,25 +824,25 @@ nvm ls Instala el último Node.js LTS y reinstala cualquier paquete global -```console +```bash nvm install --lts --reinstall-packages-from=default ``` Verifica los paquetes instalados -```console +```bash npm ls -g --depth=0 ``` Alias the `default` Node.js version to the current LTS (pinned to the latest major version) -```console +```bash nvm alias default 16 ``` (Opcional) Desinstalar versiones antiguas -```console +```bash nvm uninstall <version> ``` @@ -852,31 +852,31 @@ nvm uninstall <version> Obtén las instrucciones/comandos de desinstalación con el comando `unstartup` y usa la salida para eliminar los servicios de systemctl -```console +```bash pm2 unstartup ``` Obtén las instrucciones/comandos de instalación con el comando `startup` y usa la salida para agregar los servicios de systemctl -```console +```bash pm2 startup ``` Comandos rápidos para que PM2 enumere, reviva procesos guardados, etc. -```console +```bash pm2 ls ``` -```console +```bash pm2 resurrect ``` -```console +```bash pm2 save ``` -```console +```bash pm2 logs ``` @@ -898,32 +898,32 @@ Actualmente actualizar los agentes requiere que sean eliminados y reconfigurados 1. Navigate and check status of the service - ```console + ```bash cd ~/azagent sudo ./svc.sh status ``` 2. Stop the service - ```console + ```bash sudo ./svc.sh stop ``` 3. Uninstall the service - ```console + ```bash sudo ./svc.sh uninstall ``` 4. Remove the agent from the pipeline pool - ```console + ```bash ./config.sh remove ``` 5. Remove the config files - ```console + ```bash cd ~ rm -rf ~/azagent ``` @@ -938,7 +938,7 @@ Utilizamos [una herramienta CLI](https://github.com/freecodecamp/sendgrid-email- 2. Set up the script to fetch the email list. - ```console + ```bash cd /home/freecodecamp/scripts/emails cp sample.env .env ``` @@ -947,7 +947,7 @@ Utilizamos [una herramienta CLI](https://github.com/freecodecamp/sendgrid-email- 3. Run the script. - ```console + ```bash node get-emails.js emails.csv ``` diff --git a/docs/i18n/espanol/how-to-add-cypress-tests.md b/docs/i18n/espanol/how-to-add-cypress-tests.md index ce3fef2a75f..2d89d13cc59 100644 --- a/docs/i18n/espanol/how-to-add-cypress-tests.md +++ b/docs/i18n/espanol/how-to-add-cypress-tests.md @@ -26,25 +26,25 @@ Para ejecutar pruebas en las compilaciones de producción, reemplaza `dev` con ` - Para ejecutar todas las pruebas en el directorio `./cypress`: - ```console + ```bash pnpm run cypress:dev:run ``` - Para ejecutar una sola prueba: - ```console + ```bash pnpm run cypress run --spec=cypress/<path_to_test_file> ``` For example: - ```console + ```bash pnpm run cypress run --spec=cypress/e2e/default/landing.ts ``` - Para crear una compilación de desarrollo, inicia el servidor de desarrollo y ejecuta todas las pruebas de cypress existentes de extremo a extremo: - ```console + ```bash pnpm run e2e:dev:run ``` @@ -57,25 +57,25 @@ If starting the Gitpod environment did not automatically develop the environment - Follow the [MongoDB installation guide](https://www.mongodb.com/basics/get-started). - Create a config file. -```console +```bash pnpm run create:shared ``` - Propaga la base de datos -```console +```bash pnpm run seed ``` - Inicia el servidor de desarrollo y cliente -```console +```bash pnpm run develop ``` ### 2. Instala las herramientas de compilación de Cypress -```console +```bash pnpm run cypress:install-build-tools ``` diff --git a/docs/i18n/espanol/how-to-add-playwright-tests.md b/docs/i18n/espanol/how-to-add-playwright-tests.md index 7ff58224ee4..0f450480fea 100644 --- a/docs/i18n/espanol/how-to-add-playwright-tests.md +++ b/docs/i18n/espanol/how-to-add-playwright-tests.md @@ -4,7 +4,7 @@ To install Playwright run: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -181,49 +181,49 @@ To run tests with Playwright check the following below - Make sure you navigate to the e2e repo first - ```console + ```bash cd e2e ``` - To run tests in UI helper mode: - ```console + ```bash npx playwright test --ui ``` - To run a single test: - ```console + ```bash npx playwright test <filename> ``` For example: - ```console + ```bash npx playwright test landing-page.spec.ts ``` - Run a set of test files in respective folders: - ```console + ```bash npx playwright test <pathToFolder1> <pathToFolder2> ``` For example: - ```console + ```bash npx playwright test tests/todo-page/ tests/landing-page/ ``` - Run the test with the title: - ```console + ```bash npx playwright test -g <title> ``` For example: - ```console + ```bash npx playwright test -g "add a todo item" ``` @@ -233,13 +233,13 @@ Since Playwright runs in Node.js, you can debug it with your debugger of choice - Debugging all tests: - ```console + ```bash npx playwright test --debug ``` - Debugging one test file: - ```console + ```bash npx playwright test example.spec.ts --debug ``` @@ -247,7 +247,7 @@ Since Playwright runs in Node.js, you can debug it with your debugger of choice The HTML Reporter shows you a full report of your tests allowing you to filter the report by browsers, passed tests, failed tests, skipped tests and flaky tests. -```console +```bash npx playwright show-report ``` @@ -257,13 +257,13 @@ Playwright is generally a solid bullet-proof tool. The contributor has already c - (MacOs and Linux) If running Playwright results in an error due to kernel dependencies, run the following command: - ```console + ```bash pnpm run playwright:install-build-tools-linux ``` - A common error seen in playwright is as follows: - ```console + ```bash Error: page.goto: Could not connect: Connection refused =========================== logs =========================== navigating to "https://127.0.0.1:8000/", waiting until "load" @@ -284,7 +284,7 @@ Playwright is generally a solid bullet-proof tool. The contributor has already c - Another common error seen in playwright is as follows: - ```console + ```bash Protocol error (Network.getResponseBody): Request content was evicted from inspector cache ``` @@ -305,25 +305,25 @@ If starting the Gitpod environment did not automatically develop the environment - Create the .env - ```console + ```bash cp sample.env .env ``` - Create a config file. - ```console + ```bash pnpm run create:shared ``` - Seed the database - ```console + ```bash pnpm run seed ``` - Develop the server and client - ```console + ```bash pnpm run develop ``` @@ -331,7 +331,7 @@ If starting the Gitpod environment did not automatically develop the environment To install necessary dependencies for running Playwright run the following command: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -339,6 +339,6 @@ pnpm run playwright:install-build-tools To run all Playwright tests, run the following command: -```console +```bash npx playwright test ``` diff --git a/docs/i18n/espanol/how-to-contribute-to-the-codebase.md b/docs/i18n/espanol/how-to-contribute-to-the-codebase.md index 5293f0d1a26..860547e372c 100644 --- a/docs/i18n/espanol/how-to-contribute-to-the-codebase.md +++ b/docs/i18n/espanol/how-to-contribute-to-the-codebase.md @@ -10,13 +10,13 @@ Sigue estos pasos: 1. 1. Utiliza el siguiente comando para confirmar que estes en la rama `main`: - ```console + ```bash git status ``` el comando debería devolverte el siguiente resultado: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -25,7 +25,7 @@ Sigue estos pasos: If you got a different message, then you aren't on main or your working directory isn't clean, resolve any outstanding files/commits and checkout `main`: - ```console + ```bash git checkout main ``` @@ -39,25 +39,25 @@ Sigue estos pasos: Actualizar tu copia del repositorio principal de freeCodeCamp: - ```console + ```bash git fetch upstream ``` Formatea tu rama main con la rama main de freeCodeCamp: - ```console + ```bash git reset --hard upstream/main ``` Hace push de tu rama main a tu bifurcación original para limpiar tu historial en GitHub: - ```console + ```bash git push origin main --force ``` You can validate that your current main matches the upstream/main by performing a diff: - ```console + ```bash git diff upstream/main ``` @@ -69,7 +69,7 @@ Sigue estos pasos: Verificá que estás en `main` siguiendo los pasos ya explicados y empezá desde ahí: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -93,13 +93,13 @@ Sigue estos pasos: 7. Comprobá y confirmá los archivos que estás actualizando: - ```console + ```bash git status ``` Este comando debería mostrar una lista de los archivos `unstaged` que editaste. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -118,25 +118,25 @@ Sigue estos pasos: En este paso, sólo deberías marcar los archivos que has editado o añadido tu mismo. Puede realizar un reseteo y resolver archivos que no tenías intención de cambiar si es necesario. - ```console + ```bash git add path/to/my/changed/file.ext ``` O puedes añadir todos los archivos que no estén `unstaged` al área de staging: - ```console + ```bash git add . ``` Sólo los archivos que fueron movidos al área de staging serán añadidos cuando hagas un commit. - ```console + ```bash git status ``` Resultado: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -151,7 +151,7 @@ Sigue estos pasos: Ahora, puedes confirmar tus cambios con un mensaje corto así: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -181,7 +181,7 @@ Sigue estos pasos: 9. Si te das cuenta de que necesitas editar un archivo o actualizar el mensaje de confirmación después de hacer un commit puedes hacerlo después de editar los archivos con: - ```console + ```bash git commit --amend ``` @@ -189,7 +189,7 @@ Sigue estos pasos: 10. A continuación, puedes enviar tus cambios a tu bifurcación: - ```console + ```bash git push origin branch/name-here ``` diff --git a/docs/i18n/espanol/how-to-open-a-pull-request.md b/docs/i18n/espanol/how-to-open-a-pull-request.md index 8d2bf79ec35..2c876dda660 100644 --- a/docs/i18n/espanol/how-to-open-a-pull-request.md +++ b/docs/i18n/espanol/how-to-open-a-pull-request.md @@ -115,14 +115,14 @@ When you are working on regular bugs and features on our development branch `mai 1. Rebase your local copy: - ```console + ```bash git checkout <pr-branch> git pull --rebase upstream main ``` 2. Resolve any conflicts and add / edit commits - ```console + ```bash # Either git add . git commit -m "chore: resolve conflicts" @@ -134,7 +134,7 @@ When you are working on regular bugs and features on our development branch `mai 3. Push back your changes to the PR - ```console + ```bash git push --force origin <pr-branch> ``` @@ -144,7 +144,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, 1. Make sure your upstream comes in sync with your local: - ```console + ```bash git checkout main git fetch --all --prune git checkout next-python-projects @@ -155,7 +155,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, a. Either delete your local branch after taking a backup (if you still have it locally): - ```console + ```bash git checkout <pr-branch-name> # example: @@ -171,7 +171,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, b. Or just a backup of your PR branch (if you do not have it locally): - ```console + ```bash git checkout -b <backup-branch-name> origin/<pr-branch-name> # example: @@ -180,14 +180,14 @@ When you are working on features for our upcoming curriculum `next-*` branches, 3. Start off with a clean slate: - ```console + ```bash git checkout -b <pr-branch-name> next-python-projects git cherry-pick <commit-hash> ``` 4. Resolve any conflicts, cleanup, and install dependencies and run tests - ```console + ```bash pnpm run clean pnpm install @@ -201,6 +201,6 @@ When you are working on features for our upcoming curriculum `next-*` branches, 5. If everything looks good, push back to the PR - ```console + ```bash git push --force origin <pr-branch-name> ``` diff --git a/docs/i18n/espanol/how-to-setup-freecodecamp-locally.md b/docs/i18n/espanol/how-to-setup-freecodecamp-locally.md index 14873d5af5a..fd43d1d63e9 100644 --- a/docs/i18n/espanol/how-to-setup-freecodecamp-locally.md +++ b/docs/i18n/espanol/how-to-setup-freecodecamp-locally.md @@ -75,7 +75,7 @@ We primarily support development on Linux and Unix-based systems like Ubuntu and If Node.js is already installed on your machine, run the following commands to validate the versions: -```console +```bash node -v pnpm -v ``` @@ -142,7 +142,7 @@ Run these commands on your local machine: 2. Clone your fork of freeCodeCamp, replacing `YOUR_USER_NAME` with your GitHub Username - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git ``` @@ -160,25 +160,25 @@ You need a reference from your local clone to the `upstream` repository in addit 1. Change the directory to the new freeCodeCamp directory: - ```console + ```bash cd freeCodeCamp ``` 2. Add a remote reference to the main freeCodeCamp repository: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git ``` 3. Ensure the configuration looks correct: - ```console + ```bash git remote -v ``` The output should look something like below (replacing `YOUR_USER_NAME` with your GitHub username): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch) origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push) upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch) @@ -203,12 +203,12 @@ And as always, feel free to ask questions on the ['Contributors' category on our The default API keys and environment variables are stored in the file `sample.env`. This file needs to be copied to a new file named `.env` that is accessed dynamically during the installation step. -```console +```bash # Crear una copia de la "sample.env" y nombrarla ".env". # Populate it with the necessary API keys and secrets ``` -```console +```bash cp sample.env .env ``` @@ -220,7 +220,7 @@ The keys in the `.env` file are _not_ required to be changed to run the app loca This step will install the dependencies required for the application to run: -```console +```bash pnpm install && pnpm run create:shared ``` @@ -234,7 +234,7 @@ Before you can run the application locally, you will need to start the MongoDB s Start the MongoDB server in a separate terminal: -```console +```bash mongod ``` @@ -242,15 +242,14 @@ mongod Next, let's seed the database. In this step, we run the below command that fills the MongoDB server with some initial data sets that are required by services. These include a few schemas, among other things. -```console +```bash pnpm run seed ``` By default, you will be signed in as a new user without any completed certifications. Run the following commands if you need to develop with completed certifications: -```console +```bash pnpm run seed:certified-user -pnpm run seed:exams ``` > [!WARNING] Running `pnpm run seed:certified-user` will log you out. You will have to clear your browser cookies and sign in again. @@ -259,7 +258,7 @@ pnpm run seed:exams You can now start up the API server and the client applications. -```console +```bash pnpm run develop ``` @@ -279,11 +278,12 @@ If you have issues while installing it, check out the [troubleshooting section]( A quick reference to the commands that you will need when working locally. -| command | description | -| ------------------------------ | ------------------------------------------------------------------------------------------------- | -| `pnpm install` | Installs / re-installs all dependencies and bootstraps the different services. | -| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. | -| `pnpm run seed:certified-user` | Creates authorized test users with certifications fully completed, and inserts them into MongoDB. | -| `pnpm run seed:exams` | Creates exams and inserts them into MongoDB. | -| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | -| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | +| command | description | +| ------------------------------ | ------------------------------------------------------------------------------------------------------------- | +| `pnpm install` | Installs / re-installs all dependencies and bootstraps the different services. | +| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. Also runs `seed:exams` and `seed:surveys` below. | +| `pnpm run seed:certified-user` | Creates authorized test users with certifications fully completed, and inserts them into MongoDB. | +| `pnpm run seed:exams` | Creates exams and inserts them into MongoDB. | +| `pnpm run seed:surveys` | Creates surveys for defaults users and inserts them into MongoDB. | +| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | +| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | diff --git a/docs/i18n/espanol/how-to-setup-freecodecamp-mobile-app-locally.md b/docs/i18n/espanol/how-to-setup-freecodecamp-mobile-app-locally.md index 196d5db4781..f09db01d67a 100644 --- a/docs/i18n/espanol/how-to-setup-freecodecamp-mobile-app-locally.md +++ b/docs/i18n/espanol/how-to-setup-freecodecamp-mobile-app-locally.md @@ -17,7 +17,7 @@ Empezar instalando el software requerido previamente para su sistema operativo. Si Flutter ya está instalado en su equipo, ejecute los siguientes comandos para verificar la versión: -```console +```bash flutter --version dart --version ``` @@ -70,7 +70,7 @@ Ejecuta estos comandos en tu máquina local: 2. Clona tu fork de freeCodeCamp, reemplazando `TU_NOMBRE_DE_USUARIO` por tu nombre de usuario de GitHub - ```console + ```bash git clon --depth=1 https://github.com/TU_NOMBRE_DE_USUARIO/mobile.git ``` @@ -88,25 +88,25 @@ Necesitas una referencia de tu clon local al repositorio `upstream` además del 1. Cambiar el directorio al nuevo directorio `móvil`: - ```console + ```bash cd mobile ``` 2. Añadir una referencia remota al repositorio principal de freeCodeCamp móvil: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/mobile.git ``` 3. Asegúrate de que la configuración se vea correcta: - ```console + ```bash git remote -v ``` La salida debería verse parecida a como se muestra debajo (remplazando `TU_NOMBRE_DE_USUARIO` con tu usuario de GitHub): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/mobile.git (fetch) origin https://github.com/YOUR_USER_NAME/mobile.git (push) upstream https://github.com/freeCodeCamp/mobile.git (fetch) @@ -129,20 +129,20 @@ Y como siempre, siéntete libre de preguntar en la categoría ['Contribuyentes' Las claves de la API por defecto y las variables de entorno se almacenan en el archivo `sample.env`. This file needs to be copied to a new file named `.env` which is accessed dynamically during the installation step. Recuerda cambiar el directorio a `mobile-app` antes de ejecutar los siguientes comandos. -```console +```bash # Crear una copia del "sample.env" y nombrarla ".env". # Llenarlo con las keys y secrets de la API necesarios: ``` #### **macOS/Linux** -```console +```bash cp sample.env .env ``` #### **Windows** -```console +```bash copy sample.env .env ``` @@ -152,7 +152,7 @@ Las claves dentro del archivo `.env` _no_ requieren ser cambiadas para correr l Este paso instalará las dependencias necesarias para que la aplicación se ejecute: -```console +```bash flutter pub get ``` @@ -162,7 +162,7 @@ Inicia el emulador de tu elección (Android o iOS) y espera a que se complete el Ahora puedes iniciar la aplicación ejecutando el siguiente comando: -```console +```bash flutter run ``` @@ -176,13 +176,13 @@ Sigue estos pasos: 1. Valida que estás en la rama `main`: - ```console + ```bash git status ``` Deberías obtener una salida como esta: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -191,7 +191,7 @@ Sigue estos pasos: Si no estás en main o tu directorio de trabajo no está limpio, resuelve cualquier archivos/commits pendientes y comprueba `main`: - ```console + ```bash git checkout main ``` @@ -205,25 +205,25 @@ Sigue estos pasos: Actualiza tu copia local del repositorio de freeCodeCamp móvil: - ```console + ```bash git fetch upstream ``` Restablece tu rama main con el main de freeCodeCamp móvil: - ```console + ```bash git reset --hard upstream/main ``` Has push de tu rama main a tu origen para tener un historial limpio en tu fork en GitHub: - ```console + ```bash git push origin main --force ``` You can validate that your current main matches the upstream/main by performing a diff: - ```console + ```bash git diff upstream/main ``` @@ -235,7 +235,7 @@ Sigue estos pasos: Comprueba que estás en `main` como se explicó anteriormente, y ramifica desde ahí: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -259,13 +259,13 @@ Sigue estos pasos: 7. Comprueba y confirma los archivos que estás actualizando: - ```console + ```bash git status ``` Esto debería mostrar una lista de archivos `unstaged` que has editado. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -282,25 +282,25 @@ Sigue estos pasos: En este paso, sólo deberías marcar los archivos que has editado o añadido tu mismo. Puede realizar un reset y resolver archivos que no tenías intención de cambiar si es necesario. - ```console + ```bash git add ruta/al/archivo/editado.ext ``` O puedes añadir todos los archivos que no estén `organizados` al área de staging: - ```console + ```bash git add . ``` Sólo los archivos que fueron movidos al área de staging serán añadidos cuando hagas un commit. - ```console + ```bash git status ``` Salida: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -313,7 +313,7 @@ Sigue estos pasos: Ahora, puedes hace commit de tus cambios con un mensaje corto, así: - ```console + ```bash git commit -m "fix: mensaje corto" ``` @@ -345,7 +345,7 @@ Sigue estos pasos: 9. Si te das cuenta de que necesitas editar un archivo o actualizar el mensaje de confirmación después de hacer un commit puedes hacerlo después de editar los archivos con: - ```console + ```bash git commit --amend ``` @@ -353,7 +353,7 @@ Sigue estos pasos: 10. A continuación, puedes enviar tus cambios a tu fork: - ```console + ```bash git push origin nombre/rama-aqui ``` @@ -363,14 +363,14 @@ Sigue estos pasos: 1. Clone a copy of the [freeCodeCamp repo](https://github.com/freeCodeCamp/freeCodeCamp) locally outside of your local copy of the freeCodeCamp mobile repo. Your folder structure should look like this: - ```console + ```bash ├── freeCodeCamp ├── mobile ``` 2. Change the directory to the freeCodeCamp repo: - ```console + ```bash cd freeCodeCamp ``` @@ -378,25 +378,25 @@ Sigue estos pasos: #### **macOS/Linux** - ```console + ```bash cp sample.env .env ``` #### **Windows** - ```console + ```bash copy sample.env .env ``` 4. Install the dependencies for the freeCodeCamp repo: - ```console + ```bash pnpm install && pnpm run create:shared ``` 5. Generate the challenge data JSON file: - ```console + ```bash pnpm run build:curriculum ``` @@ -404,54 +404,54 @@ Sigue estos pasos: #### **macOS/Linux** - ```console + ```bash cp ./shared/config/curriculum.json ../mobile/mobile-app/curriculum.json ``` #### **Windows** - ```console + ```bash copy .\shared\config\curriculum.json ..\mobile\mobile-app\curriculum.json ``` 7. Change directory to the mobile app: - ```console + ```bash cd ../mobile/mobile-app ``` 8. Install the dependencies for the mobile app: - ```console + ```bash flutter pub get ``` 9. Update the test file to use the challenge data JSON file: - ```console + ```bash sed -i '' 's/..\/..\/shared\/config\/curriculum.json/.\/curriculum.json/g' test/widget_test.dart ``` 10. Generate the challenge files: - ```console + ```bash flutter test test/widget_test.dart ``` 11. Start a local server to serve the challenge files with the help of `serve` package: - ```console + ```bash npx serve ``` 12. In a different terminal go back to the freeCodeCamp repo: - ```console + ```bash cd ../../freeCodeCamp ``` 13. Run the cypress tests: - ```console + ```bash pnpm cypress run --config retries=1,screenshotOnRunFailure=false,video=false,baseUrl=http://localhost:3000/generated-tests/,specPattern=cypress/e2e/mobile-learn/test-challenges.js -s cypress/e2e/mobile-learn/test-challenges.js -b chrome ``` @@ -482,7 +482,7 @@ Si estás en un sistema operativo diferente y/o todavía tienes problemas, consu If you face issues with the UI, or build errors a cleanup can be useful: -```console +```bash flutter clean ``` diff --git a/docs/i18n/espanol/how-to-setup-wsl.md b/docs/i18n/espanol/how-to-setup-wsl.md index 0421a40a3e0..12367a2495f 100644 --- a/docs/i18n/espanol/how-to-setup-wsl.md +++ b/docs/i18n/espanol/how-to-setup-wsl.md @@ -10,7 +10,7 @@ Esta guía cubre algunos pasos comunes con la configuración de WSL2. Una vez qu ## Habilitar WSL -Sigue las instrucciones de la [documentación oficial](https://docs.microsoft.com/en-us/windows/wsl/install-win10) para instalar WSL1 y luego actualice a WSL2. +Follow the instructions on the [official documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL2. ## Instalar Ubuntu @@ -20,9 +20,11 @@ Sigue las instrucciones de la [documentación oficial](https://docs.microsoft.co > > While you may use other non-Debian-based distributions, they all come with their own 'gotchas' that are beyond the scope of this guide. + As of November 2023, Ubuntu and Debian are the only Linux distributions [officially supported by Playwright](https://playwright.dev/docs/intro#system-requirements), the end-to-end testing library used by freeCodeCamp. + 2. Actualizar las dependencias del sistema operativo - ```console + ```bash sudo apt update sudo apt upgrade -y @@ -70,23 +72,23 @@ Esto hace que los contenedores se ejecuten del lado de WSL en vez de Windows. Se Una vez que hayas configurado Docker Desktop para trabajar con WSL2, sigue estos pasos para iniciar un servicio MongoDB: -1. Inicia una nueva terminal Ubuntu-18.04 +1. Launch a new Ubuntu terminal -2. Pull `MongoDB 4.0.x` from Docker Hub +2. Pull MongoDB from Docker Hub. Please refer to the [Prerequisites](how-to-setup-freecodecamp-locally.md#Prerequisites) table for the current version of MongoDB used by freeCodeCamp. For example, if the version number is `5.0.x`, replace `<x.y>` with `5.0` in the following two code snippets. - ```console - docker pull mongo:4.0 + ```bash + docker pull mongo:<x.y> ``` 3. Inicia el servicio MongoDB en el puerto `27017`, y configúralo para que se ejecute automáticamente al reiniciar el sistema - ```console + ```bash docker run -it \ -v mongodata:/data/db \ -p 27017:27017 \ --name mongodb \ --restart unless-stopped \ - -d mongo:4.0 + -d mongo:<x.y> ``` 4. Ahora puedes acceder al servicio desde Windows o Ubuntu en `mongodb://localhost:27017`. @@ -95,25 +97,17 @@ Una vez que hayas configurado Docker Desktop para trabajar con WSL2, sigue estos Recomendamos que instales la versión LTS de Node.js con un gestor de versiones de node - [nvm](https://github.com/nvm-sh/nvm#installing-and-updating). -Una vez instalado, usa estos comandos para instalar y usar la versión de Node.js según sea necesario +Once installed use this command to install and use the latest Node.js LTS version: -```console +```bash nvm install --lts - -# O también -# nvm install <version> - -nvm install 14 - -# Uso -# nvm use <version> - -nvm use 12 ``` +For instructions on installing and using a different version of Node.js, please refer to the [nvm docs](https://github.com/nvm-sh/nvm#usage). + Node.js comes bundled with `npm`, which you can use to install `pnpm`: -```console +```bash npm install -g pnpm ``` @@ -125,7 +119,104 @@ Now that you have installed the pre-requisites, follow [our local setup guide](h > > Please note, at this time the setup for Cypress tests (and related GUI needs) is a work in progress. Aún así deberías poder trabajar en la mayor parte del código base. -## Enlaces útiles +## Optimize Windows and WSL + + > [!NOTE] + > + > The following tips were collected from across the web and have not gone through vigorous testing. Your mileage may vary. + +### Adjust processer scheduling for background services + +This may reduce incidents of Docker containers crashing due to lack of resources. + +Open the System Properties control panel by pressing <kbd>Win + R</kbd> and entering `sysdm.cpl` + +<details> + <summary> + Enter <code>sysdm.cpl</code> in the Run dialog (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/run-sysdm.png" alt="Enter `sysdm.cpl` in the Run dialog" /> +</details> +<br> + +Go to Advanced -> Performance -> Settings… + +<details> + <summary> + Performance Settings button under Advanced tab in System Properties (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-performance-settings.png" alt="Performance Settings button under Advanced tab in System Properties" /> +</details> +<br> + +Under Advanced -> Processor scheduling, choose "Background services". Do not close the window. Continue to the next tip. + +<details> + <summary> + Background services radio button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/background-services.png" alt="Background services radio button under Advanced tab in Performance Options" /> +</details> + +### Increase the size of Windows paging file for the system drive + +Under Advanced -> Virtual memory, click "Change…" + +<details> + <summary> + Change virtual memory button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-virtual-memory.png" alt="Change virtual memory button under Advanced tab in Performance Options" /> +</details> +<br> + +Choose "Custom size". Set the initial size to 1.5x and the maximum size to 3x of your physical memory. Then click "Set". + +<details> + <summary> + Set custom size button in Virtual Memory window (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/set-custom-size.png" alt="Set custom size button in Virtual Memory window" /> +</details> + +### Increase the size of memory allocated to WSL + +Create a [`.wslconfig` file](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) in your [`%UserProfile%` directory](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#wslconfig) (typically `C:\Users\<UserName>\.wslconfig`). Please read the [WSL documentation](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) carefully and replace `x` with values that suit your own needs: + +```ini +# Settings apply across all Linux distros running on WSL 2 +[wsl2] + +# How much memory to assign to the WSL 2 VM. The default value might not be enough +memory=xGB + +# How much swap space to add to the WSL 2 VM, default is 25% of available RAM +swap=xGB +``` + +### Increase Node.js max old space size + +This fixes the ["JavaScript heap out of memory" error](https://stackoverflow.com/a/54456814) with ESLint. Add the following to your `~/.bashrc` or `~/.zshrc`: + +```sh +export NODE_OPTIONS="--max-old-space-size=4096" +``` + +### Avoid `pnpm run test` + +Instead, use the script [appropriate to your PR](https://forum.freecodecamp.org/t/wsl-performance-issues-while-working-on-the-codebase/644215/2#:~:text=usually%2C%20you%20just%20want%20to%20test%20something%20specific%20to%20either%20the%20curriculum%20or%20the%20client%20or%20the%20api%20-%20almost%20never%20all%203.); either `pnpm run test:api`, `pnpm run test:curriculum`, or `pnpm run test-client`. + +## Useful Links - [A WSL2 Dev Setup with Ubuntu 20.04, Node.js, MongoDB, VS Code, and Docker](https://hn.mrugesh.dev/wsl2-dev-setup-with-ubuntu-nodejs-mongodb-and-docker) - an article by Mrugesh Mohapatra (Staff Developer at freeCodeCamp.org) - Preguntas frecuentes sobre: diff --git a/docs/i18n/espanol/how-to-work-on-coding-challenges.md b/docs/i18n/espanol/how-to-work-on-coding-challenges.md index 6a7a0d5fb9d..54e6cbfa421 100644 --- a/docs/i18n/espanol/how-to-work-on-coding-challenges.md +++ b/docs/i18n/espanol/how-to-work-on-coding-challenges.md @@ -239,6 +239,8 @@ Sentences should be clear and concise with minimal jargon. If used, jargon shoul Keep paragraphs short (around 1-4 sentences). People are more likely to read several short paragraphs than a wall of text. +Use american english, e.g., use `labeled` instead of `labelled`. + Challenge text should use the second person ("you") to help to give it a conversational tone. This way the text and instructions seem to speak directly to the camper working through the challenge. Try to avoid using the first person ("I", "we", "let's", and "us"). Don't use outbound links. These interrupt the flow. Campers should never have to google anything during these challenges. If there are resources you think campers would benefit from, add them to the challenge's Guide-related article. @@ -313,7 +315,7 @@ Los desafíos deben tener el número mínimo de pruebas necesarias para verifica Nuestro objetivo es comunicar el único punto que el reto está tratando de enseñar y comprobar que han comprendido ese punto. -Las pruebas de desafío pueden hacer uso de las librerías de aserción de Node.js y Chai.js. Además, si es necesario, se puede acceder al código generado por el usuario en la variable `code`. Además, el objeto `__helpers` expone varias funciones que simplifican el proceso de escritura de los test. Las funciones disponibles estan definidas en _client/src/utils/curriculum-helpers.ts_. +Las pruebas de desafío pueden hacer uso de las librerías de aserción de Node.js y Chai.js. Además, si es necesario, se puede acceder al código generado por el usuario en la variable `code`. Además, el objeto `__helpers` expone varias funciones que simplifican el proceso de escritura de los test. The available functions are defined in the [curriculum-helpers](https://github.com/freeCodeCamp/curriculum-helpers/blob/main/lib/index.ts) repo. ## Formatting Seed Code diff --git a/docs/i18n/espanol/how-to-work-on-localized-client-webapp.md b/docs/i18n/espanol/how-to-work-on-localized-client-webapp.md index 114d8e53c4c..202b9586a67 100644 --- a/docs/i18n/espanol/how-to-work-on-localized-client-webapp.md +++ b/docs/i18n/espanol/how-to-work-on-localized-client-webapp.md @@ -16,7 +16,7 @@ Veamos cómo funcionan los marcos de trabajo y las herramientas de i18n. Most of the files for translating the platform are located in the [`client/i18n`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n) folder. Each language has a directory that contains JSON files with the translations. -```console +```bash config └── i18n.ts ... diff --git a/docs/i18n/espanol/how-to-work-on-the-docs-theme.md b/docs/i18n/espanol/how-to-work-on-the-docs-theme.md index 703b9c7b5f8..aa61e734781 100644 --- a/docs/i18n/espanol/how-to-work-on-the-docs-theme.md +++ b/docs/i18n/espanol/how-to-work-on-the-docs-theme.md @@ -47,7 +47,7 @@ Normalmente no vas a necesitar cambiar ninguna configuración o compliar el siti Install freeCodeCamp locally ([see the local setup guide](how-to-setup-freecodecamp-locally)), we bundled the CLI with the development tools so you can run the command below as needed from the root of the repo: -```console +```bash pnpm run docs:serve ``` diff --git a/docs/i18n/espanol/troubleshooting-development-issues.md b/docs/i18n/espanol/troubleshooting-development-issues.md index 8d720305c2c..2665df05e48 100644 --- a/docs/i18n/espanol/troubleshooting-development-issues.md +++ b/docs/i18n/espanol/troubleshooting-development-issues.md @@ -16,7 +16,7 @@ Si estás en un sistema operativo diferente o todavía estas encontrandote con p When you build the client, Gatsby will cache the Fonts, language strings, and UI. Si uno de ellos no fue almacenado en caché, ejecute lo siguiente: -```console +```bash pnpm run clean pnpm install pnpm run seed @@ -53,7 +53,7 @@ git clean -ifdX If you can't sign in, and instead you see a banner with an error message saying that the error will be reported to freeCodeCamp, please double-check that your local port `3000` is not in use by a different program. #### **From Terminal:** -```console +```bash netstat -a | grep "3000" tcp4 0 0 0.0.0.0:3000 DESKTOP LISTEN diff --git a/docs/i18n/german/devops.md b/docs/i18n/german/devops.md index e4903fae682..f309fc0c646 100644 --- a/docs/i18n/german/devops.md +++ b/docs/i18n/german/devops.md @@ -303,19 +303,19 @@ Du solltest die VMs auf dem neuesten Stand halten, indem du Updates und Upgrades Paketinformationen aktualisieren -```console +```bash sudo apt update ``` Installierte Pakete upgraden -```console +```bash sudo apt upgrade -y ``` Unbenutzte Pakete entfernen -```console +```bash sudo apt autoremove -y ``` @@ -331,7 +331,7 @@ Provisionieren der VMs mit Code 1. Installiere NGINX und konfiguriere es aus dem Repository. - ```console + ```bash sudo su cd /var/www/html @@ -352,7 +352,7 @@ Provisionieren der VMs mit Code Übertrage bestehende Zertifikate: - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -364,7 +364,7 @@ Provisionieren der VMs mit Code Aktualisiere die Upstream-Konfigurationen: - ```console + ```bash vi configs/upstreams.conf ``` @@ -382,7 +382,7 @@ Provisionieren der VMs mit Code 1. Überprüfe den Status des NGINX-Dienstes mit dem folgenden Befehl: - ```console + ```bash sudo systemctl status nginx ``` @@ -396,13 +396,13 @@ Konfigurationsänderungen an unseren NGINX-Instanzen werden auf GitHub gepflegt, 1. Verbinde dich per SSH mit der Instanz und gib sudo ein -```console +```bash sudo su ``` 2. Lade den neuesten Konfigurationscode herunter. -```console +```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -410,7 +410,7 @@ git reset --hard origin/main 3. Teste und lade die Konfiguration neu [mit Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). -```console +```bash nginx -t nginx -s reload ``` @@ -419,7 +419,7 @@ nginx -s reload 1. Installiere Build-Tools für Node-Binaries (`node-gyp`) usw. -```console +```bash sudo apt install build-essential ``` @@ -431,19 +431,19 @@ Bereitstellung von VMs mit dem Code 2. Install pnpm globally. -```console +```bash npm install -g pnpm ``` 3. Install pm2 globally. -```console +```bash npm install -g pm2 ``` 4. Clone freeCodeCamp, set up env, and keys. -```console +```bash git clone https://github.com/freeCodeCamp/freeCodeCamp.git cd freeCodeCamp git checkout prod-current # or any other branch to be deployed @@ -453,36 +453,36 @@ git checkout prod-current # or any other branch to be deployed 6. Install dependencies -```console +```bash pnpm install ``` 7. Setup pm2 `logrotate` and startup on boot -```console +```bash pm2 install pm2-logrotate pm2 startup ``` 8. Build the server -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 9. Start Instances -```console +```bash pnpm start:server ``` ### Logging und Monitoring -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -496,31 +496,31 @@ Codeänderungen müssen von Zeit zu Zeit auf die API-Instanzen übertragen werde 1. Stop all instances -```console +```bash pm2 stop all ``` 2. Install dependencies -```console +```bash pnpm install ``` 3. Build the server -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 4. Start Instances -```console +```bash pnpm start:server && pm2 logs ``` #### 2. Rolling updates - Used for logical changes to code. -```console +```bash pnpm reload:server && pm2 logs ``` @@ -532,7 +532,7 @@ pnpm reload:server && pm2 logs 2. Update pm2 to use the new version -```console +```bash pm2 update ``` @@ -540,7 +540,7 @@ pm2 update 1. Install build tools for node binaries (`node-gyp`) etc. -```console +```bash sudo apt install build-essential ``` @@ -552,7 +552,7 @@ Bereitstellung von VMs mit dem Code 2. Update `npm` and install PM2 and setup `logrotate` and startup on boot - ```console + ```bash npm i -g npm@8 npm i -g pm2@4 npm install -g serve@13 @@ -562,7 +562,7 @@ Bereitstellung von VMs mit dem Code 3. Clone client config, setup env and keys. - ```console + ```bash git clone https://github.com/freeCodeCamp/client-config.git client cd client ``` @@ -571,7 +571,7 @@ Bereitstellung von VMs mit dem Code > Todo: This setup needs to move to S3 or Azure Blob storage > - > ```console + > ```bash > echo "serve -c ../serve.json -p 50505 www" > client-start-primary.sh > chmod +x client-start-primary.sh > pm2 delete client-primary @@ -584,11 +584,11 @@ Bereitstellung von VMs mit dem Code ### Logging und Monitoring -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -602,7 +602,7 @@ Codeänderungen müssen von Zeit zu Zeit auf die API-Instanzen übertragen werde 1. Stop all instances - ```console + ```bash pm2 stop all ``` @@ -610,13 +610,13 @@ Codeänderungen müssen von Zeit zu Zeit auf die API-Instanzen übertragen werde 3. Start Instances - ```console + ```bash pm2 start all --update-env && pm2 logs ``` #### 2. Fortlaufende (Rolling) Updates - Werden für logische Änderungen am Code verwendet. -```console +```bash pm2 reload all --update-env && pm2 logs ``` @@ -636,7 +636,7 @@ Bereitstellen von VMs mit dem Code 1. Install NGINX and configure from repository. - ```console + ```bash sudo su cd /var/www/html @@ -657,7 +657,7 @@ Bereitstellen von VMs mit dem Code Move over existing certificates: - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -669,7 +669,7 @@ Bereitstellen von VMs mit dem Code Update Upstream Configurations: - ```console + ```bash vi configs/upstreams.conf ``` @@ -687,7 +687,7 @@ Bereitstellen von VMs mit dem Code 1. Install Docker and configure from the repository - ```console + ```bash git clone https://github.com/freeCodeCamp/chat-config.git chat cd chat ``` @@ -696,7 +696,7 @@ Bereitstellen von VMs mit dem Code 3. Run rocket-chat server - ```console + ```bash docker-compose config docker-compose up -d ``` @@ -705,13 +705,13 @@ Bereitstellen von VMs mit dem Code 1. Check status for NGINX service using the below command: - ```console + ```bash sudo systemctl status nginx ``` 2. Check status for running docker instances with: - ```console + ```bash docker ps ``` @@ -723,13 +723,13 @@ Konfigurationsänderungen für unsere NGINX-Instanzen werden auf GitHub gepflegt 1. SSH into the instance and enter sudo - ```console + ```bash sudo su ``` 2. Get the latest config code. - ```console + ```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -737,7 +737,7 @@ Konfigurationsänderungen für unsere NGINX-Instanzen werden auf GitHub gepflegt 3. Test and reload the config [with Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). - ```console + ```bash nginx -t nginx -s reload ``` @@ -746,44 +746,44 @@ Konfigurationsänderungen für unsere NGINX-Instanzen werden auf GitHub gepflegt 1. SSH into the instance and navigate to the chat config path - ```console + ```bash cd ~/chat ``` 2. Get the latest config code. - ```console + ```bash git fetch --all --prune git reset --hard origin/main ``` 3. Pull down the latest docker image for Rocket.Chat - ```console + ```bash docker-compose pull ``` 4. Update the running instances - ```console + ```bash docker-compose up -d ``` 5. Validate the instances are up - ```console + ```bash docker ps ``` 6. Cleanup extraneous resources - ```console + ```bash docker system prune --volumes ``` Output: - ```console + ```bash WARNING! This will remove: - all stopped containers - all networks not used by at least one container @@ -802,7 +802,7 @@ Konfigurationsänderungen für unsere NGINX-Instanzen werden auf GitHub gepflegt ssh in die VM (gehostet auf Digital Ocean). -```console +```bash cd tools git pull origin master pnpm install @@ -814,7 +814,7 @@ pm2 restart contribute-app Liste die aktuell installierten node & npm Versionen auf -```console +```bash nvm -v node -v npm -v @@ -824,25 +824,25 @@ nvm ls Installiere die neueste Node.js LTS, und installiere alle globalen Pakete neu -```console +```bash nvm install --lts --reinstall-packages-from=default ``` Überprüfe installierte Pakete -```console +```bash npm ls -g --depth=0 ``` Alias the `default` Node.js version to the current LTS (pinned to the latest major version) -```console +```bash nvm alias default 16 ``` (Optional) Deinstalliere alte Versionen -```console +```bash nvm uninstall <version> ``` @@ -852,31 +852,31 @@ nvm uninstall <version> Hole die Anweisungen/Befehle zur Deinstallation mit dem Befehl `unstartup` und verwende die Ausgabe, um die systemctl Dienste zu entfernen -```console +```bash pm2 unstartup ``` Hole dir die Installationsanweisungen/Befehle mit dem `startup` Befehl und benutze die Ausgabe, um die systemctl Dienste hinzuzufügen -```console +```bash pm2 startup ``` Kurzbefehle für PM2, um gespeicherte Prozesse aufzulisten, wiederherzustellen usw. -```console +```bash pm2 ls ``` -```console +```bash pm2 resurrect ``` -```console +```bash pm2 save ``` -```console +```bash pm2 logs ``` @@ -898,32 +898,32 @@ Derzeit müssen Agents zum Aktualisieren entfernt und neu konfiguriert werden. D 1. Navigate and check status of the service - ```console + ```bash cd ~/azagent sudo ./svc.sh status ``` 2. Stop the service - ```console + ```bash sudo ./svc.sh stop ``` 3. Uninstall the service - ```console + ```bash sudo ./svc.sh uninstall ``` 4. Remove the agent from the pipeline pool - ```console + ```bash ./config.sh remove ``` 5. Remove the config files - ```console + ```bash cd ~ rm -rf ~/azagent ``` @@ -938,7 +938,7 @@ Wir verwenden [ein CLI-Tool](https://github.com/freecodecamp/sendgrid-email-blas 2. Set up the script to fetch the email list. - ```console + ```bash cd /home/freecodecamp/scripts/emails cp sample.env .env ``` @@ -947,7 +947,7 @@ Wir verwenden [ein CLI-Tool](https://github.com/freecodecamp/sendgrid-email-blas 3. Run the script. - ```console + ```bash node get-emails.js emails.csv ``` diff --git a/docs/i18n/german/how-to-add-cypress-tests.md b/docs/i18n/german/how-to-add-cypress-tests.md index 2ff7641d688..1ec2f00ea25 100644 --- a/docs/i18n/german/how-to-add-cypress-tests.md +++ b/docs/i18n/german/how-to-add-cypress-tests.md @@ -26,25 +26,25 @@ Um Tests mit Produktions-Builds durchzuführen, ersetze unten `dev` durch `prd`. - Um alle Tests im Verzeichnis `./cypress` auszuführen: - ```console + ```bash pnpm run cypress:dev:run ``` - Um einen einzelnen Test durchzuführen: - ```console + ```bash pnpm run cypress run --spec=cypress/<path_to_test_file> ``` For example: - ```console + ```bash pnpm run cypress run --spec=cypress/e2e/default/landing.ts ``` - Um einen Entwicklungs-Build zu erstellen, starte den Entwicklungsserver und führe alle vorhandenen Cypress-End-to-End-Tests aus: - ```console + ```bash pnpm run e2e:dev:run ``` @@ -57,25 +57,25 @@ If starting the Gitpod environment did not automatically develop the environment - Follow the [MongoDB installation guide](https://www.mongodb.com/basics/get-started). - Create a config file. -```console +```bash pnpm run create:shared ``` - Richte die Datenbank ein -```console +```bash pnpm run seed ``` - Entwickle den Server und den Client -```console +```bash pnpm run develop ``` ### 2. Cypress Build Tools installieren -```console +```bash pnpm run cypress:install-build-tools ``` diff --git a/docs/i18n/german/how-to-add-playwright-tests.md b/docs/i18n/german/how-to-add-playwright-tests.md index 7ff58224ee4..0f450480fea 100644 --- a/docs/i18n/german/how-to-add-playwright-tests.md +++ b/docs/i18n/german/how-to-add-playwright-tests.md @@ -4,7 +4,7 @@ To install Playwright run: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -181,49 +181,49 @@ To run tests with Playwright check the following below - Make sure you navigate to the e2e repo first - ```console + ```bash cd e2e ``` - To run tests in UI helper mode: - ```console + ```bash npx playwright test --ui ``` - To run a single test: - ```console + ```bash npx playwright test <filename> ``` For example: - ```console + ```bash npx playwright test landing-page.spec.ts ``` - Run a set of test files in respective folders: - ```console + ```bash npx playwright test <pathToFolder1> <pathToFolder2> ``` For example: - ```console + ```bash npx playwright test tests/todo-page/ tests/landing-page/ ``` - Run the test with the title: - ```console + ```bash npx playwright test -g <title> ``` For example: - ```console + ```bash npx playwright test -g "add a todo item" ``` @@ -233,13 +233,13 @@ Since Playwright runs in Node.js, you can debug it with your debugger of choice - Debugging all tests: - ```console + ```bash npx playwright test --debug ``` - Debugging one test file: - ```console + ```bash npx playwright test example.spec.ts --debug ``` @@ -247,7 +247,7 @@ Since Playwright runs in Node.js, you can debug it with your debugger of choice The HTML Reporter shows you a full report of your tests allowing you to filter the report by browsers, passed tests, failed tests, skipped tests and flaky tests. -```console +```bash npx playwright show-report ``` @@ -257,13 +257,13 @@ Playwright is generally a solid bullet-proof tool. The contributor has already c - (MacOs and Linux) If running Playwright results in an error due to kernel dependencies, run the following command: - ```console + ```bash pnpm run playwright:install-build-tools-linux ``` - A common error seen in playwright is as follows: - ```console + ```bash Error: page.goto: Could not connect: Connection refused =========================== logs =========================== navigating to "https://127.0.0.1:8000/", waiting until "load" @@ -284,7 +284,7 @@ Playwright is generally a solid bullet-proof tool. The contributor has already c - Another common error seen in playwright is as follows: - ```console + ```bash Protocol error (Network.getResponseBody): Request content was evicted from inspector cache ``` @@ -305,25 +305,25 @@ If starting the Gitpod environment did not automatically develop the environment - Create the .env - ```console + ```bash cp sample.env .env ``` - Create a config file. - ```console + ```bash pnpm run create:shared ``` - Seed the database - ```console + ```bash pnpm run seed ``` - Develop the server and client - ```console + ```bash pnpm run develop ``` @@ -331,7 +331,7 @@ If starting the Gitpod environment did not automatically develop the environment To install necessary dependencies for running Playwright run the following command: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -339,6 +339,6 @@ pnpm run playwright:install-build-tools To run all Playwright tests, run the following command: -```console +```bash npx playwright test ``` diff --git a/docs/i18n/german/how-to-contribute-to-the-codebase.md b/docs/i18n/german/how-to-contribute-to-the-codebase.md index 50284e3c089..781427597f1 100644 --- a/docs/i18n/german/how-to-contribute-to-the-codebase.md +++ b/docs/i18n/german/how-to-contribute-to-the-codebase.md @@ -10,13 +10,13 @@ Follow these steps: 1. Validate that you are on the `main` branch: - ```console + ```bash git status ``` You should get an output like this: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -25,7 +25,7 @@ Follow these steps: If you got a different message, then you aren't on main or your working directory isn't clean, resolve any outstanding files/commits and checkout `main`: - ```console + ```bash git checkout main ``` @@ -39,25 +39,25 @@ Follow these steps: Update your copy of the freeCodeCamp upstream repository: - ```console + ```bash git fetch upstream ``` Hard reset your main branch with the freeCodeCamp main: - ```console + ```bash git reset --hard upstream/main ``` Push your main branch to your origin to have a clean history on your fork on GitHub: - ```console + ```bash git push origin main --force ``` You can validate that your current main matches the upstream/main by performing a diff: - ```console + ```bash git diff upstream/main ``` @@ -69,7 +69,7 @@ Follow these steps: Check that you are on `main` as explained previously, and branch off from there: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -93,13 +93,13 @@ Follow these steps: 7. Check and confirm the files you are updating: - ```console + ```bash git status ``` This should show a list of `unstaged` files that you have edited. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -118,25 +118,25 @@ Follow these steps: In this step, you should only mark files that you have edited or added yourself. You can perform a reset and resolve files that you did not intend to change if needed. - ```console + ```bash git add path/to/my/changed/file.ext ``` Or you can add all the `unstaged` files to the staging area: - ```console + ```bash git add . ``` Only the files that were moved to the staging area will be added when you make a commit. - ```console + ```bash git status ``` Output: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -151,7 +151,7 @@ Follow these steps: Now, you can commit your changes with a short message like so: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -181,7 +181,7 @@ Follow these steps: 9. If you realize that you need to edit a file or update the commit message after making a commit you can do so after editing the files with: - ```console + ```bash git commit --amend ``` @@ -189,7 +189,7 @@ Follow these steps: 10. Next, you can push your changes to your fork: - ```console + ```bash git push origin branch/name-here ``` diff --git a/docs/i18n/german/how-to-open-a-pull-request.md b/docs/i18n/german/how-to-open-a-pull-request.md index f3cb9a40565..c18bec158f4 100644 --- a/docs/i18n/german/how-to-open-a-pull-request.md +++ b/docs/i18n/german/how-to-open-a-pull-request.md @@ -115,14 +115,14 @@ Wenn du an regulären Bugs und Features auf unserem Entwicklungszweig `main` arb 1. Rebase deiner lokalen Kopie: - ```console + ```bash git checkout <pr-branch> git pull --rebase upstream main ``` 2. Löse alle Konflikte und füge Commits hinzu / bzw. bearbeite sie - ```console + ```bash # Entweder git add . git commit -m "chore: resolve conflicts" @@ -134,7 +134,7 @@ Wenn du an regulären Bugs und Features auf unserem Entwicklungszweig `main` arb 3. Schiebe deine Änderungen in den PR zurück - ```console + ```bash git push --force origin <pr-branch> ``` @@ -144,7 +144,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, 1. Achte darauf, dass dein Upstream mit deinem Local übereinstimmt: - ```console + ```bash git checkout main git fetch --all --prune git checkout next-python-projects @@ -155,7 +155,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, a. Entweder löschst du deinen lokalen Branch, nachdem du ein Backup gemacht hast (wenn du ihn noch lokal hast): - ```console + ```bash git checkout <pr-branch-name> # Beispiel: @@ -171,7 +171,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, b. Or just a backup of your PR branch (if you do not have it locally): - ```console + ```bash git checkout -b <backup-branch-name> origin/<pr-branch-name> # Beispiel: @@ -180,14 +180,14 @@ When you are working on features for our upcoming curriculum `next-*` branches, 3. Beginne mit einer weißen Weste: - ```console + ```bash git checkout -b <pr-branch-name> next-python-projects git cherry-pick <commit-hash> ``` 4. Resolve any conflicts, cleanup, and install dependencies and run tests - ```console + ```bash pnpm run clean pnpm install @@ -201,6 +201,6 @@ When you are working on features for our upcoming curriculum `next-*` branches, 5. If everything looks good, push back to the PR - ```console + ```bash git push --force origin <pr-branch-name> ``` diff --git a/docs/i18n/german/how-to-setup-freecodecamp-locally.md b/docs/i18n/german/how-to-setup-freecodecamp-locally.md index 17f789f7e78..8fd90b1a07b 100644 --- a/docs/i18n/german/how-to-setup-freecodecamp-locally.md +++ b/docs/i18n/german/how-to-setup-freecodecamp-locally.md @@ -75,7 +75,7 @@ We primarily support development on Linux and Unix-based systems like Ubuntu and If Node.js is already installed on your machine, run the following commands to validate the versions: -```console +```bash node -v pnpm -v ``` @@ -142,7 +142,7 @@ Run these commands on your local machine: 2. Clone your fork of freeCodeCamp, replacing `YOUR_USER_NAME` with your GitHub Username - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git ``` @@ -160,25 +160,25 @@ You need a reference from your local clone to the `upstream` repository in addit 1. Change the directory to the new freeCodeCamp directory: - ```console + ```bash cd freeCodeCamp ``` 2. Add a remote reference to the main freeCodeCamp repository: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git ``` 3. Ensure the configuration looks correct: - ```console + ```bash git remote -v ``` The output should look something like below (replacing `YOUR_USER_NAME` with your GitHub username): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch) origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push) upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch) @@ -203,12 +203,12 @@ And as always, feel free to ask questions on the ['Contributors' category on our The default API keys and environment variables are stored in the file `sample.env`. This file needs to be copied to a new file named `.env` that is accessed dynamically during the installation step. -```console +```bash # Erstelle eine Kopie der "sample.env" und nenne sie ".env". # Populate it with the necessary API keys and secrets ``` -```console +```bash cp sample.env .env ``` @@ -220,7 +220,7 @@ The keys in the `.env` file are _not_ required to be changed to run the app loca This step will install the dependencies required for the application to run: -```console +```bash pnpm install && pnpm run create:shared ``` @@ -234,7 +234,7 @@ Before you can run the application locally, you will need to start the MongoDB s Start the MongoDB server in a separate terminal: -```console +```bash mongod ``` @@ -242,15 +242,14 @@ mongod Next, let's seed the database. In this step, we run the below command that fills the MongoDB server with some initial data sets that are required by services. These include a few schemas, among other things. -```console +```bash pnpm run seed ``` By default, you will be signed in as a new user without any completed certifications. Run the following commands if you need to develop with completed certifications: -```console +```bash pnpm run seed:certified-user -pnpm run seed:exams ``` > [!WARNING] Running `pnpm run seed:certified-user` will log you out. You will have to clear your browser cookies and sign in again. @@ -259,7 +258,7 @@ pnpm run seed:exams You can now start up the API server and the client applications. -```console +```bash pnpm run develop ``` @@ -279,11 +278,12 @@ If you have issues while installing it, check out the [troubleshooting section]( A quick reference to the commands that you will need when working locally. -| command | description | -| ------------------------------ | ------------------------------------------------------------------------------------------------- | -| `pnpm install` | Installs / re-installs all dependencies and bootstraps the different services. | -| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. | -| `pnpm run seed:certified-user` | Creates authorized test users with certifications fully completed, and inserts them into MongoDB. | -| `pnpm run seed:exams` | Creates exams and inserts them into MongoDB. | -| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | -| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | +| command | description | +| ------------------------------ | ------------------------------------------------------------------------------------------------------------- | +| `pnpm install` | Installs / re-installs all dependencies and bootstraps the different services. | +| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. Also runs `seed:exams` and `seed:surveys` below. | +| `pnpm run seed:certified-user` | Creates authorized test users with certifications fully completed, and inserts them into MongoDB. | +| `pnpm run seed:exams` | Creates exams and inserts them into MongoDB. | +| `pnpm run seed:surveys` | Creates surveys for defaults users and inserts them into MongoDB. | +| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | +| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | diff --git a/docs/i18n/german/how-to-setup-freecodecamp-mobile-app-locally.md b/docs/i18n/german/how-to-setup-freecodecamp-mobile-app-locally.md index 416b85b7f28..c99c5907181 100644 --- a/docs/i18n/german/how-to-setup-freecodecamp-mobile-app-locally.md +++ b/docs/i18n/german/how-to-setup-freecodecamp-mobile-app-locally.md @@ -17,7 +17,7 @@ Installiere zunächst die erforderliche Software für dein Betriebssystem. Wenn Flutter bereits auf deinem Rechner installiert ist, führe die folgenden Befehle aus, um die Versionen zu überprüfen: -```console +```bash flutter --version dart --version ``` @@ -70,7 +70,7 @@ Führe diese Befehle auf deinem lokalen Rechner aus: 2. Klone deinen Fork von freeCodeCamp und ersetze `YOUR_USER_NAME` durch deinen GitHub Benutzernamen - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/mobile.git ``` @@ -88,25 +88,25 @@ Du benötigst eine Referenz von deinem lokalen Klon auf das `upstream`-Repositor 1. Wechsle in das neue `mobile`-Verzeichnis: - ```console + ```bash cd mobile ``` 2. Füge eine Remote-Referenz zum Haupt-Repository von freeCodeCamp mobile hinzu: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/mobile.git ``` 3. Stelle sicher, dass die Konfiguration korrekt aussieht: - ```console + ```bash git remote -v ``` Die Ausgabe sollte in etwas so aussehen wie unten (ersetze `YOUR_USER_NAME` durch deinen GitHub Benutzernamen): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/mobile.git (fetch) origin https://github.com/YOUR_USER_NAME/mobile.git (push) upstream https://github.com/freeCodeCamp/mobile.git (fetch) @@ -129,20 +129,20 @@ Und wie immer kannst du Fragen in der [Kategorie 'Contributors' in unserem Forum Die Standard-API-Schlüssel und Umgebungsvariablen sind in der Datei `sample.env` gespeichert. This file needs to be copied to a new file named `.env` which is accessed dynamically during the installation step. Denke daran, das Verzeichnis in `mobile-app` zu ändern, bevor du die folgenden Befehle ausführst. -```console +```bash # Erstelle eine Kopie der "sample.env" und benenne sie ".env". # Trage die notwendigen API-Schlüssel und Secrets in die Datei ein: ``` #### **macOS/Linux** -```console +```bash cp sample.env .env ``` #### **Windows** -```console +```bash copy sample.env .env ``` @@ -152,7 +152,7 @@ Die Schlüssel in der `.env` Datei müssen _nicht_ geändert werden, um die App In diesem Schritt werden die für die Ausführung der Anwendung erforderlichen Abhängigkeiten installiert: -```console +```bash flutter pub get ``` @@ -162,7 +162,7 @@ Starte den Emulator deiner Wahl (Android oder iOS) und warte, bis der Startvorga Du kannst die App nun mit folgendem Befehl starten: -```console +```bash flutter run ``` @@ -176,13 +176,13 @@ Folge diesen Schritten: 1. Überprüfe, ob du dich auf dem `main`-Branch befindest: - ```console + ```bash git status ``` Du solltest eine Ausgabe wie diese erhalten: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -191,7 +191,7 @@ Folge diesen Schritten: Wenn du nicht auf main bist oder dein Arbeitsverzeichnis nicht bereinigt ist, löse alle ausstehenden Dateien/Commits auf und checke `main` aus: - ```console + ```bash git checkout main ``` @@ -205,25 +205,25 @@ Folge diesen Schritten: Aktualisiere deine lokale Kopie des freeCodeCamp mobile Upstream-Repository: - ```console + ```bash git fetch upstream ``` Führe einen Hard Reset deines Hauptzweiges mit dem freeCodeCamp mobile main durch: - ```console + ```bash git reset --hard upstream/main ``` Schiebe deinen Hauptbranch in deinen origin, um einen sauberen Verlauf deines Forks auf GitHub zu haben: - ```console + ```bash git push origin main --force ``` You can validate that your current main matches the upstream/main by performing a diff: - ```console + ```bash git diff upstream/main ``` @@ -235,7 +235,7 @@ Folge diesen Schritten: Vergewissere dich, dass du auf `main` bist, wie zuvor erklärt, und zweige von dort ab: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -259,13 +259,13 @@ Folge diesen Schritten: 7. Überprüfe und bestätige die Dateien, die du aktualisierst: - ```console + ```bash git status ``` Dies sollte eine Liste `unstaged`-Dateien anzeigen, die du verändert hast. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -282,25 +282,25 @@ Folge diesen Schritten: In diesem Schritt solltest du nur Dateien markieren, die du selbst bearbeitet oder hinzugefügt hast. Bei Bedarf kannst du einen Reset durchführen und Dateien lösen, die du nicht ändern wolltest. - ```console + ```bash git add path/to/my/changed/file.ext ``` Oder du kannst alle `unstaged`-Dateien zum Staging-Bereich hinzufügen: - ```console + ```bash git add . ``` Nur die Dateien, die in den Staging-Bereich verschoben wurden, werden hinzugefügt, wenn du einen Commit durchführst. - ```console + ```bash git status ``` Ausgabe: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -313,7 +313,7 @@ Folge diesen Schritten: Jetzt kannst du deine Änderungen mit einer kurzen Nachricht wie dieser übertragen: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -345,7 +345,7 @@ Folge diesen Schritten: 9. Wenn du feststellst, dass du eine Datei bearbeiten oder die Commit-Nachricht aktualisieren musst, nachdem du einen Commit gemacht hast, kannst du das nach der Bearbeitung der Dateien wie folgt tun: - ```console + ```bash git commit --amend ``` @@ -353,7 +353,7 @@ Folge diesen Schritten: 10. Als nächstes kannst du deine Änderungen in deinen Fork schieben: - ```console + ```bash git push origin branch/name-here ``` @@ -363,14 +363,14 @@ Folge diesen Schritten: 1. Clone a copy of the [freeCodeCamp repo](https://github.com/freeCodeCamp/freeCodeCamp) locally outside of your local copy of the freeCodeCamp mobile repo. Your folder structure should look like this: - ```console + ```bash ├── freeCodeCamp ├── mobile ``` 2. Change the directory to the freeCodeCamp repo: - ```console + ```bash cd freeCodeCamp ``` @@ -378,25 +378,25 @@ Folge diesen Schritten: #### **macOS/Linux** - ```console + ```bash cp sample.env .env ``` #### **Windows** - ```console + ```bash copy sample.env .env ``` 4. Install the dependencies for the freeCodeCamp repo: - ```console + ```bash pnpm install && pnpm run create:shared ``` 5. Generate the challenge data JSON file: - ```console + ```bash pnpm run build:curriculum ``` @@ -404,54 +404,54 @@ Folge diesen Schritten: #### **macOS/Linux** - ```console + ```bash cp ./shared/config/curriculum.json ../mobile/mobile-app/curriculum.json ``` #### **Windows** - ```console + ```bash copy .\shared\config\curriculum.json ..\mobile\mobile-app\curriculum.json ``` 7. Change directory to the mobile app: - ```console + ```bash cd ../mobile/mobile-app ``` 8. Install the dependencies for the mobile app: - ```console + ```bash flutter pub get ``` 9. Update the test file to use the challenge data JSON file: - ```console + ```bash sed -i '' 's/..\/..\/shared\/config\/curriculum.json/.\/curriculum.json/g' test/widget_test.dart ``` 10. Generate the challenge files: - ```console + ```bash flutter test test/widget_test.dart ``` 11. Start a local server to serve the challenge files with the help of `serve` package: - ```console + ```bash npx serve ``` 12. In a different terminal go back to the freeCodeCamp repo: - ```console + ```bash cd ../../freeCodeCamp ``` 13. Run the cypress tests: - ```console + ```bash pnpm cypress run --config retries=1,screenshotOnRunFailure=false,video=false,baseUrl=http://localhost:3000/generated-tests/,specPattern=cypress/e2e/mobile-learn/test-challenges.js -s cypress/e2e/mobile-learn/test-challenges.js -b chrome ``` @@ -482,7 +482,7 @@ Wenn du mit einem anderen Betriebssystem arbeitest und/oder immer noch Probleme If you face issues with the UI, or build errors a cleanup can be useful: -```console +```bash flutter clean ``` diff --git a/docs/i18n/german/how-to-setup-wsl.md b/docs/i18n/german/how-to-setup-wsl.md index 043ac27c754..6e1e6a38eb3 100644 --- a/docs/i18n/german/how-to-setup-wsl.md +++ b/docs/i18n/german/how-to-setup-wsl.md @@ -10,7 +10,7 @@ Dieser Leitfaden behandelt einige allgemeine Schritte bei der Einrichtung von WS ## WSL aktivieren -Folge den Anweisungen in der [offiziellen Dokumentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10), um WSL1 zu installieren und anschließend auf WSL2 zu aktualisieren. +Follow the instructions on the [official documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL2. ## Ubuntu installieren @@ -20,9 +20,11 @@ Folge den Anweisungen in der [offiziellen Dokumentation](https://docs.microsoft. > > While you may use other non-Debian-based distributions, they all come with their own 'gotchas' that are beyond the scope of this guide. + As of November 2023, Ubuntu and Debian are the only Linux distributions [officially supported by Playwright](https://playwright.dev/docs/intro#system-requirements), the end-to-end testing library used by freeCodeCamp. + 2. Abhängigkeiten (Dependencies) für das Betriebssystem aktualisieren - ```console + ```bash sudo apt update sudo apt upgrade -y @@ -70,23 +72,23 @@ Dadurch laufen die Container auf der WSL-Seite und nicht unter Windows. Du kanns Sobald du Docker Desktop für die Zusammenarbeit mit WSL2 konfiguriert hast, befolge diese Schritte, um einen MongoDB-Dienst zu starten: -1. Starte ein neues Ubuntu-18.04 Terminal +1. Launch a new Ubuntu terminal -2. Pull `MongoDB 4.0.x` from Docker Hub +2. Pull MongoDB from Docker Hub. Please refer to the [Prerequisites](how-to-setup-freecodecamp-locally.md#Prerequisites) table for the current version of MongoDB used by freeCodeCamp. For example, if the version number is `5.0.x`, replace `<x.y>` with `5.0` in the following two code snippets. - ```console - docker pull mongo:4.0 + ```bash + docker pull mongo:<x.y> ``` 3. Starte den MongoDB-Dienst an Port `27017` und konfiguriere ihn so, dass er bei Systemneustarts automatisch ausgeführt wird - ```console + ```bash docker run -it \ -v mongodata:/data/db \ -p 27017:27017 \ --name mongodb \ --restart unless-stopped \ - -d mongo:4.0 + -d mongo:<x.y> ``` 4. Du kannst jetzt sowohl von Windows als auch von Ubuntu aus auf den Dienst unter `mongodb://localhost:27017` zugreifen. @@ -95,25 +97,17 @@ Sobald du Docker Desktop für die Zusammenarbeit mit WSL2 konfiguriert hast, bef Wir empfehlen dir, die LTS-Version für Node.js mit einem Node-Versionsmanager zu installieren - [nvm](https://github.com/nvm-sh/nvm#installing-and-updating). -Nach der Installation kannst du mit den folgenden Befehlen die Node.js-Version installieren und verwenden, falls nötig +Once installed use this command to install and use the latest Node.js LTS version: -```console +```bash nvm install --lts - -# OR -# nvm install <version> - -nvm install 14 - -# Usage -# nvm use <version> - -nvm use 12 ``` +For instructions on installing and using a different version of Node.js, please refer to the [nvm docs](https://github.com/nvm-sh/nvm#usage). + Node.js comes bundled with `npm`, which you can use to install `pnpm`: -```console +```bash npm install -g pnpm ``` @@ -125,7 +119,104 @@ Now that you have installed the pre-requisites, follow [our local setup guide](h > > Please note, at this time the setup for Cypress tests (and related GUI needs) is a work in progress. Du solltest immer noch in der Lage sein, an den meisten Teilen der Codebasis zu arbeiten. -## Nützliche Links +## Optimize Windows and WSL + + > [!NOTE] + > + > The following tips were collected from across the web and have not gone through vigorous testing. Your mileage may vary. + +### Adjust processer scheduling for background services + +This may reduce incidents of Docker containers crashing due to lack of resources. + +Open the System Properties control panel by pressing <kbd>Win + R</kbd> and entering `sysdm.cpl` + +<details> + <summary> + Enter <code>sysdm.cpl</code> in the Run dialog (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/run-sysdm.png" alt="Enter `sysdm.cpl` in the Run dialog" /> +</details> +<br> + +Go to Advanced -> Performance -> Settings… + +<details> + <summary> + Performance Settings button under Advanced tab in System Properties (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-performance-settings.png" alt="Performance Settings button under Advanced tab in System Properties" /> +</details> +<br> + +Under Advanced -> Processor scheduling, choose "Background services". Do not close the window. Continue to the next tip. + +<details> + <summary> + Background services radio button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/background-services.png" alt="Background services radio button under Advanced tab in Performance Options" /> +</details> + +### Increase the size of Windows paging file for the system drive + +Under Advanced -> Virtual memory, click "Change…" + +<details> + <summary> + Change virtual memory button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-virtual-memory.png" alt="Change virtual memory button under Advanced tab in Performance Options" /> +</details> +<br> + +Choose "Custom size". Set the initial size to 1.5x and the maximum size to 3x of your physical memory. Then click "Set". + +<details> + <summary> + Set custom size button in Virtual Memory window (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/set-custom-size.png" alt="Set custom size button in Virtual Memory window" /> +</details> + +### Increase the size of memory allocated to WSL + +Create a [`.wslconfig` file](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) in your [`%UserProfile%` directory](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#wslconfig) (typically `C:\Users\<UserName>\.wslconfig`). Please read the [WSL documentation](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) carefully and replace `x` with values that suit your own needs: + +```ini +# Settings apply across all Linux distros running on WSL 2 +[wsl2] + +# How much memory to assign to the WSL 2 VM. The default value might not be enough +memory=xGB + +# How much swap space to add to the WSL 2 VM, default is 25% of available RAM +swap=xGB +``` + +### Increase Node.js max old space size + +This fixes the ["JavaScript heap out of memory" error](https://stackoverflow.com/a/54456814) with ESLint. Add the following to your `~/.bashrc` or `~/.zshrc`: + +```sh +export NODE_OPTIONS="--max-old-space-size=4096" +``` + +### Avoid `pnpm run test` + +Instead, use the script [appropriate to your PR](https://forum.freecodecamp.org/t/wsl-performance-issues-while-working-on-the-codebase/644215/2#:~:text=usually%2C%20you%20just%20want%20to%20test%20something%20specific%20to%20either%20the%20curriculum%20or%20the%20client%20or%20the%20api%20-%20almost%20never%20all%203.); either `pnpm run test:api`, `pnpm run test:curriculum`, or `pnpm run test-client`. + +## Useful Links - [A WSL2 Dev Setup with Ubuntu 20.04, Node.js, MongoDB, VS Code, and Docker](https://hn.mrugesh.dev/wsl2-dev-setup-with-ubuntu-nodejs-mongodb-and-docker) - an article by Mrugesh Mohapatra (Staff Developer at freeCodeCamp.org) - Häufig gestellte Fragen zu: diff --git a/docs/i18n/german/how-to-work-on-coding-challenges.md b/docs/i18n/german/how-to-work-on-coding-challenges.md index 5f6e6ef4a8e..b07219b9901 100644 --- a/docs/i18n/german/how-to-work-on-coding-challenges.md +++ b/docs/i18n/german/how-to-work-on-coding-challenges.md @@ -232,6 +232,8 @@ Sentences should be clear and concise with minimal jargon. If used, jargon shoul Keep paragraphs short (around 1-4 sentences). People are more likely to read several short paragraphs than a wall of text. +Use american english, e.g., use `labeled` instead of `labelled`. + Challenge text should use the second person ("you") to help to give it a conversational tone. This way the text and instructions seem to speak directly to the camper working through the challenge. Try to avoid using the first person ("I", "we", "let's", and "us"). Don't use outbound links. These interrupt the flow. Campers should never have to google anything during these challenges. If there are resources you think campers would benefit from, add them to the challenge's Guide-related article. @@ -306,7 +308,7 @@ Aufgaben sollten so viele Tests enthalten, wie nötig sind, um zu überprüfen, Unser Ziel ist es, den einzelnen Aspekt der Aufgabe zu vermitteln und zu prüfen, ob die Teilnehmer/innen diesen Aspekt verstanden haben. -Aufgabentests können die Assertion-Bibliotheken von Node.js und Chai.js nutzen. Außerdem kann bei Bedarf auf den vom Benutzer erstellten Code in der Variable `code` zugegriffen werden. Zusätzlich stellt das Objekt `__helpers` mehrere Funktionen zur Verfügung, die das Schreiben von Tests vereinfachen. Die verfügbaren Funktionen sind in _client/src/utils/curriculum-helpers.ts_ definiert. +Aufgabentests können die Assertion-Bibliotheken von Node.js und Chai.js nutzen. Außerdem kann bei Bedarf auf den vom Benutzer erstellten Code in der Variable `code` zugegriffen werden. Zusätzlich stellt das Objekt `__helpers` mehrere Funktionen zur Verfügung, die das Schreiben von Tests vereinfachen. The available functions are defined in the [curriculum-helpers](https://github.com/freeCodeCamp/curriculum-helpers/blob/main/lib/index.ts) repo. ## Formatting Seed Code diff --git a/docs/i18n/german/how-to-work-on-localized-client-webapp.md b/docs/i18n/german/how-to-work-on-localized-client-webapp.md index 1205002cfac..2d992ee4852 100644 --- a/docs/i18n/german/how-to-work-on-localized-client-webapp.md +++ b/docs/i18n/german/how-to-work-on-localized-client-webapp.md @@ -16,7 +16,7 @@ Wir wollen verstehen, wie die i18n-Frameworks und -Werkzeuge funktionieren. Most of the files for translating the platform are located in the [`client/i18n`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n) folder. Each language has a directory that contains JSON files with the translations. -```console +```bash config └── i18n.ts ... diff --git a/docs/i18n/german/how-to-work-on-the-docs-theme.md b/docs/i18n/german/how-to-work-on-the-docs-theme.md index 0e3c5c2d472..a1089489d29 100644 --- a/docs/i18n/german/how-to-work-on-the-docs-theme.md +++ b/docs/i18n/german/how-to-work-on-the-docs-theme.md @@ -47,7 +47,7 @@ Typically you would not need to change any configuration or build the site local Install freeCodeCamp locally ([see the local setup guide](how-to-setup-freecodecamp-locally)), we bundled the CLI with the development tools so you can run the command below as needed from the root of the repo: -```console +```bash pnpm run docs:serve ``` diff --git a/docs/i18n/german/troubleshooting-development-issues.md b/docs/i18n/german/troubleshooting-development-issues.md index 962fd04362c..e368b7c331e 100644 --- a/docs/i18n/german/troubleshooting-development-issues.md +++ b/docs/i18n/german/troubleshooting-development-issues.md @@ -16,7 +16,7 @@ If you are on a different OS or are still facing issues, see [getting help](#get When you build the client, Gatsby will cache the Fonts, language strings, and UI. If one of them isn't cached, run the following: -```console +```bash pnpm run clean pnpm install pnpm run seed @@ -53,7 +53,7 @@ git clean -ifdX If you can't sign in, and instead you see a banner with an error message saying that the error will be reported to freeCodeCamp, please double-check that your local port `3000` is not in use by a different program. #### **From Terminal:** -```console +```bash netstat -a | grep "3000" tcp4 0 0 0.0.0.0:3000 DESKTOP LISTEN diff --git a/docs/i18n/italian/devops.md b/docs/i18n/italian/devops.md index af05dbef800..c9db27c468f 100644 --- a/docs/i18n/italian/devops.md +++ b/docs/i18n/italian/devops.md @@ -303,19 +303,19 @@ Dovresti tenere aggiornate le VM eseguendo update e upgrade. This will ensure th Aggiorna informazioni sul pacchetto -```console +```bash sudo apt update ``` Aggiorna i pacchetti installati -```console +```bash sudo apt upgrade -y ``` Pulisci i pacchetti inutilizzati -```console +```bash sudo apt autoremove -y ``` @@ -331,7 +331,7 @@ Provisioning delle VM con il codice 1. Installa NGINX e configuralo dal repository. - ```console + ```bash sudo su cd /var/www/html @@ -352,7 +352,7 @@ Provisioning delle VM con il codice Sposta i certificati esistenti: - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -364,7 +364,7 @@ Provisioning delle VM con il codice Aggiorna le configurazioni di upstream: - ```console + ```bash vi configs/upstreams.conf ``` @@ -382,7 +382,7 @@ Provisioning delle VM con il codice 1. Controlla lo stato dei servizi NGINX usando i comandi seguenti: - ```console + ```bash sudo systemctl status nginx ``` @@ -396,13 +396,13 @@ Le modifiche di configurazione alle nostre istanze NGINX sono mantenute su GitHu 1. SSH nell'istanza e inserisci sudo -```console +```bash sudo su ``` 2. Ottieni l'ultimo codice di configurazione. -```console +```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -410,7 +410,7 @@ git reset --hard origin/main 3. Prova e ricarica la configurazione [con i segnali](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). -```console +```bash nginx -t nginx -s reload ``` @@ -419,7 +419,7 @@ nginx -s reload 1. Installa strumenti di generazione per i binari di node (`node-gyp`) ecc. -```console +```bash sudo apt install build-essential ``` @@ -431,19 +431,19 @@ Fare il provisioning delle VM con il codice 2. Install pnpm globally. -```console +```bash npm install -g pnpm ``` 3. Install pm2 globally. -```console +```bash npm install -g pm2 ``` 4. Clone freeCodeCamp, set up env, and keys. -```console +```bash git clone https://github.com/freeCodeCamp/freeCodeCamp.git cd freeCodeCamp git checkout prod-current # or any other branch to be deployed @@ -453,36 +453,36 @@ git checkout prod-current # or any other branch to be deployed 6. Install dependencies -```console +```bash pnpm install ``` 7. Setup pm2 `logrotate` and startup on boot -```console +```bash pm2 install pm2-logrotate pm2 startup ``` 8. Build the server -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 9. Start Instances -```console +```bash pnpm start:server ``` ### Aggiornamento Istanze (Manutenzione) -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -496,31 +496,31 @@ Ogni tanto devono essere fatti dei deployment dei cambiamenti al codice alle ist 1. Stop all instances -```console +```bash pm2 stop all ``` 2. Install dependencies -```console +```bash pnpm install ``` 3. Build the server -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 4. Start Instances -```console +```bash pnpm start:server && pm2 logs ``` #### 2. Rolling updates - Used for logical changes to code. -```console +```bash pnpm reload:server && pm2 logs ``` @@ -532,7 +532,7 @@ pnpm reload:server && pm2 logs 2. Update pm2 to use the new version -```console +```bash pm2 update ``` @@ -540,7 +540,7 @@ pm2 update 1. Install build tools for node binaries (`node-gyp`) etc. -```console +```bash sudo apt install build-essential ``` @@ -552,7 +552,7 @@ Fare provisioning delle VM con il codice 2. Update `npm` and install PM2 and setup `logrotate` and startup on boot - ```console + ```bash npm i -g npm@8 npm i -g pm2@4 npm install -g serve@13 @@ -562,7 +562,7 @@ Fare provisioning delle VM con il codice 3. Clone client config, setup env and keys. - ```console + ```bash git clone https://github.com/freeCodeCamp/client-config.git client cd client ``` @@ -571,7 +571,7 @@ Fare provisioning delle VM con il codice > Todo: This setup needs to move to S3 or Azure Blob storage > - > ```console + > ```bash > echo "serve -c ../serve.json -p 50505 www" > client-start-primary.sh > chmod +x client-start-primary.sh > pm2 delete client-primary @@ -584,11 +584,11 @@ Fare provisioning delle VM con il codice ### Logging e monitoraggio -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -602,7 +602,7 @@ Ogni tanto devono essere fatti dei deployment dei cambiamenti al codice alle ist 1. Stop all instances - ```console + ```bash pm2 stop all ``` @@ -610,13 +610,13 @@ Ogni tanto devono essere fatti dei deployment dei cambiamenti al codice alle ist 3. Start Instances - ```console + ```bash pm2 start all --update-env && pm2 logs ``` #### 2. Aggiornamenti continui - usati per cambiamenti logici al codice. -```console +```bash pm2 reload all --update-env && pm2 logs ``` @@ -636,7 +636,7 @@ Fare provisioning delle VM con il codice 1. Install NGINX and configure from repository. - ```console + ```bash sudo su cd /var/www/html @@ -657,7 +657,7 @@ Fare provisioning delle VM con il codice Move over existing certificates: - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -669,7 +669,7 @@ Fare provisioning delle VM con il codice Update Upstream Configurations: - ```console + ```bash vi configs/upstreams.conf ``` @@ -687,7 +687,7 @@ Fare provisioning delle VM con il codice 1. Install Docker and configure from the repository - ```console + ```bash git clone https://github.com/freeCodeCamp/chat-config.git chat cd chat ``` @@ -696,7 +696,7 @@ Fare provisioning delle VM con il codice 3. Run rocket-chat server - ```console + ```bash docker-compose config docker-compose up -d ``` @@ -705,13 +705,13 @@ Fare provisioning delle VM con il codice 1. Check status for NGINX service using the below command: - ```console + ```bash sudo systemctl status nginx ``` 2. Check status for running docker instances with: - ```console + ```bash docker ps ``` @@ -723,13 +723,13 @@ Le modifiche di configurazione alle nostre istanze NGINX sono mantenute su GitHu 1. SSH into the instance and enter sudo - ```console + ```bash sudo su ``` 2. Get the latest config code. - ```console + ```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -737,7 +737,7 @@ Le modifiche di configurazione alle nostre istanze NGINX sono mantenute su GitHu 3. Test and reload the config [with Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). - ```console + ```bash nginx -t nginx -s reload ``` @@ -746,44 +746,44 @@ Le modifiche di configurazione alle nostre istanze NGINX sono mantenute su GitHu 1. SSH into the instance and navigate to the chat config path - ```console + ```bash cd ~/chat ``` 2. Get the latest config code. - ```console + ```bash git fetch --all --prune git reset --hard origin/main ``` 3. Pull down the latest docker image for Rocket.Chat - ```console + ```bash docker-compose pull ``` 4. Update the running instances - ```console + ```bash docker-compose up -d ``` 5. Validate the instances are up - ```console + ```bash docker ps ``` 6. Cleanup extraneous resources - ```console + ```bash docker system prune --volumes ``` Output: - ```console + ```bash WARNING! This will remove: - all stopped containers - all networks not used by at least one container @@ -802,7 +802,7 @@ Le modifiche di configurazione alle nostre istanze NGINX sono mantenute su GitHu Fai ssh nella VM (hosted su Digital Ocean). -```console +```bash cd tools git pull origin master pnpm install @@ -814,7 +814,7 @@ pm2 restart contribute-app Visualizza le versioni installate di node & npm -```console +```bash nvm -v node -v npm -v @@ -824,25 +824,25 @@ nvm ls Installa l'ultima versione di Node.js LTC, e reinstalla i pacchetti globali -```console +```bash nvm install --lts --reinstall-packages-from=default ``` Verifica i pacchetti installati -```console +```bash npm ls -g --depth=0 ``` Alias the `default` Node.js version to the current LTS (pinned to the latest major version) -```console +```bash nvm alias default 16 ``` (Facoltativo) Disinstalla vecchie versioni -```console +```bash nvm uninstall <version> ``` @@ -852,31 +852,31 @@ nvm uninstall <version> Ottieni le istruzioni/comandi di deinstallazione con il comando `unstartup` e usa l'output per rimuovere i servizi systemctl -```console +```bash pm2 unstartup ``` Ottieni le istruzioni/comandi di installazione con il comando `startup` e usa l'output per aggiungere i servizi systemctl -```console +```bash pm2 startup ``` Comandi veloci per PM2 per elencare, far ripartire processi salvati, ecc. -```console +```bash pm2 ls ``` -```console +```bash pm2 resurrect ``` -```console +```bash pm2 save ``` -```console +```bash pm2 logs ``` @@ -898,32 +898,32 @@ Attualmente aggiornare gli agent richiede che siano rimossi e riconfigurati. Que 1. Navigate and check status of the service - ```console + ```bash cd ~/azagent sudo ./svc.sh status ``` 2. Stop the service - ```console + ```bash sudo ./svc.sh stop ``` 3. Uninstall the service - ```console + ```bash sudo ./svc.sh uninstall ``` 4. Remove the agent from the pipeline pool - ```console + ```bash ./config.sh remove ``` 5. Remove the config files - ```console + ```bash cd ~ rm -rf ~/azagent ``` @@ -938,7 +938,7 @@ Usiamo uno [strumento CLI](https://github.com/freecodecamp/sendgrid-email-blast) 2. Set up the script to fetch the email list. - ```console + ```bash cd /home/freecodecamp/scripts/emails cp sample.env .env ``` @@ -947,7 +947,7 @@ Usiamo uno [strumento CLI](https://github.com/freecodecamp/sendgrid-email-blast) 3. Run the script. - ```console + ```bash node get-emails.js emails.csv ``` diff --git a/docs/i18n/italian/how-to-add-cypress-tests.md b/docs/i18n/italian/how-to-add-cypress-tests.md index c105c95c917..d54a8c65046 100644 --- a/docs/i18n/italian/how-to-add-cypress-tests.md +++ b/docs/i18n/italian/how-to-add-cypress-tests.md @@ -26,25 +26,25 @@ Per eseguire i test su build di produzione, sostituisci `dev` con `prd` nella pa - Per eseguire tutti i test nella cartella `./cypress`: - ```console + ```bash pnpm run cypress:dev:run ``` - Per eseguire un singolo test: - ```console + ```bash pnpm run cypress run --spec=cypress/<path_to_test_file> ``` Ad esempio: - ```console + ```bash pnpm run cypress run --spec=cypress/e2e/default/landing.ts ``` - Per creare una build di sviluppo, avvia il server di sviluppo e esegui tutti i test cypress end-to-end esistenti: - ```console + ```bash pnpm run e2e:dev:run ``` @@ -57,25 +57,25 @@ If starting the Gitpod environment did not automatically develop the environment - Follow the [MongoDB installation guide](https://www.mongodb.com/basics/get-started). - Create a config file. -```console +```bash pnpm run create:shared ``` - Fai il seed del database -```console +```bash pnpm run seed ``` - Sviluppa il server e il client -```console +```bash pnpm run develop ``` ### 2. Installa Cypress Build Tools -```console +```bash pnpm run cypress:install-build-tools ``` diff --git a/docs/i18n/italian/how-to-add-playwright-tests.md b/docs/i18n/italian/how-to-add-playwright-tests.md index 7ff58224ee4..0f450480fea 100644 --- a/docs/i18n/italian/how-to-add-playwright-tests.md +++ b/docs/i18n/italian/how-to-add-playwright-tests.md @@ -4,7 +4,7 @@ To install Playwright run: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -181,49 +181,49 @@ To run tests with Playwright check the following below - Make sure you navigate to the e2e repo first - ```console + ```bash cd e2e ``` - To run tests in UI helper mode: - ```console + ```bash npx playwright test --ui ``` - To run a single test: - ```console + ```bash npx playwright test <filename> ``` For example: - ```console + ```bash npx playwright test landing-page.spec.ts ``` - Run a set of test files in respective folders: - ```console + ```bash npx playwright test <pathToFolder1> <pathToFolder2> ``` For example: - ```console + ```bash npx playwright test tests/todo-page/ tests/landing-page/ ``` - Run the test with the title: - ```console + ```bash npx playwright test -g <title> ``` For example: - ```console + ```bash npx playwright test -g "add a todo item" ``` @@ -233,13 +233,13 @@ Since Playwright runs in Node.js, you can debug it with your debugger of choice - Debugging all tests: - ```console + ```bash npx playwright test --debug ``` - Debugging one test file: - ```console + ```bash npx playwright test example.spec.ts --debug ``` @@ -247,7 +247,7 @@ Since Playwright runs in Node.js, you can debug it with your debugger of choice The HTML Reporter shows you a full report of your tests allowing you to filter the report by browsers, passed tests, failed tests, skipped tests and flaky tests. -```console +```bash npx playwright show-report ``` @@ -257,13 +257,13 @@ Playwright is generally a solid bullet-proof tool. The contributor has already c - (MacOs and Linux) If running Playwright results in an error due to kernel dependencies, run the following command: - ```console + ```bash pnpm run playwright:install-build-tools-linux ``` - A common error seen in playwright is as follows: - ```console + ```bash Error: page.goto: Could not connect: Connection refused =========================== logs =========================== navigating to "https://127.0.0.1:8000/", waiting until "load" @@ -284,7 +284,7 @@ Playwright is generally a solid bullet-proof tool. The contributor has already c - Another common error seen in playwright is as follows: - ```console + ```bash Protocol error (Network.getResponseBody): Request content was evicted from inspector cache ``` @@ -305,25 +305,25 @@ If starting the Gitpod environment did not automatically develop the environment - Create the .env - ```console + ```bash cp sample.env .env ``` - Create a config file. - ```console + ```bash pnpm run create:shared ``` - Seed the database - ```console + ```bash pnpm run seed ``` - Develop the server and client - ```console + ```bash pnpm run develop ``` @@ -331,7 +331,7 @@ If starting the Gitpod environment did not automatically develop the environment To install necessary dependencies for running Playwright run the following command: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -339,6 +339,6 @@ pnpm run playwright:install-build-tools To run all Playwright tests, run the following command: -```console +```bash npx playwright test ``` diff --git a/docs/i18n/italian/how-to-contribute-to-the-codebase.md b/docs/i18n/italian/how-to-contribute-to-the-codebase.md index 2f2f9f137d8..b68323cf0ef 100644 --- a/docs/i18n/italian/how-to-contribute-to-the-codebase.md +++ b/docs/i18n/italian/how-to-contribute-to-the-codebase.md @@ -10,13 +10,13 @@ Segui questi passaggi: 1. Controlla di essere sul branch `main`: - ```console + ```bash git status ``` Dovresti ottenere un output come questo: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -25,7 +25,7 @@ Segui questi passaggi: If you got a different message, then you aren't on main or your working directory isn't clean, resolve any outstanding files/commits and checkout `main`: - ```console + ```bash git checkout main ``` @@ -39,25 +39,25 @@ Segui questi passaggi: Aggiorna la tua copia del repository upstream freeCodeCamp: - ```console + ```bash git fetch upstream ``` Fai un hard reset del tuo ramo main con il ramo main di freeCodeCamp: - ```console + ```bash git reset --hard upstream/main ``` Fai un push del ramo main al tuo origin per avere una cronologia pulita nel tuo fork su GitHub: - ```console + ```bash git push origin main --force ``` You can validate that your current main matches the upstream/main by performing a diff: - ```console + ```bash git diff upstream/main ``` @@ -69,7 +69,7 @@ Segui questi passaggi: Controlla di essere su `main`, come spiegato in precedenza, e crea un branch da lì: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -93,13 +93,13 @@ Segui questi passaggi: 7. Controlla e conferma i file che stai aggiornando: - ```console + ```bash git status ``` Questo dovrebbe mostrare un elenco di file `unstaged` che hai modificato. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -118,25 +118,25 @@ Segui questi passaggi: In questo passaggio, dovresti contrassegnare solo i file che hai modificato o aggiunto tu stesso. Se necessario è possibile eseguire un reset e risolvere i file che non hai intenzione di modificare. - ```console + ```bash git add path/to/my/changed/file.ext ``` Oppure puoi aggiungere tutti i file `unstaged` all'area di staging: - ```console + ```bash git add . ``` Solo i file che sono stati spostati nell'area di staging verranno aggiunti quando effettui un commit. - ```console + ```bash git status ``` Output: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -151,7 +151,7 @@ Segui questi passaggi: Ora, è possibile eseguire il commit delle modifiche con un breve messaggio come questo: - ```console + ```bash git commit -m "fix: breve messaggio di commit" ``` @@ -181,7 +181,7 @@ Segui questi passaggi: 9. Se ti accorgi di dover modificare un file o aggiornare il messaggio del commit dopo aver fatto un commit puoi farlo dopo aver modificato i file con: - ```console + ```bash git commit --amend ``` @@ -189,7 +189,7 @@ Segui questi passaggi: 10. Successivamente, è possibile inviare le modifiche al fork: - ```console + ```bash git push origin branch/name-here ``` diff --git a/docs/i18n/italian/how-to-open-a-pull-request.md b/docs/i18n/italian/how-to-open-a-pull-request.md index 048e95f85e5..c0bf4141c5a 100644 --- a/docs/i18n/italian/how-to-open-a-pull-request.md +++ b/docs/i18n/italian/how-to-open-a-pull-request.md @@ -115,14 +115,14 @@ Quando stai lavorando su normali bug e funzionalità sul nostro ramo di sviluppo 1. Esegui un rebase della tua copia locale: - ```console + ```bash git checkout <pr-branch> git pull --rebase upstream main ``` 2. Risolvi eventuali conflitti e aggiungi / modifica i commit - ```console + ```bash # O git add . git commit -m "chore: resolve conflicts" @@ -134,7 +134,7 @@ Quando stai lavorando su normali bug e funzionalità sul nostro ramo di sviluppo 3. Fai il push dei tuoi cambiamenti alla PR - ```console + ```bash git push --force origin <pr-branch> ``` @@ -144,7 +144,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, 1. Assicurati che il tuo upstream sia sincronizzato con il tuo repository locale: - ```console + ```bash git checkout main git fetch --all --prune git checkout next-python-projects @@ -155,7 +155,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, a. Elimina il ramo locale dopo aver effettuato un backup (se lo hai ancora localmente): - ```console + ```bash git checkout <pr-branch-name> # esempio: @@ -171,7 +171,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, b. Or just a backup of your PR branch (if you do not have it locally): - ```console + ```bash git checkout -b <backup-branch-name> origin/<pr-branch-name> # esempio: @@ -180,14 +180,14 @@ When you are working on features for our upcoming curriculum `next-*` branches, 3. Inizia con una slate pulita: - ```console + ```bash git checkout -b <pr-branch-name> next-python-projects git cherry-pick <commit-hash> ``` 4. Resolve any conflicts, cleanup, and install dependencies and run tests - ```console + ```bash pnpm run clean pnpm install @@ -201,6 +201,6 @@ When you are working on features for our upcoming curriculum `next-*` branches, 5. If everything looks good, push back to the PR - ```console + ```bash git push --force origin <pr-branch-name> ``` diff --git a/docs/i18n/italian/how-to-setup-freecodecamp-locally.md b/docs/i18n/italian/how-to-setup-freecodecamp-locally.md index 99738e0c3cd..205713acf7b 100644 --- a/docs/i18n/italian/how-to-setup-freecodecamp-locally.md +++ b/docs/i18n/italian/how-to-setup-freecodecamp-locally.md @@ -75,7 +75,7 @@ We primarily support development on Linux and Unix-based systems like Ubuntu and If Node.js is already installed on your machine, run the following commands to validate the versions: -```console +```bash node -v pnpm -v ``` @@ -142,7 +142,7 @@ Run these commands on your local machine: 2. Clona il tuo fork di freeCodeCamp, sostituendo `YOUR_USER_NAME` con il tuo nome utente GitHub - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git ``` @@ -160,25 +160,25 @@ You need a reference from your local clone to the `upstream` repository in addit 1. Change the directory to the new freeCodeCamp directory: - ```console + ```bash cd freeCodeCamp ``` 2. Aggiungi un riferimento remoto al repository freeCodeCamp principale: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git ``` 3. Assicurati che la configurazione sia corretta: - ```console + ```bash git remote -v ``` L'output dovrebbe apparire simile al seguente (sostituendo `YOUR_USER_NAME` con il tuo username di GitHub): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch) origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push) upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch) @@ -203,12 +203,12 @@ And as always, feel free to ask questions on the ['Contributors' category on our The default API keys and environment variables are stored in the file `sample.env`. This file needs to be copied to a new file named `.env` that is accessed dynamically during the installation step. -```console +```bash # Creare una copia del "sample.env" e denominarlo ".env". # Populate it with the necessary API keys and secrets ``` -```console +```bash cp sample.env .env ``` @@ -220,7 +220,7 @@ The keys in the `.env` file are _not_ required to be changed to run the app loca This step will install the dependencies required for the application to run: -```console +```bash pnpm install && pnpm run create:shared ``` @@ -234,7 +234,7 @@ Before you can run the application locally, you will need to start the MongoDB s Start the MongoDB server in a separate terminal: -```console +```bash mongod ``` @@ -242,15 +242,14 @@ mongod Next, let's seed the database. In this step, we run the below command that fills the MongoDB server with some initial data sets that are required by services. These include a few schemas, among other things. -```console +```bash pnpm run seed ``` By default, you will be signed in as a new user without any completed certifications. Run the following commands if you need to develop with completed certifications: -```console +```bash pnpm run seed:certified-user -pnpm run seed:exams ``` > [!WARNING] Running `pnpm run seed:certified-user` will log you out. You will have to clear your browser cookies and sign in again. @@ -259,7 +258,7 @@ pnpm run seed:exams You can now start up the API server and the client applications. -```console +```bash pnpm run develop ``` @@ -279,11 +278,12 @@ If you have issues while installing it, check out the [troubleshooting section]( A quick reference to the commands that you will need when working locally. -| command | description | -| ------------------------------ | ------------------------------------------------------------------------------------------------- | -| `pnpm install` | Installs / re-installs all dependencies and bootstraps the different services. | -| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. | -| `pnpm run seed:certified-user` | Creates authorized test users with certifications fully completed, and inserts them into MongoDB. | -| `pnpm run seed:exams` | Creates exams and inserts them into MongoDB. | -| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | -| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | +| command | description | +| ------------------------------ | ------------------------------------------------------------------------------------------------------------- | +| `pnpm install` | Installs / re-installs all dependencies and bootstraps the different services. | +| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. Also runs `seed:exams` and `seed:surveys` below. | +| `pnpm run seed:certified-user` | Creates authorized test users with certifications fully completed, and inserts them into MongoDB. | +| `pnpm run seed:exams` | Creates exams and inserts them into MongoDB. | +| `pnpm run seed:surveys` | Creates surveys for defaults users and inserts them into MongoDB. | +| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | +| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | diff --git a/docs/i18n/italian/how-to-setup-freecodecamp-mobile-app-locally.md b/docs/i18n/italian/how-to-setup-freecodecamp-mobile-app-locally.md index b127a2224e2..66654163862 100644 --- a/docs/i18n/italian/how-to-setup-freecodecamp-mobile-app-locally.md +++ b/docs/i18n/italian/how-to-setup-freecodecamp-mobile-app-locally.md @@ -17,7 +17,7 @@ Inizia installando i prerequisiti software per il tuo sistema operativo. Se Flutter è già installato sulla macchina, eseguire i seguenti comandi per convalidare le versioni: -```console +```bash flutter --version dart --version ``` @@ -70,7 +70,7 @@ Esegui questi comandi sulla tua macchina locale: 2. Clona il tuo fork di freeCodeCamp, sostituendo `YOUR_USER_NAME` con il tuo nome utente GitHub - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/mobile.git ``` @@ -88,25 +88,25 @@ Hai bisogno di un riferimento dal tuo clone locale al repository `upstream` oltr 1. Spostati nella directory `mobile`: - ```console + ```bash cd mobile ``` 2. Aggiungi un riferimento remoto al repository freeCodeCamp mobile: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/mobile.git ``` 3. Assicurati che la configurazione sia corretta: - ```console + ```bash git remote -v ``` L'output dovrebbe apparire simile al seguente (sostituendo `YOUR_USER_NAME` con il tuo username di GitHub): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/mobile.git (fetch) origin https://github.com/YOUR_USER_NAME/mobile.git (push) upstream https://github.com/freeCodeCamp/mobile.git (fetch) @@ -129,20 +129,20 @@ E come sempre, fai liberamente le tue domande nella [categoria 'Contributors' su Le chiavi API predefinite e le variabili d'ambiente sono memorizzate nel file `sample.env`. This file needs to be copied to a new file named `.env` which is accessed dynamically during the installation step. Ricordati di spostarti nella directory `mobile-app` prima di eseguire i seguenti comandi. -```console +```bash # Crea una copia di "sample.env" e chiamalo ".env". # Popolalo con le chiavi API e i segreti necessari: ``` #### **macOS/Linux** -```console +```bash cp sample.env .env ``` #### **Windows** -```console +```bash copy sample.env .env ``` @@ -152,7 +152,7 @@ _Non_ è necessario cambiare le chiavi nel file `.env` per eseguire l'applicazio Questo passaggio installerà le dipendenze richieste per l'esecuzione dell'applicazione: -```console +```bash flutter pub get ``` @@ -162,7 +162,7 @@ Avvia un emulatore di tua scelta (Android o iOS) e aspetta il processo di avvio Ora puoi avviare l'app eseguendo il seguente comando: -```console +```bash flutter run ``` @@ -176,13 +176,13 @@ Segui questi passaggi: 1. Controlla di essere sul branch `main`: - ```console + ```bash git status ``` Dovresti ottenere un output come questo: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -191,7 +191,7 @@ Segui questi passaggi: Se non sei sul branch main o la directory su cui stai lavorando non è pulita, risolvi file e commit in sospeso e fai il checkout da `main`: - ```console + ```bash git checkout main ``` @@ -205,25 +205,25 @@ Segui questi passaggi: Aggiorna la tua copia locale del repository upstream freeCodeCamp mobile: - ```console + ```bash git fetch upstream ``` Fai un hard reset del tuo branch main con il branch main di freeCodeCamp mobile: - ```console + ```bash git reset --hard upstream/main ``` Fai un push del branch main al tuo origin per avere una cronologia pulita nel tuo fork su GitHub: - ```console + ```bash git push origin main --force ``` You can validate that your current main matches the upstream/main by performing a diff: - ```console + ```bash git diff upstream/main ``` @@ -235,7 +235,7 @@ Segui questi passaggi: Controlla di essere su `main`, come spiegato in precedenza, e crea un branch da lì: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -259,13 +259,13 @@ Segui questi passaggi: 7. Controlla e conferma i file che stai aggiornando: - ```console + ```bash git status ``` Questo dovrebbe mostrare un elenco di file `unstaged` che hai modificato. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -282,25 +282,25 @@ Segui questi passaggi: In questo passaggio, dovresti contrassegnare solo i file che hai modificato o aggiunto tu stesso. Se necessario è possibile eseguire un reset e risolvere i file che non hai intenzione di modificare. - ```console + ```bash git add path/to/my/changed/file.ext ``` Oppure puoi aggiungere tutti i file `unstaged` all'area di staging: - ```console + ```bash git add . ``` Solo i file che sono stati spostati nell'area di staging verranno aggiunti quando effettui un commit. - ```console + ```bash git status ``` Output: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -313,7 +313,7 @@ Segui questi passaggi: Ora, è possibile eseguire il commit delle modifiche con un breve messaggio come questo: - ```console + ```bash git commit -m "fix: breve messaggio di commit" ``` @@ -345,7 +345,7 @@ Segui questi passaggi: 9. Se ti accorgi di dover modificare un file o aggiornare il messaggio del commit dopo aver fatto un commit puoi farlo dopo aver modificato i file con: - ```console + ```bash git commit --amend ``` @@ -353,7 +353,7 @@ Segui questi passaggi: 10. Successivamente, è possibile inviare le modifiche al fork: - ```console + ```bash git push origin branch/name-here ``` @@ -363,14 +363,14 @@ Segui questi passaggi: 1. Clone a copy of the [freeCodeCamp repo](https://github.com/freeCodeCamp/freeCodeCamp) locally outside of your local copy of the freeCodeCamp mobile repo. Your folder structure should look like this: - ```console + ```bash ├── freeCodeCamp ├── mobile ``` 2. Change the directory to the freeCodeCamp repo: - ```console + ```bash cd freeCodeCamp ``` @@ -378,25 +378,25 @@ Segui questi passaggi: #### **macOS/Linux** - ```console + ```bash cp sample.env .env ``` #### **Windows** - ```console + ```bash copy sample.env .env ``` 4. Install the dependencies for the freeCodeCamp repo: - ```console + ```bash pnpm install && pnpm run create:shared ``` 5. Generate the challenge data JSON file: - ```console + ```bash pnpm run build:curriculum ``` @@ -404,54 +404,54 @@ Segui questi passaggi: #### **macOS/Linux** - ```console + ```bash cp ./shared/config/curriculum.json ../mobile/mobile-app/curriculum.json ``` #### **Windows** - ```console + ```bash copy .\shared\config\curriculum.json ..\mobile\mobile-app\curriculum.json ``` 7. Change directory to the mobile app: - ```console + ```bash cd ../mobile/mobile-app ``` 8. Install the dependencies for the mobile app: - ```console + ```bash flutter pub get ``` 9. Update the test file to use the challenge data JSON file: - ```console + ```bash sed -i '' 's/..\/..\/shared\/config\/curriculum.json/.\/curriculum.json/g' test/widget_test.dart ``` 10. Generate the challenge files: - ```console + ```bash flutter test test/widget_test.dart ``` 11. Start a local server to serve the challenge files with the help of `serve` package: - ```console + ```bash npx serve ``` 12. In a different terminal go back to the freeCodeCamp repo: - ```console + ```bash cd ../../freeCodeCamp ``` 13. Run the cypress tests: - ```console + ```bash pnpm cypress run --config retries=1,screenshotOnRunFailure=false,video=false,baseUrl=http://localhost:3000/generated-tests/,specPattern=cypress/e2e/mobile-learn/test-challenges.js -s cypress/e2e/mobile-learn/test-challenges.js -b chrome ``` @@ -482,7 +482,7 @@ Se sei su un sistema operativo diverso e/o continui ad avere dei problemi, visit If you face issues with the UI, or build errors a cleanup can be useful: -```console +```bash flutter clean ``` diff --git a/docs/i18n/italian/how-to-setup-wsl.md b/docs/i18n/italian/how-to-setup-wsl.md index 29180621f37..eec2f9d1a69 100644 --- a/docs/i18n/italian/how-to-setup-wsl.md +++ b/docs/i18n/italian/how-to-setup-wsl.md @@ -10,7 +10,7 @@ Questa guida copre alcuni passi comuni con la configurazione di WSL2. Una volta ## Abilita WSL -Segui le istruzioni sulla [documentazione ufficiale](https://docs.microsoft.com/en-us/windows/wsl/install-win10) per installare WSL1 seguito dall'aggiornamento a WSL2. +Follow the instructions on the [official documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL2. ## Installare Ubuntu @@ -20,9 +20,11 @@ Segui le istruzioni sulla [documentazione ufficiale](https://docs.microsoft.com/ > > While you may use other non-Debian-based distributions, they all come with their own 'gotchas' that are beyond the scope of this guide. + As of November 2023, Ubuntu and Debian are the only Linux distributions [officially supported by Playwright](https://playwright.dev/docs/intro#system-requirements), the end-to-end testing library used by freeCodeCamp. + 2. Aggiorna le dipendenze per il sistema operativo - ```console + ```bash sudo apt update sudo apt upgrade -y @@ -70,23 +72,23 @@ Questo fa si che i container siano eseguiti su WSL invece che su Windows. Sarai Una volta che hai configurato Docker Desktop per lavorare con WSL2, segui questi step per avviare un servizio MongoDB: -1. Avvia un nuovo terminale Ubuntu-18.04 +1. Launch a new Ubuntu terminal -2. Pull `MongoDB 4.0.x` from Docker Hub +2. Pull MongoDB from Docker Hub. Please refer to the [Prerequisites](how-to-setup-freecodecamp-locally.md#Prerequisites) table for the current version of MongoDB used by freeCodeCamp. For example, if the version number is `5.0.x`, replace `<x.y>` with `5.0` in the following two code snippets. - ```console - docker pull mongo:4.0 + ```bash + docker pull mongo:<x.y> ``` 3. Avvia il servizio MongoDB sulla porta `27017` e configuralo perché sia eseguito automaticamente al riavvio del sistema - ```console + ```bash docker run -it \ -v mongodata:/data/db \ -p 27017:27017 \ --name mongodb \ --restart unless-stopped \ - -d mongo:4.0 + -d mongo:<x.y> ``` 4. Ora puoi accedere al servizio sia da Windows che da Ubuntu da `mongodb://localhost:27017`. @@ -95,25 +97,17 @@ Una volta che hai configurato Docker Desktop per lavorare con WSL2, segui questi Raccomandiamo di installare la release LTS di Node.js con un gestore di versioni di node (node version manager): [nvm](https://github.com/nvm-sh/nvm#installing-and-updating). -Una volta installato usa questi comandi per installare e usare la versione di Node.js che ti serve +Once installed use this command to install and use the latest Node.js LTS version: -```console +```bash nvm install --lts - -# O -# nvm install <version> - -nvm install 14 - -# Usage -# nvm use <version> - -nvm use 12 ``` -Node.js ha in dotazione `npm`, che puoi usare per installare `pnpm`: +For instructions on installing and using a different version of Node.js, please refer to the [nvm docs](https://github.com/nvm-sh/nvm#usage). -```console +Node.js comes bundled with `npm`, which you can use to install `pnpm`: + +```bash npm install -g pnpm ``` @@ -125,7 +119,104 @@ Now that you have installed the pre-requisites, follow [our local setup guide](h > > Please note, at this time the setup for Cypress tests (and related GUI needs) is a work in progress. Dovresti essere comunque in grado di lavorare sulla maggior parte del codebase. -## Link Utili +## Optimize Windows and WSL + + > [!NOTE] + > + > The following tips were collected from across the web and have not gone through vigorous testing. Your mileage may vary. + +### Adjust processer scheduling for background services + +This may reduce incidents of Docker containers crashing due to lack of resources. + +Open the System Properties control panel by pressing <kbd>Win + R</kbd> and entering `sysdm.cpl` + +<details> + <summary> + Enter <code>sysdm.cpl</code> in the Run dialog (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/run-sysdm.png" alt="Enter `sysdm.cpl` in the Run dialog" /> +</details> +<br> + +Go to Advanced -> Performance -> Settings… + +<details> + <summary> + Performance Settings button under Advanced tab in System Properties (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-performance-settings.png" alt="Performance Settings button under Advanced tab in System Properties" /> +</details> +<br> + +Under Advanced -> Processor scheduling, choose "Background services". Do not close the window. Continue to the next tip. + +<details> + <summary> + Background services radio button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/background-services.png" alt="Background services radio button under Advanced tab in Performance Options" /> +</details> + +### Increase the size of Windows paging file for the system drive + +Under Advanced -> Virtual memory, click "Change…" + +<details> + <summary> + Change virtual memory button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-virtual-memory.png" alt="Change virtual memory button under Advanced tab in Performance Options" /> +</details> +<br> + +Choose "Custom size". Set the initial size to 1.5x and the maximum size to 3x of your physical memory. Then click "Set". + +<details> + <summary> + Set custom size button in Virtual Memory window (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/set-custom-size.png" alt="Set custom size button in Virtual Memory window" /> +</details> + +### Increase the size of memory allocated to WSL + +Create a [`.wslconfig` file](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) in your [`%UserProfile%` directory](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#wslconfig) (typically `C:\Users\<UserName>\.wslconfig`). Please read the [WSL documentation](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) carefully and replace `x` with values that suit your own needs: + +```ini +# Settings apply across all Linux distros running on WSL 2 +[wsl2] + +# How much memory to assign to the WSL 2 VM. The default value might not be enough +memory=xGB + +# How much swap space to add to the WSL 2 VM, default is 25% of available RAM +swap=xGB +``` + +### Increase Node.js max old space size + +This fixes the ["JavaScript heap out of memory" error](https://stackoverflow.com/a/54456814) with ESLint. Add the following to your `~/.bashrc` or `~/.zshrc`: + +```sh +export NODE_OPTIONS="--max-old-space-size=4096" +``` + +### Avoid `pnpm run test` + +Instead, use the script [appropriate to your PR](https://forum.freecodecamp.org/t/wsl-performance-issues-while-working-on-the-codebase/644215/2#:~:text=usually%2C%20you%20just%20want%20to%20test%20something%20specific%20to%20either%20the%20curriculum%20or%20the%20client%20or%20the%20api%20-%20almost%20never%20all%203.); either `pnpm run test:api`, `pnpm run test:curriculum`, or `pnpm run test-client`. + +## Useful Links - [A WSL2 Dev Setup with Ubuntu 20.04, Node.js, MongoDB, VS Code, and Docker](https://hn.mrugesh.dev/wsl2-dev-setup-with-ubuntu-nodejs-mongodb-and-docker) - an article by Mrugesh Mohapatra (Staff Developer at freeCodeCamp.org) - Domande frequenti su: diff --git a/docs/i18n/italian/how-to-work-on-coding-challenges.md b/docs/i18n/italian/how-to-work-on-coding-challenges.md index 8b52795a6b5..759410c3489 100644 --- a/docs/i18n/italian/how-to-work-on-coding-challenges.md +++ b/docs/i18n/italian/how-to-work-on-coding-challenges.md @@ -232,6 +232,8 @@ Sentences should be clear and concise with minimal jargon. If used, jargon shoul Keep paragraphs short (around 1-4 sentences). People are more likely to read several short paragraphs than a wall of text. +Use american english, e.g., use `labeled` instead of `labelled`. + Challenge text should use the second person ("you") to help to give it a conversational tone. This way the text and instructions seem to speak directly to the camper working through the challenge. Try to avoid using the first person ("I", "we", "let's", and "us"). Don't use outbound links. These interrupt the flow. Campers should never have to google anything during these challenges. If there are resources you think campers would benefit from, add them to the challenge's Guide-related article. @@ -306,7 +308,7 @@ Le sfide dovrebbero avere il numero minimo di test per verificare che un camper Il nostro obbiettivo è comunicare il singolo punto che la sfida sta cercando di insegnare, e testare che abbiano capito il punto. -I test delle sfide possono fare uso delle librerie di asserzioni Node.js e Chai.js. E, se necessario, il codice generato dall'utente può essere acceduto dalla variabile `code`. In aggiunta, l'oggetto `__helpers` mette a disposizione diverse funzioni che semplificano il processo di scrittura dei test. Le funzioni disponibili sono definite in _client/src/utils/curriculum-helpers.ts_. +I test delle sfide possono fare uso delle librerie di asserzioni Node.js e Chai.js. E, se necessario, il codice generato dall'utente può essere acceduto dalla variabile `code`. In aggiunta, l'oggetto `__helpers` mette a disposizione diverse funzioni che semplificano il processo di scrittura dei test. The available functions are defined in the [curriculum-helpers](https://github.com/freeCodeCamp/curriculum-helpers/blob/main/lib/index.ts) repo. ## Formatting Seed Code diff --git a/docs/i18n/italian/how-to-work-on-localized-client-webapp.md b/docs/i18n/italian/how-to-work-on-localized-client-webapp.md index 890e4dfdd6f..9f4e685f313 100644 --- a/docs/i18n/italian/how-to-work-on-localized-client-webapp.md +++ b/docs/i18n/italian/how-to-work-on-localized-client-webapp.md @@ -16,7 +16,7 @@ Andiamo a vedere come funzionano il framework e gli strumenti. Most of the files for translating the platform are located in the [`client/i18n`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n) folder. Each language has a directory that contains JSON files with the translations. -```console +```bash config └── i18n.ts ... diff --git a/docs/i18n/italian/how-to-work-on-the-docs-theme.md b/docs/i18n/italian/how-to-work-on-the-docs-theme.md index 2fd7f3ebf75..8b02110ca64 100644 --- a/docs/i18n/italian/how-to-work-on-the-docs-theme.md +++ b/docs/i18n/italian/how-to-work-on-the-docs-theme.md @@ -47,7 +47,7 @@ In genere non è necessario modificare alcuna configurazione o costruire il sito Install freeCodeCamp locally ([see the local setup guide](how-to-setup-freecodecamp-locally)), we bundled the CLI with the development tools so you can run the command below as needed from the root of the repo: -```console +```bash pnpm run docs:serve ``` diff --git a/docs/i18n/italian/troubleshooting-development-issues.md b/docs/i18n/italian/troubleshooting-development-issues.md index da424cf322c..cc7fe3068c3 100644 --- a/docs/i18n/italian/troubleshooting-development-issues.md +++ b/docs/i18n/italian/troubleshooting-development-issues.md @@ -16,7 +16,7 @@ Se sei su un sistema operativo diverso o continui ad avere dei problemi, visita When you build the client, Gatsby will cache the Fonts, language strings, and UI. Se uno di loro non è memorizzato nella cache, esegui quanto segue: -```console +```bash pnpm run clean pnpm install pnpm run seed @@ -53,7 +53,7 @@ git clean -ifdX If you can't sign in, and instead you see a banner with an error message saying that the error will be reported to freeCodeCamp, please double-check that your local port `3000` is not in use by a different program. #### **From Terminal:** -```console +```bash netstat -a | grep "3000" tcp4 0 0 0.0.0.0:3000 DESKTOP LISTEN diff --git a/docs/i18n/japanese/devops.md b/docs/i18n/japanese/devops.md index ca394513f50..a84c5887fb1 100644 --- a/docs/i18n/japanese/devops.md +++ b/docs/i18n/japanese/devops.md @@ -303,19 +303,19 @@ doctl compute droplet list --format "ID,Name,PublicIPv4" パッケージ情報を更新します。 -```console +```bash sudo apt update ``` インストール済みパッケージをアップグレードします。 -```console +```bash sudo apt upgrade -y ``` 未使用のパッケージをクリーンアップします。 -```console +```bash sudo apt autoremove -y ``` @@ -331,7 +331,7 @@ NGINX 設定は [このリポジトリ](https://github.com/freeCodeCamp/nginx-co 1. NGINX をインストールし、リポジトリから設定します。 - ```console + ```bash sudo su cd /var/www/html @@ -352,7 +352,7 @@ NGINX 設定は [このリポジトリ](https://github.com/freeCodeCamp/nginx-co 既存の証明書を移動させます。 - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -364,7 +364,7 @@ NGINX 設定は [このリポジトリ](https://github.com/freeCodeCamp/nginx-co アップストリーム設定を更新します。 - ```console + ```bash vi configs/upstreams.conf ``` @@ -382,7 +382,7 @@ NGINX 設定は [このリポジトリ](https://github.com/freeCodeCamp/nginx-co 1. 以下のコマンドを使用して NGINX サービスのステータスを確認します。 - ```console + ```bash sudo systemctl status nginx ``` @@ -396,13 +396,13 @@ NGINX インスタンスへの設定変更は、GitHub 上でメンテナンス 1. SSH でインスタンスに接続し、sudo と入力します。 -```console +```bash sudo su ``` 2. 最新の設定コードを取得します。 -```console +```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -410,7 +410,7 @@ git reset --hard origin/main 3. 設定 [with Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx) をテストして再度読み込みます。 -```console +```bash nginx -t nginx -s reload ``` @@ -419,7 +419,7 @@ nginx -s reload 1. ノードバイナリのビルドツール (`node-gyp`) をインストールします。 -```console +```bash sudo apt install build-essential ``` @@ -431,19 +431,19 @@ sudo apt install build-essential 2. Install pnpm globally. -```console +```bash npm install -g pnpm ``` 3. Install pm2 globally. -```console +```bash npm install -g pm2 ``` 4. Clone freeCodeCamp, set up env, and keys. -```console +```bash git clone https://github.com/freeCodeCamp/freeCodeCamp.git cd freeCodeCamp git checkout prod-current # or any other branch to be deployed @@ -453,36 +453,36 @@ git checkout prod-current # or any other branch to be deployed 6. Install dependencies -```console +```bash pnpm install ``` 7. Setup pm2 `logrotate` and startup on boot -```console +```bash pm2 install pm2-logrotate pm2 startup ``` 8. Build the server -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 9. Start Instances -```console +```bash pnpm start:server ``` ### ログとモニタリング -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -496,31 +496,31 @@ pm2 monit 1. Stop all instances -```console +```bash pm2 stop all ``` 2. Install dependencies -```console +```bash pnpm install ``` 3. Build the server -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 4. Start Instances -```console +```bash pnpm start:server && pm2 logs ``` #### 2. Rolling updates - Used for logical changes to code. -```console +```bash pnpm reload:server && pm2 logs ``` @@ -532,7 +532,7 @@ pnpm reload:server && pm2 logs 2. Update pm2 to use the new version -```console +```bash pm2 update ``` @@ -540,7 +540,7 @@ pm2 update 1. Install build tools for node binaries (`node-gyp`) etc. -```console +```bash sudo apt install build-essential ``` @@ -552,7 +552,7 @@ sudo apt install build-essential 2. Update `npm` and install PM2 and setup `logrotate` and startup on boot - ```console + ```bash npm i -g npm@8 npm i -g pm2@4 npm install -g serve@13 @@ -562,7 +562,7 @@ sudo apt install build-essential 3. Clone client config, setup env and keys. - ```console + ```bash git clone https://github.com/freeCodeCamp/client-config.git client cd client ``` @@ -571,7 +571,7 @@ sudo apt install build-essential > Todo: This setup needs to move to S3 or Azure Blob storage > - > ```console + > ```bash > echo "serve -c ../serve.json -p 50505 www" > client-start-primary.sh > chmod +x client-start-primary.sh > pm2 delete client-primary @@ -584,11 +584,11 @@ sudo apt install build-essential ### ログとモニタリング -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -602,7 +602,7 @@ pm2 monit 1. Stop all instances - ```console + ```bash pm2 stop all ``` @@ -610,13 +610,13 @@ pm2 monit 3. Start Instances - ```console + ```bash pm2 start all --update-env && pm2 logs ``` #### 2. ローリング更新 - コードの論理的な変更に使用されます。 -```console +```bash pm2 reload all --update-env && pm2 logs ``` @@ -636,7 +636,7 @@ Rocket.Chat クラスタの前で、負荷分散型 (Azure ロードバランサ 1. Install NGINX and configure from repository. - ```console + ```bash sudo su cd /var/www/html @@ -657,7 +657,7 @@ Rocket.Chat クラスタの前で、負荷分散型 (Azure ロードバランサ Move over existing certificates: - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -669,7 +669,7 @@ Rocket.Chat クラスタの前で、負荷分散型 (Azure ロードバランサ Update Upstream Configurations: - ```console + ```bash vi configs/upstreams.conf ``` @@ -687,7 +687,7 @@ Rocket.Chat クラスタの前で、負荷分散型 (Azure ロードバランサ 1. Install Docker and configure from the repository - ```console + ```bash git clone https://github.com/freeCodeCamp/chat-config.git chat cd chat ``` @@ -696,7 +696,7 @@ Rocket.Chat クラスタの前で、負荷分散型 (Azure ロードバランサ 3. Run rocket-chat server - ```console + ```bash docker-compose config docker-compose up -d ``` @@ -705,13 +705,13 @@ Rocket.Chat クラスタの前で、負荷分散型 (Azure ロードバランサ 1. Check status for NGINX service using the below command: - ```console + ```bash sudo systemctl status nginx ``` 2. Check status for running docker instances with: - ```console + ```bash docker ps ``` @@ -723,13 +723,13 @@ NGINX インスタンスへの設定変更は、GitHub 上でメンテナンス 1. SSH into the instance and enter sudo - ```console + ```bash sudo su ``` 2. Get the latest config code. - ```console + ```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -737,7 +737,7 @@ NGINX インスタンスへの設定変更は、GitHub 上でメンテナンス 3. Test and reload the config [with Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). - ```console + ```bash nginx -t nginx -s reload ``` @@ -746,44 +746,44 @@ NGINX インスタンスへの設定変更は、GitHub 上でメンテナンス 1. SSH into the instance and navigate to the chat config path - ```console + ```bash cd ~/chat ``` 2. Get the latest config code. - ```console + ```bash git fetch --all --prune git reset --hard origin/main ``` 3. Pull down the latest docker image for Rocket.Chat - ```console + ```bash docker-compose pull ``` 4. Update the running instances - ```console + ```bash docker-compose up -d ``` 5. Validate the instances are up - ```console + ```bash docker ps ``` 6. Cleanup extraneous resources - ```console + ```bash docker system prune --volumes ``` Output: - ```console + ```bash WARNING! This will remove: - all stopped containers - all networks not used by at least one container @@ -802,7 +802,7 @@ NGINX インスタンスへの設定変更は、GitHub 上でメンテナンス (Digital Ocean 上でホストされている) VM に ssh で接続します。 -```console +```bash cd tools git pull origin master pnpm install @@ -814,7 +814,7 @@ pm2 restart contribute-app 現在インストールされている node と npm のバージョンをリストアップします。 -```console +```bash nvm -v node -v npm -v @@ -824,25 +824,25 @@ nvm ls 最新の Node.js LTS をインストールし、グローバルパッケージを再インストールします。 -```console +```bash nvm install --lts --reinstall-packages-from=default ``` インストールされたパッケージを確認します。 -```console +```bash npm ls -g --depth=0 ``` Alias the `default` Node.js version to the current LTS (pinned to the latest major version) -```console +```bash nvm alias default 16 ``` (オプション) 旧バージョンをアンインストールします。 -```console +```bash nvm uninstall <version> ``` @@ -852,31 +852,31 @@ nvm uninstall <version> `unstartup` コマンドでアンインストールの手順 / コマンドを取得し、出力を使用して systemctl サービスを削除します。 -```console +```bash pm2 unstartup ``` `startup` コマンドでインストールの手順 / コマンドを取得し、出力を使用して systemctl サービスを追加します。 -```console +```bash pm2 startup ``` 以下は、PM2 からリストへのクイックコマンド、保存されたプロセスの復元などです。 -```console +```bash pm2 ls ``` -```console +```bash pm2 resurrect ``` -```console +```bash pm2 save ``` -```console +```bash pm2 logs ``` @@ -898,32 +898,32 @@ https://dev.azure.com/freeCodeCamp-org/_usersSettings/tokens から入手でき 1. Navigate and check status of the service - ```console + ```bash cd ~/azagent sudo ./svc.sh status ``` 2. Stop the service - ```console + ```bash sudo ./svc.sh stop ``` 3. Uninstall the service - ```console + ```bash sudo ./svc.sh uninstall ``` 4. Remove the agent from the pipeline pool - ```console + ```bash ./config.sh remove ``` 5. Remove the config files - ```console + ```bash cd ~ rm -rf ~/azagent ``` @@ -938,7 +938,7 @@ https://dev.azure.com/freeCodeCamp-org/_usersSettings/tokens から入手でき 2. Set up the script to fetch the email list. - ```console + ```bash cd /home/freecodecamp/scripts/emails cp sample.env .env ``` @@ -947,7 +947,7 @@ https://dev.azure.com/freeCodeCamp-org/_usersSettings/tokens から入手でき 3. Run the script. - ```console + ```bash node get-emails.js emails.csv ``` diff --git a/docs/i18n/japanese/how-to-add-cypress-tests.md b/docs/i18n/japanese/how-to-add-cypress-tests.md index 2de37fbdac8..7b5eb4236cd 100644 --- a/docs/i18n/japanese/how-to-add-cypress-tests.md +++ b/docs/i18n/japanese/how-to-add-cypress-tests.md @@ -26,25 +26,25 @@ Cypress テストもしくは「specs」の書き方については、Cypress - `./cypress` ディレクトリで、すべてのテストを実行します。 - ```console + ```bash pnpm run cypress:dev:run ``` - 単一のテストを実行します。 - ```console + ```bash pnpm run cypress run --spec=cypress/<path_to_test_file> ``` For example: - ```console + ```bash pnpm run cypress run --spec=cypress/e2e/default/landing.ts ``` - 開発ビルドを作成するには、開発サーバーを起動し、既存の cypress エンドツーエンドテストをすべて実行します。 - ```console + ```bash pnpm run e2e:dev:run ``` @@ -57,25 +57,25 @@ If starting the Gitpod environment did not automatically develop the environment - Follow the [MongoDB installation guide](https://www.mongodb.com/basics/get-started). - Create a config file. -```console +```bash pnpm run create:shared ``` - データベースをシードします。 -```console +```bash pnpm run seed ``` - サーバーとクライアントを構築します。 -```console +```bash pnpm run develop ``` ### 2. Cypress ビルドツールをインストールする -```console +```bash pnpm run cypress:install-build-tools ``` diff --git a/docs/i18n/japanese/how-to-add-playwright-tests.md b/docs/i18n/japanese/how-to-add-playwright-tests.md index 7ff58224ee4..0f450480fea 100644 --- a/docs/i18n/japanese/how-to-add-playwright-tests.md +++ b/docs/i18n/japanese/how-to-add-playwright-tests.md @@ -4,7 +4,7 @@ To install Playwright run: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -181,49 +181,49 @@ To run tests with Playwright check the following below - Make sure you navigate to the e2e repo first - ```console + ```bash cd e2e ``` - To run tests in UI helper mode: - ```console + ```bash npx playwright test --ui ``` - To run a single test: - ```console + ```bash npx playwright test <filename> ``` For example: - ```console + ```bash npx playwright test landing-page.spec.ts ``` - Run a set of test files in respective folders: - ```console + ```bash npx playwright test <pathToFolder1> <pathToFolder2> ``` For example: - ```console + ```bash npx playwright test tests/todo-page/ tests/landing-page/ ``` - Run the test with the title: - ```console + ```bash npx playwright test -g <title> ``` For example: - ```console + ```bash npx playwright test -g "add a todo item" ``` @@ -233,13 +233,13 @@ Since Playwright runs in Node.js, you can debug it with your debugger of choice - Debugging all tests: - ```console + ```bash npx playwright test --debug ``` - Debugging one test file: - ```console + ```bash npx playwright test example.spec.ts --debug ``` @@ -247,7 +247,7 @@ Since Playwright runs in Node.js, you can debug it with your debugger of choice The HTML Reporter shows you a full report of your tests allowing you to filter the report by browsers, passed tests, failed tests, skipped tests and flaky tests. -```console +```bash npx playwright show-report ``` @@ -257,13 +257,13 @@ Playwright is generally a solid bullet-proof tool. The contributor has already c - (MacOs and Linux) If running Playwright results in an error due to kernel dependencies, run the following command: - ```console + ```bash pnpm run playwright:install-build-tools-linux ``` - A common error seen in playwright is as follows: - ```console + ```bash Error: page.goto: Could not connect: Connection refused =========================== logs =========================== navigating to "https://127.0.0.1:8000/", waiting until "load" @@ -284,7 +284,7 @@ Playwright is generally a solid bullet-proof tool. The contributor has already c - Another common error seen in playwright is as follows: - ```console + ```bash Protocol error (Network.getResponseBody): Request content was evicted from inspector cache ``` @@ -305,25 +305,25 @@ If starting the Gitpod environment did not automatically develop the environment - Create the .env - ```console + ```bash cp sample.env .env ``` - Create a config file. - ```console + ```bash pnpm run create:shared ``` - Seed the database - ```console + ```bash pnpm run seed ``` - Develop the server and client - ```console + ```bash pnpm run develop ``` @@ -331,7 +331,7 @@ If starting the Gitpod environment did not automatically develop the environment To install necessary dependencies for running Playwright run the following command: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -339,6 +339,6 @@ pnpm run playwright:install-build-tools To run all Playwright tests, run the following command: -```console +```bash npx playwright test ``` diff --git a/docs/i18n/japanese/how-to-contribute-to-the-codebase.md b/docs/i18n/japanese/how-to-contribute-to-the-codebase.md index 50284e3c089..781427597f1 100644 --- a/docs/i18n/japanese/how-to-contribute-to-the-codebase.md +++ b/docs/i18n/japanese/how-to-contribute-to-the-codebase.md @@ -10,13 +10,13 @@ Follow these steps: 1. Validate that you are on the `main` branch: - ```console + ```bash git status ``` You should get an output like this: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -25,7 +25,7 @@ Follow these steps: If you got a different message, then you aren't on main or your working directory isn't clean, resolve any outstanding files/commits and checkout `main`: - ```console + ```bash git checkout main ``` @@ -39,25 +39,25 @@ Follow these steps: Update your copy of the freeCodeCamp upstream repository: - ```console + ```bash git fetch upstream ``` Hard reset your main branch with the freeCodeCamp main: - ```console + ```bash git reset --hard upstream/main ``` Push your main branch to your origin to have a clean history on your fork on GitHub: - ```console + ```bash git push origin main --force ``` You can validate that your current main matches the upstream/main by performing a diff: - ```console + ```bash git diff upstream/main ``` @@ -69,7 +69,7 @@ Follow these steps: Check that you are on `main` as explained previously, and branch off from there: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -93,13 +93,13 @@ Follow these steps: 7. Check and confirm the files you are updating: - ```console + ```bash git status ``` This should show a list of `unstaged` files that you have edited. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -118,25 +118,25 @@ Follow these steps: In this step, you should only mark files that you have edited or added yourself. You can perform a reset and resolve files that you did not intend to change if needed. - ```console + ```bash git add path/to/my/changed/file.ext ``` Or you can add all the `unstaged` files to the staging area: - ```console + ```bash git add . ``` Only the files that were moved to the staging area will be added when you make a commit. - ```console + ```bash git status ``` Output: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -151,7 +151,7 @@ Follow these steps: Now, you can commit your changes with a short message like so: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -181,7 +181,7 @@ Follow these steps: 9. If you realize that you need to edit a file or update the commit message after making a commit you can do so after editing the files with: - ```console + ```bash git commit --amend ``` @@ -189,7 +189,7 @@ Follow these steps: 10. Next, you can push your changes to your fork: - ```console + ```bash git push origin branch/name-here ``` diff --git a/docs/i18n/japanese/how-to-open-a-pull-request.md b/docs/i18n/japanese/how-to-open-a-pull-request.md index 63eb5d2e101..754ee4ccf9b 100644 --- a/docs/i18n/japanese/how-to-open-a-pull-request.md +++ b/docs/i18n/japanese/how-to-open-a-pull-request.md @@ -115,14 +115,14 @@ When you are working on regular bugs and features on our development branch `mai 1. Rebase your local copy: - ```console + ```bash git checkout <pr-branch> git pull --rebase upstream main ``` 2. Resolve any conflicts and add / edit commits - ```console + ```bash # Either git add . git commit -m "chore: resolve conflicts" @@ -134,7 +134,7 @@ When you are working on regular bugs and features on our development branch `mai 3. Push back your changes to the PR - ```console + ```bash git push --force origin <pr-branch> ``` @@ -144,7 +144,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, 1. Make sure your upstream comes in sync with your local: - ```console + ```bash git checkout main git fetch --all --prune git checkout next-python-projects @@ -155,7 +155,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, a. Either delete your local branch after taking a backup (if you still have it locally): - ```console + ```bash git checkout <pr-branch-name> # example: @@ -171,7 +171,7 @@ When you are working on features for our upcoming curriculum `next-*` branches, b. Or just a backup of your PR branch (if you do not have it locally): - ```console + ```bash git checkout -b <backup-branch-name> origin/<pr-branch-name> # example: @@ -180,14 +180,14 @@ When you are working on features for our upcoming curriculum `next-*` branches, 3. Start off with a clean slate: - ```console + ```bash git checkout -b <pr-branch-name> next-python-projects git cherry-pick <commit-hash> ``` 4. Resolve any conflicts, cleanup, and install dependencies and run tests - ```console + ```bash pnpm run clean pnpm install @@ -201,6 +201,6 @@ When you are working on features for our upcoming curriculum `next-*` branches, 5. If everything looks good, push back to the PR - ```console + ```bash git push --force origin <pr-branch-name> ``` diff --git a/docs/i18n/japanese/how-to-setup-freecodecamp-locally.md b/docs/i18n/japanese/how-to-setup-freecodecamp-locally.md index 651073e3aa0..9b0d377f500 100644 --- a/docs/i18n/japanese/how-to-setup-freecodecamp-locally.md +++ b/docs/i18n/japanese/how-to-setup-freecodecamp-locally.md @@ -75,7 +75,7 @@ We primarily support development on Linux and Unix-based systems like Ubuntu and If Node.js is already installed on your machine, run the following commands to validate the versions: -```console +```bash node -v pnpm -v ``` @@ -142,7 +142,7 @@ Run these commands on your local machine: 2. Clone your fork of freeCodeCamp, replacing `YOUR_USER_NAME` with your GitHub Username - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git ``` @@ -160,25 +160,25 @@ You need a reference from your local clone to the `upstream` repository in addit 1. Change the directory to the new freeCodeCamp directory: - ```console + ```bash cd freeCodeCamp ``` 2. Add a remote reference to the main freeCodeCamp repository: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git ``` 3. Ensure the configuration looks correct: - ```console + ```bash git remote -v ``` The output should look something like below (replacing `YOUR_USER_NAME` with your GitHub username): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch) origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push) upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch) @@ -203,12 +203,12 @@ And as always, feel free to ask questions on the ['Contributors' category on our The default API keys and environment variables are stored in the file `sample.env`. This file needs to be copied to a new file named `.env` that is accessed dynamically during the installation step. -```console +```bash # "sample.env" のコピーを作成し、".env" という名前を付けます。 # Populate it with the necessary API keys and secrets ``` -```console +```bash cp sample.env .env ``` @@ -220,7 +220,7 @@ The keys in the `.env` file are _not_ required to be changed to run the app loca This step will install the dependencies required for the application to run: -```console +```bash pnpm install && pnpm run create:shared ``` @@ -234,7 +234,7 @@ Before you can run the application locally, you will need to start the MongoDB s Start the MongoDB server in a separate terminal: -```console +```bash mongod ``` @@ -242,15 +242,14 @@ mongod Next, let's seed the database. In this step, we run the below command that fills the MongoDB server with some initial data sets that are required by services. These include a few schemas, among other things. -```console +```bash pnpm run seed ``` By default, you will be signed in as a new user without any completed certifications. Run the following commands if you need to develop with completed certifications: -```console +```bash pnpm run seed:certified-user -pnpm run seed:exams ``` > [!WARNING] Running `pnpm run seed:certified-user` will log you out. You will have to clear your browser cookies and sign in again. @@ -259,7 +258,7 @@ pnpm run seed:exams You can now start up the API server and the client applications. -```console +```bash pnpm run develop ``` @@ -279,11 +278,12 @@ If you have issues while installing it, check out the [troubleshooting section]( A quick reference to the commands that you will need when working locally. -| command | description | -| ------------------------------ | ------------------------------------------------------------------------------------------------- | -| `pnpm install` | Installs / re-installs all dependencies and bootstraps the different services. | -| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. | -| `pnpm run seed:certified-user` | Creates authorized test users with certifications fully completed, and inserts them into MongoDB. | -| `pnpm run seed:exams` | Creates exams and inserts them into MongoDB. | -| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | -| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | +| command | description | +| ------------------------------ | ------------------------------------------------------------------------------------------------------------- | +| `pnpm install` | Installs / re-installs all dependencies and bootstraps the different services. | +| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. Also runs `seed:exams` and `seed:surveys` below. | +| `pnpm run seed:certified-user` | Creates authorized test users with certifications fully completed, and inserts them into MongoDB. | +| `pnpm run seed:exams` | Creates exams and inserts them into MongoDB. | +| `pnpm run seed:surveys` | Creates surveys for defaults users and inserts them into MongoDB. | +| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | +| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | diff --git a/docs/i18n/japanese/how-to-setup-freecodecamp-mobile-app-locally.md b/docs/i18n/japanese/how-to-setup-freecodecamp-mobile-app-locally.md index dcdd049e659..fa616db84dc 100644 --- a/docs/i18n/japanese/how-to-setup-freecodecamp-mobile-app-locally.md +++ b/docs/i18n/japanese/how-to-setup-freecodecamp-mobile-app-locally.md @@ -17,7 +17,7 @@ Start by installing the prerequisite software for your operating system. If Flutter is already installed on your machine, run the following commands to validate the versions: -```console +```bash flutter --version dart --version ``` @@ -70,7 +70,7 @@ Run these commands on your local machine: 2. Clone your fork of freeCodeCamp, replacing `YOUR_USER_NAME` with your GitHub Username - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/mobile.git ``` @@ -88,25 +88,25 @@ You need a reference from your local clone to the `upstream` repository in addit 1. Change directory to the new `mobile` directory: - ```console + ```bash cd mobile ``` 2. Add a remote reference to the main freeCodeCamp mobile repository: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/mobile.git ``` 3. Ensure the configuration looks correct: - ```console + ```bash git remote -v ``` The output should look something like below (replacing `YOUR_USER_NAME` with your GitHub username): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/mobile.git (fetch) origin https://github.com/YOUR_USER_NAME/mobile.git (push) upstream https://github.com/freeCodeCamp/mobile.git (fetch) @@ -129,20 +129,20 @@ And as always, feel free to ask questions on the ['Contributors' category on our The default API keys and environment variables are stored in the file `sample.env`. This file needs to be copied to a new file named `.env` which is accessed dynamically during the installation step. Remember to change the directory to `mobile-app` before running the following commands. -```console +```bash # Create a copy of the "sample.env" and name it ".env". # Populate it with the necessary API keys and secrets: ``` #### **macOS/Linux** -```console +```bash cp sample.env .env ``` #### **Windows** -```console +```bash copy sample.env .env ``` @@ -152,7 +152,7 @@ The keys in the `.env` file are _not_ required to be changed to run the app loca This step will install the dependencies required for the application to run: -```console +```bash flutter pub get ``` @@ -162,7 +162,7 @@ Start the emulator of your choice(Android or iOS) and wait for the bootup proces You can now start the app by running the following command: -```console +```bash flutter run ``` @@ -176,13 +176,13 @@ Follow these steps: 1. Validate that you are on the `main` branch: - ```console + ```bash git status ``` You should get an output like this: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -191,7 +191,7 @@ Follow these steps: If you are not on main or your working directory is not clean, resolve any outstanding files/commits and checkout `main`: - ```console + ```bash git checkout main ``` @@ -205,25 +205,25 @@ Follow these steps: Update your local copy of the freeCodeCamp mobile upstream repository: - ```console + ```bash git fetch upstream ``` Hard reset your main branch with the freeCodeCamp mobile main: - ```console + ```bash git reset --hard upstream/main ``` Push your main branch to your origin to have a clean history on your fork on GitHub: - ```console + ```bash git push origin main --force ``` You can validate that your current main matches the upstream/main by performing a diff: - ```console + ```bash git diff upstream/main ``` @@ -235,7 +235,7 @@ Follow these steps: Check that you are on `main` as explained previously, and branch off from there: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -259,13 +259,13 @@ Follow these steps: 7. Check and confirm the files you are updating: - ```console + ```bash git status ``` This should show a list of `unstaged` files that you have edited. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -282,25 +282,25 @@ Follow these steps: In this step, you should only mark files that you have edited or added yourself. You can perform a reset and resolve files that you did not intend to change if needed. - ```console + ```bash git add path/to/my/changed/file.ext ``` Or you can add all the `unstaged` files to the staging area: - ```console + ```bash git add . ``` Only the files that were moved to the staging area will be added when you make a commit. - ```console + ```bash git status ``` Output: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -313,7 +313,7 @@ Follow these steps: Now, you can commit your changes with a short message like so: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -345,7 +345,7 @@ Follow these steps: 9. If you realize that you need to edit a file or update the commit message after making a commit you can do so after editing the files with: - ```console + ```bash git commit --amend ``` @@ -353,7 +353,7 @@ Follow these steps: 10. Next, you can push your changes to your fork: - ```console + ```bash git push origin branch/name-here ``` @@ -363,14 +363,14 @@ Follow these steps: 1. Clone a copy of the [freeCodeCamp repo](https://github.com/freeCodeCamp/freeCodeCamp) locally outside of your local copy of the freeCodeCamp mobile repo. Your folder structure should look like this: - ```console + ```bash ├── freeCodeCamp ├── mobile ``` 2. Change the directory to the freeCodeCamp repo: - ```console + ```bash cd freeCodeCamp ``` @@ -378,25 +378,25 @@ Follow these steps: #### **macOS/Linux** - ```console + ```bash cp sample.env .env ``` #### **Windows** - ```console + ```bash copy sample.env .env ``` 4. Install the dependencies for the freeCodeCamp repo: - ```console + ```bash pnpm install && pnpm run create:shared ``` 5. Generate the challenge data JSON file: - ```console + ```bash pnpm run build:curriculum ``` @@ -404,54 +404,54 @@ Follow these steps: #### **macOS/Linux** - ```console + ```bash cp ./shared/config/curriculum.json ../mobile/mobile-app/curriculum.json ``` #### **Windows** - ```console + ```bash copy .\shared\config\curriculum.json ..\mobile\mobile-app\curriculum.json ``` 7. Change directory to the mobile app: - ```console + ```bash cd ../mobile/mobile-app ``` 8. Install the dependencies for the mobile app: - ```console + ```bash flutter pub get ``` 9. Update the test file to use the challenge data JSON file: - ```console + ```bash sed -i '' 's/..\/..\/shared\/config\/curriculum.json/.\/curriculum.json/g' test/widget_test.dart ``` 10. Generate the challenge files: - ```console + ```bash flutter test test/widget_test.dart ``` 11. Start a local server to serve the challenge files with the help of `serve` package: - ```console + ```bash npx serve ``` 12. In a different terminal go back to the freeCodeCamp repo: - ```console + ```bash cd ../../freeCodeCamp ``` 13. Run the cypress tests: - ```console + ```bash pnpm cypress run --config retries=1,screenshotOnRunFailure=false,video=false,baseUrl=http://localhost:3000/generated-tests/,specPattern=cypress/e2e/mobile-learn/test-challenges.js -s cypress/e2e/mobile-learn/test-challenges.js -b chrome ``` @@ -482,7 +482,7 @@ If you are on a different OS and/or are still running into issues, see [getting If you face issues with the UI, or build errors a cleanup can be useful: -```console +```bash flutter clean ``` diff --git a/docs/i18n/japanese/how-to-setup-wsl.md b/docs/i18n/japanese/how-to-setup-wsl.md index 0777f99233e..d482512a3b1 100644 --- a/docs/i18n/japanese/how-to-setup-wsl.md +++ b/docs/i18n/japanese/how-to-setup-wsl.md @@ -10,7 +10,7 @@ ## WSLを有効化する -[公式ドキュメント](https://docs.microsoft.com/en-us/windows/wsl/install-win10) の指示に従って、WSL1 をインストールしてから、WSL2 にアップグレードしてください。 +Follow the instructions on the [official documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL2. ## Ubuntu をインストールする @@ -20,9 +20,11 @@ > > While you may use other non-Debian-based distributions, they all come with their own 'gotchas' that are beyond the scope of this guide. + As of November 2023, Ubuntu and Debian are the only Linux distributions [officially supported by Playwright](https://playwright.dev/docs/intro#system-requirements), the end-to-end testing library used by freeCodeCamp. + 2. OS の依存関係を更新します。 - ```console + ```bash sudo apt update sudo apt upgrade -y @@ -70,23 +72,23 @@ Docker Desktop がインストールされたら、[この手順に従って](ht WSL2 で動作するように Docker Desktop を設定したら、次の手順に従って MongoDB サービスを起動します。 -1. 新しい Ubuntu-18.04 端末を起動します。 +1. Launch a new Ubuntu terminal -2. Pull `MongoDB 4.0.x` from Docker Hub +2. Pull MongoDB from Docker Hub. Please refer to the [Prerequisites](how-to-setup-freecodecamp-locally.md#Prerequisites) table for the current version of MongoDB used by freeCodeCamp. For example, if the version number is `5.0.x`, replace `<x.y>` with `5.0` in the following two code snippets. - ```console - docker pull mongo:4.0 + ```bash + docker pull mongo:<x.y> ``` 3. MongoDB サービスをポート `27017` で起動し、システム再起動時に自動的に実行するように設定します。 - ```console + ```bash docker run -it \ -v mongodata:/data/db \ -p 27017:27017 \ --name mongodb \ --restart unless-stopped \ - -d mongo:4.0 + -d mongo:<x.y> ``` 4. Windows または Ubuntu から `mongodb://localhost:27017` でサービスにアクセスできるようになりました。 @@ -95,25 +97,17 @@ WSL2 で動作するように Docker Desktop を設定したら、次の手順 Node バージョンマネジャー - [nvm](https://github.com/nvm-sh/nvm#installing-and-updating) を使用して、Node.js 用の LTS リリースをインストールすることを推奨します。 -インストールしたら、以下のようなコマンドを使って、Node.js バージョンをインストールして使用します。 +Once installed use this command to install and use the latest Node.js LTS version: -```console +```bash nvm install --lts - -# OR -# nvm install <version> - -nvm install 14 - -# Usage -# nvm use <version> - -nvm use 12 ``` +For instructions on installing and using a different version of Node.js, please refer to the [nvm docs](https://github.com/nvm-sh/nvm#usage). + Node.js comes bundled with `npm`, which you can use to install `pnpm`: -```console +```bash npm install -g pnpm ``` @@ -125,7 +119,104 @@ Now that you have installed the pre-requisites, follow [our local setup guide](h > > Please note, at this time the setup for Cypress tests (and related GUI needs) is a work in progress. それでも、ほとんどのコードベースで作業できるはずです。 -## 有用なリンク +## Optimize Windows and WSL + + > [!NOTE] + > + > The following tips were collected from across the web and have not gone through vigorous testing. Your mileage may vary. + +### Adjust processer scheduling for background services + +This may reduce incidents of Docker containers crashing due to lack of resources. + +Open the System Properties control panel by pressing <kbd>Win + R</kbd> and entering `sysdm.cpl` + +<details> + <summary> + Enter <code>sysdm.cpl</code> in the Run dialog (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/run-sysdm.png" alt="Enter `sysdm.cpl` in the Run dialog" /> +</details> +<br> + +Go to Advanced -> Performance -> Settings… + +<details> + <summary> + Performance Settings button under Advanced tab in System Properties (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-performance-settings.png" alt="Performance Settings button under Advanced tab in System Properties" /> +</details> +<br> + +Under Advanced -> Processor scheduling, choose "Background services". Do not close the window. Continue to the next tip. + +<details> + <summary> + Background services radio button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/background-services.png" alt="Background services radio button under Advanced tab in Performance Options" /> +</details> + +### Increase the size of Windows paging file for the system drive + +Under Advanced -> Virtual memory, click "Change…" + +<details> + <summary> + Change virtual memory button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-virtual-memory.png" alt="Change virtual memory button under Advanced tab in Performance Options" /> +</details> +<br> + +Choose "Custom size". Set the initial size to 1.5x and the maximum size to 3x of your physical memory. Then click "Set". + +<details> + <summary> + Set custom size button in Virtual Memory window (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/set-custom-size.png" alt="Set custom size button in Virtual Memory window" /> +</details> + +### Increase the size of memory allocated to WSL + +Create a [`.wslconfig` file](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) in your [`%UserProfile%` directory](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#wslconfig) (typically `C:\Users\<UserName>\.wslconfig`). Please read the [WSL documentation](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) carefully and replace `x` with values that suit your own needs: + +```ini +# Settings apply across all Linux distros running on WSL 2 +[wsl2] + +# How much memory to assign to the WSL 2 VM. The default value might not be enough +memory=xGB + +# How much swap space to add to the WSL 2 VM, default is 25% of available RAM +swap=xGB +``` + +### Increase Node.js max old space size + +This fixes the ["JavaScript heap out of memory" error](https://stackoverflow.com/a/54456814) with ESLint. Add the following to your `~/.bashrc` or `~/.zshrc`: + +```sh +export NODE_OPTIONS="--max-old-space-size=4096" +``` + +### Avoid `pnpm run test` + +Instead, use the script [appropriate to your PR](https://forum.freecodecamp.org/t/wsl-performance-issues-while-working-on-the-codebase/644215/2#:~:text=usually%2C%20you%20just%20want%20to%20test%20something%20specific%20to%20either%20the%20curriculum%20or%20the%20client%20or%20the%20api%20-%20almost%20never%20all%203.); either `pnpm run test:api`, `pnpm run test:curriculum`, or `pnpm run test-client`. + +## Useful Links - [A WSL2 Dev Setup with Ubuntu 20.04, Node.js, MongoDB, VS Code, and Docker](https://hn.mrugesh.dev/wsl2-dev-setup-with-ubuntu-nodejs-mongodb-and-docker) - an article by Mrugesh Mohapatra (Staff Developer at freeCodeCamp.org) - よくある質問: diff --git a/docs/i18n/japanese/how-to-work-on-coding-challenges.md b/docs/i18n/japanese/how-to-work-on-coding-challenges.md index ac51978868d..72acba94c73 100644 --- a/docs/i18n/japanese/how-to-work-on-coding-challenges.md +++ b/docs/i18n/japanese/how-to-work-on-coding-challenges.md @@ -232,6 +232,8 @@ Sentences should be clear and concise with minimal jargon. If used, jargon shoul Keep paragraphs short (around 1-4 sentences). People are more likely to read several short paragraphs than a wall of text. +Use american english, e.g., use `labeled` instead of `labelled`. + Challenge text should use the second person ("you") to help to give it a conversational tone. This way the text and instructions seem to speak directly to the camper working through the challenge. Try to avoid using the first person ("I", "we", "let's", and "us"). Don't use outbound links. These interrupt the flow. Campers should never have to google anything during these challenges. If there are resources you think campers would benefit from, add them to the challenge's Guide-related article. @@ -306,7 +308,7 @@ The following is an example of code: 私たちの目標は、チャレンジが教えようとしている単一のポイントを伝え、そのポイントを理解していることをテストすることです。 -チャレンジテストでは、Node.js と Chai.js アサーションライブラリを使用できます。 また、必要に応じて、`code` 変数からユーザーが生成したコードにアクセスすることもできます。 さらに、 `__helpers` オブジェクトは、テストを記述するプロセスを簡略化するいくつかの関数を公開します。 利用可能な関数は、_client/src/utils/curriculum-helpers.ts_ に定義されています。 +チャレンジテストでは、Node.js と Chai.js アサーションライブラリを使用できます。 また、必要に応じて、`code` 変数からユーザーが生成したコードにアクセスすることもできます。 さらに、 `__helpers` オブジェクトは、テストを記述するプロセスを簡略化するいくつかの関数を公開します。 The available functions are defined in the [curriculum-helpers](https://github.com/freeCodeCamp/curriculum-helpers/blob/main/lib/index.ts) repo. ## Formatting Seed Code diff --git a/docs/i18n/japanese/how-to-work-on-localized-client-webapp.md b/docs/i18n/japanese/how-to-work-on-localized-client-webapp.md index 81577cdd4fa..67f81618672 100644 --- a/docs/i18n/japanese/how-to-work-on-localized-client-webapp.md +++ b/docs/i18n/japanese/how-to-work-on-localized-client-webapp.md @@ -16,7 +16,7 @@ i18n フレームワークとツールがどのように機能するかを理解 Most of the files for translating the platform are located in the [`client/i18n`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n) folder. Each language has a directory that contains JSON files with the translations. -```console +```bash config └── i18n.ts ... diff --git a/docs/i18n/japanese/how-to-work-on-the-docs-theme.md b/docs/i18n/japanese/how-to-work-on-the-docs-theme.md index 9439c803b30..bc665e2f8d1 100644 --- a/docs/i18n/japanese/how-to-work-on-the-docs-theme.md +++ b/docs/i18n/japanese/how-to-work-on-the-docs-theme.md @@ -47,7 +47,7 @@ Typically you would not need to change any configuration or build the site local Install freeCodeCamp locally ([see the local setup guide](how-to-setup-freecodecamp-locally)), we bundled the CLI with the development tools so you can run the command below as needed from the root of the repo: -```console +```bash pnpm run docs:serve ``` diff --git a/docs/i18n/japanese/troubleshooting-development-issues.md b/docs/i18n/japanese/troubleshooting-development-issues.md index 962fd04362c..e368b7c331e 100644 --- a/docs/i18n/japanese/troubleshooting-development-issues.md +++ b/docs/i18n/japanese/troubleshooting-development-issues.md @@ -16,7 +16,7 @@ If you are on a different OS or are still facing issues, see [getting help](#get When you build the client, Gatsby will cache the Fonts, language strings, and UI. If one of them isn't cached, run the following: -```console +```bash pnpm run clean pnpm install pnpm run seed @@ -53,7 +53,7 @@ git clean -ifdX If you can't sign in, and instead you see a banner with an error message saying that the error will be reported to freeCodeCamp, please double-check that your local port `3000` is not in use by a different program. #### **From Terminal:** -```console +```bash netstat -a | grep "3000" tcp4 0 0 0.0.0.0:3000 DESKTOP LISTEN diff --git a/docs/i18n/portuguese/devops.md b/docs/i18n/portuguese/devops.md index aba9c3f87c0..80c8f85cec6 100644 --- a/docs/i18n/portuguese/devops.md +++ b/docs/i18n/portuguese/devops.md @@ -303,19 +303,19 @@ Você deve manter as VMs atualizadas realizando atualizações e atualizações. Atualize informações do pacote -```console +```bash sudo apt update ``` Atualize pacotes instalados -```console +```bash sudo apt upgrade -y ``` Limpe pacotes não utilizados -```console +```bash sudo apt autoremove -y ``` @@ -331,7 +331,7 @@ Provisionando VMs com o código 1. Instale o NGINX e configure a partir do repositório. - ```console + ```bash sudo su cd /var/www/html @@ -352,7 +352,7 @@ Provisionando VMs com o código Mova os certificados existentes: - ```console + ```bash # Localmente scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -364,7 +364,7 @@ Provisionando VMs com o código Atualize as configurações upstream: - ```console + ```bash vi configs/upstreams.conf ``` @@ -382,7 +382,7 @@ Provisionando VMs com o código 1. Verifique o estado do serviço NGINX usando o comando abaixo: - ```console + ```bash sudo systemctl status nginx ``` @@ -396,13 +396,13 @@ Configure as mudanças das instâncias do NGINX que são mantidas no GitHub, est 1. SSH na instância e digite sudo -```console +```bash sudo su ``` 2. Obtenha o código de configuração mais recente. -```console +```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -410,7 +410,7 @@ git reset --hard origin/main 3. Teste e recarregue a configuração [com Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). -```console +```bash nginx -t nginx -s reload ``` @@ -419,7 +419,7 @@ nginx -s reload 1. Instale ferramentas de compilação para binários node (`node-gyp`), etc. -```console +```bash sudo apt install build-essential ``` @@ -431,19 +431,19 @@ Provisionando MVs com o código 2. Instale o pnpm globalmente. -```console +```bash npm install -g pnpm ``` 3. Instale o pm2 globalmente. -```console +```bash npm install -g pm2 ``` 4. Faça a clonagem do freeCodeCamp, configure env e as chaves. -```console +```bash git clone https://github.com/freeCodeCamp/freeCodeCamp.git cd freeCodeCamp git checkout prod-current # ou qualquer outra branch a ser implementada @@ -453,36 +453,36 @@ git checkout prod-current # ou qualquer outra branch a ser implementada 6. Instale as dependências -```console +```bash pnpm install ``` 7. Configure o pm2 `logrotate` e inicialize no boot -```console +```bash pm2 install pm2-logrotate pm2 startup ``` 8. Compile o servidor -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 9. Inicie as instâncias -```console +```bash pnpm start:server ``` ### Registro e monitoramento -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -496,31 +496,31 @@ Mudanças no código devem ser implementadas na instância da API de tempos em t 1. Pare todas as instâncias -```console +```bash pm2 stop all ``` 2. Instale as dependências -```console +```bash pnpm install ``` 3. Compile o servidor -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 4. Inicie as instâncias -```console +```bash pnpm start:server && pm2 logs ``` #### 2. Atualizações contínuas - Usadas para mudanças lógicas no código. -```console +```bash pnpm reload:server && pm2 logs ``` @@ -532,7 +532,7 @@ pnpm reload:server && pm2 logs 2. Atualize o pm2 para que ele use a nova versão -```console +```bash pm2 update ``` @@ -540,7 +540,7 @@ pm2 update 1. Instale ferramentas de compilação para os binários do node (`node-gyp` e outros). -```console +```bash sudo apt install build-essential ``` @@ -552,7 +552,7 @@ Provisionando MVs com o código 2. Atualize o `npm` e instale o PM2 e configure `logrotate` e inicie quando reiniciar - ```console + ```bash npm i -g npm@8 npm i -g pm2@4 npm install -g serve@13 @@ -562,7 +562,7 @@ Provisionando MVs com o código 3. Faça a clonagem do client, configure env e as chaves. - ```console + ```bash git clone https://github.com/freeCodeCamp/client-config.git client cd client ``` @@ -571,7 +571,7 @@ Provisionando MVs com o código > A fazer: Esta configuração precisa ser movida para S3 ou armazenamento Azure Blob > - > ```console + > ```bash > echo "serve -c ../serve.json -p 50505 www" > client-start-primary.sh > chmod +x client-start-primary.sh > pm2 delete client-primary @@ -584,11 +584,11 @@ Provisionando MVs com o código ### Registro e monitoramento -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -602,7 +602,7 @@ As alterações no código precisam ser implementadas para as instâncias de API 1. Pare todas as instâncias - ```console + ```bash pm2 stop all ``` @@ -610,13 +610,13 @@ As alterações no código precisam ser implementadas para as instâncias de API 3. Inicie as instâncias - ```console + ```bash pm2 start all --update-env && pm2 logs ``` #### 2. Atualizações contínuas - Usado par mudanças lógicas no código. -```console +```bash pm2 reload all --update-env && pm2 logs ``` @@ -636,7 +636,7 @@ Provisionando MVs com código 1. Instale o NGINX e configure a partir do repositório. - ```console + ```bash sudo su cd /var/www/html @@ -657,7 +657,7 @@ Provisionando MVs com código Mova os certificados existentes: - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -669,7 +669,7 @@ Provisionando MVs com código Atualize as configurações upstream: - ```console + ```bash vi configs/upstreams.conf ``` @@ -687,7 +687,7 @@ Provisionando MVs com código 1. Instale o Docker e configure a partir do repositório - ```console + ```bash git clone https://github.com/freeCodeCamp/chat-config.git chat cd chat ``` @@ -696,7 +696,7 @@ Provisionando MVs com código 3. Execute o servidor do rocket-chat - ```console + ```bash docker-compose config docker-compose up -d ``` @@ -705,13 +705,13 @@ Provisionando MVs com código 1. Verifique o estado do serviço NGINX usando o comando abaixo: - ```console + ```bash sudo systemctl status nginx ``` 2. Verifique o estado das instâncias do Docker que estão sendo executadas com: - ```console + ```bash docker ps ``` @@ -723,13 +723,13 @@ As alterações na configuração das nossas instâncias NGINX são mantidas no 1. Use o SSH na instância e digite sudo - ```console + ```bash sudo su ``` 2. Obtenha o código de configuração mais recente. - ```console + ```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -737,7 +737,7 @@ As alterações na configuração das nossas instâncias NGINX são mantidas no 3. Teste e recarregue a configuração [com Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). - ```console + ```bash nginx -t nginx -s reload ``` @@ -746,44 +746,44 @@ As alterações na configuração das nossas instâncias NGINX são mantidas no 1. Use SSH na instância e vá para onde está o arquivo de configuração do chat - ```console + ```bash cd ~/chat ``` 2. Obtenha o código de configuração mais recente. - ```console + ```bash git fetch --all --prune git reset --hard origin/main ``` 3. Obtenha a imagem docker mais recente do Rocket.Chat - ```console + ```bash docker-compose pull ``` 4. Atualize as instâncias que estão executando - ```console + ```bash docker-compose up -d ``` 5. Veja se as instâncias estão executando - ```console + ```bash docker ps ``` 6. Limpe recursos estranhos - ```console + ```bash docker system prune --volumes ``` Resultado: - ```console + ```bash WARNING! This will remove: - all stopped containers - all networks not used by at least one container @@ -802,7 +802,7 @@ As alterações na configuração das nossas instâncias NGINX são mantidas no ssh na VM (hospedada na Digital Ocean). -```console +```bash cd tools git pull origin master pnpm install @@ -814,7 +814,7 @@ pm2 restart contribute-app Liste as versões do node e do npm instaladas -```console +```bash nvm -v node -v npm -v @@ -824,25 +824,25 @@ nvm ls Instale a versão LTS Node.js mais recente e reinstale qualquer pacote global -```console +```bash nvm install --lts --reinstall-packages-from=default ``` Verifique os pacotes instalados -```console +```bash npm ls -g --depth=0 ``` Coloque um alias na versão `default` do Node.js para que seja a LTS atual (marcada como a versão major mais recente) -```console +```bash nvm alias default 16 ``` (Opcional) Desinstale versões antigas -```console +```bash nvm uninstall <versão> ``` @@ -852,31 +852,31 @@ nvm uninstall <versão> Obtenha as instruções/comandos de desinstalação com o comando `unstartup` e use a saída para remover os serviços systemctl -```console +```bash pm2 unstartup ``` Obtenha as instruções/comandos de instalação com o comando `startup` e use a saída para adicionar os serviços systemctl -```console +```bash pm2 startup ``` Comandos rápidos PM2 para listar, reviver processos salvos, etc. -```console +```bash pm2 ls ``` -```console +```bash pm2 resurrect ``` -```console +```bash pm2 save ``` -```console +```bash pm2 logs ``` @@ -898,32 +898,32 @@ Atualmente, atualizar os agentes requer que sejam removidos e reconfigurados. Is 1. Vá e verifique o estado do serviço - ```console + ```bash cd ~/azagent sudo ./svc.sh status ``` 2. Pare o serviço - ```console + ```bash sudo ./svc.sh stop ``` 3. Desinstale o serviço - ```console + ```bash sudo ./svc.sh uninstall ``` 4. Remova o agente do pool do pipeline - ```console + ```bash ./config.sh remove ``` 5. Remova os arquivos de configuração - ```console + ```bash cd ~ rm -rf ~/azagent ``` @@ -938,7 +938,7 @@ Nós usamos [uma ferramenta de linha de comando](https://github.com/freecodecamp 2. Configure o script para pegar a lista de email. - ```console + ```bash cd /home/freecodecamp/scripts/emails cp sample.env .env ``` @@ -947,7 +947,7 @@ Nós usamos [uma ferramenta de linha de comando](https://github.com/freecodecamp 3. Rode o script. - ```console + ```bash node get-emails.js emails.csv ``` diff --git a/docs/i18n/portuguese/how-to-add-cypress-tests.md b/docs/i18n/portuguese/how-to-add-cypress-tests.md index 4268ac9a311..1aa9b2ac244 100644 --- a/docs/i18n/portuguese/how-to-add-cypress-tests.md +++ b/docs/i18n/portuguese/how-to-add-cypress-tests.md @@ -26,25 +26,25 @@ Para executar testes usando compilações de produção, substitua `dev` por `pr - Para executar todos os testes no diretório `./cypress`: - ```console + ```bash pnpm run cypress:dev:run ``` - Para executar um único teste: - ```console + ```bash pnpm run cypress run --spec=cypress/<caminho_para_o_arquivo_de_teste> ``` Por exemplo: - ```console + ```bash pnpm run cypress run --spec=cypress/e2e/default/landing.ts ``` - Para criar uma versão de compilação, inicie o servidor de desenvolvimento e execute todos os testes cypress contínuos e funcionais existentes: - ```console + ```bash pnpm run e2e:dev:run ``` @@ -57,25 +57,25 @@ Se o ambiente Gitpod não foi criado automaticamente: - Siga o [guia de instalação do MongoDB](https://www.mongodb.com/basics/get-started). - Crie um arquivo de configuração. -```console +```bash pnpm run create:shared ``` - Crie a base de dados -```console +```bash pnpm run seed ``` - Desenvolva o servidor e o client -```console +```bash pnpm run develop ``` ### 2. Instale as ferramentas de compilação do Cypress -```console +```bash pnpm run cypress:install-build-tools ``` diff --git a/docs/i18n/portuguese/how-to-add-playwright-tests.md b/docs/i18n/portuguese/how-to-add-playwright-tests.md index a214eb8ab29..5d2de16375a 100644 --- a/docs/i18n/portuguese/how-to-add-playwright-tests.md +++ b/docs/i18n/portuguese/how-to-add-playwright-tests.md @@ -4,7 +4,7 @@ Para instalar o Playwright, execute: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -181,49 +181,49 @@ Para executar testes com o Playwright, verifique o seguinte - Não se esqueça de navegar primeiro para o repositório e2e - ```console + ```bash cd e2e ``` - Para executar testes no modo auxiliar de UI: - ```console + ```bash npx playwright test --ui ``` - Para executar um único teste: - ```console + ```bash npx playwright test <nome_do_arquivo> ``` Por exemplo: - ```console + ```bash npx playwright test landing-page.spec.ts ``` - Para executar um conjunto de arquivos de teste nas respectivas pastas: - ```console + ```bash npx playwright test <caminho_da_pasta1> <caminho_da_pasta2> ``` Por exemplo: - ```console + ```bash npx playwright test tests/todo-page/ tests/landing-page/ ``` - Para executar o teste com o título: - ```console + ```bash npx playwright test -g <título> ``` Por exemplo: - ```console + ```bash npx playwright test -g "add a todo item" ``` @@ -233,13 +233,13 @@ Como o Playwright é executado no Node.js, você pode depurá-lo com seu depurad - Depuração de todos os testes: - ```console + ```bash npx playwright test --debug ``` - Depuração de um arquivo de teste: - ```console + ```bash npx playwright test example.spec.ts --debug ``` @@ -247,7 +247,7 @@ Como o Playwright é executado no Node.js, você pode depurá-lo com seu depurad O HTML Reporter mostra um relatório completo de seus testes, que permite filtrar o relatório por navegadores, testes que passaram, testes que falharam, testes ignorados e testes não confiáveis. -```console +```bash npx playwright show-report ``` @@ -257,13 +257,13 @@ O Playwright, geralmente, é uma ferramenta com pouquíssimas chances de erro. O - (MacOs e Linux) Se executar o Playwright resultar em um erro devido a dependências do kernel, execute o seguinte comando: - ```console + ```bash pnpm run playwright:install-build-tools-linux ``` - Um erro comum visto no Playwright é o seguinte: - ```console + ```bash Error: page.goto: Could not connect: Connection refused =========================== logs =========================== navigating to "https://127.0.0.1:8000/", waiting until "load" @@ -284,7 +284,7 @@ O Playwright, geralmente, é uma ferramenta com pouquíssimas chances de erro. O - Outro erro comum visto no Playwright é o seguinte: - ```console + ```bash Protocol error (Network.getResponseBody): Request content was evicted from inspector cache ``` @@ -305,25 +305,25 @@ Se, ao iniciar o ambiente do Gitpod, o ambiente não foi desenvolvido automatica - Criar o arquivo .env - ```console + ```bash cp sample.env .env ``` - Crie um arquivo de configuração. - ```console + ```bash pnpm run create:shared ``` - Crie o banco de dados - ```console + ```bash pnpm run seed ``` - Desenvolva o servidor e o client - ```console + ```bash pnpm run develop ``` @@ -331,7 +331,7 @@ Se, ao iniciar o ambiente do Gitpod, o ambiente não foi desenvolvido automatica Para instalar as dependências necessárias para executar o Playwright, execute o seguinte comando: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -339,6 +339,6 @@ pnpm run playwright:install-build-tools Para executar todos os testes do Playwright, execute o seguinte comando: -```console +```bash npx playwright test ``` diff --git a/docs/i18n/portuguese/how-to-contribute-to-the-codebase.md b/docs/i18n/portuguese/how-to-contribute-to-the-codebase.md index 57884f63660..b30cc951299 100644 --- a/docs/i18n/portuguese/how-to-contribute-to-the-codebase.md +++ b/docs/i18n/portuguese/how-to-contribute-to-the-codebase.md @@ -10,13 +10,13 @@ Siga estes passos: 1. Certifique-se que está no branch `main`: - ```console + ```bash git status ``` Você deve ver um resultado como este: - ```console + ```bash Na branch main Sua branch está atualizada com 'origin/main'. @@ -25,7 +25,7 @@ Siga estes passos: Se você receber uma mensagem diferente, você não está em main ou seu diretório de trabalho não está limpo. Resolva quaisquer arquivos/commits pendentes e saia de `main`: - ```console + ```bash git checkout main ``` @@ -39,25 +39,25 @@ Siga estes passos: Atualize sua cópia do repositório upstream do freeCodeCamp: - ```console + ```bash git fetch upstream ``` Faça um hard reset na sua branch main com a main do freeCodeCamp: - ```console + ```bash git reset --hard upstream/main ``` Faça um push da sua branch main para a origin para obter um histórico claro em seu fork do GitHub: - ```console + ```bash git push origin main --force ``` Você pode validar se sua main atual combina com upstream/main fazendo um diff: - ```console + ```bash git diff upstream/main ``` @@ -69,7 +69,7 @@ Siga estes passos: Veja se você está na `main` como explicado antes e crie uma branch a partir dela: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -93,13 +93,13 @@ Siga estes passos: 7. Verifique e confirme os arquivos que você está atualizando: - ```console + ```bash git status ``` Isso deve mostrar uma lista dos arquivos `unstaged` que você editou. - ```console + ```bash Na branch feat/documentation Sua branch está atualizada com 'upstream/feat/documentation'. @@ -118,25 +118,25 @@ Siga estes passos: Nesta etapa, você só deve marcar arquivos que você editou ou adicionou. Você pode executar um reset e resolver arquivos que você não pretendeu mudar se necessário. - ```console + ```bash git add caminho/para/meu/arquivo/alterado.ext ``` Ou você pode adicionar todos os arquivos `unstaged` para a área de preparação: - ```console + ```bash git add . ``` Apenas os arquivos que foram movidos para a área de staging serão adicionados quando você fizer um commit. - ```console + ```bash git status ``` Resultado: - ```console + ```bash Na branch feat/documentation Sua branch está atualizada com 'upstream/feat/documentation'. @@ -151,7 +151,7 @@ Siga estes passos: Agora, você pode fazer o commit das alterações com uma pequena mensagem assim: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -181,7 +181,7 @@ Siga estes passos: 9. Se você se deu conta que precisa editar um arquivo ou atualizar a mensagem de commit você pode fazer isso assim: - ```console + ```bash git commit --amend ``` @@ -189,7 +189,7 @@ Siga estes passos: 10. Em seguida, você pode fazer push das suas alterações no seu fork: - ```console + ```bash git push origin branch/nome-aqui ``` diff --git a/docs/i18n/portuguese/how-to-open-a-pull-request.md b/docs/i18n/portuguese/how-to-open-a-pull-request.md index 393b18e3e76..b9ef1984b01 100644 --- a/docs/i18n/portuguese/how-to-open-a-pull-request.md +++ b/docs/i18n/portuguese/how-to-open-a-pull-request.md @@ -115,14 +115,14 @@ Quando se está trabalhando em erros normais e funcionalidades no seu branch `ma 1. Faça um rebase na sua cópia local: - ```console + ```bash git checkout <pr-branch> git pull --rebase upstream main ``` 2. Resolva quaisquer conflitos e adicione / edite commits - ```console + ```bash # isso git add . git commit -m "chore: resolve conflitos" @@ -134,7 +134,7 @@ Quando se está trabalhando em erros normais e funcionalidades no seu branch `ma 3. Faça um push das suas alterações para o PR - ```console + ```bash git push --force origin <pr-branch> ``` @@ -144,7 +144,7 @@ Quando você estiver trabalhando em funcionalidades para nossos próximos branch 1. Certifique-se de que seu upstream esteja sincronizado com seu local: - ```console + ```bash git checkout main git fetch --all --prune git checkout next-python-projects @@ -155,7 +155,7 @@ Quando você estiver trabalhando em funcionalidades para nossos próximos branch a. Exclua seu branch local depois de ter feito um backup (se você ainda o tem localmente): - ```console + ```bash git checkout <pr-branch-nome> # exemplo: @@ -171,7 +171,7 @@ Quando você estiver trabalhando em funcionalidades para nossos próximos branch b. Ou apenas faça um backup do seu branch de PR (se você não o tem localmente): - ```console + ```bash git checkout -b <backup-branch-nome> origin/<pr-branch-nome> # exemplo: @@ -180,14 +180,14 @@ Quando você estiver trabalhando em funcionalidades para nossos próximos branch 3. Comece do zero: - ```console + ```bash git checkout -b <pr-branch-nome> next-python-projects git cherry-pick <commit-hash> ``` 4. Resolva os conflitos, faça a limpeza, instale as dependências e execute os testes - ```console + ```bash pnpm run clean pnpm install @@ -201,6 +201,6 @@ Quando você estiver trabalhando em funcionalidades para nossos próximos branch 5. Se tudo estiver correto, faça um push ao PR - ```console + ```bash git push --force origin <pr-branch-nome> ``` diff --git a/docs/i18n/portuguese/how-to-setup-freecodecamp-locally.md b/docs/i18n/portuguese/how-to-setup-freecodecamp-locally.md index 33d4ef7baf0..291413a2f30 100644 --- a/docs/i18n/portuguese/how-to-setup-freecodecamp-locally.md +++ b/docs/i18n/portuguese/how-to-setup-freecodecamp-locally.md @@ -75,7 +75,7 @@ Apoiamos principalmente o desenvolvimento em sistemas Linux e Unix, como o Ubunt Se o Node.js já estiver instalado em sua máquina, execute os seguintes comandos para validar as versões: -```console +```bash node -v pnpm -v ``` @@ -142,7 +142,7 @@ Execute estes comandos em sua máquina local: 2. Clone seu fork do freeCodeCamp, substituindo `YOUR_USER_NAME` pelo seu nome de usuário do GitHub - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git ``` @@ -160,25 +160,25 @@ Agora que você baixou uma cópia do seu fork, será necessário configurar um r 1. Mude o diretório para o novo diretório freeCodeCamp: - ```console + ```bash cd freeCodeCamp ``` 2. Adicione uma referência remota ao repositório principal freeCodeCampo: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git ``` 3. Certifique-se de que a configuração esteja correta: - ```console + ```bash git remote -v ``` O resultado deve ser algo parecido com o mostrado abaixo (substituindo `YOUR_USER_NAME` com seu nome de usuário do GitHub): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch) origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push) upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch) @@ -203,12 +203,12 @@ Como sempre, fique à vontade para perguntar na [categoria 'Contributors' (colab As chaves de API padrão e variáveis de ambiente são armazenadas no arquivo `sample.env`. Esse arquivo precisa ser copiado para um novo arquivo chamado `.env` que é acessado dinamicamente durante a etapa de instalação. -```console +```bash # Crie uma cópia da "sample.env" e a nomeie como ".env". # Preencha-o com as chaves e segredos de API necessários ``` -```console +```bash cp sample.env .env ``` @@ -220,7 +220,7 @@ As chaves no arquivo `.env` _não_ precisam ser alteradas para executar o aplica Esta etapa vai instalar as dependências necessárias para a execução da aplicação: -```console +```bash pnpm install && pnpm run create:shared ``` @@ -234,7 +234,7 @@ Antes de executar a aplicação localmente, você precisará iniciar o serviço Inicie o servidor do MongoDB em um terminal separado: -```console +```bash mongod ``` @@ -242,15 +242,14 @@ mongod Em seguida, vamos criar o banco de dados. Nesta etapa, executamos o comando abaixo que preenche o servidor MongoDB com alguns conjuntos de dados iniciais que são requeridos pelos serviços. Dentre outras coisas, incluem alguns esquemas. -```console +```bash pnpm run seed ``` Por padrão, você será conectado como um novo usuário sem nenhuma certificação concluída. Execute os seguintes comandos se precisar desenvolver com certificados concluídos: -```console +```bash pnpm run seed:certified-user -pnpm run seed:exams ``` > [!WARNING] Executar `pnpm run seed:certified-user` desconectará você. Você precisará limpar os cookies do seu navegador e fazer login novamente. @@ -259,7 +258,7 @@ pnpm run seed:exams Agora você pode iniciar o servidor de API e os aplicativos do client. -```console +```bash pnpm run develop ``` @@ -279,11 +278,12 @@ Se você tiver problemas durante a instalação, confira a [seção de solução Uma rápida referência aos comandos que você precisará ao trabalhar localmente. -| comando | descrição | -| ------------------------------ | -------------------------------------------------------------------------------------------------- | -| `pnpm install` | Instala/reinstala todas as dependências e inicializa os diferentes serviços. | -| `pnpm run seed` | Cria usuários de testes autorizados e os insere no MongoDB. | -| `pnpm run seed:certified-user` | Cria usuários de testes autorizados com certificações totalmente completas e os insere no MongoDB. | -| `pnpm run seed:exams` | Cria exames e os insere no MongoDB. | -| `pnpm run develop` | Inicia o servidor de API freeCodeCamp e aplicativos Cliente. | -| `pnpm run clean` | Desinstala todas as dependências e limpa os caches. | +| comando | descrição | +| ------------------------------ | ------------------------------------------------------------------------------------------------------------- | +| `pnpm install` | Instala/reinstala todas as dependências e inicializa os diferentes serviços. | +| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. Also runs `seed:exams` and `seed:surveys` below. | +| `pnpm run seed:certified-user` | Cria usuários de testes autorizados com certificações totalmente completas e os insere no MongoDB. | +| `pnpm run seed:exams` | Cria exames e os insere no MongoDB. | +| `pnpm run seed:surveys` | Creates surveys for defaults users and inserts them into MongoDB. | +| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | +| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | diff --git a/docs/i18n/portuguese/how-to-setup-freecodecamp-mobile-app-locally.md b/docs/i18n/portuguese/how-to-setup-freecodecamp-mobile-app-locally.md index d61a1ed4cbf..1490f52a24b 100644 --- a/docs/i18n/portuguese/how-to-setup-freecodecamp-mobile-app-locally.md +++ b/docs/i18n/portuguese/how-to-setup-freecodecamp-mobile-app-locally.md @@ -17,7 +17,7 @@ Comece instalando o software pré-requisito para seu sistema operacional. Se o Flutter já estiver instalado em sua máquina, execute os seguintes comandos para validar as versões: -```console +```bash flutter --version dart --version ``` @@ -70,7 +70,7 @@ Execute esses comandos em sua máquina local: 2. Clone seu fork do freeCodeCamp, substituindo `YOUR_USER_NAME` pelo seu nome de usuário do GitHub - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/mobile.git ``` @@ -88,25 +88,25 @@ Agora que você baixou uma cópia do seu fork, será necessário configurar um r 1. Mude o diretório para o novo diretório `mobile`: - ```console + ```bash cd mobile ``` 2. Adicione uma referência remota ao repositório principal mobile do freeCodeCamp: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/mobile.git ``` 3. Certifique-se de que a configuração esteja correta: - ```console + ```bash git remote -v ``` O resultado deve ser algo parecido com o mostrado abaixo (substituindo `YOUR_USER_NAME` com seu nome de usuário do GitHub): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/mobile.git (fetch) origin https://github.com/YOUR_USER_NAME/mobile.git (push) upstream https://github.com/freeCodeCamp/mobile.git (fetch) @@ -129,20 +129,20 @@ E como sempre, fique à vontade em perguntar na [categoria 'Contributors' (colab As chaves de API padrão e variáveis de ambiente são armazenadas no arquivo `sample.env`. Esse arquivo precisa ser copiado para um novo arquivo chamado `.env` que é acessado dinamicamente durante a etapa de instalação. Lembre-se de mudar o diretório para `mobile-app` antes de executar os comandos a seguir. -```console +```bash # Crie uma cópia da "sample.env" e a nomeie como ".env". # Preencha-o com as chaves e segredos de API necessários: ``` #### **macOS/Linux** -```console +```bash cp sample.env .env ``` #### **Windows** -```console +```bash copy sample.env .env ``` @@ -152,7 +152,7 @@ As chaves no arquivo `.env` _ não _ precisam ser alteradas para executar o apli Esta etapa vai instalar as dependências necessárias para a execução do aplicativo: -```console +```bash flutter pub get ``` @@ -162,7 +162,7 @@ Inicie o emulador de sua escolha (Android ou iOS) e aguarde a conclusão do proc Agora, você pode iniciar o aplicativo executando o seguinte comando: -```console +```bash flutter run ``` @@ -176,13 +176,13 @@ Siga estes passos: 1. Certifique-se que está no branch `main`: - ```console + ```bash git status ``` Você deve ver um resultado como este: - ```console + ```bash Na branch main Sua branch está atualizada com 'origin/main'. @@ -191,7 +191,7 @@ Siga estes passos: Se você não está no main ou seu diretório de trabalho não está limpo, resolva quaisquer arquivos/commits e saia do `main`: - ```console + ```bash git checkout main ``` @@ -205,25 +205,25 @@ Siga estes passos: Atualize sua cópia local do repositório upstream da aplicação do freeCodeCamp para dispositivos móveis: - ```console + ```bash git fetch upstream ``` Faça um hard reset na sua branch main com a main da aplicação do freeCodeCamp para dispositivos móveis: - ```console + ```bash git reset --hard upstream/main ``` Faça um push da sua branch main para a origin para obter um histórico claro em seu fork do GitHub: - ```console + ```bash git push origin main --force ``` Você pode validar se sua main atual combina com upstream/main fazendo um diff: - ```console + ```bash git diff upstream/main ``` @@ -235,7 +235,7 @@ Siga estes passos: Veja se você está na `main` como explicado antes e crie uma branch a partir dela: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -259,13 +259,13 @@ Siga estes passos: 7. Verifique e confirme os arquivos que você está atualizando: - ```console + ```bash git status ``` Isso deve mostrar uma lista dos arquivos `unstaged` que você editou. - ```console + ```bash Na branch feat/documentation Sua branch está atualizada com 'upstream/feat/documentation'. @@ -282,25 +282,25 @@ Siga estes passos: Nesta etapa, você só deve marcar arquivos que você editou ou adicionou. Você pode executar um reset e resolver arquivos que você não pretendeu mudar se necessário. - ```console + ```bash git add caminho/para/meu/arquivo/alterado.ext ``` Ou você pode adicionar todos os arquivos `unstaged` para a área de preparação: - ```console + ```bash git add . ``` Apenas os arquivos que foram movidos para a área de staging serão adicionados quando você fizer um commit. - ```console + ```bash git status ``` Resultado: - ```console + ```bash Na branch feat/documentation Sua branch está atualizada com 'upstream/feat/documentation'. @@ -313,7 +313,7 @@ Siga estes passos: Agora, você pode fazer o commit das alterações com uma pequena mensagem assim: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -345,7 +345,7 @@ Siga estes passos: 9. Se você se deu conta que precisa editar um arquivo ou atualizar a mensagem de commit você pode fazer isso assim: - ```console + ```bash git commit --amend ``` @@ -353,7 +353,7 @@ Siga estes passos: 10. Em seguida, você pode fazer push das suas alterações no seu fork: - ```console + ```bash git push origin branch/nome-aqui ``` @@ -363,14 +363,14 @@ Siga estes passos: 1. Faça a clonagem do [repositório do freeCodeCamp](https://github.com/freeCodeCamp/freeCodeCamp) localmente e fora da cópia local do repositório para dispositivos móveis do freeCodeCamp. A estrutura de pastas deve ficar assim: - ```console + ```bash ├── freeCodeCamp ├── mobile ``` 2. Mude o diretório para o novo diretório do freeCodeCamp: - ```console + ```bash cd freeCodeCamp ``` @@ -378,25 +378,25 @@ Siga estes passos: #### **macOS/Linux** - ```console + ```bash cp sample.env .env ``` #### **Windows** - ```console + ```bash copy sample.env .env ``` 4. Instale as dependências para o repositório do freeCodeCamp: - ```console + ```bash pnpm install && pnpm run create:shared ``` 5. Gere o arquivo JSON dos dados de desafio: - ```console + ```bash pnpm run build:curriculum ``` @@ -404,54 +404,54 @@ Siga estes passos: #### **macOS/Linux** - ```console + ```bash cp ./shared/config/curriculum.json ../mobile/mobile-app/curriculum.json ``` #### **Windows** - ```console + ```bash copy .\shared\config\curriculum.json ..\mobile\mobile-app\curriculum.json ``` 7. Mude o diretório para o diretório da aplicação para dispositivos móveis: - ```console + ```bash cd ../mobile/mobile-app ``` 8. Instale as dependências para a aplicação para dispositivos móveis: - ```console + ```bash flutter pub get ``` 9. Atualize o arquivo de testes para que use o arquivo JSON de dados do desafio: - ```console + ```bash sed -i '' 's/..\/..\/shared\/config\/curriculum.json/.\/curriculum.json/g' test/widget_test.dart ``` 10. Gere os arquivos do desafio: - ```console + ```bash flutter test test/widget_test.dart ``` 11. Inicie um servidor local para servir os arquivos de desafio com a ajuda do pacote `serve`: - ```console + ```bash npx serve ``` 12. Em um terminal diferente, volte ao repositório do freeCodeCamp: - ```console + ```bash cd ../../freeCodeCamp ``` 13. Execute os testes do Cypress: - ```console + ```bash pnpm cypress run --config retries=1,screenshotOnRunFailure=false,video=false,baseUrl=http://localhost:3000/generated-tests/,specPattern=cypress/e2e/mobile-learn/test-challenges.js -s cypress/e2e/mobile-learn/test-challenges.js -b chrome ``` @@ -482,7 +482,7 @@ Se você está em um sistema operacional diferente e/ou ainda está com problema Se você enfrenta problemas com a interface do usuário ou erros de build, uma limpeza pode ser útil: -```console +```bash flutter clean ``` diff --git a/docs/i18n/portuguese/how-to-setup-wsl.md b/docs/i18n/portuguese/how-to-setup-wsl.md index aaa3d6577aa..767ea3dba78 100644 --- a/docs/i18n/portuguese/how-to-setup-wsl.md +++ b/docs/i18n/portuguese/how-to-setup-wsl.md @@ -10,7 +10,7 @@ Este guia abrange algumas etapas comuns sobre a instalação do WSL2. Uma vez re ## Ative o WSL -Siga as instruções na [documentação oficial](https://docs.microsoft.com/en-us/windows/wsl/install-win10) para instalar o WSL1 e atualizar para o WSL2. +Siga as instruções na [documentação oficial](https://docs.microsoft.com/en-us/windows/wsl/install-win10) para instalar o WSL2. ## Instale o Ubuntu @@ -20,9 +20,11 @@ Siga as instruções na [documentação oficial](https://docs.microsoft.com/en-u > > Embora você possa usar outras distribuições não baseadas em Debian, todas vêm com seus próprios empecilhos, que estão além do escopo deste guia. + A partir de novembro de 2023, Ubuntu e Debian serão as únicas distribuições de Linux [oficialmente suportadas pelo Playwright](https://playwright.dev/docs/intro#system-requirements), a biblioteca de testes de ponta a ponta usada pelo freeCodeCamp. + 2. Atualize as dependências para o sistema operacional - ```console + ```bash sudo apt update sudo apt upgrade -y @@ -70,23 +72,23 @@ Isso faz com que os contêineres sejam executados no lado do WSL em vez de serem Depois de ter configurado o Docker Desktop para trabalhar com o WSL2, siga essas etapas para iniciar um serviço no MongoDB: -1. Inicie um novo terminal Ubuntu-18.04 +1. Inicie um novo terminal do Ubuntu -2. Faça o pull `MongoDB 4.0.x` do Docker Hub +2. Faça o pull do MongoDB a partir do Docker Hub. Consulte a tabela de [Pré-requisitos](how-to-setup-freecodecamp-locally.md#Prerequisites) para ver a versão atual do MongoDB usada pelo freeCodeCamp. Por exemplo, se o número da versão for `5.0.x`, substitua `<x.y>` por `5.0` nos dois trechos de código a seguir. - ```console - docker pull mongo:4.0 + ```bash + docker pull mongo:<x.y> ``` 3. Inicie o serviço MongoDB na porta `27017` e configure-o para ser executado automaticamente ao reiniciar o sistema - ```console + ```bash docker run -it \ -v mongodata:/data/db \ -p 27017:27017 \ --name mongodb \ --restart unless-stopped \ - -d mongo:4.0 + -d mongo:<x.y> ``` 4. Agora você pode acessar o serviço no Windows ou Ubuntu em `mongodb://localhost:27017`. @@ -95,25 +97,17 @@ Depois de ter configurado o Docker Desktop para trabalhar com o WSL2, siga essas Recomendamos que você instale a versão LTS para Node.js com um gerenciador de versões do node - [nvm](https://github.com/nvm-sh/nvm#installing-and-updating). -Uma vez instalado, use esses comandos para instalar e usar a versão do Node.js, conforme necessário +Uma vez instalado, use este comando para instalar e usar a versão do Node.js LTS mais recente: -```console +```bash nvm install --lts - -# OU -# nvm install <version> - -nvm install 14 - -# Uso -# nvm use <version> - -nvm use 12 ``` +Para ver instruções de instalação e de uso de uma versão diferente do Node.js, consulte a [documentação do nvm](https://github.com/nvm-sh/nvm#usage). + O Node.js vem com o `npm`, que você pode usar para instalar o `pnpm`: -```console +```bash npm install -g pnpm ``` @@ -125,7 +119,104 @@ Agora que você instalou os pré-requisitos, siga [nosso guia de instalação lo > > Por favor note que, neste momento, a configuração para testes do Cypress (e necessidades relacionadas à GUI) é um trabalho em andamento. Você ainda deve ser capaz de trabalhar na maior parte do código. -## Links Úteis +## Otimizar o Windows e o WSL + + > [!NOTE] + > + > As dicas a seguir foram coletadas de toda a web e não passaram por diversos testes. A quilometragem pode variar. + +### Ajuste o agendamento do processador para serviços de segundo plano + +Isso pode reduzir os incidentes dos contêineres do Docker causando um crash devido à falta de recursos. + +Abra o painel de controle das Propriedades do Sistema pressionando <kbd>Win + R</kbd> e digitando `sysdm.cpl` + +<details> + <summary> + Digite <code>sysdm.cpl</code> na caixa de diálogo Executar (captura de tela) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/run-sysdm.png" alt="Digite `sysdm.cpl` na caixa de diálogo Executar" /> +</details> +<br> + +Vá para Avançado -> Desempenho -> Configurações… + +<details> + <summary> + Botão de Configurações na parte de Desempenho na guia Avançado das Propriedades do Sistema (captura de tela) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-performance-settings.png" alt="Botão Configurações na parte de Desempenho na guia Avançado em Propriedades do Sistema" /> +</details> +<br> + +Em Avançado -> Agendamento do processador, escolha "Serviços em segundo plano". Não feche a janela. Continue para a próxima dica. + +<details> + <summary> + Botão de seleção dos Serviços em segundo plano na aba Avançado em Opções de Desempenho (captura de tela) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/background-services.png" alt="Botão de opção dos Serviços em segundo plano na guia Avançado em Opções de Desempenho" /> +</details> + +### Aumente o tamanho do arquivo de paginação do Windows para a unidade do sistema + +Em Avançado -> Memória virtual, clique em "Alterar…" + +<details> + <summary> + Botão para alterar a memória virtual na aba Avançado em Opções de Desempenho (captura de tela) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-virtual-memory.png" alt="Botão de alterar a memória virtual na guia Avançado em Opções de Desempenho" /> +</details> +<br> + +Escolha "Tamanho personalizado". Defina o tamanho inicial para 1.5x e o tamanho máximo para 3x da sua memória física. Em seguida, clique em "Definir". + +<details> + <summary> + Botão Definir o tamanho personalizado na janela de Memória Virtual (captura de tela) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/set-custom-size.png" alt="Botão Definir o tamanho personalizado na janela de Memória Virtual" /> +</details> + +### Aumentar o tamanho da memória alocada para o WSL + +Crie um arquivo [`.wslconfig`](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) no diretório [`%UserProfile%`](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#wslconfig) (tipicamente `C:\Users\<NomeDoUsuário>\.wslconfig`). Leia a documentação do [WSL](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) cuidadosamente e substitua `x` por valores que correspondam às suas próprias necessidades: + +```ini +# As configurações se aplicam a todas as distribuições do Linux que rodam no WSL 2 +[wsl2] + +# Quanta memória atribuir à VM do WSL 2. O valor padrão pode não ser suficiente +memory=xGB + +# Quanto de espaço de swap para adicionar à VM do WSL 2. O padrão é 25% da RAM disponível +swap=xGB +``` + +### Aumentar o tamanho do espaço antigo máximo do Node.js + +Isso corrige o erro ["JavaScript heap out of memory"](https://stackoverflow.com/a/54456814) com o ESLint. Adicione o seguinte à sua `~/.bashrc` ou `~/.zshrc`: + +```sh +export NODE_OPTIONS="--max-old-space-size=4096" +``` + +### Evite `pnpm run test` + +Ao invés disso, use o script [apropriado ao seu PR](https://forum.freecodecamp.org/t/wsl-performance-issues-while-working-on-the-codebase/644215/2#:~:text=usually%2C%20you%20just%20want%20to%20test%20something%20specific%20to%20either%20the%20curriculum%20or%20the%20client%20or%20the%20api%20-%20almost%20never%20all%203.): `pnpm run test:api`, `pnpm run test:curriculum` ou `pnpm run test-client`. + +## Links úteis - [Configuração de desenvolvimento do WSL2 com Ubuntu 20.04, Node.js, MongoDB, VS Code e Docker](https://hn.mrugesh.dev/wsl2-dev-setup-with-ubuntu-nodejs-mongodb-and-docker) - um artigo de Mrugesh Mohapatra (desenvolvedor da equipe do freeCodeCamp.org) - Perguntas frequentes sobre: diff --git a/docs/i18n/portuguese/how-to-work-on-coding-challenges.md b/docs/i18n/portuguese/how-to-work-on-coding-challenges.md index 00679e15c04..455301f29ad 100644 --- a/docs/i18n/portuguese/how-to-work-on-coding-challenges.md +++ b/docs/i18n/portuguese/how-to-work-on-coding-challenges.md @@ -232,15 +232,17 @@ As frases devem ser claras e resumidas com o mínimo de termos técnicos. Se usa Mantenha os parágrafos curtos (em torno de 1-4 frases). É mais provável que as pessoas leiam vários parágrafos curtos do que um parágrafo enorme. -O desafio de texto deve usar a segunda pessoa ("você") para ajudar a dar um tom coloquial. Dessa forma, o texto e as instruções parecem falar diretamente ao usuário freeCodeCamp que está resolvendo o desafio. Tente evitar usar a primeira pessoa ("eu", "nós", "vamos"). +Use american english, e.g., use `labeled` instead of `labelled`. -Não use links externos. Eles interrompem o fluxo. Os usuários do freeCodeCamp nunca devem precisar pesquisar nada no Google durante esses desafios. Se há recursos que você acha que os usuários aproveitarão, adicione-os no artigo relacionado ao guia do desafio. +Challenge text should use the second person ("you") to help to give it a conversational tone. This way the text and instructions seem to speak directly to the camper working through the challenge. Try to avoid using the first person ("I", "we", "let's", and "us"). -Você pode adicionar diagramas se necessário. +Don't use outbound links. These interrupt the flow. Campers should never have to google anything during these challenges. If there are resources you think campers would benefit from, add them to the challenge's Guide-related article. -Não use emojis ou emoticons em desafios. O freeCodeCamp possui uma comunidade global, e o significado cultural de um emoji ou emoticon pode ser diferente ao redor do mundo. Além disso, emojis podem ser mostrados de maneiras diferentes em diferentes sistemas. +You can add diagrams if necessary. -Substantivos próprios devem começar com letra maiúscula quando possível. Abaixo está uma lista de palavras e como devem aparecem nos desafios. +Don't use emojis or emoticons in challenges. freeCodeCamp has a global community, and the cultural meaning of an emoji or emoticon may be different around the world. Also, emojis can render differently on different systems. + +Proper nouns should use correct capitalization when possible. Below is a list of words as they should appear in the challenges. - JavaScript (letras maiúsculas em "J" e "S" e sem abreviações) - Node.js @@ -248,28 +250,28 @@ Substantivos próprios devem começar com letra maiúscula quando possível. Aba ### A regra dos 2 minutos -Cada desafio deve ser resolvido em 120 segundos por um nativo da língua inglesa que tenha concluído os desafios anteriores. Isso inclui a quantidade de tempo que leva para ler as instruções, entender o código fornecido, escrever o código e passar nos testes. +Each challenge should be solvable within 120 seconds by a native English speaker who has completed the challenges leading up to it. This includes the amount of time it takes to read the directions/instructions understand the seeded code, write their code and get all the tests to pass. -Se levar mais do que dois minutos para completar um desafio, você tem duas opções: +If it takes longer than two minutes to complete the challenge, you have two options: - Simplifique o desafio, ou - Divida o desafio em dois desafios. -A regra dos 2 minutos força quem criou o desafio a deixar as instruções resumidas, o código fornecido limpo e seus testes diretos. +The 2-minute rule forces you, the challenge designer, to make your directions concise, your seed code clear, and your tests straightforward. -Acompanhamos o tempo que leva para os usuários resolverem os desafios e usamos essa informação para identificar desafios que precisem ser simplificados ou divididos. +We track how long it takes for campers to solve challenges and use this information to identify challenges that need to be simplified or split. ### Modularidade -Cada desafio deve ensinar exatamente um conceito, e esse conceito deve estar aparente a partir do nome do desafio. +Each challenge should teach exactly one concept, and that concept should be apparent from the challenge's name. -Podemos reforçar conceitos citados anteriormente através de repetição e variações - por exemplo, introduzir elementos h1 em um desafio, então elementos h3 depois. +We can reinforce previously covered concepts through repetition and variations - for example, introducing h1 elements in one challenge, then h3 elements a few challenges later. -Nossa meta é ter vários desafios de 2 minutos. Eles podem se completar e relembrar conceitos anteriormente citados. +Our goal is to have thousands of 2-minute challenges. These can flow together and reiterate previously-covered concepts. ### Formatando o texto do desafio -Aqui estão diretrizes de formatação específicas para o texto do desafio e exemplos: +Here are specific formatting guidelines for challenge text and examples: - Palavras chaves da linguagem ficam entre `` \` `` crases. Por exemplo, nomes de tags HTML ou nomes de propriedade CSS. - Referências a códigos (ex. função, método ou nomes de variáveis) devem estar entre `` \` ``. Veja o exemplo abaixo: @@ -282,9 +284,9 @@ Use `parseInt` para converter a variável `realNumber` em um número inteiro. - Blocos de código com várias linhas **devem ser precedidos por uma linha vazia**. A próxima linha deve começar com três crases seguidas imediatamente por uma das [linguagens suportadas](https://prismjs.com/#supported-languages). Para completar o bloco de código, você deve começar uma nova linha que apenas possui três crases e **outra linha vazia**. Veja o exemplo abaixo: - Os espaços importam no Markdown. Então, recomendamos que os mantenham visíveis no seu editor. -**Observação:** se você for usar um exemplo de código em YAML, use `yaml` ao invés de `yml` para a linguagem à direita das crases. +**Note:** If you are going to use an example code in YAML, use `yaml` instead of `yml` for the language to the right of the backticks. -Exemplo de código: +The following is an example of code: ````md ```{language} @@ -309,7 +311,7 @@ Desafios devem ter um número mínimo de testes necessários para verificar que Nossa meta é comunicar o ponto que o desafio está tentando ensinar e testar se eles entenderam esse ponto. -Os testes do desafio podem usar bibliotecas Node.js e Chai.js. Se necessário, o código gerado pro usuário pode ser acessado na variável `code` também. Além disso, os objetos `__helpers` expõem várias funções que simplificam o processo de escrita dos testes. As funções disponíveis estão definidas em _client/src/utils/curriculum-helpers.ts_. +Os testes do desafio podem usar bibliotecas Node.js e Chai.js. Se necessário, o código gerado pro usuário pode ser acessado na variável `code` também. Além disso, os objetos `__helpers` expõem várias funções que simplificam o processo de escrita dos testes. The available functions are defined in the [curriculum-helpers](https://github.com/freeCodeCamp/curriculum-helpers/blob/main/lib/index.ts) repo. ## Formatação do código seed @@ -331,13 +333,13 @@ Exemplo de um comentário de uma linha em JavaScript: // Mude somente abaixo dessa linha ```` -Exemplo de um comentário válido em CSS: +Example of a valid CSS comment: ```css /* Only change code above this line */ ``` -Se um desafio tem apenas um lugar onde as mudanças de código são necessárias, use os comentários seguindo o exemplo a seguir para instruir o usuário sobre o local onde as mudanças devem ser feitas. +If a challenge only has a single place where code changes are needed, please use the comments in the following example to instruct the user where changes should be made. ```js var a = 3; @@ -350,7 +352,7 @@ b = 9 + b; c = c + 7; ``` -Se um desafio tem múltiplos lugares onde se espera que o usuário faça mudanças no código (ex. os desafios de React) +If a challenge has multiple places where the user is expected to change code (i.e. the React challenges) ```jsx class MyComponent extends React.Component { @@ -383,9 +385,9 @@ class MyComponent extends React.Component { ### Tradução de comentários de código seed -Existem dicionários de comentários separados para cada linguagem. A [versão em inglês do dicionário de comentários](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/dictionaries/english/comments.json) é a base para as traduções encontradas nas versões correspondentes dos arquivos em outros idiomas. A versão do dicionário de comentários em chinês (não a versão em inglês) pode ser encontrada em `/curriculum/dictionaries/chinese/comments.json`. Cada dicionário consiste em um array de objetos com uma propriedade de `id` única e uma propriedade de `text`. Somente a propriedade `text` deve ser modificada para englobar a tradução do comentário correspondente em inglês. +There are separate comment dictionaries for each language. The [English version of the comment dictionary](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/dictionaries/english/comments.json) is the basis for the translations found in the corresponding non-English versions of the files. The non-English version of the Chinese comment dictionary would be located at `/curriculum/dictionaries/chinese/comments.json`. Each dictionary consists of an array of objects with a unique `id` property and a `text` property. Only the `text` should be modified to encompass the translation of the corresponding English comment. -Alguns comentários podem conter uma palavra/frase que não deve ser traduzida. Por exemplo, nomes de variáveis, ou nomes próprios de bibliotecas como "React" não devem ser traduzidas. Veja o comentário abaixo como um exemplo. A palavra `myGlobal` não deve ser traduzida. +Some comments may contain a word/phrase that should not be translated. For example, variable names or proper library names like "React" should not be translated. See the comment below as an example. The word `myGlobal` should not be translated. ```text Declare a variável myGlobal abaixo desta linha @@ -397,13 +399,13 @@ Declare a variável myGlobal abaixo desta linha ## Dicas e soluções -Cada desafio tem um botão `Get a Hint`, assim, o usuário pode acessar qualquer dica/solução que foi criada para aquele desafio. Os tópicos de dicas/soluções são encontrados no [nosso fórum](https://forum.freecodecamp.org/c/guide), abaixo da categoria `Guide`. +Each challenge has a `Get a Hint` button, so a user can access any hints/solutions which have been created for the challenge. Curriculum hints/solutions topics are located on [our forum](https://forum.freecodecamp.org/c/guide) under the `Guide` category. -Se você encontrar um problema nas dicas/tópicos de solução de um desafio existente, você pode fazer sugestões na [categoria de contribuidores](https://forum.freecodecamp.org/c/contributors) no fórum. Os moderadores e usuários com o nível de confiança 3 vão revisar os comentários e decidir quais incluir as mudanças nos tópicos correspondentes de dicas/soluções. +If you find a problem with an existing challenge's hints/solutions topic, you can make suggestions in the [contributors category](https://forum.freecodecamp.org/c/contributors) on the forum. Moderators and users with trust level 3 will review the comments and decide whether or not to include the changes in the corresponding hint/solutions topic. ### Adicionando um novo tópico de dicas/soluções em um desafio -Faça o passo-a-passo a seguir quando for adicionar novos tópicos de dicas/soluções relacionadas a um desafio. +Take the following steps when adding a new challenge hints/solutions-related topic. 1. Comece seguindo os mesmos passos para criar um novo tópico, mas revise o seguinte para criar o título. 2. O título do tópico deve começar com `freeCodeCamp Challenge Guide:` concatenado com o título atual do desafio de currículo. Por exemplo, se o desafio é chamado "`Chunky Monkey`", o título do tópico seria "`freeCodeCamp Challenge Guide: Chunky Monkey`". @@ -412,7 +414,7 @@ Faça o passo-a-passo a seguir quando for adicionar novos tópicos de dicas/solu ### Diretrizes para o conteúdo dos tópicos de dicas e soluções -Ao propor uma solução para um tópico do guia relacionado a um desafio de currículo, o código completo deve ser adicionado. Isso inclui todo o código seed original, assim como as alterações necessárias para passar em todos os testes do desafio. O modelo a seguir deve ser usado ao criar um novo tópico de dicas/soluções: +When proposing a solution for a curriculum challenge-related Guide topic, the full code must be added. This includes all the original seed code plus any changes needed to pass all the challenge tests. The following template should be used when creating new hints/solutions topics: ````md # O nome do desafio fica aqui @@ -499,35 +501,35 @@ Você também pode testar desafios por título utilizando as seguintes etapas: cd curriculum ``` -2. Execute o comando a seguir para cada arquivo de desafio no qual você fez alteraçõess (substituindo `challenge-title-goes-here` com o título completo do desafio): +2. Run the following for each challenge file for which you have changed (replacing `challenge-title-goes-here` with the full title of the challenge): ``` - pnpm run test -- -g titulo-do-desafio-aqui + pnpm run test -- -g challenge-title-goes-here ``` > [!TIP] -> Você pode definir a váriavel de ambiente `LOCALE` no arquivo `.env` para o idioma do(s) desafio(s) que você precisa testar. +> You can set the environment variable `LOCALE` in the `.env` to the language of the challenge(s) you need to test. > -> Os valores aceitos de momento são `english` e `chinese`, com `english` sendo o valor padrão. +> The currently accepted values are `english` and `chinese`, with `english` being set by default. -## Propondo um Pull Request (PR) +## Proposing a Pull Request (PR) -Depois de fazer o commit de suas alterações, confira aqui [como abrir um Pull Request](how-to-open-a-pull-request.md). +After you've committed your changes, check here for [how to open a Pull Request](how-to-open-a-pull-request.md). -## Links úteis +## Useful Links -Criação e edição de desafios: +Creating and Editing Challenges: -1. [Tipos de desafio](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - o que significam os valores do tipo de desafio numérico (enum). +1. [Challenge types](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - what the numeric challenge type values mean (enum). -2. [Contribuindo para o FreeCodeCamp - Escrevendo testes para desafios de ES6](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - um vídeo que acompanha [Ethan Arrowood](https://twitter.com/ArrowoodTech) durante sua contribuição para a versão antiga do currículo. +2. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - a video following [Ethan Arrowood](https://twitter.com/ArrowoodTech) as he contributes to the old version of the curriculum. -## Scripts auxiliares +## Helper Scripts > [!NOTE] -> Se estiver trabalhando com os desafios baseados em passos, consulte a seção [Trabalho com projetos práticos](how-to-work-on-practice-projects.md). +> If you are working with the step-based challenges, refer to the [Work on Practice Projects](how-to-work-on-practice-projects.md) section. -Existem alguns scripts auxiliares que podem ser usados para gerenciar os desafios em um bloco. Observe que todos esses comandos devem ser executados no diretório do bloco. Por exemplo: +There are a few helper scripts that can be used to manage the challenges in a block. Note that these commands should all be run in the block directory. For example: ```bash cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting @@ -535,33 +537,33 @@ cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/ba ### Adicionar um novo desafio -Para adicionar um novo desafio no final de um bloco, chame o script: +To add a new challenge at the end of a block, call the script: ```bash pnpm run create-next-challenge ``` -Ele solicitará a informação do desafio e criará o arquivo de desafio, atualizando o arquivo `meta.json` com as novas informações de desafio. +This will prompt you for the challenge information and create the challenge file, updating the `meta.json` file with the new challenge information. ### Excluir um desafio -Para excluir um desafio, chame o script: +To delete a challenge, call the script: ```bash pnpm run delete-challenge ``` -Ele solicitará que você selecione qual desafio deve ser excluído. Em seguida, excluirá o arquivo e atualizará o arquivo `meta.json` para remover o desafio da ordem. +This will prompt you to select which challenge should be deleted, then delete the file and update the `meta.json` file to remove the challenge from the order. ### Inserir um desafio -Para inserir um desafio antes de um desafio existente, chame o script: +To insert a challenge before an existing challenge, call the script: ```bash pnpm run insert-challenge ``` -Ele solicitará a informação do desafio e, em seguida, o desafio será inserido antes do desafio informado. Por exemplo, se suas escolhas forem: +This will prompt you for the challenge information, then for the challenge to insert before. For example, if your choices are: ```bash a @@ -569,7 +571,7 @@ b c ``` -Se você escolher `b`, a nova ordem será: +If you choose `b`, your new order will be: ```bash a @@ -580,26 +582,26 @@ c ### Atualizar a ordem dos desafios -Se você precisar reordenar manualmente os desafios, chame o script: +If you need to manually re-order the challenges, call the script: ```bash pnpm run update-challenge-order ``` -Ele vai orientá-lo através de um processo interativo para selecionar a ordem dos desafios. +This will take you through an interactive process to select the order of the challenges. ## Solução de problemas ### Loop infinito detectado -Se você ver o seguinte erro no console ao pré-visualizar um desafio: +If you see the following error in the console while previewing a challenge: ```text Potential infinite loop detected on line <number>... ``` -Isso significa que o plug-in de proteção de loops encontrou um loop de longa duração ou uma função recursiva. Se o desafio precisar fazer isso (por exemplo, contém um loop de eventos que deve ser executado indefinidamente), então você pode impedir que o plug-in seja usado na visualização. Para fazer isso, adicione `disableLoopProtectPreview: true` ao arquivo `meta.json` do bloco. +This means that the loop-protect plugin has found a long-running loop or recursive function. If your challenge needs to do that (e.g. it contains an event loop that is supposed to run indefinitely), then you can prevent the plugin from being used in the preview. To do so, add `disableLoopProtectPreview: true` to the block's `meta.json` file. -Se os testes demandam muitos cálculos, você poderá ver esse erro quando eles forem executados. Se isso acontecer, adicione `disableLoopProtectPreview: true` ao arquivo `meta.json` do bloco. +If your tests are computationally intensive, then you may see this error when they run. If this happens then you can add `disableLoopProtectTests: true` to the block's `meta.json` file. -Normalmente, não é necessário ter os dois definidos como true, Defina-os, apenas, conforme necessário. +It's not typically necessary to have both set to true, so only set them as needed. diff --git a/docs/i18n/portuguese/how-to-work-on-localized-client-webapp.md b/docs/i18n/portuguese/how-to-work-on-localized-client-webapp.md index 45bbf76501b..c97e1a51a2a 100644 --- a/docs/i18n/portuguese/how-to-work-on-localized-client-webapp.md +++ b/docs/i18n/portuguese/how-to-work-on-localized-client-webapp.md @@ -16,7 +16,7 @@ Vamos entender como o framework i18n e suas ferramentas funcionam. A maioria dos arquivos para tradução da plataforma ficam localizados na pasta [`client/i18n`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n). Cada idioma tem uma pasta contendo arquivos JSON com as traduções. -```console +```bash config └── i18n.ts ... diff --git a/docs/i18n/portuguese/how-to-work-on-the-docs-theme.md b/docs/i18n/portuguese/how-to-work-on-the-docs-theme.md index d3f152f65ba..44bf37620e5 100644 --- a/docs/i18n/portuguese/how-to-work-on-the-docs-theme.md +++ b/docs/i18n/portuguese/how-to-work-on-the-docs-theme.md @@ -47,7 +47,7 @@ Normalmente, você não precisaria alterar nenhuma configuração ou compilar o Instale o freeCodeCamp localmente ([veja o guia de instalação local](how-to-setup-freecodecamp-locally)). Nós empacotamos a CLI com as ferramentas de desenvolvimento para que você possa executar o comando abaixo, conforme necessário, a partir da raiz do repositório: -```console +```bash pnpm run docs:serve ``` diff --git a/docs/i18n/portuguese/troubleshooting-development-issues.md b/docs/i18n/portuguese/troubleshooting-development-issues.md index 412073c1799..0dac9c8d6b3 100644 --- a/docs/i18n/portuguese/troubleshooting-development-issues.md +++ b/docs/i18n/portuguese/troubleshooting-development-issues.md @@ -16,7 +16,7 @@ Se você está em um sistema operacional diferente ou se ainda está encontrando Quando você fizer a build no client, o Gatsby armazenará em cache as fontes, as strings de idioma e a interface do usuário. Se um deles não estiver em cache, execute o seguinte: -```console +```bash pnpm run clean pnpm install pnpm run seed @@ -53,7 +53,7 @@ git clean -ifdX Se você não conseguir fazer o login e se vir um banner com uma mensagem de erro dizendo que o erro será reportado ao freeCodeCamp, verifique novamente se a porta local `3000` não está em uso por um programa diferente. #### **A partir do Terminal:** -```console +```bash netstat -a | grep "3000" tcp4 0 0 0.0.0.0:3000 DESKTOP LISTEN diff --git a/docs/i18n/ukrainian/devops.md b/docs/i18n/ukrainian/devops.md index df4a88bb6f6..6db2396e398 100644 --- a/docs/i18n/ukrainian/devops.md +++ b/docs/i18n/ukrainian/devops.md @@ -303,19 +303,19 @@ doctl compute droplet list --format "ID,Name,PublicIPv4" Оновіть інформацію пакетів -```console +```bash sudo apt update ``` Оновіть встановлені пакети -```console +```bash sudo apt upgrade -y ``` Очистьте невикористані пакети -```console +```bash sudo apt autoremove -y ``` @@ -331,7 +331,7 @@ sudo apt autoremove -y 1. Завантажте і налаштуйте NGINX з репозиторію. - ```console + ```bash sudo su cd /var/www/html @@ -352,7 +352,7 @@ sudo apt autoremove -y Перемістіть наявні сертифікати: - ```console + ```bash # Local scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -364,7 +364,7 @@ sudo apt autoremove -y Оновіть головні конфігурації: - ```console + ```bash vi configs/upstreams.conf ``` @@ -382,7 +382,7 @@ sudo apt autoremove -y 1. Перевірте стан служби NGINX за допомогою наступної команди: - ```console + ```bash sudo systemctl status nginx ``` @@ -396,13 +396,13 @@ sudo apt autoremove -y 1. SSH в екземпляр і введіть sudo -```console +```bash sudo su ``` 2. Отримайте останній код конфігурації. -```console +```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -410,7 +410,7 @@ git reset --hard origin/main 3. Протестуйте та повторно завантажте конфігурації [з Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). -```console +```bash nginx -t nginx -s reload ``` @@ -419,7 +419,7 @@ nginx -s reload 1. Встановіть інструменти збірки для бінарних файлів node (`node-gyp`) тощо. -```console +```bash sudo apt install build-essential ``` @@ -431,19 +431,19 @@ sudo apt install build-essential 2. Встановіть pnpm глобально. -```console +```bash npm install -g pnpm ``` 3. Встановіть pm2 глобально. -```console +```bash npm install -g pm2 ``` 4. Клонуйте freeCodeCamp, налаштуйте середовище та ключі. -```console +```bash git clone https://github.com/freeCodeCamp/freeCodeCamp.git cd freeCodeCamp git checkout prod-current # or any other branch to be deployed @@ -453,36 +453,36 @@ git checkout prod-current # or any other branch to be deployed 6. Встановіть залежності -```console +```bash pnpm install ``` 7. Налаштуйте pm2 `logrotate` та запустіть під час завантаження -```console +```bash pm2 install pm2-logrotate pm2 startup ``` 8. Побудуйте сервер -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 9. Запустіть екземпляри -```console +```bash pnpm start:server ``` ### Журналювання та моніторинг -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -496,31 +496,31 @@ pm2 monit 1. Зупиніть всі екземпляри -```console +```bash pm2 stop all ``` 2. Встановіть залежності -```console +```bash pnpm install ``` 3. Побудуйте сервер -```console +```bash pnpm prebuild && pnpm build:curriculum && pnpm build:server ``` 4. Запустіть екземпляри -```console +```bash pnpm start:server && pm2 logs ``` #### 2. Постійне оновлення: використовується для логічних змін коду. -```console +```bash pnpm reload:server && pm2 logs ``` @@ -532,7 +532,7 @@ pnpm reload:server && pm2 logs 2. Оновіть pm2 для використання нової версії -```console +```bash pm2 update ``` @@ -540,7 +540,7 @@ pm2 update 1. Встановіть інструменти збірки для бінарних файлів node (`node-gyp`) тощо. -```console +```bash sudo apt install build-essential ``` @@ -552,7 +552,7 @@ sudo apt install build-essential 2. Оновіть `npm`, встановіть PM2, налаштуйте `logrotate` та запустіть під час завантаження - ```console + ```bash npm i -g npm@8 npm i -g pm2@4 npm install -g serve@13 @@ -562,7 +562,7 @@ sudo apt install build-essential 3. Клонуйте конфігурацію клієнта, налаштування середовища та ключі. - ```console + ```bash git clone https://github.com/freeCodeCamp/client-config.git client cd client ``` @@ -571,7 +571,7 @@ sudo apt install build-essential > Завдання: це налаштування потрібно перемістити в сховище S3 або Azure Blob > - > ```console + > ```bash > echo "serve -c ../serve.json -p 50505 www" > client-start-primary.sh > chmod +x client-start-primary.sh > pm2 delete client-primary @@ -584,11 +584,11 @@ sudo apt install build-essential ### Журналювання та моніторинг -```console +```bash pm2 logs ``` -```console +```bash pm2 monit ``` @@ -602,7 +602,7 @@ pm2 monit 1. Зупиніть всі екземпляри - ```console + ```bash pm2 stop all ``` @@ -610,13 +610,13 @@ pm2 monit 3. Запустіть екземпляри - ```console + ```bash pm2 start all --update-env && pm2 logs ``` #### 2. Постійне оновлення: використовується для логічних змін коду. -```console +```bash pm2 reload all --update-env && pm2 logs ``` @@ -636,7 +636,7 @@ pm2 reload all --update-env && pm2 logs 1. Завантажте і налаштуйте NGINX з репозиторію. - ```console + ```bash sudo su cd /var/www/html @@ -657,7 +657,7 @@ pm2 reload all --update-env && pm2 logs Перемістіть наявні сертифікати: - ```console + ```bash # Локально scp -r username@source-server-public-ip:/etc/nginx/ssl ./ scp -pr ./ssl username@target-server-public-ip:/tmp/ @@ -669,7 +669,7 @@ pm2 reload all --update-env && pm2 logs Оновіть головні конфігурації: - ```console + ```bash vi configs/upstreams.conf ``` @@ -687,7 +687,7 @@ pm2 reload all --update-env && pm2 logs 1. Завантажте і налаштуйте Docker з репозиторію - ```console + ```bash git clone https://github.com/freeCodeCamp/chat-config.git chat cd chat ``` @@ -696,7 +696,7 @@ pm2 reload all --update-env && pm2 logs 3. Запустіть сервер rocket-chat - ```console + ```bash docker-compose config docker-compose up -d ``` @@ -705,13 +705,13 @@ pm2 reload all --update-env && pm2 logs 1. Перевірте стан служби NGINX за допомогою наступної команди: - ```console + ```bash sudo systemctl status nginx ``` 2. Перевірте стан запущених екземплярів docker за допомогою: - ```console + ```bash docker ps ``` @@ -723,13 +723,13 @@ pm2 reload all --update-env && pm2 logs 1. SSH в екземпляр і введіть sudo - ```console + ```bash sudo su ``` 2. Отримайте останній код конфігурації. - ```console + ```bash cd /etc/nginx git fetch --all --prune git reset --hard origin/main @@ -737,7 +737,7 @@ pm2 reload all --update-env && pm2 logs 3. Протестуйте та повторно завантажте конфігурації [з Signals](https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#controlling-nginx). - ```console + ```bash nginx -t nginx -s reload ``` @@ -746,44 +746,44 @@ pm2 reload all --update-env && pm2 logs 1. SSH в екземпляр та перейдіть до шляху налаштування чату - ```console + ```bash cd ~/chat ``` 2. Отримайте останній код конфігурації. - ```console + ```bash git fetch --all --prune git reset --hard origin/main ``` 3. Отримайте останній образ docker для Rocket.Chat - ```console + ```bash docker-compose pull ``` 4. Оновіть запущені екземпляри - ```console + ```bash docker-compose up -d ``` 5. Переконайтесь, що екземпляри запущені - ```console + ```bash docker ps ``` 6. Вилучіть зайві ресурси - ```console + ```bash docker system prune --volumes ``` Вивід: - ```console + ```bash WARNING! This will remove: - all stopped containers - all networks not used by at least one container @@ -802,7 +802,7 @@ pm2 reload all --update-env && pm2 logs ssh у віртуальну машину (розміщену на Digital Ocean). -```console +```bash cd tools git pull origin master pnpm install @@ -814,7 +814,7 @@ pm2 restart contribute-app Отримайте список наразі встановлених версій node та npm -```console +```bash nvm -v node -v npm -v @@ -824,25 +824,25 @@ nvm ls Встановіть останню версію Node.js LTS і перевстановіть всі глобальні пакети -```console +```bash nvm install --lts --reinstall-packages-from=default ``` Перевірте встановлені пакети -```console +```bash npm ls -g --depth=0 ``` Зробіть псевдонім версії Node.js `default` для поточної LTS (закріплена до останньої основної версії) -```console +```bash nvm alias default 16 ``` (Необов’язково) Видаліть старі версії -```console +```bash nvm uninstall <version> ``` @@ -852,31 +852,31 @@ nvm uninstall <version> Отримайте інструкції/команди видалення за допомогою команди `unstartup` та використайте вивід, щоб видалити служби systemctl -```console +```bash pm2 unstartup ``` Отримайте інструкції/команди встановлення за допомогою команди `startup` та використайте вивід, щоб додати служби systemctl -```console +```bash pm2 startup ``` Швидкі команди для PM2 для перерахування, відновлення збережених процесів і т. д. -```console +```bash pm2 ls ``` -```console +```bash pm2 resurrect ``` -```console +```bash pm2 save ``` -```console +```bash pm2 logs ``` @@ -898,32 +898,32 @@ pm2 logs 1. Перейдіть та перевірте статус служби - ```console + ```bash cd ~/azagent sudo ./svc.sh status ``` 2. Зупиніть службу - ```console + ```bash sudo ./svc.sh stop ``` 3. Видаліть службу - ```console + ```bash sudo ./svc.sh uninstall ``` 4. Видаліть агента з пулу конвеєра - ```console + ```bash ./config.sh remove ``` 5. Видаліть файли конфігурації - ```console + ```bash cd ~ rm -rf ~/azagent ``` @@ -938,7 +938,7 @@ pm2 logs 2. Налаштуйте сценарій, щоб отримати віддалений доступ до списку електронних пошт. - ```console + ```bash cd /home/freecodecamp/scripts/emails cp sample.env .env ``` @@ -947,7 +947,7 @@ pm2 logs 3. Запустіть сценарій. - ```console + ```bash node get-emails.js emails.csv ``` diff --git a/docs/i18n/ukrainian/how-to-add-cypress-tests.md b/docs/i18n/ukrainian/how-to-add-cypress-tests.md index ea491f629a2..ee7854eb98c 100644 --- a/docs/i18n/ukrainian/how-to-add-cypress-tests.md +++ b/docs/i18n/ukrainian/how-to-add-cypress-tests.md @@ -26,25 +26,25 @@ - Щоб запустити всі тести в каталозі `./cypress`: - ```console + ```bash pnpm run cypress:dev:run ``` - Щоб запустити один тест: - ```console + ```bash pnpm run cypress run --spec=cypress/<path_to_test_file> ``` Наприклад: - ```console + ```bash pnpm run cypress run --spec=cypress/e2e/default/landing.ts ``` - Щоб створити збірку розробки, запустіть сервер розробки і виконайте всі наявні тести cypress: - ```console + ```bash pnpm run e2e:dev:run ``` @@ -57,25 +57,25 @@ - Дотримуйтесь [посібнику з налаштування MongoDB](https://www.mongodb.com/basics/get-started). - Створіть конфігураційний файл. -```console +```bash pnpm run create:shared ``` - Заповніть базу даних -```console +```bash pnpm run seed ``` - Розробіть сервер та клієнта -```console +```bash pnpm run develop ``` ### 2. Встановіть інструменти збірки Cypress -```console +```bash pnpm run cypress:install-build-tools ``` diff --git a/docs/i18n/ukrainian/how-to-add-playwright-tests.md b/docs/i18n/ukrainian/how-to-add-playwright-tests.md index c518132a496..240cc88408d 100644 --- a/docs/i18n/ukrainian/how-to-add-playwright-tests.md +++ b/docs/i18n/ukrainian/how-to-add-playwright-tests.md @@ -4,7 +4,7 @@ Щоб встановити Playwright: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -181,49 +181,49 @@ describe('The campers landing page', () => { - Переконайтесь, що перейшли до репозиторію e2e: - ```console + ```bash cd e2e ``` - Щоб запустити тести в режимі помічника UI: - ```console + ```bash npx playwright test --ui ``` - Щоб запустити один тест: - ```console + ```bash npx playwright test <filename> ``` Наприклад: - ```console + ```bash npx playwright test landing-page.spec.ts ``` - Щоб запустити набір файлів тестів у відповідних папках: - ```console + ```bash npx playwright test <pathToFolder1> <pathToFolder2> ``` Наприклад: - ```console + ```bash npx playwright test tests/todo-page/ tests/landing-page/ ``` - Щоб запустити тест із заголовком: - ```console + ```bash npx playwright test -g <title> ``` Наприклад: - ```console + ```bash npx playwright test -g "add a todo item" ``` @@ -233,13 +233,13 @@ describe('The campers landing page', () => { - Налагодження всіх тестів: - ```console + ```bash npx playwright test --debug ``` - Налагодження одного файлу тесту: - ```console + ```bash npx playwright test example.spec.ts --debug ``` @@ -247,7 +247,7 @@ describe('The campers landing page', () => { HTML Reporter надає повний звіт про ваші тести, що дає змогу фільтрувати звіт за браузерами, пройденими тестами, проваленими тестами, пропущеними тестами та ненадійними тестами. -```console +```bash npx playwright show-report ``` @@ -257,13 +257,13 @@ Playwright, як правило, є інструментом з дуже мал - (MacOs та Linux) Якщо запуск Playwright призводить до помилки через залежності ядра, запустіть цю команду: - ```console + ```bash pnpm run playwright:install-build-tools-linux ``` - Поширена помилка в Playwright виглядає так: - ```console + ```bash Error: page.goto: Could not connect: Connection refused =========================== logs =========================== navigating to "https://127.0.0.1:8000/", waiting until "load" @@ -284,7 +284,7 @@ Playwright, як правило, є інструментом з дуже мал - Ще одна поширена помилка в Playwright виглядає так: - ```console + ```bash Protocol error (Network.getResponseBody): Request content was evicted from inspector cache ``` @@ -305,25 +305,25 @@ Playwright, як правило, є інструментом з дуже мал - Створіть .env - ```console + ```bash cp sample.env .env ``` - Створіть конфігураційний файл. - ```console + ```bash pnpm run create:shared ``` - Заповніть базу даних - ```console + ```bash pnpm run seed ``` - Розробіть сервер та клієнта - ```console + ```bash pnpm run develop ``` @@ -331,7 +331,7 @@ Playwright, як правило, є інструментом з дуже мал Щоб встановити необхідні залежності для запуску Playwright, виконайте цю команду: -```console +```bash pnpm run playwright:install-build-tools ``` @@ -339,6 +339,6 @@ pnpm run playwright:install-build-tools Щоб запустити всі тести Playwright, виконайте цю команду: -```console +```bash npx playwright test ``` diff --git a/docs/i18n/ukrainian/how-to-contribute-to-the-codebase.md b/docs/i18n/ukrainian/how-to-contribute-to-the-codebase.md index 2bb8bf734fb..800bd3ff666 100644 --- a/docs/i18n/ukrainian/how-to-contribute-to-the-codebase.md +++ b/docs/i18n/ukrainian/how-to-contribute-to-the-codebase.md @@ -10,13 +10,13 @@ 1. Переконайтесь, що знаходитесь на гілці `main`: - ```console + ```bash git status ``` Ви повинні отримати такий вивід: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -25,7 +25,7 @@ Якщо ви отримали інше повідомлення, значить ви не перебуваєте на головній гілці (main) або ваш робочий каталог не чистий. Розв’яжіть будь-які невиконані файли/затвердження та перевірте `main`: - ```console + ```bash git checkout main ``` @@ -39,25 +39,25 @@ Оновіть свою копію віддаленого репозиторію freeCodeCamp: - ```console + ```bash git fetch upstream ``` Скиньте свою головну гілку з головною гілкою freeCodeCamp: - ```console + ```bash git reset --hard upstream/main ``` Перемістіть свою головну гілку до джерела, щоб мати чисту історію розгалуження на GitHub: - ```console + ```bash git push origin main --force ``` Ви можете переконатись, що ваша поточна головна гілка відповідає upstream/main, виконавши diff: - ```console + ```bash git diff upstream/main ``` @@ -69,7 +69,7 @@ Переконайтесь, що знаходитесь на `main` та починайте розгалуження звідси: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -93,13 +93,13 @@ 7. Перевірте та підтвердьте файли, які оновлюєте: - ```console + ```bash git status ``` Має з’явитись список файлів `unstaged`, які ви відредагували. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -118,25 +118,25 @@ У цьому кроці потрібно позначити лише ті файли, які редагували чи додавали самостійно. Якщо необхідно, ви можете виконати скидання та виправити файли, які не збираєтеся змінювати. - ```console + ```bash git add path/to/my/changed/file.ext ``` Або ви можете додати всі файли `unstaged` до області тимчасового зберігання: - ```console + ```bash git add . ``` Лише ті файли, які було переміщено до області тимчасового зберігання, будуть додані під час затвердження. - ```console + ```bash git status ``` Вивід: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -151,7 +151,7 @@ Тепер ви можете затвердити свої зміни, використовуючи коротке повідомлення: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -181,7 +181,7 @@ 9. Якщо ви усвідомили, що вам потрібно відредагувати файл або оновити повідомлення коміту, після того, як зробили коміт, ви можете зробити так після редагування файлів: - ```console + ```bash git commit --amend ``` @@ -189,7 +189,7 @@ 10. Тепер надішліть свої зміни до розгалуження: - ```console + ```bash git push origin branch/name-here ``` diff --git a/docs/i18n/ukrainian/how-to-open-a-pull-request.md b/docs/i18n/ukrainian/how-to-open-a-pull-request.md index d813640b3cc..0c752e7b862 100644 --- a/docs/i18n/ukrainian/how-to-open-a-pull-request.md +++ b/docs/i18n/ukrainian/how-to-open-a-pull-request.md @@ -115,14 +115,14 @@ 1. Перебазуйте свою локальну копію: - ```console + ```bash git checkout <pr-branch> git pull --rebase upstream main ``` 2. Вирішіть будь-які конфлікти та додайте/редагуйте коміти - ```console + ```bash # Або git add . git commit -m "chore: resolve conflicts" @@ -134,7 +134,7 @@ 3. Відправте зміни до PR - ```console + ```bash git push --force origin <pr-branch> ``` @@ -144,7 +144,7 @@ 1. Переконайтесь, що upstream синхронізовано з локальною гілкою: - ```console + ```bash git checkout main git fetch --all --prune git checkout next-python-projects @@ -155,7 +155,7 @@ a. Або видаліть локальну гілку після створення резервної копії (якщо вона досі існує локально): - ```console + ```bash git checkout <pr-branch-name> # приклад: @@ -171,7 +171,7 @@ b. Або зробіть резервну копію гілки PR (якщо вона не існує локально): - ```console + ```bash git checkout -b <backup-branch-name> origin/<pr-branch-name> # приклад: @@ -180,14 +180,14 @@ 3. Розпочніть з нуля: - ```console + ```bash git checkout -b <pr-branch-name> next-python-projects git cherry-pick <commit-hash> ``` 4. Розв’яжіть будь-які конфлікти, поприбирайте, встановіть залежності та запустіть тести - ```console + ```bash pnpm run clean pnpm install @@ -201,6 +201,6 @@ 5. Якщо все виглядає добре, передайте до PR - ```console + ```bash git push --force origin <pr-branch-name> ``` diff --git a/docs/i18n/ukrainian/how-to-setup-freecodecamp-locally.md b/docs/i18n/ukrainian/how-to-setup-freecodecamp-locally.md index f346197f736..c3e940f8c62 100644 --- a/docs/i18n/ukrainian/how-to-setup-freecodecamp-locally.md +++ b/docs/i18n/ukrainian/how-to-setup-freecodecamp-locally.md @@ -75,7 +75,7 @@ Якщо на вашій машині вже встановлено Node.js, запустіть наступні команди для перевірки версій: -```console +```bash node -v pnpm -v ``` @@ -142,7 +142,7 @@ pnpm -v 2. Клонуйте своє розгалуження freeCodeCamp, замінивши `YOUR_USER_NAME` на ім’я користувача GitHub - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git ``` @@ -160,25 +160,25 @@ pnpm -v 1. Змініть каталог на новий каталог freeCodeCamp: - ```console + ```bash cd freeCodeCamp ``` 2. Додайте віддалене посилання на основний репозиторій freeCodeCamp: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git ``` 3. Переконайтеся, що конфігурація правильна: - ```console + ```bash git remote -v ``` Вивід повинен бути схожим на нижчеподаний приклад (замініть `YOUR_USER_NAME` на своє ім’я користувача GitHub): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch) origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push) upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch) @@ -203,12 +203,12 @@ pnpm -v Ключі API та змінні середовища за замовчуванням зберігаються у файлі `sample.env`. Цей файл потрібно скопіювати в новий файл під назвою `.env`, доступ до якого відкривається динамічно на кроці встановлення. -```console +```bash # Створіть копію «sample.env» та назвіть її «.env». # Заповніть її необхідними ключами та секретами API ``` -```console +```bash cp sample.env .env ``` @@ -220,7 +220,7 @@ cp sample.env .env У цьому кроці буде встановлено залежності, необхідні для запуску застосунку: -```console +```bash pnpm install && pnpm run create:shared ``` @@ -234,7 +234,7 @@ pnpm install && pnpm run create:shared Запустіть сервер MongoDB в окремому терміналі: -```console +```bash mongod ``` @@ -242,15 +242,14 @@ mongod Тепер додамо базу даних. На цьому кроці ми запускаємо нижченаведену команду, яка заповнює сервер MongoDB деякими початковими наборами даних, потрібних службам. До них належать деякі схеми та інше. -```console +```bash pnpm run seed ``` Ви увійдете як новий користувач без будь-яких завершених сертифікацій за замовчуванням. Запустіть ці команди, якщо потрібні наявні виконані сертифікації: -```console +```bash pnpm run seed:certified-user -pnpm run seed:exams ``` > [!WARNING] Якщо запустити `pnpm run seed:certified-user`, ви вийдете з облікового запису. Вам доведеться очистити cookies свого браузера та увійти знову. @@ -259,7 +258,7 @@ pnpm run seed:exams Тепер ви можете запустити сервер API та клієнтську програму. -```console +```bash pnpm run develop ``` @@ -279,11 +278,12 @@ pnpm run develop Короткий довідник команд, які знадобляться при локальній роботі. -| команда | опис | -| ------------------------------ | --------------------------------------------------------------------------------------------------- | -| `pnpm install` | Встановлює/перевстановлює всі залежності та запускає різні служби. | -| `pnpm run seed` | Створює авторизованих тестових користувачів і розміщує їх у MongoDB. | -| `pnpm run seed:certified-user` | Створює автоматизованих тестових користувачів, які завершили сертифікації, і розміщує їх у MongoDB. | -| `pnpm run seed:exams` | Створює екзамени та вставляє їх в MongoDB. | -| `pnpm run develop` | Запускає сервер API та клієнтські програми freeCodeCamp. | -| `pnpm run clean` | Видаляє всі залежності й очищає кеш. | +| команда | опис | +| ------------------------------ | ------------------------------------------------------------------------------------------------------------- | +| `pnpm install` | Встановлює/перевстановлює всі залежності та запускає різні служби. | +| `pnpm run seed` | Creates authorized test users and inserts them into MongoDB. Also runs `seed:exams` and `seed:surveys` below. | +| `pnpm run seed:certified-user` | Створює автоматизованих тестових користувачів, які завершили сертифікації, і розміщує їх у MongoDB. | +| `pnpm run seed:exams` | Створює екзамени та вставляє їх в MongoDB. | +| `pnpm run seed:surveys` | Creates surveys for defaults users and inserts them into MongoDB. | +| `pnpm run develop` | Starts the freeCodeCamp API Server and Client Applications. | +| `pnpm run clean` | Uninstalls all dependencies and cleans up caches. | diff --git a/docs/i18n/ukrainian/how-to-setup-freecodecamp-mobile-app-locally.md b/docs/i18n/ukrainian/how-to-setup-freecodecamp-mobile-app-locally.md index ae3ed8f310c..e0887819d59 100644 --- a/docs/i18n/ukrainian/how-to-setup-freecodecamp-mobile-app-locally.md +++ b/docs/i18n/ukrainian/how-to-setup-freecodecamp-mobile-app-locally.md @@ -17,7 +17,7 @@ Якщо на вашій машині вже встановлено Flutter, запустіть наступні команди для перевірки версій: -```console +```bash flutter --version dart --version ``` @@ -70,7 +70,7 @@ dart --version 2. Клонуйте своє розгалуження freeCodeCamp, замінивши `YOUR_USER_NAME` на ім’я користувача GitHub - ```console + ```bash git clone --depth=1 https://github.com/YOUR_USER_NAME/mobile.git ``` @@ -88,25 +88,25 @@ dart --version 1. Змініть каталог на новий каталог `mobile`: - ```console + ```bash cd mobile ``` 2. Додайте віддалене посилання на головний репозиторій мобільного застосунку freeCodeCamp: - ```console + ```bash git remote add upstream https://github.com/freeCodeCamp/mobile.git ``` 3. Переконайтеся, що конфігурація правильна: - ```console + ```bash git remote -v ``` Вивід повинен бути схожим на нижчеподаний приклад (замініть `YOUR_USER_NAME` на своє ім’я користувача GitHub): - ```console + ```bash origin https://github.com/YOUR_USER_NAME/mobile.git (fetch) origin https://github.com/YOUR_USER_NAME/mobile.git (push) upstream https://github.com/freeCodeCamp/mobile.git (fetch) @@ -129,20 +129,20 @@ dart --version Ключі API та змінні середовища за замовчуванням зберігаються у файлі `sample.env`. Цей файл потрібно скопіювати в новий файл під назвою `.env`, доступ до якого відкривається динамічно на кроці встановлення. Не забудьте змінити каталог на `mobile-app` перед виконанням наступних команд. -```console +```bash # Створіть копію «sample.env» та назвіть її «.env». # Заповніть її необхідними ключами та секретами API: ``` #### **macOS/Linux** -```console +```bash cp sample.env .env ``` #### **Windows** -```console +```bash copy sample.env .env ``` @@ -152,7 +152,7 @@ copy sample.env .env У цьому кроці буде встановлено залежності, необхідні для запуску застосунку: -```console +```bash flutter pub get ``` @@ -162,7 +162,7 @@ flutter pub get Тепер ви можете запустити застосунок, виконавши наступну команду: -```console +```bash flutter run ``` @@ -176,13 +176,13 @@ flutter run 1. Переконайтесь, що знаходитесь на гілці `main`: - ```console + ```bash git status ``` Ви повинні отримати такий вивід: - ```console + ```bash On branch main Your branch is up-to-date with 'origin/main'. @@ -191,7 +191,7 @@ flutter run Якщо ви не перебуваєте на головній гілці (main) або ваш робочий каталог не чистий, розв’яжіть будь-які невиконані файли/затвердження та перевірте `main`: - ```console + ```bash git checkout main ``` @@ -205,25 +205,25 @@ flutter run Оновіть свою локальну копію віддаленого репозиторію мобільного застосунку freeCodeCamp: - ```console + ```bash git fetch upstream ``` Скиньте свою головну гілку з головною гілкою мобільного застосунку freeCodeCamp: - ```console + ```bash git reset --hard upstream/main ``` Перемістіть свою головну гілку до джерела, щоб мати чисту історію розгалуження на GitHub: - ```console + ```bash git push origin main --force ``` Ви можете переконатись, що ваша поточна головна гілка відповідає upstream/main, виконавши diff: - ```console + ```bash git diff upstream/main ``` @@ -235,7 +235,7 @@ flutter run Переконайтесь, що знаходитесь на `main` та починайте розгалуження звідси: - ```console + ```bash git checkout -b fix/update-guide-for-xyz ``` @@ -259,13 +259,13 @@ flutter run 7. Перевірте та підтвердьте файли, які оновлюєте: - ```console + ```bash git status ``` Має з’явитись список файлів `unstaged`, які ви відредагували. - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -282,25 +282,25 @@ flutter run У цьому кроці потрібно позначити лише ті файли, які редагували чи додавали самостійно. Якщо необхідно, ви можете виконати скидання та виправити файли, які не збираєтеся змінювати. - ```console + ```bash git add path/to/my/changed/file.ext ``` Або ви можете додати всі файли `unstaged` до області тимчасового зберігання: - ```console + ```bash git add . ``` Лише ті файли, які було переміщено до області тимчасового зберігання, будуть додані під час затвердження. - ```console + ```bash git status ``` Вивід: - ```console + ```bash On branch feat/documentation Your branch is up to date with 'upstream/feat/documentation'. @@ -313,7 +313,7 @@ flutter run Тепер ви можете затвердити свої зміни, використовуючи коротке повідомлення: - ```console + ```bash git commit -m "fix: my short commit message" ``` @@ -345,7 +345,7 @@ flutter run 9. Якщо вам потрібно відредагувати файл або оновити повідомлення після створення затвердження, це можна зробити після редагування файлів за допомогою: - ```console + ```bash git commit --amend ``` @@ -353,7 +353,7 @@ flutter run 10. Тепер надішліть свої зміни до розгалуження: - ```console + ```bash git push origin branch/name-here ``` @@ -363,14 +363,14 @@ flutter run 1. Клонуйте копію [репозиторію freeCodeCamp](https://github.com/freeCodeCamp/freeCodeCamp) локально зі своєї локальної копії репозиторію мобільного застосунку freeCodeCamp. Структура файлів має виглядати так: - ```console + ```bash ├── freeCodeCamp ├── mobile ``` 2. Змініть каталог на репозиторій freeCodeCamp: - ```console + ```bash cd freeCodeCamp ``` @@ -378,25 +378,25 @@ flutter run #### **macOS/Linux** - ```console + ```bash cp sample.env .env ``` #### **Windows** - ```console + ```bash copy sample.env .env ``` 4. Встановіть залежності для репозиторію freeCodeCamp: - ```console + ```bash pnpm install && pnpm run create:shared ``` 5. Створіть файл JSON з даними завдань: - ```console + ```bash pnpm run build:curriculum ``` @@ -404,54 +404,54 @@ flutter run #### **macOS/Linux** - ```console + ```bash cp ./shared/config/curriculum.json ../mobile/mobile-app/curriculum.json ``` #### **Windows** - ```console + ```bash copy .\shared\config\curriculum.json ..\mobile\mobile-app\curriculum.json ``` 7. Змініть каталог на мобільний застосунок: - ```console + ```bash cd ../mobile/mobile-app ``` 8. Встановіть залежності для мобільного застосунку: - ```console + ```bash flutter pub get ``` 9. Оновіть файл тестів, щоб використовувати файл JSON з даними завдань: - ```console + ```bash sed -i '' 's/..\/..\/shared\/config\/curriculum.json/.\/curriculum.json/g' test/widget_test.dart ``` 10. Створіть файли завдань: - ```console + ```bash flutter test test/widget_test.dart ``` 11. Запустіть локальний сервер для обслуговування файлів завдань за допомогою пакету `serve`: - ```console + ```bash npx serve ``` 12. В іншому терміналі поверніться до репозиторію freeCodeCamp: - ```console + ```bash cd ../../freeCodeCamp ``` 13. Запустіть тести cypress: - ```console + ```bash pnpm cypress run --config retries=1,screenshotOnRunFailure=false,video=false,baseUrl=http://localhost:3000/generated-tests/,specPattern=cypress/e2e/mobile-learn/test-challenges.js -s cypress/e2e/mobile-learn/test-challenges.js -b chrome ``` @@ -482,7 +482,7 @@ A quick reference to the commands that you will need when working locally. Якщо у вас виникли проблеми з інтерфейсом чи збіркою, може допомогти очищення: -```console +```bash flutter clean ``` diff --git a/docs/i18n/ukrainian/how-to-setup-wsl.md b/docs/i18n/ukrainian/how-to-setup-wsl.md index 7d84f8ac762..6364ceaf8e8 100644 --- a/docs/i18n/ukrainian/how-to-setup-wsl.md +++ b/docs/i18n/ukrainian/how-to-setup-wsl.md @@ -10,7 +10,7 @@ ## Активуйте WSL -Дотримуйтесь інструкцій з [офіційної документації](https://docs.microsoft.com/en-us/windows/wsl/install-win10), щоб встановити WSL1 та оновити його до WSL2. +Follow the instructions on the [official documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL2. ## Встановіть Ubuntu @@ -20,9 +20,11 @@ > > Ви можете використовувати інші дистрибутиви, основою яких не є Debian, але у них наявні певні недоліки та вони виходять за рамки цього посібника. + As of November 2023, Ubuntu and Debian are the only Linux distributions [officially supported by Playwright](https://playwright.dev/docs/intro#system-requirements), the end-to-end testing library used by freeCodeCamp. + 2. Оновіть залежності ОС - ```console + ```bash sudo apt update sudo apt upgrade -y @@ -70,23 +72,23 @@ git version 2.25.1 Як тільки ви налаштували Docker Desktop для роботи з WSL2, дотримуйтесь цих кроків, щоб запустити службу MongoDB: -1. Запустіть новий термінал Ubuntu-18.04 +1. Launch a new Ubuntu terminal -2. Витягніть `MongoDB 4.0.x` із Docker Hub +2. Pull MongoDB from Docker Hub. Please refer to the [Prerequisites](how-to-setup-freecodecamp-locally.md#Prerequisites) table for the current version of MongoDB used by freeCodeCamp. For example, if the version number is `5.0.x`, replace `<x.y>` with `5.0` in the following two code snippets. - ```console - docker pull mongo:4.0 + ```bash + docker pull mongo:<x.y> ``` 3. Запустіть службу MongoDB на порті `27017` та налаштуйте її на автоматичний запуск після перезавантаження системи - ```console + ```bash docker run -it \ -v mongodata:/data/db \ -p 27017:27017 \ --name mongodb \ --restart unless-stopped \ - -d mongo:4.0 + -d mongo:<x.y> ``` 4. Тепер ви можете отримати доступ до служби з Windows чи Ubuntu на `mongodb://localhost:27017`. @@ -95,37 +97,126 @@ git version 2.25.1 Ми рекомендуємо встановити випуск LTS для Node.js за допомогою Node Version Manager ([nvm](https://github.com/nvm-sh/nvm#installing-and-updating)). -Як тільки його буде встановлено, використайте ці команди, щоб встановити та використовувати версію Node.js за потреби: +Once installed use this command to install and use the latest Node.js LTS version: -```console +```bash nvm install --lts - -# АБО -# nvm install <version> - -nvm install 14 - -# Використання -# nvm use <version> - -nvm use 12 ``` -Node.js надходить разом з `npm`, який можна використати для встановлення `pnpm`: +For instructions on installing and using a different version of Node.js, please refer to the [nvm docs](https://github.com/nvm-sh/nvm#usage). -```console +Node.js comes bundled with `npm`, which you can use to install `pnpm`: + +```bash npm install -g pnpm ``` ## Налаштуйте freeCodeCamp локально -Ви встановили передумови, тому дотримуйтесь [нашого посібника з локального налаштування](how-to-setup-freecodecamp-locally.md), щоб клонувати, встановити та налаштувати freeCodeCamp локально на своїй машині. +Now that you have installed the pre-requisites, follow [our local setup guide](how-to-setup-freecodecamp-locally.md) to clone, install and set up freeCodeCamp locally on your machine. > [!WARNING] > > Зауважте, що наразі налаштування тестів Cypress (та пов’язаних потреб GUI) знаходяться в стадії розробки. Ви повинні вміти працювати над більшою частиною кодової бази. -## Корисні посилання +## Optimize Windows and WSL + + > [!NOTE] + > + > The following tips were collected from across the web and have not gone through vigorous testing. Your mileage may vary. + +### Adjust processer scheduling for background services + +This may reduce incidents of Docker containers crashing due to lack of resources. + +Open the System Properties control panel by pressing <kbd>Win + R</kbd> and entering `sysdm.cpl` + +<details> + <summary> + Enter <code>sysdm.cpl</code> in the Run dialog (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/run-sysdm.png" alt="Enter `sysdm.cpl` in the Run dialog" /> +</details> +<br> + +Go to Advanced -> Performance -> Settings… + +<details> + <summary> + Performance Settings button under Advanced tab in System Properties (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-performance-settings.png" alt="Performance Settings button under Advanced tab in System Properties" /> +</details> +<br> + +Under Advanced -> Processor scheduling, choose "Background services". Do not close the window. Continue to the next tip. + +<details> + <summary> + Background services radio button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/background-services.png" alt="Background services radio button under Advanced tab in Performance Options" /> +</details> + +### Increase the size of Windows paging file for the system drive + +Under Advanced -> Virtual memory, click "Change…" + +<details> + <summary> + Change virtual memory button under Advanced tab in Performance Options (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/advanced-virtual-memory.png" alt="Change virtual memory button under Advanced tab in Performance Options" /> +</details> +<br> + +Choose "Custom size". Set the initial size to 1.5x and the maximum size to 3x of your physical memory. Then click "Set". + +<details> + <summary> + Set custom size button in Virtual Memory window (screenshot) + </summary> + + <br> + <img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/main/docs/images/wsl/set-custom-size.png" alt="Set custom size button in Virtual Memory window" /> +</details> + +### Increase the size of memory allocated to WSL + +Create a [`.wslconfig` file](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) in your [`%UserProfile%` directory](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#wslconfig) (typically `C:\Users\<UserName>\.wslconfig`). Please read the [WSL documentation](https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig) carefully and replace `x` with values that suit your own needs: + +```ini +# Settings apply across all Linux distros running on WSL 2 +[wsl2] + +# How much memory to assign to the WSL 2 VM. The default value might not be enough +memory=xGB + +# How much swap space to add to the WSL 2 VM, default is 25% of available RAM +swap=xGB +``` + +### Increase Node.js max old space size + +This fixes the ["JavaScript heap out of memory" error](https://stackoverflow.com/a/54456814) with ESLint. Add the following to your `~/.bashrc` or `~/.zshrc`: + +```sh +export NODE_OPTIONS="--max-old-space-size=4096" +``` + +### Avoid `pnpm run test` + +Instead, use the script [appropriate to your PR](https://forum.freecodecamp.org/t/wsl-performance-issues-while-working-on-the-codebase/644215/2#:~:text=usually%2C%20you%20just%20want%20to%20test%20something%20specific%20to%20either%20the%20curriculum%20or%20the%20client%20or%20the%20api%20-%20almost%20never%20all%203.); either `pnpm run test:api`, `pnpm run test:curriculum`, or `pnpm run test-client`. + +## Useful Links - [A WSL2 Dev Setup with Ubuntu 20.04, Node.js, MongoDB, VS Code, and Docker](https://hn.mrugesh.dev/wsl2-dev-setup-with-ubuntu-nodejs-mongodb-and-docker) — стаття Мругеша Мохапатри (штатний розробник freeCodeCamp.org) - Часті питання: diff --git a/docs/i18n/ukrainian/how-to-work-on-coding-challenges.md b/docs/i18n/ukrainian/how-to-work-on-coding-challenges.md index f344eeb974c..e12d014a5b6 100644 --- a/docs/i18n/ukrainian/how-to-work-on-coding-challenges.md +++ b/docs/i18n/ukrainian/how-to-work-on-coding-challenges.md @@ -232,15 +232,17 @@ title: Challenge Title Надавайте перевагу коротким абзацам (1-4 речення). Найімовірніше, люди прочитають декілька коротких абзаців, а не суцільний текст. -У тексті завдання потрібно використовувати 2-гу особу множини («ви»). У такий спосіб текст та інструкції будуть звернені напряму до учня, який виконує завдання. Намагайтеся уникати звертань у 1-й особі, як-от «я», «ми», «нам». +Use american english, e.g., use `labeled` instead of `labelled`. -Не використовуйте зовнішні посилання. Вони переривають робочий процес. Учні не повинні використовувати гугл під час виконання завдань. Якщо є ресурси, які, на вашу думку, допоможуть учням, додайте їх до статті, пов’язаної з керівництвом до завдання. +Challenge text should use the second person ("you") to help to give it a conversational tone. This way the text and instructions seem to speak directly to the camper working through the challenge. Try to avoid using the first person ("I", "we", "let's", and "us"). -В разі потреби можна додати діаграми. +Don't use outbound links. These interrupt the flow. Campers should never have to google anything during these challenges. If there are resources you think campers would benefit from, add them to the challenge's Guide-related article. -Не використовуйте емоджі в завданнях. freeCodeCamp — глобальна спільнота, а значення емоджі може відрізнятись в різних частинах світу. Крім цього, емоджі можуть по-різному зображатися у різних системах. +You can add diagrams if necessary. -Власні іменники потрібно писати з великої літери, коли це можливо. Нижче поданий список, у якому показано, як повинні писатись слова в завданнях. +Don't use emojis or emoticons in challenges. freeCodeCamp has a global community, and the cultural meaning of an emoji or emoticon may be different around the world. Also, emojis can render differently on different systems. + +Proper nouns should use correct capitalization when possible. Below is a list of words as they should appear in the challenges. - JavaScript (великі літери «J» і «S», без скорочень) - Node.js @@ -248,28 +250,28 @@ title: Challenge Title ### Правило двох хвилин -Кожне завдання повинне бути вирішене протягом 120 секунд носієм англійської мови, який виконав попередні завдання. У цей час входять прочитання вказівок/інструкцій для розуміння початкового коду, написання власного коду і проходження всіх тестів. +Each challenge should be solvable within 120 seconds by a native English speaker who has completed the challenges leading up to it. This includes the amount of time it takes to read the directions/instructions understand the seeded code, write their code and get all the tests to pass. -Якщо виконання завдання займає більше двох хвилин, у вас є два шляхи: +If it takes longer than two minutes to complete the challenge, you have two options: - Спростіть завдання, або - Розділіть завдання на два кроки. -Завдяки правилу двох хвилин ви зробите лаконічні вказівки, зрозумілий початковий код та прості тести. +The 2-minute rule forces you, the challenge designer, to make your directions concise, your seed code clear, and your tests straightforward. -Ми відстежуємо скільки часу займає розв’язок завдань та використовуємо цю інформацію, щоб виявити завдання, які потрібно спростити чи розділити. +We track how long it takes for campers to solve challenges and use this information to identify challenges that need to be simplified or split. ### Модульність -Кожне завдання повинне навчати лише одному поняттю, і це поняття повинне бути очевидним з назви завдання. +Each challenge should teach exactly one concept, and that concept should be apparent from the challenge's name. -Ми можемо закріпити раніше вивчені поняття за допомогою повторення та варіацій. Наприклад, ознайомити користувача з елементами h1 в одному завданні, а пізніше з елементами h3. +We can reinforce previously covered concepts through repetition and variations - for example, introducing h1 elements in one challenge, then h3 elements a few challenges later. -Наша мета — розробити тисячі двохвилинних завдань. Вони можуть йти нарівні, а також нагадувати про раніше вивчені поняття. +Our goal is to have thousands of 2-minute challenges. These can flow together and reiterate previously-covered concepts. ### Форматування тексту завдання -Тут подано конкретні рекомендації щодо форматування тексту завдання та приклади: +Here are specific formatting guidelines for challenge text and examples: - Ключові слова мови знаходяться у зворотних лапках `` \` ``. Наприклад, назви тегів HTML чи назви властивостей CSS. - Посилання на частини коду (тобто назви функцій, методів чи змінних) потрібно брати у зворотні лапки `` \ ` ``. Розгляньте приклад нижче: @@ -282,9 +284,9 @@ title: Challenge Title - Перед блоками багаторядкового коду **має бути порожній рядок**. Наступний рядок повинен починатись з трьох зворотних лапок, після яких йде одна з [підтримуваних мов](https://prismjs.com/#supported-languages). Щоб закінчити блок коду, потрібно почати новий рядок, який має лише три зворотні лапки та **ще один порожній рядок**. Розгляньте приклад нижче: - Пробіл має значення у markdown, тому ми рекомендуємо зробити його видимим у редакторі. -**Примітка:** якщо ви збираєтесь використовувати код прикладу в YAML, використовуйте `yaml` замість `yml` для мови справа від зворотних лапок. +**Note:** If you are going to use an example code in YAML, use `yaml` instead of `yml` for the language to the right of the backticks. -Нижче поданий приклад коду: +The following is an example of code: ````md ```{language} @@ -306,7 +308,7 @@ title: Challenge Title Наша мета — пояснити поняття, описане в завданні, та перевірити, що його зрозуміли. -Тести завдань можуть використовувати бібліотеки Node.js та Chai.js. Якщо необхідно, у змінній `code` можна отримати доступ до коду, створеного користувачами. Крім того, об’єкт `__helpers` надає декілька функцій, які полегшують процес написання тестів. Доступні функції визначені у _client/src/utils/curriculum-helpers.ts_. +Тести завдань можуть використовувати бібліотеки Node.js та Chai.js. Якщо необхідно, у змінній `code` можна отримати доступ до коду, створеного користувачами. Крім того, об’єкт `__helpers` надає декілька функцій, які полегшують процес написання тестів. The available functions are defined in the [curriculum-helpers](https://github.com/freeCodeCamp/curriculum-helpers/blob/main/lib/index.ts) repo. ## Форматування вихідного коду @@ -328,13 +330,13 @@ title: Challenge Title // Змініть код під цим рядком ```` -Приклад дійсного коментаря CSS: +Example of a valid CSS comment: ```css /* Only change code above this line */ ``` -Якщо завдання має лише одне місце, де потрібно змінити код, будь ласка, використайте коментарі з наступного прикладу, щоб проінформувати користувача, де потрібно внести зміни. +If a challenge only has a single place where code changes are needed, please use the comments in the following example to instruct the user where changes should be made. ```js var a = 3; @@ -347,7 +349,7 @@ b = 9 + b; c = c + 7; ``` -Якщо завдання має декілька місць, де користувач повинен змінити код (наприклад, завдання з React) +If a challenge has multiple places where the user is expected to change code (i.e. the React challenges) ```jsx class MyComponent extends React.Component { @@ -380,9 +382,9 @@ class MyComponent extends React.Component { ### Переклад коментарів початкового коду -Існують окремі словники з коментарями для кожної мови. [Англійська версія словника з коментарями](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/dictionaries/english/comments.json) є основою для перекладів іншомовних версій файлів. Китайська версія словника з коментарями буде розташована на `/curriculum/dictionaries/chinese/comments.json`. Кожен словник складається з масиву об’єктів з унікальною властивістю `id` та властивістю `text`. Щоб охопити переклад англійського коментаря, потрібно змінювати лише `text`. +There are separate comment dictionaries for each language. The [English version of the comment dictionary](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/dictionaries/english/comments.json) is the basis for the translations found in the corresponding non-English versions of the files. The non-English version of the Chinese comment dictionary would be located at `/curriculum/dictionaries/chinese/comments.json`. Each dictionary consists of an array of objects with a unique `id` property and a `text` property. Only the `text` should be modified to encompass the translation of the corresponding English comment. -Деякі коментарі можуть містити слова чи фрази, які не потрібно перекладати. Наприклад, назви змінних або власні назви бібліотек (як-от «React») не потрібно перекладати. Розгляньте приклад нижче. Слово `myGlobal` не потрібно перекладати. +Some comments may contain a word/phrase that should not be translated. For example, variable names or proper library names like "React" should not be translated. See the comment below as an example. The word `myGlobal` should not be translated. ```text Оголосіть змінну myGlobal під цим рядком @@ -394,13 +396,13 @@ class MyComponent extends React.Component { ## Підказки та розв’язки -Кожне завдання має кнопку `Get a Hint` для того, щоб користувач отримав доступ до будь-яких підказок/розв’язків, які були створені для цього завдання. Підказки та розв’язки навчальної програми розташовані на [нашому форумі](https://forum.freecodecamp.org/c/guide) у категорії `Guide`. +Each challenge has a `Get a Hint` button, so a user can access any hints/solutions which have been created for the challenge. Curriculum hints/solutions topics are located on [our forum](https://forum.freecodecamp.org/c/guide) under the `Guide` category. -Якщо ви виявили помилку в наявних підказках чи розв’язках, повідомте про це на форумі [у розділі «Contributors»](https://forum.freecodecamp.org/c/contributors). Модератори й користувачі з 3-м рівнем довіри розглянуть коментарі та приймуть рішення щодо наданих вами змін. +If you find a problem with an existing challenge's hints/solutions topic, you can make suggestions in the [contributors category](https://forum.freecodecamp.org/c/contributors) on the forum. Moderators and users with trust level 3 will review the comments and decide whether or not to include the changes in the corresponding hint/solutions topic. ### Додавання нових тем для підказок чи розв’язків завдань -Виконайте наступні кроки, щоб додати нову тему для підказок чи розв’язків завдань. +Take the following steps when adding a new challenge hints/solutions-related topic. 1. Розпочніть з тих самих кроків для створення нової теми, але зверніть увагу на наступні щодо заголовка. 2. Заголовок теми повинен починатись з `freeCodeCamp Challenge Guide:`, з’єднаного з назвою завдання навчальної програми. Наприклад, якщо завдання має назву `Chunky Monkey`, заголовком теми буде `freeCodeCamp Challenge Guide: Chunky Monkey`. @@ -409,7 +411,7 @@ class MyComponent extends React.Component { ### Вказівки щодо змісту тем підказок і розв’язків -Пропонуючи розв’язок до теми завдання навчальної програми, потрібно додати повний код. Сюди входить весь вихідний код та будь-які зміни, необхідні для проходження тестів. Використовуйте цей шаблон для створення нових тем підказок/розв’язків: +When proposing a solution for a curriculum challenge-related Guide topic, the full code must be added. This includes all the original seed code plus any changes needed to pass all the challenge tests. The following template should be used when creating new hints/solutions topics: ````md # Тут назва завдання @@ -496,35 +498,35 @@ FCC_SUPERBLOCK='responsive-web-design' pnpm run test:curriculum cd curriculum ``` -2. Виконайте цю команду для кожного файлу завдання, до якого ви внесли зміни (замінивши `challenge-title-goes-here` на повну назву завдання): +2. Run the following for each challenge file for which you have changed (replacing `challenge-title-goes-here` with the full title of the challenge): ``` pnpm run test -- -g challenge-title-goes-here ``` > [!TIP] -> Ви можете встановити змінну середовища `LOCALE` у `.env` на мову завдань, які потрібно протестувати. +> You can set the environment variable `LOCALE` in the `.env` to the language of the challenge(s) you need to test. > -> Наразі прийнятними значеннями є `english` та `chinese` (`english` за замовчуванням). +> The currently accepted values are `english` and `chinese`, with `english` being set by default. -## Відкриття запиту на злиття (PR) +## Proposing a Pull Request (PR) -Як тільки ви затвердили свої зміни, див. [як відкрити запит на злиття](how-to-open-a-pull-request.md). +After you've committed your changes, check here for [how to open a Pull Request](how-to-open-a-pull-request.md). -## Корисні посилання +## Useful Links -Створення та редагування завдань: +Creating and Editing Challenges: -1. [Види завдань](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) — що означають числові значення завдань (перелік). +1. [Challenge types](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - what the numeric challenge type values mean (enum). -2. [Внесок до FreeCodeCamp: написання тестів до завдань ES6](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) — відео [Ітана Арровуда](https://twitter.com/ArrowoodTech) про його внесок до старої версії навчальної програми. +2. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - a video following [Ethan Arrowood](https://twitter.com/ArrowoodTech) as he contributes to the old version of the curriculum. -## Допоміжні скрипти +## Helper Scripts > [!NOTE] -> Якщо ви працюєте над покроковими завданнями, див. розділ щодо [роботи над практичними проєктами](how-to-work-on-practice-projects.md). +> If you are working with the step-based challenges, refer to the [Work on Practice Projects](how-to-work-on-practice-projects.md) section. -Існує декілька допоміжних скриптів, які можна використовувати для завдань у блоці. Зверніть увагу, що ці команди потрібно виконувати у каталозі блоків. Наприклад: +There are a few helper scripts that can be used to manage the challenges in a block. Note that these commands should all be run in the block directory. For example: ```bash cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting @@ -532,33 +534,33 @@ cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/ba ### Додати нове завдання -Щоб додати нове завдання в кінці блоку, викличте скрипт: +To add a new challenge at the end of a block, call the script: ```bash pnpm run create-next-challenge ``` -Це допоможе отримати інформацію про завдання та створити файл з завданням, оновивши файл `meta.json` новою інформацією про завдання. +This will prompt you for the challenge information and create the challenge file, updating the `meta.json` file with the new challenge information. ### Видалити завдання -Щоб видалити завдання, викличте скрипт: +To delete a challenge, call the script: ```bash pnpm run delete-challenge ``` -Це допоможе обрати потрібне завдання, видалити файл та оновити файл `meta.json`, щоб видалити завдання з порядку. +This will prompt you to select which challenge should be deleted, then delete the file and update the `meta.json` file to remove the challenge from the order. ### Вставити завдання -Щоб вставити завдання перед наявним завданням, викличте скрипт: +To insert a challenge before an existing challenge, call the script: ```bash pnpm run insert-challenge ``` -Це допоможе отримати інформацію про нове завдання, а також про наявне завдання. Наприклад, якщо варіанти такі: +This will prompt you for the challenge information, then for the challenge to insert before. For example, if your choices are: ```bash a @@ -566,7 +568,7 @@ b c ``` -Якщо оберете `b`, то новим порядком буде: +If you choose `b`, your new order will be: ```bash a @@ -577,26 +579,26 @@ c ### Оновити порядок завдань -Якщо вам потрібно змінити порядок завдань вручну, викличте скрипт: +If you need to manually re-order the challenges, call the script: ```bash pnpm run update-challenge-order ``` -Він проведе вас через інтерактивний процес, який допоможе впорядкувати завдання. +This will take you through an interactive process to select the order of the challenges. ## Розв’язання проблем розробки ### Виявлено нескінченний цикл -Якщо ви бачите цю помилку в консолі під час попереднього перегляду завдання: +If you see the following error in the console while previewing a challenge: ```text Potential infinite loop detected on line <number>... ``` -Це означає, що плагін для захисту циклу знайшов довгий цикл або рекурсивну функцію. Якщо ваше завдання передбачає їх (тобто містить нескінченний цикл), ви можете запобігти використанню плагіну в попередньому перегляді. Для цього додайте `disableLoopProtectPreview: true` до файлу блоку `meta.json`. +This means that the loop-protect plugin has found a long-running loop or recursive function. If your challenge needs to do that (e.g. it contains an event loop that is supposed to run indefinitely), then you can prevent the plugin from being used in the preview. To do so, add `disableLoopProtectPreview: true` to the block's `meta.json` file. -Якщо ваші тести інтенсивно обчислюються, ви можете побачити цю помилку під час запуску. Якщо це відбувається, додайте `disableLoopProtectTests: true` до файлу блоку `meta.json`. +If your tests are computationally intensive, then you may see this error when they run. If this happens then you can add `disableLoopProtectTests: true` to the block's `meta.json` file. -Значенням обох необов’язково має бути true, тому налаштовуйте їх лише за потреби. +It's not typically necessary to have both set to true, so only set them as needed. diff --git a/docs/i18n/ukrainian/how-to-work-on-localized-client-webapp.md b/docs/i18n/ukrainian/how-to-work-on-localized-client-webapp.md index f68c8dab9ed..b0786775601 100644 --- a/docs/i18n/ukrainian/how-to-work-on-localized-client-webapp.md +++ b/docs/i18n/ukrainian/how-to-work-on-localized-client-webapp.md @@ -16,7 +16,7 @@ Більшість файлів для перекладу платформи розташовані у папці [`client/i18n`](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n). Для кожної мови є каталог, що містить файли JSON з перекладами. -```console +```bash config └── i18n.ts ... diff --git a/docs/i18n/ukrainian/how-to-work-on-the-docs-theme.md b/docs/i18n/ukrainian/how-to-work-on-the-docs-theme.md index ede8e6ef3a4..411955fd88a 100644 --- a/docs/i18n/ukrainian/how-to-work-on-the-docs-theme.md +++ b/docs/i18n/ukrainian/how-to-work-on-the-docs-theme.md @@ -47,7 +47,7 @@ Налаштуйте freeCodeCamp локально ([див. посібник з локального налаштування](how-to-setup-freecodecamp-locally)). Ми зібрали CLI з інструментами веброзробки, щоб ви могли запустити будь-яку з наведених нижче команд з кореня репозиторію: -```console +```bash pnpm run docs:serve ``` diff --git a/docs/i18n/ukrainian/troubleshooting-development-issues.md b/docs/i18n/ukrainian/troubleshooting-development-issues.md index bbcdd49cffe..607ac5b8193 100644 --- a/docs/i18n/ukrainian/troubleshooting-development-issues.md +++ b/docs/i18n/ukrainian/troubleshooting-development-issues.md @@ -16,7 +16,7 @@ Коли ви будуєте клієнта, Gatsby кешує шрифти, мовні рядки та UI. Якщо щось з переліченого не кешоване, виконайте наступне: -```console +```bash pnpm run clean pnpm install pnpm run seed @@ -53,7 +53,7 @@ git clean -ifdX Якщо ви не можете увійти, а замість цього бачите банер з повідомленням про помилку, яка буде відправлена до freeCodeCamp, будь ласка, перевірте, чи не використовується ваш локальний порт `3000` іншою програмою. #### **З термінала:** -```console +```bash netstat -a | grep "3000" tcp4 0 0 0.0.0.0:3000 DESKTOP LISTEN