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

Fix CI #220

Merged
merged 10 commits into from
Jan 6, 2025
Merged

Fix CI #220

merged 10 commits into from
Jan 6, 2025

Conversation

pbrisbin
Copy link
Member

@pbrisbin pbrisbin commented Jan 6, 2025

This migrates to our newer stack-all-based setup, with stack-ltsX.yaml files (not X.Y) and makes stack.yaml a symlink to the latest. It also updates CI to use generate-matrix and installs the PCRE lib now needed that ubuntu-latest is 24.04.

I spent some time trying to get nightly to work too, but it seems Very Hard.

@pbrisbin pbrisbin changed the title pb/envparse Update resolvers setup Jan 6, 2025
@pbrisbin pbrisbin changed the title Update resolvers setup Fix CI Jan 6, 2025
@pbrisbin pbrisbin requested a review from chris-martin January 6, 2025 21:19
@pbrisbin pbrisbin marked this pull request as ready for review January 6, 2025 21:19
@pbrisbin pbrisbin requested a review from a team January 6, 2025 21:19
@chris-martin
Copy link
Contributor

Why keep nightly? I have never understood what's the point of having Stack configs that we know don't work.

@pbrisbin
Copy link
Member Author

pbrisbin commented Jan 6, 2025

what's the point of having Stack configs that we know don't work

It not working is a temporary issue and not something we seek to do or expect to be the case.

Why keep nightly?

It's part of our general policy and process for keeping our packages in Stackage at all:

If you were to remove your upper bounds and do nothing else, your packages would invariably drift into a broken state over time. Particularly stable libraries that rarely see updates would therefore rarely re-run CI against newer dependencies and you'd be relying purely on user-reported issues to uncover breakage.

But we do more than "nothing else". We also ensure our libraries remain in Stackage, which just so happens to rebuild against newer dependencies every single night

In other words, to avoid the maintenance of upper bounds, we want to stay in Stackage.

Given that, the thinking was that, by having a nightly build on CI, particularly one that's scheduled, we will be alerted to failures within our own CI and fix them before Stackage's own build fails and they report an Issue on our project that we have to see, triage, and address. It's just a "getting ahead of it" thing.

Less concretely, and more anecdotally, I find that dealing with things in nightly tends to amortize the hassle you see when moving LTSs anyway. It helps avoid the "big upgrade" stall, c.f. megarepo.

If that's not working, we can certainly try without our own pro-active nightly CI.

@pbrisbin
Copy link
Member Author

pbrisbin commented Jan 6, 2025

I guess the ship sailed ages ago about keeping freckle-app specifically in Stackage -- it's both more work and not useful -- so there really is no value in the nightly build, except perhaps the "deal with issues earlier" thought, which is pretty flimsy.

@chris-martin
Copy link
Contributor

Might make sense to keep the nightly config but just take freckle-app off the package list. (Moot anyway though if we're going to start making progress at splitting up the repo, which I would like to do.)

I see why we want to keep libraries up to date with the latest nightly, I just don't see how committing a failing build helps to do that. I would rather have failing update pull requests that gets merged once they work.

@pbrisbin
Copy link
Member Author

pbrisbin commented Jan 6, 2025

I just don't see how committing a failing build helps to do that

I think I just don't characterize that as this. We're just not removing a build if it is (temporarily) failing. I suppose your suggestion is that if it fails you just remove it entirely and then what, immediately open a PR that brings it back and leave that PR open until addressed? I just don't see that as meaningfully better. I'd rather see the not-required-but-failing build on every other PR I create in the repo, to prod me to take another swing at it. Pushing it out to some PR is just removing it forever with more steps, IMHO.

@pbrisbin pbrisbin merged commit 8fb6bde into main Jan 6, 2025
9 checks passed
@pbrisbin pbrisbin deleted the pb/envparse branch January 6, 2025 22:05
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

Successfully merging this pull request may close these issues.

2 participants