Request for merging "python-team" branch

  • Open
  • quality assurance status badge
Details
6 participants
  • jgart
  • Lars-Dominik Braun
  • Ludovic Courtès
  • Christopher Baines
  • Sharlatan Hellseher
  • Tanguy LE CARROUR
Owner
unassigned
Submitted by
Christopher Baines
Severity
normal
C
C
Christopher Baines wrote on 7 Jun 10:24 +0200
(address . guix-patches@gnu.org)
8734pp2m98.fsf@cbaines.net
I haven't been involved in this branch, but I'm opening the request for
merge issue just to keep track of things.
-----BEGIN PGP SIGNATURE-----

iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmZiw9RfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh
aW5lcy5uZXQACgkQXiijOwuE9XcIshAAim5e+epdlXWL1jNQSYVcarPA5E6RUehw
Ap2TQKHFzChXMlBibike/5OOCfiQkZzWMxheqP1HGrMmbyaQPDdJorA3qTuh8EhK
QIDL6Ycu0mdFambgl4bAfwQ4vEpqC8qiYUhRO+iRUi7KDiayX7uFghmPYZigKtco
kLmI6FzyMLGpk8dvz5CzJTpX+4zhYdMhzswfpNF+I40Yq0rfYMUGsGUaDdfJZIRb
ismw7xgql5I0FveL1H8iMcth5+MAT3AIE6Pd4Zyor3ezs8JmB9WLTs+GH5IWnbBd
V4RuCmin6NrWH/IEaNBi9sbjTMwb3g/q7jhtJMqgNEz2850KOHl7KbQhU9555aEd
N3FJp72EUV+EF1yywRdFBIr9gt7fS7PjWrAoXGPp+wqLFSAI9YCzK12kE5CtrHFI
4V5cAqoJMLSZLGsIrL2bpDj8DUGoaYmZOaLUFiyHF6CrvH02p7va8vQeGkzL1ygg
tlA6Vwu9V0Mwn/tjMrrIxwyrL7XKCIitVNZHWTAwU1/hWoSx4VYkq0JfDR9g9lCC
ddJeXPuU0aRRfRMrxeJqTImF88y+3ZY01/XinabYwlmywsNJlzYsHmnFJI4yHtgv
e9EarK36aCtCaCHZtdAluMPuhvmOWcyCzs2g5o4xGQQ3f7ad29CEsdPklIgC7OuI
NQgO7mtWSjo=
=L9mn
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 8 Jun 16:27 +0200
(name . Christopher Baines)(address . mail@cbaines.net)
871q57fr1a.fsf@gnu.org
Hello,

(Cc’ing the Python team.)

Christopher Baines <mail@cbaines.net> skribis:

Toggle quote (3 lines)
> I haven't been involved in this branch, but I'm opening the request for
> merge issue just to keep track of things.

I haven’t been involved either. My understanding is that the main
blocker before merging is assessing the amount of breakage introduced in
this branch¹.

Right now it’s built at 89% on x86_64-linux only, which is a bit less
than on ‘master’ but there are still pending builds. Interested readers
can browse failed builds at:


(If you find builds that failed due to transient errors like the
infamous “missing derivation”, you can click on “Action -> Restart”—this
is now available in most cases without privileges.)

An important issue seems to be test failures of ‘python-responses’:


Excerpt:

Toggle snippet (10 lines)
=========================== short test summary info ============================
FAILED responses/tests/test_responses.py::test_auto_calculate_content_length_doesnt_override_existing_value
FAILED responses/tests/test_responses.py::TestMaxRetry::test_max_retries - Ty...
FAILED responses/tests/test_responses.py::TestMaxRetry::test_max_retries_exceed[True]
FAILED responses/tests/test_responses.py::TestMaxRetry::test_max_retries_exceed[False]
FAILED responses/tests/test_responses.py::TestMaxRetry::test_max_retries_exceed_msg
FAILED responses/tests/test_responses.py::TestMaxRetry::test_adapter_retry_untouched
============ 6 failed, 187 passed, 2 skipped, 20 warnings in 21.86s ============

S
S
Sharlatan Hellseher wrote on 8 Jun 23:04 +0200
(name . Ludovic Courtès)(address . ludo@gnu.org)
CAO+9K5pP6Hd=Y4S=t4QfkZHBKd2rdNv9au86oD2hY0X+oxmrxg@mail.gmail.com
Hi,

All failed tests have the same reason:

Toggle snippet (13 lines)
adapter = requests.adapters.HTTPAdapter(
> max_retries=Retry(
total=total,
backoff_factor=0.1,
status_forcelist=[500],
method_whitelist=["GET", "POST", "PATCH"],
raise_on_status=raise_on_status,
)
)
E TypeError: Retry.__init__() got an unexpected keyword argument
'method_whitelist'

It looks like the bump to the latest version would resolve it 0.22.0 -> 0.25.2

Toggle snippet (5 lines)
guix refresh --list-dependent python-responses
Building the following 198 packages would ensure 456 dependent
packages are rebuilt: <...>

There are some mentioned in GitHub issues with the same simptoms:

On Sat, 8 Jun 2024 at 15:27, Ludovic Courtès <ludo@gnu.org> wrote:
Toggle quote (49 lines)
>
> Hello,
>
> (Cc’ing the Python team.)
>
> Christopher Baines <mail@cbaines.net> skribis:
>
> > I haven't been involved in this branch, but I'm opening the request for
> > merge issue just to keep track of things.
>
> I haven’t been involved either. My understanding is that the main
> blocker before merging is assessing the amount of breakage introduced in
> this branch¹.
>
> Right now it’s built at 89% on x86_64-linux only, which is a bit less
> than on ‘master’ but there are still pending builds. Interested readers
> can browse failed builds at:
>
> https://ci.guix.gnu.org/eval/latest/dashboard?spec=python-team
>
> (If you find builds that failed due to transient errors like the
> infamous “missing derivation”, you can click on “Action -> Restart”—this
> is now available in most cases without privileges.)
>
> An important issue seems to be test failures of ‘python-responses’:
>
> https://ci.guix.gnu.org/build/4738398/details
>
> Excerpt:
>
> --8<---------------cut here---------------start------------->8---
> =========================== short test summary info ============================
> FAILED responses/tests/test_responses.py::test_auto_calculate_content_length_doesnt_override_existing_value
> FAILED responses/tests/test_responses.py::TestMaxRetry::test_max_retries - Ty...
> FAILED responses/tests/test_responses.py::TestMaxRetry::test_max_retries_exceed[True]
> FAILED responses/tests/test_responses.py::TestMaxRetry::test_max_retries_exceed[False]
> FAILED responses/tests/test_responses.py::TestMaxRetry::test_max_retries_exceed_msg
> FAILED responses/tests/test_responses.py::TestMaxRetry::test_adapter_retry_untouched
> ============ 6 failed, 187 passed, 2 skipped, 20 warnings in 21.86s ============
> --8<---------------cut here---------------end--------------->8---
>
> Ideas, Pythonistas? :-)
>
> Ludo’.
>
> ¹ https://lists.gnu.org/archive/html/guix-devel/2024-05/msg00227.html



--
VCS: https://github.incerto.xyz/;https://git.sr.ht/~hellseher/
GPG: 9847 81DE 689C 21C2 6418 0867 76D7 27BF F62C D2B5

… ??? ????? - ???????????? ?????????????? ?????? ??????? ????????
????? ????? ????? ? ??? ??????, ??????????? ????? ???????, ??
?????????? ?? ? ????????? ??????? ????? ? ?????????????????.
J
Re: Request for merging "python-team" branch
(address . 71408@debbugs.gnu.org)
330818cb39329dd4ded9d263f69d26e306b25f31@dismail.de
Hi Python Team, Guix Team at large, and Parenphilic Pythonistas,

This long lived python-team branch as of today has a lot of git conflicts if you try to rebase and/or merge it on to master.

What do you think if we discuss an alternative team branch policy for the future for feature branches that target master?

Here's a tentative proposal, with an example:

Instead of having a single python-team branch, with a wide variety of new Python features, what if we had, a python-team feature branch that we work on relatively quickly?

In other words, we avoid long lived branches but try to merge for example, a new python-team-sphinx branch as soon as the "Sphinx feature" is ready. This python-team-sphinx branch will only contain the work required to bump sphinx to the latest version that we'd like to support. The reason I use python-sphinx as an example is because the python-sphinx package requires a lot of rebuilds across many language ecosystems that use Sphinx for documentation purposes.

I think that keeping the team branches focused on a particular team sub-feature within that team's scope and not using long-lived and largely scoped branches will avoid a ton of frustration trying to fix merge conflicts when/before we announce a request to merge.

We can then focus our focused efforts on iterating over preparing major Python features and packages that require large amounts rebuilds.

WDYT?

jgart
T
T
Tanguy LE CARROUR wrote on 19 Jun 09:28 +0200
171878210601.5719.1846691700938340254@bioneland.org
Hi jgart,

Quoting jgart (2024-06-18 22:46:47)
Toggle quote (13 lines)
> This long lived python-team branch as of today has a lot of git conflicts if
> you try to rebase and/or merge it on to master.
> […]
> Here's a tentative proposal, with an example:
> […]
> I think that keeping the team branches focused on a particular team
> sub-feature within that team's scope and not using long-lived and largely
> scoped branches will avoid a ton of frustration trying to fix merge conflicts
> when/before we announce a request to merge.
>
> We can then focus our focused efforts on iterating over preparing major Python
> features and packages that require large amounts rebuilds.

IM(V)HO… the smaller and the more-frequently-rebased the branches, the better!
I still haven’t wrapped my head around the consequences for the CI of rebasing
often —can a simple rebase trigger a world rebuild?—, but this is definitively
something that I do —quite successfully!— on a daily basis in my professional life.

I guess it’s just a matter of giving it a try and see? It’s always possible to
go back to the one-branch-to-rule-them-all `python-team` branch if managing
multiple branches ends up being a pain, right?

I also have no clue how the other teams are managing their branch and their
rebase/merge policy?

--
Tanguy
C
C
Christopher Baines wrote on 19 Jun 15:45 +0200
(name . jgart)(address . jgart@dismail.de)
87tthp3v2l.fsf@cbaines.net
"jgart" <jgart@dismail.de> writes:

Toggle quote (27 lines)
> Hi Python Team, Guix Team at large, and Parenphilic Pythonistas,
>
> This long lived python-team branch as of today has a lot of git
> conflicts if you try to rebase and/or merge it on to master.
>
> What do you think if we discuss an alternative team branch policy for
> the future for feature branches that target master?
>
> Here's a tentative proposal, with an example:
>
> Instead of having a single python-team branch, with a wide variety of
> new Python features, what if we had, a python-team feature branch that
> we work on relatively quickly?
>
> In other words, we avoid long lived branches but try to merge for
> example, a new python-team-sphinx branch as soon as the "Sphinx
> feature" is ready. This python-team-sphinx branch will only contain
> the work required to bump sphinx to the latest version that we'd like
> to support. The reason I use python-sphinx as an example is because
> the python-sphinx package requires a lot of rebuilds across many
> language ecosystems that use Sphinx for documentation purposes.
>
> I think that keeping the team branches focused on a particular team
> sub-feature within that team's scope and not using long-lived and
> largely scoped branches will avoid a ton of frustration trying to fix
> merge conflicts when/before we announce a request to merge.

This aligns with the current (and previous) guidance on managing
branches [1]. Providing there's a consistent topic for the branch, any
name is fine (e.g. python-team-sphinx is fine).


I'm also hoping the requirement to create a guix-patches issue
requesting to merge the branch when it's created will help avoid the
long lived branches that we've had over the last year.
-----BEGIN PGP SIGNATURE-----

iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmZy4PJfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh
aW5lcy5uZXQACgkQXiijOwuE9XfhIA/9HdUfBn4QFicBFDWT3iL1cMSZTpqMbwX/
iKX+rir4/nYWCKNZgzfb3T+hYLN/VpyKqxj7jBOAvPVmZrt0ur/UQ34BnpTMnAH3
j4aOQ/tUAYkrR9FE9kymPXl9FIP6gFODo16fH7rI5O15zdxOqIilmHZw5P+48+vu
gTOjXfGRJfI1lBiZMcdqompe2T9Hz47Y188ddxFzvgQpYh79V7LSRKrb1OKMjbF+
j3yIV/H/9tQRzswqp0J1fx+dlXhZAdfqvh7QQ3bLLKA5hC3BYRLiBMMLM16STBj0
uNM0zDvwVuCnYsz8N0ck0B5tOga2aOOQUhuiUlSzVzXLCiDD/p3rivQNtQ71v7Zt
c81HLhnNz4KoEyA8hYefeDi09Z0+gjxMlDdCJdIZl6vdq25BJgLlEl7bmRnjuuhn
c4zDf5ZN5nnOK+QzCmstS4dkbkiYjSEqaYhkBXKub9cWLweCigIXgP2bAgIi6Hg7
dhVuAXyl8PD///0cmEhxWttiHoFWTgvz6k5LNBx90krIZO120pVVNy2o2ptBaAl4
ke/zaQPHgYuEiLG53cZOmG+cfxAFLpGxRu9hYuS/0KRrccknZfNc1pNenmKXlvDj
GiAEiQAvoLHAQcgt2E0nHGEj8NwxvoNrzpJ0ZoMEkxeXhalbw2KcGjRXti/KAoFR
vcm7yIMPrTE=
=P69h
-----END PGP SIGNATURE-----

J
(name . Christopher Baines)(address . mail@cbaines.net)
e2bd1188f999d3de54ce25ba6e389eaeb1273f4f@dismail.de
Toggle quote (6 lines)
> This aligns with the current (and previous) guidance on managing
>
> branches [1]. Providing there's a consistent topic for the branch, any
>
> name is fine (e.g. python-team-sphinx is fine).

Hi Christopher,

That's great that my proposal already aligns with the current guidance.

I am going to try to start cherry picking uncontroversial and non failing patches on the python-team branch on to master and removing them from the python-team branch in order to reduce the size of the branch. I can then remove those commits from the python-team branch and force push to update it. What do you think of this approach before I attempt it? I'll wait on your guidance before doing this.

Another approach I can take is to break the branch apart into 2 or 3 smaller topic branches and make requests for those branches to merge one at a time.

Note that I have an underpowered old Thinkpad X230 laptop and will only be able to test branches that are not too large. I tried using QA/CI but it seemed to be in an unknown state the last time that I tried. Any suggestions here for how to more effectively use that QA/CI infrastructure would be much appreciated.

I tried spending a bit of time on trying to resolve the merge conflicts but it quickly lead down a long rabbit hole and I only have a limited time to fix so many merge conflicts. The process is also currently very tedious to do with high amounts of accuracy due to their being

1. Lots of commits that I am not familiar
2. Lots of commits
3. The branch has diverged alot since latest master so things don't cleanly apply anymore

What do you think of this current approach of cherry picking good commits off of the python-team branch in order to reduce the size?

Another issue that I ran into on the branch is that there are commits that are failing. For example, at commit fdef5662cce6a57aa6bfa682c7260b65ce3669b8 (the borgmatic changes), borgmatic fails. Should I remove this commit since it is broken?

all the best,

jgart
S
S
Sharlatan Hellseher wrote on 25 Jun 20:06 +0200
(name . jgart)(address . jgart@dismail.de)
CAO+9K5r66s=ui1cKqVOUecqjsCbmUZ92zgQS9B2tjZZQ4HTZqg@mail.gmail.com
Hi,

@jgart Please let me know if you need a quick test of changes, I've got some
computer recourses at home.

