From af730bf58502d386f1354137ddf4bf3e8791954b Mon Sep 17 00:00:00 2001 From: Shaun Hamilton Date: Fri, 12 Sep 2025 09:34:52 +0200 Subject: [PATCH] chore: migrate gitpod -> ona (#62046) --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- README.md | 2 +- client/i18n/locales/english/translations.json | 23 +- .../formHelpers/form-validators.tsx | 2 +- .../{gitpod-note.tsx => ona-note.tsx} | 12 +- .../codeally/rdb-gitpod-continue-alert.tsx | 39 ---- .../codeally/rdb-gitpod-instructions.tsx | 42 ---- .../codeally/rdb-gitpod-logout-alert.tsx | 23 -- .../codeally/rdb-ona-continue-alert.tsx | 35 +++ .../codeally/rdb-ona-instructions.tsx | 205 ++++++++++++++++++ .../codeally/rdb-ona-logout-alert.tsx | 19 ++ .../templates/Challenges/codeally/show.tsx | 50 ++--- .../Introduction/components/legacy-links.tsx | 4 +- .../5e46f7e5ac417301a38fb928.md | 4 +- .../5e46f7e5ac417301a38fb929.md | 2 +- .../5e46f7f8ac417301a38fb92a.md | 2 +- .../5e46f802ac417301a38fb92b.md | 2 +- .../5e4f5c4b570f7e3a4949899f.md | 2 +- .../5e46f979ac417301a38fb932.md | 2 +- .../5e46f983ac417301a38fb933.md | 2 +- .../672d26269456511aa3db614d.md | 4 +- .../5e46f8d6ac417301a38fb92d.md | 2 +- .../66ed8fb9f45ce3ece4053eac.md | 2 +- 23 files changed, 313 insertions(+), 169 deletions(-) rename client/src/components/growth-book/{gitpod-note.tsx => ona-note.tsx} (67%) delete mode 100644 client/src/templates/Challenges/codeally/rdb-gitpod-continue-alert.tsx delete mode 100644 client/src/templates/Challenges/codeally/rdb-gitpod-instructions.tsx delete mode 100644 client/src/templates/Challenges/codeally/rdb-gitpod-logout-alert.tsx create mode 100644 client/src/templates/Challenges/codeally/rdb-ona-continue-alert.tsx create mode 100644 client/src/templates/Challenges/codeally/rdb-ona-instructions.tsx create mode 100644 client/src/templates/Challenges/codeally/rdb-ona-logout-alert.tsx diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 775fd831ab8..e7c087f0869 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -5,7 +5,7 @@ Checklist: - [ ] I have read and followed the [contribution guidelines](https://contribute.freecodecamp.org). - [ ] I have read and followed the [how to open a pull request guide](https://contribute.freecodecamp.org/how-to-open-a-pull-request/). - [ ] My pull request targets the `main` branch of freeCodeCamp. -- [ ] I have tested these changes either locally on my machine, or Gitpod. +- [ ] I have tested these changes either locally on my machine, or Ona. diff --git a/README.md b/README.md index aeb0bc2ceb7..95cf9f55688 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Pull Requests Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](https://makeapullrequest.com) [![first-timers-only Friendly](https://img.shields.io/badge/first--timers--only-friendly-blue.svg)](https://www.firsttimersonly.com/) [![Open Source Helpers](https://www.codetriage.com/freecodecamp/freecodecamp/badges/users.svg)](https://www.codetriage.com/freecodecamp/freecodecamp) -[![Setup Automated](https://img.shields.io/badge/setup-automated-blue?logo=gitpod)](https://gitpod.io/from-referrer/) +[![Setup Automated](https://img.shields.io/badge/setup-automated-blue?logo=ona)](https://ona.com/from-referrer/) [![Discord](https://img.shields.io/discord/692816967895220344?logo=discord&label=Discord&color=5865F2)](https://discord.gg/PRyKn3Vbay) ## freeCodeCamp.org's open-source codebase and curriculum diff --git a/client/i18n/locales/english/translations.json b/client/i18n/locales/english/translations.json index 205fd0a574a..1e849c855bf 100644 --- a/client/i18n/locales/english/translations.json +++ b/client/i18n/locales/english/translations.json @@ -527,20 +527,23 @@ "project-preview-title": "Here's a preview of what you will build", "demo-project-title": "Here's an example of a project that meets the requirements", "github-required": "<0>Create a GitHub account if you don't have one. You'll need it when you create the virtual Linux server machine. This process may take a few minutes.", - "gitpod": { - "intro": "This course runs in a virtual Linux machine using Gitpod. Follow these instructions to start the course:", - "step-1": "<0>Create a GitHub account if you don't have one", + "ona": { + "intro": "This course runs in a virtual Linux machine using Ona. Follow these instructions to start the course:", + "step-1": "<0>Create an Ona account if you don't have one", "step-2": "Click the start button below", - "step-3": "Login to Gitpod with your GitHub account if you aren't already", + "step-3": "In the modal that pops up, click the create button", "step-4": "Once the virtual Linux machine is finished loading, start the CodeRoad extension by:", "step-5": "Clicking the \"hamburger\" menu near the top left of the VSCode window,", - "step-6": "Going to the \"View\" menu,", - "step-7": "Clicking on the \"Command Palette\" option,", - "step-8": "and running the \"CodeRoad: Start\" command", + "step-6": "Going to the <0>View menu,", + "step-7": "Clicking on the <0>Command Palette option,", + "step-8": "and running the <0>CodeRoad: Start command", "step-9": "Follow the instructions in CodeRoad to complete the course", - "continue-project": "Clicking the button below will start a new project. If you have previously started the {{course}} course, go to <0>your Gitpod dashboard to continue.", - "learn-more": "Learn more about <0>Gitpod workspaces.", - "logout-warning": "If you log out of freeCodeCamp before you complete the entire {{course}} course, your progress will not be saved to your freeCodeCamp account." + "continue-project": "Clicking the button below will start a new project. If you have previously started the {{course}} course, go to <0>your Ona dashboard to continue.", + "learn-more": "Learn more about <0>Ona workspaces.", + "logout-warning": "If you log out of freeCodeCamp before you complete the entire {{course}} course, your progress will not be saved to your freeCodeCamp account.", + "sub-step-3": "Navigate to your <0>Ona secrets page", + "sub-step-4": "Create a new secret named <0>CODEROAD_WEBHOOK_TOKEN", + "sub-step-5": "In the <0>Secret field, paste your token" }, "local": { "intro": "This course runs in a virtual Linux machine on your computer. To run the course, you first need to download each of the following if you don't already have them:", diff --git a/client/src/components/formHelpers/form-validators.tsx b/client/src/components/formHelpers/form-validators.tsx index fe1efad87ed..92069a6ce1c 100644 --- a/client/src/components/formHelpers/form-validators.tsx +++ b/client/src/components/formHelpers/form-validators.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { Trans } from 'react-i18next'; import { isPrivate } from './form-ip-utils'; -// Matches editor links for: Replit, Glitch, CodeSandbox, GitHub. NOT Codespaces, and NOT Gitpod yet +// Matches editor links for: Replit, Glitch, CodeSandbox, GitHub. NOT Codespaces, and NOT Gitpod/Ona yet // Once safari allows negative lookbehinds, this can be used: // |(?('gitpod-note', { superblocks: [] }); const { t } = useTranslation(); - return gitpodNoteFeature.superblocks.includes(superBlock) ? ( + return onaNoteFeature.superblocks.includes(superBlock) ? (

{t('intro:misc-text.read-database-cert-article')} diff --git a/client/src/templates/Challenges/codeally/rdb-gitpod-continue-alert.tsx b/client/src/templates/Challenges/codeally/rdb-gitpod-continue-alert.tsx deleted file mode 100644 index e5c98e7d5fd..00000000000 --- a/client/src/templates/Challenges/codeally/rdb-gitpod-continue-alert.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; -import { Trans } from 'react-i18next'; -import { Alert, Spacer } from '@freecodecamp/ui'; - -interface RdbGitpodContinueAlertProps { - course: string; -} - -function RdbGitpodContinueAlert({ - course -}: RdbGitpodContinueAlertProps): JSX.Element { - return ( - - - - placeholder - - - - - - placeholder - - - - ); -} - -RdbGitpodContinueAlert.displayName = 'RdbGitpodContinueAlert'; - -export default RdbGitpodContinueAlert; diff --git a/client/src/templates/Challenges/codeally/rdb-gitpod-instructions.tsx b/client/src/templates/Challenges/codeally/rdb-gitpod-instructions.tsx deleted file mode 100644 index 26d3849761a..00000000000 --- a/client/src/templates/Challenges/codeally/rdb-gitpod-instructions.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import React from 'react'; -import { Trans, useTranslation } from 'react-i18next'; - -function RdbGitpodInstructions(): JSX.Element { - const { t } = useTranslation(); - - return ( -

-

{t('learn.gitpod.intro')}

-
    -
  1. - - - placeholder - - -
  2. -
  3. {t('learn.gitpod.step-2')}
  4. -
  5. {t('learn.gitpod.step-3')}
  6. -
  7. - {t('learn.gitpod.step-4')} -
      -
    • {t('learn.gitpod.step-5')}
    • -
    • {t('learn.gitpod.step-6')}
    • -
    • {t('learn.gitpod.step-7')}
    • -
    • {t('learn.gitpod.step-8')}
    • -
    -
  8. -
  9. {t('learn.gitpod.step-9')}
  10. -
-
- ); -} - -RdbGitpodInstructions.displayName = 'RdbGitpodInstructions'; - -export default RdbGitpodInstructions; diff --git a/client/src/templates/Challenges/codeally/rdb-gitpod-logout-alert.tsx b/client/src/templates/Challenges/codeally/rdb-gitpod-logout-alert.tsx deleted file mode 100644 index 11abcfe3919..00000000000 --- a/client/src/templates/Challenges/codeally/rdb-gitpod-logout-alert.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; -import { useTranslation } from 'react-i18next'; -import { Alert } from '@freecodecamp/ui'; - -interface RdbGitpodLogoutAlertProps { - course: string; -} - -function RdbGitpodLogoutAlert({ - course -}: RdbGitpodLogoutAlertProps): JSX.Element { - const { t } = useTranslation(); - - return ( - - {t('learn.gitpod.logout-warning', { course })} - - ); -} - -RdbGitpodLogoutAlert.displayName = 'RdbGitpodLogoutAlert'; - -export default RdbGitpodLogoutAlert; diff --git a/client/src/templates/Challenges/codeally/rdb-ona-continue-alert.tsx b/client/src/templates/Challenges/codeally/rdb-ona-continue-alert.tsx new file mode 100644 index 00000000000..eba66f0f7d0 --- /dev/null +++ b/client/src/templates/Challenges/codeally/rdb-ona-continue-alert.tsx @@ -0,0 +1,35 @@ +import React from 'react'; +import { Trans } from 'react-i18next'; +import { Alert, Spacer } from '@freecodecamp/ui'; + +interface RdbOnaContinueAlertProps { + course: string; +} + +function RdbOnaContinueAlert({ + course +}: RdbOnaContinueAlertProps): JSX.Element { + return ( + + + + placeholder + + + + + + placeholder + + + + ); +} + +RdbOnaContinueAlert.displayName = 'RdbOnaContinueAlert'; + +export default RdbOnaContinueAlert; diff --git a/client/src/templates/Challenges/codeally/rdb-ona-instructions.tsx b/client/src/templates/Challenges/codeally/rdb-ona-instructions.tsx new file mode 100644 index 00000000000..2fecc89e750 --- /dev/null +++ b/client/src/templates/Challenges/codeally/rdb-ona-instructions.tsx @@ -0,0 +1,205 @@ +import React from 'react'; +import { Trans, useTranslation } from 'react-i18next'; +import { connect } from 'react-redux'; +import { Spacer, Button } from '@freecodecamp/ui'; +import { postUserToken } from '../../../utils/ajax'; +import { createFlashMessage } from '../../../components/Flash/redux'; +import { FlashMessages } from '../../../components/Flash/redux/flash-messages'; + +import { + isSignedInSelector, + userTokenSelector +} from '../../../redux/selectors'; +import { updateUserToken } from '../../../redux/actions'; + +import RdbLocalLogoutAlert from './rdb-local-logout-alert'; + +const mapStateToProps = (state: unknown) => ({ + isSignedIn: isSignedInSelector(state), + userToken: userTokenSelector(state) as string | null +}); + +const mapDispatchToProps = { + createFlashMessage, + updateUserToken +}; + +interface RdbOnaInstructionsProps { + course: string; + createFlashMessage: typeof createFlashMessage; + isSignedIn: boolean; + updateUserToken: (arg0: string) => void; + url: string; + userToken: string | null; +} + +function RdbOnaInstructions({ + course, + createFlashMessage, + isSignedIn, + updateUserToken, + url, + userToken +}: RdbOnaInstructionsProps): JSX.Element { + const { t } = useTranslation(); + + const coderoadTutorial = `https://raw.githubusercontent.com/${url}/main/tutorial.json`; + + const generateUserToken = async () => { + const createUserTokenResponse = await postUserToken(); + const { data = { userToken: null } } = createUserTokenResponse; + + if (data?.userToken) { + updateUserToken(data.userToken); + createFlashMessage({ + type: 'success', + message: FlashMessages.UserTokenGenerated + }); + } else { + createFlashMessage({ + type: 'danger', + message: FlashMessages.UserTokenGenerateError + }); + } + }; + + const copyUserToken = () => { + navigator.clipboard.writeText(userToken ?? '').then( + () => { + createFlashMessage({ + type: 'success', + message: FlashMessages.UserTokenCopied + }); + }, + () => { + createFlashMessage({ + type: 'danger', + message: FlashMessages.UserTokenCopyError + }); + } + ); + }; + + const copyUrl = () => { + navigator.clipboard.writeText(coderoadTutorial ?? '').then( + () => { + createFlashMessage({ + type: 'success', + message: FlashMessages.CourseUrlCopied + }); + }, + () => { + createFlashMessage({ + type: 'danger', + message: FlashMessages.CourseUrlCopyError + }); + } + ); + }; + + return ( +
+

{t('learn.ona.intro')}

+
    +
  1. + + + placeholder + + +
  2. + {isSignedIn && ( + <> + +

    {t('learn.local.sub-step-heading')}

    +
      +
    1. {t('learn.local.sub-step-1')}
    2. + + + +
    3. {t('learn.local.sub-step-2')}
    4. + + + +
    5. + + + Ona secrets page + + +
    6. +
    7. + + placeholder + +
    8. +
    9. + + placeholder + +
    10. + + +
    + + + )} +
  3. {t('learn.ona.step-2')}
  4. +
  5. {t('learn.ona.step-3')}
  6. +
  7. + {t('learn.ona.step-4')} +
      +
    • {t('learn.ona.step-5')}
    • +
    • + + placeholder + +
    • +
    • + + placeholder + +
    • +
    • + + placeholder + +
    • +
    • {t('learn.local.step-7')}
    • + + + +
    • {t('learn.local.step-8')}
    • +
    +
  8. +
  9. {t('learn.ona.step-9')}
  10. +
+
+ ); +} + +RdbOnaInstructions.displayName = 'RdbOnaInstructions'; + +export default connect(mapStateToProps, mapDispatchToProps)(RdbOnaInstructions); diff --git a/client/src/templates/Challenges/codeally/rdb-ona-logout-alert.tsx b/client/src/templates/Challenges/codeally/rdb-ona-logout-alert.tsx new file mode 100644 index 00000000000..64e69830fd5 --- /dev/null +++ b/client/src/templates/Challenges/codeally/rdb-ona-logout-alert.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import { useTranslation } from 'react-i18next'; +import { Alert } from '@freecodecamp/ui'; + +interface RdbOnaLogoutAlertProps { + course: string; +} + +function RdbOnaLogoutAlert({ course }: RdbOnaLogoutAlertProps): JSX.Element { + const { t } = useTranslation(); + + return ( + {t('learn.ona.logout-warning', { course })} + ); +} + +RdbOnaLogoutAlert.displayName = 'RdbOnaLogoutAlert'; + +export default RdbOnaLogoutAlert; diff --git a/client/src/templates/Challenges/codeally/show.tsx b/client/src/templates/Challenges/codeally/show.tsx index b18f29aaa4b..4a993c0c43c 100644 --- a/client/src/templates/Challenges/codeally/show.tsx +++ b/client/src/templates/Challenges/codeally/show.tsx @@ -50,9 +50,9 @@ import { CodeAllyDown } from '../../../components/growth-book/codeally-down'; import { postUserToken } from '../../../utils/ajax'; import { CodeAllyButton } from '../../../components/growth-book/codeally-button'; -import RdbGitpodContinueAlert from './rdb-gitpod-continue-alert'; -import RdbGitpodInstructions from './rdb-gitpod-instructions'; -import RdbGitpodLogoutAlert from './rdb-gitpod-logout-alert'; +import RdbOnaContinueAlert from './rdb-ona-continue-alert'; +import RdbOnaInstructions from './rdb-ona-instructions'; +import RdbOnaLogoutAlert from './rdb-ona-logout-alert'; import RdbLocalInstructions from './rdb-local-instructions'; import RdbStep1Instructions from './rdb-step-1-instructions'; import RdbStep2Instructions from './rdb-step-2-instructions'; @@ -191,38 +191,26 @@ function ShowCodeAlly(props: ShowCodeAllyProps) { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - const openGitpod = (userToken?: string) => { - const { - data: { - challengeNode: { - challenge: { url } - } - } - } = props; + function openOna() { + const repoUrl = `https://github.com/freeCodeCamp/rdb-alpha`; + const onaDomain = `https://app.ona.com/`; + const onaUrl = `${onaDomain}#${repoUrl}`; - const repoUrl = `https://github.com/${url}`; - const coderoadTutorial = encodeURIComponent( - `https://raw.githubusercontent.com/${url}/main/tutorial.json` - ); - const gitpodDomain = `https://gitpod.io/?autostart=true#CODEROAD_TUTORIAL_URL=${coderoadTutorial},CODEROAD_DISABLE_RUN_ON_SAVE=true`; - const tokenEnv = userToken ? `,CODEROAD_WEBHOOK_TOKEN=${userToken}` : ''; - const gitpodUrl = `${gitpodDomain}${tokenEnv}/${repoUrl}`; - - window.open(gitpodUrl, '_blank'); - }; + window.open(onaUrl, '_blank'); + } const startCourse = async () => { const { isSignedIn, userToken, updateUserToken } = props; if (!isSignedIn) { - openGitpod(); + openOna(); } else if (!userToken) { const createUserTokenResponse = await postUserToken(); const { data = { userToken: null } } = createUserTokenResponse; if (data?.userToken) { updateUserToken(data.userToken); - openGitpod(data.userToken); + openOna(); } else { createFlashMessage({ type: 'danger', @@ -230,7 +218,7 @@ function ShowCodeAlly(props: ShowCodeAllyProps) { }); } } else { - openGitpod(userToken); + openOna(); } }; @@ -269,7 +257,7 @@ function ShowCodeAlly(props: ShowCodeAllyProps) { } }; - const gitpodDeprecated = useFeature('gitpod-deprecated').on; + const onaDeprecated = useFeature('gitpod-deprecated').on; return ( @@ -291,7 +279,7 @@ function ShowCodeAlly(props: ShowCodeAllyProps) { - {gitpodDeprecated ? ( + {onaDeprecated ? ( <> @@ -325,7 +313,7 @@ function ShowCodeAlly(props: ShowCodeAllyProps) { ) : ( <> - + {isSignedIn && challengeType === challengeTypes.codeAllyCert ? ( @@ -340,8 +328,8 @@ function ShowCodeAlly(props: ShowCodeAllyProps) { isCompleted={isPartiallyCompleted || isCompleted} /> - - {isSignedIn && } + + {isSignedIn && } ) : ( <> - - {isSignedIn && } + + {isSignedIn && } ); } else { - return ; + return ; } } diff --git a/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f7e5ac417301a38fb928.md b/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f7e5ac417301a38fb928.md index 625032b386e..1113a868f25 100644 --- a/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f7e5ac417301a38fb928.md +++ b/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f7e5ac417301a38fb928.md @@ -8,7 +8,7 @@ dashedName: mean-variance-standard-deviation-calculator # --description-- -You will be working on this project with our Gitpod starter code. +You will be working on this project with our Ona starter code. We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project: @@ -53,7 +53,7 @@ For example, `calculate([0,1,2,3,4,5,6,7,8])` should return: ## Development Write your code in `mean_var_std.py`. For development, you can use `main.py` to test your code. In -order to run your code, type `python3 main.py` into the GitPod terminal and hit enter. This will cause the included CPython interpreter to run the `main.py` file. +order to run your code, type `python3 main.py` into the Ona terminal and hit enter. This will cause the included CPython interpreter to run the `main.py` file. ## Testing diff --git a/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f7e5ac417301a38fb929.md b/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f7e5ac417301a38fb929.md index bea12e1b9f2..4ac91140ebd 100644 --- a/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f7e5ac417301a38fb929.md +++ b/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f7e5ac417301a38fb929.md @@ -8,7 +8,7 @@ dashedName: demographic-data-analyzer # --description-- -You will be working on this project with our Gitpod starter code. +You will be working on this project with our Ona starter code. We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project: diff --git a/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f7f8ac417301a38fb92a.md b/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f7f8ac417301a38fb92a.md index 4601c6585df..87244ea6dda 100644 --- a/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f7f8ac417301a38fb92a.md +++ b/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f7f8ac417301a38fb92a.md @@ -8,7 +8,7 @@ dashedName: medical-data-visualizer # --description-- -You will be working on this project with our Gitpod starter code. +You will be working on this project with our Ona starter code. We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project: diff --git a/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f802ac417301a38fb92b.md b/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f802ac417301a38fb92b.md index 1e4a8cb12d6..329ea02e3bb 100644 --- a/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f802ac417301a38fb92b.md +++ b/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e46f802ac417301a38fb92b.md @@ -8,7 +8,7 @@ dashedName: page-view-time-series-visualizer # --description-- -You will be working on this project with our Gitpod starter code. +You will be working on this project with our Ona starter code. We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project: diff --git a/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e4f5c4b570f7e3a4949899f.md b/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e4f5c4b570f7e3a4949899f.md index 381ab0dbf86..7cef93c8b35 100644 --- a/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e4f5c4b570f7e3a4949899f.md +++ b/curriculum/challenges/english/blocks/data-analysis-with-python-projects/5e4f5c4b570f7e3a4949899f.md @@ -8,7 +8,7 @@ dashedName: sea-level-predictor # --description-- -You will be working on this project with our Gitpod starter code. +You will be working on this project with our Ona starter code. We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project: diff --git a/curriculum/challenges/english/blocks/information-security-projects/5e46f979ac417301a38fb932.md b/curriculum/challenges/english/blocks/information-security-projects/5e46f979ac417301a38fb932.md index 404a7c4900b..05f8bc4511a 100644 --- a/curriculum/challenges/english/blocks/information-security-projects/5e46f979ac417301a38fb932.md +++ b/curriculum/challenges/english/blocks/information-security-projects/5e46f979ac417301a38fb932.md @@ -9,7 +9,7 @@ dashedName: port-scanner # --description-- -You will be working on this project with our Gitpod starter code. Learn how to share your Gitpod workspace to get help. +You will be working on this project with our Ona starter code. We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project: diff --git a/curriculum/challenges/english/blocks/information-security-projects/5e46f983ac417301a38fb933.md b/curriculum/challenges/english/blocks/information-security-projects/5e46f983ac417301a38fb933.md index 66afe68c1ac..b1975cbfeb7 100644 --- a/curriculum/challenges/english/blocks/information-security-projects/5e46f983ac417301a38fb933.md +++ b/curriculum/challenges/english/blocks/information-security-projects/5e46f983ac417301a38fb933.md @@ -9,7 +9,7 @@ dashedName: sha-1-password-cracker # --description-- -You will be working on this project with our Gitpod starter code Learn how to share your Gitpod workspace to get help. +You will be working on this project with our Ona starter code. We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project: diff --git a/curriculum/challenges/english/blocks/lecture-working-with-code-editors-and-ides/672d26269456511aa3db614d.md b/curriculum/challenges/english/blocks/lecture-working-with-code-editors-and-ides/672d26269456511aa3db614d.md index bee663395aa..478403c97b9 100644 --- a/curriculum/challenges/english/blocks/lecture-working-with-code-editors-and-ides/672d26269456511aa3db614d.md +++ b/curriculum/challenges/english/blocks/lecture-working-with-code-editors-and-ides/672d26269456511aa3db614d.md @@ -37,7 +37,7 @@ Replit is an online platform that provides a collaborative environment for codin Another popular cloud-based editor is GitHub Codespaces. This is a cloud-based development environment that provides instant access to a fully-configured code editor and development tools directly from GitHub, enabling seamless coding and collaboration. -And another one is Gitpod. Gitpod is a cloud-based development environment that integrates with GitHub and GitLab, offering instant, customizable workspaces for coding, building, and debugging directly from your browser. +And another one is Ona. Ona is a cloud-based development environment that integrates with GitHub and GitLab, offering instant, customizable workspaces for coding, building, and debugging directly from your browser. And there are many more options. Some options, such as Visual Studio Code, are highly extensible and can work with multiple different project types and languages. Other options might be specifically tailored to a small subset of languages or project types. @@ -103,7 +103,7 @@ The lecture lists several cloud-based options, but one popular editor is primari --- -Gitpod +Ona ### --feedback-- diff --git a/curriculum/challenges/english/blocks/machine-learning-with-python-projects/5e46f8d6ac417301a38fb92d.md b/curriculum/challenges/english/blocks/machine-learning-with-python-projects/5e46f8d6ac417301a38fb92d.md index 4de13f96247..2c06ebd78f7 100644 --- a/curriculum/challenges/english/blocks/machine-learning-with-python-projects/5e46f8d6ac417301a38fb92d.md +++ b/curriculum/challenges/english/blocks/machine-learning-with-python-projects/5e46f8d6ac417301a38fb92d.md @@ -10,7 +10,7 @@ dashedName: rock-paper-scissors For this challenge, you will create a program to play Rock, Paper, Scissors. A program that picks at random will usually win 50% of the time. To pass this challenge your program must play matches against four different bots, winning at least 60% of the games in each match. -You will be working on this project with our Gitpod starter code. +You will be working on this project with our Ona starter code. We are still developing the interactive instructional part of the machine learning curriculum. For now, you will have to use other resources to learn how to pass this challenge. diff --git a/curriculum/challenges/english/blocks/quiz-computer-basics/66ed8fb9f45ce3ece4053eac.md b/curriculum/challenges/english/blocks/quiz-computer-basics/66ed8fb9f45ce3ece4053eac.md index bc268ad159e..edbda197243 100644 --- a/curriculum/challenges/english/blocks/quiz-computer-basics/66ed8fb9f45ce3ece4053eac.md +++ b/curriculum/challenges/english/blocks/quiz-computer-basics/66ed8fb9f45ce3ece4053eac.md @@ -695,7 +695,7 @@ BitBucket #### --answer-- -Gitpod +Ona ### --question--