jiebi/CodeConvo huggingface dataset:
Change:
"assert(telephoneCheck("(555)555-5555") === true, 'message: <code>telephoneCheck("(555)555-5555")</code> should return true.');", "assert(telephoneCheck("1(555)555-5555") === true, 'message: <code>telephoneCheck("1(555)555-5555")</code> should return true.');", "assert(telephoneCheck("1 555 555 5555") === true, 'message: <code>telephoneCheck("1 555 555 5555")</code> should return true.');", <del> "assert(telephoneCheck("555-555-5555") === true, 'message: <code>telephoneCheck("555-555-5555")</code> should return true.');", </del> "assert(telephoneCheck("1 456 789 4444") === true, 'message: <code>telephoneCheck("1 456 789 4444")</code> should return true.');", "assert(telephoneCheck("123**&!!asdf#") === false, 'message: <code>telephoneCheck("123**&!!asdf#")</code> should return false.');", "assert(telephoneCheck("55555555") === false, 'message: <code>telephoneCheck("55555555")</code> should return false.');",

Discussion:
Challenge [Bonfire: Validate US Telephone Numbers] This actually returns false as the test says it should, but the test does not pass. The rest of the tests pass in my actual telephoneCheck() function.
Thanks for the report! It looks like that test was actually testing against the string rather than like the message said. I have submitted a PR to correct this.
ok good so i'm not insane. just mental. +1:

Challenge [Bonfire: Validate US Telephone Numbers] Apparently the test case "telephoneCheck("555-555-5555") should return true." runs twice.
Change:
You should add an `else` block to the existing `if` block. ```js <del> assert.match(code, /ifs*(userData?.currentSongs*===s*nulls*||s*userData?.currentSong.ids*!==s*song.id)s*{s*audio.currentTimes*=s*0;?s*}s*elses{/) </del> <ins> assert.match(code, /ifs*(userData?.currentSongs*===s*nulls*||s*userData?.currentSong.ids*!==s*song.id)s*{s*audio.currentTimes*=s*0;?s*}s*elses*{/) </ins> ``` You should set `audio.currentTime` to `userData.songCurrentTime` inside the `else` block of your `if` statement. ```js <del> assert.match(code, /ifs*(userData?.currentSongs*===s*nulls*||s*userData?.currentSong.ids*!==s*song.id)s*{s*audio.currentTimes*=s*0;?s*}s*elses{s*audio.currentTimes*=s*userData.songCurrentTime;?s*}/) </del> <ins> assert.match(code, /ifs*(userData?.currentSongs*===s*nulls*||s*userData?.currentSong.ids*!==s*song.id)s*{s*audio.currentTimes*=s*0;?s*}s*elses*{s*audio.currentTimes*=s*userData.songCurrentTime;?s*}/) </ins> ``` # --seed--

Discussion:
The test is failing if there isn't a space between and . This fails: Test should pass without a space between and . No response N/A No response
Change:
# --hints-- <del> You should declare an `isInvalidInput` variable. ```js assert.isDefined(isInvalidInput) ``` </del> `isInvalidInput` should be a function. ```js

Discussion:
The instructions in step 18 of the js beta to build a calorie counter says: Start by declaring a cleanInputString function that takes a str parameter. However if you misspell the function's name you receive this hint: You should declare a cleanInputString variable. I believe this message should be changed to say "function" instead of "variable" the hint should refer to a not a No response N/A No response
Similar issue was seen in step 28 where the hint said: You should declare an isInvalidInput variable. while the instructions were again to create a function: Start by creating a function called isInvalidInput – it should take a single str parameter. And again, similar issue in step38 hint says: You should declare an addEntry variable. while the step is asking for a function
From Pyramid Generator A function is a block of code that can be reused throughout your application. Functions are declared with the following syntax:
Step 42 mentioned in the previous comment should be fixed. It should say: “The function declaration tells JavaScript that the name identifier is going to be a function.” (Replacing ‘variable’ with ‘identifier’ and ‘keyword’ with ‘declaration’) My understanding is that a function is actually an object in js but I would be surprised if a js course starts telling learners to “declare an object called myFunction” instead of saying “declare a function called myFunction”. Edited…
Step 42 should be a separate issue IMO. It shouldn't be lumped in with the corrections being made to the calorie counter steps
Here the updates for this issue remove this hint and test js assert.isDefined(cleanInputString); the current second hint and test should say this instead js assert.isFunction(cleanInputString); remove this hint and test js assert.isDefined(isInvalidInput) remove this hint and test js assert.isDefined(addEntry); udpate the second hint to the following js assert.isFunction(addEntry); `
Change:
(The license for continued use costs $70. However, Sublime Text is free to download and evaluate, with a nag-screen pop-up.) <del> ## <a href='http://brackets.io/' target='_blank' rel='nofollow'>Brackets</a> ![Brackets Icon](//discourse-user-assets.s3.amazonaws.com/original/2X/d/df30640741461569071875cf4ff6cad9924f8b32.png) </del> <ins> ## <a href='http://brackets.io/' target='_blank' rel='nofollow'>Brackets</a><img src="https://i.imgur.com/fassWYs.png" width="50px"> </ins> <del> ![Brackets Screenshot](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2f395a58d24ed551ed8440a10ae640777f1143b6.png) </del> <ins> ![Brackets Screenshot](https://i.imgur.com/H9mO8qS.jpg) </ins> Brackets is a relatively new open-source editor by Adobe. It is very user friendly, especially for people who aren't used to command-line interfaces or JSON-style settings/prefereces. Extensions and themes are quick and easy to find and install through the Extension Manager. <del> ## <a href='https://atom.io/' target='_blank' rel='nofollow'>Atom</a> ![Atom Icon](//discourse-user-assets.s3.amazonaws.com/original/2X/7/7f6ba67d0ea310e1c1024f83c9acc1e0ecf255a8.png) </del> <ins> ## <a href='https://atom.io/' target='_blank' rel='nofollow'>Atom</a><img src="https://i.imgur.com/woj5vPm.png" width="50px"> </ins> <del> ![Atom Screenshot](//discourse-user-assets.s3.amazonaws.com/original/2X/8/8016e7c0937e8ce6fcb6104c9aee0026443912f5.png) </del> <ins> ![Atom Screenshot](https://i.imgur.com/halOgkj.png) </ins> Atom is an <a href='https://github.com/atom/atom' target='_blank' rel='nofollow'>open source</a> editor, developed by <a href='https://github.com/' target='_blank' rel='nofollow'>GitHub</a>. Like Sublime Text, Atom is quite popular.

Discussion:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: There are many broken image links and the Visual Studio Code icon is way too large. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: n/a Browser Version: n/a Operating System: n/a If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): !
I can work on this.
I can work on this.
has already submitted a PR which will most likely be accepted to resolve this issue. We have a backlog of PRs, so it will be a while before it gets merged. There is no need to create any additional PRs for this issue at this time. PRs are merged in the order they are received. Thank you.
Change:
postMessage({ type: 'stopped' }); } <ins> function resetPyodide() { if (pyodide) pyodide = null; void setupPyodide(); } </ins> void setupPyodide(); function initRunPython() { <ins> if (!pyodide) throw new Error('pyodide not loaded'); </ins> // eslint-disable-next-line @typescript-eslint/no-unsafe-call const str = pyodide.globals.get('str') as (x: unknown) => string;

Discussion:
Pyodide can crash when adding or method to the class, while NOT trying to write invalid code. I'm mentioning intent, because it can be encountered when attempting to write correct code. ing instance of the class. or method to the class. On each key pressed, code will execute, including the newly written method. So when we are writing the method: Then starting writing inside of the brackets: . Code will be execute also when it's . That's when it will crash hard: Further changes to code will bring up in browser's console: With example challenge to the at the bottom of code. to class definition, add boilerplate: writing between brackets: on the right crashes at the point when it's . Ideally omitting the crashing part. After the crash window needs to be reloaded to make pyodide on the right work again. Tests still appear to work correctly. Recursive function going into maximum call stack size exceeded does not crash pyodide. I've tested example class from above on , it does not crash pyodide.
Change:
// extra field to distract password tools like lastpass from injecting css into our username field label.negative-10.btn.btn-primary.btn-block#submitButton i.fa.fa-play <del> | &nbsp; Run code (ctrl + enter) </del> <ins> | &nbsp; Run tests (ctrl + enter) </ins> .button-spacer .btn-group.input-group.btn-group-justified label.btn.btn-success#trigger-reset-modal

Discussion:
I noticed on this challenge that the button to run the tests still runs code ! I think this should say run tests
Change:
isServerOnline, fetchState, theme: user.theme, <ins> showCodeAlly, </ins> user }) );

Discussion:
The page gets stuck and goes blank with you leave the relational database challenges. to 'Start the course' the fCC logo/button in the nav goes blank and nav disappears Page not to go blank. Clicking fCC logo should go to /learn No response Same on Chrome and Firefox Console errors: <img width="671" alt="Screen Shot 2023-02-16 at 11 44 19 AM" src="https://user-"
Change:
return ( <form id={`dynamic-${id}`} <del> onSubmit={handleSubmit(submit)} </del> <ins> onSubmit={handleSubmit((values, ...args) => submit(formatUrlValues(values, options), ...args) )} </ins> style={{ width: '100%' }} > <FormFields

Discussion:
Describe the bug Submitting the solution link as "" produces an error. Submitting "" does not. Whenever we submit a solution link "" it is appended with "/api/" so resultant solution gives "Not Found/Timeout error" and the same link submitted without "/" like "" gives solution as accepted. To Reproduce Steps to reproduce the behavior: to on 'solution input box' "https://freecodecamp-" solution gets accepted. "https://freecodecamp-" error Expected behavior This should be tackled as Chrome appends "/" by default to any domain URL you copy, so people who would copy URL from search bars will get URLs appended with "/" hence producing wrong results. This file shows the testString is directly appended with "/api" without checking if the input URL contains "/" at the end or not. Screenshots ! Desktop (please complete the following information): OS: Ubuntu 18 Browser: Google Chrome Version 73.0.3683.75
I am not having this problem - my project will pass the tests with or without the trailing https://fcc-manage-npm- and https://fcc-manage-npm- both pass for me in chrome Can you share a share a screen shot of the error?
Updated
hmm, it's strange that my project will give a good response when that string is appended but not yours https://fcc-manage-npm- - package as response https://freecodecamp- - not found as response not sure what is causing this - the only difference seems to be that I'm using glitch and you're using heroku in fact mine will work like this... https://fcc-manage-npm- so maybe how the two websites process a route or something? can they do that? glitch strips out the extra or something? weird Either way - I think a solution like you suggested would probably work - check if the submitted URL ends in a and remove it if it's there. This same problem probably occurs throughout the whole backend area all over the place.
Weird, would u check with an alternative hosting if the problem persists? If the problem persists the last solution would be stripping the las from input url
Did you try this Above is the actual link processed in the test with an appended , It gives a response with the same as it is shown in the screenshot I posted. So I guess the problem is with the routing of Heroku.
Change:
1p, 2p, 5p, 10p, 20p, 50p, £1 (100p) and £2 (200p). It is possible to make £2 in the following way: 1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p <del> How many different ways can £(n) be made using any number of coins? </del> <ins> How many different ways can n pence be made using any number of coins? </ins> </section> ## Instructions

Discussion:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: For Project Euler Problem 31 The questions asks "How many different ways can £(n) be made using any number of coins?" but the automated tests actually expect input n in pennies Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Chrome Browser Version: 79.0.3945.130 (Official Build) (64-bit) Operating System: MacOS If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):
Thanks for reporting this, it definitely should be pennies. PRs are welcome.
Change:
be a rolling update or a manual update. The later is essential when changing dependencies or adding environment variables. <del> > [!DANGER] The automated pipelines are not handling dependencies updates at the </del> <ins> > [!ATTENTION] The automated pipelines are not handling dependencies updates at the </ins> > minute. We need to do a manual update before any deployment pipeline runs. #### 1. Manual Updates - Used for updating dependencies, env variables.

Discussion:
We are currently using the for our Docsify-powered contributing documentation. One of the alert types, , also accepts the keyword to render. We currently render one of these boxes with and four of them with . For consistency sake, we should use the same keyword to render these. IMHO, with the displayed text being "Attention" we should use the keyword, but I wanted to get some feedback before opening this up to first timers. As an alternative, if we prefer the text, we can modify the plugin config to render on the end-user view instead of .
At this time, there are 4 instances of usage of and 1 instance for , I think it would make sense to make it consistent. And seeing that with the displayed being "Attention" I agree on that being the one used.
+1 on making it
I am happy either way. The only reason I came into this is because I am used to the Bootstrap way of naming, and naturally put DANGER.
Alright, I am going to open this up to first timers. A pull request that closes this issue will: Replace all instances of with in the directory Will not modify any of the files in the directory (these will be updated through our translation worfklow) If you are interested in resolving this issue, we recommend starting with our . If you have further questions feel free to join us in our .
Hi, can I try this out?
Sure thing! Let us know if you have any questions :)
Hey Nick, I would like to work on this!
I also thought of that, but as this issue has been already received by someone, let's give them some time! If it is more than a week without no response, you can grab this!
Yup I got that. That's why I commented so if they are unable then I can pick that up
Change:
import React from 'react'; <del> const fCClogo = 'https://s3.amazonaws.com/freecodecamp/freecodecamp_logo.svg'; </del> <ins> import freeCodeCampLogo from '../../../assets/icons/freeCodeCampLogo'; </ins> function NavLogo() { <del> return ( <picture> <img alt='learn to code at freeCodeCamp logo' className='nav-logo' src={fCClogo} /> </picture> ); </del> <ins> return <freeCodeCampLogo />; </ins> } NavLogo.displayName = 'NavLogo';

Discussion:
Nav logo should be served a react svg component in the codebase for reference. The alt text should read: ''
Removing the first timers, because it may not be very trivial.
I would love to get this done. Please assign it to me.
Issue assignment is not necessary, we accept the first valid PR, which follows our contribution guidelines.
Thanks for the heads up, I thought we still followed the assignment rule like in the past. I will submit a PR soon.
There you go, making an exception because of your interest :) Happy contributing!
Hi how is this coming along. Are you still working on this?
Hi I will be making a PR today hopefully. Was stuck in some other work.
Hi I ran into an Eslint issue, when I converted SVG to JSX the svg path code is so lengthy that I get Any hint on how I can manage this? tried running the but it doesn't work.
You should be able to wrap using the lines at 80 in your code editor if you happen to use VS Code? Let's make a PR or share a link to your repo/branch for more context. Thanks.
Created a PR with ESLint max-len disabled. I tried wrapping the code to multiple lines but some string blocks are very long and would break the svg if put on a new line.
Change:
isFirstStep={isFirstStep} layoutState={layout} notes={<Notes notes={notes} />} <del> preview={<StepPreview disableIframe={resizing} />} </del> <ins> preview={ <StepPreview disableIframe={resizing} previewMounted={previewMounted} /> } </ins> resizeProps={resizeProps} testOutput={ <Output defaultOutput={defaultOutput} output={output} />

Discussion:
On the initial loading of a Step the preview is showing in the preview pane, but if you either open the preview in the pop-out window or toggle the preview pane off/on then the preview does not load again. All Steps in New RWD preview in pop-out window (preview does not load) page Preview button to toggle preview pane off/on (preview does not load) Preview should load in both pop-out window and after the preview pane has been toggled off/on. No response Verified with Chrome/Firefox on both Linux and Win11. Possibly related to issue , but I think this is newer and slightly different.
Just discovered that if you make any change in the editor (such as adding a single space) then the preview will refresh and display again. But you have to do that every time you either open the pop-out window or toggle the preview pane.
When the preview is blank the iframe attributes are not updated either (which makes sense I guess, it looks to be the default values). Blank before updating: After updating: It feels like a state issue.
The preview also disappears if you toggle the Instructions on any of the certification projects.
Yes, that's a separate issue. I dig around at this a bit, seems to have caused the problem. Before it, these issues aren't present.
Change:
| --------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------- | | [Node.js](http://nodejs.org)                                                                  | `18.x`  | We use the "Active LTS" version, See [LTS Schedule](https://nodejs.org/en/about/releases/). | | [pnpm](https://pnpm.io/installation)                                                          | `8.x`   | -                                                                                            | <del> | [MongoDB Community Server](https://docs.mongodb.com/manual/administration/install-community/) | `4.2.x` | -                                                                                           | </del> <ins> | [MongoDB Community Server](https://docs.mongodb.com/manual/administration/install-community/) | `5.0.x` | -                                                                                           | </ins> > [!ATTENTION] > If you have a different version, please install the recommended version. We can only support installation issues for recommended versions. See [troubleshooting](#troubleshooting) for details.

Discussion:
The setup instructions here suggest that I need MongoDB Community Server | 4.2.x. I've tried through docker and through macos homebrew instructions and can't get any 4.2 version. 4.4.x is available. Is that acceptable? If so, should I update this doc? Try to follow one of options for setting up MongoDB Community Server | 4.2.x Maybe 4.4.x is ok? No response
i searched the tags on docker and no 4.2 is available. this article suggests other ways but the result is always
i found this pr which suggests that 4.4 should work fine. so i guess i should update the docs? you agree?
or there are other docker images available of 4.2.x. But people trying to follow directions won't get to them if we point them to starting from here: because mongo only points to their docker images.
i also see that in there are docker instructions there. should i use that or is that for something different?
Hi thanks for the issue. We recommend asking around in our chat and forum when you are troubleshooting. The docs need to be updated to the version we are using right now. I have created a PR. It will be available soon at I hope this helps.
I see that the docs have been updated to mongo 5.0. But maybe should the docs point to as the best way to set up mongo? That's what I used and it seems like the easiest option.
Thanks for pointing that out. The directory is a newer API in the works. It will have a full docker-based setup that is more convenient than the current workflow. We will release cleaner and easy-to-follow docs when that happens. Meanwhile we will stick to the docs you see at:
Change:
"test-tools": "jest tools", "test-utils": "jest utils", "postinstall": "cypress cache prune", <del> "prepare": "husky" </del> <ins> "prepare": "husky", "playwright:run": "playwright test", "playwright:watch": "playwright test --ui" </ins> }, "dependencies": { "dotenv": "16.4.5"

Discussion:
We should add scripts for running Playwright tests. In the root level , add these two scripts:
playwright and to the root level and passed all the tests need review to be merged @ you can check the pr
Change:
You should now see the same bunch of characters in your console. Your `padRow` function is doing the exact same thing you were doing earlier, but now it's in a reusable section of its own. <del> Use the addition operator to concatenate a blank space `" "` to the beginning and end of your repeated `character` string. </del> <ins> Use the addition operator to concatenate a single space `" "` to the beginning and end of your repeated `character` string. </ins> Remember that you can use the `+` operator to concatenate strings like this:

Discussion:
Error message: The string is either empty or holds a space. "empty space" and "blank space" in this context is confusing. Clear wording: No response All No response
Opening this up. A PR which resolves this issue will update the messaging to the "single space" text Jeremy proposed above.
<img width="655" alt="Screenshot 2024-06-07 at 3 20 38 PM" src=""Would you like me to change both beginning and end hints to "single space" make it more simplistic? since the answer is: function padRow(rowNumber, rowCount) { return " " + (rowNumber) + " "; }
Yes, we should use the phrase "single space" in all three spots
aye aye captain!
Change:
] ], "type": "hike", <del> "challengeType": 6 </del> <ins> "challengeType": 6, "nameEs": "JavaScript Lingo: Ciclos", "descriptionEs": [ "Si hay un conjunto de valores (vamos a utilizar un vector en este ejemplo, pero no tiene que ser así) y deseas realizar la misma operación a cada valor del conjunto, puedes usar algo llamado ciclo. ", "Los ciclos tienen una sintaxis compleja a la que inicialmente es difícil acostumbrarse, pero una vez que la entiendas, son de gran utilidad. Yo usé ciclos en muchas de mis soluciones. ", "No es necesario que entiendas todo aquí - sólo que sepas que existen ciclos cuando necesitas recorrer un conjunto de datos y que pueden reducir la cantidad de código que debes escribir." ] </ins> }, { "id": "56b15f15632298c12f315185",

Discussion:
[ ] JavaScript Lingo: MDN and Documentation [ ] JavaScript Lingo: Value Types [ ] JavaScript Lingo: Variables & camelCase [ ] JavaScript Lingo: Arrays & Objects [ ] JavaScript Lingo: Finding and Indexing Data in Arays [ ] JavaScript Lingo: Manipulating Data [ ] JavaScript Lingo: Math [ ] JavaScript Lingo: Loops [ ] JavaScript Lingo: Regular Expressions
Working on this one