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

Types: Rename icons, primitives tsconfig to _tsconfig #21784

Merged
merged 1 commit into from
Apr 22, 2020

Conversation

sirreal
Copy link
Member

@sirreal sirreal commented Apr 22, 2020

This was an oversight that should have been part of #21613 to
prevent errors when typechecking via lint-staged.

Description

#21613 "hid" TypeScript emitted type declarations for @wordpress/element when it was found to conflict with 3rd party type declarations on DefinitelyTyped.

Disabling @wordpress/element cascaded to require disabling type checking for @wordpress/icons and @wordpress/primitives, two dependent packages that have opted-in to typechecking.

The lint-staged flow is slightly different from the full build:package-types script in that it attempts to do a minimal build in the interest of speed. This flow checks for the presence of a tsconfig.json file in the root of the package with changes and runs its package build.

While removing the affected packages from the main tsconfig.json did remove them from the primary build, changes to primitives and icons packages will fail because they cannot find the @wordpress/element types as was intended in #21613.

By renaming the package tsconfig.json files, they are excluded from the lint-staged typechecking as well.

Testing

Make any small change in primitives or icons packages (JavaScript source files).

When you commit, the lint-staged check will run, without an error.

element does not need to be disabled because it does not need to read its own types. Changes to element should continue to typecheck on lint-staged.

[#21613](#21613) "hid"
TypeScript emitted type declarations for `@wordpress/element` when it
was found to conflict with 3rd party type declarations on
DefinitelyTyped.

Disabling `@wordpress/element` cascaded to require disabling type
checking for `@wordpress/icons` and `@wordpress/primitives`, two
dependent packages.

The lint-staged flow is slightly different from the full
`build:package-types` script in that it attempts to do a minimal build
in the interest of speed. This flow checks for the presence of a
`tsconfig.json` file in the root of the package with changes and runs
its package build.

While removing the affected packages from the main tsconfig.json did
remove them from the primary build, changes to primitives and icons
packages will fail because they cannot find the `@wordpress/element`
types as was intended in #21613.

By renaming the package tsconfig.json files, they are excluded from the
lint-staged typechecking as well.
@sirreal sirreal self-assigned this Apr 22, 2020
@sirreal sirreal requested review from aduth and gziolo April 22, 2020 14:53
@github-actions
Copy link

Size Change: 0 B

Total Size: 842 kB

ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.02 kB 0 B
build/annotations/index.js 3.62 kB 0 B
build/api-fetch/index.js 4.08 kB 0 B
build/autop/index.js 2.82 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 6.24 kB 0 B
build/block-directory/style-rtl.css 760 B 0 B
build/block-directory/style.css 761 B 0 B
build/block-editor/index.js 105 kB 0 B
build/block-editor/style-rtl.css 10.1 kB 0 B
build/block-editor/style.css 10.1 kB 0 B
build/block-library/editor-rtl.css 7.13 kB 0 B
build/block-library/editor.css 7.13 kB 0 B
build/block-library/index.js 112 kB 0 B
build/block-library/style-rtl.css 7.19 kB 0 B
build/block-library/style.css 7.19 kB 0 B
build/block-library/theme-rtl.css 683 B 0 B
build/block-library/theme.css 685 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 57.7 kB 0 B
build/components/index.js 198 kB 0 B
build/components/style-rtl.css 16.9 kB 0 B
build/components/style.css 16.9 kB 0 B
build/compose/index.js 6.66 kB 0 B
build/core-data/index.js 11.4 kB 0 B
build/data-controls/index.js 1.25 kB 0 B
build/data/index.js 8.43 kB 0 B
build/date/index.js 5.47 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.1 kB 0 B
build/edit-navigation/index.js 3.54 kB 0 B
build/edit-navigation/style-rtl.css 485 B 0 B
build/edit-navigation/style.css 485 B 0 B
build/edit-post/index.js 27.9 kB 0 B
build/edit-post/style-rtl.css 12.3 kB 0 B
build/edit-post/style.css 12.3 kB 0 B
build/edit-site/index.js 10.5 kB 0 B
build/edit-site/style-rtl.css 5.04 kB 0 B
build/edit-site/style.css 5.04 kB 0 B
build/edit-widgets/index.js 7.5 kB 0 B
build/edit-widgets/style-rtl.css 4.67 kB 0 B
build/edit-widgets/style.css 4.66 kB 0 B
build/editor/editor-styles-rtl.css 428 B 0 B
build/editor/editor-styles.css 431 B 0 B
build/editor/index.js 43.3 kB 0 B
build/editor/style-rtl.css 3.28 kB 0 B
build/editor/style.css 3.27 kB 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.32 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 2.13 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.56 kB 0 B
build/is-shallow-equal/index.js 711 B 0 B
build/keyboard-shortcuts/index.js 2.51 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.12 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 5.29 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.4 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.67 kB 0 B
build/primitives/index.js 1.49 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.8 kB 0 B
build/server-side-render/index.js 2.67 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/url/index.js 4.02 kB 0 B
build/viewport/index.js 1.84 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

@gziolo gziolo left a comment

Choose a reason for hiding this comment

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

I trust you and leave the rest to Travis :)

@sirreal sirreal merged commit 74fcd4c into master Apr 22, 2020
@sirreal sirreal deleted the update/disable-type-linter branch April 22, 2020 15:34
@github-actions github-actions bot added this to the Gutenberg 8.0 milestone Apr 22, 2020
sirreal added a commit that referenced this pull request Apr 22, 2020
sirreal added a commit that referenced this pull request Apr 27, 2020
sirreal added a commit that referenced this pull request Apr 28, 2020
* Restore element, icons, primitives types
* Partially reverts #21613 (c2684b2)
* Reverts #21784 (74fcd4c)

Some `@wordpress/*` emit TypeScript type declarations and include them with the published packages. Shortly after publishing, it was discovered the `@wordpress/element` conflicted with the DefinitelyTyped 3rd party type declarations of several packages and a patch release was published removing the published types from `@wordpress/element`, `@wordpress/primitives`, and `@wordpress/icons` (#21613, #21784).

The DefinitelyTyped type declarations have been updated to remove conflicts with the included `@wordpress/element` types. The types can be published again.

See #21767 for more details.
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