- Throw error when running from shallow clone.
- Improve error messages for when build-storybook fails.
- Add support for
pull_request_target
andpull_request_review
events to GitHub Action.
- Retrieve branch name using more modern git commands, if available.
- Auto-detect buildScriptName from available scripts.
- Improve various log messages.
- Keep track of baselines when doing squash or rebase merges.
- If the build directory we defined is empty, try to detect the actual build output directory from the Storybook build log and warn about it.
- Show a user-friendly error message if we still don't find any Storybook files to publish.
- We now read package.json using
pkgUp
, so theoretically you can runchromatic
from a subdirectory. - Added the
--output-dir (-o)
flag to use instead of a temp dir. - Added
buildScript
to the error json output so we won't have to ask for it in support every time. - Added a global promise rejection handler, in case we accidently forget to catch them.
- Added a user-friendly error message when build-storybook fails.
- Fixed the
--debug
flag so it actually prints something. - Fixed the
--only
flag. - Fixed issue with
node-loggly-bulk
when using Yarn 2.
- Completely overhauled the CLI, with improved UX and better error handling
- Removed JSDOM and its shims to avoid a whole category of issues with broken builds
- Added a version upgrade check that warns when a new major update is available
- Added --junit-report to generating build reports for integration with other tools
- Changed --only to accept a simple glob
- Moved documentation to the Chromatic website
- Replace child_process.execSync with execa
- ADD mock for execCommand in JSDOM
- REMOVE node_env development chromaui#81
- ADD ability to create a patch build for pull requests
- ADD extra parameters to upload chromaui#107
- IMPROVE readability of error message from build-storybook chromaui#112
- IMPROVE user experience during onboarding
- RENAME appCode to projectToken chromaui#109
- REMOVE adding a environment variable when adding script, use cli flag instead chromaui#105
- FIX version of JSDOM to 16.1 as 16.2 includes a conflicting custom element support chromaui#95
- FIX setting the
fromCI
flag from our github action https://github.com/chromaui/action/issues/14
- CHANGE so the CLI stop on storybook runtime errors chromaui#75
- ADD a flag (
--allow-console-errors
) to continue on storybook runtime errors chromaui#75 - ADD early warning system for if the storybook output folder is empty chromaui#78
- IMPROVE readability of the error when build-storybook fails chromaui#73
- IMPROVE readability of the error when storybook runtime throws an error chromaui#73
- FIX
Intl.PluralRules.supportedLocalesOf is not a function
error chromaui#76
- FIX pubish script
- IMPROVE logging when git fails
- FIX script for windows
- ADD
--exit-once-uploaded
flag - FIX escape chararacters in error messages
- ADD jsdom shim for SVG elements
- ADD jsdom shim for fetch
- Bugfix jsdom shim for Intl
- ADD compatibility with github action
- ADD test with github action
- ADD compatibility with github env vars for tracing git branch
- Bugfix running on windows by using cross-spawn
- ADD licence file
- Bugfix compatibility with CHROMA_APP_CODE
- Bugfix report list of addons
- ADD chroma bin
- Bugfix indentation of messages in terminal
- REMOVE the need for the clientside addon
- unify the 2 related packages into a single repository
- Bugfix for compatibility with localtunnel`
-
Add support for docs-mode (Storybook 5.2 feature).
-
Add support for a new parameter:
pauseAnimationsAtEnd
. Read about it here: https://www.chromatic.com/docs/animations -
Retry requests to uploading storybooks in case of network problems.
- Upgrade
axios
dependency for security update
- Add a
--skip
flag to indicate a commit is not going to be built (and still tag the PR as passing). - Allow
chromatic
story parameters to be functions of({ id, kind name })
-- in particular e.g.chromatic: { viewport: () => [/*something dynamic based on story info */]}
- A fix for issues involving story listings differing between browsers.
-
We now default to building and uploading your storybook, rather than starting and tunneling it. This has many benefits including increased reliability and better support for Live View. You'll need to ensure you have a
build-storybook
script defined inpackage.json
(as added by the Storybook CLI). To get the old behaviour, pass-s
to thechromatic test
command. -
We now support HTTPS storybooks (using the
--ssl
flag and friends). -
We polyfill
window.Intl
in our JSDOM environment. -
We polyfill
window.customElements
in our JSDOM environment.
- Retry requests to the API server if one fails rather than bailing out on builds.
- Fixed issue with uploaded builds and Storybook 5 URLs.
-
Added a new
diffThreshold
Storybook parameter you can use to control the anti-aliasing threshold we use for diffing if you find that certain images are tripping our diff. -
Fix an issue with handling rebased branches in unusual CI systems.
- Add a dedicated endpoint for
isChromatic
so you don't need to load our full package to use it (which is useful if you want to use it inside your app, which we generally don't advise).
-
Change the default behaviour around starting the storybook; if we find something running on the port, we assume it's your storybook, instead of requiring you to pass
-S/--do-not-start
. -
Add a new flag
--preserve-missing
which means any stories that are missing from the last build will be assumed to be unchanged. Use this if you are doing tricky things around dynamically building your Storybook based on code changes.
- Fix an issue with Angular/zone.js failing to patch our
MutationObserver
mock
-
Fix an issue with using
isChromatic()
inside Jest (storyshots). -
Some rendering timing fixes to better support Storybook version 5
-
Added an export
isChromatic()
to determine if code is running under test. -
Added JSDOM mocks for
CreateObjectUrl
andMutationObserver
-
Added a parameter
{ chromatic: { disable: true } }
to skip a story in chromatic -
Added a parameter
{ chromatic: { noScroll: true } }
to avoid scrolling screenshots in (non-chrome) browsers.
- Allow overwriting the polyfills we create in JSDOM mode. (This is a bugfix for some libraries that bundle their own polyfills).
-
Allow controlling package initialization timing via
import configure from 'storybook-chromatic/configure'; configure()
-
Add a flag
--ignore-last-build-on-branch=X
to not use the last build on a branch no matter what (which helps with rebasing, see: http://docs.chromaticqa.com/branching-and-baselines#rebasing).
- Update logging dependency from
loggly
tonode-loggly-bulk
due to security vulnerabilities. NOTE: this package was only used by our CLI tool and so there is no need for concern, but this new version should avoid tripping security tools.
-
Pass
chromatic
parameters from Storybook@4, supporting:- Viewports: http://docs.chromaticqa.com/viewports
- Delay: http://docs.chromaticqa.com/delay
-
Better logging from the package to allow us to debug build problems.
-
Fix regression for node v6
-
Fix for supporting stories that use Canvas APIs in JSDOM
-
Fix to work on Windows CI
-
Added a
--storybook-build-dir
parameter that allows you to upload a pre-built storybook.
- Fix a bug with Live View and [email protected]
-
We now set the
CHROMATIC_APP_CODE
variable for you, with explicit instructions to remove it (and set via CI) in less secure applications. -
Some small bugfixes to support unusual usages.
-
Renamed the package from
react-chromatic
tostorybook-chromatic
, to indicate support for all view layers that Storybook supports! -
Tweaked to focus soley on Storybook -- simply
import 'storybook-chromatic';
(no/storybook-addon
required). Run tests withchromatic test --app-code
(no--storybook-addon
required). -
Changed some URL parameters for the test command:
--port
renamed--storybook-port
--url
renamed--storybook-url
--app-path
removed (it's always/iframe.html
, as per Storybook).--exec
added to run arbitrary commands as an alternative to--script-name
--no-interactive
added to disable interactive mode (and we do so automatically when on CI)
-
We no longer require you to have npm installed if you are using yarn.
-
Small bug fixes for missing git repositories, various failure modes.
-
We now track your Storybook version and view layer so we know when to ship/change features.
- Fix an issue for stories that use
navigator.mimeTypes
- Fix a bug where sometimes the package did not detect the checked out branch.
-
Better support for rebasing branches - we now always treat the last build on this branch as a baseline, even if strictly it is not a git ancestor of the current commit. This helps deal with the situation where you rebase a branch off master, and still want to use the previously approved snapshots.
-
Improved support for CI systems, especially Netlify and Travis PR builds. Travis PR builds are a special case, read more about how to handle them in Chromatic here: https://www.chromatic.com/docs/ci#travis
- Fix a small bug in the git algorithm for old Chromatic projects.
-
Reworked the git baseline detection algorithm to use a different technique that should be more reliable across many different modes of usage.
-
Gather stories from Storybook 3.4 without requiring direct installation.
-
Added
--auto-accept-changes
to avoid approvals on certain branches -
Added
--only
flag to run a single story
-
Handle the case where the last few Chromatic builds were run against commits which are no longer in the repository (due to rebasing or squashing). This could cause the tool to crash or fail to find a baseline for a build.
-
Add a
--url
argument to allow running tests against arbitrary running apps.
- Small API change for querying build change counts.
- Our test script now warns you if your Storybook logs any errors. This can sometimes help reveal subtle problems that are caused by the script evaluating your Storybook in JSDOM. If you have legitimate things logged to
console.error
this may cause noise---you should probably get rid of them.
-
We no longer write your app code to your
package.json
by default; instead we prefer you pass it via theCHROMATIC_APP_CODE
environment variable. (You can still optionally use--app-code=xyz
if you are comfortable with the security of yourpackage.json
). -
We now show the final part of your Story's kind as the component name in the Chromatic UI. So "Webapp/UserList" will appear in Chromatic as "UserList".
- This version sends us a little more information about the environment the package runs in -- is it CI? which package version?
- Fix an issue where we did not pass the context to stories in the right format.
- We detect a running process on your app's port and don't try and start the app if so. Pass
--do-not-start
if you've already started the app.
- We now upload your application bundle to our tunnel server directly from the package. This means that on slower uplinks, we no need to set arbitrary timeouts in our server process; instead we simply will not start your Chromatic build until we've verified the bundle has uploaded successfully.