In RWB, the placement of the instructions interrupts the code and makes indentation unclear, especially for a beginner that may not know what to look for yet. I noticed several instances where putting longer, uninterrupted part of the code in the highlighted editor might help with clarity. <h2Examples</h2<a href=""Step 21</a: change the error message or expand the highlighted code. (Error message when h3 is in the wrong location: "There should be an h3 element right above the second section element's closing tag.") <a href=""Step 23</a: include in highlighted editor to match the instructions ("A figure caption (figcaption) element is used to add a caption to describe the image contained withing the figure element.") and to show the placement of within . <a href=""Step 50</a: include in highlighted editor to match the instructions ("The legend element acts as a caption for the content in the fieldset element.") and to show the placement of within . <h2Proposed solutions</h2- Expand the code on case-per-case basis. Permanently move the instructions box on top of the code editor. (I think that would make everything clearer and more accessible with well defined sections on the page, but I imagine it would be harder to implement now.)
I don't believe we would go this route, as the instructions UI was specifically designed to allow us to highlight the section of code a camper should be editing. I do agree some of these regions could be tweaked a bit
Thank you for reading through it! I will admit I that secondary suggestion because of a personal issue as well, as I find the page a bit overwhelming and every time I click on the next step, it takes me a while to find and re-focus on the editor. I think there's just a lot going on visually, but I'm not a UI/UX designer so I don't have specific suggestions except for the fixed placement.
I'm fine with changing the three lessons mentioned here, but we could maybe use a discussion on how those regions should be. There's probably going to be many steps where the editable region could be bigger or smaller or different. Maybe we need some hard rules on how to apply them. Something like - for HTML steps, include the parent element in the region. For CSS steps, include the whole selector.


There may be instances where rules like that don't work out so well. Like for the first steps of the Cat Photo project, we may want to be more specific about where to add code - and on later steps or projects, more vague. So I don't know.
I did bring this up, but we were on the fence with:
Yeah it seems like something that's more of a case-by-case basis than to have hard and fast rules for. My proposed "general" approach would be to encapsulate anything the instructions mention. So if the instructions say "write a h2 below your h1", the h1 should be within the editable region.
To try and get this issue resolved, I vote for these changes: step 21: change the hint to "There should be an img element right after the closing tag." step 23: use op's suggestion step 50: use op's suggestion
Thank you for reporting this issue. An easy fix would be to scroll the editor so the instructions are always almost at the top of the "page". That way the eyes know where to go on each challenge. (right now it scrolls to the center) I am interested in knowing more about this: " it takes me a while to find and re-focus on the editor." Are you having difficulty locating the instructions? do also look around for the tests and the submit button? More context is appreciated. We ultimately need to usability test this with people who have not seen the curriculum.
Hello, sorry for the late reply. After seeing this notification, I opened the curriculum on a random step to see if I could provide you with more information. I mostly forgot how the page was structured and my eyes just ran across the page in no specific order. "Check your code" was the first text I read, as it draws the most attention, and then "". I believe that would be very helpful! (I think it would also be nice if the navigation breadcrumbs were more subtle, and if the buttons like "", "" and "preview" looked more like toggle buttons – now they remind me of tabs but disconnected from their sections, and they also draw more attention than is perhaps needed?) Thank you for checking in on this!
Thank you for your feedback.


Describe the bug Sass pages with invalid syntax occasionally timeout To Reproduce Steps to reproduce the behavior: to in in the console (sometimes) Expected behavior The following should appear in the console: Since this is intermittent, here's a gif to demonstrate: ! Additional Context When the error appears it does so very quickly, so it is unlikely that this is due to a genuine timeout.
Hey Oliver, When I clicked on the link, I reset the code, and completed the challenge as it should be completed. I came across a error, and was unable to run the tests. However, after resetting the code, refreshing the page, and pasting in the code you provided (missing ), the error you mention appeared, but does not disappear. So, I suspect it has to do with the page first load, because I can get the error only if I: 1) reset the code 2) Duplicate the tab 3) Input the incorrect code (missing ) !
I tried method but that didn't produce the bug. I am able to reliably reproduce the bug on Chromium & Firefox with the following steps: the page (new tab & refresh can both produce bug). delete & re-add the character from line 9, fast enough that the new state does not display in the console. step 2 on deleting the . If done correctly the message will display instead of an error, even though the console input is incorrect. approximately 3-5 seconds for the timeout message to appear. Note: it can also be reproduced where by in step 2 you end on re-adding the but it's harder to tell if the bug has happened. It must have something to do with the console state change and the output error check conflicting.
I worked on this issue on my old computer that is very slow and on my main PC (with a dual boot). On my old computer I have the same result as regurlaly timeouts. On the new one to have this issue I have to paste 3 times the piece of code to reproduce it. But everytimes, this is a real timeout (5ms, I put 'new Date()' on the code).


