Zulip Chat Archive
Stream: general
Topic: update-mathlib "reference is a fork"
Scott Morrison (Jul 31 2019 at 22:26):
A student (@Ainsley Pahljina) cloned mathlib from git@github.com:leanprover-community/mathlib.git, installed update-mathlib
via curl https://raw.githubusercontent.com/leanprover-community/mathlib-tools/master/scripts/remote-install-update-mathlib.sh -sSf | bash
, restarted to get paths right, then ran update-mathlib
and received an error message saying "reference is a fork".
What's going on? (Can we have a more helpful error message, that explains the fix?)
Floris van Doorn (Jul 31 2019 at 22:30):
From looking at the source code it seems that this means that the dependency specified in leanpkg.toml
is a fork of mathlib
Floris van Doorn (Jul 31 2019 at 22:32):
I'm not sure why that wouldn't be allowed, since forks share the same revision sha's, right? So as long as the revision has a corresponding compiled version to download, that seems fine.
Scott Morrison (Jul 31 2019 at 22:33):
As far as I can tell Ainsley didn't add a fork, in any case. @Ainsley Pahljina, would you mind posting the contents of your leanpkg.toml
file here for us? (If you surround blocks of code with triple backticks it typesets nicely.)
Floris van Doorn (Jul 31 2019 at 22:35):
Was the error message indeed Error: mathlib reference is a fork
?
Scott Morrison (Jul 31 2019 at 22:40):
I'm pretty sure it was, but I didn't write it down exactly when looking at her computer. She hadn't added any other dependencies, certainly, besides mathlib.
Kevin Buzzard (Aug 01 2019 at 06:47):
Update-mathlib doesn't work on mathlib as far as I know
Kevin Buzzard (Aug 01 2019 at 06:47):
It only works on projects that have mathlib as a dependency
Johan Commelin (Aug 01 2019 at 06:47):
Right, you need cache-olean --fetch
for updating mathlib itself (when it is not a dependency).
Scott Morrison (Aug 01 2019 at 08:32):
That's the situation we're in --- Ainsley made a new package, and added mathlib as a dependency, but update-mathlib
isn't working.
Kevin Buzzard (Aug 01 2019 at 08:35):
So by "cloned mathlib" in the first post, you just mean "added mathlib as a dependency to an existing project and typed leanpkg configure
"?
Kevin Buzzard (Aug 01 2019 at 08:35):
What does their leanpkg.toml
look like?
Patrick Massot (Aug 01 2019 at 08:42):
Did you follow instructions https://github.com/leanprover-community/mathlib/blob/master/docs/install/project.md or did you actually type "git" ?
Scott Morrison (Aug 01 2019 at 09:26):
I think we followed those instructions. No use of git involved (except to commit the main package directory to a private gitlab repository).
Patrick Massot (Aug 01 2019 at 09:26):
Weird. I gues we can't do anything without seeing the leanpkg.toml
Kevin Buzzard (Aug 01 2019 at 11:55):
Dumb related question -- if I just pulled mathlib and I want to get all the olean files, what's the best way of doing it? Currently the only way I know is by going to a random project which has mathlib as a dependency and running update-mathlib
and then moving all the olean files, being careful to not mess with the timestamps.
Kevin Kappelmann (Aug 01 2019 at 12:05):
A - presumably not so great - alternative is to download the sources including olean files from here: https://github.com/leanprover-community/mathlib-nightly/releases/
Floris van Doorn (Aug 01 2019 at 14:11):
@Kevin Buzzard The command cache-olean --fetch
is exactly for that (assuming you're fine with the branch lean-3.4.2
). Or am I misunderstanding your question?
Kevin Buzzard (Aug 01 2019 at 14:14):
That's surely exactly what I'm looking for. I usually don't edit mathlib so didn't know this trick (I never use cache-olean)
Kevin Buzzard (Aug 01 2019 at 14:14):
Thanks!
Kevin Buzzard (Aug 02 2019 at 18:11):
Kevin Buzzard The command
cache-olean --fetch
is exactly for that (assuming you're fine with the branchlean-3.4.2
). Or am I misunderstanding your question?
Doesn't work for me :-/
$ git pull Already up-to-date. $ cache-olean --fetch No github section found in 'git config' Querying GitHub... Error: no nightly archive found no cache found
Floris van Doorn (Aug 02 2019 at 19:15):
cache-olean --fetch
only works on the remote lean-3.4.2
branch (or previous versions of that branch), so first do git checkout origin/lean-3.4.2
(assuming origin
is your name for the leanprover-community
version).
Floris van Doorn (Aug 02 2019 at 19:16):
and as discussed in the other stream, you might have to do find src/ -name '*.olean' -exec touch {} +
afterwards to update the timestamps of your olean files.
Floris van Doorn (Aug 02 2019 at 19:17):
you can checkout
another commit afterwards (of course, you will have to recompile all the changed files and the files depending on those afterwards)
Last updated: Dec 20 2023 at 11:08 UTC