Skip to content

refactor: top-down curriculum build#61459

Merged
ojeytonwilliams merged 66 commits intofreeCodeCamp:mainfrom
ojeytonwilliams:refactor/curriculum-build
Aug 26, 2025
Merged

refactor: top-down curriculum build#61459
ojeytonwilliams merged 66 commits intofreeCodeCamp:mainfrom
ojeytonwilliams:refactor/curriculum-build

Conversation

@ojeytonwilliams
Copy link
Copy Markdown
Contributor

@ojeytonwilliams ojeytonwilliams commented Jul 24, 2025

Checklist:

This modifies the curriculum build process so that it no longer relies on the folder structure to determine what a superblock is. Instead the curriculum is defined via a single JSON file as are each of the superblocks and each block. Each contains a reference to their children, so they're easy to compose.

The upshot of this is that we will be able to reuse blocks by simply including a reference to them in more than one superblocks. In the future it should be relatively easy to extend this so we can reuse superblocks to create independent curricula, but not yet.

TODO (not exhaustive!)

  • handle the i18n curricula
  • reinstate some of the deleted validation
  • handle upcoming changes

@github-actions github-actions bot added the scope: curriculum Lessons, Challenges, Projects and other Curricular Content in curriculum directory. label Jul 24, 2025
@ojeytonwilliams ojeytonwilliams force-pushed the refactor/curriculum-build branch 3 times, most recently from a597096 to 5819636 Compare July 28, 2025 16:24
@github-actions github-actions bot added the platform: learn UI side of the client application that needs familiarity with React, Gatsby etc. label Jul 28, 2025
@ojeytonwilliams ojeytonwilliams force-pushed the refactor/curriculum-build branch 6 times, most recently from 9d5ad5d to 715b0c1 Compare August 1, 2025 10:41
@ojeytonwilliams ojeytonwilliams force-pushed the refactor/curriculum-build branch from 7d3e128 to d4ba500 Compare August 1, 2025 15:53
@ojeytonwilliams ojeytonwilliams marked this pull request as ready for review August 1, 2025 15:53
@ojeytonwilliams ojeytonwilliams requested review from a team August 1, 2025 15:53
@ojeytonwilliams ojeytonwilliams added status: waiting review To be applied to PR's that are ready for QA, especially when additional review is pending. DO NOT MERGE! labels Aug 1, 2025
@ojeytonwilliams
Copy link
Copy Markdown
Contributor Author

It's very important NOT to merge this prematurely. As it stands there may be missing or out of date challenges. Also, this comes into conflict with main after any curriculum change.

That said, it is ready for review.

@ojeytonwilliams
Copy link
Copy Markdown
Contributor Author

Oh, there is one thing: the Odin project license. I wasn't sure where to put it. @Sembauke could you tell me where it belongs now that there isn't a superblock folder for it to live in?

@majestic-owl448 majestic-owl448 added the MERGE CONFLICT! To be applied to PR's that have a merge conflict and need updating label Aug 4, 2025
@raisedadead raisedadead removed the status: waiting review To be applied to PR's that are ready for QA, especially when additional review is pending. label Aug 6, 2025
@ojeytonwilliams ojeytonwilliams force-pushed the refactor/curriculum-build branch from 9e84151 to ea31cc9 Compare August 6, 2025 10:15
@socket-security
Copy link
Copy Markdown

socket-security bot commented Aug 6, 2025

No dependency changes detected. Learn more about Socket for GitHub.

👍 No dependency changes detected in pull request

@ojeytonwilliams
Copy link
Copy Markdown
Contributor Author

Since I'm already moving them, I've renamed the challenge files so their filename is their challenge id. The inconsistency wasn't great and it made it much harder to find challenges by their id while building.

@ojeytonwilliams ojeytonwilliams added status: waiting review To be applied to PR's that are ready for QA, especially when additional review is pending. and removed MERGE CONFLICT! To be applied to PR's that have a merge conflict and need updating labels Aug 11, 2025
@ojeytonwilliams ojeytonwilliams force-pushed the refactor/curriculum-build branch from 8456965 to aa23400 Compare August 25, 2025 15:47
@Sembauke Sembauke removed the MERGE CONFLICT! To be applied to PR's that have a merge conflict and need updating label Aug 25, 2025
@ojeytonwilliams ojeytonwilliams merged commit a801d50 into freeCodeCamp:main Aug 26, 2025
21 of 27 checks passed
@ojeytonwilliams ojeytonwilliams deleted the refactor/curriculum-build branch August 26, 2025 10:37
Sky-walkerX pushed a commit to Sky-walkerX/freeCodeCamp that referenced this pull request Sep 5, 2025
ahmaxed pushed a commit to ojeytonwilliams/freeCodeCamp that referenced this pull request Sep 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

platform: learn UI side of the client application that needs familiarity with React, Gatsby etc. scope: curriculum Lessons, Challenges, Projects and other Curricular Content in curriculum directory. status: waiting review To be applied to PR's that are ready for QA, especially when additional review is pending.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants