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

Testing: Include Prettier Config package in root type checking #21381

Merged
merged 1 commit into from
Apr 3, 2020

Conversation

aduth
Copy link
Member

@aduth aduth commented Apr 3, 2020

Previously: #21362 (comment), #21053

This pull request seeks to include @wordpress/prettier-config in the root types-checking configuration. This was missed in #21053, and should be part of introduction of types checking for any package (see documentation).

Testing Instructions:

Verify types build succeeds:

npm run build:package-types

Verify the introduction of an error and subsequent re-run of the above would result in failure:

diff --git a/packages/prettier-config/lib/index.js b/packages/prettier-config/lib/index.js
index 08854b5775..5ceb98cae2 100644
--- a/packages/prettier-config/lib/index.js
+++ b/packages/prettier-config/lib/index.js
@@ -23,6 +23,7 @@ const config = {
 	jsxBracketSameLine: false,
 	semi: true,
 	arrowParens: 'always',
+	nonsense: true,
 };
 
 module.exports = config;
 ⇒ npm run build:package-types

> gutenberg@7.8.1 build:package-types /Users/andrew/Documents/Code/gutenberg
> node ./bin/packages/validate-typescript-version.js && tsc --build

packages/prettier-config/lib/index.js:26:2 - error TS2322: Type '{ useTabs: true; tabWidth: number; printWidth: number; singleQuote: true; trailingComma: "es5"; bracketSpacing: true; parenSpacing: true; jsxBracketSameLine: false; semi: true; arrowParens: "always"; nonsense: boolean; }' is not assignable to type 'Options & WPPrettierOptions'.
  Object literal may only specify known properties, and 'nonsense' does not exist in type 'Options & WPPrettierOptions'.

26  nonsense: true,
    ~~~~~~~~~~~~~~

Found 1 error.

@aduth aduth added Framework Issues related to broader framework topics, especially as it relates to javascript [Package] Prettier config /packages/prettier-config labels Apr 3, 2020
@aduth aduth requested review from gziolo and sirreal April 3, 2020 15:35
@github-actions
Copy link

github-actions bot commented Apr 3, 2020

Size Change: 0 B

Total Size: 885 kB

ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.02 kB 0 B
build/annotations/index.js 3.45 kB 0 B
build/api-fetch/index.js 3.8 kB 0 B
build/autop/index.js 2.59 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 6.03 kB 0 B
build/block-directory/style-rtl.css 760 B 0 B
build/block-directory/style.css 760 B 0 B
build/block-editor/index.js 102 kB 0 B
build/block-editor/style-rtl.css 10.6 kB 0 B
build/block-editor/style.css 10.6 kB 0 B
build/block-library/editor-rtl.css 7.22 kB 0 B
build/block-library/editor.css 7.22 kB 0 B
build/block-library/index.js 110 kB 0 B
build/block-library/style-rtl.css 7.53 kB 0 B
build/block-library/style.css 7.54 kB 0 B
build/block-library/theme-rtl.css 669 B 0 B
build/block-library/theme.css 671 B 0 B
build/block-serialization-default-parser/index.js 1.65 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 57.5 kB 0 B
build/components/index.js 195 kB 0 B
build/components/style-rtl.css 16.6 kB 0 B
build/components/style.css 16.5 kB 0 B
build/compose/index.js 6.21 kB 0 B
build/core-data/index.js 10.7 kB 0 B
build/data-controls/index.js 1.03 kB 0 B
build/data/index.js 8.23 kB 0 B
build/date/index.js 5.37 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 569 B 0 B
build/dom/index.js 3.05 kB 0 B
build/edit-navigation/index.js 2.71 kB 0 B
build/edit-navigation/style-rtl.css 239 B 0 B
build/edit-navigation/style.css 241 B 0 B
build/edit-post/index.js 92.5 kB 0 B
build/edit-post/style-rtl.css 12.1 kB 0 B
build/edit-post/style.css 12.1 kB 0 B
build/edit-site/index.js 9.78 kB 0 B
build/edit-site/style-rtl.css 4.68 kB 0 B
build/edit-site/style.css 4.68 kB 0 B
build/edit-widgets/index.js 4.43 kB 0 B
build/edit-widgets/style-rtl.css 3.74 kB 0 B
build/edit-widgets/style.css 3.74 kB 0 B
build/editor/editor-styles-rtl.css 423 B 0 B
build/editor/editor-styles.css 426 B 0 B
build/editor/index.js 42.8 kB 0 B
build/editor/style-rtl.css 3.49 kB 0 B
build/editor/style.css 3.49 kB 0 B
build/element/index.js 4.44 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 6.95 kB 0 B
build/format-library/style-rtl.css 502 B 0 B
build/format-library/style.css 502 B 0 B
build/hooks/index.js 1.93 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.57 kB 0 B
build/is-shallow-equal/index.js 710 B 0 B
build/keyboard-shortcuts/index.js 2.3 kB 0 B
build/keycodes/index.js 1.7 kB 0 B
build/list-reusable-blocks/index.js 2.99 kB 0 B
build/list-reusable-blocks/style-rtl.css 226 B 0 B
build/list-reusable-blocks/style.css 226 B 0 B
build/media-utils/index.js 4.84 kB 0 B
build/notices/index.js 1.57 kB 0 B
build/nux/index.js 3.01 kB 0 B
build/nux/style-rtl.css 616 B 0 B
build/nux/style.css 613 B 0 B
build/plugins/index.js 2.54 kB 0 B
build/primitives/index.js 1.5 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.84 kB 0 B
build/rich-text/index.js 14.5 kB 0 B
build/server-side-render/index.js 2.54 kB 0 B
build/shortcode/index.js 1.69 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/url/index.js 4.01 kB 0 B
build/viewport/index.js 1.6 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

Copy link
Member

@sirreal sirreal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks correct 👍

@aduth aduth merged commit 10e5d3f into master Apr 3, 2020
@aduth aduth deleted the add/prettier-config-root-type-check branch April 3, 2020 20:39
@github-actions github-actions bot added this to the Gutenberg 7.9 milestone Apr 3, 2020
@noisysocks
Copy link
Member

We should probably add this step to the documentation.

@sirreal
Copy link
Member

sirreal commented Apr 15, 2020

We should probably add this step to the documentation.

It's there (emphasis mine):

To opt-in to TypeScript tooling, packages should include a tsconfig.json file in the package root and add an entry to the root tsconfig.json references. The changes will indicate that the package has opted-in and will be included in the TypeScript build process.

I'm open to suggestions for improving it. It's hard to walk the line between giving enough guidance and reproducing TypeScript documentation.

The bullet list I added to #18838 may be better:

  • Add a tsconfig.json to the package root. The @wordpress/i18n package has a good example of a basic config.
  • Add "types": "build-types" to the package's package.json so that consumers will pick up the published types from the package.
  • Add the package to the root tsconfig.json references.

@aduth
Copy link
Member Author

aduth commented Apr 15, 2020

We should probably add this step to the documentation.

As noted by @sirreal , it's there. I merely failed to consider it.

Which itself can be interesting observation. I've noted a few times in the past, but now formalized the idea into a task, the idea of trying to provide automated hints based on the interpreted intent of a pull request, in order to take away some of the manual (read: error-prone) steps of the process:

https://github.com/WordPress/gutenberg/projects/24#card-36342702

@noisysocks
Copy link
Member

It's there (emphasis mine):

Oh! I think I missed it because my brain instantly skims paragraphs and skips to where there are code blocks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Framework Issues related to broader framework topics, especially as it relates to javascript [Package] Prettier config /packages/prettier-config
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants