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

fix(core): nx migrate should determine angular devkit migration from cli or schematics #20282 #27634

Merged
merged 1 commit into from
Aug 26, 2024

Conversation

Coly010
Copy link
Contributor

@Coly010 Coly010 commented Aug 26, 2024

Current Behavior

We check the CLI property exists and if it's not nx we will use the ng compat layer to run the migration.
If the CLI property does not exist, we check both if the migration is in the schematics object on the migrations.json and if the contents of the migration implementation contains an import from @angular-devkit.

The problem with the fallback is that if only types are imported from @angular-devkit the import is stripped from the migration implementation completely.

Expected Behavior

We had planned already to remove the fallback of reading the file contents.
We had also planned to remove using the cli property to determine if the migration needed the ng compat layer.

However, as the cli property is still useful for now for package's that needed some manner to circumvent the flawed fallback logic, let's continue to use it until v21.
Log a warning however if the cli !== 'nx' and it is placed in the generators section of the migrations.json to provide ample time for plugin developers to move them to the schematics property.

Fallback has been updated to whether or not the migration lives in schematics and not flawed read file logic.

Related Issue(s)

Fixes #20282

@Coly010 Coly010 requested a review from a team as a code owner August 26, 2024 10:08
@Coly010 Coly010 self-assigned this Aug 26, 2024
Copy link

vercel bot commented Aug 26, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

1 Skipped Deployment
Name Status Preview Updated (UTC)
nx-dev ⬜️ Ignored (Inspect) Visit Preview Aug 26, 2024 10:15am

Copy link
Collaborator

@FrozenPandaz FrozenPandaz left a comment

Choose a reason for hiding this comment

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

@leosvelperez can you look at this one as well please?

@Coly010 Coly010 merged commit 62c6512 into master Aug 26, 2024
6 checks passed
@Coly010 Coly010 deleted the angular/migrate-schematics branch August 26, 2024 16:25
FrozenPandaz pushed a commit that referenced this pull request Aug 26, 2024
…cli or schematics #20282 (#27634)

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
We check the CLI property exists and if it's not `nx` we will use the ng
compat layer to run the migration.
If the CLI property does not exist, we check both if the migration is in
the `schematics` object on the `migrations.json` and if the contents of
the migration implementation contains an import from `@angular-devkit`.

The problem with the fallback is that if only types are imported from
`@angular-devkit` the import is stripped from the migration
implementation completely.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
We had planned already to remove the fallback of reading the file
contents.
We had also planned to remove using the `cli` property to determine if
the migration needed the `ng compat layer`.

However, as the `cli` property is still useful for now for package's
that needed some manner to circumvent the flawed fallback logic, let's
continue to use it until v21.
Log a warning however if the `cli !== 'nx'` and it is placed in the
`generators` section of the `migrations.json` to provide ample time for
plugin developers to move them to the `schematics` property.

Fallback has been updated to whether or not the migration lives in
`schematics` and not flawed read file logic.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #20282

(cherry picked from commit 62c6512)
Copy link

github-actions bot commented Sep 1, 2024

This pull request has already been merged/closed. If you experience issues related to these changes, please open a new issue referencing this pull request.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 1, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cannot run Angular library migration in Nx workspace
3 participants