-
Notifications
You must be signed in to change notification settings - Fork 69
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
Breaking experience: Difference in how Lage processes dependency graph post 0.32 #161
Comments
The laxed implementation was definitely not intentional in the first place! I'm going to take a look at making a repro as a test for future fix here. I'll work to restore that functionality ASAP. |
Thanks @kenotron ! If we believe that the strictness is the right thing to do, then that also makes sense to me. Yes, it'll be bit of work - teams would have to fix their build graphs, but I think that is a good thing. I'll let Lage team decide what's the right future here, but either ways, adding an example in documentation to clarify what is intended and what's not would be great!! |
So I think restoring default behavior is imperative - we can add a "--strict" or whatever to enforce many strictness things like file access, etc. |
Update 1: alright, locally I have a e2e test written with your case! (thanks for the small repro repo) |
Update 2: this is fixed in my latest (failed test is now green :)) |
We saw few breaks in our pipeline after updating from
0.29.3
to0.32.1
. We have been able to reproduce the issue locally and found out that it was because of an "ambiguity" in one of our packages - which is that one of the middle verbs in a verb dependency chain was missing.So say for dependency like
test:e2e
->bundle
->build
; if a package.json hastest:e2e
andbuild
defined, but notbundle
lage@0.29.3
would correctly runbuild
thentest:e2e
(skippingbundle
)lage@0.32.1
would just runtest:e2e
(skippingbuild
andbundle
both)Below are the steps to reproduce it. (Create a workspace with 2 packages)
lage.config.js
packageA/package.json
packageB/package.json
Running with Lage 0.31
Notice how
build
ran forpackageA
even when there was nobundle
. Even more surprisingly,build
ran forpackageB
even when there is NO mention oftest:e2e
at all!!Runing with Lage 0.32
Notice how it only runs
test:e2e
and does not runbuild
even though it was present in the chaintest:e2e
->bundle
( not present in package.json) ->build
From what I see, Lage graph parsing has become stricter, which is why packages (like ours) which had missing/misconfigured verbs, were building fine with older versions of Lage (in some cases just luck! that interdependent packages were building at all!)
@kenotron Was this intentional? If yes, can we update documentation on this "strictness" that was introduced?
The text was updated successfully, but these errors were encountered: