Zulip Chat Archive

Stream: mathlib4

Topic: forward porting


Scott Morrison (Mar 26 2023 at 22:22):

I'm a bit worried that https://leanprover-community.github.io/mathlib-port-status/out-of-sync currently has 87 entries, and would like to pay down some of this debt.

Scott Morrison (Mar 26 2023 at 22:23):

@Eric Wieser, would it be possible to make the list sortable by the age of the "verified at" commit, rather than the sha itself?

This would be useful for identifying the egregious cases where the forwarding porting should have happened long ago.

Scott Morrison (Mar 26 2023 at 22:24):

Otherwise, I was thinking to take the following steps:

  • make an effort to approve forwarding port PRs that are ready to go, which will hopefully reduce the list some
  • collate the out-of-sync files according to the author of the mathlib3 PR, and then message them reminding them about their list of forwarding porting jobs
  • start dealing with the ones that appear to be abandoned by their authors.

Scott Morrison (Mar 26 2023 at 22:24):

If anyone has advice on how I could move this along more effectively, I'm happy to hear. :-)

Eric Wieser (Mar 26 2023 at 22:25):

https://github.com/leanprover-community/mathlib4/pull/2926 will shrink that number by 5, and has already been reviewed :)

Eric Wieser (Mar 26 2023 at 22:26):

What do you mean by "age of the verified at" commit?

Eric Wieser (Mar 26 2023 at 22:26):

Is that interesting? Doesn't that just mean that the original port was long ago, not the mathlib3 PR that since made it out of sync?

Eric Wieser (Mar 26 2023 at 22:27):

Adding authors to the out-of-sync table was in the back of my mind; not least because I'm sure there are forward-ports I've forgotten about myself

Eric Wieser (Mar 26 2023 at 22:29):

@Yaël Dillies forward-porting #17961 (which only just landed) will knock down the list by another 8.

Scott Morrison (Mar 26 2023 at 22:31):

Yes, you're right, sorry, I want to sort by the age of the mathlib3 PR, which I now understand I can already do, by sorting on the mathlib3 changes column.

Am I right, then, that category_theory.structured_arrow is the "longest out-of-sync" file, then?

Eric Wieser (Mar 26 2023 at 22:41):

I think sorting on the "changes in mathlib3" columns sorts by "most out of sync"

Eric Wieser (Mar 26 2023 at 22:41):

As in "has the most independent PRs touching this file"

Eric Wieser (Mar 26 2023 at 22:41):

Ah I see the confusion

Eric Wieser (Mar 26 2023 at 22:41):

"newest first" means "within the cell, the commits are in this order" not "the rows are sorted this way"

Eric Wieser (Mar 26 2023 at 22:43):

So the conclusion is that set_theory.zfc.basic is massively out of sync; but that's probably fine because the porting PR was abandoned anyway, and we should throw it out and start over

Eric Wieser (Mar 26 2023 at 22:43):

algebra.star.self_adjoint is next most out of sync, which is my fault and I intend to address by reporting the file from scratch

Eric Wieser (Mar 26 2023 at 22:44):

"date of oldest unsynced mathlib3 change" would be a reasonable new column to add

Scott Morrison (Mar 26 2023 at 22:47):

Ugh, this is such a mess.

As an example: https://leanprover-community.github.io/mathlib-port-status/file/data/list/perm shows that there are three different mathlib3 PRs that touched this file.

There is an open PR for mathilb4, namely !4#3076, which updates the SHA, but does not make any mention of those three PRs.

In fact, the three mathlib3 PRs mentioned there have all actually been forward ported, but apparently in PRs that did not update the SHA, e.g. https://github.com/leanprover-community/mathlib4/pull/1509.

But it takes 20 minutes to decipher this and work out what to do, let alone do it. And there are 86 others on this list.

Scott Morrison (Mar 26 2023 at 22:48):

Unless I'm misunderstanding how bad this is, I think we need to hard freeze already ported files.

Eric Wieser (Mar 26 2023 at 22:49):

I would guess that about 1/3 of the mess is actually backports of refactors that happened during porting

Eric Wieser (Mar 26 2023 at 22:50):

Those are the ones that usually take longest to decipher

Eric Wieser (Mar 26 2023 at 22:51):

Which is to say; you picked a particularly nasty example

Eric Wieser (Mar 26 2023 at 22:54):

!4#3005 is an example of what the easy end of the spectrum looks like

Scott Morrison (Mar 26 2023 at 23:22):

Okay, I've dealt with everything on the #queue4 with label mathlib-pair, except for

Scott Morrison (Mar 26 2023 at 23:22):

Now on to the things not on the #queue4, I guess. :-)

Yaël Dillies (Mar 26 2023 at 23:25):

!4#3077 is now on the queue. The fixes were already made on the mathlib side.

Scott Morrison (Mar 26 2023 at 23:26):

Thanks!

Scott Morrison (Mar 26 2023 at 23:26):

https://leanprover-community.github.io/mathlib-port-status/file/algebra/order/absolute_value

is ... not looking healthy. It is way out of date with master. @Yaël Dillies, would you be able to update us on what should happen here?

