UNPKG

60.9 kBMarkdownView Raw
1# Changelog
2
3All notable changes to this project will be documented in this file.
4
5The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6and from `v0.7.0`, this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
8## Unreleased
9
10### Added
11
12- Better out-the-box library support for `sewing-kit test`. Setting `library:true` in your sewing-kit.config.ts shall configure jest's modulePaths to look in the `src` directory. [[#1027]](https://github.com/Shopify/sewing-kit/pull/1027)
13
14### Changed
15
16- Updated `ts-jest` dependency to `~23.10.4`. [[#974](https://github.com/Shopify/sewing-kit/pull/974)]
17- Upgrade `eslint-plugin-shopfiy` to `26.0.0` (adds `typescript@3.1.1` support) [[#1038](https://github.com/Shopify/sewing-kit/pull/1038)]
18
19### Migration suggestions
20
21- `eslint-plugin-graphql` can now be safely removed from `resolutions` in `package.json` for most projects
22- Upgrade `typescript` to `3.1.1`
23
24## [0.61.0] - 2018-10-22
25
26### Added
27
28- full `graphql-config` support for all commands and operations requiring schema configuration [[#956]](https://github.com/Shopify/sewing-kit/pull/956)
29
30### Migration suggestions
31
32- Add `eslint-plugin-graphql@2.1.0-0` to `resolutions` in `package.json` until [the fix](https://github.com/apollographql/eslint-plugin-graphql/pull/179) is released
33- For projects with mutliple schemas, the `graphql` plugin in `sewing-kit.config.ts` can be [updated](https://github.com/Shopify/sewing-kit/blob/master/docs/plugins/graphql.md#multiple-schemas) to fetch multiple schemas (now supporting `.graphql` format)
34- For optimal compatibility, consider adding `resolutions` to `package.json` for `@types/graphql@0.13.4`, `graphql@0.13.2`, and `graphql-config@2.1.1` if any dependencies are not pulling in the correct graphql requirements and the dependency cannot be upgraded to support these graphql dependency version
35- For projects with multiple schemas, update any import paths for old generated schema files to include `projectName` (i.e., `.../build/schema.json``.../build/projectName-schema.json`)
36
37## [0.60.3] - 2018-10-22
38
39### Fixed
40
41- Properly set the `Content-Type` header of the empty vendor js script to `application/javascript` [[#1017](https://github.com/Shopify/sewing-kit/pull/1017)]
42
43## [0.60.2] - 2018-10-16
44
45### Fixed
46
47- The latest `mini-css-extract-plugin` no longer causes invalid string replacements in builds [[#1016](https://github.com/Shopify/sewing-kit/pull/1016)]
48
49## [0.60.1] - 2018-10-16
50
51### Added
52
53- `sewing-kit test --no-graphql` now omits GraphQL operations [[#1009](https://github.com/Shopify/sewing-kit/pull/1009)]
54- `sewing-kit refresh-graphql --mode production` will now refresh production GraphQL files [[#1012](https://github.com/Shopify/sewing-kit/pull/1012)]
55
56### Fixed
57
58- `jest` module resolver now prefers `.js` modules over `.ts` or `.tsx` [[#1007](https://github.com/Shopify/sewing-kit/pull/1007)]
59- `sewing-kit clean` no longer fails on TypeScript + GraphQL projects when cleaned paths are missing [[#1013](https://github.com/Shopify/sewing-kit/pull/1013)]
60
61## [0.60.0] - 2018-10-15
62
63### Changed
64
65- Updating `eslint-plugin-shopify` to add support for `typescript-eslint-parser@19.0.2` [[#989](https://github.com/Shopify/sewing-kit/pull/989)]
66- `sewing-kit dev` type checks only when using the `--type-check` flag [[#999](https://github.com/Shopify/sewing-kit/pull/999)]
67- `sewing-kit-manifest.json#assets` now lists all emitted assets for the project, not just chunks. The structure is the same, but the values will now be an object under an `all` key, where the keys are indexes and the values at the file paths [[#992](https://github.com/Shopify/sewing-kit/pull/992)]
68
69### Fixed
70
71- Dynamic imports no longer break in SSR [[#997](https://github.com/Shopify/sewing-kit/pull/997)]
72- `lint --graphql=false` no longer performs graphql operations. [[#985](https://github.com/Shopify/sewing-kit/pull/985)]
73- `react-loadable` no longer crashes on anonymous assets with no dependencies [[#986](https://github.com/Shopify/sewing-kit/pull/986)]
74- `clean` command now removes generated schema types files. [[#993](https://github.com/Shopify/sewing-kit/pull/993)]
75
76## [0.59.0] - 2018-09-27
77
78### Added
79
80- Fail compilation when Typescript is not installed and the project uses `.ts`/`.tsx` files. [[#910](https://github.com/Shopify/sewing-kit/issues/910)]
81- Fail compilation when React is not installed and the project uses `.jsx`/`.tsx` files. [[#955](https://github.com/Shopify/sewing-kit/issues/955)]
82- `type-check` supports the `--watch` flag [[#890](https://github.com/Shopify/sewing-kit/pull/890)]
83- `sewing-kit dev` runs type-check in a separate non-blocking process [[#890](https://github.com/Shopify/sewing-kit/pull/890)]
84- New `refresh-graphql` command to only fetch and process GraphQL files [[#964](https://github.com/Shopify/sewing-kit/pull/964)]
85
86### Changed
87
88- Development vendor bundle now contains unminified sources (including the development version of React) [[#962](https://github.com/Shopify/sewing-kit/pull/962)]
89- Version bump stylelint and stylelint-config-shopify to latest versions [[#961](https://github.com/Shopify/sewing-kit/pull/961)]
90- graphql plugin will emit an informative warning instead of crashing if the `graphql-config` file is missing [[#959](https://github.com/Shopify/sewing-kit/pull/959)]
91- Upgrade `eslint` to `5.6.0`, `eslint-plugin-shopify` to `25.0.1`. Remove `eslint-plugin-graphql`. [[#972](https://github.com/Shopify/sewing-kit/pull/972)]
92
93### Fixed
94
95- `CI=true sewing-kit test --debug` no longer throws Jest exceptions [[#969](https://github.com/Shopify/sewing-kit/pull/969)]
96
97### Migration suggestions
98
99- Remove `eslint-plugin-graphql` from your project's `package.json`
100- Upgrade `graphql` in your project's `package.json` to `^0.13.0`
101- Review new ESLint rules added in [`eslint-plugin-shopify@24.0.0`](https://github.com/Shopify/eslint-plugin-shopify/blob/master/CHANGELOG.md#2400---2018-08-30)
102
103## [0.58.1] - 2018-09-13
104
105### Changed
106
107Exactly the same as 0.58.0. Needed to fix a markdown formatting issue.
108
109## [0.58.0] - 2018-09-13
110
111### Changed
112
113- Breaking change - improve Polaris tree shaking by consuming minimally transpiled js/scss [[#717](https://github.com/Shopify/sewing-kit/pull/717)]
114
115### Migration suggestions
116
117- Upgrade to `@shopify/polaris@3`
118
119## [0.57.0] - 2018-09-11
120
121### Added
122
123- Multiple graphql schema support using `.graphqlconfig` files ([Prisma graphql-config](https://github.com/prisma/graphql-config) format via [`graphql-typescript-definitions`](https://github.com/Shopify/graphql-tools-web) as of `0.11.0`). [[#949](https://github.com/Shopify/sewing-kit/pull/949)]
124
125### Fixed
126
127- Server tests are now run when performing `sewing-kit test` locally. [[#904](https://github.com/Shopify/sewing-kit/pull/904)]
128
129### Removed
130
131- Removed `--app-only` and `--server-only` arguments from `sewing-kit test`. This functionality can be provided by passing in path matches. [[#904](https://github.com/Shopify/sewing-kit/pull/904)]
132
133### Migration suggestions
134
135- Replace calls to `sewing-kit test --app-only` with `sewing-kit test "$(pwd)/(app|client)"`
136- Replace calls to `sewing-kit test --server-only` with `sewing-kit test "$(pwd)/server"`
137- Update `.vscode/launch.json` debug commands arguments to target specific folders (e.g. replace `"args": ["test", "--app-only", "--debug"]` with `"args": ["test", "--debug", "${workspaceRoot}/(app|client)"]`)
138- Replace schema types imports from `import {...} from 'types/graphql';` to `import {...} from 'types/graphql/${projectName}-types';` (for some `projectName` defined in the `.graphqlconfig` file, or just `types/graphql/types` for a nameless project).
139- Delete `.gqlconfig` if it exists. Create a new `.graphqlconfig` (see the [example project](/example/.graphqlconfig))
140- Optionally, install [`prisma.vscode-graphql` VSCode extension](https://marketplace.visualstudio.com/items?itemName=Prisma.vscode-graphql)
141
142## [0.56.1] - 2018-08-28
143
144### Fixed
145
146- "Hang tight" redirect script no longer 404s [[#907](https://github.com/Shopify/sewing-kit/pull/907)]
147
148## [0.56.0] - 2018-08-27
149
150### Added
151
152- Dashboard page with asset / compilation information [[#838](https://github.com/Shopify/sewing-kit/pull/838/files)]
153- Rails projects now automatically gzip js/css/svg assets [[#879](https://github.com/Shopify/sewing-kit/pull/879)]
154- Type-safe configuration & autocomplete via `sewing-kit.config.ts` files [[#798](https://github.com/Shopify/sewing-kit/pull/798)]
155
156### Fixed
157
158- No more 404 errors for projects without a `plugins.vendor` configuration [[#898](https://github.com/Shopify/sewing-kit/pull/898)]
159
160### Migration suggestions
161
162- Rails only - remove `compression-webpack-plugin` from your project
163- Try converting `sewing-kit.config.js` to `sewing-kit.config.ts`
164
165## [0.55.0] - 2018-08-25
166
167### Added
168
169- Support `staging` mode [[#853](https://github.com/Shopify/sewing-kit/pull/853)]
170- Readable error for missing stylelint config [[#873](https://github.com/Shopify/sewing-kit/pull/873)]
171- `sewing-kit manifest` includes a `path` property which the `sewing_kit` gem uses to reload development manifests quickly [[#865](https://github.com/Shopify/sewing-kit/pull/865)]
172
173### Changed
174
175- Stack-traces from error logs no longer output at any verbosity level below `debug` [[#866](https://github.com/Shopify/sewing-kit/pull/866)]
176- Simpler downloads for GraphQL schemas in CI [[#892](https://github.com/Shopify/sewing-kit/pull/892/files)]
177- Reduce linting noise by hiding GraphQL fixture passes (via a `graphql-validate-fixtures` update) [[#871](https://github.com/Shopify/sewing-kit/pull/871)]
178
179### Fixed
180
181- Fail fast with a descriptive error message when `dev.yml` uses `type: ruby` [[#861](https://github.com/Shopify/sewing-kit/pull/861)]
182- Fail fast with a descriptive error message when `railgun.yml` and `dev.yml` ports are misconfigured [[#861](https://github.com/Shopify/sewing-kit/pull/861)]
183- Do not use `dev` hostname when there `railgun.yml` does not exist [[#876](https://github.com/Shopify/sewing-kit/pull/876)]
184- Fix config validation when Procfile has nonstandard file extensions [[#886](https://github.com/Shopify/sewing-kit/pull/886)]
185- Allow TypeScript projects to have non-TypeScript entrypoints [[#882](https://github.com/Shopify/sewing-kit/pull/882)]
186- Faster `sewing-kit test` startup time [[#895](https://github.com/Shopify/sewing-kit/pull/895)]
187
188### Removed
189
190- The `env` object passed to `sewing-kit.config.js`'s callback no longer provides `env.isProductionClient` / `env.isProductionServer`
191
192### Migration suggestions
193
194- Replace calls to `env.isProductionClient` with `env.isClient && env.hasProductionAssets`
195- Replace calls to `env.isProductionServer` with `env.isServer && env.hasProductionAssets`
196
197## [0.54.0] - 2018-08-20
198
199### Added
200
201- 404 responses now display a list of available assets [[#831](https://github.com/Shopify/sewing-kit/pull/831)]
202- 👨‍💻 Gracefully error when typescript is not installed but the app entrypoint uses a `.ts`/`.tsx` file [[#852](https://github.com/Shopify/sewing-kit/pull/852)]
203- Show meaningful error messages `tsconfig.json` does not exist [[#841](https://github.com/Shopify/sewing-kit/pull/841)]
204
205### Changed
206
207- Update required version of `webpack-dev-server` to `^3.1.5` [[#850](https://github.com/Shopify/sewing-kit/pull/850)]
208- Use `stylelint-prettier` to format our styles instead of `prettier-stylelint-formatter`. This is a stylelint plugin that exposes prettier errors as stylelint linting errors rather than using a wrapper to run `prettier`, then `stylelint`. This is similar to how we handle prettier and eslint integration for our js/ts files. [[#808](https://github.com/Shopify/sewing-kit/pull/808)]
209- Return a default manifest file that contains a redirection script for the 'Hang Tight!' page when loading the manifest fails in a Rails dev environment. [[#834](https://github.com/Shopify/sewing-kit/pull/834)]
210- Update `jest` to version `^23.0.0` including `jest-watch-typeahead` watch plugins [[#666](https://github.com/Shopify/sewing-kit/pull/666)]
211
212### Fixed
213
214- Dev mode 404 responses shouldn't cause oblique CSP errors [[#831](https://github.com/Shopify/sewing-kit/pull/831)]
215
216## [0.53.1] - 2018-08-01
217
218### Fixed
219
220- Vendor DLL now consumes transpiled sources [[#787](https://github.com/Shopify/sewing-kit/pull/787)]
221
222## [0.53.0] - 2018-07-31
223
224### Added
225
226- Display asset server hosts/ports on startup [[#767](https://github.com/Shopify/sewing-kit/pull/767)]
227- Vendor DLL can now be removed via `sewing-kit clean --vendor-dll` [[#769](https://github.com/Shopify/sewing-kit/pull/769)]
228- All commands accept user-provided log level via `--log-level` [[#722](https://github.com/Shopify/sewing-kit/pull/772)]
229
230### Changed
231
232- Update dependency `stylelint-config-shopify@5.1.2` [[#754](https://github.com/Shopify/sewing-kit/pull/754)]
233- Node apps with a `railgun.yml` host now serve development assets via `http://<railgun host>/webpack/assets` [[#763](https://github.com/Shopify/sewing-kit/pull/763)]
234- Rails only - all non-`development` environments now default to `/bundles` as a public path [[#764](https://github.com/Shopify/sewing-kit/pull/764)]
235- Consistent output message format [[#768](https://github.com/Shopify/sewing-kit/pull/768)]
236- GraphQL support is now activated using `plugins.graphql` [[#735](https://github.com/Shopify/sewing-kit/pull/735/files)]
237
238### Fixed
239
240- Remove `--fix` arg from lint/format suggestion [[#777](https://github.com/Shopify/sewing-kit/pull/777)]
241- Upgraded to latest version of GraphQL/ TypeScript dependencies, which fixes issues with TypeScript types of GraphQL unions [[#778](https://github.com/Shopify/sewing-kit/pull/778)]
242
243### Removed
244
245- Remove logic for long-deprecated `dev.yml#railgun.proxy` config [[#766](https://github.com/Shopify/sewing-kit/pull/766)]
246
247## [0.52.0] - 2018-07-18
248
249### Added
250
251- `sewing-kit lint` now accepts `--no-json`. Use `--no-json` to stop linting of JSON files in your project.
252
253### Changed
254
255- Breaking change - Upgraded to `eslint-plugin-shopify@23.0.0` [[#755](https://github.com/Shopify/sewing-kit/pull/755)]
256 - Please refer to the `eslint-plugin-shopify` [release notes](https://github.com/Shopify/eslint-plugin-shopify/releases/tag/v23.0.0) to understand why your `lint` is failing
257
258### Fixed
259
260- `lint` now passes the `--styles` value down to Prettier instead of assuming styles should be always be linted [[#752](https://github.com/Shopify/sewing-kit/pull/752)]
261
262## [0.51.1]
263
264### Fixed
265
266- Fix Rails integration tests by outputting to `public/bundles` again [[#750](https://github.com/Shopify/sewing-kit/pull/750)]
267
268## [0.51.0]
269
270### Changed
271
272- Prefer many small bundles over fewer large bundles [[#747](https://github.com/Shopify/sewing-kit/pull/747)]
273- Added integrity sha to react-loadable.json async chunk manifest for subresource integrity on CDN requests [[#739](https://github.com/Shopify/sewing-kit/pull/739)]
274
275### Fixed
276
277- Don't report erroneous module shaking information [[#746](https://github.com/Shopify/sewing-kit/pull/746)]
278
279## [0.50.1]
280
281### Changed
282
283- Update dependency `stylelint-config-shopify@5.1.1` [[#744](https://github.com/Shopify/sewing-kit/pull/744)]
284
285## [0.50.0]
286
287### Added
288
289- Cache SVG icons [[#722](https://github.com/Shopify/sewing-kit/pull/722)]
290- Fail on unexpected CSS side-effect module removal [[#728](https://github.com/Shopify/sewing-kit/pull/728/files)]
291- `--focus` option to only build selected sections for `sewing-kit dev` and `sewing-kit build` [[#734](https://github.com/Shopify/sewing-kit/pull/734)]
292
293### Changed
294
295- Update dependencies (`webpack@4.14.0`, `hard-source@0.9.0`, `yargs@12.0.1`) [[#730](https://github.com/Shopify/sewing-kit/pull/730)]
296- Update dependencies (`babel-loader@7.1.5`, `webpack@4.15.1`, `hard-source@0.10.1`, `node-sass@4.9.1`) [[#743](https://github.com/Shopify/sewing-kit/pull/743)]
297
298### Fixed
299
300- Don't overload CI servers with many parallel Uglify threads [[#721](https://github.com/Shopify/sewing-kit/pull/721)]
301- Fix webpack plugin deprecation warnings during compilation [[#738](https://github.com/Shopify/sewing-kit/pull/738/files)]
302- `sewing-kit playground` no longer exits with an error for Vim users [[#740](https://github.com/Shopify/sewing-kit/pull/740)]
303- Playgrounds now automatically open with the cursor positioned at the most likely line/column for editing content [[#740](https://github.com/Shopify/sewing-kit/pull/740)]
304
305### Migration suggestions
306
307- Polaris applications **must** upgrade to `@shopify/polaris@2.2.1`
308- Entrypoints using `import '@shopify/polaris/styles/components.scss';` **must** switch to conditionally importing via `plugins.entry`, e.g.:
309
310```js
311module.exports = function(plugins, env) {
312 return {
313 plugins: [
314 plugins.entry({
315 main: [
316 env.isDevelopment
317 ? '@shopify/polaris/styles/components.scss'
318 : undefined,
319 path.join('path/to/entry.js'),
320 ].filter(Boolean),
321 }),
322 ],
323 };
324};
325```
326
327## [0.49.1]
328
329### Fixed
330
331- Ignore TypeScript import/export errors in `test` mode builds [[#716](https://github.com/Shopify/sewing-kit/pull/716)]
332
333## [0.49.0]
334
335### Changed
336
337- Breaking: upgraded all GraphQL-related dependencies. All tools now rely on a minimum of `graphql@0.13.0`. Additionally, the upgraded version of `typescript-graphql-definitions` generates a different structure for type definitions in order to more accurately represent union and interface types. This may require updates to your type references. [[#671](https://github.com/Shopify/sewing-kit/pull/671)]
338
339### Migration suggestions
340
341- Some projects may see issues with multiple versions of `graphql`/ `@types/graphql` as a result of conflicts between sewing-kit and other packages, like apollo-client. We recommend using a `resolution` field in your package.json to force a version that conforms to sewing-kit’s dependency (`^0.13.0).
342- Run `sewing-kit type-check` to see new type errors introduced by changing GraphQL types. You will primarily see issues with referencing types detailing deeply nested fields in your query; these need to be updated to be the pascal case version of the keypath to that field:
343
344 ```graphql
345 query MyQuery {
346 self {
347 brother {
348 sister {
349 name
350 }
351 }
352 }
353 }
354 ```
355
356 ```typescript
357 // Assuming we want the type for `sister`, we now need to update our type reference:
358
359 import {MyQueryData} from './MyQuery.graphql';
360
361 type Sister = MyQueryData.SelfBrotherSister;
362 ```
363
364- If you were previously hand-writing `enum`s for GraphQL `enum` types, update your code to import them from the schema type definition file instead (note that, in accordance with our TypeScript styleguide, all `enum` cases are in pascal case):
365
366 ```typescript
367 // Before:
368 enum Format {
369 Pdf = "PDF"
370 Csv = "CSV"
371 }
372
373 // After:
374 import {Format} from 'types/graphql';
375 ```
376
377## [0.48.2] - 2018-06-19
378
379### Changed
380
381- Upgrade `uglifyjs-webpack-plugin` [[#709](https://github.com/Shopify/sewing-kit/pull/709)]
382- Disable image/icon caching (while investigating issues with `.png` generation in `web`) [[#710](https://github.com/Shopify/sewing-kit/pull/710)]
383
384## [0.48.1] - 2018-06-19
385
386### Added
387
388- `sewing-kit start` now accepts `--client-heap-size` / `--server-heap-size` [[#707](https://github.com/Shopify/sewing-kit/pull/707)]
389- svg/image loader results are now cached [[#708](https://github.com/Shopify/sewing-kit/pull/708)]
390- Production CSS loader results are now cached [[#708](https://github.com/Shopify/sewing-kit/pull/708)]
391
392### Migration suggestions
393
394- Larger app caches may require additional Node heap
395 - If builds are slow, try `node --max-old-space-size=2000 node_modules/.bin/sewing-kit build`
396
397## [0.48.0] - 2018-06-19
398
399Do not use this release. This is an incorrectly published version of the 0.47.0 release.
400
401## [0.47.1] - 2018-06-18
402
403### Changed
404
405- Run `react-loadable/babel` on server code as well [[#685](https://github.com/Shopify/sewing-kit/pull/685)]
406
407## [0.47.0] - 2018-06-18
408
409### Added
410
411- Added markdown support to `sewing-kit {check,lint,format}` [[#680](https://github.com/Shopify/sewing-kit/pull/680)]
412- `sewing-kit start` now compiles client/server in parallel [[#688](https://github.com/Shopify/sewing-kit/pull/688)]
413- Faster cold TypeScript server compilation via shared cache [[#699](https://github.com/Shopify/sewing-kit/pull/699/files)]
414
415### Changed
416
417- Upgraded to `prettier@1.13.5` [[#679](https://github.com/Shopify/sewing-kit/pull/679)]
418- Upgraded patch dependencies (`sass-loader`, `source-map-support`, `stylelint`) [[#690](https://github.com/Shopify/sewing-kit/pull/690)]
419- Upgraded dependencies: major (`babel-jest`) and minor (`babel-plugin-lodash`, `hard-source-webpack-plugin`, `image-webpack-loader`, `ts-loader`, `webpack`) [[#603](https://buildkite.com/shopify/sewing-kit/builds/603)]
420- Upgraded `webpack-uglifyjs-plugin` fork [[#693](https://github.com/Shopify/sewing-kit/pull/693)]
421- webpack-related caches are now stored in `build/cache/webpack` [[#697](https://github.com/Shopify/sewing-kit/pull/697)]
422- Cache JavaScript transpilation results [[#698](https://github.com/Shopify/sewing-kit/pull/698)]
423- Cache TypeScript transpilation results separately from production Babel transform results [[#701](https://github.com/Shopify/sewing-kit/pull/701)]
424
425### Fixed
426
427- The message `start from scratch with 'yarn sewing-kit clean'` when using the [vendors plugin](https://github.com/Shopify/sewing-kit/blob/master/docs/plugins/vendors.md) has been amended to include `--cache` to ensure the cache will actually be cleaned [[#681](https://github.com/Shopify/sewing-kit/issues/681)]
428- `--source-maps off` should completely disable sourcemaps [[#687](https://github.com/Shopify/sewing-kit/pull/687)], [[#694](https://github.com/Shopify/sewing-kit/pull/694)]
429- Pass consistent `BABEL_ENV` to Babel transforms [[#702](https://github.com/Shopify/sewing-kit/pull/702)]
430- Fix Polaris quirks in development by reverting to `react-hot-loader@3.1.3` [[#703](https://github.com/Shopify/sewing-kit/pull/703)]
431
432### Migration suggestions
433
434- Vet async imports for accidental `Module` assignments
435 - e.g., if `foo` is an ES Module
436 - `const foo = await import('./foo');` should be converted to
437 - `const {default: foo} = await import('./foo');`
438 - This behaviour was changed in `webpack@4.10`
439- If Prettier/stylelint fail on `.scss` files, look for value lists without a trailing comma, and use `// prettier-ignore` to suppress their warnings
440
441## [0.46.0] - 2018-06-08
442
443### Added
444
445- Improves client/server React hydration of async routes via `plugins.experiments({reactLoadable: true})` [[#668](https://github.com/Shopify/sewing-kit/pull/668)]
446 - See [shopify/web](https://github.com/Shopify/web/pull/4513/files) for more details on enabling code splitting & SSR
447 - See [`react-loadable`](https://github.com/jamiebuilds/react-loadable) for additional documentation
448
449### Changed
450
451- Use 3 jest workers on shopify-build [[#678](https://github.com/Shopify/sewing-kit/pull/678)]
452
453### Fixed
454
455- Playgrounds now work with `@shopify/polaris@2.x` [[#677](https://github.com/Shopify/sewing-kit/pull/677)]
456
457## [0.45.6] - 2018-06-06
458
459### Changed
460
461- Allow custom build paths for production Rails apps [[#674](https://github.com/Shopify/sewing-kit/pull/674)]
462
463## [0.45.5] - 2018-05-31
464
465### Added
466
467- Added `asset-server-only` flag to `sewing-kit start` [[#665](https://github.com/Shopify/sewing-kit/pull/665)]
468
469### Changed
470
471- `sewing-kit type-check` and `sewing-kit check` now output concise, readdable errors upon failure [[#670](https://github.com/Shopify/sewing-kit/pull/670)]
472
473## [0.45.4] - 2018-05-24
474
475### Changed
476
477- `sewing-kit test` now uses 5 worker threads in `shopify-build` [[#663](https://github.com/Shopify/sewing-kit/pull/663)]
478
479## [0.45.3] - 2018-05-17
480
481### Added
482
483- If `package.json#sideEffects` is configured to eliminate dead code, production client builds will fail when modules are unexpectedly removed (exclusions can be added via `FailOnUnexpectedModuleShakingPlugin#exclude`)
484
485## [0.45.2] - 2018-05-14
486
487### Added
488
489- Retry production GraphQL schema download if it fails the first time [[#657](https://github.com/Shopify/sewing-kit/pull/657)]
490
491## [0.45.1] - 2018-05-10
492
493### Changed
494
495- TypeScript type/interface imports are now suppressed in development mode [[#655](https://github.com/Shopify/sewing-kit/pull/655)]
496
497## [0.45.0] - 2018-05-10
498
499### Changed
500
501- Breaking change - Upgraded to `webpack@4.8.1`, and latest `webpack-dev-server`, `webpack-hot-middleware`, etc [[#632](https://github.com/Shopify/sewing-kit/pull/632)]
502 - [`split-chunks-plugin`](https://webpack.js.org/plugins/split-chunks-plugin/) provides much better code splitting
503 - [`mini-css-extra-plugin`](https://github.com/webpack-contrib/mini-css-extract-plugin) allows CSS to be split by chunk (`extract-text-webpack-plugin` was removed)
504- Breaking change - Many dependency updates (including `node-sass`, `stylelint`, `react-hot-loader`) [[#650](https://github.com/Shopify/sewing-kit/pull/650)]
505- `graphql-loader` results are now cached [[#652](https://github.com/Shopify/sewing-kit/pull/652)]
506- `ParallelUglifyPlugin` is always used for production client builds [[#648](https://github.com/Shopify/sewing-kit/pull/648)]
507 - Note: the above `webpack@4` upgrade obsoletes this change
508
509### Removed
510
511- Removed `parallelUglify` experiment toggle [[#648](https://github.com/Shopify/sewing-kit/pull/648)]
512- `Happypack` now leaves a thread free for general processing [[#649](https://github.com/Shopify/sewing-kit/commit/51c3998a9afe742cfd156ad9a4e785dcb0649937)]
513
514### Migration suggestions
515
516- 🎩 your app in development and production modes
517- Verify that gzipped size of your production assets has not increased
518- Verify that your development startup / incremental compile speed has not regressed
519
520## [0.44.0] - 2018-05-08
521
522### Removed
523
524- Removed `fastProductionBuild` experiment [[#643](https://github.com/Shopify/sewing-kit/pull/643)]
525
526## [0.43.0] - 2018-05-08
527
528### Changed
529
530- Breaking change - updated [`eslint-plugin-shopify`](https://github.com/Shopify/eslint-plugin-shopify) to version `^22.0.0`
531
532### Migration suggestions
533
534- Upgrade to `typescript` version `2.7.2` or later
535
536## [0.42.0] - 2018-05-06
537
538### Added
539
540- `sewing-kit build` now accepts `--no-graphql` [[#638](https://github.com/Shopify/sewing-kit/pull/638)]
541
542### Changed
543
544- Module concatenation is always enabled for production client builds [[#634](https://github.com/Shopify/sewing-kit/pull/634)]
545
546### Fixed
547
548- Only display total build duration in client + server builds [[#639](https://github.com/Shopify/sewing-kit/pull/639)]
549
550## [0.41.1] - 2018-05-02
551
552### Fixed
553
554- `AssetMetadataPlugin` now creates the destination directory before writing the manifest, if necessary [[#625](https://github.com/Shopify/sewing-kit/pull/625)]
555
556## [0.41.0] - 2018-05-01
557
558### Changed
559
560- Breaking change - `sewing-kit-manifest.json#assets` now contains `public`-relative paths [[#624](https://github.com/Shopify/sewing-kit/pull/624)]
561- Breaking change - `AssetMetadataPlugin` no longer accepts a `path` option; manifests are always written to the build directory [[#624](https://github.com/Shopify/sewing-kit/pull/624)]
562
563### Fixed
564
565- Make `sewing-kit-inspect` executable [[#620](https://github.com/Shopify/sewing-kit/pull/620)]
566
567## [0.40.0] - 2018-04-29
568
569### Added
570
571- Cache `.scss` compilation [[#613](https://github.com/Shopify/sewing-kit/pull/613)]
572
573### Changed
574
575- Do not type check TypeScript in development mode [[#612](https://github.com/Shopify/sewing-kit/pull/612)]
576- `sewing-kit dev` now transpiles using `ts-loader`, and caches transpilation results [[#614](https://github.com/Shopify/sewing-kit/pull/614)]
577
578### Migration suggestions
579
580- Use `sewing-kit type-check` to check for type violations previously reported by `sewing-kit dev`
581
582## [0.30.1] - 2018-04-16
583
584### Added
585
586- Log schema download times in CI [[#605](https://github.com/Shopify/sewing-kit/pull/605)]
587
588## [0.30.0] - 2018-04-15
589
590### Added
591
592- Better timing information for `sewing-kit dev` and `sewing-kit build` [[#600](https://github.com/Shopify/sewing-kit/pull/600)]
593
594### Changed
595
596- Breaking change - `fastStartup` is usable in test/production environments [[#596](https://github.com/Shopify/sewing-kit/pull/596)]
597- Breaking change - `sewing-kit build --report` no longer generates a `stats.json` file [[#604](https://github.com/Shopify/sewing-kit/pull/604)]
598- Do not limit jest's `maxWorker` count in BuildKite CI containers [[#602](https://github.com/Shopify/sewing-kit/pull/602/files)]
599
600### Fixed
601
602- `sewing-kit lint` no longer fails if Prettier is not configured [[#481](https://github.com/Shopify/sewing-kit/issues/481)]
603- React now generates readable stacktraces for errors thrown by dynamically imported chunks [[#598](https://github.com/Shopify/sewing-kit/pull/598)]
604
605### Removed
606
607- Breaking change - removed `sewing-kit check`'s `--build` option [[#599](https://github.com/Shopify/sewing-kit/pull/599)]
608
609### Migration suggestions
610
611- If `sewing-kit.config.js` enables `fastStartup`, use `env` conditions to limit its inclusion
612 - Rule of thumb: disable in `development` if HMR is essential to the development experience
613- If a project depends on a generated `build/client/bundle-analysis/stats.json` file, use `plugins.webpack` to set `BundleAnalyzerPlugin.generateStatsFile` to `true`
614
615## [0.29.17] - 2018-04-10
616
617### Fixed
618
619- `sewing-kit lint` now outputs parser exceptions, if necessary [[#588](https://github.com/Shopify/sewing-kit/pull/588)]
620- `codeframe` formatter is now used for lint output [[#566](https://github.com/Shopify/sewing-kit/pull/566)]
621
622## [0.29.16] - 2018-04-08
623
624### Changed
625
626- `sewing-kit dev --log-react-updates` to debug excess React rerenders [[#547](https://github.com/Shopify/sewing-kit/pull/547)]
627- `sewing-kit lint` no longer outputs stacktraces when stylelint fails [[#584](https://github.com/Shopify/sewing-kit/pull/584)]
628
629## [0.29.15] - 2018-03-25
630
631### Added
632
633- `playground --force` overwrites all existing playground files [[#577](https://github.com/Shopify/sewing-kit/pull/577)]
634
635### Changed
636
637- `playground` only writes files that don't exist yet [[#577](https://github.com/Shopify/sewing-kit/pull/577)]
638- `build --reports` should not throw memory exceptions in large projects [[#575](https://github.com/Shopify/sewing-kit/pull/575)]
639
640## [0.29.14] - 2018-03-12
641
642### Added
643
644- Allow debug without pausing on startup (via `sewing-kit-inspect`) [[#563](https://github.com/Shopify/sewing-kit/pull/563)]
645
646### Changed
647
648- Upgrade to `eslint-plugin-shopify@19.0.1` (fixes `shopify/jsx-no-hardcoded-content` rule) [[#562](https://github.com/Shopify/sewing-kit/pull/562)]
649
650### Migration suggestions
651
652- Enable `shopify/jsx-no-hardcoded-content` in your eslint config
653
654## [0.29.13] - 2018-03-06
655
656### Changed
657
658- `sewing-kit test --app-only` now includes tests in the `client` directory [[#552](https://github.com/Shopify/sewing-kit/pull/552)]
659
660## [0.29.12] - 2018-02-21
661
662### Added
663
664- Aliases for `sewing-kit` (`sk`) and `sewing-kit-debug` (`skd`) [[#539](https://github.com/Shopify/sewing-kit/pull/539)]
665
666## [0.29.11] - 2018-02-20
667
668### Changed
669
670- Update reference to webpack-parallel-uglify-plugin, preventing `npm install` from breaking [[#536](https://github.com/Shopify/sewing-kit/pull/536)]
671- Upgrade devDependencies [[#533](https://github.com/Shopify/sewing-kit/pull/533)]
672
673## [0.29.10] - 2018-02-19
674
675### Added
676
677- `lint --show-expected` option that displays the expected output for files failing Prettier checks [[#535](https://github.com/Shopify/sewing-kit/pull/535)]
678
679## [0.29.9] - 2018-02-16
680
681### Changed
682
683- Upgrade to eslint-plugin-shopify@19.0.0 [[#532](https://github.com/Shopify/sewing-kit/pull/532)]
684
685## [0.29.7] / [0.29.8] - 2018-02-16
686
687### Changed
688
689- Support for code coverage when running `sewing-kit test` [[#531](https://github.com/Shopify/sewing-kit/pull/531)]
690
691## [0.29.6] - 2018-02-15
692
693### Changed
694
695- Support for `csv` and `ico` files is now enabled by default with Jest transform and Webpack `file-loader` [[#508](https://github.com/Shopify/sewing-kit/pull/508)]
696
697## [0.29.5] - 2018-02-14
698
699### Changed
700
701- Problematic packages are now stripped from the `plugins.vendor` list [[#528](https://github.com/Shopify/sewing-kit/pull/528)]
702
703## [0.29.4] - 2018-02-13
704
705### Fixed
706
707- Vendor DLL is now served from the correct directory [[#527](https://github.com/Shopify/sewing-kit/pull/527)]
708
709## [0.29.3] - 2018-02-12
710
711### Changed
712
713- Vendor DLL is now cached and reused between server starts [[#526](https://github.com/Shopify/sewing-kit/pull/526)]
714
715## [0.29.2] - 2018-02-11
716
717### Changed
718
719- `sewing-kit test` now uses 3 Jest workers (previously 2) [[#524](https://github.com/Shopify/sewing-kit/pull/524)]
720
721## [0.29.1] - 2018-02-08
722
723### Fixed
724
725- `sewing-kit start` now displays logs [[#520](https://github.com/Shopify/sewing-kit/pull/520)]
726
727## [0.29.0] - 2018-02-07
728
729### Changed
730
731- `--source-maps` CLI option now acceps `accurate`, `fast`, `off` values [[#513](https://github.com/Shopify/sewing-kit/pull/513), [#515](https://github.com/Shopify/sewing-kit/pull/515)]
732
733### Fixed
734
735- Stop `shopify/web` performing concurrent HMR refreshes [[#514](https://github.com/Shopify/sewing-kit/pull/514)]
736
737### Migration suggestions
738
739- Search for `source-maps` references and:
740 - Replace `--source-maps` with `--source-maps accurate`
741 - Replace `--no-source-maps` wtih `--source-maps fast`
742
743## [0.28.1] - 2018-01-28
744
745### Added
746
747- "Hang tight" view now displays a tip about how to access sewing-kit logs [[#505](https://github.com/Shopify/sewing-kit/pull/505)]
748
749### Fixed
750
751- Fixed invalid `strip-ansi` call from version `0.28.0` [[#504](https://github.com/Shopify/sewing-kit/pull/504)]
752
753## [0.28.0] - 2018-01-28
754
755### Added
756
757- "Hang tight" view now displays progress messages [[#501](https://github.com/Shopify/sewing-kit/pull/501)]
758- "Hang tight" view now displays error dumps [[#501](https://github.com/Shopify/sewing-kit/pull/501)]
759- "Hang tight" view has less gender bias [[#502](https://github.com/Shopify/sewing-kit/pull/502)]
760- "Hang tight" view now refreshes the page on build completion [[#503](https://github.com/Shopify/sewing-kit/pull/503)]
761
762## [0.27.1] - 2018-01-24
763
764### Fixed
765
766- Allow cross-origin requests for vendor-dll [[#496](https://github.com/Shopify/sewing-kit/pull/496)]
767
768## [0.27.0] - 2018-01-21
769
770### Added
771
772- Breaking change - `asset.json`/`sewing-kit-manifest.json` now include asset integrity hashes (sha256, base64 encoded)
773 Before
774
775```json
776{
777 "entrypoints": {
778 "foo": {
779 "js": ["foo.js"]
780 }
781 }
782}
783```
784
785After
786
787```json
788{
789 "entrypoints": {
790 "foo": {
791 "js": [
792 {
793 "path": "foo.js",
794 "integrity": "4cd86c4a2c06dceff7d5ef1c381b1de1a8da9e8d36d51647dae249470a781f99.js"
795 }
796 ]
797 }
798 }
799}
800```
801
802### Fixed
803
804- Node only - `sewing-kit start` now starts up an assets server [[#492](https://github.com/Shopify/sewing-kit/pull/492)]
805
806### Migration Suggestions
807
808- Rails projects - upgrade to [`sewing_kit@0.27.0`](https://github.com/Shopify/sewing_kit/blob/master/CHANGELOG.md#0270---22-01-2018)
809- Node projects - adjust `asset.json` entrypoint consumers to account for plain path strings becoming objects with `path`/`integrity` properties
810
811## [0.26.0] - 2018-01-14
812
813### Changed
814
815- Breaking change: Rollup's default emitted filepath is now `dist/index.js` to match the name of the default input file.
816- Upgraded to `eslint-plugin-shopify@19.0.0-beta.4`
817- Upgraded to `prettier@1.9.2`
818
819### Fixed
820
821- Consumers no longer need to provide rollup plugins since they are now included as regular dependencies (instead of dev dependencies)
822
823### Migration Suggestions
824
825- Update `eslintConfig` to include: `plugins: ["shopify/jest"]`
826- Update `.prettierrc` to include: `arrowParens: "always"`
827- For Polaris projects, update `eslintConfig` to include: `plugins: ["shopify/polaris"]`
828- Consider adding new Shopify eslint rules:
829 - [`shopify/jsx-no-complex-expressions`](https://github.com/Shopify/eslint-plugin-shopify/blob/master/docs/rules/jsx-no-complex-expressions.md)
830 - [`shopify/jsx-no-hardcoded-content`](https://github.com/Shopify/eslint-plugin-shopify/blob/master/docs/rules/jsx-no-hardcoded-content.md)
831 - [`shopify/react-initialize-state`](https://github.com/Shopify/eslint-plugin-shopify/blob/master/docs/rules/react-initialize-state.md)
832 - [`shopify/react-type-state`](https://github.com/Shopify/eslint-plugin-shopify/blob/master/docs/rules/react-type-state.md)
833
834## [0.25.0] - 2018-01-12
835
836### Fixed
837
838- `dev --no-hot` mode now builds vendor DLLs [[#487](https://github.com/Shopify/sewing-kit/pull/487)]
839
840### Changed
841
842- Add svgs to prettierignore list on init command [[#484](https://github.com/Shopify/sewing-kit/pull/484)]
843- Use eslint cache to improve ESLint speed for code and GraphQL files [[#485](https://github.com/Shopify/sewing-kit/pull/485)]
844
845## [0.24.0] - 2018-01-11
846
847### Added
848
849- Libraries can be bundled with rollup by including `plugins.rollup` in their config
850
851### Changed
852
853- Omit confusing stacktraces for lint errors [[https://github.com/Shopify/sewing-kit/pull/482](#482)]
854
855## [0.23.0] - 2018-01-09
856
857### Fixed
858
859- Vendor DLL changes will be picked up without a hard browser refresh [[https://github.com/Shopify/sewing-kit/pull/477](#477)]
860
861### Removed
862
863- Breaking change: removed `sewing-kit test`'s `--build` option [[https://github.com/Shopify/sewing-kit/pull/478](#478)]
864
865### Migration Suggestions
866
867- If your project depended on `sewing-kit test --build`, please ping in `#web-foundations-tech` for tips on writing isolated server tests
868
869## [0.22.3] - 2018-01-05
870
871### Changed
872
873- Fix eslint error for ruby projects on CircleCI, adding `vendor/bundle` to ignores [[#475](https://github.com/Shopify/sewing-kit/pull/475)]
874
875## [0.22.2] - 2018-01-05
876
877### Changed
878
879- Fix lint error for ruby projects on CircleCI, adding `vendor/bundle` to stylelint ignores [[#474](https://github.com/Shopify/sewing-kit/pull/474)]
880
881## [0.22.1] - 2018-01-04
882
883### Added
884
885- Support `test` mode builds [[#445](https://github.com/Shopify/sewing-kit/pull/445)]
886
887## [0.22.0] - 2017-12-18
888
889### Added
890
891- Allow graphql schema to be read from a local file [[#427](https://github.com/Shopify/sewing-kit/pull/427)]
892
893### Changed
894
895- Bump `eslint-plugin-shopify` to [`18.3.0`](https://github.com/Shopify/eslint-plugin-shopify/blob/master/CHANGELOG.md#1830---2017-12-18) (shopify/no-debugger) [[464](https://github.com/Shopify/sewing-kit/pull/464/files)]
896
897## [0.21.0] - 2017-12-11
898
899- Allow compilation of a server bundle under the `railsWithNodeServer` experiment. By default Rails projects do not compile a server bundle. [[#444](https://github.com/Shopify/sewing-kit/pull/444)]
900
901## [0.20.0] - 2017-12-06
902
903### Added
904
905- Formatting support for `.ts` and `.tsx` files. Please see the Typescript formatting setup [docs](https://github.com/Shopify/sewing-kit/blob/master/docs/commands/format.md#setup) for more details. [[#440](https://github.com/Shopify/sewing-kit/pull/440)]
906- An `init` command to create config files for common tools. Includes `--prettierignore` flag to create a preconfigured .prettierignore file. [[#417](https://github.com/Shopify/sewing-kit/pull/417)]
907
908```
909yarn run sewing-kit init --prettierignore
910```
911
912### Removed
913
914- Linting via `tslint` has been removed in favor of linting typescript via Shopify's [typescript](https://github.com/Shopify/eslint-plugin-shopify/blob/master/lib/config/typescript.js) or [typescript-react](https://github.com/Shopify/eslint-plugin-shopify/blob/master/lib/config/typescript-react.js) eslint configs. `tslint.json` can be removed from consuming projects. [[#440](https://github.com/Shopify/sewing-kit/pull/440)]
915
916```
917{
918 "extends": [
919 "plugin:shopify/typescript-react"
920 ]
921}
922```
923
924## [0.19.1] - 2017-11-23
925
926### Added
927
928- Added support to selectively include Polaris globals. See [[#423](https://github.com/Shopify/sewing-kit/pull/423)]
929
930## [0.19.0] - 2017-11-22
931
932- Added `format` support for `scss`/`css` files. See [here](https://github.com/Shopify/sewing-kit/blob/master/docs/commands/format.md#setup) for more details. [[#364](https://github.com/Shopify/sewing-kit/pull/364)]
933
934### Changed
935
936- Improve warmup devServer dev experience. [[#420](https://github.com/Shopify/sewing-kit/pull/420)]
937- Upgraded node-sass from v4.6.0 to v4.7.2 [[#416](https://github.com/Shopify/sewing-kit/pull/416)]
938- Dependency updates [[#412](https://github.com/Shopify/sewing-kit/pull/412)]
939
940## [0.18.0] - 2017-11-16
941
942### Added
943
944- A server is now immediately bound when running `sewing-kit dev`, and will hand off to your actual development server when it is fully compiled. You can customize the port and IP of the temporary server with the new `devServer` plugin. [[#390](https://github.com/Shopify/sewing-kit/pull/390)]
945
946### Changed
947
948- `react-hot-loader` is enabled only for React projects [[#392](https://github.com/Shopify/sewing-kit/pull/392)]
949- `.jsx` files no longer throw exceptions on JSX elements [[#408](https://github.com/Shopify/sewing-kit/pull/408)]
950- Dependency updates [[#391](https://github.com/Shopify/sewing-kit/pull/391)]
951 - New eslint rules (see [updates between 17.2 - 18.0](https://github.com/Shopify/eslint-plugin-shopify/blob/master/CHANGELOG.md#1800---2017-10-31))
952 - A working `react-hot-loader` is now provided
953
954### Migration Suggestions
955
956- If your project uses a custom `react-hot-loader` version, it should be removed
957 - `yarn remove react-hot-loader`
958
959## [0.17.1] - 2017-11-09
960
961### Changed
962
963- `plugin.jest` now accepts a callback https://github.com/Shopify/sewing-kit/pull/329
964
965### Migration Suggestions
966
967- grep for `plugin.jest` calls, and replace the old hash parameter with a callback that overrides the default config's values
968 - Property names are aligned with Jest's config names
969 - e.g., `setupRun` => `setupFiles`, `setupTest` => `setupTestFrameworkScriptFile`
970- `npm rebuild` fixes `bindings`/`node-sass` errors
971
972## [0.17.0] - 2017-11-08
973
974### Added
975
976- Added `railsWithNodeServer` experiment to enable bundling of a server target inside of a Rails project.[[#378](https://github.com/Shopify/sewing-kit/pull/378)]
977- Added `format` support for `graphql` and `json` files. [[#377](https://github.com/Shopify/sewing-kit/pull/377)]
978
979### Changed
980
981- Improved nuke command [[#389](https://github.com/Shopify/sewing-kit/pull/389)]:
982 - Make it run in dev mode such that it does not fail in a project that has production dependencies
983 - Cleans out the correct assets folder in the appropriate places
984- Upgrade node-sass to 4.6.0 [[#381](https://github.com/Shopify/sewing-kit/pull/381)]
985- Lint will now fail if `.json` or `.graphql`/`.gql` is not formatted [[#377](https://github.com/Shopify/sewing-kit/pull/377)]
986- Polaris is now correctly treated as an external for server bundles, so it always references the correct class names for the environment and will resolve all its dependencies natively [[#223](https://github.com/Shopify/sewing-kit/pull/223)]
987- Improved startup speed by delaying the loading of many modules [[#338](https://github.com/Shopify/sewing-kit/pull/388)]
988- Breaking change: manifests now contain `assets` and `entrypoints` keys [[#387](https://github.com/Shopify/sewing-kit/pull/387)]
989 - `assets` contains the chunk=>js/css mappings that were previously at root level
990
991### Migration Suggestions
992
993- Any code reading from `assets.json`/`sewing-kit-manifest.json` should now dig into the `assets` map
994- `sewing_kit` apps should remove explicit `sewing_kit_script_tag`/`sewing_kit_link_tag` calls to output `runtime`, `vendor`, etc
995
996## [0.16.1] - 2017-10-27
997
998### Added
999
1000- Added `format` command to format JS files. [[#357](https://github.com/Shopify/sewing-kit/pull/357)]
1001
1002### Fixed
1003
1004- Uglify cache is not erroneously invalidated during builds [[#368](https://github.com/Shopify/sewing-kit/pull/368)]
1005
1006## [0.16.0] - 2017-10-25
1007
1008### Fixed
1009
1010- Breaking change: builds now raise exceptions on compiler warnings [[#363](https://github.com/Shopify/sewing-kit/pull/363/files)]
1011
1012## [0.15.0] - 2017-10-25
1013
1014### Fixed
1015
1016- Pinned to `webpack@3.5.3` to work around hard-source errors in later versions [[#360](https://github.com/Shopify/sewing-kit/pull/360)]
1017
1018## [0.14.4] - 2017-10-22
1019
1020- Move Jest's cache to sewing-kit's cache directory [[#350](https://github.com/Shopify/sewing-kit/pull/350)]
1021
1022## [0.14.3] - 2017-10-21
1023
1024### Updated
1025
1026- CI now uses 2 jest worker threads [[#349](https://github.com/Shopify/sewing-kit/pull/349)]
1027
1028## [0.14.2] - 2017-10-16
1029
1030### Updated
1031
1032- Use a `stylelint` version that's compatible with `stylelint-config-shopify`'s requirements [[#342](https://github.com/Shopify/sewing-kit/pull/342)]
1033
1034## [0.14.1] - 2017-10-16
1035
1036### Added
1037
1038- Parallel/cacheable minification via [parallel-webpack-uglify-plugin](https://github.com/gdborton/webpack-parallel-uglify-plugin) [[#341](https://github.com/Shopify/sewing-kit/pull/341)]
1039
1040### Migration Suggestions
1041
1042- Turn on the `parallelUglify` experiment
1043
1044## [0.14.0] - 2017-10-15
1045
1046### Fixed
1047
1048- `lint` now builds GraphQL type definitions before running script linters [[#340](https://github.com/Shopify/sewing-kit/pull/340)]
1049- `lint` now ignores `.scss` files in `node_modules` [[#338](https://github.com/Shopify/sewing-kit/pull/338)]
1050- GraphQL tests no longer add 6 minutes to CircleCI runs [[#339](https://github.com/Shopify/sewing-kit/pull/339)]
1051
1052### Updated
1053
1054- Breaking change: `stylelint`/`stylelint-config-shopify` version bumps
1055
1056### Removed
1057
1058- `conciseModuleNames` experiment [[#331](https://github.com/Shopify/sewing-kit/pull/331)]
1059
1060### Migration Suggestions
1061
1062- Remove `stylelint` and `stylelint-config-shopify` from `package.json` (`dependencies`/`devDependencies`)
1063
1064## [0.13.0] - 2017-10-12
1065
1066### Added
1067
1068- `conciseModuleNames` experiment to reduce bulk from long-term caching [[#326](https://github.com/Shopify/sewing-kit/pull/326)]
1069- `moduleConcatenation` experiment to make bundles smaller using [ModuleConcatenationPlugin](https://webpack.js.org/plugins/module-concatenation-plugin/) [(https://github.com/Shopify/sewing-kit/pull/328)]
1070- Breaking change: `productionChunks` experiment to enable/disable long-term caching plugins [[#330](https://github.com/Shopify/sewing-kit/pull/330)]
1071
1072### Changed
1073
1074- Breaking change: Long-term caching naming is enabled for all projects (a side-effect of [#330](https://github.com/Shopify/sewing-kit/pull/330))
1075
1076## [0.12.8] - 2017-10-11
1077
1078### Added
1079
1080- Suppress auto-import of Polaris CSS globals with `plugins.sass({autoImportPolaris: false})` [[#307](https://github.com/Shopify/sewing-kit/pull/307)]
1081- Toggle [`lodash-webpack-plugin`](https://github.com/lodash/lodash-webpack-plugin]) on/off via `plugins.experiments` [[#309](https://github.com/Shopify/sewing-kit/pull/309)]
1082 - Defaults to `false`
1083- `sewing-kit test` now updates Jest snapshots if `--update-snapshot` is an argument [[#318](https://github.com/Shopify/sewing-kit/pull/318)]
1084
1085### Changed
1086
1087- Enable `.ts`/`.tsx` compilation if `typescript` is a development dependency [[#308](https://github.com/Shopify/sewing-kit/pull/308)]
1088
1089## [0.12.7] - 2017-10-05
1090
1091### Added
1092
1093- Automatic `postcss` config for projects that don't have a `postcss.config.js` file [[#296](https://github.com/Shopify/sewing-kit/pull/296)]
1094
1095### Changed
1096
1097- More README details [[#256](https://github.com/Shopify/sewing-kit/pull/256)]
1098
1099### Fixed
1100
1101- Fix server debugging for node@8 [[#301](https://github.com/Shopify/sewing-kit/pull/301)]
1102
1103## [0.12.6] - 2017-10-02
1104
1105### Changed
1106
1107- Use `babel-preset-env` even in projects that use `sprockets-commoner` [[#284](https://github.com/Shopify/sewing-kit/pull/284)]
1108
1109### Fixed
1110
1111- Fixed an issue where adding a custom webpack resolver for `csv` files broke jest. [[#294](https://github.com/Shopify/sewing-kit/pull/294)]
1112
1113## [0.12.5] - 2017-09-19
1114
1115### Added
1116
1117- You can now pass a `url` option to the Jest config plugin in order to set the root URL for your tests (reflected in `window.location`) [[#278](https://github.com/Shopify/sewing-kit/pull/278)]
1118
1119* In development mode, requesting a `vendor`/`js` path will return a link to a local vendor DLL [[#281](https://github.com/Shopify/sewing-kit/pull/281)]
1120
1121### Fixed
1122
1123- Fixed an issue where imports not beginning in `tests` were mapped to the tests directory [[#278](https://github.com/Shopify/sewing-kit/pull/278)]
1124
1125### Changed
1126
1127- You no longer need to include a `.babelrc` at the root of your project for tests to work correctly [[#278](https://github.com/Shopify/sewing-kit/pull/278)]
1128- Jest and its typings have been added as a dependency, so projects do not need to manually install them [[#278](https://github.com/Shopify/sewing-kit/pull/278)]
1129
1130## [0.12.4] - 2017-09-18
1131
1132### Added
1133
1134- `sewing-kit playground` spins up a hot-reloading playground [[#255](https://github.com/Shopify/sewing-kit/pull/255)]
1135
1136### Fixed
1137
1138- `.scss` linter now skips all `node_modules` folders
1139- Vendor DLL libraries are no longer duplicated in other development bundles [[#279](https://github.com/Shopify/sewing-kit/pull/279)]
1140
1141## [0.12.3] - 2017-09-13
1142
1143### Added
1144
1145- `sewing-kit lint` now ignores JavaScript files generated by Rails (`tmp`, `public`) [[#267](https://github.com/Shopify/sewing-kit/pull/267)]
1146- The new `railgun.yml` file is used for the dev server hostname [[#275](https://github.com/Shopify/sewing-kit/pull/275)]
1147
1148## [0.12.2] - 2017-09-07
1149
1150### Fixed
1151
1152- Embedded app production builds no longer attempt to access non-existent esnext files [[#266](https://github.com/Shopify/sewing-kit/pull/266)]
1153
1154### Added
1155
1156- Optimize lodash builds using babel-plugin-lodash & lodash-webpack-plugin [[#257](https://github.com/Shopify/sewing-kit/pull/257)]
1157
1158## [0.12.1] - 2017-09-06
1159
1160### Added
1161
1162- Vendor bundle hash is no longer changed by dynamic imports [[#228](https://github.com/Shopify/sewing-kit/pull/228)]
1163
1164### Changed
1165
1166- Real world development/production defaults for `publicPath` in Rails projects [[#258](https://github.com/Shopify/sewing-kit/pull/258)]
1167- `packages` tests are now included in `--app-only` runs [[#251](https://github.com/Shopify/sewing-kit/pull/251)]
1168
1169## [0.12.0] - 2017-08-30
1170
1171### Added
1172
1173- CSS minification for production assets [[#236](https://github.com/Shopify/sewing-kit/pull/236)]
1174- Add offline GraphQL schema [[#239](https://github.com/Shopify/sewing-kit/pull/239)]
1175- Vendor caching support in production using `CommonsChunkPlugin` [[#248](https://github.com/Shopify/sewing-kit/pull/248)]
1176 - Creates a `vendor` and `runtime` chunk
1177 - Supports consistent vendor caching when app modules are added
1178 - Supports consistent vendor caching when new entries are added
1179
1180## [0.11.1] - 2017-08-23
1181
1182### Added
1183
1184- `sewing-kit test` now accepts a path pattern parameter that filters out non-matching tests from execution [[#222](https://github.com/Shopify/sewing-kit/pull/222)]
1185 - e.g., `sewing-kit test Card` will run only tests with `Card` in their file path
1186- TypeScript errors now use pretty formatting [[#224](https://github.com/Shopify/sewing-kit/pull/224)]
1187
1188## [0.11.0] - 2017-08-18
1189
1190### Changed
1191
1192- `fastProductionBuild` now enables `hard-source-plugin` in production builds [[#214](https://github.com/Shopify/sewing-kit/pull/214)]
1193- `.svg` files are now processed by [Shopify's icon-loader](https://github.com/Shopify/images/blob/3e92d7960c2bf6b9bdea1e96652b99885d0eca9f/icon-loader.js) [[#202](https://github.com/Shopify/sewing-kit/pull/202)]
1194 - This replaces `white` fills with `currentColor`, and exports the svg's body as an importable JS module
1195 - A wrapper component is required to display the stringified SVG (a la [Polaris' `Icon` UI component](https://github.com/Shopify/polaris/blob/fb244772173a91c307492e89f515d40363fb7a61/src/components/Icon/Icon.tsx#L115))
1196- App tests with GraphQL types no longer depend on a full build [[#216](https://github.com/Shopify/sewing-kit/pull/216)]
1197
1198## [0.10.1] - 2017-08-12
1199
1200### Changed
1201
1202- `env.isCI` returns true when `ENV['CI'] == '1'` [[#203](https://github.com/Shopify/sewing-kit/pull/203)]
1203
1204## [0.10.0] - 2017-08-11
1205
1206### Changed
1207
1208- Updated webpack@3 (just a version bump; no new plugin integration, yet) [[#187](https://github.com/Shopify/sewing-kit/pull/187)]
1209- Rails projects should build faster. Cacheable build resources are now stores in a directory that buildkite shares between all container builds. [[#198](https://github.com/Shopify/sewing-kit/pull/198)]
1210
1211### Fixed
1212
1213- When using `fastProductionBuild`, CSS asset hashes match their content hash again (disabled `cheap-source-maps`) [[#199](https://github.com/Shopify/sewing-kit/pull/199)]
1214
1215## [0.9.0] - 2017-08-10
1216
1217### Changed
1218
1219- Uses `@shopify/polaris@1.3.1` [[#164](https://github.com/Shopify/sewing-kit/pull/164)]
1220- `typescript` is no longer a mandatory dependency for consumers [[#164](https://github.com/Shopify/sewing-kit/pull/164)]
1221
1222## [0.8.0] - 2017-08-09
1223
1224### Changed
1225
1226- Uses `@shopify/polaris@1.2.1`
1227- Uses `typescript@2.3.3` (this version allows destructuring of potentially undefined arguments in `.d.ts` files)
1228- `sewing-kit.config.js` can now define custom paths (via `plugins.paths`)
1229
1230## [0.7.0] - 2017-08-03
1231
1232### Added
1233
1234- `graphql-typescript-definitions` now runs in watch mode [[#171](https://github.com/Shopify/sewing-kit/pull/171)]
1235- End to end test for Polaris development builds [[#178](https://github.com/Shopify/sewing-kit/pull/178)]
1236- `fastProductionBuild` experiment [[#178](https://github.com/Shopify/sewing-kit/pull/178), [#184](https://github.com/Shopify/sewing-kit/pull/184)]
1237 - Allows production builds to use a precompiled version of Polaris with fully namespaced CSS classes
1238 - Turns off typeschecking
1239 - Uses `check-source-maps` for faster compilation
1240- End to end test for more consistent chunk names [[#175](https://github.com/Shopify/sewing-kit/pull/175)]
1241
1242### Fixed
1243
1244- GraphQL lint now lints mutations [[#183](https://github.com/Shopify/sewing-kit/pull/183)]
1245- GraphQL no longer outputs meaningless pages of stack traces on error [[#183](https://github.com/Shopify/sewing-kit/pull/183)]
1246
1247### Removed
1248
1249- Redundant static asset middleware route in development mode [[#170](https://github.com/Shopify/sewing-kit/pull/170)]
1250
1251[0.12.4]: https://github.com/Shopify/sewing-kit/compare/v0.12.3...v0.12.4
1252[0.12.5]: https://github.com/Shopify/sewing-kit/compare/v0.12.4...v0.12.5
1253[0.12.6]: https://github.com/Shopify/sewing-kit/compare/v0.12.5...v0.12.6
1254[0.12.7]: https://github.com/Shopify/sewing-kit/compare/v0.12.6...v0.12.7
1255[0.12.8]: https://github.com/Shopify/sewing-kit/compare/v0.12.7...v0.12.8
1256[0.13.0]: https://github.com/Shopify/sewing-kit/compare/v0.12.8...v0.13.0
1257[0.14.0]: https://github.com/Shopify/sewing-kit/compare/v0.13.0...v0.14.0
1258[0.14.1]: https://github.com/Shopify/sewing-kit/compare/v0.14.0...v0.14.1
1259[0.14.2]: https://github.com/Shopify/sewing-kit/compare/v0.14.1...v0.14.2
1260[0.14.3]: https://github.com/Shopify/sewing-kit/compare/v0.14.2...v0.14.3
1261[0.14.4]: https://github.com/Shopify/sewing-kit/compare/v0.14.3...v0.14.4
1262[0.15.0]: https://github.com/Shopify/sewing-kit/compare/v0.14.4...v0.15.0
1263[0.16.0]: https://github.com/Shopify/sewing-kit/compare/v0.15.0...v0.16.0
1264[0.16.1]: https://github.com/Shopify/sewing-kit/compare/v0.16.0...v0.16.1
1265[0.17.0]: https://github.com/Shopify/sewing-kit/compare/v0.16.1...v0.17.0
1266[0.17.1]: https://github.com/Shopify/sewing-kit/compare/v0.17.0...v0.17.1
1267[0.18.0]: https://github.com/Shopify/sewing-kit/compare/v0.17.1...v0.18.0
1268[0.19.0]: https://github.com/Shopify/sewing-kit/compare/v0.18.0...v0.19.0
1269[0.19.1]: https://github.com/Shopify/sewing-kit/compare/v0.19.0...v0.19.1
1270[0.20.0]: https://github.com/Shopify/sewing-kit/compare/v0.19.1...v0.20.0
1271[0.21.0]: https://github.com/Shopify/sewing-kit/compare/v0.20.0...v0.21.0
1272[0.22.0]: https://github.com/Shopify/sewing-kit/compare/v0.21.0...v0.22.0
1273[0.22.1]: https://github.com/Shopify/sewing-kit/compare/v0.22.0...v0.22.1
1274[0.22.2]: https://github.com/Shopify/sewing-kit/compare/v0.22.1...v0.22.2
1275[0.22.3]: https://github.com/Shopify/sewing-kit/compare/v0.22.2...v0.22.3
1276[0.23.0]: https://github.com/Shopify/sewing-kit/compare/v0.22.3...v0.23.0
1277[0.24.0]: https://github.com/Shopify/sewing-kit/compare/v0.23.0...v0.24.0
1278[0.25.0]: https://github.com/Shopify/sewing-kit/compare/v0.24.0...v0.25.0
1279[0.26.0]: https://github.com/Shopify/sewing-kit/compare/v0.25.0...v0.26.0
1280[0.27.0]: https://github.com/Shopify/sewing-kit/compare/v0.26.0...v0.27.0
1281[0.27.1]: https://github.com/Shopify/sewing-kit/compare/v0.27.0...v0.27.1
1282[0.28.0]: https://github.com/Shopify/sewing-kit/compare/v0.27.1...v0.28.0
1283[0.28.1]: https://github.com/Shopify/sewing-kit/compare/v0.28.0...v0.28.1
1284[0.29.0]: https://github.com/Shopify/sewing-kit/compare/v0.28.1...v0.29.0
1285[0.29.1]: https://github.com/Shopify/sewing-kit/compare/v0.29.0...v0.29.1
1286[0.29.2]: https://github.com/Shopify/sewing-kit/compare/v0.29.1...v0.29.2
1287[0.29.3]: https://github.com/Shopify/sewing-kit/compare/v0.29.2...v0.29.3
1288[0.29.4]: https://github.com/Shopify/sewing-kit/compare/v0.29.3...v0.29.4
1289[0.29.5]: https://github.com/Shopify/sewing-kit/compare/v0.29.3...v0.29.5
1290[0.29.6]: https://github.com/Shopify/sewing-kit/compare/v0.29.5...v0.29.6
1291[0.29.7]: https://github.com/Shopify/sewing-kit/compare/v0.29.6...v0.29.7
1292[0.29.8]: https://github.com/Shopify/sewing-kit/compare/v0.29.7...v0.29.8
1293[0.29.9]: https://github.com/Shopify/sewing-kit/compare/v0.29.8...v0.29.9
1294[0.29.10]: https://github.com/Shopify/sewing-kit/compare/v0.29.9...v0.29.10
1295[0.29.11]: https://github.com/Shopify/sewing-kit/compare/v0.29.10...v0.29.11
1296[0.29.12]: https://github.com/Shopify/sewing-kit/compare/v0.29.11...v0.29.12
1297[0.29.13]: https://github.com/Shopify/sewing-kit/compare/v0.29.12...v0.29.13
1298[0.29.14]: https://github.com/Shopify/sewing-kit/compare/v0.29.13...v0.29.14
1299[0.29.15]: https://github.com/Shopify/sewing-kit/compare/v0.29.14...v0.29.15
1300[0.29.16]: https://github.com/Shopify/sewing-kit/compare/v0.29.15...v0.29.16
1301[0.29.17]: https://github.com/Shopify/sewing-kit/compare/v0.29.16...v0.29.17
1302[0.30.0]: https://github.com/Shopify/sewing-kit/compare/v0.29.17...v0.30.0
1303[0.30.1]: https://github.com/Shopify/sewing-kit/compare/v0.30.0...v0.30.1
1304[0.40.0]: https://github.com/Shopify/sewing-kit/compare/v0.30.1...v0.40.0
1305[0.41.0]: https://github.com/Shopify/sewing-kit/compare/v0.40.0...v0.41.0
1306[0.41.1]: https://github.com/Shopify/sewing-kit/compare/v0.41.0...v0.41.1
1307[0.42.0]: https://github.com/Shopify/sewing-kit/compare/v0.41.1...v0.42.0
1308[0.43.0]: https://github.com/Shopify/sewing-kit/compare/v0.42.0...v0.43.0
1309[0.44.0]: https://github.com/Shopify/sewing-kit/compare/v0.43.0...v0.44.0
1310[0.45.0]: https://github.com/Shopify/sewing-kit/compare/v0.44.0...v0.45.0
1311[0.45.1]: https://github.com/Shopify/sewing-kit/compare/v0.45.0...v0.45.1
1312[0.45.2]: https://github.com/Shopify/sewing-kit/compare/v0.45.1...v0.45.2
1313[0.45.3]: https://github.com/Shopify/sewing-kit/compare/v0.45.2...v0.45.3
1314[0.45.4]: https://github.com/Shopify/sewing-kit/compare/v0.45.3...v0.45.4
1315[0.45.5]: https://github.com/Shopify/sewing-kit/compare/v0.45.4...v0.45.5
1316[0.45.6]: https://github.com/Shopify/sewing-kit/compare/v0.45.5...v0.45.6
1317[0.46.0]: https://github.com/Shopify/sewing-kit/compare/v0.45.6...v0.46.0
1318[0.47.0]: https://github.com/Shopify/sewing-kit/compare/v0.46.0...v0.47.0
1319[0.47.1]: https://github.com/Shopify/sewing-kit/compare/v0.47.0...v0.47.1
1320[0.48.0]: https://github.com/Shopify/sewing-kit/compare/v0.47.1...v0.48.0
1321[0.48.1]: https://github.com/Shopify/sewing-kit/compare/v0.48.0...v0.48.1
1322[0.48.2]: https://github.com/Shopify/sewing-kit/compare/v0.48.1...v0.48.2
1323[0.49.0]: https://github.com/Shopify/sewing-kit/compare/v0.48.2...v0.49.0
1324[0.49.1]: https://github.com/Shopify/sewing-kit/compare/v0.49.0...v0.49.1
1325[0.50.0]: https://github.com/Shopify/sewing-kit/compare/v0.49.1...v0.50.0
1326[0.50.1]: https://github.com/Shopify/sewing-kit/compare/v0.50.0...v0.50.1
1327[0.51.0]: https://github.com/Shopify/sewing-kit/compare/v0.50.1...v0.51.0
1328[0.51.1]: https://github.com/Shopify/sewing-kit/compare/v0.51.0...v0.51.1
1329[0.52.0]: https://github.com/Shopify/sewing-kit/compare/v0.51.1...v0.52.0
1330[0.53.0]: https://github.com/Shopify/sewing-kit/compare/v0.52.0...v0.53.0
1331[0.53.1]: https://github.com/Shopify/sewing-kit/compare/v0.53.0...v0.53.1
1332[0.54.0]: https://github.com/Shopify/sewing-kit/compare/v0.53.1...v0.54.0
1333[0.55.0]: https://github.com/Shopify/sewing-kit/compare/v0.54.0...v0.55.0
1334[0.56.0]: https://github.com/Shopify/sewing-kit/compare/v0.55.0...v0.56.0
1335[0.56.1]: https://github.com/Shopify/sewing-kit/compare/v0.56.0...v0.56.1
1336[0.57.0]: https://github.com/Shopify/sewing-kit/compare/v0.56.1...v0.57.0
1337[0.58.0]: https://github.com/Shopify/sewing-kit/compare/v0.57.0...v0.58.0
1338[0.58.1]: https://github.com/Shopify/sewing-kit/compare/v0.58.0...v0.58.1
1339[0.59.0]: https://github.com/Shopify/sewing-kit/compare/v0.58.1...v0.59.0
1340[0.60.0]: https://github.com/Shopify/sewing-kit/compare/v0.59.0...v0.60.0
1341[0.60.1]: https://github.com/Shopify/sewing-kit/compare/v0.60.0...v0.60.1
1342[0.60.2]: https://github.com/Shopify/sewing-kit/compare/v0.60.1...v0.60.2
1343[0.60.3]: https://github.com/Shopify/sewing-kit/compare/v0.60.2...v0.60.3
1344[0.61.0]: https://github.com/Shopify/sewing-kit/compare/v0.60.3...v0.61.0
1345[unreleased]: https://github.com/Shopify/sewing-kit/compare/v0.61.0...HEAD