All notable changes to the "coderoad-vscode" extension will be documented in this file.
Check Keep a Changelog for recommendations on how to structure this file.
- Initial release
- Improvements to error handling
- Validate Git installed on startup
- Validate Git remote can connect on tutorial selection
- Fix component translation issues
- Improves error page
- Adds tutorial dependency validation in tutorial config. See an example below:
{
"config": {
"dependencies": [
{
"name": "node", // command line process to run
"version": "^10", // see node-semver for options
"message": "An optional message to display if the validation fails"
},
{
"name": "npm",
"version": ">=5"
}
]
}
}
- Fixes issue where app fails on startup without a workspace, and instead returns an error page
- Support Windows OS
- Support VSCode 1.39.2
- Validate the extension version against the tutorial config version. This should allow us to manage breaking changes in tutorial schema in upcoming versions. See node-semver for possible version ranges and options.
{
"config": {
"appVersions": {
"vscode": ">=0.2"
},
}
- Configure the CodeRoad to load and run in a different directory. The example below will:
- load a commit and run npm install to setup the test runner in its own folder.
- run "npm test" in the $ROOT/coderoad directory on save
{
"config": {
"testRunner": {
"command": "npm test", // runs in path location or root
"path": "coderoad",
"actions": {
"commits": ["a974aea"],
"commands": ["npm install"] // runs in path location or root
}
},
}
Resulting in a folder structure like the following:
- .vscode
- coderoad (test runner files only with their own setup)
- package.json
- tests
- package.json
- server.js
- Want to look back at a previous lesson's content? Navigate through text content from previous levels by clicking the "Learn" dropdown.
- Continue an incomplete tutorial started in the same workspace. Choose the "continue" path from the start screen. Progress is stored in local storage in the workspace.
- Show test fail messages in the webview UI
- Display error messages if React fails to load
- New configuration environment variables for web compatability
CODEROAD_DISABLE_RUN_ON_SAVE=true // blocks saving on file system changes
CODEROAD_DISPLAY_RUN_TEST_BUTTON=true // adds a run test button to tutorial page
CODEROAD_TUTORIAL_URL='path/to/tutorial_config_file.json' // will load directly into tutorial
- Improves styles for inline code blocks
- Replace checkboxes with icons
-
Style fixes for tables & bold markdown
-
Support loading subtasks (#340). Subtasks are a list of tests that need to pass before a task is complete. They can be loaded by:
- filtering down to a subset of tests by setting the
step.setup.filter
to a regex pattern that matches the tests you're targeting - setting the
step.setup.subtasks
variable to true
- Change for the test runner config. Changes are backwards compatible.
testRunner.path
=>testRunner.directory
testRunner.actions
=>testRunner.setup
- Change command to capture
args
for "TAP" support, and test "filter"ing support. These changes will help lead to specific test suite presets in the future.
{
"testRunner": {
"command": "mocha",
"args": {
"filter": "--grep",
"tap": "--reporter=mocha-tap-reporter"
},
"directory": ".coderoad",
"setup": {
"commits": ["410bd4f"],
"commands": ["npm install"]
}
}
}
- Support Python with using tap.py
- Fix paragraph spacing
- Support hints - clues that reveal on click to help guide users. Hints can be added to a step, see an example below.
### 1.1
A description of the task.
#### HINTS
- The first hint
- The second hint
- The last hint
Change subtask format to include subtasks in markdown.
Subtasks no longer need to be included in yaml, or require a filter.
See an example at http://github.com/shmck/coderoad-tutorial-subtask-demo
### 1.1
A description of the task
#### SUBTASKS
- The first subtask
- The second subtask
Subtasks are then matched up with tests with names that match
SUBTASK 1.1 :1 test name
SUBTASK 1.2 :2 test name
UI redesign for the tutorial page:
- removes unnecessary headers
- adds a side panel
- step progress indicator
- removes logs from error messges
Supports "reset button" for resetting state & running a reset script.
Adds a review page for viewing tutorial content. The review page should be especially helpful for tutorial creators.
- Improved UI for continue
- show overall level progress
- popup on level completion
- Hotkey support for:
- running tests (ctrl + enter)
- continue (ctrl + enter)
- Fix scroll to bottom on next level
- Add a scroll indicator when content is too long
- Change completion page to a banner that prompts the user to open a new workspace
- On launch, show details on tutorial to continue
- Adds an "About" section to the tutorial side menu
- Run test indicator
- Various style & UX fixes
- Launch from URL fixes
- Move styles into a central theme
- Prevent multiple versions of CodeRoad from launching
- BREAKING CHANGE:
config.testRunner.setup
is nowconfig.setup
config.setup
runs in the root workspace directory, not theconfig.testRunner.directory
- Significant internal refactor to:
- remove recording progress
- simplify structure with "hooks"
- Supports commands on reset
- Supports running vscode commands anywhere that command line commands can be run
- Admin mode to allow creators to jump between tutorial levels/steps during development
- Add logo to vscode marketplace
- Fixes
- issue with watcher tests running on reset
- issue with some commits loading multiple times on continue
- issue with task progress not displaying correctly