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.
- Add the ability to run scripts on continue to address an issue where continued tutorials weren't configured correctly.
- adds a "continue" webhook
- adds a
tutorial.config.continue
that lets you runcommands
orvscodeCommands
- Improved error logging in output channel "CodeRoad (Logs)"
- Bundle size down to ~1mb
- Bundle size down to ~2mb
- Auto-launch a continued tutorial
- Add support for writing session state to a file. This is useful in multi-container environments where local storage is not necessarily preserved across sessions.
- fixes bug where CodeRoad would not run in some containerized environments due to the event origin path
- Webhook support
- Updated Settings page
- Reset tutorial button
- New env variable: CODEROAD_CONTENT_SECURITY_POLICY_EXEMPTIONS
- CodeRoad launches automatically if repo includes
codeally.json
- Resolve issues with error pages
- Include better errors for supporting Windows
- 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
- 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
- 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
- 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
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.
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
## [0.1.0]
- Initial release
## [0.2.0]
- Improvements to error handling
- Validate Git installed on startup
- Validate Git remote can connect on tutorial selection
- Fix component translation issues
## [0.2.1]
- Improves error page
- Adds tutorial dependency validation in tutorial config. See an example below:
```json
{
"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"
}
]
}
}
- 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
-
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"]
}
}
}
- Replace checkboxes with icons
- 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
- Show test fail messages in the webview UI
- Display error messages if React fails to load
- 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.
- 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
- Support VSCode 1.39.2
- Support Windows OS
- Fixes issue where app fails on startup without a workspace, and instead returns an error page