Yaël Dillies (Mar 26 2023 at 23:27):

The open forward-porting PR (!4#1238) is completely stuck due to obscure errors I have no idea how to fix.

Yaël Dillies (Mar 26 2023 at 23:29):

Incidentally, we since found out that docs#mul_ring_norm was mathematically a duplicate of docs#absolute_value. So I think the correct thing to do here is to give up on my current porting PR, fix mathlib3, then report.

Eric Wieser (Mar 26 2023 at 23:31):

Scott Morrison said:

https://leanprover-community.github.io/mathlib-port-status/file/algebra/order/absolute_value

is ... not looking healthy. It is way out of date with master. Yaël Dillies, would you be able to update us on what should happen here?

This one is particularly bad because the change happened before we were tracking SHAs properly (see github comment)

Yaël Dillies (Mar 26 2023 at 23:32):

And Jireh forward-ported part of the changes. So there isn't a SHA that you can meaningfully track.

Eric Wieser (Mar 26 2023 at 23:32):

So I think the correct thing to do here is to give up on my current porting PR

agreed

fix mathlib3

possible not worth it

then report.

Agreed, I think it would be easiest to start from a clean mathport oneshot output

Yaël Dillies (Mar 26 2023 at 23:33):

There's a separate reason why we should fix mathlib3: We are missing absolute_value_class, which seems to have hindered the original port.

Scott Morrison (Mar 26 2023 at 23:42):

I don't like that things like https://github.com/leanprover-community/mathlib4/pull/1470 are labelled as mathlib-pair at this point. They are empty placeholder PRs, and should be labelled to reflect this. Maybe future-mathlib-pair?

I want to try and deal with as much of the mathlib-pair list as possible, and these ones are just a distraction (and my preferred solution to them is "close the underlying mathlib3 PR", but I'm not necessarily advocating that today :-).

Yaël Dillies (Mar 26 2023 at 23:43):

Well, they aren't labelled awaiting-review

Scott Morrison (Mar 26 2023 at 23:45):

Yes, but we are so far behind on dealing with forward porting issues, that we need to be going through all these PRs, to understand their status and get them moving again. So it's not good enough to just say "it's not labelled awaiting-review, so we can ignore it".

Scott Morrison (Mar 26 2023 at 23:45):

The point being that once we don't have a backlog of mathlib-pair PRs, we can start following up with the "owners" of forward porting obligations. While there is a backlog this is hard to do.

Scott Morrison (Mar 26 2023 at 23:46):

I might add blocked-by-other-PR labels to mathlib-pair PRs where the mathlib3 PR has yet to be merged? Or should I just add an explicit label for this?

Yaël Dillies (Mar 26 2023 at 23:46):

I don't understand. Surely the presence of matching up PRs helps, right?

Scott Morrison (Mar 26 2023 at 23:46):

Yes! I want the matching up PRs

Scott Morrison (Mar 26 2023 at 23:46):

I just want to know that they are only there as placeholders for future work.

Eric Wieser (Mar 26 2023 at 23:46):

If we remove mathlib-pair labels from the placeholders then they won't show up in the dashboard, which in turn means that people might recreate them

Yaël Dillies (Mar 26 2023 at 23:46):

Do you know about the mathlib4 project Eric made?

Eric Wieser (Mar 26 2023 at 23:47):

I consider that a failed experiment

Scott Morrison (Mar 26 2023 at 23:47):

I do want to keep the mathlib-pair label on them.

Scott Morrison (Mar 26 2023 at 23:47):

I just want some additional label that shows that the mathlib3 PR hasn't even been approved yet.

Eric Wieser (Mar 26 2023 at 23:47):

I think in practice the need to create placeholder PRs is now gone

Eric Wieser (Mar 26 2023 at 23:47):

We should keep around the old ones to fulfill the promises in the mathlib3 commits that reference them

Yaël Dillies (Mar 26 2023 at 23:48):

In https://github.com/orgs/leanprover-community/projects/4 there already is a place for matching up PRs whose mathlib PR hasn't gone through yet.

Scott Morrison (Mar 26 2023 at 23:53):

I don't understand what https://github.com/orgs/leanprover-community/projects/4 is useful for, sorry. It seems to be showing me the things I don't care about, rather than the things I do. :-)

Eric Wieser (Mar 26 2023 at 23:53):

I built it as an attempt to be useful, but concluded it didn't really hit the mark. @Jon Eugster's improvements to the dashboard largely replace it.

Eric Wieser (Mar 26 2023 at 23:54):

The data there is all out of date now because I stopped updating it

Eric Wieser (Mar 27 2023 at 00:12):

Eric Wieser said:

Adding authors to the out-of-sync table was in the back of my mind; not least because I'm sure there are forward-ports I've forgotten about myself

Done. @Yaël Dillies, @Yury G. Kudryashov, and I are each responsible for about 15 files 18, 13, and 9 files respectively

Yury G. Kudryashov (Mar 27 2023 at 02:02):

I'll have a look later tonight.


Last updated: Dec 20 2023 at 11:08 UTC