You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm not sure if this is intended behavior, a bug or a potential perf optimization, but I will write this up as a bug for initial discussion. I long thought lage was behaving a certain way but it turns out I was wrong the whole time. The behavior described in this issue seems to be consistent for all versions from 0.29.0 to 2.5.19.
that defines build of dependent packages a prerequisite for build of a given package. Additionally, it defines build of its own package as a prerequisite for test task defined in that package.
However, it appears that this actually requires build of the entire repo when running yarn lage test, even for standalone packages and leaf nodes that aren't dependents of any package with test tasks.
The package hierarchy is:
flowchart TD
base["package-base"]
leaf["package-leaf"]
test["package-test"]
standalone["package-standalone"]
test --> base
leaf --> base
Loading
ONLY package-test defines a test task. Combined with lage.config.js this should result in the task hierarchy for yarn lage test:
Running yarn lage test actually runs build against all packages in the repo, even standalone packages and leaf nodes with no test scripts.
D:\git\repros\lage-leaf-nodes>yarn lage test
yarn run v1.22.17
$ lage test
info Lage task runner - let's make it
info package-base build ▶️ start
info package-leaf build ▶️ start
info package-standalone build ▶️ start
info package-base build ✔️ done - 0.29s
info package-test build ▶️ start
info package-leaf build ✔️ done - 0.29s
info package-standalone build ✔️ done - 0.29s
info package-test build ✔️ done - 0.28s
info package-test test ▶️ start
info package-test test ✔️ done - 0.28s
info � Summary
info
info [Tasks Count] success: 5, skipped: 0, incomplete: 0
info ----------------------------------------------
info Took a total of 1.00s to complete
Done in 1.83s.
Expected behavior
A directed command like yarn lage test only runs the prerequisites in the task hierarchy. In other words, build for packages that have test tasks or are dependencies of packages with test tasks. This is also the behavior that occurs when yarn lage test --to package-test is run.
$ lage test
info Lage task runner - let's make it
info package-base build ▶️ start
info package-base build ✔️ done - 0.29s
info package-test build ▶️ start
info package-test build ✔️ done - 0.28s
info package-test test ▶️ start
info package-test test ✔️ done - 0.28s
info � Summary
info
info [Tasks Count] success: 3, skipped: 0, incomplete: 0
info ----------------------------------------------
info Took a total of 1.00s to complete
Done in 1.83s.
Environment/Troubleshooting
If this is an issue with run order of tasks, please paste in the result of lage info test:
info {
info "command": [
info "test"
info ],
info "scope": [
info "package-base",
info "package-leaf",
info "package-standalone",
info "package-test"
info ],
info "packageTasks": [
info {
info "id": "package-test#test",
info "command": [
info "yarn",
info "run",
info "test"
info ],
info "dependencies": [
info "package-test#build"
info ],
info "workingDirectory": "packages/package-test",
info "package": "package-test",
info "task": "test"
info },
info {
info "id": "package-base#build",
info "command": [
info "yarn",
info "run",
info "build"
info ],
info "dependencies": [],
info "workingDirectory": "packages/package-base",
info "package": "package-base",
info "task": "build"
info },
info {
info "id": "package-leaf#build",
info "command": [
info "yarn",
info "run",
info "build"
info ],
info "dependencies": [],
info "workingDirectory": "packages/package-leaf",
info "package": "package-leaf",
info "task": "build"
info },
info {
info "id": "package-standalone#build",
info "command": [
info "yarn",
info "run",
info "build"
info ],
info "dependencies": [],
info "workingDirectory": "packages/package-standalone",
info "package": "package-standalone",
info "task": "build"
info },
info {
info "id": "package-test#build",
info "command": [
info "yarn",
info "run",
info "build"
info ],
info "dependencies": [
info "package-base#build"
info ],
info "workingDirectory": "packages/package-test",
info "package": "package-test",
info "task": "build"
info }
info ]
info }
Describe the bug
I'm not sure if this is intended behavior, a bug or a potential perf optimization, but I will write this up as a bug for initial discussion. I long thought lage was behaving a certain way but it turns out I was wrong the whole time. The behavior described in this issue seems to be consistent for all versions from
0.29.0to2.5.19.Given a lage config:
that defines
buildof dependent packages a prerequisite forbuildof a given package. Additionally, it definesbuildof its own package as a prerequisite fortesttask defined in that package.However, it appears that this actually requires
buildof the entire repo when runningyarn lage test, even for standalone packages and leaf nodes that aren't dependents of any package withtesttasks.The package hierarchy is:
flowchart TD base["package-base"] leaf["package-leaf"] test["package-test"] standalone["package-standalone"] test --> base leaf --> baseONLY
package-testdefines atesttask. Combined withlage.config.jsthis should result in the task hierarchy foryarn lage test:flowchart TD basebuild["package-base#build"] testbuild["package-test#build"] testtest["package-test#test"] basebuild --> testbuild testbuild --> testtestTo Reproduce
Steps to reproduce the behavior:
git clone https://github.com/JasonGore/lage-leaf-nodesyarnyarn lage testActual Behavior
Running
yarn lage testactually runsbuildagainst all packages in the repo, even standalone packages and leaf nodes with notestscripts.Expected behavior
A directed command like
yarn lage testonly runs the prerequisites in the task hierarchy. In other words,buildfor packages that havetesttasks or are dependencies of packages withtesttasks. This is also the behavior that occurs whenyarn lage test --to package-testis run.Environment/Troubleshooting
If this is an issue with run order of tasks, please paste in the result of
lage info test: