jiebi/CodeConvo huggingface dataset:
Change:
assert.match(code, /checkMessageButton.addEventListener(s*('|"|`)click1s*,s*(s*)s*=>s*{s*ifs*(s*messageInput.values*===s*('|"|`)2s*)s*{s*alert(s*('|"|`)Please enter a message.3s*);?s*returns*;?s*}s*result.textContents*=s*/) ``` <del> You should assign the `isSpam()` function call to `result.textContent`. </del> <ins> You should call the `isSpam()` function after the assignment operator `=` and before the `?` ternary operator. </ins> ```js <del> assert.match(code, /checkMessageButton.addEventListener(s*('|"|`)click1s*,s*(s*)s*=>s*{s*ifs*(s*messageInput.values*===s*('|"|`)2s*)s*{s*alert(s*('|"|`)Please enter a message.3s*);?s*returns*;?s*}s*result.textContents*=s*isSpam(s*messageInput.values*)/) </del> <ins> assert.match(code, /checkMessageButton.addEventListener(s*('|"|`)click1s*,s*(s*)s*=>s*{s*ifs*(s*messageInput.values*===s*('|"|`)2s*)s*{s*alert(s*('|"|`)Please enter a message.3s*);?s*returns*;?s*}s*result.textContents*=s*isSpam(.*)s*?/) </ins> ``` You should use ternary syntax to check the truthiness of `isSpam(messageInput.value)`.

Discussion:
We are not assigning the function call to anything. Not 100% sure what the expected error in the code is that we are testing for here. It might be its position. Also, if you forget to use the property on the you are passing to you will get this assert message, which is confusing. I don't think this test should care about the argument to , only the function call position (if that is what we are testing for here). tests: As an aside. We have all the elements and event listeners ready to be used, can't the test use them for at least the last three tests? Give the correct assert messages. No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
We could use this wording for the hint text I believe so. It looks we are testing for and then the next few tests are for the ternary I feel like we still need to check for the actual user message here because if the camper does something like this then they might be missing the point of the challenge. So I think we should update the tests to better check for that. But also, I think the description could be updated to better explain why they need to make these changes. Something like this could work Maybe? It would be nice to cut down on the regex here
"the result of the function call" makes it sound like the element will be assigned the function return value. We are not assigning the result of the function call. We are assigning the expression the ternary condition evaluates to based on what returns. For test 2, if we only care about the position of the function then: Because the regex includes the argument it will cause a false positive where the position can be correct but if you do not use the correct argument you get this assert message. The assert message should be about the function position without making it sound like its return value is being assigned to the element. We check the argument in test 3 and the hint shows the function call with the expected argument.
Change:
color: var(--secondary-background); } <ins> .link-btn.btn-lg svg, </ins> .map-icon, .cert-header-icon { flex-shrink: 0;

Discussion:
Looking forward for reporting a security issue: Please report security issues by sending an email to instead of raising a GitHub issue. Describe the bug The heights of the SVG files on the landing page vary, which causes the certification chart to look inconsistent. To Reproduce <img width="946" alt="zoomfloatingvideowindowandLearntoCode—ForFree—CodingCoursesforBusyPeople" src="https://user-"Desktop (please complete the following information): OS: Mac Browser: Chrome Version: Version 88.0.4324.96 (Official Build) (x86_64)
Hi Quincy, I let know about this already.
in min height, so should take care of it.
Change:
const { LOCALE: lang = 'english' } = process.env; <ins> const oldRunnerFail = Mocha.Runner.prototype.fail; Mocha.Runner.prototype.fail = function(test, err) { // Don't show stacktrace for assertion errors. if (err.stack && err instanceof AssertionError) { delete err.stack; } return oldRunnerFail.call(this, test, err); }; </ins> let mongoIds = new MongoIds(); let challengeTitles = new ChallengeTitles();

Discussion:
Describe the bug Several warnings in the Travis CI builds: To Reproduce Steps to reproduce the behavior: a PR the output in Travis CI build Expected behavior Cleaner builds; maybe reduce build time(?) Screenshots ! Additional context Error references this documentation: Live Demo in doc:
Change:
<h1>CatPhotoApp</h1> <h2>Cat Photos</h2> --fcc-editable-region-- <p>Click here to view more cat photos.</p> --fcc-editable-region--

Discussion:
Been puzzling over why so many people see the instructions in step 4 of the cat photo app and ignore the requested location of "above the p element" when adding their new comment line of code. Discussed with and he noticed that the editor doesn't show an empty line where it expects the code to go (usually it does on other steps). This issue then is to request a blank line be to the editor for step 4 above the p element line to show where the expected new line of code should be written. Editor should display a single blank line above the p element. No response not applicable Example of forum post where learner just doesn't understand how the code can be -above- discussion in the contributors area of the discord channel (start point here )
I don't have an option for this. However, I do think that we should take away the empty space that is created below the tag as there is no reason why it needs to be there, and might lead to confusion.
Hi and I want to work on this issue. Could you assign it to me?
Issues don't get assigned so just create a new branch and get to work! Make sure you have read the rules for contributing:
Whoops, I have missed a step If you would like to fix this issue, please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this.
Change:
You should use the `body` element selector. ```js <del> assert.match(code, /bodys*{/); </del> <ins> assert.exists(new __helpers.CSSHelp(document).getStyle('body')); </ins> ``` You should use the `background` property in the `body` selector.

Discussion:
The test fails to catch the difference between an element and class selector The hint is But the first hint should be displayed instead: The regex fails to tell the difference between an element and class selector. No response All No response
We should just use the method on the class to look for . Examples of this can be seen in other tests. An issue with the or label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the
Hi My name is Om Bansal and this is my first time contributing to open source can i work on this issue?
Go for it - we will accept the first fully correct PR that fixes the issue.
Change:
Arrays have a special `length` property that allows you to see how many values, or <dfn>elements</dfn>, are in the array. You would access this property using syntax like `myArray.length`. <del> Update your condition to check if `rows.length` is less than or equal to `count`. </del> <ins> Note that `rows.length` in the `padRow` call would give you an off-by-one error, because `done` is incremented *before* the call. Update your condition to check if `rows.length` is less than `count`. </ins> # --hints-- <del> Your `while` loop should check if `rows.length` is less than or equal to `count`. </del> <ins> Your `while` loop should check if `rows.length` is less than `count`. </ins> ```js <del> assert.match(__helpers.removeJSComments(code), /whiles*(s*rows.lengths*<=s*counts*)/); </del> <ins> assert.match(__helpers.removeJSComments(code), /whiles*(s*rows.lengths*<s*counts*)/); </ins> ``` # --seed--

Discussion:
On step 89 and 90 of the Pyramid generator there is this misterious error that appear, it can be confusing for campers. !
Error is coming from the function, specifically one of the string repeats. Depending on the and , when or will be , calling method of string will show that error. Edit: When condition is there's no such issue.
Yep. I think reworking the lessons so we never leave the learner with broken code (or at least never unexplained broken code) is the way to go.
I'm not sure if it was even intended to have broken code, description is suggesting everything should work fine. Step 91 asks for two changes, one of which specifically makes this error appear (second change fixes the issue).
Yeah, it's a bit confusing. Probably not intentional, though. On 91 there's this: the only time I don't see the error is when I've followed all the instructions on step 91.
Is this not enough to clear up any doubts? Cuz after following the instructions in step 91, there's nothing mysterious about the error anymore.
I don't think so. Step 89, where error is introduced, doesn't mention it. Neither does 90. It's only when you reach 91 that the error is mentioned and the text is which is incorrect. Changing to has no effect on the error. It's only the combination of that and adjusting the conditional that finally removes the error. The main issue with this is that it breaks the feedback loop between learner's actions and the code's behaviour. Speaking for myself, everything gets harder when the results of my actions are essentially invisible. I know we run tests to check you re doing it right, but that's not really a substitute for them seeing how your actions impact the program.
Okay. We need to at least note the possibility of an unexpected error to the camper. I'm thinking on step 89 now.
Just for posterity, the steps got shifted. Error is introduced by completing step 95 Error is resolved by completing step 96 What should be changed here: Step 95 should: Introduce and explain the error Ask the campers to change the comparison to Step 96 should: No longer ask campers to change the to Not mention that creates a
Change:
<Col md={8} mdOffset={2} sm={10} smOffset={1} xs={12}> <Spacer /> <ChallengeTitle <del> block={blockName} </del> <ins> block={block} </ins> isCompleted={isChallengeCompleted} superBlock={superBlock} translationPending={translationPending}

Discussion:
Describe your problem and how to reproduce it: In the challenges/projects that don't use editor, link text at the top in the contain some additional text, for example Challenges that have editor on page don't seem to have this problem. Add a Link to the page with the problem: If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): ! !
Change:
} ``` <del> This would log `Alan`, `Jeff`, `Sarah`, and `Ryan` - each value on its own line. </del> <ins> This would log `Alan`, `Jeff`, and `Sarah` - each value on its own line. </ins> In this statement, we defined a variable `user`, and as you can see, this variable was reset during each iteration to each of the object's keys as the statement looped through the object, resulting in each user's name being printed to the console.

Discussion:
The challenge text mentions Ryan but there is no Ryan. We should only mention parts of the example that exist, ideally. No response All No response
wow. Ryan was exist? that is interesting.
Thanks for opening this issue. This looks something that can be fixed by "first time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.
Change:
<del> var moment = require('moment'), </del> <ins> /* eslint-disable no-catch-shadow, no-unused-vars */ var R = require('ramda'), debug = require('debug')('freecc:cntr:story'), Story = require('./../models/Story'), Comment = require('./../models/Comment'), User = require('./../models/User'), moment = require('moment'), resources = require('./resources'), </ins> mongodb = require('mongodb'), <del> nodemailer = require('nodemailer'), sanitizeHtml = require('sanitize-html'), </del> MongoClient = mongodb.MongoClient, <del> resources = require('./resources'), </del> secrets = require('../config/secrets'), <del> Story = require('./../models/Story'), Comment = require('./../models/Comment'), User = require('./../models/User'); </del> <ins> nodemailer = require('nodemailer'), sanitizeHtml = require('sanitize-html'); </ins> function hotRank(timeValue, rank) { /*

Discussion:
Seeing this in production here: solution: Use and/or check for user existence and end early. cc:
Change:
render() { return ( <div> <del> <h1>{this.state.name}</h1> </del> <ins> <h1>{this.state.firstName}</h1> </ins> </div> ); }

Discussion:
A user wondering why his solution passed. I then realized the 2nd test test is not working as intended. The user is supposed to assign a string to a property of . The user's solution assigns an uninitialized variable as a property. The purpose of the test is to make sure the user assigns a string value to a prop named , but the test still allows the user to pass as the prop's value and the test passes. Not sure why, but assigning an uninitialized property to ends up assigned an empty string to it. This of course passes the test requirement but defeats the purpose of the learning here. I suggest changed the required property name to something like , so if a user does something like this, all of the tests will fail. Test in question: The second test should fail because the property of should be undefinedbecause it was not initialized by the user's code. No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
After a bit of research, it appears that assigning as a property that is uninitialized is the same as writing: = { } Since the window has no name, it is just an empty string.
Change:
"dashedName": "waypoint-divide-one-number-by-another-with-javascript", "difficulty": "9.9814", "description": [ <del> "In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions", "Let's try a few of the most commonly used ones now", "We use <code>/</code>for division", </del> <ins> "In JavaScript whole numbers (called integers) can be easily used to perform mathematical functions.", "Let's try a few of the most commonly used ones now.", "We use <code>/</code>for division.", </ins> "Replace the <code>0</code>with correct number to achieve the result in the comment." ], "tests": [

Discussion:
Challenge has an issue. In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions <-- Let's try a few of the most commonly used ones now <-- We use - for subtraction <---
merged to

Challenge has an issue. In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions <-- Let's try a few of the most commonly used ones now <--- We use * for multiplication <---
merged to

Challenge has an issue. in JavaScript we can can work with decimal numbers <--- needs full stop.
merged to
Change:
Fulfill the user stories and pass all the tests below to complete this project. Give it your own personal style. Happy Coding! <ins> **Note:** Be sure to add `<link rel="stylesheet" href="styles.css">` in your HTML to link your stylesheet and apply your CSS </ins> # --hints-- You should have a `main` element with an `id` of `main-doc`

Discussion:
With the new format, a lot of people are not linking their css files to the HTML document. It is coming up a lot on the forum. Especially for those that are going through the Legacy curriculum. I think we should add a message underneath the sample projects, to remember to link the CSS file. Proposed change: Remember to link your CSS file in the HTML document. <img width="460" alt="Screen Shot 2022-05-14 at 8 57 10 AM" src="https://user-"
I had trouble fixing , because I didn't link To I hope this will be implemented
I think we should do this.
Change:
.StripeElement--focus { border-color: #66afe9; outline: 0; <del> box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); </del> <ins> box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); </ins> }

Discussion:
!
Could you give a link to the page as then it might be easier to solve the issue?
This should be the case on the user's profile page. You can reproduce by setting the certificate keys to true in the user object.
I could work on this!
I am already working on it.
Thanks for letting me know!
a reasonable fix would be to give the grid that contains the profile a class and on the css, change the button under that class and have . you will end up with something like this. here it is on small and large screens <img width="681" alt="screen shot 2019-02-22 at 2 18 10 pm" src="https://user-"<img width="1095" alt="screen shot 2019-02-22 at 2 17 53 pm" src="https://user-"
Similar solution could be applied to these donate buttons probably. but the selectors should be very specific not to change the styling on other buttons in the platform. <img width="669" alt="screen shot 2019-02-23 at 2 09 14 pm" src="https://user-"<img width="502" alt="screen shot 2019-02-23 at 2 08 51 pm" src="https://user-"
Hey or Can you take this up? just updated us that he will be a bit busy with other things.
I'm on it
Change:
Your `p` element should have the class `error-msg`. ```js <del> assert.match(code, /(`|"|')<ps+class=("|')error-msg2>/) </del> <ins> assert.match(code, /(`|"|')<ps+classs*=s*("|')error-msg2>/) </ins> ``` Your `p` element should have the text `There was an error loading the authors`. ```js <del> assert.match(code, /(`|"|')<ps+class=("|')error-msg2>Theres+wass+ans+errors+loadings+thes+authors</p>1s*;?/) </del> <ins> assert.match(code, /(`|"|')<ps+classs*=s*("|')error-msg2>Theres+wass+ans+errors+loadings+thes+authors</p>1s*;?/) </ins> ```

Discussion:
A camper on the forum was unable to pass the step. This was their code The failing test was this one js (code, /(')error-msg2/) The test needs to be updated to account of spacing see explanation above see explanation above No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
I'd like to pick this issue up
Any issue marked with the label is free to work on. We do not assign issues to anyone other than long-time contributors. If you would like to contribute and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the Happy coding
Change:
const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/94'); // Fetch from proxy to simulate network delay if (res.ok) { <del> await new Promise(resolve => setTimeout(resolve, 50)); // Brief additional delay to allow UI to update </del> <ins> await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update </ins> const pokemonName = document.getElementById('pokemon-name'); const pokemonID = document.getElementById('pokemon-id');

Discussion:
When testing one camper's code it fails some tests unless I increase all the delays to 1000ms, I tested with 500ms but that was not enough. I also saw the example project fail a test but it does pass more consistently (my guess is it is just faster with fewer async functions). To be on the safe side we should have a longer delay. I know 1000ms is a lot but better safe than sorry. Tests: Valid code should not fail because of "timing" issues. No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] Forum:
As this is a bug with a certificate project I the showstopper label.
Change:
# --hints-- <del> You should have a one a self-closing `link` element. </del> <ins> You should have one self-closing `link` element. </ins> ```js assert(document.querySelectorAll('link').length === 1);

Discussion:
as ieahleen mentioned in Crowdin, there are multiple files with typos in them. they say These hints should be changed to because they are testing if there is a single self-closing Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution, followed by the one that is made first. Happy contributing.
Change:
function buildCompletedChallengesUpdate(completedChallenges, project) { const key = Object.keys(project)[0]; const solutions = project[key]; <ins> const solutionKeys = Object.keys(solutions); </ins> const currentCompletedChallenges = [ ...completedChallenges ]; const currentCompletedProjects = currentCompletedChallenges <del> .filter(({id}) => Object.keys(solutions).includes(id)); </del> <ins> .filter(({id}) => solutionKeys.includes(id)); </ins> const now = Date.now(); <del> const update = Object.keys(solutions).reduce((update, currentId) => { </del> <ins> const update = solutionKeys.reduce((update, currentId) => { </ins> const indexOfCurrentId = _.findIndex( <del> currentCompletedProjects, </del> <ins> update, </ins> ({id}) => id === currentId ); const isCurrentlyCompleted = indexOfCurrentId !== -1; <del> if ( isCurrentlyCompleted && currentCompletedProjects[ indexOfCurrentId ].solution !== solutions[currentId] ) { </del> <ins> if (isCurrentlyCompleted) { </ins> update[indexOfCurrentId] = { <del> ...update[indexOfCurrentId], </del> <ins> ..._.find(update, ({id}) => id === currentId).__data, </ins> solution: solutions[currentId] }; }

Discussion:
Completing projects from the settings page, submitting a url, dose not increment the points a user has. We need to push a new timestamp to the users array.
Hi I can help out with this. Am I correct in thinking that this should be done in the file? If so, I'll look at for some guidance.
Change:
The list comprehension assigned to the `row_str` variable should call `str()` on each item `i` in `row` if `i` is truthy, and it should evaluate to `'*'` otherwise. ```js <del> ({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_expr().is_equivalent("str(i) if i else '*'")`)) }) </del> <ins> ({ test: () => assert(runPython(` expressions = ["str(i) if i else '*'","'*' if i == 0 else str(i)","str(i) if i != 0 else '*'"] node =_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_expr() any(node.is_equivalent(expr) for expr in expressions)`)) }) </ins> ``` # --seed--

Discussion:
Describe the bug Instructions ask to modify the list comprehension to give a string only when the item is not zero, and an asterisk character otherwise. The accepted answer is: But other answers like or are equally valid. To Reproduce Steps to reproduce the behavior: to Expected behavior Although the instructions ask for a specific solution, it might not be clear enough. Therefore it would be better to modify the test to accept multiple solutions.
While I do agree, I'm not quite sure how to modify the test to make sure that the two others are seen as possibilities are the moment. I don't think our helper method is equipped enough to handle this.
I would say something like this: Providing all the possible solutions in the list.