Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[Workflow] Fixed bug of buildTransitionBlockerList when many transition are enabled #29141

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 2 commits into from
Nov 13, 2018

Conversation

lyrixx
Copy link
Member

@lyrixx lyrixx commented Nov 8, 2018

Q A
Branch? 4.1
Bug fix? yes
New feature? no
BC breaks? no
Deprecations? no
Tests pass? yes
Fixed tickets #28429 #28432 #28493
License MIT
Doc PR

// marking. Because it means the marking was OK Transition are
// deterministic : it's not possible to have many transition enabled
// at the same time that match the same marking with the same name
if (!$transitionBlockerList->has(TransitionBlocker::BLOCKED_BY_MARKING)) {
Copy link
Member

Choose a reason for hiding this comment

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

We could update the condition above: if ($transitionBlockerList->isEmpty() || !$transitionBlockerList->has(TransitionBlocker::BLOCKED_BY_MARKING)) {

Copy link
Member Author

Choose a reason for hiding this comment

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

But then the comment will be harder to understand because it applies to only one part of the if statement

I prefer to keep it as it. Are you OK with that?

Copy link
Member

Choose a reason for hiding this comment

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

yes, no blocker for me

@@ -37,6 +37,17 @@ public function add(TransitionBlocker $blocker): void
$this->blockers[] = $blocker;
}

public function has(string $code): bool
Copy link
Member

Choose a reason for hiding this comment

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

Should we mark this method as internal?

Copy link
Member Author

Choose a reason for hiding this comment

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

It could be usefull to any one, isn't?
We could mark it internal, but I don't really see benefit of doing it.
It will update the code if you want.

@nicolas-grekas nicolas-grekas added this to the 4.1 milestone Nov 8, 2018
@@ -109,6 +109,7 @@ public function buildTransitionBlockerList($subject, string $transitionName): Tr
{
$transitions = $this->definition->getTransitions();
$marking = $this->getMarking($subject);

Copy link
Member

Choose a reason for hiding this comment

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

Can you revert this change?


// We prefer to return transitions blocker by something else than
// marking. Because it means the marking was OK Transition are
// deterministic : it's not possible to have many transition enabled
Copy link
Member

Choose a reason for hiding this comment

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

extra space before :

Copy link
Member

Choose a reason for hiding this comment

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

many transitions?

}

// We prefer to return transitions blocker by something else than
// marking. Because it means the marking was OK Transition are
Copy link
Member

Choose a reason for hiding this comment

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

I don't understand this sentence. I don't get the subject of "are".

@lyrixx
Copy link
Member Author

lyrixx commented Nov 12, 2018

@fabpot Thanks for the review. I have addressed your comments.

@lyrixx
Copy link
Member Author

lyrixx commented Nov 13, 2018

Thanks for fixing this bug @Tetragramat.

@lyrixx lyrixx merged commit 732f343 into symfony:4.1 Nov 13, 2018
lyrixx added a commit that referenced this pull request Nov 13, 2018
…ny transition are enabled (Tetragramat, lyrixx)

This PR was merged into the 4.1 branch.

Discussion
----------

[Workflow] Fixed bug of buildTransitionBlockerList when many transition are enabled

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #28429 #28432 #28493
| License       | MIT
| Doc PR        |

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - Bug fixes must be submitted against the lowest branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against the master branch.
-->

Commits
-------

732f343 [Workflow] Made code simpler
db69ccc method buildTransitionBlockerList returns TransitionBlockerList of expected transition
@fabpot fabpot mentioned this pull request Nov 16, 2018
@fabpot fabpot mentioned this pull request Nov 26, 2018
@lyrixx lyrixx deleted the workflow-blocker branch March 22, 2019 15:14
@Amunak
Copy link
Contributor

Amunak commented Jun 26, 2024

Has this been fully fixed? This change 732f343 made it so that the can() method will still fail on everything but the first transition in the list, because the transition name check will pass, but then a blocker will be created because the "from" place doesn't match.

@xabbuh
Copy link
Member

xabbuh commented Jun 26, 2024

Comments on merged pull requests are likely to get lost. Please open a new issue if you think something is wrong and provide a small example application to reproduce it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants