Skip to content
New issue

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

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

Already on GitHub? # to your account

[New] order: support type imports #2021

Merged
merged 1 commit into from
May 12, 2021

Conversation

geraintwhite
Copy link
Contributor

Fixes #645

@coveralls
Copy link

Coverage Status

Coverage increased (+1.9%) to 71.37% when pulling 2ee0b7b on grit96:order-type-import-support into e871a9a on benmosher:master.

1 similar comment
@coveralls
Copy link

Coverage Status

Coverage increased (+1.9%) to 71.37% when pulling 2ee0b7b on grit96:order-type-import-support into e871a9a on benmosher:master.

@coveralls
Copy link

coveralls commented Apr 1, 2021

Coverage Status

Coverage increased (+12.9%) to 84.021% when pulling 1c10e79 on grit96:order-type-import-support into ab0181d on benmosher:master.

@ljharb ljharb changed the title [Fix] order: support type imports [New] order: support type imports May 12, 2021
@ljharb ljharb force-pushed the order-type-import-support branch from 2ee0b7b to 1c10e79 Compare May 12, 2021 16:23
@ljharb ljharb merged commit 1c10e79 into import-js:master May 12, 2021
akash1810 added a commit to guardian/cdk that referenced this pull request May 19, 2021
Not entirely sure how this got missed...

See:
  - import-js/eslint-plugin-import#2021
akash1810 added a commit to guardian/cdk that referenced this pull request May 19, 2021
Not entirely sure how this got missed, but it looks like CI on `main` is failing because of it.

See:
  - import-js/eslint-plugin-import#2021
akash1810 added a commit to guardian/cdk that referenced this pull request May 19, 2021
I think this is failing because we do not observe a lockfile in the [integration-test project](https://github.com/guardian/cdk/blob/9b9a91bc03f507ba4d688024b4fc8059a617f9d0/integration-test/script/ci#L5-L8).
As `eslint-plugin-import`'s version includes `^`, we cannot guarantee what version gets used in CI.

Options:
  - Use pinned versions in the integration-test project (I'm not sure if dependabot works with pinned dependency versions)
  - Do not lint the integration-test project
  - Use a lockfile and install @guardian/cdk into the integration-test project with `--no-package-lock`

See:
  - import-js/eslint-plugin-import#2021
  - https://docs.npmjs.com/cli/v6/commands/npm-install#:~:text=--no-package-lock
akash1810 added a commit to guardian/cdk that referenced this pull request May 19, 2021
I think this is failing because we do not observe a lockfile in the [integration-test project](https://github.com/guardian/cdk/blob/9b9a91bc03f507ba4d688024b4fc8059a617f9d0/integration-test/script/ci#L5-L8).
As `eslint-plugin-import`'s version includes `^`, we cannot guarantee what version gets used in CI.

We hadn't seen it locally as we don't do a fresh install. If you delete integration-test/node_modules and lint the integration-test project, the error can be seen.

Options:
  - Use pinned versions in the integration-test project (I'm not sure if dependabot works with pinned dependency versions)
  - Do not lint the integration-test project
  - Use a lockfile and install @guardian/cdk into the integration-test project with `--no-package-lock` (not sure if this is possible as @guardian/cdk will remain in `package.json`)

See:
  - import-js/eslint-plugin-import#2021
  - https://docs.npmjs.com/cli/v6/commands/npm-install#:~:text=--no-package-lock
akash1810 added a commit to guardian/cdk that referenced this pull request May 19, 2021
Version 2.23.2 of `eslint-plugin-import` prefers to `import` statements
above `import type`.

We do not have a lockfile for the `integration-test` project because:

> Ignore package-lock.json to avoid the following error when reinstalling dependencies:
> npm ERR! notarget No matching version found for eslint-plugin-custom-rules@1.0.0.
> This is because we're installing @guardian/cdk from file, which is in turn installing eslint-plugin-custom-rules from file.

Combined this with the version of `eslint-plugin-import` is defined with `^`,
linting is non-deterministic* and we only saw an import order linting error locally
after removing `node_modules`.

There are a couple of ways to improve this:
  - Work out how to use a lockfile in the integration-test
  - Remove linting and hope the other dependencies using `^` versions are OK

This change removes linting, with the justification that:
  - This project is never consumed by anyone
  - This project doesn't run anywhere
  - This project doesn't get updated too often
  - Understanding the original lockfile issues is a time sink

See:
  - import-js/eslint-plugin-import#2021
  - #564

* Well, the entire build of integration-test is non-deterministic!
akash1810 added a commit to guardian/cdk that referenced this pull request May 19, 2021
I think this is failing because we do not observe a lockfile in the [integration-test project](https://github.com/guardian/cdk/blob/9b9a91bc03f507ba4d688024b4fc8059a617f9d0/integration-test/script/ci#L5-L8).
As `eslint-plugin-import`'s version includes `^`, we cannot guarantee what version gets used in CI.

We hadn't seen it locally as we don't do a fresh install. If you delete integration-test/node_modules and lint the integration-test project, the error can be seen.

Options:
  - Use pinned versions in the integration-test project (I'm not sure if dependabot works with pinned dependency versions)
  - Do not lint the integration-test project
  - Use a lockfile and install @guardian/cdk into the integration-test project with `--no-package-lock` (not sure if this is possible as @guardian/cdk will remain in `package.json`)

See:
  - import-js/eslint-plugin-import#2021
  - https://docs.npmjs.com/cli/v6/commands/npm-install#:~:text=--no-package-lock
akash1810 added a commit to guardian/cdk that referenced this pull request May 19, 2021
I think this is failing because we do not observe a lockfile in the [integration-test project](https://github.com/guardian/cdk/blob/9b9a91bc03f507ba4d688024b4fc8059a617f9d0/integration-test/script/ci#L5-L8).
As `eslint-plugin-import`'s version includes `^`, we cannot guarantee what version gets used in CI.

We hadn't seen it locally as we don't do a fresh install. If you delete integration-test/node_modules and lint the integration-test project, the error can be seen.

Options:
  - Use pinned versions in the integration-test project (I'm not sure if dependabot works with pinned dependency versions)
  - Do not lint the integration-test project
  - Use a lockfile and install @guardian/cdk into the integration-test project with `--no-package-lock` (not sure if this is possible as @guardian/cdk will remain in `package.json`)

See:
  - import-js/eslint-plugin-import#2021
  - https://docs.npmjs.com/cli/v6/commands/npm-install#:~:text=--no-package-lock
akash1810 added a commit to guardian/cdk that referenced this pull request May 19, 2021
This version of eslint-plugin-import prefers `import` statements to appear before `import type`.

This change fixes these linting errors.

See:
  - import-js/eslint-plugin-import#2021
dependabot bot pushed a commit to guardian/cdk that referenced this pull request May 19, 2021
This version of eslint-plugin-import prefers `import` statements to appear before `import type`.

This change fixes these linting errors.

See:
  - import-js/eslint-plugin-import#2021
# for free to join this conversation on GitHub. Already have an account? # to comment
Development

Successfully merging this pull request may close these issues.

Add type import support to import/order
3 participants