Commit Graph

66 Commits

Author SHA1 Message Date
Oliver Eyton-Williams
9fe6a46b81 feat: nicer formatting for fill in the blank challenges (#52552) 2023-12-18 23:33:20 +00:00
Tom
a31f6637d7 feat(client/curriculum): add dialogue animations (#52543) 2023-12-15 16:29:45 +01:00
Joy Shaheb
d9881d9ffa feat(curriculum): dice game project (#50819)
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
Co-authored-by: jdwilkin4 <jwilkin4@hotmail.com>
2023-12-14 20:03:20 -08:00
Eric Do
70b4044c6c feat(tools/challenge-parser): Add tests to fill-in-the-blank parser (#52451) 2023-12-07 11:18:52 -06:00
Shaun Hamilton
fb1a5ab16f fix(tools): allow long-form of language id (#52442) 2023-11-28 15:53:41 -06:00
Tom
ddc459e71e feat(client/curriculum): add upcoming english superblock and challenge types (#52201) 2023-11-09 10:08:51 +01:00
Tom
bce1b9915b feat(challenge-parser): add feedback to mc questions (#51942) 2023-11-02 08:28:53 +02:00
Krzysztof G
d7e0f59528 fix: typos in names (#51896)
Co-authored-by: Viktor Szépe <viktor@szepe.net>
2023-10-11 07:33:56 +03:00
Mrugesh Mohapatra
b5c86d4b9c feat(e2e): adding playwright and migrate landing page e2e tests (#51216)
Co-authored-by: Ahmad <57593864+Ahmadkashif@users.noreply.github.com>
Co-authored-by: Hassaan Pasha <pasha.hassaan@gmail.com>
2023-08-11 14:10:10 +05:30
Oliver Eyton-Williams
69d6ee32bf feat: python in the browser (#50913)
Co-authored-by: Beau Carnes <1513130+beaucarnes@users.noreply.github.com>
2023-07-28 07:36:25 +02:00
Oliver Eyton-Williams
b1929258c0 chore: remove remnants of comment counting code (#49704)
* chore: remove unused scripts

* chore: remove unused comment counting code

* Update tools/challenge-parser/translation-parser/index.js

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

---------

Co-authored-by: Sem Bauke <semboot699@gmail.com>
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
2023-04-13 08:47:02 -07:00
Mrugesh Mohapatra
e5590e56d7 chore: use pnpm v8 for deps (#49892)
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2023-03-29 20:18:49 +05:30
renovate[bot]
7ecf6a44bc chore(deps): update jest monorepo to v29 (major) (#49775)
* chore(deps): update jest monorepo to v29

* chore: install jest-environment-jsdom

* chore: update snapshots

* fix: update config to transform nanoid+uuid

* chore: update babel's node target

This does not seem strictly necessary, but is probably for the best.

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2023-03-21 12:37:23 +00:00
Oliver Eyton-Williams
c498c06259 fix(deps): add missing dependencies + fix knip (#49691)
* refactor: use pnpm dlx over npx

* fix: create config before running knip

* chore: fix challenge-parser dependencies

* chore: add missing client + plugin dependencies

* chore: pin deps
2023-03-13 19:38:19 +05:30
Oliver Eyton-Williams
d7848ae01a feat: migrate to pnpm for better workspace DX (#49293)
* feat: npm -> pnpm 

This resolves the issues with the gatsby client (gatsby-plugin-pnpm
deals with the fact that gatsby is relying on its own dependencies
being de-duped)
and challenge-editor (which doesn't seem to want to automatically install
codemirror and needed its own eslint config)

* fix: correct mocha path for curriculum tests

* fix: use select workspace with -F not -w

* fix: reorganise packages and restrict hoisting

pnpm works best if the workspaces keep their own dependencies, since
dependencies are not flattened and then what node resolves from a
require is predictable.

@types seem to be a special case and more care is required to prevent
them getting smushed together in the root (hence the .npmrc)

* fix: add types for tools + root

* fix: decouple challenge-auditor from client

* fix: add ui-components types

* fix(client): use the latest types for react 16

* fix: prettify

* fix: prettierignore pnpm-lock

* fix: relax hoisting

Turns out pnpm works just fine with types. I don't know what was going
wrong before, but there are no-longer any type conflicts.

* fix: add @redux-saga/core to fix eslint issue

It seems to only be redux-saga that import/named can't cope with, so it
is probably okay to work around this one.

* chore: add chai to tools/scripts/build

* fix: add store to root for cypress

* fix: allow cypress to download binaries

If we want to keep preventing cypress from downloading binaries, we can
figure out a workaround, but I'm allowing it to ease the transition to
pnpm.

My guess about why this is happening is that npm triggers Cypress's
postinstall script, but pnpm does not (because pnpm install only
installs if necessary, perferring to link)

* chore: re-enable pre/post scripts

* fix: update build scripts for client

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

* chore: update engines to use pnpm


* fix: enable choice of (super)block for tests

Only 'nix machines for now.

* chore: pin pnpm to version 7

* chore: remove last npms

Except web + curriculum-server. I'll update them when I start work on
them again.

* fix: lockfile check to catch any package-locks

* fix(action): install pnpm for upcoming tests

* chore: add nodemon to new api

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2023-03-02 18:17:44 +00:00
Sem Bauke
df53c7778c feat: integrate The Odin Project (#48617)
* feat: integrate the odin project

* feat: add assignment to markdown parser

* feat: add assignment logic

* fix: doe not always show assignment block

* fix: some other stuff

* fix: introdiction to html and css questions

* fix: remove assignments after first question

* fix: update snapshots and tests

* feat: create rest of HTML foundation course structure

* feat: meta file

* feat: add descriptions to 'html boiler plate' questions

* feat: add description for 'working with text and list items'

* fix: multiple logic issues

* fix: make linter happy

* feat: add description for 'links and images' questions

* fix: add assignments to Joi schema

* fix: tests

* fix: schema

* fix: add help category

* fix: change to possessive wording

* fix: set upcoming change to true in meta file

* fix: spell unordered and ordered correctly

* fix: switch order in meta

* fix: spell boilerplate correctly

* feat: add final project

* chore: add more tests to the final project

* fix: question spelling

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

* fix: translation

* Update client/i18n/locales/english/translations.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix: create new challenge type

* fix: get the new challenge type working and remove ol css

* fix: translation location

* fix: add challenge type to epic

* fix: set correct video

* fix: max challengeType number

* fix: spelling/grammar errors in project

* fix: check if anchor tags is empty

* Apply suggestions from code review

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* Update tools/challenge-parser/parser/plugins/add-video-question.js

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* chore: multiple suggestions

* chore: separate assignments into different plugin

* Apply suggestions from code review

Co-authored-by: Kristofer Koishigawa <scissorsneedfoodtoo@gmail.com>

* fix: dubble answer header after review

* fix: issue with Gatsby hopefully

* fix: add assignments to Gatsby's Challenge schema

* Update curriculum/schema/challengeSchema.js

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Kristofer Koishigawa <scissorsneedfoodtoo@gmail.com>
2023-01-19 14:55:26 +02:00
Oliver Eyton-Williams
3c93f73b2d refactor: better error logging (#48903)
* refactor: log full error, not .message and .stack

* refactor: improve missing comments error message
2023-01-03 11:58:42 +00:00
Oliver Eyton-Williams
36363f277d test: enable tests for steps (#44550)
* fix: handle missing solutions correctly

Rather than creating an [[]] the parser now creates [] which isEmpty().
This makes the test suite check the next challenge for a solution.

In addition, the logic for testing solutions was fixed.

* chore: update snapshots

* test: build new superblock in node.js-tests CI

* test: allow forward slash in superblock slug

* fix: borked tests oops

* test: ignore duplicated projects

* fix: i did not break these shaun did :)

* fix: idIndex is index of id not id

Co-authored-by: Nicholas Carrigan <nhcarrigan@gmail.com>
2021-12-22 12:18:06 -08:00
Oliver Eyton-Williams
6ce8738fc0 refactor: remove useless warning (#44465) 2021-12-10 14:35:46 -08:00
Tom
1c5d136add feat(client): add notes tab to project based curriculum (#44247)
* feat: add notes tab to project based curriculum

* feat: add console key to i18n

* feat: add reset to i18n

* fix: use translations in action-row

* fix: use hasEditableBoundaries as check for when to display instructions/editor-tabs

* fix: clean up notes components and use prism formatting

* feat: add notes to docs/how-to-work-on-challenges

* revert: unused code

* fix: lint errors?

* fix: lint errors

* fix: add notes to graphql schema

* fix: add notes to challenge schema

* fix: only display notes on project based

* fix: add env data back to mobile layout

* fix: prettify

* revert: notes

* fix: hide notes on mobile for non project based

* rename: switchDisplayTab -> togglePane

* revert: hasEditableBoundaries check back to projectBasedChallenge check
2021-12-09 18:42:03 +00:00
Oliver Eyton-Williams
f613a1e5fd fix: index.css/js to styles/script (#44356)
* fix: replace index with script/styles as needed

* fix: remove redundant fileKey

It's overwritten by createPoly, so the parser does not need to create it

* fix: curriculum test suite

* Update client/src/templates/Challenges/classic/MultifileEditor.js

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2021-12-03 12:32:29 -08:00
renovate[bot]
47aef5155b chore(deps): pin dependencies (#44358)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-12-02 20:48:15 +05:30
Oliver Eyton-Williams
bb0e7317c8 fix: only use parts of gfm parser 2021-12-02 19:57:47 +05:30
Oliver Eyton-Williams
03309bea9e chore: remove old package-locks 2021-12-02 19:57:47 +05:30
renovate[bot]
9dc35e4397 chore(deps): pin dependency @types/node to 16.11.7 (#44173)
* chore(deps): pin dependency @types/node to 16.11.7

* chore: install @types/node in tools

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-11-15 15:26:55 +05:30
renovate[bot]
6feeaa289b fix(deps): update dependency @types/react-dom to v17.0.11 (#44107)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-10 20:17:39 +05:30
Mrugesh Mohapatra
466f39794b chore: update all lockfiles to v2 2021-11-03 15:06:19 +05:30
Mrugesh Mohapatra
6fef483946 chore: update all packages to node v16 & npm v8 2021-11-03 15:06:19 +05:30
Oliver Eyton-Williams
c8d7f0a782 feat(tools): remove eslint-plugin-prettier for prettier (#42438)
* feat: remove eslint-plugin-prettier for prettier

This removes the annoying lint warnings when all that needs to change is
formatting

* fix: use .js lint-staged config to ignore properly

* fix: lint everything if a lot of files are changed

It's faster than making lots of individual linter calls

* chore: apply prettier

* fix: ignore code in curriculum-file-structure
2021-10-06 21:02:21 +05:30
renovate[bot]
d23d09089e chore(deps): update dependency nth-check to 2.0.1 [security] (#43509)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-30 18:09:43 +02:00
Renovate Bot
2c5ba710c3 fix(deps): update dependency react-i18next to v11.12.0 2021-09-08 20:12:09 +00:00
renovate[bot]
4950313ca0 chore(deps): update dependency remark-html to 13.0.2 [security] (#43400)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-08 13:46:01 -05:00
Shaun Hamilton
59f17f237b refactor: files{} -> challengeFiles[], and key -> fileKey (#43023)
* fix(client): fix client

* fix propType and add comment

* revert user.json prettification

* slight type refactor and payload correction

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* update ChallengeFile type imports

* add cypress test for code-storage

* update test and storage epic

* fix Shaun's tired brain's logic

* refactor with suggestions

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* update codeReset

* increate cypress timeout because firefox is slow

* remove unused import to make linter happy

* use focus on editor

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* use more specific seletor for cypress editor test

* account for silly null challengeFiles

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-08-12 20:48:28 +02:00
Oliver Eyton-Williams
e118dda13a fix: order imports and remove circular dependencies (#41824)
* fix: remove circular dependency

redux depended on templates/Challenges/redux and vice versa.  This
meant that import order mattered and confusing bugs could arise.

(cherry picked from commit 7d67a4e70922bbb3051f2f9982dcc69e240d43dc)

* feat: require imports to be in alphabetical order

Import order generally does not matter, but there are edge cases
(circular  imports and css imports, for example) where changing order
changes behaviour

(cherry picked from commit b8d1393a91ec6e068caf8e8498a5c95df68c2b2c)

* chore: order imports

* fix: lift up challenge description + title comps

This brings the classic Show closer to the others as they
now all create the description and title components

* fix: remove donation-saga/index circular import

(cherry picked from commit 51a44ca668a700786d2744feffeae4fdba5fd207)

* refactor: extract action-types from settings

(cherry picked from commit 25e26124d691c84a0d0827d41dafb761c686fadd)

* fix: lint errors

* feat: prevent useless renames
2021-08-02 08:39:40 -05:00
Huyen Nguyen
2c16234853 chore: add jest global variables (#42573) 2021-06-20 09:14:42 +02:00
renovate[bot]
94788e2719 chore(deps): update dependency unist-util-select to v3.0.4 (#42043)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-07 19:16:23 +05:30
renovate[bot]
955e6eea9d chore(deps): update dependency lodash to 4.17.21 [security] (#42032)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-06 20:24:21 +02:00
Renovate Bot
8bdc99c11f fix(deps): update dependency hast-util-to-html to v7.1.3 2021-05-03 12:28:11 +00:00
renovate[bot]
9c86ed508c fix(deps): update dependency micromark-extension-gfm-table to v0.4.3 (#41883)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-22 12:28:47 +05:30
renovate[bot]
283ed2d6ca fix(deps): update dependency micromark-extension-gfm-strikethrough to v0.6.5 (#41661)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-21 18:54:56 +05:30
Renovate Bot
5b4cb91a2a fix(deps): update dependency unist-util-remove to v2.1.0 2021-04-15 02:23:06 +00:00
renovate[bot]
f8f89149c4 fix(deps): update dependency mdast-util-gfm to v0.1.2 (#41660)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-12 18:15:06 +05:30
Renovate Bot
2eaa5d6457 fix(deps): update dependency unist-util-remove to v2.0.1 2021-03-31 20:17:24 +00:00
Randell Dawson
5bb773fcec fix(tools): Update createStepFile function in new curriculum helper script (#41693)
* feat: add parseMDSync to parser

* fix: update createStepFile function

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-03-31 18:19:46 +03:00
Renovate Bot
613fbf81ee fix(deps): update dependency unist-util-is to v4.1.0 2021-03-31 13:22:23 +00:00
Renovate Bot
30026f47c6 fix(deps): update dependency unist-util-find-all-after to v3.0.2 2021-03-31 11:58:03 +00:00
Renovate Bot
611b3b2a42 fix(deps): update dependency unist-util-find to v1.0.2 2021-03-31 07:22:21 +00:00
Renovate Bot
ae9395648f fix(deps): update dependency js-yaml to v3.14.1 2021-03-30 21:39:20 +00:00
renovate[bot]
fcf86af5b2 fix(deps): update dependency hast-util-to-html to v7.1.2 (#41647)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-29 18:14:19 +05:30
renovate[bot]
08114292c3 fix(deps): pin dependencies (#41589)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-27 20:57:57 +05:30