-
Notifications
You must be signed in to change notification settings - Fork 194
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
build: move from make
to cargo xtask
workflows
#2297
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
883c96f
to
114d6d6
Compare
Codecov Report
📣 This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more @@ Coverage Diff @@
## master #2297 +/- ##
==========================================
- Coverage 82.19% 82.13% -0.07%
==========================================
Files 82 83 +1
Lines 44267 44324 +57
==========================================
+ Hits 36384 36404 +20
- Misses 7883 7920 +37
... and 3 files with indirect coverage changes Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
8916401
to
1108f3d
Compare
xtask/src/main.rs
Outdated
&mut found_err, | ||
|file, _| { | ||
// TODO: strip prefix to match old Makefile output? | ||
log::info!("Validating {}", file.display()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note: N.B. that this output is technically different from the original Makefile
; it includes the full relative path parent prefix of the glob search path, instead of "just" printing the base name. I don't think anybody will care, tho, because it makes this particular branch consistent with everything else!
205ee31
to
87afaf8
Compare
This comment was marked as resolved.
This comment was marked as resolved.
9e17f9d
to
68170b4
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This PR should basically be ready for full review and merging. 😤😀 |
44ce4f3
to
7a73050
Compare
ece329e
to
5b15581
Compare
Ping for feedback on this (CC @teoxoy, @cwfitzgerald, @jimblandy); I keep rebasing, waiting for some feedback, but nobody's requesting changes or asking questions. AFAIK, there are no open questions or concerns. Merge plz? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks solid! Much easier to follow than the Makefile
.
Originally implemented in [`naga`gfx-rs#2297](gfx-rs#2297), but removed as an experiment to see who actually needs the workflow. Reverts commit 337c760.
Resolved some |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
@teoxoy: Once you've reviewed, or you have more feedback, most of the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, one last thing: Could you please add the path of the new xtask crate to the validation workflows so that the CI gets triggered if we modify it in the future? Thanks!
Re-implement `naga` development workflows using [`cargo xtask`]. Convert `make` logic and shader test configuration as file with Bash variables into an `xtask` crate and YAML files, respectively. Pros: * We now have a _portable_ workflow everywhere, which means Windows folks and people who don't install `make` don't have to suffer. 😮💨 * Workflow logic is now relatively easy to inspect and change. Whew! 💁🏻♂️💦 * Contributors can use their existing Rust knowledge to contribute to developer experience. 🎉 * `cargo xtask` is a relatively well-known convention for workflows in the ecosystem. * We can do fancy things like allow folks to run at different log levels for workflows, depending on their tastes. Cons: * There's now a non-trivial compile step to project workflow. Incremental rebuilds seem to be pretty short, though! * Code is much more verbose than the (very) terse `make` implementation. [`cargo xtask`]: https://github.com/matklad/cargo-xtask
Originally implemented in [`naga`gfx-rs#2297](gfx-rs#2297), but removed as an experiment to see who actually needs the workflow. Reverts commit 337c760.
Originally implemented in [`naga`gfx-rs#2297](gfx-rs#2297), but removed as an experiment to see who actually needs the workflow. Reverts commit 337c760.
Originally implemented in [`naga`gfx-rs#2297](gfx-rs#2297), but removed as an experiment to see who actually needs the workflow. Reverts commit 337c760.
Is this too slow for CI?Buildingxtask
fully every time is relatively expensive (1m30-2m00 from my most recent tests), but then the only real resolution is caching. Current stats:xtask
dep. changesxtask
on Windows jobsxtask
on Linux (1) and Mac (2) jobsRe-implement
naga
development workflows usingcargo xtask
. Convertmake
logic and shader test configuration as file with Bash variables into anxtask
crate and YAML files, respectively.Pros:
make
don't have to suffer. 😮💨cargo xtask
is a relatively well-known convention for workflows in the ecosystem.Cons:
make
implementation.