Bot releases are hidden (Show)
Published by onigoetz almost 3 years ago
We updated the list of supported browsers to the following: Edge >= 18, Safari >= 13, iOS >= 13, Chrome >= 77, and_chr >= 77, Firefox >= 69
Before this change it was : > 0.25%, Edge >= 17, Safari >= 11, iOS >= 11, Chrome >= 66, Firefox >= 60, IE >= 11, not op_mini all
You can still change this in your projects if you wish to have a larger or narrower browser support using the browsers
field in crafty.config.js
, more details In the docs
ESLint 8 was released a few weeks ago, we updated Crafty to support it along with all the related plugins.
eslint 7.32.0 to 8.1.0
eslint-webpack-plugin 3.0.1 to 3.1.0
gulp-eslint7 replaced with gulp-eslint-new
@typescript-eslint/* 5.0.0 to 5.2.0
@rollup/plugin-node-resolve 13.0.5 to 13.0.6
@swc/core 1.2.95 to 1.2.103
@swc/jest 0.2.4 to 0.2.5
babel-plugin-istanbul 6.0.0 to 6.1.1
babel-loader to 8.2.2 to 8.2.3
browserslist 4.17.3 to 4.17.5
fork-ts-checker-webpack-plugin 6.3.4 to 6.4.0
jest 27.2.5 to 27.3.1
mini-css-extract-plugin 2.4.2 to 2.4.3
postcss-loader 6.1.1 to 6.2.0
style-loader 6.1.1 to 6.2.0
ts-jest 27.0.5 to 27.0.7
rollup 2.58.0 to 2.58.3
webpack 5.58.2 to 5.60.0
Published by onigoetz almost 3 years ago
Published by onigoetz about 3 years ago
Full Changelog: https://github.com/swissquote/crafty/compare/v1.16.1...v1.16.3
Published by onigoetz about 3 years ago
This release is broken, don't try to install
Published by onigoetz about 3 years ago
@swissquote/crafty-preset-typescript
Some dependencies of @swissquote/crafty-preset-typescript
are compiled in a single bundle.
We use NCC to bundle the plugins. This also reduces the dependencies of this package.
Fixes #1279
Full Changelog: https://github.com/swissquote/crafty/compare/v1.16.0...v1.16.1
Published by onigoetz about 3 years ago
babel-eslint
with @babel/eslint-parser
postcss-color-function
with postcss-color-mod-function
@squoosh/lib
Replace Webpack 4 with Webpack 5, also updating all related loaders and plugins.
New output style, as Webpack 5 provides more information on build.
This release comes with TypeScript 4.4, with a big list of improvements that you can find in the release notes
Most plugins in @swissquote/babel-preset-swissquote
are compiled in a single bundle.
We use NCC to bundle the plugins. This also reduces the dependencies of this package.
Most plugins in @swissquote/postcss-swissquote-preset
are compiled in a single bundle.
We use NCC to bundle the plugins. This also reduces the dependencies of this package.
babel-eslint
with @babel/eslint-parser
babel-eslint
has been replaced by @babel/eslint-parser
as babel-eslint
is unmaintained.
postcss-color-function
with postcss-color-mod-function
postcss-color-function
which provides the color()
function. This function has been renamed to color-mod()
in the CSS Specification. postcss-color-mod-function
provides color-mod()
.
Although both functions have been removed from the specification, we believe in backwards compatibility and will consider removing them in Crafty V2 but not before.
@squoosh/lib
The previous version introduced an embedded webassembly version of the image compression. This is now replaced by an external library. Also adds support for AVIF, Webp2 and JXL.
Better integration of external helpers in the SWC Rollup plugin.
@babel/* 7.14.0 → 7.15.5
eslint 7.28.0 → 7.32.0
jest 27.0.4 → 27.2.4
typescript 4.3.2 → 4.4.3
webpack 4.46.0 → 5.57.1
@rollup/plugin-commonjs 19.0.0 → 21.0.0
@rollup/plugin-node-resolve 13.0.0 → 13.0.5
@rollup/plugin-replace 2.4.2 → 3.0.0
@squoosh/lib 0.4.0
@swc/core 1.2.59 → 1.2.93
@swc/helpers 0.2.12 → 0.2.13
@swc/jest 0.1.2 → 0.2.4
@typescript-eslint/* 4.26.0 → 4.33.0
autoprefixer 9.8.7 → 9.8.8
babel-preset-jest 27.0.1 → 27.2.0
browserslist 4.16.6 → 4.17.3
camelcase-keys 6.2.2 → 7.0.1
chokidar 3.5.1 → 3.5.2
enhanced-resolve 5.8.2 → 5.8.3
eslint-import-resolver-typescript 2.4.0 → 2.5.0
eslint-plugin-import 2.23.4 → 2.24.2
eslint-plugin-prettier 3.4.0 → 3.4.1
eslint-plugin-react 7.24.0 → 7.26.1
eslint-plugin-sonarjs 0.8.0 → 0.10.0
eslint-webpack-plugin 2.5.4 → 3.0.1
fork-ts-checker-webpack-plugin 6.2.10 → 6.3.3
gulp-eslint7 0.3.1 → 0.3.2
gulp-svgmin 3.0.0 → 4.0.1
gulp-terser 2.0.1 → 2.1.0
is-glob 4.0.1 → 4.0.3
postcss 7.0.35 → 7.0.39
rollup 2.51.0 → 2.58.0
stylelint-no-unsupported-browser-features 5.0.1 → 5.0.2
stylelint-scss 3.19.0 → 3.21.0
swc-loader 0.1.14 → 0.1.15
terser-webpack-plugin 4.2.3 → 5.2.4
ts-jest 27.0.2 → 27.0.5
webpack-dev-server 3.11.2 → 4.3.1
webpack-merge 5.7.3 → 5.8.0
yargs-parser 20.2.7 → 20.2.9
Published by onigoetz over 3 years ago
Jest 27 is out, I'll invite you to read the release blog post to read more about it.
One thing that changes for Crafty users is that by default the test environment is changed from jsdom
to node
If you have tests involving DOM elements, I'll invite you to change the following configuration in your crafty.config.js
to get the previous behaviour:
jest(crafty, options) {
options.testEnvironment = "jsdom";
}
The jsdom environment is heavier to start than the node environment, thus if you don't specifically need it, the new default should make your tests run faster.
TypeScript 4.3 is out, a few new features on this one
Check their release notes for the details
Node 10 is out of support, some of our dependencies dropped its support which encouraged us to drop it as well.
Crafty is now tested and works on Node 12, 14 and 16
swc is a typescript / javascript compiler. It is similar to Babel but written in Rust, and is ~20x faster than babel on single thread.
swc also supports compiling TypeScript, but this feature isn't implemented in Crafty yet.
Today you can use @swissquote/crafty-preset-swc
to replace @swissquote/crafty-preset-babel
it works with the Webpack, Rollup and Gulp runners.
A mostly internal change, eslint-loader was replaced with eslint-webpack-plugin. It now leverages ESLint's cache and lints only changed files.
Published by onigoetz over 3 years ago
The patch stopped working with a recent update to ESLint, this version fixes it in a more reliable way for future updates
The imagemin module used to download binaries (mozjpeg, oxipng, gifsicle) but they didn't work behind a corporate proxy. They were now replaced by a webassembly version that is bundled with the module and removed 140 dependencies. This adds support for webp images
Fix ignored paths from node_modules, they were processed incorrectly and we improved the performance in the process
We updated TypeScript from 4.0 to 4.2
Changelogs from these versions are available here
Jest 26.6.3
@babel/* 7.13.8
eslint 7.21.0
stylelint 13.12.0
webpack 4.46.0
typescript 4.2.3
oao 2.0.1
write-good 1.0.8
@rollup/plugin-babel 5.3.0
@rollup/plugin-commonjs 17.1.0
@rollup/plugin-node-resolve 11.2.0
@rollup/plugin-replace 2.4.1
rollup 2.40.0
babel-loader 8.2.2
babel-preset-jest 26.6.2
gulp-sourcemaps 3.0.0
gulp-terser 2.0.1
css-loader 5.1.1
mini-css-extract-plugin 1.3.9
fork-ts-checker-webpack-plugin 6.1.1
rollup-plugin-typescript2 0.30.0
ts-jest 26.5.3
ts-loader 8.0.17
case-sensitive-webpack-plugin 2.4.0
inspectpack 4.6.1
webpack-bundle-analyzer 4.0.0
webpack-dev-server 3.11.2
webpack-merge 5.7.3
browserslist 4.16.3
enhanced-resolve 5.7.0
@typescript-eslint/* 4.16.1
eslint-config-prettier 8.1.0
eslint-import-resolver-typescript 2.4.0
eslint-plugin-prettier 3.3.1
eslint-plugin-react 7.22.0
eslint-plugin-sonarjs 0.6.0
stylelint-no-unsupported-browser-feature 4.1.4
stylelint-prettier 1.2.0
stylelint-scss 3.19.0
replaced "merge" with "merge-anything" and "copy-anything"
Published by onigoetz almost 4 years ago
A change in ESLint 7.12.0 broke the patch for module resolution, this dependency is transitive and comes in some cases when using eslint through the gulp runner.
This fix makes it work again for versions 7.12 and future versions of ESLint
Published by onigoetz almost 4 years ago
Release failed, please ignore
Published by onigoetz about 4 years ago
Published by onigoetz about 4 years ago
Published by onigoetz about 4 years ago
Published by onigoetz about 4 years ago
Fix runtime detection in babel configuration in case the package doesn't have dependencies
Published by onigoetz about 4 years ago
Please ignore this
Published by onigoetz about 4 years ago
crafty-preset-react
.@babel/runtime
as an external dependency to reduce bundle sizes.@swissquote/rollup-plugin-eslint
replaces rollup-plugin-eslint
.@swissquote/crafty-preset-terser
.TypeScript 4 is out and brings a lot of new features like Variadic Tuple Types, Labeled Tuple Elements and inference of types from constructor types.
All runners have been updated to support those features.
For more details you can check their release notes : https://devblogs.microsoft.com/typescript/announcing-typescript-4-0/
ESLint 7 has been released and while it changes a lot internally and in the way it's configured.
Crafty's upgrade does all the heavy lifting for you.
For more information you can check their release notes : https://eslint.org/blog/2020/05/eslint-v7.0.0-released
typescript-eslint/naming-convention
configuration; shouldn't report any false positives anymore.eslint-plugin-react-hooks
to our ESLint preset. The official rules for React Hooks, should help catch some gotchas in your React Hooks.eslint-plugin-react
was making too many false positives in jsx-handler-names
and it has been disabled while we investigate the matter.A configuration mistake in Jest broke module resolution sometimes, this has now been fixed and module resolution should be more reliable now.
If you had a workaround like this in your crafty.config.js
:
jest(crafty, options) {
options.moduleDirectories.push("node_modules");
}
You can now remove it safely
crafty-preset-react
It's used by only few people and making it work with multiple versions of React makes it's not worth it to keep around.
When using crafty-preset-typescript
with the gulp
and rollup
runner, compilation will also go through Babel (Webpack already did the same). This makes it easier to add optimization for all cases.
@babel/runtime
as an external dependency to reduce bundle sizesWhen compiling with Babel, some code has to be added to files (to handle default imports, class creations, destructuring ...)
If you compile using the gulp or Rollup runners (meant for libraries) These pieces of code are better left outside of your codebase, since re-declaring exactly the same snippets of code for each module or even file, can become big very fast.
Now, if you add @babel/runtime
as a dependency to your project. Crafty will automatically keep these snippets external to your codebase.
This way it is the job of the final project to import all helpers and it can do a better job at de-duplicating them.
You can override this behaviour with the inlineRuntime
option for your bundles.
Defaults to true
when nothing is specified, and to false
when a dependency to @babel/runtime
is found.
@swissquote/rollup-plugin-eslint
replaces rollup-plugin-eslint
This plugin is a fork of rollup-plugin-eslint with a few differences
@swissquote/crafty-preset-terser
Options for Terser were duplicated and scattered accross multiple files.
These options are now moved to a separate preset, and the uglifyJS
option has been renamed to terser
.
glob-watcher
with an inlined, up-to-date, versionPublished by onigoetz over 4 years ago
> 0.25%, Edge >= 17, Safari >= 11, iOS >= 11, Chrome >= 66, Firefox >= 60, IE >= 11, not op_mini all
crafty browsers
command ton know for which browsers you compileWith the recent update of the list of supported browsers at Swissquote we are now updating our tooling to reflect that.
With that change comes a new crafty command, that shows the current resolved configuration and what browsers it includes :
❯ crafty browsers
[17:20:44] Starting Crafty 1.12.0...
Your browserslist query:
'> 0.25%, Edge >= 17, Safari >= 11, iOS >= 11, Chrome >= 66, Firefox >= 60, IE >= 11, not op_mini all'
Contains 63 browsers covering 93.08% of global usage.
Chrome for Android 81
UC Browser for Android 12.12
Chrome 83, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 49
Edge 83, 81, 80, 79, 18, 17
Firefox 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
IE 11
iOS Safari 13.4-13.5, 13.3, 13.2, 13.0-13.1, 12.2-12.4, 12.0-12.1, 11.3-11.4, 11.0-11.2
Opera 68
Safari 13.1, 13, 12.1, 12, 11.1, 11
Samsung Internet 11.1-11.2, 4
This should help fine tune your queries and debug if you aren't sure what browsers should be supported. Note that the browserslist 'your_browserlist'
command is similar, however it gives less information.
Package | from | to |
---|---|---|
autoprefixer | 9.7.6 | 9.8.5 |
@babel/* | 7.9.* | 7.10.* |
browserslist | 4.11.1 | 4.13.0 |
css-loader | 3.5.2 | 3.6.0 |
enhanced-resolve | 4.1.1 | 4.2.0 |
eslint-config-prettier | 6.10.1 | 6.11.0 |
eslint-loader | 4.0.0 | 4.0.2 |
eslint-plugin-import | 2.20.2 | 2.22.0 |
eslint-plugin-react | 7.19.0 | 7.20.3 |
fork-ts-checker-webpack-plugin | 4.1.3 | 4.1.6 |
gulp-svgmin | 2.2.0 | 3.0.0 |
inspectpack | 4.4.0 | 4.5.2 |
jest | 25.3.0 | 26.1.0 |
postcss | 7.0.27 | 7.0.32 |
postcss-color-hex-alpha | 5.0.3 | 6.0.0 |
postcss-color-rebeccapurple | 5.0.0 | 6.0.0 |
postcss-font-family-system-ui | 4.2.0 | 4.3.0 |
postcss-nested | 4.2.1 | 4.2.3 |
postcss-scss | 2.0.0 | 2.1.1 |
postcss-value-parser | 4.0.3 | 4.1.0 |
react-hot-loader | 4.12.20 | 4.12.21 |
@rollup/plugin-commonjs | 11.1.0 | 13.0.1 |
@rollup/plugin-json | 4.0.2 | 4.1.0 |
@rollup/plugin-node-resolve | 7.1.3 | 8.4.0 |
rollup | 2.6.1 | 2.21.0 |
rollup-plugin-terser | 5.3.0 | 6.1.0 |
rollup-plugin-typescript2 | 0.27.0 | 0.27.1 |
style-loader | 1.1.3 | 1.2.1 |
stylelint | 13.3.2 | 13.6.1 |
stylelint-scss | 13.17.0 | 13.18.0 |
terser-webpack-plugin | 2.3.5 | 3.0.6 |
through2 | ^3.0.0 | ^4.0.0 |
tmp | 0.1.0 | 0.2.1 |
ts-jest | 25.3.1 | 26.1.2 |
ts-loader | 6.2.2 | 8.0.0 |
typescript | 3.8.3 | 2.9.6 |
@typescript-eslint/eslint-plugin | 2.28.0 | 3.6.0 |
webpack | 4.42.1 | 4.43.0 |
webpack-chain | 6.4.0 | 6.5.0 |
webpack-dev-server | 3.10.3 | 3.11.0 |
webpack-merge | 4.2.2 | 5.0.9 |
Published by onigoetz over 4 years ago
eslintReactVersion
setttingjsLint --preset format
did not work correctly with ES2015+jsLint --preset recommended --preset node
did not parse TypeScript correctly.eslintReactVersion
from crafty.config.js
use detect
as React's version in eslint-plugin-react
, can still be overriden with the eslint
configuration
25.3.0
7.9.5
4.0.0
3.5.2
13.3.2
4.1.3
0.27.0
11.1.0
7.1.3
2.6.1
1.0.4
9.7.6
4.11.1
3.17.0
2.28.0
2.20.2
3.1.3
Published by onigoetz over 4 years ago
https://jestjs.io/blog/2020/01/21/jest-25
https://devblogs.microsoft.com/typescript/announcing-typescript-3-8/
https://github.com/rollup/rollup/releases/tag/v2.0.0
https://babeljs.io/blog/2020/03/16/7.9.0
no-explicit-any
for typescriptThis rule can be annoying and we mostly ignore it because it's a warning, we trust you to use it responsibly.
Dependency | Old | Now |
---|---|---|
jest | 24.9.0 | 25.2.3 |
@babel/* | 7.8.3 | 7.9.4 |
babel-loader | 8.0.6 | 8.1.0 |
babel-preset-jest | 24.9.0 | 25.2.1 |
rollup-plugin-babel | 4.3.3 | 4.4.0 |
gulp-imagemin | 7.0.0 | 7.1.0 |
postcss | 7.0.26 | 7.0.27 |
stylelint | 13.0.0 | 13.2.1 |
webpack | 4.41.5 | 4.42.1 |
react-hot-loader | 4.12.18 | 4.12.20 |
react-test-renderer | 16.12.0 | 16.13.1 |
fork-ts-checker-webpack-plugin | 3.1.1 | 4.1.2 |
rollup-plugin-typescript2 | 0.25.3 | 0.26.0 |
ts-jest | 24.3.0 | 25.2.1 |
ts-loader | 6.2.1 | 6.2.2 |
typescript | 3.7.5 | 3.8.3 |
@rollup/plugin-commonjs | 11.0.1 | 11.0.2 |
@rollup/plugin-json | 4.0.1 | 4.0.2 |
@rollup/plugin-node-resolve | 7.0.0 | 7.1.1 |
@rollup/plugin-replace | 2.3.0 | 2.3.1 |
rollup | 1.29.1 | 2.2.0 |
rollup-plugin-terser | 5.2.0 | 5.3.0 |
inspectpack | 4.3.1 | 4.4.0 |
mkdirp | 0.5.1 | 1.0.3 |
terser-webpack-plugin | 2.3.2 | 2.3.5 |
webpack-chain | 6.3.0 | 6.4.0 |
webpack-dev-server | 3.10.1 | 3.10.3 |
browserslist | 4.8.5 | 4.11.0 |
yargs-parser | ^16 | ^18 |
@typescript-eslint/* | 2.17.0 | 2.25.0 |
babel-eslint | 10.0.3 | 10.1.0 |
eslint-plugin-import | 2.20.0 | 2.20.1 |
eslint-plugin-react | 7.18.0 | 7.19.0 |
autoprefixer | 9.7.4 | 9.7.5 |
postcss-advanced-variables | 3.0.0 | 3.0.1 |
postcss-calc | 7.0.1 | 7.0.2 |
postcss-color-rebeccapurple | 4.0.1 | 5.0.0 |
postcss-color-rgba-fallback | 3.0.0 | 4.0.0 |
postcss-value-parser | 4.0.2 | 4.0.3 |
stylelint-scss | 3.13.0 | 3.16.0 |
Published by onigoetz over 4 years ago
The node module resolution used by ESLint depends on finding modules in the current working directory.
If used within a GitHub hook, or similar, it won't work. We are currently patching ESLint to allow this to work. With the hope to be able to remove it once ESLint offers more configuration options for global modules
Since node 8 isn't supported anymore and many of our dependencies dropped it; we are dropping the support as well.
rollup-plugin-commonjs
replaced with @rollup/plugin-commonjs
rollup-plugin-json
replaced with @rollup/plugin-json
rollup-plugin-node-resolve
replaced with @rollup/plugin-node-resolve
rollup-plugin-replace
replaced with @rollup/plugin-replace
>=10.0.0
@babel/*
from 7.7.5 to 7.8.3autoprefixer
from 9.7.3 to 9.7.4babel-plugin-istanbul
from 5.2.0 to 6.0.0browserslist
from 4.8.2 to 4.8.5case-sensitive-paths-webpack-plugin
from 2.2.0 to 2.3.0css-loader
from 3.3.2 to 3.4.2enzyme-adapter-react-16
from 1.15.1 to 1.15.2enzyme
from 3.10.0 to 3.11.0eslint
from 6.7.2 to 6.8.0eslint-plugin-import
from 2.19.1 to 2.20.0eslint-plugin-prettier
from 3.1.1 to 3.1.2eslint-plugin-react
from 7.17.0 to 7.18.0execa
from 3.2.0 to 4.0.0gulp-imagemin
from 6.2.0 to 7.0.0inspectpack
from 4.2.2 to 4.3.1mini-css-extract-plugin
from 0.8.0 to 0.9.0postcss-font-family-system-ui
from 4.1.1 to 4.2.0postcss
from 7.0.24 to 7.0.26rollup
from 1.27.12 to 1.29.1rollup-plugin-pnp-resolve
from ^1.0.1 to ^2.0.0rollup-plugin-terser
from 5.1.3 to 5.2.0stylelint
from 12.0.0 to 13.0.0stylelint-prettier
from 1.1.1 to 1.1.2style-loader
from 1.0.1 to 1.1.3terser-webpack-plugin
from 2.3.0 to 2.3.2ts-jest
from 24.2.0 to 24.3.0@typescript-eslint/*
from 2.11.0 to 2.17.0typescript
from 3.7.3 to 3.7.5typescript
from 3.7.3 to 3.7.5webpack-chain
from 6.0.0 to 6.3.0webpack-dev-server
from 3.9.0 to 3.10.1webpack
from 4.41.2 to 4.41.5xml2js
from 0.4.22 to 0.4.23