We can upgrade the source code one "execute-challenge-" with this kind of stuff to have a best message, but still the problem : <prelet errMsg = 'error'; if (err === 'timeout') { // eslint-disable-next-line no-ex-assign errMsg = ; } else if (Array.isArray(err) && err.length0 && err[0] === 'timeout') { // timeout: 5ms errMsg = ; } else { errMsg = err; } (errMsg); yield put(updateConsole(escape(errMsg))); </preso the result will be "Server response timeout"
While this is old, it's still reproducible, unfortunately. A PR to improve the warning would be welcome.
I’m currently taking a look into a possible solution on this!


Describe the bug When you enter a challenge using a mobile device, the tabs below the main header are displayed with untranslated text To Reproduce Steps to reproduce the behavior (mobile device): to untranslated tabs below the main header Expected behavior Tabs text should be translated. Screenshots Spanish site ! Chinese site ! Desktop (please complete the following information): OS: [Windows 10] Browser: [chrome] Version: [88] Additional context Those strings are not available yet on the Crowdin platform.


Keywords in the following sentence should be wrapped within . Update the file with this change:
This issue is open to first-time code contributors to this repository. The file that you should be updating is linked in the original post. We typically do not assign issues. Instead, we accept the most quality contribution followed by the one that is made first. Please make sure you read our as well as our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Happy contributing.
I can work on this.
Are you still working on this?
I submitted a pull request () that is waiting to be reviewed.
I would like to work on this.
I can work on this.


We have instances which is used to provide spacing for both side of the component to wrap it up in specific space Example: We can make the Spacer component smarter, and allow it to accept children, so the code be like. But in doing so, we need to: change the current values and how the padding is calculated, the old layout shouldn't change with the new spacers. change which padding has the new value, I think paddingBlock, which is paddingTop and paddingBottom, is the new padding property . I am requesting this because this will make live simpler, and we have to worry about less elements while controling the layout, and if we have specific cases, we can still use
There is an abstraction with , we need address, it's better if we can specify the direction of the padding. but this can be sorted in another issue, for now to solve this issue please allow to have children prop inside of it, but the current styles of the curriculum shouldn't change. 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 prolific contributors will guide you through this.
Hey I have few questions while looking into this issue are few files where we have used Spacer, so may I just change wrap the content where ever needed or it would be handled in new issue? (I guess it must be done in other issue, as it would be easy to maintain) have implemented the children props, so may I raise a PR? Will break this issue in 2 other issues as well. 1 for wrapping the places it has been used, and 2nd for specifying the direction. I was wrapping and trying it out, I found out that Spacer has been used at every 2nd-3rd line of code, so do we need such a wrapper which would give spacing to all components present inside it or only to the parent component? EG: If we have 2 divs wrapped inside Spacer, then does both div have the spacing around them or only the outmost div.


sorry for the delay, it was difficult to understand what you mean without looking at an example of code, so to answer you: yes the direction will be in a second issue, but the spacing and values should still be in this issue, so the pages won't look different Of course, please raise a PR after reading the guideline, nicely done . The Spacer shouldn't affect the children inside of it, think of it as creating a container with margin-block to space the area of the children inside of it from other areas
I guess we could close this issue
will be closed when the height is removed in the other PR


Is your feature request related to a problem? Please describe. Currently the certificates lack any white space along the top border, making them difficult to screenshot and/or print: ! We should add some white space to the top of the page so the certificate is centered.


Related to . Once that's done, the code blocks will be written in blocks of  into ! while the same code on the guide looks like ! I think this change would make the code blocks easier to read, make the guide and challenges feel more like parts of a unified whole and fit better with the code editor aesthetic discussed in the . I'd be happy to work on this, if this is useful feature What do you think?
You should look into for this sort of thing. Goodluck. this is something we would probably be needing and using across Guide and Learn. So, I'll let you chime in and guide on this.


please clarify the instructions for step 39 of JS Beta Build a Music Player Currently they consist of 2 sentences: "Add an else block to handle the current song’s position in the playlist. Within the else block, set the currentTime property of the audio object to the value stored in userData?.songCurrentTime." The first sentence doesn't seem to relate to the second. It is not clear how 'the current song's position in the playlist" is affected by the actions requested of setting the audio object's currentTime? This makes me think that there's a mistake in the first sentence (or maybe I've misunderstood what it is trying to say so it needs more clarification) N/A N/A No response N/A No response
I don't think it has anything to do with the playlist order. The only thing is used for is pause/play (it gets reset everywhere else). Maybe it can just be:
My thoughts was that the else block was designed to continue playing the song at the place you stopped it. The current song has been chosen and it's same id of the song. In the block, we're setting the time to zero. In the else block, we're setting it at the old time.
FYI: I attempted to test pausing and restarting the song but it always restarted from the beginning.
In what step did you test it? If you go to the last step, the play/pause should work as intended (or to whatever step has it implemented). Pausing saves the audio element's current time to , and playing restores it back to the element's current time when is available.
I see, I thought I would be able to pause and play something else then come back to the original selection and it would start from where I stopped (but I don't think the code was created for that).
Nah. It only resumes and plays back for the current song. Once you switch songs, it forgets where you left off on the old one.
I would be fine adding something like "This allows you to resume the current song at the point where it was paused."
This looks like something that can be fixed by "first time" code contributors to this repository. Here is the file that you should be looking at to work on a fix: Change: To: Please make sure you read , we prioritize contributors following the instructions in our guides.


Join us in our chat room or the forum 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.


The instruction are not clear, right now it says Edit: This is actually step 120 in the main branch Set monsterHealth to monsterHealth minus the power of the player's current weapon. Remember you have the currentWeapon which is not initialized variable and the power property on weapons array. No response Device: Laptop OS: macOS Browser: Chrome I think it should be more detail about what and where is currentWeapon, power property and how to access it like in previous.
It looks like currentWeapon is initalized with the value of 0 here Then it is updated over time throughout the project. I think for that second sentence it should be clear about syntax on how to access those values since beginners are still struggling with that. Being more explicitly will help with confusion on the forum posts. Let's go with this change.
This has been opened 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 Happy coding


Is your feature request related to a problem? Please describe. It currently can take a several key presses to navigate to the editor if it does not have focus. Describe the solution you'd like It should be possible to focus on the editor with a hotkey, for example 'e'. The issue where this was mostly discussed will be closed soon, but some thoughts about implementing this appeared there:


Throughout the curriculum, we often have campers name variables that represent booleans with the prefix of or which follow standard convention. But we never really explain that to them. I think that step 17 would be a good place do that. js let isRunning = true; let hasCompleted = false; ` 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
This has been opened 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 Happy coding


The copy here seems misleading especially for those coming from no knowledge of javascript. It looks as though jQuery isn't also Javascript. ! [] 1) jQuery is a powerful tool for manipulating HTML elements. 2) It's a lot easier to use than JavaScript itself, so we'll learn it first. 1) jQuery is a powerful javascript framework for manipulating HTML elements. 2) It's a lot easier to use than plain JavaScript itself, so we'll learn it first.


<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --In the challenge below, the alt text for the diagram is set to "a diagram of non-overlapping concentric circles". But if my understanding is correct, they are not "concentric circles" (circles which share the same center). <!-- Add a link to the coding challenge with the problem. --Coding Interview Prep Project Euler Problem 199: Iterative Circle Packing <!-- Add a clear and concise description of what you expected to happen. --The alt text should be changed to "a diagram of non-overlapping circles" or something. (I'm not a native English speaker, so please fix it if there is a better description.) <!-- If applicable, add screenshots to help explain your problem. you can drag and drop, png, jpg, gif, etc. in this box. --! <!-- Please complete the following information. --- Device: Laptop OS: Windows 10 Browser: chrome Version: 96.0.4664.45 <!-- Add any other context about the problem here. --Originally reported in a comment on Crowdin duing translation.
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.
I would like to work on this.
Hey Issues are typically not assigned to a specific person, other than long-time contributors. You can read more about this at Issues labelled with or are open for contributions for all. Please make sure you read . Join us in or if you need help contributing, our moderators will guide you through this.
sorry about that, as this was my first time in freeCodeCamp, I'll make sure to read the contribution guidelines


<!-- 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: using the code in this file: the challenge is passable by uncommenting lines 56-59 if (curr === null) { (curr, "curr") return null } The wording of the test is "Trying to remove an element that does not exist should return null." yet the assertions only test for removing a node that does not exist in an empty tree. What about removing nodes that do not exist in a tree that has nodes? ` Add a Link to the page with the problem: My pull request: 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):
To summarize the issue: Test checks only if trying to remove non-existing element from empty tree will return null. It doesn't check if the same happens for removing non-existing element from non-empty tree. This can lead to implementation, which doesn't handle the second case at all (and even as in example above can end up with error), and still pass challenge.


This step comes up a lot on the forum and I think it is because we have never really explained what method chaining is or showed an example. Let's update the description to include an example so they know what to do. We should also explain why the join method is needed here so they better understand what is going on. js const exampleArr = ["This", "is", "a", "sentence"]; const sentence = (" "); // Separator takes a space character (sentence); // Output: "This is a sentence" js ().join(); ` 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
This has been opened 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 Happy coding


In the following test-case expected ['TWENTY', 80.00], but only ['TWENTY', 60.00] available. I'm going to fix it and make a pull request.


There is a bug in the challenge learn-basic-debugging-by-building-a-random-background-color-changer/step-8 | when entering it passes the test; ! Device: [MacBook Pro 10.15.7] OS: [ iOS Catalina] Browser: [Brave, Chrome] Version: [...] passes test, when it shouldn't`
Very interesting and confusing finding! This is the passing test: Here's part of the explanation why it passes: Setting to also would pass.


No need to use here since the array is not re-assigned in later steps. We used for other arrays in this project that aren't reassigned. No response All No response
Hello, I fixed this by doing the following: 1) went to 2) found the ID of step-162 () 3) went to the repositories code and searched for the markdown file through ID. 4) the markdown file 5) Updated the markdown file to use 'const' instead of 'let' ! After this commit is approved, this should be able to be closed.
All of the seed code for subsequent challenges would also be changed.
I am not sure what you mean by this. Is there anything I can do to learn this? Are you referring to all references of 'let' initialization to be changed to 'const' in future steps?
Not quite - the answer to this step becomes part of the starting code for all future steps. If we change the instructions to use here, then then starting code on all future steps needs to be swapped to reflect that.
Hi, I raised a PR to fix this


We previously attempted this in , which had its own set of issues. We need the Plyr to work natively with Youtube or alternatively make the YouTube embed not show related videos.
Can I work on this ?
I think this is resolved by a recent PR. We are keeping this open for verification. We have lots of other issues open which we could use your help with. Thanks.


