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): script-based targets should be able to be modified in a project.json file #27309

Merged
merged 1 commit into from
Aug 6, 2024

Conversation

AgentEnder
Copy link
Member

Current Behavior

We don't infer scripts if any info for that target is present in project.json. This results in the target dissapearing if the user tries to modify the inferred target by providing info in project.json, for example by providing dependsOn or similar.

A minimal repro of the issue looks something like this:

packages/foo/package.json

{
  "name": "foo",
  "scripts": {
    "build": "echo build"
  }
}

packages/foo/project.json

{
  "name": "foo",
  "targets": {
    "build": {
      "dependsOn": []
    }
  }
}

Attempting to run nx build foo results in "Cannot find configuration for task foo:build", as we remove the target for not having an executor.

Expected Behavior

The target remains as it can run the script, so we have to infer the script to begin with.

Related Issue(s)

Fixes #27258

@AgentEnder AgentEnder requested a review from a team as a code owner August 6, 2024 13:35
@AgentEnder AgentEnder requested a review from FrozenPandaz August 6, 2024 13:35
Copy link

vercel bot commented Aug 6, 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 6, 2024 5:41pm

@AgentEnder AgentEnder force-pushed the fix/modify-script-targets-in-project-json branch from df522d1 to b581705 Compare August 6, 2024 17:39
@FrozenPandaz FrozenPandaz merged commit 25212e3 into master Aug 6, 2024
6 checks passed
@FrozenPandaz FrozenPandaz deleted the fix/modify-script-targets-in-project-json branch August 6, 2024 20:33
FrozenPandaz pushed a commit that referenced this pull request Aug 7, 2024
…oject.json file (#27309)

<!-- 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
We don't infer scripts if any info for that target is present in
project.json. This results in the target dissapearing if the user tries
to modify the inferred target by providing info in project.json, for
example by providing dependsOn or similar.

A minimal repro of the issue looks something like this:

> packages/foo/package.json
```json
{
  "name": "foo",
  "scripts": {
    "build": "echo build"
  }
}
```

> packages/foo/project.json
```json
{
  "name": "foo",
  "targets": {
    "build": {
      "dependsOn": []
    }
  }
}
```

Attempting to run `nx build foo` results in "Cannot find configuration
for task foo:build", as we remove the target for not having an executor.

## Expected Behavior
The target remains as it can run the script, so we have to infer the
script to begin with.

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

Fixes #27258

(cherry picked from commit 25212e3)
ZackDeRose pushed a commit to ZackDeRose/nx that referenced this pull request Aug 8, 2024
…oject.json file (nrwl#27309)

<!-- 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
We don't infer scripts if any info for that target is present in
project.json. This results in the target dissapearing if the user tries
to modify the inferred target by providing info in project.json, for
example by providing dependsOn or similar.

A minimal repro of the issue looks something like this:

> packages/foo/package.json
```json
{
  "name": "foo",
  "scripts": {
    "build": "echo build"
  }
}
```

> packages/foo/project.json
```json
{
  "name": "foo",
  "targets": {
    "build": {
      "dependsOn": []
    }
  }
}
```

Attempting to run `nx build foo` results in "Cannot find configuration
for task foo:build", as we remove the target for not having an executor.

## Expected Behavior
The target remains as it can run the script, so we have to infer the
script to begin with.

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

Fixes nrwl#27258
Copy link

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 Aug 12, 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.

core: dependsOn local project overrides regression (introduced between nx 19.4 - 19.5)
2 participants