Re: Reminder: action required when updating dependencies or build options

2021-01-13 Thread Bastien Nocera
On Tue, 2021-01-12 at 16:50 +, Philip Withnall wrote:
> On Tue, 2021-01-12 at 09:31 -0600, Michael Catanzaro wrote:
> > Hi developers,
> > 
> > Please remember that action is required when updating your
> > dependencies 
> > or build options. You need to either make sure gnome-build-meta is
> > OK
> > with your changes, or ask release team to investigate on your
> > behalf.
> > 
> > We've had at least four separate breakages from four separate
> > projects 
> > in the past few days. This is too much. Please be careful. Thanks!
> 
> Sorry to have caused one of those breakages. I think this is going to
> keep happening, though, since remembering to ping an external party
> when dependencies change is hard. It’s something that happens
> infrequently, and is not part of people’s normal
> code/compile/review/merge cycle, so it’s not surprising they forget.
> 
> Perhaps there’s scope for a CI bot which reminds developers to look
> at
> updating gnome-build-meta whenever a meson.build is changed. That bot
> could be set up for every project which is listed in gnome-build-
> meta.
> 
> Or, if it’s appropriate, the bot could file an issue against gnome-
> build-meta and assign the developer who’s touching meson.build to
> that
> issue. Or something.

The same problems that existed in 2019 still exist:
https://mail.gnome.org/archives/desktop-devel-list/2019-September/msg00014.html

Developers still have no visibility over the gnome-build-meta builds.

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Reminder: action required when updating dependencies or build options

2021-01-13 Thread Bastien Nocera
(I tried to send this to the release-team@ alias/mailing-list, but that
was shuttered last August, so seeing as it would be public on discourse
anyway)

On Tue, 2021-01-12 at 09:31 -0600, Michael Catanzaro wrote:
> Hi developers,
> 
> Please remember that action is required when updating your
> dependencies 
> or build options. You need to either make sure gnome-build-meta is OK
> with your changes, or ask release team to investigate on your behalf.
> 
> We've had at least four separate breakages from four separate
> projects 
> in the past few days. This is too much. Please be careful. Thanks!

FYI, one of those breakages was a number of smaller API and ABI changes
in libgweather that I tried to bundle up together to minimise breakage.
I tried to my best to document all the API changes in the NEWS file
when doing a release.

And I filed issues against each one of the libgweather users in GNOME:
    https://gitlab.gnome.org/GNOME/evolution-data-server/-/issues/288
    https://gitlab.gnome.org/GNOME/evolution/-/issues/1320
    https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/issues/584
    https://gitlab.gnome.org/GNOME/gnome-weather/-/issues/141
    https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/682
    https://gitlab.gnome.org/GNOME/gnome-clocks/-/issues/170
    https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/119
    https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3577
    https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1565

There were bugs, there usually are, and it broke gnome-build-meta. This
shouldn't have been a problem because:
1) libgweather doesn't have any ABI or API guarantees, even if it tries
to avoid them (GWEATHER_I_KNOW_THIS_IS_UNSTABLE)
2) it was a one-line fix in gnome-build-meta to pin libgweather to an
older version until all the above bugs (or the applicable ones) were
fixed.

Instead we have commits bypassing the CI pipelines _and_ reviews, which
lack any sort of details about the bugs and point to build logs which
will vanish when storage is needed, and don't follow the commit message
style of the individual applications.

Cancelled pipeline runs because you realise too late that it will fail
anyway:
https://gitlab.gnome.org/GNOME/libgweather/-/commits/master/

Commits that weren't even compile-tested locally:
https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/156

I get that there might be a thrill to being a build sheriff, but if
you're going to commit directly to master without reviews or CI checks,
you need to be absolutely 100% spotless.

This is an example of a perfect commit, which passed the CI, followed
the existing commit style, and was reviewed and merged within 20
minutes:
https://gitlab.gnome.org/GNOME/libgweather/-/merge_requests/93

All that to say that I'm not going to work on libgweather anymore. Make
sure to get those fixed urgently if you want weather to carry on
working in GNOME 40:
https://gitlab.gnome.org/GNOME/libgweather/-/issues/67
https://gitlab.gnome.org/GNOME/libgweather/-/issues/70

Bye

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Reminder: action required when updating dependencies or build options

2021-01-13 Thread Michael Catanzaro

Hi,