Thanks
Oleg

On Tue, 25 Jun 2024 at 18:04, jgart <jgart@dismail.de> wrote:
Toggle quote (33 lines)
>
> > This aligns with the current (and previous) guidance on managing
> >
> > branches [1]. Providing there's a consistent topic for the branch, any
> >
> > name is fine (e.g. python-team-sphinx is fine).
>
> Hi Christopher,
>
> That's great that my proposal already aligns with the current guidance.
>
> I am going to try to start cherry picking uncontroversial and non failing patches on the python-team branch on to master and removing them from the python-team branch in order to reduce the size of the branch. I can then remove those commits from the python-team branch and force push to update it. What do you think of this approach before I attempt it? I'll wait on your guidance before doing this.
>
> Another approach I can take is to break the branch apart into 2 or 3 smaller topic branches and make requests for those branches to merge one at a time.
>
> Note that I have an underpowered old Thinkpad X230 laptop and will only be able to test branches that are not too large. I tried using QA/CI but it seemed to be in an unknown state the last time that I tried. Any suggestions here for how to more effectively use that QA/CI infrastructure would be much appreciated.
>
> I tried spending a bit of time on trying to resolve the merge conflicts but it quickly lead down a long rabbit hole and I only have a limited time to fix so many merge conflicts. The process is also currently very tedious to do with high amounts of accuracy due to their being
>
> 1. Lots of commits that I am not familiar
> 2. Lots of commits
> 3. The branch has diverged alot since latest master so things don't cleanly apply anymore
>
> What do you think of this current approach of cherry picking good commits off of the python-team branch in order to reduce the size?
>
> Another issue that I ran into on the branch is that there are commits that are failing. For example, at commit fdef5662cce6a57aa6bfa682c7260b65ce3669b8 (the borgmatic changes), borgmatic fails. Should I remove this commit since it is broken?
>
> all the best,
>
> jgart



--
VCS: https://github.incerto.xyz/;https://git.sr.ht/~hellseher/
GPG: 9847 81DE 689C 21C2 6418 0867 76D7 27BF F62C D2B5

… ??? ????? - ???????????? ?????????????? ?????? ??????? ????????
????? ????? ????? ? ??? ??????, ??????????? ????? ???????, ??
?????????? ?? ? ????????? ??????? ????? ? ?????????????????.
L
L
Lars-Dominik Braun wrote on 30 Jun 09:31 +0200
(name . jgart)(address . jgart@dismail.de)
ZoEJ2Fhf-XLeGSsu@noor.fritz.box
Hi,

Toggle quote (2 lines)
> I am going to try to start cherry picking uncontroversial and non failing patches on the python-team branch on to master and removing them from the python-team branch in order to reduce the size of the branch. I can then remove those commits from the python-team branch and force push to update it. What do you think of this approach before I attempt it? I'll wait on your guidance before doing this.

please go ahead. Divide and conquer is imo a good approach to get this branch merged.

Toggle quote (2 lines)
> Another approach I can take is to break the branch apart into 2 or 3 smaller topic branches and make requests for those branches to merge one at a time.

I’m splitting of the build-system-related changes into the
pyproject-build-system branch (again), because these are relatively
self-contained and thus easy to merge into master.

Lars
C
C
Christopher Baines wrote on 30 Jun 11:42 +0200
(name . jgart)(address . jgart@dismail.de)(address . 71408@debbugs.gnu.org)
877ce63gxi.fsf@cbaines.net
"jgart" <jgart@dismail.de> writes:

Toggle quote (17 lines)
>> This aligns with the current (and previous) guidance on managing
>> branches [1]. Providing there's a consistent topic for the branch, any
>> name is fine (e.g. python-team-sphinx is fine).
>
> That's great that my proposal already aligns with the current guidance.
>
> I am going to try to start cherry picking uncontroversial and non
> failing patches on the python-team branch on to master and removing
> them from the python-team branch in order to reduce the size of the
> branch. I can then remove those commits from the python-team branch
> and force push to update it. What do you think of this approach before
> I attempt it? I'll wait on your guidance before doing this.
>
> Another approach I can take is to break the branch apart into 2 or 3
> smaller topic branches and make requests for those branches to merge
> one at a time.

If there are commits on the branch that have been submitted as patches,
you might just be able to look at pushing them to master. If there are
commits that haven't been submitted as patches yet, but could be pushed
to master, it would be good to send them as patches so that QA can take
a look.

And splitting off some commits in to a more specific branch is fine as
well.

Toggle quote (6 lines)
> Note that I have an underpowered old Thinkpad X230 laptop and will
> only be able to test branches that are not too large. I tried using
> QA/CI but it seemed to be in an unknown state the last time that I
> tried. Any suggestions here for how to more effectively use that QA/CI
> infrastructure would be much appreciated.

QA has been performing recently as it's taking too long to process
revisions. Let me know if things aren't working or if you have questions
though and I can try and help.

Toggle quote (13 lines)
> I tried spending a bit of time on trying to resolve the merge
> conflicts but it quickly lead down a long rabbit hole and I only have
> a limited time to fix so many merge conflicts. The process is also
> currently very tedious to do with high amounts of accuracy due to
> their being
>
> 1. Lots of commits that I am not familiar
> 2. Lots of commits
> 3. The branch has diverged alot since latest master so things don't cleanly apply anymore
>
> What do you think of this current approach of cherry picking good
> commits off of the python-team branch in order to reduce the size?

I think making sure commits that can go to master, do go to master, is
really helpful to avoid merge conflicts. It's so much more likely to
have conflicts if there are changes that can be made on master, but are
made on a branch, or changes that should be made on a branch but are
pushed to master.

Toggle quote (5 lines)
> Another issue that I ran into on the branch is that there are commits
> that are failing. For example, at commit
> fdef5662cce6a57aa6bfa682c7260b65ce3669b8 (the borgmatic changes),
> borgmatic fails. Should I remove this commit since it is broken?

While ideally we'd care about the state at each commit, this doesn't
really happen so it's up to you what you do there.
-----BEGIN PGP SIGNATURE-----

iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmaBKIlfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh
aW5lcy5uZXQACgkQXiijOwuE9XdLXA/8DGE+vIx2DyAATEljF+IIn8cxhrFmwz2z
70CPTgoS+sOWf5ulSlZWqFTj4y8Cy6pv6b3Fw2IPSkW8iuVIjCT3Z0XNUx4tqTW1
Iv/eP3+qRPW6D11dDTBz8Qzd9XX3FuIia0DEmKjk+Yt140jvhZJMQRzYQQMs0/Jp
srHKusCa9/NZOjzOErmGPJSnbPbekUS9mR/zMS27OyC+uEnZNgL1Jp/pW7SPyZXN
aJLeraKhQN7NPchx9zUbeZUpl+tgJIjHcpf4neqedyYwxLEjn2iOYcapZ0z4uvC/
LJEtlxNFDZjG6y3pmbFoBHHQoVmtRJ2+qcQshzyscKqzmcZfvFSZ8AQ804FuIjEq
q/7lQZuJFAXEd4941E/ukdVoyAnuvd54YpECIs7OENuZ1BmCSHtOvJYkD/DKnp7q
bQb1hPz3pzumCs5WnROsA6JKEj8je3KLq5/uymP2OtwAco5NLB2K7kM0hY/Zl9my
8AQXyYXXh4HRqkvBTr6UmN5CLBGM7p6+wMo83/vXDiM7kV8stsnARVEr45DBMWix
v7ikVKoNbeY1Besvr5BZld0vgNa9UNVwLIU8X9nfsvgOn23sdcaYB0v1/bl1QumT
UM//or6diwyMFG2zz6zSWF2oqid0C7AmhdmHikVZr37t3Ou4zGB7UoaK88vnlhrf
6eXNQfeJhmw=
=GDnz
-----END PGP SIGNATURE-----

?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 71408@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 71408
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch