{"action":"created","issue":{"url":"https://api.github.com/repos/gucong3000/gulp-reporter/issues/37","repository_url":"https://api.github.com/repos/gucong3000/gulp-reporter","labels_url":"https://api.github.com/repos/gucong3000/gulp-reporter/issues/37/labels{/name}","comments_url":"https://api.github.com/repos/gucong3000/gulp-reporter/issues/37/comments","events_url":"https://api.github.com/repos/gucong3000/gulp-reporter/issues/37/events","html_url":"https://github.com/gucong3000/gulp-reporter/pull/37","id":226764608,"number":37,"title":"Update postcss to the latest version 🚀","user":{"login":"greenkeeper[bot]","id":23040076,"avatar_url":"https://avatars1.githubusercontent.com/u/13812225?v=3","gravatar_id":"","url":"https://api.github.com/users/greenkeeper%5Bbot%5D","html_url":"https://github.com/integration/greenkeeper","followers_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/followers","following_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/repos","events_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/received_events","type":"Bot","site_admin":false},"labels":[{"id":520794158,"url":"https://api.github.com/repos/gucong3000/gulp-reporter/labels/greenkeeper","name":"greenkeeper","color":"00c775","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-05-06T11:57:09Z","updated_at":"2017-05-07T11:46:03Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/gucong3000/gulp-reporter/pulls/37","html_url":"https://github.com/gucong3000/gulp-reporter/pull/37","diff_url":"https://github.com/gucong3000/gulp-reporter/pull/37.diff","patch_url":"https://github.com/gucong3000/gulp-reporter/pull/37.patch"},"body":"\n\n## Version **6.0.0** of [postcss](https://github.com/postcss/postcss) just got published.\n\n<table>\n  <tr>\n    <th align=left>\n      Dependency\n    </td>\n    <td>\n      postcss\n    </td>\n  </tr>\n  <tr>\n    <th align=left>\n      Current Version\n    </td>\n    <td>\n      5.2.17\n    </td>\n  </tr>\n  <tr>\n    <th align=left>\n      Type\n    </td>\n    <td>\n      devDependency\n    </td>\n  </tr>\n</table>\n\nThe version **6.0.0** is **not covered** by your **current version range**.\n\nWithout accepting this pull request your project will work just like it did before. There might be a bunch of new features, fixes and perf improvements that the maintainers worked on for you though.\n\nI recommend you look into these changes and try to get onto the latest version of postcss.\nGiven that you have a decent test suite, a passing build is a strong indicator that you can take advantage of these changes by merging the proposed change into your project. Otherwise this branch is a great starting point for you to work on the update.\n\n\n---\n\n\n<details>\n<summary>Release Notes</summary>\n<strong>6.0 “Marquis Orias”</strong>\n\n<p><a href=\"https://cloud.githubusercontent.com/assets/19343/25771868/5c010f02-325d-11e7-9ab6-7e962eb3b601.png\" target=\"_blank\"><img src=\"https://cloud.githubusercontent.com/assets/19343/25771868/5c010f02-325d-11e7-9ab6-7e962eb3b601.png\" align=\"right\" width=\"200\" height=\"200\" alt=\"Marquis Orias seal\" style=\"max-width:100%;\"></a></p>\n<p>PostCSS 6.0 dropped Node.js 0.12 support, cleaned <code>raws</code> API, added <code>@apply</code> support and uses less memory.</p>\n<h3>Breaking Changes</h3>\n<p>Node.js <a href=\"https://urls.greenkeeper.io/nodejs/LTS\">stopped</a> 0.12 support in January 01. So PostCSS dropped Node.js 0.12 from all tests. Please update your Node.js to 4.0 or 7.0 versions.</p>\n<p>In 6.0 we fixed our mistakes in API design. First, if node already had a parent, insert methods (<code>append</code>, <code>insertAfter</code>, etc) will not clone it anymore. In 6.0 inserts methods will remove inserted node from previous parent:</p>\n<div class=\"highlight highlight-source-js\"><pre><span class=\"pl-smi\">parent1</span>.<span class=\"pl-smi\">nodes</span>.<span class=\"pl-c1\">length</span> <span class=\"pl-c\"><span class=\"pl-c\">//</span>=&gt; 3</span>\n<span class=\"pl-smi\">parent2</span>.<span class=\"pl-c1\">append</span>(<span class=\"pl-smi\">parent1</span>.<span class=\"pl-smi\">nodes</span>[<span class=\"pl-c1\">0</span>])\n<span class=\"pl-smi\">parent1</span>.<span class=\"pl-smi\">nodes</span>.<span class=\"pl-c1\">length</span> <span class=\"pl-c\"><span class=\"pl-c\">//</span>=&gt; 2</span></pre></div>\n<p>So, right now there are no needs to <code>moveTo</code>, <code>moveAfter</code> and <code>moveBefore</code> methods. Regular insert methods have move behavior. In this case, we deprecated move methods.</p>\n<p>Also <code>Node#clone</code> now return the exactly copy of the node. In 6.0 it stops to clean <code>raws</code>.</p>\n<div class=\"highlight highlight-source-js\"><pre><span class=\"pl-smi\">node</span>.<span class=\"pl-smi\">raws</span>.<span class=\"pl-smi\">before</span> <span class=\"pl-c\"><span class=\"pl-c\">//</span>=&gt; \"\\n  \"</span>\n<span class=\"pl-k\">const</span> <span class=\"pl-c1\">clone</span> <span class=\"pl-k\">=</span> <span class=\"pl-smi\">node</span>.<span class=\"pl-en\">clone</span>()\n<span class=\"pl-smi\">clone</span>.<span class=\"pl-smi\">raws</span>.<span class=\"pl-smi\">before</span> <span class=\"pl-c\"><span class=\"pl-c\">//</span>=&gt; \"\\n  \"</span></pre></div>\n<p>Every PostCSS plugin has <code>plugin.process</code> shortcut. In 6.0 we split process and plugin options in this shortcut:</p>\n<div class=\"highlight highlight-source-js\"><pre><span class=\"pl-k\">const</span> <span class=\"pl-c1\">plugin</span> <span class=\"pl-k\">=</span> <span class=\"pl-smi\">postcss</span>.<span class=\"pl-en\">plugin</span>(<span class=\"pl-s\"><span class=\"pl-pds\">'</span>postcss-awesome<span class=\"pl-pds\">'</span></span>, <span class=\"pl-smi\">colors</span> <span class=\"pl-k\">=&gt;</span> {\n  …\n})\n<span class=\"pl-smi\">plugin</span>.<span class=\"pl-en\">process</span>(css, { from<span class=\"pl-k\">:</span> <span class=\"pl-s\"><span class=\"pl-pds\">'</span>app.css<span class=\"pl-pds\">'</span></span> }, colors).<span class=\"pl-smi\">css</span></pre></div>\n<p>In the new major release, we finally remove all deprecated methods from PostCSS 4.0. It should not be a big problem because we show deprecated warnings for them for 2 years. Most of the plugins updated their API.</p>\n<h3>New Methods and Properties</h3>\n<p>Since we removed deprecated methods from PostCSS 4.0, in 6.0 we were free to add <code>before()</code> and <code>after()</code> shortcuts, similar to DOM API methods.</p>\n<div class=\"highlight highlight-source-js\"><pre><span class=\"pl-smi\">node1</span>.<span class=\"pl-c1\">before</span>(node2)\n<span class=\"pl-c\"><span class=\"pl-c\">//</span> is equal too</span>\n<span class=\"pl-smi\">node1</span>.<span class=\"pl-c1\">parent</span>.<span class=\"pl-c1\">insertBefore</span>(node1, node2)</pre></div>\n<p>Chrome 51 started to support “native CSS mixins” from <a href=\"https://urls.greenkeeper.io/tabatkins\" class=\"user-mention\">@tabatkins</a> <a href=\"https://tabatkins.github.io/specs/css-apply-rule/\">spec</a> under the flag:</p>\n<div class=\"highlight highlight-source-css\"><pre><span class=\"pl-e\">:root</span> {\n  <span class=\"pl-v\">--clearfix</span>: {\n    display: <span class=\"pl-c1\">table</span>;\n    <span class=\"pl-c1\"><span class=\"pl-c1\">clear</span></span>: <span class=\"pl-c1\">both</span>;\n    <span class=\"pl-c1\"><span class=\"pl-c1\">content</span></span>: <span class=\"pl-s\"><span class=\"pl-pds\">'</span><span class=\"pl-pds\">'</span></span>;\n  };\n}\n\n<span class=\"pl-e\">.box</span><span class=\"pl-e\">:after</span>{\n  @<span class=\"pl-c1\">apply</span> <span class=\"pl-v\">--clearfix</span>;\n}</pre></div>\n<p>PostCSS 5.0 could parse it pretty well, but in some cases, it lost semicolon after mixin definition. In PostCSS 6.0 parser we covered this case, and node rules have <code>Rule#raws.ownSemicolon</code> for own semicolon.</p>\n<h3>Stream Parser</h3>\n<p>In PostCSS 5.0 tokenizing and parsing were separated steps. As a result, we put all tokens to memory between steps. It works well in most of the cases. But memory usage was pretty big when you try to parse really big CSS files (more than 25 MB).</p>\n<p>In 6.0 <a href=\"https://urls.greenkeeper.io/hzlmn\" class=\"user-mention\">@hzlmn</a> rewrote parser, and now parser and tokenizer work together (stream parser). As a result, we put only a few latest tokens in memory. So 6.0 will use less memory.</p>\n<h3>Package Size</h3>\n<p>We care about <code>node_modules</code> size problem. So in 6.0 <a href=\"https://urls.greenkeeper.io/lahmatiy\" class=\"user-mention\">@lahmatiy</a> and <a href=\"https://urls.greenkeeper.io/h0tc0d3\" class=\"user-mention\">@h0tc0d3</a> removed <code>js-base64</code> dependency to use native Node.js and Browsers ways to base64 encoding.</p>\n<p>Also, PostCSS was moved to <code>babel-preset-env</code>. Instead of regular <code>babel</code>, it will compile only necessary parts of ES6. So build in npm packages will be cleaner. Current <a href=\"https://urls.greenkeeper.io/ai/browserslist\">browserslist</a> config for <code>babel-preset-env</code> is <code>last 1 version</code> and <code>node 4</code>.</p>\n<h3>Other Changes</h3>\n<ul>\n<li>Fix error message on single <code>:</code> in CSS.</li>\n<li>Move tests to Jest.</li>\n<li>Clean up test (by <a href=\"https://urls.greenkeeper.io/gkal19\" class=\"user-mention\">@gkal19</a>).</li>\n</ul>\n</details>\n\n\n<details>\n  <summary>Not sure how things should work exactly?</summary>\n\n  There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html) and of course you may always [ask my humans](https://github.com/greenkeeperio/greenkeeper/issues/new).\n</details>\n\n\n---\n\n\nYour [Greenkeeper](https://greenkeeper.io) Bot :palm_tree:\n\n"},"comment":{"url":"https://api.github.com/repos/gucong3000/gulp-reporter/issues/comments/299700751","html_url":"https://github.com/gucong3000/gulp-reporter/pull/37#issuecomment-299700751","issue_url":"https://api.github.com/repos/gucong3000/gulp-reporter/issues/37","id":299700751,"user":{"login":"greenkeeper[bot]","id":23040076,"avatar_url":"https://avatars1.githubusercontent.com/u/13812225?v=3","gravatar_id":"","url":"https://api.github.com/users/greenkeeper%5Bbot%5D","html_url":"https://github.com/integration/greenkeeper","followers_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/followers","following_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/repos","events_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/greenkeeper%5Bbot%5D/received_events","type":"Bot","site_admin":false},"created_at":"2017-05-07T11:46:03Z","updated_at":"2017-05-07T11:46:03Z","body":"## Version **6.0.1** just got published. \n[Update to this version instead 🚀](https://github.com/gucong3000/gulp-reporter/compare/greenkeeper%2Fpostcss-6.0.1?expand=1) \n\n<details>\n<summary>Release Notes</summary>\n<strong>6.0.1</strong>\n\n<ul>\n<li>Fix parser extensibility to use it in <a href=\"https://urls.greenkeeper.io/postcss/postcss-safe-parser\">Safe Parser</a>.</li>\n</ul>\n</details>\n"}}
{"actor":{"display_login":"greenkeeper"}}