Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update postcss (major) #970

Closed
wants to merge 1 commit into from
Closed

Update postcss (major) #970

wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Sep 21, 2020

WhiteSource Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
postcss (source) 7.0.36 -> 8.3.6 age adoption passing confidence
postcss-assets 5.0.0 -> 6.0.0 age adoption passing confidence
postcss-attribute-case-insensitive 4.0.1 -> 5.0.0 age adoption passing confidence
postcss-calc 7.0.5 -> 8.0.0 age adoption passing confidence
postcss-color-hex-alpha 6.0.0 -> 7.0.0 age adoption passing confidence
postcss-csso 4.0.0 -> 5.0.1 age adoption passing confidence
postcss-custom-media 7.0.8 -> 8.0.0 age adoption passing confidence
postcss-custom-selectors 5.1.2 -> 6.0.0 age adoption passing confidence
postcss-font-family-system-ui 4.3.0 -> 5.0.0 age adoption passing confidence
postcss-font-variant 4.0.1 -> 5.0.0 age adoption passing confidence
postcss-import 12.0.1 -> 14.0.2 age adoption passing confidence
postcss-loader 4.3.0 -> 6.1.1 age adoption passing confidence
postcss-media-minmax 4.0.0 -> 5.0.0 age adoption passing confidence
postcss-nested 4.2.3 -> 5.0.6 age adoption passing confidence
postcss-nesting 7.0.1 -> 8.0.1 age adoption passing confidence
postcss-property-lookup 2.0.0 -> 3.0.0 age adoption passing confidence
postcss-replace-overflow-wrap 3.0.0 -> 4.0.0 age adoption passing confidence
postcss-reporter 6.0.1 -> 7.0.2 age adoption passing confidence
postcss-scss 2.1.1 -> 4.0.0 age adoption passing confidence
postcss-selector-not 4.0.1 -> 5.0.0 age adoption passing confidence
postcss-url 8.0.0 -> 10.1.3 age adoption passing confidence

Release Notes

postcss/postcss

v8.3.6

Compare Source

  • Fixed column in missed semicolon error (by @​Gusted).

v8.3.5

Compare Source

  • Fixed broken AST detection.

v8.3.4

Compare Source

  • Fixed broken AST detection.

v8.3.3

Compare Source

  • Fixed broken AST on postcss dependency duplication in custom parsers.

v8.3.2

Compare Source

  • Update changelog.

v8.3.1

Compare Source

  • Fixed false positives PostCSS does nothing warning on syntax option.

v8.3.0

Compare Source

Duke Murmur seal

PostCSS 8.3 improved source map parsing performance, added Node#assign() shortcut, and experimental Document node to AST.

Thanks to Sponsors

This release was possible thanks to our community.

Sponsored by Tailwind CSS Sponsored by ThemeIsle

If your company wants to support the sustainability of front-end infrastructure or wants to give some love to PostCSS, you can join our supporters by:

Source Map Performance