<!-- 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: This challenge has an example of sorting like this: ` This example uses a bad compare function. In recent changes to Chrome the following example no longer properly sorts the array: The compare function needs to return a number to be able to sort an array properly. This can be fixed by changing the compare function to return a number: Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Chrome Browser Version: 70 Operating System: Windows 10
The above return statement only returns 1 or -1. To preserve the original order for elements which have the same value, you need to test for the condition where they are equal. For example, to preserve an elements original order when equal, you would write: While in this particular example, you may not be able to see the difference, I will show a different example below, where the difference can be seen. Let's say you have the following array of objects: The 2nd and fifth elements have the same letter, but they are in different positions. Let's say you want to sort the objects in alphabetical order and preserve the original sort order of the elements with the same letter (in this case those with letter 'b'). This means, after the sort, letters should look like: If you just create the following sort function without specifying a return value of 0 when the letters are equal, it would not sort correctly in the new version of Chrome: The above produces: instead of the correct version: To preserve the original sort order for objects with the same letter, you must use the following sort function: I think the example should reflect the better practice of specifying a return value of 0 for elements which are equal in value. This matches the actual requirements of the compare function of returning a value of 0, -1, or 1, so I believe the example should be written like:
I am interested working on this issue
Although the example used in the original text doesn't require ordering I agree adding would be fine. As much as I like ternaries, I'm not in favor of nested ternaries. As a general rule they . If possible I'd keep the text challenge clean and readable.


Maybe the good ol' if statements are fine here:
Let's see what says after my last reply, before we assign it to you.
Yeah, even I think it is better to make it in the form of as many people still get confused with nested ternaries.
I would take a different perspective here. For the purposes of the tutorial, I suggest that nested ternaries are the way to go. If people do get confused, this will encourage them to look up their doubt and they will be better versed with ternaries for later. I have opened a PR with the edit implementing nested ternaries.
On second thought, and the fact we already have a nested ternary lesson in basic JS section. I think it's fine to use a nested ternary. Good point as well.
Make sure to reference that it closes this issue # if you have not already done so.
just remember to ask first before you create a PR as there might be other people waiting to do one, like had asked here before if he could work on it? sorry about not getting to do a PR for this issue, there are other issues you might take a look at.
I will take care of this in future PRs. Apologies for my mistake .
Comment on issue
What are these PRs you have referenced?
could be spam.
The sample code on the FCC website is still the old version. I noticed on the challenge's GitHub page the sample code is different than what I saw on the live FCC website. I did this challenge on December 19, 2018. The sample code on the FCC website website is the old version (different from the GitHub version). I thought that the GitHub version of the challenge was reflected on the FCC site. Does this happen at regular intervals, or do updated challenges need to be pushed live to the site? As a side note, the sample code on the GitHub page and the live FCC site doesn't work in Chrome 70+ for reasons addressed above. May I update the sample code to a version that works? In this case, the description would also need updating to explain the code. Should I make the changes as a pull request? Sorry, I'm really new to FCC and Open Source contributing in general. I just want to make sure I do things in the most efficient way.


I propose the following (the opposite of the reverse alphabetical sort suggested above): The old version that doesn't work in Chrome 70+: Here's the screenshot: ! Here is the link to the GitHub page:
Not sure if I misunderstood you, by "sample code" do you mean the guide? is a PR for the guide, although it seems to be missing the fix for reverseAlpha ascendingOrder version of sort where the compare function is using subtraction is only (to be) used with numbers, not strings. Which is not explained, nor is the function name very explicit about that fact. On a side note: Personally, I would like to see the use of parentheses as I feel it makes the nested ternary more legible. Maybe also a version using (maybe just in the guide) I would also like to see a link to the MDN docs (and maybe a short explanation of how the method and callback works).
RE: Sort an Array Alphabetically using the sort Method Challenge... Maybe not the cleanest but simply running this code: worked in my case :)
Hi I was not referring to the guide, but instead to the live/production and the GitHub version. (Now that you mentioned it, I checked out the PR you linked and noticed that even in the guide, the first example for an ascending sort does not work in Chrome 70+. I'll comment on that PR as well.) Here are screenshots and tables below summarizing the issue. In short, the sample code on the FCC site for ascending sort is an example of how to sort numbers. It works for numbers but does not work when applied to letters/strings in Chrome 70+. The sample code for the reverse alphabetical sort also doesn't work in Chrome 70+ but does in FireFox. I think it would be best to have sample code that applies to the challenge, and works across major browsers. ! ! PASS PASS PASS PASS Note: there is a typo in the second sample code block of the GitHub version screenshot. The PR you linked addresses that as well. Hope this info helps. Please let me know if anything is unclear.
Hi I like the brackets in the nested ternary. This may be minor, but I think a different arrangement of the nested ternary would be even more intuitive and brackets wouldn't really be necessary. I my suggestions as comments to the code blocks below.


They match the code on the MDN page, which states that the ternary operator is right-associative (details below). What do you think? MDN: Conditional (ternary) operator
The TLDR; The only bug is, Chrome used to accept boolean return values like Firefox still does. After Chrome changed their sort it no longer does. This is not a bug in Chrome, but incorrect usage of the compare function in the assignment text, this has now been fixed (site is not updated yet). The comparefn is supposed to return numeric values: 0 (a must be equal to b) 1 (a is greater than b by the ordering criterion) -1 (a is less than b by some ordering criterion) If the comparefn does not return numeric values it is not consistent and the sort order is implementation-defined (which is spec compliant). ascendingOrder (return a - b) version is not meant to work with strings, in any browser. It is an example of using a compare function for sorting an array of numbers using subtraction. You seem to be mixing the number (ascendingOrder) and string versions (alphabeticalOrder/reverseAlpha), not sure why. Your screenshot and table are confusing and as far as I can tell must be wrong. The screenshot shows Chrome failing to sort an array of numbers, using ascendingOrder, which is incorrect. Then your table shows Firefox passing on an array of strings, using ascendingOrder, which it does not. For both browsers, using ascendingOrder on an array of numbers sorts the array correctly. Using ascendingOrder in Chrome on an array of strings leaves the array unchanged. Using ascendingOrder in Firefox on an array of strings reverses the array but does not sort it. Just to be clear, ascendingOrder is meant to sort the array, not reverse it. It just happens to be shown in the example text on an array of numbers that is in reverse order and so sorting the array effectively reverses it. can't put the alphabeticalOrder version in the assignment text, that is the solution to the assignment. That is why I asked. deeply nested ternaries your last style example is pretty common, however, for what we have in the assignment I think a single line expression is better. My format suggestion is based on how prettier formats the code.


Last I'm not sure if this conversation on a closed issue is considered proper etiquette or not, I simply don't have enough experience.
The above analysis is spot on. Thank you for the great explanation and its fine to have a discussion in a closed issue as long as its on topic. Otherwise you can always create new issue.
function alphabeticalOrder(arr) { return ((a, b) =a !== b ? (a < b ? -1 : 1) : 0); }


Point 7. of instruction says: There is missing underscore near eye in the result text. The correct solution for this test is text: eye is a palindrome (with underscore) Instruction text at Point 7. changed to: ! 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
The result looks correct to me because the instructions have this note in the beginning If we remove all special characters from then we would be left with
Look at the instructions for tests 16 and 17. The string includes all of the non-alphanumeric characters. But for test 7 the underscore is left out of the string.
I see it now. I misread that as returning the string without non-alphanumeric characters. In addition to updating the test description the hint text will also need to be updated This is has been opened 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 User story 7 will need to be updated and the hint text here will need to be updated


All numbers for descriptions should be in backticks. Here is the updated description Here is the file you will need to change Please make sure you read our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first. Happy contributing. 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
id like to pick up this, can you assign it to me pls
We do not assign issues to anyone other than long-time contributors and core team members. This issue is free to pick up for anyone interested in working on it. 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


The formula given for converting from C to F is given as a) But this can also be written as b) These two formulas are producing different results. Using for (which is used in the tests) we get: a) b) If formula is used then the tests for this challenge will fail due to the floating point rounding issue. The tests should pass regardless of where C is placed in the formula. Either we need to do a little rounding in the tests or replace with a different number in the tests that won't produce different results depending on the placement of C in the formula. No response Device: Desktop OS: Linux/Fedora 36 Browser: Firefox Version: 112 No response


I followed Step 4 instructions. As I finished typing out the element, by habit I press + , and noticed that it accepted it, even though it shouldn't have as I was still missing the element It should have failed, as it's still missing the that Step 4 asked for ! Device: PC OS: Window 11 Version 23H2 Browser: Firefox 127.0.2 (64-bit) No response
This seem to also happen in other parts of the same course, such as Step 7 ! As you can see, it is missing its closing tag As well as Step 11 ! It's missing its closing tag yet the Step still validate it
Can you please open a new issue for the form element. I'm guessing the browser is auto closing it, and we don't have a regex test for it. It should result in a valid form element, because the browser will close it. However, the element technically does not have any "Tag omission" so it should have an end tag in the HTML (even if it gets to the DOM by the browser).
Done


Currently the map looks like this: ! I think it would look a lot better if we made more use of the available space. Something like this: !
I can fix the css in a separate PR, if you like. Unless you're already handling it, of course.
I think it is handled now in the PR already. I moved things into the Grid system
That PR still has the heavy indentation: !
You are correct, if you have something going please go ahead and push to the PR. I am done with the basic consolidation of the views that I was going for.


Following the conventions decided upon in , we should change the instruction in the "Remove Elements from a Linked List" challenge - to Add a Link to the page with the problem: The file to be changed is . Since this is a simple change, we would welcome Pull Requests from first time contributors.
I can do it. Should i make the same change in the portuguese version too?
No, just make the change for the English version.


The declaration of arr doesn’t need to be guarded by ‘Do Not Change’ comments. There exist many solutions (3 in the guide) that do not need that variable declaration. These comments should be removed or at least moved. All No response
. I lean towards the second option of having only the comments within the function and no extra starter code.
I was thinking something simplier We've ditched a lot of these comments in the rest of the intermediate algorithm challenges. Does the comment help us at all here?
Probably not. I honestly would not even put the . At this point in the curriculum, users should know the function needs to have a statement and they can craft their own.
Sure, then the fix would be: This looks like a good first-timer issue.
Thanks for opening this issue. This looks like 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 our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.


The instructions are really confusing and could be rephrased. ! I don't think what is referred to as a conditional is a what people are going to think of as a conditional. It is just a Boolean expression that is being asked for. No action or assignment is being given depending on truthiness of the expression. It seems like it is looking for an if, switch, ternary or bare conditional, and I believe only ternary or a bare conditional can be placed inside of an array (Not being nested inside of IIFE) which is knowledge a novice probably won't have. The difference, although small, is that a condition takes an action based on the result of a Boolean expression. No conditional action is being taken, so it is just an expression. Might ask for the first element in the array to be a Boolean expression of the sum of the player's position, height and velocity greater than or equal to the platform's position. There are various steps that follow that refer to Boolean expressions as conditionals. The concern is people learning incorrect terminology and getting mixed up in the field.
Yes, you are correct we should update the terminology for steps 78-81 to say boolean expression instead of conditional statement. I have opened this up for contribution.
For each of the steps, make sure to make the change mentioned above in all of the descriptions. Also, go through and check all of the hint text to make sure the correct terminology is used as well
It is bigger than a few steps. I did not track all the steps but kept seeing it through to the end of the course. It happens everywhere that we later do conditional action based on the Booleans stored in arrays. For each array we made, (I think there were 3? player, platform and checkpoints), the instructions use the same wording.
Looks like we have a PR to address the few steps I mentioned earlier. We can review that and merge it in which will close this particular issue. But then I can audit the project to find the other steps and create a second PR to remove the rest
Did a search and replace for the english files and found five more files total where the change needed to be applied. Here is the PR to resolve that.


Describe your problem and how to reproduce it: Data with test cases is in wrong place in challenge template. This makes it inaccessible when tests are run and makes challenge virtually unsolvable, unless test data is manually copied to the user code. Tests in this challenge uses three arrays, containing two inputs for the function and function outcome - arrays , , . They are called this way: Those variables are currently at the end of sample solution in challenge template. Simple moving them to more appropriate place - or section in the section - as shown in the , would deal with the issue. Add a Link to the page with the problem:


All the data viz projects were created on our .rocks domain. We just need to replace the codepen URL's with the new addresses in the curriculum files of those five projects. Here's the URL's: https://bar- https://scatterplot- https://heat- https://choropleth- https://treemap- And the
Hey Just to make sure you want this replaced with https://bar- ?
I want to contribute to this project. Please assign me this task.
thank you for your interested in contributing, but this issue is not open for contributions, please look at issues with labels or


I would suggest removing the second paragraph for step 66 (as a quite novice coder I guess the wording caught me up and I thought the challenge would lean on the side of more difficult rather than easy). I re-read it quite a few times but didn't realize that it was just explaining a later step. It took me a bit of time until I realized that only the first paragraph was needed to solve the solution. I just have an issue with the wording. Nothing else. Sorry if I did something wrong. This is my first time submitting an issue request No response Device: Desktop OS: Windows Browser: Chrome Version: 10 Just had issues with the wording and was recommending it being changed. Sorry if I did something wrong. This is my first github issue request
It looks like the original intent was to describe what the function was going to be about. I think removing it all together would leave the step in a place where campers are just asked to create a new function with no clue as to why or what it does. It would be better to provide some explanation on what they will be doing in the next few steps. A rewording would be better. Something like could work I'll open it up for discussion by the other maintainers to hear thoughts on wording. You didn't do anything wrong. It is a good issue
I am going to go ahead and open this up for contribution


This endpoint needs to use jwtaccesstoken in the same way that web login does.


and are not being replaced by their values in hints: ! While in the console the actual and expected values are visible: ! To reproduce, go to any challenge that uses and/or :
Happening for me in hints for step 76:
Thank you for mentioning, but the fix has not been deployed yet.


I got a mini heart attack as I randomly tested the Storybook page of the component and found that the component failed a11y checks. <img width="1680" alt="Screenshot 2024-03-06 at 00 49 32" src=""This is because: We pass as an empty string to the component in the Storybook demo: We use the operator in the computation of the button's label, which would only fall back to if is either or : Note that this issue is only in Storybook and not in /learn as we do pass a to there: In , replace the operator with the operator In , make an empty object instead of containing empty and
I do not care much about the implementation, BUT, surely if a label of is never valid, then it is best to make the optional, and not pass one to the component? That is, I can imagine passing to a component because I do not want one, but was forced to pass one because it is not optional.
For this particular component, I agree that can be optional or can even be removed as a configuration option, since I don't think we need any customization here (the button's label should just be "Close" rather than something else). In fact, is already an optional prop of . However, has a limitation, which is that the library is not localized, so we still want to pass strings from /learn in order to have them translated. Semi-related, there was a discussion a while back regarding whether or not we should expose for consumption outside of . We decided to export the component because: The component in doesn't have a close button, but its version in /learn (which is called ) has one, so was built. (I wasn't around during the development of most of the components so I don't have the full context of the technical design) The limitation mentioned above.


Uploads: Everyday Downloads: Twice a week This should suffice our deployment targets which are usually Tuesdays? and Thursdays (optional) at around UTC+3 We can shake it up so that PRs can be merged on Mondays and Wednesdays?
So downloads should be triggered on Mondays and Wednesdays?
Yes, or a day before, for all we care. As long as they are: a week only on Mondays and Wednesdays for deployments on Tuesdays and Thursdays


Since the code is included in the URL after every change, once the user has made any code changes the back button will not work as expected as the browser history gets filled up with entries pointing to the same page but with different code in the URL. !


There's typo in two hints. Instead of element it mentions . - - This is 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.
I was making a PR for a different issue and saw this, so I the fix to the PR.


According to Google Analytics, the is way too hard, and is taking campers an average of 6 minutes and 35 seconds to finish (if they finish - a lot of them seem to give up). According to this table, campers spend more time on it than they do on the algorithm challenges. ! We need to either reword this or simplify the challenge so it can be completed in closer to 3 minutes. Otherwise, we should move it back to the algorithm section.
This challenge does have a large amount of constant strings which could cause users to take a longer time than a typical challenge. Maybe we could provide an array of the responses in the seed code. Make the seed code: This could help in two ways. The first is the users can save time by not having to type out each response. The second is this approach could minimize errors from typos in the response phrases (i.e. Hole-in-one! vs. Hole in one!). We could remove the number of different responses. Maybe remove Eagle and Double Bogey.
yes - that is a great suggestion. I think leaving all the names is fine but we should pre-populate the array with the names. Since this was your suggestion, would you be interested in tackling this and submitting a PR?
Yes, I would like to tackle this and submit a PR.
The Golf Code challenge did take me longer that the other challenges. I did not initially realize that golfScore() had BOTH strokes and par as parameters. With the other IF ELSE challenges we were only dealing with one argument to pass into the IF ELSE condition. I found myself in that "flow" and completely overlooked that two parameters were available to work with in the IF ELSE condition. I also found myself looking at the Strokes/Par table thinking, "How will IF( <= par-2) work?" After a little head scratching, I realized the values under the Strokes column were what you were supposed to compare Strokes to (i.e. IF (strokes <= par-2)). Hopefully, this feedback is helpful. I think the confusion is coming from the wording of the challenge and suddenly going from using one passed in parameter to two in your IF ELSE condition.
Awesome. has a PR open already. Could you take a look at that first and let me know what you think of his proposed changes?


I agree with MiloATH's proposed changes. Would definitely reduce the potential for typos when working the problem. As a side note, feel free to let me know if I am breaking any GitHub etiquette at any point. Zero experience providing input on collaborative projects. Looking for to learning and have really enjoyed FreeCodeCamp thus far. You guys and gals are doing awesome work. :)
Sure - we will let you know in a polite way if you break GitHub etiquette. Thanks for being receptive to feedback :)


<img width="1074" alt="Profile_freeCodeCamp_org" src="https://user-"
can I take this issue?
Thank you and for your interest. This issue might need a little more investigation before arriving at the final solution. I encourage you to find similar issues to tackle in the meantime. should I only audit the copy to replace profile with portfolio or you would rather changing the profile instances in the client and the api-server entirely?
I would like to get it assigned..
this should come as a cosmetic change to the copy only, do not change any endpoints or code (functions, objects, files) etc. It can be done to both API and the client where copy edit is needed.


<img width="927" alt="Settings_freeCodeCamp_org" src="https://user-"


This wasn't always the case, but right now the formatting for smaller screens isn't great: ! Smaller screens used to have tabs letting you switch between the instructions, editor and so on. You can see them briefly (in the gif) at medium screen sizes, but not for mobile. If we still want to support this, I can look into restoring it.
Looks like they're just hidden behind the search bar.
Thanks for reporting this, we are still figuring out the final state for the nav. Once that is settled, this issue will be resolved automatically.
This wasn't entirely resolved by , as the challenge tabs are still displaying incorrectly: !


<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. -- This is the starter code: The starter code for this challenge is strange. 1) Why the space between the function name and the ()s for the arguments? 2) I get that the idea is to have the learners change the function signature, but it is a bit strange having a mismatch between the function signatures and the function calls in the starter code.
The linked PR in this issue. For , we could probably move away from having variables in the seed code and instead assert the function returns the expected value


Challenge has an issue. This is backwards and should read: "Add two div elements inside your "col-xs-6" elements both with the class "well" - or something similar. !


Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. There seems to be a conflict between the last paragraph above the "Go to Next Challenge" button, and the first test-item below the "Reset/Help/Bug" buttons (see screenshot, below). It is not clear if the <div class="well"'s should go inside the <div class="col-xs-6"'s, or vice versa. If I were to follow ALL the directions to the letter, I'd have two <div class="col-xs-6"'s nested inside each of two <div class="well"'s, each of which is inside an outer <div class="col-xs-6". I think this is just a text-editing problem, because my code passes when I did what I expected the waypoint to be looking for: an empty <div class="well"inside each of the previously-placed <div class="col-xs-6"'s; this is included in the screenshot, as well. Also, I am fairly the text is missing a "<", where I've sloppily drawn it in on my screenshot. !
I ran into this also. The challenge validates when you follow the instructions in the explanatory text. It does not validate when you only follow the instructions in the checkpoints.


In step 12 of the Learn HTML by Building a Cat Photo App, the following two line numbers 7 & 8 exist at the start of the step: The instructions tell the user to make the text that appears inside the sentence of the element a link. The instructions do not explicitly state to remove the existing anchor element that is below the element. Instead, it just has a last sentence that says . Step 13 starts off only showing the following for line 7: The original link that appeared in step 12 is gone. In my opinion, an easy solution is to just change the last sentence in step 12 to: OR n/a n/a 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 think this instruction above is enough to tell what the end result should be
But it doesn't appear to be as this particular step comes up a lot in the forums. I agree with we need to make this a little clearer. If the intent is for the user to remove the existing link below the then I think we should tell them exactly that. Here's my attempt at making the instructions clearer: the words in the element into a link using the same value for the attribute as the link below the element. the link below the element. I thought turning this into two steps might make it a little clearer, but it can easily be two sentences instead. I'm not sure what the purpose of this step is, so my instructions may be unwittingly stepping on the goal here.
I think a better word is than in but that's nitpicking. I do fully agree changing the hint. Edit:
We're also teaching vocabulary here. I would use slightly more consistent language with the previous steps:


It looks like a lot of people on the forums and discords are confused on the syntax for this step. we could add an updated description with code example to guide campers. js " " + "string" ` 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
This has been opened 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 Happy coding
Step 63 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. Use the addition operator to concatenate a blank space " " to the beginning and end of your repeated character string. Remember that you can use the + operator to concatenate strings like this: " " + "string" This is what i got and it was accepted function padRow(rowNumber, rowCount) { return " " + (rowNumber) + " " }


