Remove .ONESHELL Makefile directive so multi-step targets properly fail #2888
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#2886 documents an issue where the
lint-server
Makefile target does not stop when theflake8
portion of the multi-step target encounters a non-zero exit code. Based on initial investigation, there appears to have been a change in behavior between GNUmake
3.81 (which I, and probably others, use on our desktops) and 4.2.1 (which is used in CI, with 4.3 being the latest). In versions < 4, the multi-step targets will stop on non-zero exit status, but with versions < 4, that is not the case.It turns out that the
.ONESHELL
directive was causing this issue - which makes sense - because only the last command of the target is the status that is checked. Not sure why 3.x versions work - perhaps they don't properly support.ONESHELL
.At any rate,
.ONESHELL
was added in #2721 and there's no mention during the review as to why. I have confirmed appropriate behavior without the directive so perhaps the reason for it is no longer present or it was thought to be an improvement - especially since desktop builds were still behaving okay. Since this is a fairly serious issue, we should move forward without.ONESHELL
and tackle any related issues of that when they come up.Resolves #2886
Developer's Certificate of Origin 1.1