Skip to content
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

[rush] HBO feedback from testing 5.60.0-rc.1 with phased commands #3172

Closed
2 tasks done
octogonz opened this issue Jan 19, 2022 · 6 comments
Closed
2 tasks done

[rush] HBO feedback from testing 5.60.0-rc.1 with phased commands #3172

octogonz opened this issue Jan 19, 2022 · 6 comments

Comments

@octogonz
Copy link
Collaborator

octogonz commented Jan 19, 2022

Notes

  • @elliot-nelson said that it wasn't immediately clear where to find this file.

    The config/rush-project.json file appears to be in an outdated format. 
    Please see the UPGRADING.md file in the Rush project for upgrade instructions.
    

    We should add a link in the README.md file like Heft does

  • But also maybe we should make a handy redirect URL: Please see the UPGRADING.md notes for details. Quick link: https://rushjs.io/link/upgrading

So far it seems to be working otherwise.

CC @iclanton

@elliot-nelson
Copy link
Collaborator

An observation (not necessarily something that needs fixing).

Prior to v5.59, it was still true that projects with disabled build caching would revert to the old incremental build skipping logic. That's no longer true.

In the past, I would set all of our projects that didn't have build scripts (things like config projects, rigs, etc.) to disable build cache, which meant that they always showed up in the "SKIPPED" category in a rush build. Now, this doesn't work... if you do a rush build on a branch with no changes, you end up seeing all of the real projects in the "FROM CACHE" section, and all the boilerplate projects in the "SUCCESSFUL" section.

To prevent that, the easy fix is to go into your rush-project.json files on those projects with no builds, and enable the build caching, and insert the section for defining the cache folders etc. Even though the projects don't produce any files, caching an empty file set does work now (I believe someone fixed that last year sometime).

This moves all the boilerplate projects into the "FROM CACHE" section, which is at least closer to the truth than the "SUCCESSFUL" section.

@elliot-nelson
Copy link
Collaborator

(If I had any comment for the future... I almost wonder if a phase with an empty build script should be immediately shunted into the "SKIPPED" category, and never even attempt to build or restore it, since it can't possibly produce artifacts.)

@iclanton
Copy link
Member

@elliot-nelson - @dmichon-msft has a PR (#3043) that he thinks will address the issues that you've raised.

We also just briefly discussed creating a new status for projects with no scripts to disambiguate them from FROM CACHE/SUCCESS/SKIPPED

@dmichon-msft
Copy link
Contributor

@elliot-nelson

The PR addresses the ability to skip phases, modifies the treatment of empty scripts to resolve as "from cache" instead of "skipped" (with all the consequences that implies for subsequent projects), and ensures that task execution order always accounts for the full dependency relationship among selected tasks.

I don't know of any changes to the behavior of allowing a task to be skipped if the cache is disabled, that may require a separate investigation if we have a regression there.

@elliot-nelson
Copy link
Collaborator

@dmichon-msft I don't think it's a regression; my impression is that it was a conscious change to make sure that the "output" of a skipped incremental build could never be used as the input for a caching build.

To ensure this the best way is just to disable all incremental building if build caching is configured - I think that happened as part of the phasing implementation.

@octogonz
Copy link
Collaborator Author

Fixed in PR #3174

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

No branches or pull requests

4 participants