Describe the bug When we accept the academic honesty policy and hover over the text, it feels like a button. The cursor should be auto. To Reproduce Steps to reproduce the behavior: to the settings page sure you have accepted academic honesty policy over "you have accepted academic honesty" button Desktop (please complete the following information): OS: Windows 10 Pro 32 Bit Pro Browser: Chrome Version: 77.0.3865.90
, we can make this button disabled, no? I tried it and it seems good, as it is a button but doesn't have to be clicked again..
Please feel free to make a PR.. Here are the lines that you probably need to touch: [ ] The panel can be a button and disabled. [ ] We would need some tests for these as well. Thanks.
Please follow our
Sure, I'll do it as soon as I can, after work.
I went ahead and created a PR for this, along with unit test. Hope it's fine.


Describe the bug When you go to a challenge and the donation modal appears a stack overflow error occurs To Reproduce Steps to reproduce the behavior: Chrome go to on the dev console error Screenshots ! Desktop (please complete the following information): OS: Ubuntu Browser Chrome Version 76.0.3809.100 (Official Build) (64-bit) Additional context Removing removes it, so presumably it's a clash between that and the modal.
You are correct, I think there could be a race condition between the two.


<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --<!-- Add a link to the coding challenge with the problem. -- <!-- Copy and paste the code from the editor that you used in between the back-ticks below: --<!-- Add a clear and concise description of what you expected to happen. --Tests should fail because the text is incorrect (it should not be surrounded by spaces or newlines). You see the hint: Also, it's quite easy to fail this challenge by having spaces or newlines around the "Camper Cafe Menu" string. It might be nice to have an additional test specifically to catch that.
The title element isn't stripped away, so I think we could query the DOM and look at the .


