Candela is an open-source suite of interoperable web visualization components for Kitware's Resonant platform. Candela focuses on making scalable, rich visualizations available with a normalized API for use in real-world data science applications. Integrated components include:
- LineUp dynamic ranking by the Harvard University Visual Computing Group and the Caleydo project.
- UpSet set visualization by the Harvard University Visual Computing Group and the Caleydo project.
- OnSet set visualization by the Georgia Institute of Technology Information Interfaces Group.
- Vega visualizations by the University of Washington Interactive Data Lab.
- npm
- cairo (
brew install cairo
on Mac OSX).
git clone https://github.com/Kitware/candela.git
cd candela
npm install
npm run build
To perform a new release of Candela, please follow these steps. This assumes
that the code on master
is ready to be turned into a new release (i.e., it
passes all tests and includes all new functionality desired for the new
release). In this example, we will pretend that the new release version number
will be 1.2.0.
-
Create a new release branch, named
release-1.2.0
:git checkout -b release-1.2.0 master
-
Bump the version number to 1.2.0 by editing
package.json
. Make a commit with the commit message "Bump version number for release" and push the branch:vim package.json git commit -am 'Bump version number for release' git push -u origin release-1.2.0
-
Make a new local branch to save your spot in the commit tree here. Be sure your checkout remains on
release-1.2.0
. You can do this with:git branch save-point
-
Build the distribution files by using the "production" NPM script:
npm run build:production
This will create a
dist
directory containing two JavaScript files, a regular and a minified version. -
Commit the production files and push again.
git add dist git commit -m 'Add production files for release' git push
-
Create a pull request from the release-1.2.0 branch. Make sure you base the PR against the
release
branch, not againstmaster
. -
Wait for an "LGTM" message, and then merge the pull request and delete the release-1.2.0 branch.
-
Check out the
release
branch, pull, tag a release, push, and then delete therelease-1.2.0
branch.git checkout release git pull git tag v1.2.0 git push --tags git branch -d release-1.2.0
-
Publish the new package to NPM. You will need to log in with your NPM credentials first.
npm login npm publish
-
Merge the
save-point
branch intomaster
(do not use a fast-forward merge, since this is a special type of commit to prepare master for development with a new version number, rather than adding any new functionality), push, then deletesave-point
. Be sure you are not mergingrelease-1.2
orrelease
into master; we do not want the distribution files to enter the mainline development branch.git checkout master git merge save-point git branch -d save-point git push
This concludes the release process. You will have a new, tagged release
published, with a corresponding commit on the release
branch, while
master
will have the package version number updated, ready for further
development.
One of Candela's testing phases is image testing, in which images of visualization components are created programmatically and compared to established baseline images. These images are automatically uploaded to Kitware's Girder instance where they are catalogued by Travis build number and can be viewed by anyone.