jiebi/CodeConvo huggingface dataset:
Change:
At freeCodeCamp's current level of efficiency, every dollar donated to our nonprofit translates to 50 hours worth of learning. Both the One-time and Annual options have the correct amounts, but for some reason the monthly doesn't have the correct amount: $50 should be 25,000 hours: <img width="507" alt="SupportournonprofitfreeCodeCamporg" src="https://user-"$35 should be 1,750 hours: <img width="517" alt="SupportournonprofitfreeCodeCamporg" src="https://user-"$5 should be 250 hours: <img width="522" alt="Supportournonprofit_freeCodeCamp_org" src="https://user-"
~The hour is calculated for the month like we discussed? For example $5: ~ Edit: Never mind, I realised the issue. Will fix.

Discussion:
: defaultAmount[durationSelected] || this.amounts[durationSelected][0]; } <del> convertToTimeContributed(amount, duration) { const timeContributed = duration === 'month' ? Math.round(((amount / 100) * 50) / 12) : (amount / 100) * 50; return `${numToCommas(timeContributed)} hours`; </del> <ins> convertToTimeContributed(amount) { return `${numToCommas((amount / 100) * 50)} hours`; </ins> } getFormatedAmountLabel(amount) {

{`Your `} {this.getFormatedAmountLabel(donationAmount)} {` donation will provide `} <del> {this.convertToTimeContributed(donationAmount, duration)} </del> <ins> {this.convertToTimeContributed(donationAmount)} </ins> {` of learning to people around the world`} {duration === 'onetime' ? `.` : ` each ${duration}.`} </p>
Change:
Currently the donate page always has the left-most value selected by default. Instead, we want the center value selected by default. For example, here we would want the 50 is selected by default): <img width="517" alt="Supportournonprofit_freeCodeCamp_org" src="https://user-"

Discussion:
: defaultAmount[durationSelected] || this.amounts[durationSelected][0]; } <del> convertToTimeContributed(amount, duration) { const timeContributed = duration === 'month' ? Math.round(((amount / 100) * 50) / 12) : (amount / 100) * 50; return `${numToCommas(timeContributed)} hours`; </del> <ins> convertToTimeContributed(amount) { return `${numToCommas((amount / 100) * 50)} hours`; </ins> } getFormatedAmountLabel(amount) {

{`Your `} {this.getFormatedAmountLabel(donationAmount)} {` donation will provide `} <del> {this.convertToTimeContributed(donationAmount, duration)} </del> <ins> {this.convertToTimeContributed(donationAmount)} </ins> {` of learning to people around the world`} {duration === 'onetime' ? `.` : ` each ${duration}.`} </p>
Change:
When in a challenge, any of modals that popup (completion, ask for help, etc..), have a little close button at the top right that has recently become very hard to see... !
Also, when you hover over it, it gets obscured by the hover effect: !
Seems like there's an opacity issue... <img width="698" alt="Screen Shot 2019-11-26 at 8 11 42 AM" src="https://user-"Removing that 1% opacity makes it look like it did before, but I can't pinpoint where it's coming from in the code.
Production or local?
The hover effect is visible in production and they are also a little hard to see.
please investigate.
table for reference...
Thanks for the confirmation. The latest master is now (as of this comment) live on .dev, if you want to confirm this issue is fixed. If yes, I will proceed with the deployment to .org
I have pushed further to production and can confirm that the issue is reproducible on both staging and production applications.
I have bumped this to crit path.

Discussion:
color: var(--secondary-color); } <del> .fcc-modal .close { color: var(--secondary-color); opacity: 100%; </del> <ins> button.close { color: inherit; background-color: transparent; </ins> font-size: 28px; <ins> opacity: 0.5; </ins> text-shadow: none; } <ins> button.close:hover, button.close:focus { color: inherit; opacity: 1; background-color: transparent; } </ins> .modal-content { background-color: var(--secondary-background); border-radius: 0px;

font-size: 20px; text-align: right; margin-right: 100px; <del> color: #fff; </del> <ins> color: var(--gray-00); } .certification-namespace .issue-date strong { color: var(--gray-00); </ins> } .certification-namespace .information {
Change:
Describe the bug Unnecessary horizontal page scroll bar. It is not the scrollbar, its the page scroll bar. To Reproduce Steps to reproduce the behavior: to , it does not occur in all pages. for the page horizontal scrollbar (Not the scrollbar). Expected behavior No horizontal scroll bar. Screenshots  Desktop: I have no other env to test. OS: Ubuntu. Browser: chrome, chromium, firefox. Version: not applicable. Additional context This visual problem is generated by: Applied to:

Discussion:
import PropTypes from 'prop-types'; import { Link, graphql } from 'gatsby'; import Helmet from 'react-helmet'; <del> import { ListGroup, ListGroupItem } from '@freecodecamp/react-bootstrap'; </del> <ins> import { Grid, ListGroup, ListGroupItem } from '@freecodecamp/react-bootstrap'; </ins> import LearnLayout from '../../components/layouts/Learn'; import FullWidthRow from '../../components/helpers/FullWidthRow';

<Helmet> <title>{block} | freeCodeCamp.org</title> </Helmet> <del> <div className='intro-layout-container'> </del> <ins> <Grid className='intro-layout-container'> </ins> <FullWidthRow> <div className='intro-layout'

{allChallengeNode ? renderMenuItems(allChallengeNode) : null} </ListGroup> </FullWidthRow> <del> </div> </del> <ins> </Grid> </ins> </LearnLayout> ); }
Change:
The GIF depicts fCC in its old design. Even though I don't think there's anything wrong with it, I guess it should be updated to align with how fCC looks now !
Hi, I'll work on this
Just submit a PR when you are ready.
When I click the "sign-in" button on the homepage, I see this screen - ! Is this the expected behavior? Should I be creating a GIF of this?
Yes, this is expected behavior.

Discussion:
Simply clicking the `Preview Custom 404 Page` button will forward you to the correct page. <del> ![Image - How to sign in when working locally](https://user-images.githubusercontent.com/1884376/52650951-48922e80-2f11-11e9-9eee-360a25ad28ad.gif) </del> <ins> ![Image - How to sign in when working locally](https://user-images.githubusercontent.com/29990697/71541249-f63cdf00-2923-11ea-8a85-cefb6f9c9977.gif) </ins> ## Quick commands reference when working locally
Change:
Please see below screenshot. The Algorithms and Data Structures certification has an extra "certification" in it: <img width="1277" alt="2NotificationsTwitter" src="https://user-"We should also check the other 10 certifications to make sure the variable text does not contain the word "certification" at the end of it, since that is already part of the certification template.

Discussion:
</h1> <h3>has successfully completed the freeCodeCamp.org</h3> <h1> <del> <strong>{certTitle} Certification</strong> </del> <ins> <strong>{certTitle}</strong> </ins> </h1> <h4> Developer Certification, representing approximately{' '}
Change:
Currently when clicking the freeCodeCamp logo in the navbar while on /learn it takes me to the landing page: Instead, clicking the logo on the navbar should take me to /learn. Aside from your first time arriving at / there is never a reason to be taken back there.
I made a PR here, although I'm not sold on the function. I agree that nobody will need to go back to the home page, but it seems a little unintuitive to have it go to when a home page exists.

Discussion:
<SearchBar innerRef={searchBarRef} /> </div> <div className='universal-nav-middle'> <del> <Link id='universal-nav-logo' to='/'> </del> <ins> <Link id='universal-nav-logo' to='/learn'> </ins> <NavLogo /> <span className='sr-only'>freeCodeCamp.org</span> </Link>
Change:
The markdown text was pasted in directly. As a result, the link to GuideStar doesn't work. <img width="1142" alt="Supportournonprofit_freeCodeCamp_org" src="https://user-"Here's the file:

Discussion:
<p> We earned the 2019 Platinum Seal of Transparency from Guidestar.org. You can view all our nonprofit's details and download our accounting <del> documents [there](https://www.guidestar.org/profile/82-0779546). </del> <ins> documents{' '} <Link to='https://www.guidestar.org/profile/82-0779546'>there.</Link> </ins> </p> <Spacer />
Change:
Describe the bug The popup modal for becoming a sponsor cannot be closed by just using the keyboard. To Reproduce Steps to reproduce the behavior: some challenges which triggers the modal Expected behavior The modal closes when pressing the Esc key The modal closes when clicking somewhere outside of the modal I can navigate to the "Ask me later" button with the tab key to close the modal Screenshots ! Desktop (please complete the following information): OS: Ubuntu Browser: chrome and firefox Version: Latest Smartphone (please complete the following information): Unknown
This is by design to the best of my knowledge. I would defer to Quincy for a confirmation.
Thanks for reporting that the "ask me later" link should be accessible by tab but you're correct - it isn't. We will fix this. We decided not to have escape key / clicking outside of the modal to dismiss this modal (like we do with other modals) since the goal is to get people to actually slow down and consider donating to our nonprofit - not to just mash the escape key.

Discussion:
font-size: 1.5rem; } <ins> .donation-modal .btn-link:focus { outline-width: 1px; outline-style: solid; } </ins> @media screen and (max-width: 991px) { .donation-icon-container { margin: 30px;

bsStyle='primary' className='btn-link' onClick={closeDonationModal} <ins> tabIndex='0' </ins> > {closeLabel ? 'Close.' : 'Ask me later.'} </Button>
Change:
Thanks for reporting. I created a PR to resolve the issue. Once it gets reviewed/merged, a user will be able to put the properties in any order (as it should be).

Discussion:
- text: Your code should use the <code>map</code> method. testString: assert(code.match(/.map/g)); - text: <code>ratings</code> should equal <code>[{"title":"Inception","rating":"8.8"},{"title":"Interstellar","rating":"8.6"},{"title":"The Dark Knight","rating":"9.0"},{"title":"Batman Begins","rating":"8.3"},{"title":"Avatar","rating":"7.9"}]</code>. <del> testString: assert(JSON.stringify(ratings) === JSON.stringify([{"title":"Inception","rating":"8.8"},{"title":"Interstellar","rating":"8.6"},{"title":"The Dark Knight","rating":"9.0"},{"title":"Batman Begins","rating":"8.3"},{"title":"Avatar","rating":"7.9"}])); </del> <ins> testString: assert.deepEqual(ratings, [{"title":"Inception","rating":"8.8"},{"title":"Interstellar","rating":"8.6"},{"title":"The Dark Knight","rating":"9.0"},{"title":"Batman Begins","rating":"8.3"},{"title":"Avatar","rating":"7.9"}]); </ins> ```
Change:
In this challenge ,if i use space between , the following ouptut genrates. (code) (output) However,if i remove the space , there is no error in the console. So i crosscheck this problem in my local system and found that space does't generate the error.
. It should allow a space there with the following... assert((/(var//)/g)); The code that needs to be is highlighted.

Discussion:
- text: You should remove the ES5 assignment syntax. testString: assert(!code.match(/highToday = HIGH_TEMPERATURES.today/g) && !code.match(/highTomorrow = HIGH_TEMPERATURES.tomorrow/g)) - text: You should use destructuring to create the <code>highToday</code> variable. <del> testString: assert(code.match(/(var|const|let)s*{s*(today:s*highToday[^}]*|[^,]*,s*todays*:s*highTodays*)}s*=s*HIGH_TEMPERATURES(;|s+|//)/g)); </del> <ins> testString: assert(code.match(/(var|const|let)s*{s*(todays*:s*highToday[^}]*|[^,]*,s*todays*:s*highTodays*)}s*=s*HIGH_TEMPERATURES(;|s+|//)/g)); </ins> - text: You should use destructuring to create the <code>highTomorrow</code> variable. <del> testString: assert(code.match(/(var|const|let)s*{s*(tomorrow:s*highTomorrow[^}]*|[^,]*,s*tomorrows*:s*highTomorrows*)}s*=s*HIGH_TEMPERATURES(;|s+|//)/g)); </del> <ins> testString: assert(code.match(/(var|const|let)s*{s*(tomorrows*:s*highTomorrow[^}]*|[^,]*,s*tomorrows*:s*highTomorrows*)}s*=s*HIGH_TEMPERATURES(;|s+|//)/g)); </ins> ``` </section>
Change:
There is a difference in the font size and the margin between the text , on the home page () and the learn page (). Although you may not notice it on first glance but it disturbs the UI. The "sign in and get started" button on home page is also wider than the "sign in to save your progress button" on /learn page.
Hi Could you add some screenshots that demonstrate the problem you're describing?
Here are two screenshots from the landing and the /learn tab, before you're logged in. ! ! There is a difference with the button width being stretched to fit the container in the landing page, but not on the /learn page. There is a minor difference in the margin right below the 'Welcome' Header between the two pages.
I was talking about the change in margin between "Welcome to " and "Learn to code." on the lading page and the /learn page , and the width of the yellow Button on the two pages , as you can see in the screenshots shared by
Thanks for clarifying, and I'll open this up for PRs.
Implemented some changes. Please see screenshots <img width="1280" alt="Screenshot 2020-01-19 at 09 59 13" src="https://user-"<img width="1280" alt="Screenshot 2020-01-19 at 09 59 31" src="https://user-"

Discussion:
<Col sm={10} smOffset={1} xs={12}> <Spacer /> <h1 className='text-center big-heading'> <del> {name ? 'Welcome back, ' + name + '.' : 'Welcome to freeCodeCamp.org'} </del> <ins> {name ? `Welcome back, ${name}.` : `Welcome to freeCodeCamp.org`} </ins> </h1> <Spacer /> </Col>

#learn-app-wrapper h2.medium-heading { margin-bottom: 50px; <del> margin-top: 0px; </del> text-align: center; }

max-height: 100%; font-size: 27px; white-space: normal; <ins> width: 100%; </ins> } .default-layout {
Change:
<!-- 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: I'm on the Regular Expressions: Check For Mixed Grouping of Characters. I was able to pass this checkpoint with a solution that doesn't meet the objectives of the assignment. I used the following code: With this code I match just “Roosevelt” which is only part of the name(s), yet I still pass the assignment. Add a Link to the page with the problem: With this code I match just “Roosevelt” which is only part of the name(s) we are supposed to match for this assignment, yet I still pass the assignment. Tell us about your browser and operating system: Browser Name: Chrome Browser Version: Version 79.0.3945.117 (Official Build) (64-bit) Operating System: Windows 10 pro If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):
I think that the regex you've written should pass the test. The part is a capturing group, so the regex will match or . The as a quantifier will match the above 0 or 1 times. This means that your regex will capture as well as Unless, I'm mistaken, I hope this helps :)
Apologies... Actually, I've re-read the instructions. I think you may be onto something.
Yeah, the problem is that it matches the string " Roosevelt". A simple solution would be to add another test that makes sure it fails if you use, say, "Frank Roosevelt".
Would like to have a crack at this
Go ahead and create a PR.
Had a go Please see

Discussion:
testString: myRegex.lastIndex = 0; assert(myRegex.test('Eleanor Roosevelt')); - text: Your regex <code>myRegex</code> should return <code>false</code> for the string <code>Franklin Rosevelt</code> testString: myRegex.lastIndex = 0; assert(!myRegex.test('Franklin Rosevelt')); <ins> - text: Your regex <code>myRegex</code> should return <code>false</code> for the string <code>Frank Roosevelt</code> testString: myRegex.lastIndex = 0; assert(!myRegex.test('Frank Roosevelt')); </ins> - text: You should use <code>.test()</code> to test the regex. testString: assert(code.match(/myRegex.test(s*myStrings*)/)); - text: Your result should return <code>true</code>.
Change:
<!-- 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: Project Euler 39 automated test for n=800 should expect 720, which is the correct answer [ [ 45, 336, 339 ], [ 72, 320, 328 ], [ 80, 315, 325 ], [ 120, 288, 312 ], [ 144, 270, 306 ], [ 180, 240, 300 ] ] 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):

Discussion:
tests: - text: <code>intRightTriangles(500)</code> should return 420. testString: assert(intRightTriangles(500) == 420); <del> - text: <code>intRightTriangles(800)</code> should return 420. testString: assert(intRightTriangles(800) == 420); </del> <ins> - text: <code>intRightTriangles(800)</code> should return 720. testString: assert(intRightTriangles(800) == 720); </ins> - text: <code>intRightTriangles(900)</code> should return 840. testString: assert(intRightTriangles(900) == 840); - text: <code>intRightTriangles(1000)</code> should return 840.

return n; } <del> intRightTriangles(1000); </del> <ins> console.log(intRightTriangles(500)); // 420 </ins> ``` </div>

<section id='solution'> ```js <del> // solution required </del> <ins> // Original idea for this solution came from // https://www.xarg.org/puzzle/project-euler/problem-39/ function intRightTriangles(n) { // store the number of triangles with a given perimeter let triangles = {}; // a is the shortest side for (let a = 3; a < n / 3; a++) // o is the opposite side and is at least as long as a for (let o = a; o < n / 2; o++) { let h = Math.sqrt(a * a + o * o); // hypotenuse let p = a + o + h;  // perimeter if ((h % 1) === 0 && p <= n) { triangles[p] = (triangles[p] || 0) + 1; } } let max = 0, maxp = null; for (let p in triangles) { if (max < triangles[p]) { max = triangles[p]; maxp = p; } } return maxp; } </ins> ``` </section>
Change:
<!-- 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.

Discussion:
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
Change:
Describe your problem and how to reproduce it: 1) Go to: 2) Find this text: "Improve this intro on GitHub." 3) Link to GitHub to improve the intro is broken Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Chrome Browser Version: 79 Operating System: Mac OS 10.13.6 If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): ! !
I am not even sure why that last sentence is present. I think it is best if it is removed completely from the introduction. If you see anymore links like this, please add them to this issue, so someone can create a PR to fix them all at the same time.
What do you think about removing the link to the redux website (the first word in the intro)
I think for now, we can leave it alone. I think the discussion of external links should be on a separate issue (if there is not already an outstanding issue). I thought I had an open issue at one point about external links. It may have gotten closed at some point (can't remember why).
Hey guys , the same issue is happening in the React and Redux section, please check:

Discussion:
This series of challenges introduces how to use Redux with React. In a React Redux app, you create a single Redux store that manages the state of your entire app. Your React components subscribe to only the pieces of data in the store that are relevant to their role. Then, you dispatch actions directly from React components, which then trigger store updates. <del> Improve this intro on [GitHub](https://github.com/freeCodeCamp/learn/tree/master/src/introductions/front-end-libraries/react-and-redux/index.md). </del>

## Introduction to the Redux Challenges [Redux](https://redux.js.org/) is a predictable state container for JavaScript apps. It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. While you can use Redux with any view library, it's introduced here before being combined with React. <del> Improve this intro on [GitHub](https://github.com/freeCodeCamp/learn/tree/master/src/introductions/front-end-libraries/redux). </del>
Change:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --JavaScript Algorithms and Data Structures -Basic Algorithm Scripting: Slice and Splice problem description The instruction for this challenge says "The input arrays should remain the same after the function runs.". However, the solution where "arr2" has been changed was accepted. This is the solution that was accepted: Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Mozilla FIrefox Browser Version: 72.0.2 (64-bit) ! Operating System: Win 10 x64 If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):

Discussion:
- text: All elements from the first array should be added to the second array in their original order. testString: assert.deepEqual(frankenSplice([1, 2, 3, 4], [], 0), [1, 2, 3, 4]); - text: The first array should remain the same after the function runs. <del> testString: assert(testArr1[0] === 1 && testArr1[1] === 2); </del> <ins> testString: frankenSplice(testArr1, testArr2); assert.deepEqual(testArr1, [1, 2]); </ins> - text: The second array should remain the same after the function runs. <del> testString: assert(testArr2[0] === "a" && testArr2[1] === "b"); </del> <ins> testString: frankenSplice(testArr1, testArr2); assert.deepEqual(testArr2, ["a", "b"]); </ins> ```