From d8a0c7bd8baa6b79c47d5206d76c1aa884209e28 Mon Sep 17 00:00:00 2001 From: hypnos Date: Mon, 30 Oct 2017 21:49:27 +0300 Subject: [PATCH 01/13] Update jest-image-snapshot to 2.1.0 --- package.json | 2 +- yarn.lock | 89 +++++++++++----------------------------------------- 2 files changed, 19 insertions(+), 72 deletions(-) diff --git a/package.json b/package.json index 423b93fcda1..3783b0b5bb7 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "inquirer": "^3.2.3", "jest": "^21.2.0", "jest-enzyme": "^4.0.1", - "jest-image-snapshot": "^1.0.1", + "jest-image-snapshot": "^2.1.0", "lerna": "^2.4.0", "lint-staged": "^4.3.0", "lodash": "^4.17.4", diff --git a/yarn.lock b/yarn.lock index 4247badd7aa..f63e56fdc03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -407,10 +407,6 @@ art@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/art/-/art-0.10.1.tgz#38541883e399225c5e193ff246e8f157cf7b2146" -asap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/asap/-/asap-1.0.0.tgz#b2a45da5fdfa20b0496fc3768cc27c12fa916a7d" - asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -481,10 +477,6 @@ async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" -async@0.1.15: - version "0.1.15" - resolved "https://registry.yarnpkg.com/async/-/async-0.1.15.tgz#2180eaca2cf2a6ca5280d41c0585bec9b3e49bd3" - async@2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" @@ -2082,14 +2074,6 @@ binary-extensions@^1.0.0: version "1.10.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" -blink-diff@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/blink-diff/-/blink-diff-1.0.13.tgz#80e3df69de804b30d40c70f041e983841ecda899" - dependencies: - pngjs-image "~0.11.5" - preceptor-core "~0.10.0" - promise "6.0.0" - block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" @@ -5842,7 +5826,7 @@ iconv-lite@0.4.13: version "0.4.13" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" -iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@^0.4.5, iconv-lite@^0.4.8, iconv-lite@~0.4.13: +iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@^0.4.5, iconv-lite@~0.4.13: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" @@ -6688,14 +6672,15 @@ jest-haste-map@^21.2.0: sane "^2.0.0" worker-farm "^1.3.1" -jest-image-snapshot@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-1.0.1.tgz#9b92f57b46c29627b2e9da6e07c27ee784be95a4" +jest-image-snapshot@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-2.1.0.tgz#a8863f38de868e0175335dd9a1b170650e0bcdc9" dependencies: - blink-diff "^1.0.13" chalk "^1.1.3" lodash "^4.17.4" mkdirp "^0.5.1" + pixelmatch "^4.0.2" + pngjs "^3.3.0" jest-jasmine2@^20.0.4: version "20.0.4" @@ -7644,14 +7629,6 @@ log-update@^1.0.2: ansi-escapes "^1.0.0" cli-cursor "^1.0.2" -log4js@0.6.20: - version "0.6.20" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.20.tgz#5382993d038ee2e453de21c82f4b1beeed2c48fa" - dependencies: - async "0.1.15" - readable-stream "~1.0.2" - semver "~1.1.4" - loglevel@^1.4.1: version "1.5.1" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.5.1.tgz#189078c94ab9053ee215a0acdbf24244ea0f6502" @@ -8600,7 +8577,7 @@ package-json@^4.0.0: registry-url "^3.0.3" semver "^5.1.0" -pako@^0.2.6, pako@~0.2.0: +pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" @@ -8814,6 +8791,12 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +pixelmatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" + dependencies: + pngjs "^3.0.0" + pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" @@ -8861,20 +8844,9 @@ pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" -pngjs-image@~0.11.5: - version "0.11.7" - resolved "https://registry.yarnpkg.com/pngjs-image/-/pngjs-image-0.11.7.tgz#631dd59924569fc82ffebae0d5d53f85f54dab62" - dependencies: - iconv-lite "^0.4.8" - pako "^0.2.6" - pngjs "2.3.1" - request "^2.55.0" - stream-buffers "1.0.1" - underscore "1.7.0" - -pngjs@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-2.3.1.tgz#11d1e12b9cb64d63e30c143a330f4c1f567da85f" +pngjs@^3.0.0, pngjs@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.3.0.tgz#1f5730c189c94933b81beda2ab2f8e2855263a8f" podda@^1.2.2: version "1.2.2" @@ -9184,13 +9156,6 @@ postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.13, postcss@^6.0.2, postcss@^6.0.6, source-map "^0.6.1" supports-color "^4.4.0" -preceptor-core@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/preceptor-core/-/preceptor-core-0.10.0.tgz#d906e88760c6fb92121f942b393c91dfcf7618a4" - dependencies: - log4js "0.6.20" - underscore "1.7.0" - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -9276,12 +9241,6 @@ promise.prototype.finally@^3.0.0: es-abstract "^1.8.2" function-bind "^1.1.1" -promise@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-6.0.0.tgz#456538dd4afdd25dc7d0f52a5201ed242b7c109d" - dependencies: - asap "~1.0.0" - promise@8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.1.tgz#e45d68b00a17647b6da711bf85ed6ed47208f450" @@ -9903,7 +9862,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@1.0, readable-stream@~1.0.2: +readable-stream@1.0: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -10469,7 +10428,7 @@ request@2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" -request@^2.55.0, request@^2.79.0, request@^2.83.0: +request@^2.79.0, request@^2.83.0: version "2.83.0" resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" dependencies: @@ -10723,10 +10682,6 @@ semver-diff@^2.0.0: version "5.4.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" -semver@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-1.1.4.tgz#2e5a4e72bab03472cc97f72753b4508912ef5540" - semver@~5.0.1: version "5.0.3" resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" @@ -11146,10 +11101,6 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" -stream-buffers@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-1.0.1.tgz#9a44a37555f96a5b78a5a765f0c48446cb160b8c" - stream-buffers@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" @@ -11800,10 +11751,6 @@ undefsafe@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" -underscore@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" - underscore@~1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" From 6398811413807b42d53326847cfcd50d42b3b84c Mon Sep 17 00:00:00 2001 From: Chad Fawcett Date: Mon, 30 Oct 2017 16:49:28 -0700 Subject: [PATCH 02/13] Change 'is' to 'these' --- docs/pages/basics/guide-react/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pages/basics/guide-react/index.md b/docs/pages/basics/guide-react/index.md index da950fc4f00..dd955c0dc84 100644 --- a/docs/pages/basics/guide-react/index.md +++ b/docs/pages/basics/guide-react/index.md @@ -31,7 +31,7 @@ npm i --save-dev @storybook/react ## Add react and react-dom -Make sure that you have `react` and `react-dom` in your dependencies as well because we list is as a peerDependency: +Make sure that you have `react` and `react-dom` in your dependencies as well because we list these as a peerDependency: ```sh npm i --save react react-dom From 6211b9bc3fc304363805729d71f4d2265b807479 Mon Sep 17 00:00:00 2001 From: hypnos Date: Tue, 31 Oct 2017 02:51:30 +0300 Subject: [PATCH 03/13] Increase threshold --- integration/examples.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration/examples.test.js b/integration/examples.test.js index 8912f6dff5e..af4dd2a3881 100644 --- a/integration/examples.test.js +++ b/integration/examples.test.js @@ -33,7 +33,7 @@ examples.forEach(({ name, port }) => { expect(screenshot).toMatchImageSnapshot({ customDiffConfig: { - threshold: 0.03, // 3% threshold + threshold: 0.04, // 4% threshold }, customSnapshotIdentifier: name.split('/').join('-'), }); From 20f70e2ee22cb92468418fa2c442b24faced8d8a Mon Sep 17 00:00:00 2001 From: hypnos Date: Tue, 31 Oct 2017 03:00:35 +0300 Subject: [PATCH 04/13] Threshold semantic has changed, see https://github.com/americanexpress/jest-image-snapshot/issues/21 --- integration/examples.test.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/integration/examples.test.js b/integration/examples.test.js index af4dd2a3881..04f77a815b9 100644 --- a/integration/examples.test.js +++ b/integration/examples.test.js @@ -32,9 +32,8 @@ examples.forEach(({ name, port }) => { const screenshot = await page.screenshot({ fullPage: true }); expect(screenshot).toMatchImageSnapshot({ - customDiffConfig: { - threshold: 0.04, // 4% threshold - }, + failureThreshold: 0.03, // 3% threshold, + failureThresholdType: 'percent', customSnapshotIdentifier: name.split('/').join('-'), }); }, From 130f21db40fe33b809666d6e11ba8f00c285b433 Mon Sep 17 00:00:00 2001 From: hypnos Date: Tue, 31 Oct 2017 03:09:34 +0300 Subject: [PATCH 05/13] Increase threshold again --- integration/examples.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration/examples.test.js b/integration/examples.test.js index 04f77a815b9..372c521e2ee 100644 --- a/integration/examples.test.js +++ b/integration/examples.test.js @@ -32,7 +32,7 @@ examples.forEach(({ name, port }) => { const screenshot = await page.screenshot({ fullPage: true }); expect(screenshot).toMatchImageSnapshot({ - failureThreshold: 0.03, // 3% threshold, + failureThreshold: 0.04, // 4% threshold, failureThresholdType: 'percent', customSnapshotIdentifier: name.split('/').join('-'), }); From 77703e66a840ccbcc394eab66fea59b571bfe3da Mon Sep 17 00:00:00 2001 From: Daniel Duan Date: Mon, 30 Oct 2017 21:30:39 -0400 Subject: [PATCH 06/13] bot for closing old issues --- .github/stale.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 00000000000..66c0132042c --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,22 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 45 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 45 +# Issues with these labels will never be considered stale +exemptLabels: + - bug + - 'help wanted' +# Label to use when marking an issue as stale +staleLabel: inactive +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + Hi everyone! Seems like there hasn't been much going on in this issue lately. + If there are still questions, comments, or bugs, please feel free to continue + the discussion. We do try to do some housekeeping every once in a while so + inactive issues will get closed after 90 days. Thanks! +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: > + Hey there, it's me again! I am going to help our maintainers close this issue + so they can focus on development efforts instead. If the issue mentioned is + still a concern, please open a new ticket and mention this old one. Cheers + and thanks for using Storybook! From 01bd82efee3dff6ab4da48dd5ee4de12c4ff12a9 Mon Sep 17 00:00:00 2001 From: Daniel Duan Date: Mon, 30 Oct 2017 22:13:46 -0400 Subject: [PATCH 07/13] target super old posts first and adjust for newer ones --- .github/stale.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/stale.yml b/.github/stale.yml index 66c0132042c..7583f82206a 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,11 +1,15 @@ # Number of days of inactivity before an issue becomes stale -daysUntilStale: 45 +daysUntilStale: 55 # Number of days of inactivity before a stale issue is closed -daysUntilClose: 45 +daysUntilClose: 5 # Issues with these labels will never be considered stale exemptLabels: - bug - 'help wanted' + - 'in progress' + - 'do not merge' + - 'needs review' + # Label to use when marking an issue as stale staleLabel: inactive # Comment to post when marking an issue as stale. Set to `false` to disable From b58fb8b1d94114b8f53b5b7a2cced9baede57812 Mon Sep 17 00:00:00 2001 From: Daniel Duan Date: Mon, 30 Oct 2017 22:17:03 -0400 Subject: [PATCH 08/13] oops wrong math --- .github/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/stale.yml b/.github/stale.yml index 7583f82206a..a5717c95fa5 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,5 +1,5 @@ # Number of days of inactivity before an issue becomes stale -daysUntilStale: 55 +daysUntilStale: 85 # Number of days of inactivity before a stale issue is closed daysUntilClose: 5 # Issues with these labels will never be considered stale From 37a437fe61d87908fb9fc49dd37ccd09af4738b1 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Tue, 31 Oct 2017 22:20:14 +0900 Subject: [PATCH 09/13] Feature Wix example in docs --- docs/pages/examples/_examples.yml | 7 +++++++ docs/pages/examples/thumbnails/wix.png | Bin 0 -> 141230 bytes 2 files changed, 7 insertions(+) create mode 100644 docs/pages/examples/thumbnails/wix.png diff --git a/docs/pages/examples/_examples.yml b/docs/pages/examples/_examples.yml index 64247866060..a57cc7a56a6 100644 --- a/docs/pages/examples/_examples.yml +++ b/docs/pages/examples/_examples.yml @@ -25,6 +25,13 @@ atlassian: description: Atlassian's official UI library. demo: https://atlaskit.atlassian.com/components site: https://atlaskit.atlassian.com/ +wix: + thumbnail: ./thumbnails/wix.png + title: Wix Style React + description: Components that conform to Wix Style + source: https://github.com/wix/wix-style-react + demo: https://wix.github.io/wix-style-react/ + site: https://wix.com buffer: thumbnail: ./thumbnails/buffer.jpg title: Buffer Components diff --git a/docs/pages/examples/thumbnails/wix.png b/docs/pages/examples/thumbnails/wix.png new file mode 100644 index 0000000000000000000000000000000000000000..f0d351c03dd82c4b52068abea11ea7032fb1a58a GIT binary patch literal 141230 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