We have had a few campers create the wrong variable name for step 22 of pyramid project. Here is an example A few campers are wanting to call it instead of . I think a change in directions will fix this. Here is the updated description here are the updates to the first two hints js (code, /popped/); js (code, /lets+popped/); 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
This has been opened 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 Happy coding


step 68 of the platformer project doesn't provide a useful hint when the solution contains this line: Note the value given to the function is 400 not 40 as requested. The hint when you write this code says: We can probably give a more useful hint if the height property has been defined but with an incorrect value? for eg we could say: You should assign the height property . step should detect that has been defined and give a better hint when the value is incorrect. No response N/A No response


Reference URL: on espanol ! Night mode active: !
To expand: Donation component also breaks on night mode: !
<img width="1440" alt="Screen Shot 2021-02-08 at 11 02 37 PM" src="https://user-"


Describe the bug A clear and concise description of what the bug is. When navigating to the home page, the Menu and Sign In buttons in the top right corner are missing. Can not sign in to profile. To Reproduce Steps to reproduce the behavior: to '' to locate Menu & Sign In error: Missing Menu and Sign In buttons on top navbar. Expected behavior A clear and concise description of what you expected to happen. Expected to be able to sign in and continue coursework or see profile. Screenshots If applicable, add screenshots to help explain your problem. ! Desktop (please complete the following information): OS: macOS Big Sur v =11.2.3 Browser:Safari v14.0.3 Additional context I haven't actually helped on any open source project yet. I'm pretty new, but in my senior year of CS degree. I would love to work on this issue.
could you check this out on Safari? First off, thanks for letting us know about the problem! And, yes, you're very welcome to work on this issue. If you haven't already taken a look, it's worth reading our to contributing to freeCodeCamp.
I get a loader on /learn's navigation and the page itself. it seems like near 8% of users are affected. How long have you been experiencing this issue? should we have a script that detect the browser and shows a flash accordingly? "For a better experience ... <img width="1438" alt="Screen Shot 2021-04-22 at 11 03 40 AM" src="https://user-"
Sure, what did you have in mind?
Adding in a small detail, the same issue(menu button missing and learn infinite loading) is on iOS devices also and in any browser on the phone.
Hey all, this is likely my fault with: I used a lookbehind in the regex, which I believe Safari does not support: !
You can open a PR and see if it fixes it.


Hello. I noticed that the modals containing the user solution of the resolved corresponding certification challenge are not vertically scrollable when they should be so. A .modal{overflow:auto} css rule should be in the main stylesheet file of freecodecamp or the user-settings-section's one (if there is any), so modals become scrollable when they are full of text that they stretch beyond the viewport. here is a screenshot of the issue: !


Stray code is populated in the boilerplate for the Cash Register project User should have blank project to start No response All No response
I believe this was actually intentional as to show campers the correct data structure for the cid array. thoughts?
Hmm, its in there without an explanatory comment and has confused at least one user.
It looks like the boilerplate code is possibly referenced here but being more explicit would be better. we could rework this section here price: the price of the item as a floating point number. cash: the amount of cash provided by the customer for the item, which is provided via an input element on the page. cid: cash-in-drawer, a 2D array listing available currency in the cash drawer.
I think the proposed version looks good.


<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. -- <!-- Add a link to the coding challenge with the problem. --<!-- Copy and paste the code from the editor that you used in between the back-ticks below: --Code from the : <!-- Add a clear and concise description of what you expected to happen. --If the while loop is removed from the , the following should fail (if 3 or more items ), but it does not: <!-- Please complete the following information. --- Device: Laptop OS: Windows 10 Browser: Chrome Version: 96 <!-- Add any other context about the problem here. --The is only testing with 2 items to a linked list. The test should fail if a third item is and the while loop is removed from the because the third item would would be to the linked list, but it would orphan the second item. My suggestion for an improved test:
Can I take this one?


Describe the bug Functionally, there is no problem with distinguishing between normal and focus state because there is blinking cursor when on focus state. Filled fields will also be selected and highlighted with blue color when navigating with keyboard tab. Aesthetically, there is suggestion from on issue to invert the input boxes with dark background and light text in night mode. Border color change between normal and focus state also need some visual improvements because currently it is hard to see. To Reproduce Steps to reproduce the behavior: to http://localhost:8000/settings to switch between normal and focus state on input boxes with mouse click or keyboard tab to Describe the bug Expected behavior Refer to suggestion in Describe the bug Desktop (please complete the following information): OS: Windows 10 1809 Build .832 Browser Latest Chrome Version 77.0.3865.120 (Official Build) (64-bit)
i'll take this one


in the document, there is a sentence saying this: But this section is talking about assigning proofreading, it should be changed to this: here is the file here is the original issue 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.
I can take this up


I was translating of project-euler and noticed that the NOTE is a little bit weird. I checked the . The description is "Which starting number, under one million, produces the longest chain?" and "NOTE: Once the chain starts the terms are allowed to go above one million." If we change the description to "Which starting number, under the given , produces the longest chain?", should we change the NOTE? change the NOTE from "" to "Note: Once the chain starts the terms are allowed to go above ." !
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.


!
Hi, this could be resolved by removing the width of the -class. Should I do that and create a PR?
You should check locally if the fix will have any unintended side effects, of course a PR is welcome. Thanks.
I changed the to so the progress reports still align on mobile screens.


In you can see the dialogue text in night mode, but not otherwise. The issue is that the font changes colour, but the background image does not.
Ha, this explains why I didn't think there were any captions, I never looked at it in dark mode.
I had the same thought haha


The video for the lecture does not exist.
Two videos from that section are missing: "Add an Accessible Date Picker" and "Make Elements Only Visible to a Screen Reader by Using Custom CSS". It seems both videos are down on the Scrimba platform. In the , both videos seem to be missing. If this video has been uploaded elsewhere, we can replace the URL for now. Otherwise, those two videos may need to be re-uploaded. Side note: The playlists are also incorrectly named. It seems that the Applied Accessibility and Applied Visual Design titles have accidentally been switched.


Thanks for opening this issue. This looks like 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: File: Please make sure you read our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.


CSS Learn Typography/Nutrition Label: Step 31 “Create an .small-text selector and set the font-size to” the “an” should actually be an “a”. Windows 11/ Chrome browser Version 110.0.5481.78 (Official Build) (64-bit)
It helps if you use the New Issue template. ! Link to challenge: Suggested correction:
Would you like to solve this issue? Or shall I go for it? Feel free to try
iam new to opensource i love to work on this issue.
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
To solve this issue, change this line from to Here is the file 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 prolific contributors will guide you through this.


Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. Code broken: assert(editor.getValue().match(/(//)...../g), 'Create a // style comment that contains at least five letters'); Create a // style comment that contains at least five letters Should only show; Create a // style comment that contains at least five letters
Dear camper, your issue is a duplicate: Please see .


Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. Code "assert(editor.getValue().match(/(//)...../g)," appears on the left hand checklist. After completing the challenge and running the code, section completion pop-up appears, and if you try to move on to the next section, the section completion pop-up will continuously appear instead of moving on to the next section. Multi-line comments such as this do not pass the test: / hello / <img width="1440" alt="screen shot 2015-08-18 at 8 50 03 pm" src=""
Dear camper, your issue is a duplicate and already fixed: Please see .


In order to pass the test for this waypoint, the comment for the slash-start-start-slash type of commenting has to be on the same line as the first slash-star, otherwise it doesn't work. ! Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible.
Dear camper, your issue is a duplicate: Please see .


Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. Left side error checking seems wrong !
I couldn't get this to work until I entered the following: //Not hello world /(asterisk)Still not hello world(asterisk)/ Note that the /(asterisk) and (asterisk)/, apparently, have to be on the same line. Using Chrome 45.0.2454.85 on Mac OS 10.10.5.


Describe the bug If the user's code does not build there are no logs informing them of this. To Reproduce Steps to reproduce the behavior: locally, to (a); ('a'); </preinto the editor the tests that test output does not log 'a' or report any errors. Expected behavior The user should get some feedback, even if the code in the editor is broken. Perhaps just some output to the dev console, since there are various challenges that pass since they ignore the build errors. I think it should not appear in the test output area. It would be a little confusing for a new coder to get told something is wrong even though their code is passing. However, if they dig a little deeper there should be something (so they can see why their aren't working, for instance). Additional context The behaviour in production is different - it automatically fails tests (with output) if the build fails.


You can pass the test by assigning 10 to the variable after decrementing it past that value. It also doesn't seem like the... is not working. Incorrect code that is passing: Forum: Challenge: Tests:
I am happy with this being changed, but, personally, I see no issue here: The lesson teaches the operator, and that has been used. If the lesson were to give an element the text , and you did this, I would not expect you to fail the tests: Aside I might be becoming pessimistic in my teaching pedagogy, but we cannot truly expect to keep changing all these lessons forever, as more and more cases are found - there is a "good enough" point, IMO.
Yes, I believe that if a user uses the solution that stated, they know how works already, which fulfills the objective of the lesson.
I don't think your example is equivalent at all. The end value is supposed to be the result of decrementing, not just assigning a final value. Clearly, they do not if they can not decrement the starting value to the final value that is asked for. I see no reason why anyone that understands what the challenge is asking for would do that assignment. We are not just blindly looking for the operator to be used. We are looking for the value to be decremented to using the operator. An example would be a lesson where you ask someone to use a word in a sentence and they use the word incorrectly. They may have used the word but if it is used incorrectly they do not understand the word. Using it in a sentence means correctly using it, not just blindly shoving it into a sentence. I would think a test with a regex that looks for an assignment to be good enough here.
You're right, my bad. As I understand it, you want to use regex to check if an assignment is present, and if it is, fail the test? I think that would work well.
second test should be updated. Right now you can leave the initial code even though the test says it should be replaced. It should test that is not present in the code. that no assignment is used.
I see, thank you for the clarification!


Describe your problem and how to reproduce it: When you try to change contibution guidelines language - you'll see how the languages table's order is desynchronized and in several languages you cannot find new Greek language. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Chrome Browser Version: Version 74.0.3729.169 (Official Build) (64-bit) Operating System: Windows 10 Pro 1809 If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): !


<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --From CSS variable lesson, I just want to inform that IE doesn't supports as well as it's fallback value. It'd be great if your team will curate those lessons/challenges or add alternate CSS property with that. Started from lesson. Browser Name: Chrome Browser Version: 67+ Operating System: Windows 10
Thanks for raising this. Fallbacks as described in this lesson are not for older browsers that lack CSS variable support, they are for when the variable has not been defined yet, or otherwise not able to be resolved. The technique you mention of using a preceding more broadly supported CSS rule is also referred to as a fallback. Ideally, I think there should be two lessons, one describing each. whats the situation with adding additional lessons?
yes we are open to adding new lessons.
what did you have in mind for additional lessons? How about just a message in the first variable lesson that or something
In my opinion: needs corrected additional lesson should be after the lessons in screenshot below, lesson to show how to use this principle to form resilient css - ie fallback behaviour for css rules not understood by browser !
I'd like to work on this. Should I lump this all into on PR or separate it into two since part one is technically a fix while part two is a feature?
great! Looking forward to seeing what you come up with. I would say it's better to have two separate PRs, one for the fix and another for the new lesson.


I'm no language genius but I don't think the requirement is correct. I'm not sure you are supposed to use two full stops in a row after an abbreviation. Not sure if both are correct or what? ,full%20stops%20in%20a%20row Maybe don't end the sentence in an abbreviation if it makes it unclear. Or do not require two full stops. 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:
I agree that this could be unnecessarily confusing. I also believe that it is technically incorrect to end a sentence with two full stops (periods) even when the sentence ends with an abbreviated word. As I understand it (grammatically) the single full stop serves a dual purpose in this case.
Should we add comma to first full stop or any other suggestion? If yes i am happy to do so?
I suggest changing the sentence to not end with the abbreviation. I think it is more important to teach the use of a period to denote an abbreviation, than it is to teach "no two periods in a row". Maybe that could be another lesson.
I would agree with that. But I would assume that's also more work than just removing the period at the end.
Oh. Right. I completely forgot the video/audio matched the sentence. In that case, I change my suggestion to just removing the period oat the end.
This issue is open to first-time code contributors to this repository. The change you should be making is to remove the period at the end of the sentence, under the section. The file that you should be updating is Please make sure you read our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.


Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. The last line in code is: but for output box to work should be: ( replaced by )
Created PR


in step 43 of the js beta music player project, we are asked to: add an if to check if userData?.currentSong is falsey. But if you type an if like below, it is accepted even though that's not a falsey check? I also looked at the code in step 44 and the condition doesn't seem to be a general falsey check there either, so maybe this step 43's instructions should be updated to say "add an if to check if userData?.currentSong is null"? a rewrite of the instructions is needed to be clearer about not requiring a falsey check but just a check against null. No response N/A No response
iirc the tests were updated to be more accepting of conditions that would still work for the project but weren't what the user stories ask
Hmm. I am not sure this issue fits the behaviour? It is really the description that is too restrictive in this case and doesn’t match the test?
There was change from requiring to falsey Further steps still have in the seed code.
It looks like when someone tried to fix the tests to allow the falsey answer they also changed the description in reverse to make it more restrictive than it was? (That is, a falsey condition requires that many conditions like false “” null and undefined are checked, but a null check is much simpler?)
Allowing any falsy value, through type coercion, implicitly allows all falsy values. However, we are not expecting the value to be an empty string or , so allowing explicit falsy value checks that isn't wouldn't be correct. is the explicit falsy value used by the code to denote "not set" or "unset", so allowing an explicit check for that value is fine. But I don't think the test should allow for an explicit value check. I don't believe there is a code path where the property being means the same as it being . If it is , I would assume something went wrong. Not that I thoroughly looked at the code. So if anything, we should update the test to not allow an explicit check but keep the check. Edit: Just to be super clear. I understand allowing is implicitly the same as allowing any explicit falsy value check. However, when reading code, explicit value checks signals something to the reader which a implicit check does not.


So if I was reviewing the code, I would ask for an implicit falsy or an explicit check.
My confusion remains with the description. Someone sees this step’s description and posts on the forum with their code only checking for null, my first instinct is to say: hey, the instructions said check for a falsey not check for null. (This actually happened by the way which is why I opened this). Then I found out that actually the test didn’t care that the person wrote code that only checked for null. My point is this; if the test wants a null check then pls make the step ask for a null check and not a falsey check.
I assume we wanted to allow a falsy check instead of only a literal check, and in doing so we also change the written requirements to say a falsy check. I don't have an issue with removing the literal and part of the regex test. But the requirement doesn't state how the falsy check should be preformed, that is, it doesn't say it has to be an implicit coercion. So we might want to allow using as well.
I'm in the opposite camp (lasjorg's original camp?). There are other conditional points in the code flow that use an explicit check, and the property is initialised to in the code. It does not make sense to then allow a falsy condition in the step. We should revert the tests to require an explicit comparison.
I'm inclined to agree, but it is more an opinion. Strictly speaking, is used as an intentional value and other falsy values are not expected. Could you check for a by using implicit coercion? Sure. But in doing so, you are allowing potentially unexpected values to pass the check.
I will give my vote to revert the change back to a strict check. A falsy check seems too broad and allows for unexpected values.
I'm going to open this up for contribution. A PR which resolves this issue will update the instructions and tests for the linked step to require an explicit null check.
/assign
We typically do not assign issues. Instead, we accept the first pull request that comprehensively solves the issue. Issues labeled with or are open for contributions. Please make sure you read . We prioritize contributors following the instructions in our guide. Join us in or if you need help contributing - our community will be happy to assist you.


A sentence in the description is missing the word "object". It currently says: It should say: The word "object" is missing. The sentence should say, "A NodeList is an array-like object..." ! Device: MacBook Air OS: MacOS 12 Browser: Opera Version: 112.0.5197.53 No response
Would love to be assigned to this issue. I am a first-time contributor and fixing a typo seems like a great first contribution to make to freeCodeCamp! Thanks!
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.


Looking forward for reporting a security issue: Please report security issues by following our security policy: Describe the bug When using the challenge editor, upon saving changes, the confirmation alert that pops up reads: . It should instead read simply: . Affected Pages Error will appear after saving on on any challenge editor challenge. For example: (http://localhost:3300/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher). To Reproduce the challenge editor with to (http://localhost:3300) to any specific challenege. the save changes button will then produce the alert with the unformatted message. Expected behavior The alert should display: . Screenshots Currently, the alert displays like this: <img width="448" alt="broken" src=""When instead it should look like: <img width="452" alt="fixed" src=""System Device: Macbook Pro OS: Ventura 13.1 Browser: Chrome Version: 123.0.6312.59 (Official Build) (x86_64) Recommended fix or suggestions The code that handles requests for the challenge editor does not correctly handle saveRoute requests because it expects the incoming object to have the fields and . I propose a fix where we edit the route handler to check if the incoming objeect posses a field, and if so, the message directly instead of using . Additional context I will be monitoring this issue closely for the next few hours and I am ready and willing to fix this issue.
Sounds good I think we would accept this change. Feel free to make a PR.


<!-- FreeCodeCamp Issue Template --<!-- NOTE: ISSUES ARE NOT FOR CODE HELP - Ask for Help at --<!-- Please provide as much detail as possible for us to fix your issue --<!-- Remove any heading sections you did not fill out --<!-- Insert link to challenge below -- <!-- Describe below when the issue happens and how to reproduce it --In the discussion and questions concerning big-o notation, O(N^2) is referred to as "exponential time", which is wrong. O(N^C), where C is any constant greater than 1 (e.g. 2) is called "polynomial time". Exponential time looks like O(C^N), where the input variable (N) is in the exponent. Roughly speaking, the complexity class P (polynomial time solvable) is what we (or complexity theorists) consider "easy" - or at least solvable. Exponential time algorithms typically have no hope of being solved on large inputs (and therefore are good candidates for heuristics, or approximations). For a bit more intuition, an algorithm with O(N^2) complexity may not be a good candidate for real-time processing in your web app - but it may be perfectly suitable for less time critical tasks. With an algorithm like this, you might decide to pre-compute some solutions as a workaround. With an exponential time algorithm O(C^N), on the other hand, the sun may burn out before your computation ends. Concerning O(infinity) - notice the lack of an input variable (N), and that infinity isn't a number. It's probably best to replace that idea with a statement about non-terminating routines. This might lead into a discussion about the halting problem, for example.
To contributors, needs to be changed to
Hi, I would like to work on this issue.
I wonder if this lesson might need more done to it than just a simple one sentence fix. The lesson text and quiz questions map directly to the video lesson, so correcting them while the video is saying something different would probably be confusing. This text fix might need to wait until there's a video fix. Or maybe we could add an errata at the top or bottom of the lesson text until the video is corrected?
I can work on creating a new video tomorrow afternoon.


Originally reported by the editor region doesn't render when camper submits a challenge. https://user- This hide the instruction and lowerJaw, whenever this bug occurs
What browser/OS were you using to trigger this? I'm not able to replicate with either FF or Chrome on Windows/Linux. Or perhaps there is some trick to this that I'm not seeing in the video?
To be honest, I don't think this is a browser specific. she mentioned that chrome was used, my guess is that somewhere in the JavaScript files, it has if statement that stop editor region from rendering, because old PRs do account for this failing. The true solution is to findout, what changed and what isn't pleased. Otherwise, we can add , that fallback to a basic component with instruction and submit button. Or we can add another tab in the upperJaw, for instruction if editor region is It won't have editor region, but it's better than the current nothing. Sorry, I can't include all of it, but here is the discord discussion.
my user agent info (on Windows 11) User Agent is: <codeMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36</code
Here's a report on the forum with a similar issue (but on a different project) and the user had to move to their cell phone to complete the step and a recent one with the same issue but again, different project and step:
This should hopefully be fixed when gets in.
Here is a brand new report of someone having the same issue on the forum
Another report of this issue:
Usually, people can fix it by clearing the cache and closing and reopening the browser. Switching browsers also helps (likely for the same reason, fresh code). I get the feeling that this bug might not be reproducible in dev mode. It also seems like skipping steps and returning to them later is somehow involved. But I'm not sure what the exact steps are. Is there any information we can gather from people having this issue that can help debug it? Should we try sending people to this issue so we can collect information?
not reproducible. Feel free to open this issue again if it occurs.


I don't think this is completed just because we can't reliably reproduce it. It still happens, I have had it happen recently in one of the Python curriculum steps. I still have the step in the bugged state. 'm not sure it is reproducible in dev mode. 'm almost positive skipping steps, going back using the browser history (back button), and other such actions are involved. only affects a single step at a time. It is not like it happens and all your steps are broken. The one before and the next are fine. the cache is not enough you have to clear the cookies and other site data (Chrome wording). The storage (, etc.) is cleared when doing so. localStorage: Chrome bugged - and are empty Chrome working - and have content. Is there anything else I should look at? I'm almost positive if I clear the localStorage the bug will go away. But before I confirm that I will keep it as is in case someone has a suggestion for anything I should post that might help debug this. Fairly sure, the order of the event was I skipped a step forward and used the back button. But I can't really remember and I don't know if I did anything else. I suggest we keep this open to acknowledge the issue. As I suggested, it might be helpful if we gather information from people to help debug it.
Weird, I just randomly reproduced it in my test browser. Clearing the fixed it. I can do it reliably. With the dev tools open, completed the challenge, reset it, and resized the window by dragging the border. Edit: it is on this step It looks like the same bug but it is triggered by the layout change which I hadn't seen before. I'm guessing the reload when going back to the previous challenge can trigger it as well.
without your reliable way to reproduce, none of this would be possible. My findings doesn't show that submitting is necessary for the problem to appear. It's all in resetting challenge, with a twist. It's possible this is still not the original problem, but looking the same and caused by something different. Reproducing: anything in the initial contents. challenge. and are empty - invalid. This is the point when error can appear. everything still looks okay.


At this point: If anything is modified in editor contents - and are going back to normal. Crisis averted! Any action that makes editor reload (if that's right word here) results in missing editable region. This includes layout change as shown above. More code involved rundown: is reset. action is performed - and boundaries are filled from seed. prop is set to . of triggers effect is called. It changes the value (contents) of the editor , to the initial text contents. triggers of the Monaco editor. updates props of the challenge. Because the function uses the current state of the , which just had contents changed. There's no editable regions (decoration ranges) that are relevant for that at this time. Therefore is empty array. is performed, writing empty and to props for the challenge. 'm not entirely sure how's the timing for the other calls from the change effect. That effect triggers the change of . My tests suggests that is still when executes. is laying in wait.


<!-- freeCodeCamp Issue Template --<!-- Please provide as much detail as possible for us to fix your issue --<!-- Remove any heading sections you did not fill out --<!-- NOTE: If your issue is CodePen Project / Test Suite related, please open it using the below URL instead --<!-- --<!-- Insert link to challenge below -- <!-- Describe below when the issue happens and how to reproduce it --Correct solution doesn't pass. Maybe I am missing something but code does exactly what is asked in challenge description but last test doesn't pass. "When text is entered into the input element and the button is clicked, the MagicEightBall component should return a p element that contains a random element from the possibleAnswers array." - this test appears failed. <!-- Describe your workspace in which you are having issues--Browser Name, Version: Chrome, Version 64.0.3282.140 (Official Build) (64-bit) Operating System: Windows 10 Mobile, Desktop, or Tablet: Desktop <!-- If relevant, paste all of your challenge code in here --<!-- Add a screenshot of your issue --!
You have the correct solution. This should be an error with the challenge tests. I've reproduced this both in production and locally, on staging. I will start working on a fix—the PR should be opened tomorrow morning (Feb 4, EST).
I found the bug. Can I submit a PR?
customarily, you would give the original responder a day or two to propose his/her solution. I had made my intentions clear in my previous comment. Nevertheless, I've tested his solution locally and it works well.
Hey ! Thanks guys, for pitching in and reporting and fixing this. Sorry about the delay, we will review and merge soon. Happy coding!
seems fix solution doesn't pass for the challenge.
The fix has not been deployed yet, it may take us a while to get into the beta server.
Still a bug on main site. Its keeping me from passing this exercise.
I thought I was going crazy. I cannot pass this challenge even with the correct answer either.
It might be helpful for you guys so I'm reporting that the bug is still there when using safari (logged in and out). When I tried to test with Chrome it just passed.


Same with this challenge: Browser User Agent String: Mozilla/5.0 (Macintosh; Intel Mac OS X ) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Safari/605.1.15
You used the solution shows above? If so, can you confirm this? I just tested this on production and seems to work fine (at least in Chrome, Edge, and Firefox).
safari is not passing with the code in the OP, firefox does pass. It only fails the last test
Any guess why?
I'm not sure what's happening here, I tried taking a closer look at the last test (the one that always fails). And when logging the info used in the assert, it looks like it should pass.... ! ! The two conditions in the assert are true, and it still fails. The test is complex and difficult to pinpoint what the problem is, or why it only seems to be failing in safari. By lowering the timeout at the beginning of the test from 250ms to 50ms it will pass some of the time, but still fail sometimes as well. I don't know, that's where I'm at.


<!-- 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 have gone through the Guides of freeCodeCamp and I think there should be Guides on Some Static Site Generator like Hugo, Jekyll, Next, Hexo etc The guides have already which is also used to generate the static site
Hi I think it is fine to do that. If you really want to do it write, I would suggest first creating a new article on Static Site Generators that would be located at . Then, in the same PR, I would suggest moving the existing to be a sub folder of the folder you create like . Then, you contributors can create other folders/files like: However, please do a quick search of the repo to see if you can find existing articles which may already cover these. I believe I have seen some of these mentioned in detail in some existing Guide articles, so we don't want to be duplicating content if we can keep from it. In fact, before creating a PR, I suggest you document here where you find any of these and we will figure out the best strategy of how to organize everything.
Any progress on this
yeah I have gone through the guides I think the only static site generator based file in freeCodeCamp is I am working on to add more guides on static site generator like and
Take the time you need. It was just a while since any activity here so I thought I would check in.


Describe your problem and how to reproduce it: The test "Call functionWithArgs with two numbers after you define it." doesn't passes if the function call doesn't end with semi column. As in js semi columns are not required it should pass even if user doesn't add semi column Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Chrome Browser Version: latest Operating System: windows 10 If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): ! !
There has been an on and off discussion for a while about whether to enforce the use of end-of-line statement semi-colons. W FYI - This debate about semi-colons is not new to FCC. This is a debate that has been going on for a long time. See the following link how not using semi-colons could cause unexpected errors. This debate is similar to whether or not you should require { and } if there is only one statement in the code block. For example: is the same as: but FCC's current linter settings expect the { and } to be used. Both are valid JavaScript, but it is thought using { and } makes it clear especially when you have a line after like below: OR Both of the above accomplish the same thing, but reading the code could get confusing especially if indentation of the second line was accidentally written as: Someone coming from Python might thing the second line is far of the if statement block when it is not. As far as the semi-colon debate goes, I don't care which way it is done, just as long as it is consistent throughout the curriculum. Currently, there are challenges which do not require the semi-colon and some which do (which you have observed).
Well as these tutorials requires user to type regular JavaScript code. It would make sense to treat the code same as regular javascripts treats it's. If the function returns correct result. Code should pass the test.
Are you referring to semi-colons or the curly brackets now?
I have eleborate my answer. And I am taking about semicolons.
I have asked those in charge to make a final decision about this issue. Once I get some feedback, I will let you know the verdict. This decision will affect many challenges.


Hi, By any chance have they took a decision about this issue? I can confirm that this is still an issue after 3 months. When you get used to code using the standardJS style(), for example, it's not immediately obvious that the "Call function" test is not passing due to a missing semicolon. I don't mind whether you decide to keep the semicolons or let them be optional, as it comes to coding style. But a failing test should indicate the real problem, and I feel that failing a test named "Call function after you define it" when you actually called your function properly, can be confusing to new developers. Cheers, Mike
Yes, would you be interested in making the semi-colon optional for this challenge to pass the tests?
sure! Just let me get familiar with the code base and as soon as I have a better grasp, I will send the pr's for this challenge and the next one (that is under the same situation).
Any progress on this I agree that the semi-colons should be optional - If a camper is failing a challenge with valid javascript, that seems like a problem that might confuse them.