Yesterday, after I committed the typo to Calendar, I promised to use 
merge requests from now on when committing build fixes. Previously, I 
had promised to do this only for your projects, but yesterday I forgot, 
and not for the first time. I understand that's frustrating. From now 
on, I'll use MRs for all projects that use CI. I had already promised 
this in [1] in hopes of smoothing things over with you, but I see that 
didn't work. I had also attempted to apologize via IRC. You are right 
about the importance of MRs.


I actually did at first temporarily switch libgweather.bst to use a 
3.36 release tarball when I didn't see any easy way to fix your vapi 
file [2]. This turned out to not be needed because, with some help from 
Rico, we found a simple and obviously-correct solution to the problem 
[3]. I followed that with [4] to keep your CI working; it would have 
been better had I pushed both at the same time to avoid the canceled 
pipeline, but I hope that's not a big deal. Next time, I will use a MR 
and wait for your CI before merging.


That said,  keeping things building from git master is far preferable 
to pinning old tarball versions that we will forget to undo later, so 
I'd prefer to continue to reserve pinning to tarball versions as an 
absolute last resort, not as normal practice.


[1] https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/156
[2] 
https://gitlab.gnome.org/GNOME/gnome-build-meta/-/commit/e3639a2e1238a1d769a7ba2e8b50164d9bbd6bcc
[3] 
https://gitlab.gnome.org/GNOME/libgweather/-/commit/f1f0bdd9ab47ff8ddba17e2125802c928226da64
[4] 
https://gitlab.gnome.org/GNOME/libgweather/-/commit/fc714b10c4cd78cf94d1d9f01f4b72d78a568047


On Wed, Jan 13, 2021 at 12:18 pm, Bastien Nocera  
wrote:

I get that there might be a thrill to being a build sheriff, but if
you're going to commit directly to master without reviews or CI 
checks,

you need to be absolutely 100% spotless.


It's not a thrill, it's purely frustrating. I accomplished almost 
nothing yesterday afternoon other than chasing build failures. But if 
we want to have flatpak runtime and GNOME OS updates, we have to do it.


I hope you'll reconsider your decision to drop libgweather over this. 
Regardless, thanks for maintaining libgweather for so long.


Michael


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Reminder: action required when updating dependencies or build options

2021-01-13 Thread Bastien Nocera
On Wed, 2021-01-13 at 10:06 -0600, Michael Catanzaro wrote:
> Hi,
> 
> Yesterday, after I committed the typo to Calendar, I promised to use 
> merge requests from now on when committing build fixes. Previously, I
> had promised to do this only for your projects, but yesterday I
> forgot, 
> and not for the first time. I understand that's frustrating. From now
> on, I'll use MRs for all projects that use CI. I had already promised
> this in [1] in hopes of smoothing things over with you, but I see
> that 
> didn't work. I had also attempted to apologize via IRC.

"I need to remember not to [push commits directly to the main branch]
for your modules, sorry"

>  You are right 
> about the importance of MRs.
> 
> I actually did at first temporarily switch libgweather.bst to use a 
> 3.36 release tarball when I didn't see any easy way to fix your vapi 
> file [2]. This turned out to not be needed because, with some help

It was still needed. There were 8 modules that needed to have their
compatibility checked, for which I filed individual issues.

The vapi fix wasn't going to be enough to fix the other 7 modules, and
waiting for those fixes to roll in could have happened in a branch for
gnome-build-meta, with that module's CI making sure that all the ducks
were in a row, and each fix actually peer-reviewed (or at least CI
checked).

> 
> I hope you'll reconsider your decision to drop libgweather over this.

This isn't what made me drop libgweather. This was the last straw. What
started it was this commit which you pushed directly to the main
branch, and claimed that building was broken for weeks. It was broken
for a couple of hours:
https://gitlab.gnome.org/GNOME/grilo-plugins/-/commit/4329dda2c53f9a7bd2a3f6dd9334d4eb5207e9fd

And similar behaviour over the years where you seemed to be under the
impression that I was the only person in GNOME that felt that peer-
reviewed patches and CI-gated merge requests were a requirement.

Until the main development branch is protected and it's not possible to
push directly there, I don't see myself being interested in
contributing to modules where I filled the maintainer gap.

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Reminder: action required when updating dependencies or build options

2021-01-13 Thread Michael Catanzaro



On Wed, Jan 13, 2021 at 7:53 pm, Bastien Nocera  
wrote:

> "I need to remember not to [push commits directly to the main branch]
> for your modules, sorry"

I was trying to be sincere, not dismissive:

mcatanzaro: "I need to remember not to for your modules, sorry"
"Can hardly complain about people not following dependency rules when I 
can't remember simple things like this myself"