Because PostCSS needs synchronous API, we can’t move from the old `source-map 0.6 to 0.7 (many other open-source projects too).

@​7rulnik forked source-map 0.6 to source-map-js and back-ported performance improvements from 0.7. In 8.3 we switched from source-map to this source-map-js fork.

You map see 4x performance improvements in parsing map from processing step before PostCSS (for instance, Sass).

Document Nodes

Thanks to @​gucong3000, PostCSS already parse CSS from HTML and JS files (CSS-in-JS templates and objects).

But his plugin need big updates. @​hudochenkov from stylelint team decided to create new parsers for styles inside CSS-in-JS, HTML, and Markdown.

He suggested adding new Document node type to PostCSS AST to keep multiple Root nodes inside and JS/HTML/Markdown code blocks between these style blocks.

const document = htmlParser(
  '<html><style>a{color:black}</style><style>b{z-index:2}</style>'
)
document.type          //=> 'document'
document.nodes.length  //=> 2
document.nodes[0].type //=> 'root'

This is an experimental feature. Some aspects of this node could change within minor or patch version releases.

Node#assign() Shortcut

The creator of famous postcss-preset-env and many other PostCSS tools, @​jonathantneal suggested a nice shortcut to change multiple properties in the node:

decl.assign({ prop: 'word-wrap', value: 'break-word' })

v8.2.15

Compare Source

v8.2.14

Compare Source

  • Removed source-map from client-side bundle (by Barak Igal).

v8.2.13

Compare Source

  • Fixed ReDoS vulnerabilities in source map parsing (by Yeting Li).

v8.2.12

Compare Source

  • Fixed package.json exports.

v8.2.11

Compare Source

  • Fixed DEP0148 warning in Node.js 16.
  • Fixed docs (by @​semiromid).

v8.2.10

Compare Source

  • Fixed ReDoS vulnerabilities in source map parsing.
  • Fixed webpack 5 support (by Barak Igal).
  • Fixed docs (by Roeland Moors).

v8.2.9

Compare Source

  • Exported NodeErrorOptions type (by Rouven Weßling).

v8.2.8

Compare Source

  • Fixed browser builds in webpack 4 (by Matt Jones).

v8.2.7

Compare Source

  • Fixed browser builds in webpack 5 (by Matt Jones).

v8.2.6

Compare Source

  • Fixed Maximum call stack size exceeded in Node#toJSON.
  • Fixed docs (by inokawa).

v8.2.5

Compare Source

  • Fixed escaped characters handling in list.split (by Natalie Weizenbaum).

v8.2.4

Compare Source

  • Added plugin name to postcss.plugin() warning (by Tom Williams).
  • Fixed docs (by Bill Columbia).

v8.2.3

Compare Source

  • Fixed JSON.stringify(Node[]) support (by Niklas Mischkulnig).

v8.2.2

Compare Source

  • Fixed CSS-in-JS support (by James Garbutt).
  • Fixed plugin types (by Ludovico Fischer).
  • Fixed Result#warn() types.

v8.2.1

Compare Source

v8.2.0

Compare Source

Prince Orobas seal

PostCSS 8.2 added a new API to serialize and deserialize CSS AST to JSON.

import { parse, fromJSON } from 'postcss'

let root = parse('a{}', { from: 'input.css' })
let json = root.toJSON()
// save to file, send by network, etc
let root2 = fromJSON(json)

Thanks to @​mischnic for his work.

v8.1.14

Compare Source

  • Fixed parser performance regression.

v8.1.13

Compare Source

  • Fixed broken AST after moving nodes in visitor API.

v8.1.12

Compare Source

  • Fixed Autoprefixer regression.

v8.1.11

Compare Source

  • Added PostCSS update suggestion on unknown event in plugin.

v8.1.10

Compare Source

  • Fixed LazyResult type export (by Evan You).
  • Fixed LazyResult type compatibility with Promise (by Anton Kastritskiy).

v8.1.9

Compare Source

  • Reduced dependencies number (by Bogdan Chadkin).

v8.1.8

Compare Source

  • Fixed LazyResult type compatibility with Promise (by Ludovico Fischer).
  • Fixed HTTPS links in documentation.

v8.1.7

Compare Source

  • Fixed import support in TypeScript (by Remco Haszing).

v8.1.6

Compare Source

  • Reverted package.exports Node.js 15 fix.

v8.1.5

Compare Source

  • Fixed Node.js 15 warning (by 沈鸿飞).

v8.1.4

Compare Source

  • Fixed TypeScript definition (by Arthur Petrie).

v8.1.3

Compare Source

  • Added package.types.

v8.1.2

Compare Source

  • Fixed API docs (by Arthur Petrie).
  • Improved plugin guide (by Yunus Gaziev).
  • Prepared code base for Deno support (by Oscar Otero).

v8.1.1

Compare Source

  • Fixed parser performance regression.

v8.1.0

Compare Source

Duke Gemory seal

PostCSS 8.1 fixed the new visitor API from the 8.0 release.

We fixed Root and RootExit re-calling on children's changes. And now visitors will visit the parent again if nested children were changed.

We added Once and OnceExit events, which will not be called again on node changes. You can use them to lint files or collect statistics:

module.exports = {
  postcssPlugin: 'postcss-linter',
  OnceExit (root) {
    lint(root)
  }
}
module.exports.postcss = true

We updated Migration guide according to new changes.

v8.0.9

Compare Source

  • Replace prototype in PostCSS 7 nodes instead of recreating them.
  • Added missed Transformer to exported types (by Pierre-Marie Dartus).

v8.0.8

Compare Source

  • Fix 8.0.7 regression on PostCSS 7 nodes converting (by Adam Wathan).

v8.0.7

Compare Source

  • Fixed compatibility issue with mixin AST with PostCSS 7 and 8 nodes.
  • Added migration guide translation to Chinese to the warning.

v8.0.6

Compare Source

  • Fixed child adding methods in Container.

v8.0.5

Compare Source

  • Update changelog.

v8.0.4

Compare Source

  • Fixed Cannot read property 'line' of null error.
  • Fixed source map support for declarations.

v8.0.3

Compare Source

  • Fixed client-side bundling support.

v8.0.2

Compare Source

  • Fixed plugin packs support.

v8.0.1

Compare Source

  • Updated Processor#version.

v8.0.0

Compare Source

President Ose seal

PostCSS 8.0 brings new plugin API, node_modules size reduction, better source map support, and CSS parser improvements.

Check out a day-by-day diary of PostCSS 8.0 development process.

See Migration Guides for end-users and for plugin developers.

Thanks to Sponsors

With more than 100 M downloads per month, it becomes hard to support PostCSS in free time. For instance, getting the 8.0 release ready took 4 months of work.

This release was possible thanks to out community. Tailwind CSS, De Voorhoede, InVision AG, Brainbow, and many individual contributions.

Sponsored by Tailwind CSS

If your company wants to support the sustainability of front-end infrastructure or just wants to give some love to PostCSS, you can join our supporters by:

Breaking Changes

We try to avoid any breaking changes for end-users:

  • PostCSS 8 dropped Node.js 6.x, 8.x, 11.x, and 13.x versions support. All these versions have no security updates anymore.
  • We now serve ES6+ sources in the npm package without Babel compilation. If you are creating tools like CodePen and put PostCSS into the client-side JS bundle, you may need to run Babel on node_modules/postcss for old browsers.
  • We removed rarely used postcss.vendor API.

New Plugin API

The biggest change in PostCSS 8 is a new plugin API. Thanks to @​BondarenkoAlex for big help in creating a new API.

module.exports = () => {
  return {
    postcssPlugin: 'postcss-will-change',
    Declaration: {
      'will-change': (decl, { Declaration }) => {
        decl.cloneBefore(
          new Declaration({ prop: 'backface-visibility', value: 'hidden' })
        )
      }
    }
  }
}
module.exports.postcss = true

We know that rewriting old plugins will take time, but the new API will improve the end-user’s experience and make life easier for plugin developers:

  • With new API, all plugins can share a single scan of the CSS tree. It makes CSS processing up to 20% faster.
  • Because npm often duplicates dependencies, you may have many postcss duplicates in your node_modules. New API fixes this problem.
  • Plugins will re-visit changed nodes to reduce compatibility issues between plugins. Now the order of plugins in your PostCSS config will be less important.
  • New API is close to Babel’s visitor API.

These resources will help plugin developers in API migration:

PostCSS development guidelines were also changed:

  • Now it is prohibited to create own AST on top of PostCSS AST classes since it could lead to painful bugs due to the usage private APIs.
  • Plugins and runners must have postcss in peerDependencies.

New Website without React

Previously PostCSS used a React-based framework for the project's website. Since we have a static website, we decided to migrate to a React-free framework and got good performance improvements:

  • 360 → 20 ms for Max Potential First Input Delay
  • 3.3 → 1.5 seconds for First CPU Idle
  • 3.3 → 1.5 seconds for Time to Interactive

Check out postcss.org and new API docs that feature the awesome alchemy-inspired design by @​okonet.

PostCSS website performance results

We also removed Google Analytics tracking scripts and encourage other open source projects to be an example in caring about user’s privacy and performance.

Parser Improvments

Did you know that all examples below are valid CSS?

:root {
  --empty: ;
  --JSON: [1, "2", {"three": {"a":1}}, [4]];
  --javascript: function(rule) { console.log(rule) };
}

@&#8203;supports (--element(".minwidth", { "minWidth": 300 })) {
  [--self] {
    background: greenyellow;
  }
}

Now PostCSS parses even those rare edge cases correctly. Thanks to Tailwind CSS and Prettier teams for adding more cases to our CSS parser tests collection.

Note that now --roundMixin: { border-radius: 8px } will be parsed as a Declaration with the { border-radius: 8px } value.

Better Source Map Support

We have added support for two new source map formats: Index map and JSON (data:application/json).

PostCSS 8 is now much closer to the source map spec. Thanks to the Google team for reports:

  • We now treat sources in map as URLs instead of file paths.
  • We now resolve sources relative to map file, not CSS file.

A few source map APIs were added:

  • opts.maps.absolute = true option for absolute paths in source map.
  • opts.maps.annotation = (file, root) => url for a dynamic path to source map.
  • Node#origin() now returns position.url in addition to position.file for compatibility with absolute URLs in source map’s sources.

API Changes

We have added ES modules support and now we export all classes from the main entry:

import { CssSyntaxError, parse } from "postcss"

@​graberzz added Node#source.offset in addition to line and column.

CSS Custom Properties and Sass-like `WhiteSource Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
postcss (source) 7.0.36 -> 8.3.6 age adoption passing confidence
postcss-assets 5.0.0 -> 6.0.0 age adoption passing confidence
postcss-attribute-case-insensitive 4.0.1 -> 5.0.0 age adoption passing confidence
postcss-calc 7.0.5 -> 8.0.0 age adoption passing confidence
postcss-color-hex-alpha 6.0.0 -> 7.0.0 age adoption passing confidence
postcss-csso 4.0.0 -> 5.0.1 age adoption passing confidence
postcss-custom-media 7.0.8 -> 8.0.0 age adoption passing confidence
postcss-custom-selectors 5.1.2 -> 6.0.0 age adoption passing confidence
postcss-font-family-system-ui 4.3.0 -> 5.0.0 age adoption passing confidence
postcss-font-variant 4.0.1 -> 5.0.0 age adoption passing confidence
postcss-import 12.0.1 -> 14.0.2 age adoption passing confidence
postcss-loader 4.3.0 -> 6.1.1 age adoption passing confidence
postcss-media-minmax 4.0.0 -> 5.0.0 age adoption passing confidence
postcss-nested 4.2.3 -> 5.0.6 age adoption passing confidence
postcss-nesting 7.0.1 -> 8.0.1 age adoption passing confidence
postcss-property-lookup 2.0.0 -> 3.0.0 age adoption passing confidence
postcss-replace-overflow-wrap 3.0.0 -> 4.0.0 age adoption passing confidence
postcss-reporter 6.0.1 -> 7.0.2 age adoption passing confidence
postcss-scss 2.1.1 -> 4.0.0 age adoption passing confidence
postcss-selector-not 4.0.1 -> 5.0.0 age adoption passing confidence
postcss-url 8.0.0 -> 10.1.3 age adoption passing confidence

-variables now have a special Declaration#variable mark:

const root = parse(`
  :root {
    --propery: value;
  }
  $variable: value
`)

root.first.first.variable //=> true
root.last.variable //=> true

TypeScript

PostCSS now has a first-class TypeScript support:

  • We moved API docs from JSDoc to TypeDoc. Check out our new API docs.
  • We are using check-dts to test types with special unit tests.
  • We keep types in separate files for better readability.
  • With the new structure and test system, we fixed many small issues in types.

Other Changes

assetsjs/postcss-assets

v6.0.0

Compare Source

Breaking

Under the hook

Semigradsky/postcss-attribute-case-insensitive

v5.0.0

Compare Source

v4.0.2

Compare Source

postcss/postcss-calc

v8.0.0

Compare Source

  • Breaking: Updated PostCSS from v7.x to v8.x (#​125)
postcss/postcss-color-hex-alpha

v7.0.0

Compare Source

  • Updated: Support for PostCSS v8+
lahmatiy/postcss-csso

v5.0.1

Compare Source

  • Fixed order of compression processing to perform when everything else is finished (@​onigoetz, #​20)

v5.0.0

Compare Source

  • Migrated to postcss@^8.0.0, dropped support for earlier versions
  • Dropped support for Node.js < 10.12
  • Removed explicit requires of postcss
  • Dropped process method in export
postcss/postcss-custom-media

v8.0.0

Compare Source

  • Added: Support for PostCSS v8
postcss/postcss-custom-selectors

v6.0.0

Compare Source

  • Added: Support for PostCSS v8
  • Added: Support for Node v10+
  • Fixed: importing from multiple sources (#​42)
JLHwung/postcss-font-family-system-ui

v5.0.0

Compare Source

Breaking Changes
Chores
4.3.0 (2020-07-05)
New Features
Chores
4.2.0 (2019-12-19)
Chores
4.1.1 (2019-08-06)
Bug Fixes
  • ignore browser when version does not exist in caniuse (#​198) (6c592cb)
4.1.0 (2018-08-25)
New Features
  • main: polyfill system-ui in custom properties (783e688)
4.0.1 (2018-08-25)
postcss/postcss-font-variant

v5.0.0

Compare Source

  • Changed: use PostCSS 7 API
  • Updated: Node support to 10.0.0 (major)
postcss/postcss-import

v14.0.2

Compare Source

  • Remove remaining direct import of postcss package (#​455, #​456)

v14.0.1

Compare Source

  • Fix bug with @charset statements in media imports (#​448, #​453)

v14.0.0

Compare Source

This release should not have breaking changes for the vast majority of users; only those with @charset statements in their CSS may be affected.

  • BREAKING: Error if multiple incompatible @charset statements (#​447)
  • BREAKING: Warn if @charset statements are not at the top of files (#​447)
  • Fix handing of @charset (#​436, #​447)

v13.0.0

Compare Source

  • BREAKING: Require Node 10+ (#​429)
  • BREAKING: Upgrade to postcss v8 and require it as a peerDependency (#​427, #​432)
  • Update dependencies
webpack-contrib/postcss-loader

v6.1.1

Compare Source

v6.1.0

Compare Source

Features
  • allow String value for the "implementation" option (0d342b1)

v6.0.0

Compare Source

⚠ BREAKING CHANGES
  • minimum supported Node.js version is 12.13.0 (#​526)
Bug Fixes
  • check postcss as project dependency (570db67)

v5.3.0

Compare Source

Features

v5.2.0

Compare Source

Features
  • support ecma modules for the 'parser', 'stringifier' and 'syntax' options (#​519) (cc69754)

v5.1.0

Compare Source

Features
  • added support for registering context, build and missing dependencies (#​518) (9ce4972), please read docs

v5.0.0

Compare Source

⚠ BREAKING CHANGES
  • minimum supported webpack version is 5
postcss/postcss-media-minmax

v5.0.0

Compare Source

  • Updated: Support for PostCSS v8+
  • Updated: Support for Node v10+
postcss/postcss-nested

v5.0.6

Compare Source

v5.0.5

Compare Source

  • Fixed , at the tail (by Jesse de Boer).

v5.0.4

Compare Source

  • Fixed nested & at the tail (by Raphael Luba).
  • Fixed docs (by Samuel Charpentier).

v5.0.3

Compare Source

  • Fixed compability with Autoprefixer by adding @-webkit-keyframes support.

v5.0.2

Compare Source

  • Fixed compatibility with postcss-mixins by moving to visitor API.

v5.0.1

Compare Source

  • Fixed PostCSS 8.1 compatibility.
  • Added funding links.

v5.0.0

Compare Source

csstools/postcss-nesting

v8.0.1

Compare Source

  • Fixed: Compatibility issue with CommonJS.

v8.0.0

Compare Source

  • Updated: Support for PostCSS 8+.
  • Updated: Support for Node v12+.
  • Updated: Support for the @container at-rule.
simonsmith/postcss-property-lookup

v3.0.0

Compare Source

MattDiMu/postcss-replace-overflow-wrap

v4.0.0

Compare Source

postcss/postcss-reporter

v7.0.2

Compare Source

v7.0.1

Compare Source

  • Moved to PostCSS 8.1.
  • Added funding links.

v7.0.0

Compare Source

  • Moved to PostCSS 8.
  • Moved postcss to peerDependencies.
postcss/postcss-scss

v4.0.0

Compare Source

v3.0.5

Compare Source

  • Fixed escape in interpolation (by Jennifer Thakar).

v3.0.4

Compare Source

  • Reverted package.exports Node.js 15 fix.

v3.0.3

Compare Source

  • Fixed Node.js 15 warning.

v3.0.2

Compare Source

  • Added funding links.

v3.0.1

[Compare Source](https://github.com/postcss/postcss-scss/compare/3.0.0...3.0.


Configuration

📅 Schedule: "before 11pm on Monday" (UTC).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box.

This PR has been generated by WhiteSource Renovate. View repository job log here.

@renovate renovate bot force-pushed the renovate/major-postcss branch 11 times, most recently from 386a8f8 to 0d72b06 Compare September 27, 2020 01:08
@renovate renovate bot force-pushed the renovate/major-postcss branch 4 times, most recently from 2f22ee0 to ce28150 Compare October 5, 2020 07:56
@renovate renovate bot force-pushed the renovate/major-postcss branch 3 times, most recently from e65f5ed to 32bd9fc Compare October 13, 2020 19:29
@renovate renovate bot force-pushed the renovate/major-postcss branch 7 times, most recently from 041f48a to 9cd5802 Compare October 24, 2020 00:07
@renovate renovate bot force-pushed the renovate/major-postcss branch 3 times, most recently from e1439ca to 0126020 Compare November 1, 2020 09:41
@renovate renovate bot force-pushed the renovate/major-postcss branch 2 times, most recently from c383605 to 063d7e9 Compare November 4, 2020 16:02
@renovate renovate bot force-pushed the renovate/major-postcss branch 6 times, most recently from c7806bb to c9d6086 Compare May 16, 2021 22:12
@renovate renovate bot force-pushed the renovate/major-postcss branch 4 times, most recently from b1a079c to b50f51c Compare May 24, 2021 20:25
@renovate renovate bot force-pushed the renovate/major-postcss branch from b50f51c to 8f476ce Compare May 27, 2021 20:35
@renovate renovate bot force-pushed the renovate/major-postcss branch 6 times, most recently from 5a89c09 to c79e7f8 Compare June 17, 2021 05:05
@renovate renovate bot force-pushed the renovate/major-postcss branch 4 times, most recently from 6d8ebd0 to b42b464 Compare July 1, 2021 13:16
@renovate renovate bot force-pushed the renovate/major-postcss branch 3 times, most recently from 8d2f8bc to 86ec351 Compare July 28, 2021 10:53
@renovate renovate bot force-pushed the renovate/major-postcss branch 2 times, most recently from baa9b5a to e7205d2 Compare August 26, 2021 21:39
@onigoetz
Copy link
Member

Will be done in a separate branch

@onigoetz onigoetz closed this Aug 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants