diff --git a/.github/workflows/build-lint-test.yml b/.github/workflows/build-lint-test.yml index d7d0108ba..047a13e01 100644 --- a/.github/workflows/build-lint-test.yml +++ b/.github/workflows/build-lint-test.yml @@ -60,10 +60,10 @@ jobs: - run: yarn lint - name: Validate RC changelog if: ${{ startsWith(github.head_ref, 'release/') }} - run: yarn auto-changelog validate --rc + run: yarn auto-changelog validate --rc --prettier - name: Validate changelog if: ${{ !startsWith(github.head_ref, 'release/') }} - run: yarn auto-changelog validate + run: yarn auto-changelog validate --prettier - name: Require clean working directory shell: bash run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index 33b56068d..9ad99085e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ # Changelog + All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), @@ -7,7 +8,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ## [4.0.0] + ### Changed + - **BREAKING**: Drop support for Node.js v16 ([#203](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/203)) - **BREAKING**: Update case insensitive sort to use deterministic key order ([#189](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/189)) - Previously the "case insensitive" sorting options would leave keys in their original order when they differed only in case. They have been updated to sort identical keys in case order instead, making these sort options deterministic. @@ -26,37 +29,50 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 This should work for small character sets. If you require case-insensitive sorting with a larger character set, please submit a feature request. We can bring back the old sorting order as an option if there is demand for it. ## [3.1.0] + ### Added + - Add `none` sorting algorithm ([#177](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/177)) - This lets you leave certain properties usorted when defining a custom sort order - Contributed by @hyperupcall ## [3.0.1] + ### Fixed + - Fix accidental removal of trailing newline ([#170](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/170)) ## [3.0.0] + ### Changed + - **BREAKING**: Migrate to Prettier v3 ([#156](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/156)) - This plugin no longer works with Prettier v2. Prettier v2 support will be maintained on v2 of this plugin however. - Prettier v3 will no longer automatically load plugins. [Follow these instructions](https://prettier.io/docs/en/plugins#using-plugins) to load this plugin after updating. ## [2.0.0] + ### Changed + - **BREAKING**: Update minimum supported Node.js version to v16 ([#164](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/164)) - Update dependencies ([#137](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/137), [#139](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/139), [#141](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/141), [#153](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/153), [#157](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/157)) ## [1.0.0] + ### Changed + - **BREAKING**: Change `jsonSortOrder` option to a JSON string ([#118](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/118)) - This configuration option used to accept a file path. Now it accepts a JSON string instead. See the README for more details. ## [0.0.3] + ### Added + - Add `jsonSortOrder` option ([#92](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/92)) - This also supports case-insensitive sorting ([#104](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/104)) ### Changed + - **BREAKING**: Rewrite plugin to sort AST ([#100](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/100)) - This ensures that symbols are sorted before numbers, as in a normal lexical sort. This is the breaking change, because the sort order may have changed in some edge cases. - This ensures that JSON files with mistakes like trailing commas are still sorted properly the first time. @@ -64,19 +80,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **BREAKING**: Update minimum Prettier version to v2.3.2 ([#47](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/47)) ## [0.0.2] - 2021-02-13 + ### Added + - JSON Recursive Sort option ([#23](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/23)) ### Changed + - [**BREAKING**] Update minimum `prettier` version to v2.1.0 ([#21](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/21), [#24](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/24)) - [**BREAKING**] Move `prettier` from `dependencies` to `peerDependencies` ([#22](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/22)) - Fix manifest `repository` property ([#17](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/17)) ### Removed + - Remove unused `@babel/types` dependency ([#20](https://github.com/Gudahtt/prettier-plugin-sort-json/pull/20)) ## [0.0.1] - 2020-09-22 + ### Added + - Initial release [Unreleased]: https://github.com/Gudahtt/prettier-plugin-sort-json/compare/v4.0.0...HEAD diff --git a/package.json b/package.json index e68befed3..3a1b550f7 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "lint": "yarn lint:eslint && yarn lint:misc --check", "lint:eslint": "eslint . --cache", "lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write", - "lint:misc": "prettier '**/*.json' '**/*.json5' '**/*.md' '!CHANGELOG.md' '**/*.yml' '!.yarnrc.yml' '!fixtures/invalid-json.json' --ignore-path .gitignore", + "lint:misc": "prettier '**/*.json' '**/*.json5' '**/*.md' '**/*.yml' '!.yarnrc.yml' '!fixtures/invalid-json.json' --ignore-path .gitignore", "prepack": "./scripts/prepack.sh", "test": "tsc --project tsconfig.test.json && ava" }, @@ -27,7 +27,7 @@ "@babel/types": "^7.18.10", "@lavamoat/allow-scripts": "^3.0.0", "@lavamoat/preinstall-always-fail": "^2.0.0", - "@metamask/auto-changelog": "^3.0.0", + "@metamask/auto-changelog": "^4.0.0", "@metamask/eslint-config": "^14.0.0", "@metamask/eslint-config-nodejs": "^14.0.0", "@metamask/eslint-config-typescript": "^14.0.0", diff --git a/yarn.lock b/yarn.lock index efd6b629d..a664242c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -232,18 +232,19 @@ __metadata: languageName: node linkType: hard -"@metamask/auto-changelog@npm:^3.0.0": - version: 3.4.4 - resolution: "@metamask/auto-changelog@npm:3.4.4" +"@metamask/auto-changelog@npm:^4.0.0": + version: 4.0.0 + resolution: "@metamask/auto-changelog@npm:4.0.0" dependencies: diff: "npm:^5.0.0" execa: "npm:^5.1.1" - prettier: "npm:^2.8.8" semver: "npm:^7.3.5" yargs: "npm:^17.0.1" + peerDependencies: + prettier: ">=3.0.0" bin: auto-changelog: dist/cli.js - checksum: 10c0/df94cd5df320416d536f8de75932b497631d026afc195f8f1c191c60f88b34506e69e682e672ccbb392304251ab023b14adf82237e696bff274b04231ac7a89c + checksum: 10c0/66a4edd6cfccbb5bc5cedaaab90c12113129642b15aa606803e6f858ff3e978bc465f4bc7e8a1d97383f4f3f05c9faf9521d8298cd45d6ac1bd74049b00307c9 languageName: node linkType: hard @@ -3068,7 +3069,7 @@ __metadata: "@babel/types": "npm:^7.18.10" "@lavamoat/allow-scripts": "npm:^3.0.0" "@lavamoat/preinstall-always-fail": "npm:^2.0.0" - "@metamask/auto-changelog": "npm:^3.0.0" + "@metamask/auto-changelog": "npm:^4.0.0" "@metamask/eslint-config": "npm:^14.0.0" "@metamask/eslint-config-nodejs": "npm:^14.0.0" "@metamask/eslint-config-typescript": "npm:^14.0.0" @@ -3093,15 +3094,6 @@ __metadata: languageName: unknown linkType: soft -"prettier@npm:^2.8.8": - version: 2.8.8 - resolution: "prettier@npm:2.8.8" - bin: - prettier: bin-prettier.js - checksum: 10c0/463ea8f9a0946cd5b828d8cf27bd8b567345cf02f56562d5ecde198b91f47a76b7ac9eae0facd247ace70e927143af6135e8cf411986b8cb8478784a4d6d724a - languageName: node - linkType: hard - "prettier@npm:^3.0.0": version: 3.4.1 resolution: "prettier@npm:3.4.1"