r-multiverse / help

Discussions, issues, and feedback for R-multiverse
https://r-multiverse.org
MIT License
2 stars 2 forks source link

R universe build fails if a package has a tag but not a release #13

Closed wlandau closed 4 months ago

wlandau commented 4 months ago

I tried to add arrow, which has tags, but apparently it broke the universe build because a release didn’t exist: https://github.com/r-universe/r-releases/actions/runs/8127177735/job/22211728431. I wonder at what level we can/should check for this.

wlandau commented 4 months ago

The log shows that there are packages without releases or tags, but those ones do not take down the whole job. I think arrow may have been the first one we tried with tags but no releases.

I wonder if we file an issue with r-universe: ask that “branch: *release” fail gracefully and still build the universe regardless of whether a tag exists.

jeroen commented 4 months ago

There was also a bug where the update job would not error if the package did not have any release on github. I fixed that now so now your update job will correclty show an error :) (due to 5 other packages without any github release).

wlandau commented 4 months ago

Thanks for your help, @jeroen.

Actually, would it be possible to ignore failing packages and build the universe anyway? r-releases is so automated and will grow to be so large that I worry what will happen if the misspecification of a single package can bring down the entire universe.

wlandau commented 4 months ago

One alternative I could see is to check for releases on my end when packages.json is being generated in build_universe.yaml. The only reason I have not done that yet is performance: this universe aims to grow to 20000+ packages, and checking for a release in all of them could require 20000+ GitHub API calls.

jeroen commented 4 months ago

Thanks for your help, @jeroen.

Actually, would it be possible to ignore failing packages and build the universe anyway? r-releases is so automated and will grow to be so large that I worry what will happen if the misspecification of a single package can bring down the entire universe.

It already works that way. The workflow will try to update all packages in the universe, it won't stop if one package fails. But it will set the CI run to failed if the package.json refers to a branch (or *release) that does not exist.

wlandau commented 4 months ago

Ah, got it! So the universe will build anyway, and then GitHub Actions will report that the check failed? This is actually perfect because it allows me to know when I should ask individual package maintainers to create releases.

jeroen commented 4 months ago

yes exactly.

wlandau commented 4 months ago

Awesome! I am going to test this by adding arrow again...

wlandau commented 4 months ago

rprojroot and arrow are now both in https://github.com/r-releases/r-releases.r-universe.dev/blob/main/packages.json. If the next universe update adds rprojroot to https://r-releases.r-universe.dev/builds despite the presence of arrow in packages.json, then the test passes.

wlandau commented 4 months ago

Test passed: rprojroot is now part of r-releases.