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

Release 1.0.10 #83

Merged
merged 5 commits into from
Jun 26, 2024
Merged

Release 1.0.10 #83

merged 5 commits into from
Jun 26, 2024

Conversation

ulidtko
Copy link
Owner

@ulidtko ulidtko commented Jun 26, 2024

@ulidtko ulidtko force-pushed the maint/release-1.0.10 branch 3 times, most recently from 1ca210b to 1e2c966 Compare June 26, 2024 20:23
Copy link
Collaborator

@andreasabel andreasabel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

NB: In principle, all these changes should be revisionable (staying at 1.0.9).

-- 1) unlikely to occur, as this package is so small, moreso regularly;
-- 2) best caught in CI pipelines that don't induce alert fatigue.
-- In any case, revisions may set tighter bounds afterwards, if exceptional
-- circumstances would warrant that.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed!

ulidtko added 2 commits June 26, 2024 22:48
typos; rewords; credits; streamline the "steps to use" section;
push down compat workarounds to the Notes section.
case-insensitive filesystems, right?..
@ulidtko ulidtko force-pushed the maint/release-1.0.10 branch 4 times, most recently from ff09b1b to 7ab7914 Compare June 26, 2024 21:04
@ulidtko ulidtko force-pushed the maint/release-1.0.10 branch from 7ab7914 to 5cbdd95 Compare June 26, 2024 21:53
@ulidtko
Copy link
Owner Author

ulidtko commented Jun 26, 2024

Published v1.0.10.

@Qqwy I don't expect any issues when updating, but please LMK if any difficulty whatsoever arises.

@andreasabel I can agree this technically could've been a revision of 1.0.9 — but as a consumer of the package, I would really expect a genuine version bump :) Rare things are worse than "same but different" versions...

@ulidtko ulidtko merged commit aa9eb89 into master Jun 26, 2024
12 checks passed
@ulidtko ulidtko deleted the maint/release-1.0.10 branch June 26, 2024 22:07
@andreasabel
Copy link
Collaborator

Yes, as soon as you raise a lower bound (like base to 4.9`) there should be a version bump, not a revision.
In general, only relaxations and corrections of actually wrong bounds may be revisions. Otherwise correct build plans will be destroyed.

@ulidtko
Copy link
Owner Author

ulidtko commented Jun 27, 2024

@andreasabel just curious, do you mean that build plans get persistently saved somehow?.. My understanding up until now was, that build-plans are "ephemeral", produced by cabal solver on-demand, recomputed from package index state + constraints every time anew. Isn't that so?.. Destroyed how?

I'd checked hackage-trustees guidelines — and there too, it says anything in the sdist tarball (e.g. README) except some fields of the cabal-file, can't change in revisions. Per these guidelines, commit 009a688 should've been a version bump:

─────────────────────────────────────────────────────────
modified: src/Distribution/Extra/Doctest.hs
─────────────────────────────────────────────────────────
@ src/Distribution/Extra/Doctest.hs:128 @ import Distribution.Types.LibraryName
        (libraryNameString)
 #endif
 
-#if MIN_VERSION_Cabal(3,6,0)
+#if MIN_VERSION_Cabal(3,5,0)
 import Distribution.Utils.Path
        (getSymbolicPath)
 #endif
@ src/Distribution/Extra/Doctest.hs:334 @ generateBuildModule testSuiteName flags pkg lbi = do
               <- mapM makeAbsolute
                $ compAutogenDir           -- autogenerated files
                : (distPref ++ "/build")   -- preprocessed files (.hsc -> .hs); "build" is hardcoded in Cabal.
-#if MIN_VERSION_Cabal(3,6,0)
+#if MIN_VERSION_Cabal(3,5,0)
                : map getSymbolicPath (hsSourceDirs compBI)
 #else
                : hsSourceDirs compBI

because that's a source-code change, not just cabal-file metadata.

In the same trustees repo, there's a policy.md that apparently encourages retroactive bounds tightening. It also says bounds weakening "should be done carefully"... and doesn't rule it out.

I'd also read this in cookbook.md:

Another problem [...] If such install-plans are retroactively prohibited, this results in a bad user-experience, and results in violation of the invariant that a meta-data revision shall not result in existing install-plans becoming illegal.

Are you referring to this issue? When from a user perspective, something used to build, but after a revision somewhere in dependencies, cabal solver would give up?

@andreasabel
Copy link
Collaborator

just curious, do you mean that build plans get persistently saved somehow?

Well, for one you can do this with cabal freeze. Further, versions are pinned in stackage snapshots. So if a build once version with version X of a package, it should not become impossible with a revision of X.

I'd also read this in cookbook.md:

Another problem [...] If such install-plans are retroactively prohibited, this results in a bad user-experience, and results in violation of the invariant that a meta-data revision shall not result in existing install-plans becoming illegal.

Yeah, this is a good quote, that basically sums it up.

commit 009a688 should've been a version bump:

modified: src/Distribution/Extra/Doctest.hs

Yes, you cannot release code changes as a revisions, the uploaded tarball isn't modified by a revision.

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