jiebi/CodeConvo huggingface dataset:
Change:
The top nav items on the forum and news does not open in a new tab. We would like the same functionality on learn for consistency.
Do we want all external links to navigate without opening a tab? A quick search suggests that all the links in the footer open new tabs, as do a couple in . I think it's better UX to leave tab opening to the user, but I thought I'd check.
If you decide to go ahead with this, I'd like to have a go at this
I think we want this to remain as is except for the navigation links up top on the navbar, which are the most used links on the platform. This is to make it consistent with the behaviour on forum and news. can you proceed and make the changes. This will likely affect some of the routing. I would like to test this before working on the client app for chinese curriculum.

Discussion:
role='menu' > <li className='nav-news' role='menuitem'> <del> <Link external={true} to='/news'> </del> <ins> <Link external={true} sameTab={true} to='/news'> </ins> /news </Link> </li> <li className='nav-forum' role='menuitem'> <del> <Link external={true} to='/forum'> </del> <ins> <Link external={true} sameTab={true} to='/forum'> </ins> /forum </Link> </li>

const propTypes = { children: PropTypes.any, external: PropTypes.bool, <ins> sameTab: PropTypes.bool, </ins> to: PropTypes.string.isRequired }; <del> const Link = ({ children, to, external, ...other }) => { </del> <ins> const Link = ({ children, to, external, sameTab, ...other }) => { </ins> if (!external && /^/(?!/)/.test(to)) { return ( <GatsbyLink to={to} {...other}> {children} </GatsbyLink> ); <ins> } else if (sameTab && external) { return ( <a href={to} {...other}> {children} </a> ); </ins> } return (
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'd like to submit a suggestion for a clarification in the explanation used in the following lesson: The instructions in this lesson refer to variable which is defined as: The lesson describes this as being a 3d array: This is misleading as positionData is not a 3-dimensional array but a 2d array. A 3d array could not be mapped to a 2d representation like a table: A 3d array would have a structure like: I think this should be considered for rewording less it lead to a misunderstanding. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Firefox Browser Version: 73.0.1 (64-bit) Operating System: Windows 10 If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): !
How about this... I would also get rid of the and sentence.
Good suggestion. I think this still conveys the author's intended message without potentially misleading the student's understanding of what constitutes a dimension in the context of an array. Edit: also agree WRT the - I don't think this adds anything enlightening.
If anyone wants to make a PR using Tom's suggestion, it would be very welcome.
I'd like to take this issue
Looks like has already created a PR for this issue.
Missed it

Discussion:
## Instructions <section id='instructions'> <del> The <code>positionData</code> variable holds a 3-dimensional (3D) array. Use a D3 method to find the maximum value of the z coordinate (the third value) from the arrays and save it in the <code>output</code> variable. <strong>Note</strong><br>Fun fact - D3 can plot 3D arrays. </del> <ins> The <code>positionData</code> array holds sub arrays of x, y, and z coordinates. Use a D3 method to find the maximum value of the z coordinate (the third value) from the arrays and save it in the <code>output</code> variable. </ins> </section> ## Tests
Change:
Originally posted by _
Can you explain exactly where the issue is
The issue i see is that, if someone poorly implements the eat function, they don't get feedback that they did something wrong. Take this code for example: Console output: Still passing the lession, although im deviding by zero ;)
We could spy on the console and assert, that after () is called, the spy got called once with "nom nom nom". Since we are using chai allready, i assumed we could just use it in the markdown files. My code so far (): Maybe it's helping someone :)
it's a nice idea, but we only use the core package, not . A custom solution where you proxy should work, albeit with a little more effort.
I tried doing this Unfortunately, this does not work.
that's almost right and it's a neat approach. I played with it for a bit and came up with: Since each test is isolated, there's no need to restore the original .
awesome! Do you mind if I push this or will you do that?
Not at all, go for it!
I guess you can add the change for all languages :)
No need to do that. We are working to using the English version of the file's to work across all languages. See PR for more information.
Once we merge your PR, you can find all the challenges where we need to test for a specific value being logged to the console.
Acknowledged. Thanks for the heads up. I will push the fixes for all such instances.
Make sure to put the others on a different PR, so as not to hold up your existing PR.
of course :)

Discussion:
testString: assert(beagle instanceof Animal); - text: The constructor for <code>beagle</code> should be set to <code>Dog</code>. testString: assert(beagle.constructor === Dog); <ins> - text: <code>beagle.eat()</code> should log <code>"nom nom nom"</code> testString: | console.log = function(msg){throw msg;} assert.throws(() => beagle.eat(),"nom nom nom"); - text: <code>beagle.bark()</code> should log <code>"Woof!"</code> testString: | console.log = function(msg){throw msg;} assert.throws(() => beagle.bark(),"Woof!"); </ins> ``` </section>
Change:
These should be available without any access tokens: [x] Used for public profile views. [x] Used for confirming and email. [x] Health Check

Discussion:
import { wrapHandledError } from '../utils/create-handled-error'; const authRE = /^/auth//; <ins> const confirmEmailRE = /^/confirm-email$/; </ins> const newsShortLinksRE = /^/n/|^/p//; <ins> const publicUserRE = /^/api/users/get-public-profile$/; const publicUsernameRE = /^/api/users/exists$/; </ins> const resubscribeRE = /^/resubscribe//; const showCertRE = /^/certificate/showCert//; // note: signin may not have a trailing slash const signinRE = /^/signin/; <ins> const statusRE = /^/status/ping$/; </ins> const unsubscribedRE = /^/unsubscribed//; const unsubscribeRE = /^/u/|^/unsubscribe/|^/ue//; const updatePaypalRE = /^/donate/update-paypal/; const _whiteListREs = [ authRE, <ins> confirmEmailRE, </ins> newsShortLinksRE, <ins> publicUserRE, publicUsernameRE, </ins> resubscribeRE, showCertRE, signinRE, <ins> statusRE, </ins> unsubscribedRE, unsubscribeRE, updatePaypalRE

describe('request-authorization', () => { describe('isWhiteListedPath', () => { const authRE = /^/auth//; <ins> const confirmEmailRE = /^/confirm-email$/; </ins> const newsShortLinksRE = /^/n/|^/p//; <ins> const publicUserRE = /^/api/users/get-public-profile$/; const publicUsernameRE = /^/api/users/exists$/; </ins> const resubscribeRE = /^/resubscribe//; const showCertRE = /^/certificate/showCert//; // note: signin may not have a trailing slash const signinRE = /^/signin/; <ins> const statusRE = /^/status/ping$/; </ins> const unsubscribedRE = /^/unsubscribed//; const unsubscribeRE = /^/u/|^/unsubscribe/|^/ue//; const updatePaypalRE = /^/donate/update-paypal/; const whiteList = [ authRE, <ins> confirmEmailRE, </ins> newsShortLinksRE, <ins> publicUserRE, publicUsernameRE, </ins> resubscribeRE, showCertRE, signinRE, <ins> statusRE, </ins> unsubscribedRE, unsubscribeRE, updatePaypalRE

it('returns a boolean', () => { const result = isWhiteListedPath(); expect(typeof result).toBe('boolean'); }); it('returns true for a white listed path', () => { <del> expect.assertions(2); </del> const resultA = isWhiteListedPath( '/auth/auth0/callback?code=yF_mGjswLsef-_RLo', whiteList
Change:
<img width="428" alt="Screen Shot 2020-03-26 at 8 07 49 PM" src="https://user-"The rosetta code challenges are all in alphabetical order except those first few. I did some digging and found that regenerated some mongo ID's for the challenge files. But it looks like those ID's we're never updated to match in the . I'm assuming that's the problem. And strangely I can't find them when I search my local DB - This may cause some issues if someone tries to submit one of these - not sure. Edit: that first link is actually to a commit and not a PR - with that commit Seems like there should be a test for this.

Discussion:
"Largest int from concatenated ints" ], [ <del> "5a23c84252665b21eecc7edd", </del> <ins> "5e4ce2b6ac708cc68c1df25e", </ins> "Last letter-first letter" ], [

"Left factorials" ], [ <del> "5a23c84252665b21eecc7ee1", </del> <ins> "5e4ce2bbac708cc68c1df25f", </ins> "Letter frequency" ], [ <del> "5a23c84252665b21eecc7ee2", </del> <ins> "5e4ce2eaac708cc68c1df260", </ins> "Levenshtein distance" ], [ <del> "5a23c84252665b21eecc7ee3", </del> <ins> "5e4ce2f5ac708cc68c1df261", </ins> "Linear congruential generator" ], [ <del> "5a23c84252665b21eecc7eec", </del> <ins> "5e4ce2a1ac708cc68c1df25d", </ins> "Long multiplication" ], [
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: You said 'LocalStartegy' instead of 'LocalStrategy' Add a Link to the page with the problem: ! Tell us about your browser and operating system: Browser Name: Browser Version: Operating System: If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):
I'll take it up.

Discussion:
As a reminder, this project is being built upon the following starter project on <a href='https://glitch.com/edit/#!/remix/clone-from-repo?REPO_URL=https://github.com/freeCodeCamp/boilerplate-advancednode/'>Glitch</a>, or cloned from <a href='https://github.com/freeCodeCamp/boilerplate-advancednode/'>GitHub</a>. A strategy is a way of authenticating a user. You can use a strategy for allowing users to authenticate based on locally saved information (if you have them register first) or from a variety of providers such as Google or GitHub. For this project we will set up a local strategy. To see a list of the 100's of strategies, visit Passports site <a href='http://passportjs.org/'>here</a>. Add <em>passport-local</em> as a dependency and add it to your server as follows: <code>const LocalStrategy = require('passport-local');</code> <del> Now you will have to tell passport to <b>use</b> an instantiated LocalStartegy object with a few settings defined. Make sure this as well as everything from this point on is encapsulated in the database connection since it relies on it! </del> <ins> Now you will have to tell passport to <b>use</b> an instantiated LocalStrategy object with a few settings defined. Make sure this as well as everything from this point on is encapsulated in the database connection since it relies on it! </ins> ```js passport.use(new LocalStrategy(
Change:
This is pretty minor, and I'm not sure if it's in our control. But if you go to any challenge that has the built in code editor. Pressing tab adds four spaces to the code. It would be nice to switch that to two if possible. I think two spaces is the standard, but perhaps it's just my preference.
Agree
It's an option we can set:

Discussion:
}, parameterHints: { enabled: false <del> } </del> <ins> }, tabSize: 2 </ins> }; this._editor = null;
Change:
Hello, I am new to getting involved in open-source projects and simply want to start off slow in getting involved in the community. Under the topic header "Pushing changes to Staging Application" as stated in the second paragraph after step 5, "The release pipeline is triggered automatically when a fresh artefact is available from the connected build pipeline." did you mean "artifact"?
In this context, it's discussing build artifacts. Might just be the case of US English and British English.
Yes. We should probably change it to US English version, . PR is welcome.
You got this?
Oh - Looks like I had accidentally closed this. Up for grabs.
PR

Discussion:
The above steps will automatically trigger a run on the build pipeline for the `production-staging` branch. Once the build is complete, the artifacts are saved as `.zip` files in a cold storage to be retrieved and used later. <del> The release pipeline is triggered automatically when a fresh artefact is available from the connected build pipeline. For staging platforms, this process does not involve manual approval and the artifacts are pushed to the Client CDN and API servers. </del> <ins> The release pipeline is triggered automatically when a fresh artifact is available from the connected build pipeline. For staging platforms, this process does not involve manual approval and the artifacts are pushed to the Client CDN and API servers. </ins> > [!TIP|label:Estimates] > Typically the build run takes ~20-25 minutes to complete followed by the release run which takes ~15-20 mins for the client, and ~5-10 mins for the API to be available live. From code push to being live on the staging platforms the whole process takes **~35-45 mins** in total.
Change:
There are two links in docs. Following are the two links how to work on coding challenges. up freeCodeCamp locally I am also adding screenshot to show more clearly that which links are broken. ! so when we click on these links in README in docs it shows page not found
Nice catch! I will correct this.
i have linked pr for this issue kindly merge it thanks
We will have to figure out a better way to handle links. We are currently using to host our documentation at This means we have to handle links in a way that they work on that page. I think a quick way to work around this would be to rename to which we render on the contribute page. Then we create a in which just has a notice similar to the Thoughts?

Discussion:
You can help expand them and make their wording better. You can also update the user stories to explain the concept better or remove redundant ones and improve the challenge tests to make them more accurately test people's code. <del> **If you're interested in improving these coding challenges, here's [how to work on coding challenges](/how-to-work-on-coding-challenges.md).** </del> <ins> **If you're interested in improving these coding challenges, here's [how to work on coding challenges](how-to-work-on-coding-challenges.md).** </ins> ### Learning Platform

Essentially, we expect basic familiarity with some of the aforementioned technologies, tools, and libraries. With that being said, you are not required to be an expert on them to contribute. <del> **If you want to help us improve our codebase, you can either [set up freeCodeCamp locally](/how-to-setup-freecodecamp-locally.md)** </del> <ins> **If you want to help us improve our codebase, you can either [set up freeCodeCamp locally](how-to-setup-freecodecamp-locally.md)** </ins> OR
Change:
!
Sample URL:
, I am trying to work on the docs locally, and I have cloned the latest push of the repo, but my docs do not have the navbar. Am I missing something about running the docs locally?
See:
If you have installed and set up freeCodeCamp locally, you can simply do: which should prompt a URL at which its serving the site.
Right. I did all that. Turns out, I was syncing with my fork, and not fCC's.

Discussion:
.docsify-copy-code-button { font-size: 0.7em !important; } <ins> /****** Anchor Headings ******/ a.anchor { padding-top: 48px; } .markdown-section h2 { margin: 0 0 0.8em; } </ins>
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: In the lesson linked below, This will pass: But this wont: The error message says: Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Google Chrome Browser Version: Version 81.0.4044.113 (Official Build) (64-bit) Operating System: Fedora 31 If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):
Interestingly, this code passes:
Considering this is the testString: It seems like a potential issue with the console, ? Related to
I believe the method used to solve a similar problem in would work here. - scroll down to the middle of the section...
On a side note: Should this code be left to be allowed to pass the tests?:
I don't think should pass, since it's just an odd way of writing , rather than how you'd actually use . As for the console, I get in both consoles, which seems fine.
I don't mind passing all that much. Mostly because I am doubting that anyone has actually used that. But I also don't mind fixing it since it's not really how it was intended to be completed. I think the easiest fix would be to change the first test... Your regex should use curly brackets. to something like... - and update the test to check for that.
It's pretty inconsequential, honestly. I'd prefer it to fail, but you're right - it's unlikely many people have done that while actually trying to solve the problem. If it's fiddly to reject that while allowing valid solutions, don't worry about it.

Discussion:
- text: Your regex should use curly brackets. testString: assert(timRegex.source.match(/{.*?}/).length > 0); - text: Your regex should not match <code>"Timber"</code> <del> testString: assert(!timRegex.test("Timber")); </del> <ins> testString: timRegex.lastIndex = 0; assert(!timRegex.test("Timber")); </ins> - text: Your regex should not match <code>"Timmber"</code> <del> testString: assert(!timRegex.test("Timmber")); </del> <ins> testString: timRegex.lastIndex = 0; assert(!timRegex.test("Timmber")); </ins> - text: Your regex should not match <code>"Timmmber"</code> <del> testString: assert(!timRegex.test("Timmmber")); </del> <ins> testString: timRegex.lastIndex = 0; assert(!timRegex.test("Timmmber")); </ins> - text: Your regex should match <code>"Timmmmber"</code> <del> testString: assert(timRegex.test("Timmmmber")); </del> <ins> testString: timRegex.lastIndex = 0; assert(timRegex.test("Timmmmber")); </ins> - text: Your regex should not match <code>"Timber"</code> with 30 <code>m</code>'s in it. <del> testString: assert(!timRegex.test("Ti" + "m".repeat(30) + "ber")); </del> <ins> testString: timRegex.lastIndex = 0; assert(!timRegex.test("Ti" + "m".repeat(30) + "ber")); </ins> ```
Change:
Did you guys mean 'as long as "name" is a string' in last paragraph? !
Yes, I think that's the intended motive. Please go ahead and create a PR or let us know so I'll put it up for other contributors!
I'll create a PR :)
"as long as" conveys the message to the learner that name must be of the string datatype Create a PR to close this issue

Discussion:
## Instructions <section id='instructions'> Make an object that represents a dog called <code>myDog</code> which contains the properties <code>"name"</code> (a string), <code>"legs"</code>, <code>"tails"</code> and <code>"friends"</code>. <del> You can set these object properties to whatever values you want, as long <code>"name"</code> is a string, <code>"legs"</code> and <code>"tails"</code> are numbers, and <code>"friends"</code> is an array. </del> <ins> You can set these object properties to whatever values you want, as long as <code>"name"</code> is a string, <code>"legs"</code> and <code>"tails"</code> are numbers, and <code>"friends"</code> is an array. </ins> </section> ## Tests
Change:
Describe the bug The PayPal sdk gets called by the local site, even when there are no keys specified in .env To Reproduce Steps to reproduce the behavior: to any page with a donation component the console a 400 error Expected behavior If the keys are missing, PayPal should not be contacted. Screenshots !
/cc
Hello guys! Does this happen on page or somewhere else too? Can't recreate it anymore, happend only once. I'd like to help with that issue if you don't mind Also, I noticed PaypalButton has a typo -in props, example:
it should happen if you hard refresh on donation page. (and on donation modal) That script loads the button. A solution would be to check for paypalClientId in the render of PaypalButton component and return PayPalButtonScriptLoader only if paypalClientId is truthy.
PR is ready. Could you please take a look? Also about the Stripe issue. I'm not sure if it's expected/known but if I don't configure the key for stripe, the page isn't loading for me at all. <img width="1054" alt="CleanShot 2020-05-11 at 02 59 29 src="https://user-"
Yikes, that seems like it needs a fix as well. Thanks for catching that.

Discussion:
loadScript(subscription, deleteScript) { if (deleteScript) scriptRemover('paypal-sdk'); <del> let queries = `?client-id=${this.props.clinetId}&disable-funding=credit,card`; </del> <ins> let queries = `?client-id=${this.props.clientId}&disable-funding=credit,card`; </ins> if (subscription) queries += '&vault=true'; scriptLoader(

} const propTypes = { <del> clinetId: PropTypes.string, </del> <ins> clientId: PropTypes.string, </ins> createOrder: PropTypes.func, createSubscription: PropTypes.func, donationAmount: PropTypes.number,

render() { const { duration, planId, amount } = this.state; const isSubscription = duration !== 'onetime'; <ins> if (!paypalClientId) { return null; } </ins> return ( <PayPalButtonScriptLoader amount={amount} <del> clinetId={paypalClientId} </del> <ins> clientId={paypalClientId} </ins> createOrder={(data, actions) => { return actions.order.create({ purchase_units: [
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: The last test times out on the given problem and needs to either be removed or replaced with a smaller number. 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): !
I think it's fair to require people to use efficient algorithms for this section, so I don't think that last test should be removed. Perhaps it's worth stressing (in the first few Euler challenges) that speed is a requirement. That said, the solution in the challenge is wrong: returns 4 when given 8. We should test for that. I think Is fast enough and (hopefully!) correct.
Yup. That works. I see the part about efficiency.
Cool, I think this is a good candidate for a first contribution.
Hello guys! Can I take this? as I understand the task is to update the solution block with a function that performs faster? Thank you!
Hi please do! If you could also add one more test that validates that that would be great, since the existing solution gets that wrong.
Cool, thank you! Will add that too

Discussion:
testString: assert.strictEqual(largestPrimeFactor(5), 5); - text: <code>largestPrimeFactor(7)</code> should return 7. testString: assert.strictEqual(largestPrimeFactor(7), 7); <ins> - text: <code>largestPrimeFactor(8)</code> should return 2. testString: assert.strictEqual(largestPrimeFactor(8), 2); </ins> - text: <code>largestPrimeFactor(13195)</code> should return 29. testString: assert.strictEqual(largestPrimeFactor(13195), 29); - text: <code>largestPrimeFactor(600851475143)</code> should return 6857.

```js <del> const largestPrimeFactor = (number)=>{ </del> <ins> const largestPrimeFactor = (number) => { </ins> let largestFactor = number; <del> for(let i = 2;i<largestFactor;i++){ if(!(largestFactor%i)){ largestFactor = largestFactor/i; largestPrimeFactor(largestFactor); } </del> <ins> for (let i = 2; i <= Math.sqrt(largestFactor); i++) { if (!(largestFactor % i)) { let factor = largestFactor / i; let candidate = largestPrimeFactor(factor); return i > candidate ? i : candidate; } </ins> } return largestFactor; } ```