Zulip Chat Archive
Stream: general
Topic: ProofWidgets v0.0.36 and v0.0.39
Kim Morrison (Jun 05 2024 at 20:57):
@Wojciech Nawrocki, I made a bit of a mess of the releases in ProofWidgets yesterday, creating v0.0.37, v0.0.38, and v0.0.38, all of which use the (as yet unannounced) v4.8.0
toolchain, but I couldn't get Mathlib on v4.8.0 to successfully use any of them because of noisy build reports from ProofWidgets.
Hence I'm going to move Mathlib to v4.8.0
still using v0.0.36
for now (despite the toolchain mismatch), and this seems to work.
So:
- If you want to just delete v0.0.37, v0.0.38, and v0.0.39, no objections from me, and apologies for cutting so many!
- There underlying reason for the failures was that you have made significant changes (with Mac) to the build setup, but these had only landed on
master
, not in a release. Thus when I needed to release thev4.8.0
toolchain, I was trapped, becauseProofWidgets
master
was not even compatible with being used in Mathlib atv4.8.0-rc2
. - In future, if you make major changes to the build setup, can you please cut a new release, and either notify me that we need to do a Mathlib bump (or do it yourself, or find other Mathlib maintainers to do it). I'd really like to avoid the situation that I need a new release to do a Lean version release, but find myself with a
master
that hasn't actually been tested yet on downstream repos!
Can I leave it to you to work out what needs to change so ProofWidgets is compatible with Mathlib again? Currently, it will run npm install
in the Mathlib build process, which inevitably fails.
Mac Malone (Jun 05 2024 at 21:05):
@Wojciech Nawrocki Sorry for not testing this stuff throughly and verifying it works when I was helping you with the build overhaul. Once suggestion I do have is that it would be good to have a release test in the CI. For example, something like:
lake clean && lake build :release && lake build --no-build
I have been debugging main
and it is not yet clear to me why the build is broken. The main thing I have deduced is that the produced release lake.trace
does not match that which is computed locally when using the release.
𝚠𝚘𝚓𝚌𝚒𝚎𝚌𝚑 𝚗𝚊𝚠𝚛𝚘𝚌𝚔𝚒 (Jun 24 2024 at 12:34):
Mac Malone said:
The main thing I have deduced is that the produced release
lake.trace
does not match that which is computed locally when using the release.
I am observing that the hash of some inputFile
s is platform-dependent. That shouldn't be the case, should it? See the two builds here which differ in "trace hash pre package-lock".
UPDATE: Oh lol, I think it might just be because the files are listed in an inconsistent order across platforms.
UPDATE 2: Yeah I think that was it.
UPDATE 3: Not quite, sorting equates the hash across Ubuntu and my local Mac, but not across Ubuntu and Windows.
𝚠𝚘𝚓𝚌𝚒𝚎𝚌𝚑 𝚗𝚊𝚠𝚛𝚘𝚌𝚔𝚒 (Jun 24 2024 at 12:58):
@Mac Malone : Looking at this run now, the trace of inputFile
s differs between Ubuntu and Windows. Is this intended?
Mac Malone (Jun 24 2024 at 13:01):
@Wojciech Nawrocki Are you using inputFile
itself (which is deprecated) or the new inputTextFile
? The old inputFile
is a binary comparison. inputTextFile
normalizes line endings. On Windows, byt default, GitHub checks out text files with CRLF line endings which makes files not binary equal.
𝚠𝚘𝚓𝚌𝚒𝚎𝚌𝚑 𝚗𝚊𝚠𝚛𝚘𝚌𝚔𝚒 (Jun 24 2024 at 13:03):
I think inputTextFile
might not exist on 4.9.0-rc2? I will try rc3.
UPDATE: Nope, not there on rc3 either.
Mac Malone (Jun 24 2024 at 13:06):
True, However, the underlying problem is still there. So you can try copy-pasting the definition of inputTextFile
from master.
𝚠𝚘𝚓𝚌𝚒𝚎𝚌𝚑 𝚗𝚊𝚠𝚛𝚘𝚌𝚔𝚒 (Jun 24 2024 at 13:30):
Okay, that fixed the input files. It looks like buildFileAfterDep
has the same issue in case the build output is checked out by git, but the .hash
file is not.
𝚠𝚘𝚓𝚌𝚒𝚎𝚌𝚑 𝚗𝚊𝚠𝚛𝚘𝚌𝚔𝚒 (Jun 24 2024 at 16:08):
Now it cannot find a file that is clearly there. Any ideas @Mac Malone ? Ok, it's not there.
Mac Malone (Jun 24 2024 at 21:32):
@Wojciech Nawrocki Oh yes, build artifacts are not expected to be git-managed.
Mac Malone (Jun 24 2024 at 21:33):
If they are, you may want to use .gitattributes
to clarify the expected format (e.g., eol
)
Last updated: May 02 2025 at 03:31 UTC