After that discussion, I then proceeded to land a broken commit in 
gnome-calendar, at which point I no longer had a leg to stand on. 
That's when I said I would use MRs for all modules, not only yours:


https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/156

It's a little more work, but you're right that it's a good idea and 
best-practice. I had hoped that concession would deescalate this 
situation. Clearly not.


> It was still needed. There were 8 modules that needed to have their
> compatibility checked, for which I filed individual issues.
>
> The vapi fix wasn't going to be enough to fix the other 7 modules, 
and
> waiting for those fixes to roll in could have happened in a branch 
for
> gnome-build-meta, with that module's CI making sure that all the 
ducks

> were in a row, and each fix actually peer-reviewed (or at least CI
> checked).

Bastien, how could I know about any of this?

If you wanted to do a planned transition, you could have told us in 
advance so we could coordinate on how to do it. We might have created a 
libgweather compatibility element with the old API version, for 
example, and switched dependencies to use that ahead of time. Instead, 
you got an uncoordinated emergency response where you had no control 
over the resolution. Fortunately, Calendar was the only core app that 
required changes.


Other developers' work is blocked until GNOME is building again, so we 
can't just wait for you to come online to sort things out. This delayed 
a WebKit update, for example. Nowadays GNOME consists of hundreds of 
interconnected components, and we can't afford to have fiefdoms when 
the build is broken.


> This isn't what made me drop libgweather. This was the last straw. 
What

> started it was this commit which you pushed directly to the main
> branch, and claimed that building was broken for weeks. It was broken
> for a couple of hours:
> 
https://gitlab.gnome.org/GNOME/grilo-plugins/-/commit/4329dda2c53f9a7bd2a3f6dd9334d4eb5207e9fd


I don't remember what happened four years ago, sorry. I assume that 
jhbuild was broken, otherwise that would probably not have drawn my 
attention.


> And similar behaviour over the years where you seemed to be under the
> impression that I was the only person in GNOME that felt that peer-
> reviewed patches and CI-gated merge requests were a requirement.
>
> Until the main development branch is protected and it's not possible 
to

> push directly there, I don't see myself being interested in
> contributing to modules where I filled the maintainer gap.

This is disappointing. If you restrict commits, please let release team 
know, because we have a rule that we only build modules from git master 
if we can commit to them to fix build failures. We would just need to 
switch your modules to build from tarball instead. Building core 
software from tarball instead of git would reduce the value of GNOME OS 
and the master runtime for everyone, but it is an option.


Michael


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Reminder: action required when updating dependencies or build options

2021-01-13 Thread Philip Withnall
On Wed, 2021-01-13 at 15:15 -0600, Michael Catanzaro wrote:
>  > And similar behaviour over the years where you seemed to be under
> the
>  > impression that I was the only person in GNOME that felt that
> peer-
>  > reviewed patches and CI-gated merge requests were a requirement.
>  >
>  > Until the main development branch is protected and it's not
> possible 
> to
>  > push directly there, I don't see myself being interested in
>  > contributing to modules where I filled the maintainer gap.
> 
> This is disappointing. If you restrict commits, please let release
> team 
> know, because we have a rule that we only build modules from git
> master 
> if we can commit to them to fix build failures. We would just need to
> switch your modules to build from tarball instead. Building core 
> software from tarball instead of git would reduce the value of GNOME
> OS 
> and the master runtime for everyone, but it is an option.

Given that you’ve just committed to submitting MRs and waiting for CI
to pass, rather than pushing directly to master, perhaps this rule
should be rethought?

Philip

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Reminder: action required when updating dependencies or build options

2021-01-13 Thread Michael Catanzaro
On Wed, Jan 13, 2021 at 9:28 pm, Philip Withnall 
 wrote:
Given that you’ve just committed to submitting MRs and waiting for 
CI

to pass, rather than pushing directly to master, perhaps this rule
should be rethought?


Hm... as long as we have permission to merge the MR after CI has 
passed, or to bypass the CI if it's broken due to a preexisting issue, 
then we should be good. However, I'm not sure GitLab allows this? E.g. 
we discovered yesterday that I didn't have permission to commit to 
gnome-remote-desktop until Jonas played with the settings; there, I had 
created a MR, but only project maintainers were able to merge it.


The worst-case scenario would be: need to revert a commit, CI is 
already broken due to some preexisting unrelated issue that we don't 
know how to fix, can't land revert via MR because it requires CI to 
pass, can't change the setting to allow bypassing CI because the only 
way to get permission to change the setting is to update the doap, 
can't update the doap without first passing CI



___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list