Skip to content

Fixes the optional check depending on the order the tree is traversed #5840

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

Merged
merged 4 commits into from
Jan 22, 2024

Conversation

arcanis
Copy link
Member

@arcanis arcanis commented Oct 24, 2023

What's the problem this PR addresses?

Depending on the order we traversed the dependency tree, it could happen that we'd see a package as optional before seeing the other cases where it was not optional. Because marking the package as "not optional" occurred after the "has this package been traversed before?" check, we were never updating its status from "optional" to "not optional".

Fixes #5827

How did you fix it?

We now check for optionality regardless of whether the package has been seen or not before. I added an order-dependent dragon test to try to prevent regressions.

Checklist

  • I have set the packages that need to be released for my changes to be effective.
  • I will check that all automated PR checks pass before the PR gets reviewed.

@arcanis arcanis merged commit 7aa2359 into master Jan 22, 2024
@arcanis arcanis deleted the mael/optional-detection-order branch January 22, 2024 14:30
merceyz pushed a commit that referenced this pull request Jan 30, 2024
…#5840)

**What's the problem this PR addresses?**

Depending on the order we traversed the dependency tree, it could happen
that we'd see a package as optional before seeing the other cases where
it was not optional. Because marking the package as "not optional"
occurred after the "has this package been traversed before?" check, we
were never updating its status from "optional" to "not optional".

Fixes #5827

**How did you fix it?**

We now check for optionality regardless of whether the package has been
seen or not before. I added an order-dependent dragon test to try to
prevent regressions.

**Checklist**
<!--- Don't worry if you miss something, chores are automatically
tested. -->
<!--- This checklist exists to help you remember doing the chores when
you submit a PR. -->
<!--- Put an `x` in all the boxes that apply. -->
- [x] I have read the [Contributing
Guide](https://yarnpkg.com/advanced/contributing).

<!-- See
https://yarnpkg.com/advanced/contributing#preparing-your-pr-to-be-released
for more details. -->
<!-- Check with `yarn version check` and fix with `yarn version check
-i` -->
- [x] I have set the packages that need to be released for my changes to
be effective.

<!-- The "Testing chores" workflow validates that your PR follows our
guidelines. -->
<!-- If it doesn't pass, click on it to see details as to what your PR
might be missing. -->
- [x] I will check that all automated PR checks pass before the PR gets
reviewed.

(cherry picked from commit 7aa2359)
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.

[Bug?]: Dependency considered optional but should not be
2 participants