README
Wizard
Note: this is a "labs" component. While functional, these tasks are prerequisites to promotion to BrightspaceUI "official" status:
- Design organization buy-in
- design.d2l entry
- Architectural sign-off
- Continuous integration
- Cross-browser testing
- Unit tests (if applicable)
- Accessibility tests
- Visual diff tests
- Localization with Serge (if applicable)
- Demo page
- README documentation
For further information on this and other components, refer to The Brightspace UI Guide.
Installation
To install from NPM:
npm install @brightspace-ui-labs/wizard
Usage
Include the webcomponents.js polyfill loader (for browsers who don't natively support web components), then include necessary components:
<head>
<script src="@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
<script type="module" src="@brightspace-ui-labs/wizard/d2l-wizard.js"></script>
<script type="module" src="@brightspace-ui-labs/wizard/d2l-step.js"></script>
</head>
Basic Usage
Add the component to your page
<d2l-labs-wizard id="wizard">
<d2l-labs-step title="Step 1">
<p> First step </p>
</d2l-labs-step>
<d2l-labs-step title="Step 2">
<p> Second step </p>
</d2l-labs-step>
</d2l-labs-wizard>
<script>
var wizard = document.getElementById('wizard');
wizard.addEventListener('stepper-next', function() {
wizard.next();
});
wizard.addEventListener('stepper-restart', function() {
wizard.restart();
});
</script>
Developing, Testing and Contributing
After cloning the repo, run npm install to install dependencies.
To run the app and view the demo page:
npm run start
To lint (eslint and Polymer lint):
npm run lint
To lint AND run local unit tests:
npm run test
Versioning & Releasing
TL;DR: Commits prefixed with
fix:andfeat:will trigger patch and minor releases when merged tomaster. Read on for more details...
The sematic-release GitHub Action is called from the release.yml GitHub Action workflow to handle version changes and releasing.
Version Changes
All version changes should obey semantic versioning rules:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
The next version number will be determined from the commit messages since the previous release. Our semantic-release configuration uses the Angular convention when analyzing commits:
- Commits which are prefixed with
fix:orperf:will trigger apatchrelease. Example:fix: validate input before using - Commits which are prefixed with
feat:will trigger aminorrelease. Example:feat: add toggle() method - To trigger a MAJOR release, include
BREAKING CHANGE:with a space or two newlines in the footer of the commit message - Other suggested prefixes which will NOT trigger a release:
build:,ci:,docs:,style:,refactor:andtest:. Example:docs: adding README for new component
To revert a change, add the revert: prefix to the original commit message. This will cause the reverted change to be omitted from the release notes. Example: revert: fix: validate input before using.
Releases
When a release is triggered, it will:
- Update the version in
package.json - Tag the commit
- Create a GitHub release (including release notes)
- Deploy a new package to NPM
Releasing from Maintenance Branches
Occasionally you'll want to backport a feature or bug fix to an older release. semantic-release refers to these as maintenance branches.
Maintenance branch names should be of the form: +([0-9])?(.{+([0-9]),x}).x.
Regular expressions are complicated, but this essentially means branch names should look like:
1.15.xfor patch releases on top of the1.15release (after version1.16exists)2.xfor feature releases on top of the2release (after version3exists)