Base components in Vue for magpie-powered experiments.
First, ensure you have Node.js v16 or v18 installed.
To install this package, run npm install -g magpie-base
.
To initialize a new experiment based on magpie (after installing the package), run magpie new experiment-name
.
For more information, please visit the project homepage
The API reference for the latest version is available at reference.magpie-experiments.org.
A guided introduction to building experiments with magpie is available at magpie-experiments.org.
$ cd your-project
$ npm update magpie-base
Read more on maintaining npm dependencies.
The master
branch represents the latest release. Development of new features and pull requests happen on the develop
branch.
If a release should be done
- Review changes and determine new version number according to Semantic versioning
- Document new release in CHANGELOG.md file
- Bump package.json:version
- Commit and tag
vX.X.X
- Merge into master
- Wait for CI to complete and pass
npm publish
- Upgrade magpie in project repositories of this Github Organization
- Components should not expose CSS classes for manipulation but instead offer customization either via unstyled slots or via props.
- Pre-packaged screens are more of a convenience should be rather easy to replicate with normal userland code
- Always use camelCase for measurements
Before committing changes it is recommended to run the linter to make sure the changes adhere to the general coding style.
Run the js/vue linter using
npm run lint:fix
and the css linter using
npm run stylelint:fix
Ideally every feature should be covered by at least one unit test. Unit tests are run on every commit and pull requests, so we can quickly detect whenever a change breaks something.
Run the unit tests using
npm run test:unit
For implementing tests we're using the jest framework in combination with vue test utils.
In order to spin up a local web server with the docs run npm run docs
.
In order to build the docs run npm run docs:build
.
The contents and organization of the docs are declared in styleguide.config.js
. Each source folder should have a docs.md
file with a general introduction to the feature in said folder.
The online docs are automatically built from the latest commit of the master branch.
All Vue components must be exported in src/components/index.js
in order to be available in downstream projects without importing them.