Scope of GNOME MRU

I would like to add something regarding the shell extensions that are synced from Debian. The gnome-shell stack is always ahead in Ubuntu than Debian. For example, by the time Ubuntu 20.04 was released with gnome-shell 3.36, shell extensions developers and Debian maintainers didn’t have the chance to package the extensions that support 3.36, and Debian unstable / testing was still mostly on gnome-shell 3.34 including the shell extensions. So the extensions that get synced from Debian before the freeze usually support the older shell version and not up-to-date.
The dash-to-panel extension, for example, got Ubuntu 20.04 and gnome-shell 3.36 compatibility fixes in version 36, which was released on 25 April.
https://github.com/home-sweet-gnome/dash-to-panel/tree/v36

I personally had to ask the Debian maintainer of gpaste to quickly update the application, including its shell extension, to version 3.36.3 in order to support gnome-shell 3.36 before the Ubuntu 20.04 release, and filed a sync request after the Debian sync freeze:


3 Likes

Has a consensus been reached regarding what should be in the list of “core GNOME modules and apps”? I ask as there are multiple uploads to the focal Stable Release Updates queue which reference the GNOME MicroReleaseException but have not appeared in this discussion. It would be good to have a final list from which we can all work.

1 Like

One recent example of issue is https://bugs.launchpad.net/bugs/1925771 which is about one of the games, those are following the GNOME schedules and freezes and we never had problems with one of their updates, could they be added to the exception?

There’s been some realtime discussion of this in #ubuntu-release just now.

To help drive this forward, I’d like to take one step back if I may. A question for the desktop team: how would you like this exception defined, going forwards? Is it going to be a simple list of source packages? A reference to a list elsewhere? Some criteria to apply to decide if a given source package is included or excluded? Some combination? There will presumably need to be some exceptions, of course, and that’s fine. But if we’re going to keep being asked to consider and add exceptions on an individual basis, then we all need to understand that’s going to take some time, and we’ll want to come up with some criteria for considering them. It’d be nice to come up with some language to describe what we want the list to be, which are exceptions and which are generated, and then try and keep the description small.

@raof gave us a great start by giving us a candidate generated list, and some manual exceptions. @3v1n0 asked for further exceptional additions (I think) and then @seb128 asked for gnome-chess. It’d be nice to reduce this to a single reference list again. Before I do that, Is there anything else I missed?

In an effort to drive this forward, my next post will be a wiki post (if I’ve understood how to use Discourse). My intention is that it will be a draft that we can work on together, and once approved it can be copied to the Ubuntu wiki and this thread will then be concluded.

I encourage the desktop team and the SRU team to edit the wiki as they wish, aiming towards consensus and approval. Discussion can follow in further posts as we work towards that.

My criteria for approval would be:

  1. The desktop team are happy.
  2. The SRU team are happy.
  3. The document makes it unambiguous and straightforward to understand whether a given Ubuntu source package in a stable release is covered or not.
  4. Any requirements for uploads are clear, so that a) it’s easy for the desktop team to be confident in advance that requirements are met such that the SRU team will accept their uploads; and b) it’s easy for the SRU team to review an upload against those requirements.
  5. Any requirements for SRU verification are clear, so that a) it’s easy for the desktop team to be confident in advance that the verification they perform will be accepted by the SRU team; and b) it’s easy for the SRU team to review verification performed against those requirements.

Proposed SRU exception documentation for GNOME

This post is a wiki, for editing by the SRU team and the desktop team. See the previous post for instructions.

Scope

If a package is not listed here, it is out of scope of this exception. Reminder: packages out of scope must:

  1. Follow the regular process.
  2. Uploads for which a microrelease update is being requested must specifically meet the policy requirements for MREs.

The following Ubuntu source packages are within scope of this exception.

accerciser: accessiblity
adwaita-icon-theme : sdk
at-spi2-atk: accessibility
at-spi2-core: accessibility
atk1.0: accessiblity
baobab : core
cheese : core
clutter-gst : sdk
clutter-gtk : sdk
clutter : sdk
dconf-editor : core
devhelp : core
eog : core
epiphany : core
evince : core
evolution-data-server : core-deps
evolution
evolution-ews
file-roller : core
folks : core-deps
gcr : sdk
gdk-pixbuf : sdk
gdm3 : core
gedit : core
gjs : sdk
glib-networking : sdk
glib : sdk
gnome-2048
gnome-autoar : core-deps
gnome-backgrounds : core
gnome-bluetooth : core
gnome-boxes : core
gnome-builder : core
gnome-calculator : core
gnome-calendar : core
gnome-characters : core
gnome-chess
gnome-clocks : core
gnome-color-manager : core
gnome-contacts : core
gnome-control-center : core
gnome-desktop : core
gnome-disk-utility : core
gnome-font-viewer : core
gnome-games-app
gnome-getting-started-docs : core
gnome-initial-setup : core
gnome-keyring : core
gnome-klotski
gnome-logs : core
gnome-mahjongg
gnome-maps : core
gnome-menus : core
gnome-music : core
gnome-nibbles
gnome-online-accounts : core-deps
gnome-online-miners : core-deps
gnome-photos : core
gnome-remote-desktop : core
gnome-robots
gnome-screenshot : core
gnome-session : core
gnome-settings-daemon : core
gnome-shell : core
gnome-shell-extensions : core
gnome-software : core
gnome-sudoku
gnome-system-monitor : core
gnome-taquin
gnome-terminal : core
gnome-tetravex
gnome-tour : core
gnome-user-docs : core
gnome-user-share : core
gnome-video-effects : core-deps
gnome-weather : core
gobject-introspection : sdk
grilo : core-deps
grilo-plugins : core-deps
gsettings-desktop-schemas : sdk
gsound : core-deps
gst-plugins-base : sdk
gtk+-3 : sdk
gtk-doc : sdk
gtkmm-3 : core-deps
gtksourceview : sdk
gtk-vnc : core-deps
gvfs-daemon : core
iagno
json-glib : sdk
libdazzle
libgweather : core-deps
libhandy-0 : core-deps
libhandy : core-deps
libnotify : sdk
librsvg : sdk
libsecret
libsoup
mutter : core
nautilus : core
pygobject : sdk
quadrapassel
rygel : core
seahorse
simple-scan : core
startup-notification : core-deps
sushi : core
swell-foop
tali
totem : core
totem-pl-parser : core-deps
tracker-2 : core-deps
tracker-miners-2 : core-deps
tracker-miners : core-deps
tracker : sdk
yelp : sdk
yelp-tools : sdk
yelp-xsl : sdk

TBC

  • Bug documentation requirements
  • Requirements for gnome-shell and its reverse dependencies
  • Requirements for vala, if it is considered within scope
  • Requirements for SRU verification

Why was libsecret removed in your manually curated list?

1 Like

I’ve sorted the list of packages so it’ll be easier to read, I don’t believe I dropped anything during that process but somebody might want to double check.

1 Like

Additionally why was gupnp removed from your list when rygel (which is on the list) depends on a binary provided by it?

1 Like

Why was libsecret removed in your manually curated list?

It’s been a while, but I think my reasoning was that this is closer to core FDO infrastructure - my understanding was that both GNOME and KDE implemented or were planning to implement the FDO Secret Service API, and so this would be usable by both.

Having a bit more of a look around, KDE looks to have largely abandoned that, so maybe libsecret should be on the MRE list.

Additionally why was gupnp removed from your list when rygel (which is on the list) depends on a binary provided by it?

I don’t think I could tell you now :slight_smile: . Maybe it looked more used-outside-of-GNOME? I’ve no particular objection to it being on the MRE list.

I’ve edited the list to add those components

  • accessibility related packages which are maintained following the upstream schedule and part of GNOME: accerciser, at-spi-atk, at-spi-core, atk

  • standard GNOME softwares maintained in cadence with GNOME and which from history can be trusted: evolution (+ews, also those usually go in locked updated with evolution-data-server which was already on the list), seahorse, gnome-games

we never had issues with the games, the impact is low and they follow the upstream cadence and freezes. They are small components but our users appreciate to get those bugfixes, they are not important enough though that we could justify spending days doing the paperwork of creating a bug and testcase for every commit so if we don’t have the exception it basically means we will not be able to provide those updates anymore.

gnome-2048, gnome-chess, gnome-games-app, gnome-klotski, gnome-mahjongg, gnome-robots, gnome-sudoku, gnome-taquin, gnome-tetravex, iagno, quadrapassel, swell-foop, tali

  • standard libraries used by GNOME, following the upstream schedule/testing/freeze, well tested
    libdazzel, libsecret, libsoup
1 Like

Does upstream do any functional testing of the updates to the packages you’ve included in the gnome-games category?

GNOME doesn’t have formal testplans written down that they follow for those updates if that’s what you mean? They basically rely on community testing the same way as we do when we release a new Ubuntu version

A bit of a FYI

I note that gnome-maps is in the proposal for an exception. Thanks for that @rbasak and team

gnome-maps is a good example of the exception benefit for focal users.

Upstream state that the fix for this failure (where the application no longer launches) is covered by their current 3.36.7 microrelease - focal’s version is currently 3.36.1

Its fortunate in this case that the fix for the failure is a relatively small patch which is the process of being evaluated and hopefully rolled out as part of the standard SRU process.

1 Like

So, it’s been a year. What is stopping us from completing this MRE documentation?

  1. We don’t have an algorithm for updating this list other than “Desktop team member asks the SRU team to consider adding something to the list”, but that shouldn’t be a blocker.
  2. I don’t believe we’ve settled the “How do we handle gnome-shell uploads with respect to packaged extensions” question.
  3. There doesn’t seem to have been a clamour for a Vala MRE process, so we can probably just drop that.
  4. What should the test-plan be for SRU verification.

I think the next thing to do here is to drop everything which is not yet decided from the list, and point the GNOME MRE documentation on the Wiki to the list. As I understand it, that means that gnome-shell and the GNOME games get removed for now.

This makes the cases which are clearcut clear, so is an improvement on the status quo.

For 4. - In the past the test plan has been :woman_shrugging: poke around and check that things haven’t caught fire :woman_shrugging:, and while I think we can do something better, for now I’d be happy with that.

This is explicitly not expected to be the final state - gnome-shell obviously belongs on the list, once we’ve decided how to handle the reverse-dependencies, and I’m inclined to include the GNOME games. This is intended to be the easiest thing to do now that makes the situation better while we work out what to do with the difficult cases.

1 Like

Thanks Chris for posting an update on that topic. Speaking from a desktop perspective, moving forward with the simplified-list-without-the-items-in-discussion seems fine, better than the current blocked situation.

Not having vala included in the GNOME MRE was previous agreed on yes. There is always the option to go through the MRE process specifically for it if we believe that it should also have an exception.

On the gnome-shell side, we removed the universe extensions before the LTS, https://bazaar.launchpad.net/~ubuntu-archive/+junk/sync-blacklist/revision/888.1.1

Was there anything else needed to make gnome-shell an acceptable candidate?

On the testplan, it would be nicer to have a description for each component but that requires work. What about starting with a ‘ensure it is still working by poking at it as you can’ and then we will try to update the wiki for each SRU we do from now one which isn’t covered yet?

I have some notes from a discussion I had out-of-band with Seb on 30 June 2021. At that time I tried to distill a set of remaining steps that could conclude this matter. I’ll paste them here for reference - some of these are already addressed.

Refine how the list is built

Rather than having a static list describing the components it would be better to have a definition pointing to an upstream set (gnome core + sdk + …?) and on top a manual list of exceptions we want to see added.

This way if GNOME is adding new components they should be covered by the exception without having to discuss with the SRU team again.

Decide what we do with the gnome-shell rdepends

We want to avoid breaking components provided in the Ubuntu archive when doing a SRU

Special case for the games

Those are only games, they are not something users rely on so the regression potential is limited. Desktop would like to see them included in the exception even if they are not core component and don’t have testsuites, so they can get updated at lower cost.

It is agreed that if a regression is found it is fine to revert or delete the SRU.

Would that be acceptable to the SRU team?

Describing the SRU verification steps

The wiki page describing the exception should include the verifications to be done with the updates. We probably want domain specific steps for some components at least

SRU team ack

The SRU team needs to sign off the list once they agree with what is there

Vala

Vala is a special case, we will keep out of the current MRE discussion and create a separate topic for it later if needed

I found a simpler base list that we can use. Debian provides a tracker for each GNOME release based on what GNOME itself decides to release. It is simpler than trying to verify multiple files in a GNOME git repo and the GNOME git repo doesn’t handle build-depends well. The Debian tracker just provides a prettier view of the GNOME release metadata.

This allows the sets to be updated over time as GNOME makes changes to what they release.

For Ubuntu 22.04 LTS, it’s https://people.debian.org/~fpeters/gnome/debian-gnome-42-status.html
For Ubuntu 20.04 LTS, it’s https://people.debian.org/~fpeters/gnome/debian-gnome-3.36-status.html

Ignore the unrelated Telepathy section.

From that base list, I propose these exceptions:

Additions

  • evolution
  • evolution-ews
  • file-roller
  • gedit
  • gnome-terminal
  • gnome-tweaks
  • seahorse
  • everything that the gnome-games apt package directly depends on

Removals

  • vala

GNOME Shell

Starting with Ubuntu 22.04 LTS, we removed most GNOME Shell extensions but left ones that require some system integration. We are now doing a basic smoke test of those extensions as part of our SRUs. Here’s a recent example.

Mutter

As a shared critical component with Ubuntu Budgie, we also ensure that new Mutter SRUs are tested on Ubuntu Budgie (so far, the testing has been done directly by Ubuntu Budgie testers).

Apps Note

By the way, years ago, GNOME used to include a lot more optional apps in their release set but they reduced the set to a more basic set that they recommend to be installed by default. That’s how evolution and the GNOME games fell out of the set.

Diff from previous work

Here’s a diff of just the base set for 22.04 LTS compared to the earlier proposed list. It’s a little noisy because the earlier proposed list included the exceptions.

--- old
-accerciser
 adwaita-icon-theme
 at-spi2-atk
 at-spi2-core
 atk1.0
+atkmm1.6
 baobab
+gnome-calls
+fonts-cantarell
 cheese
-clutter-gst
+clutter-1.0
+clutter-gst-3.0
 clutter-gtk
-clutter
+cogl
+dconf
 dconf-editor
 devhelp
 eog
-epiphany
+epiphany-browser
 evince
 evolution-data-server
-evolution
-evolution-ews
-file-roller
 folks
+gcab
 gcr
 gdk-pixbuf
 gdm3
-gedit
+geocode-glib
+gexiv2
+gfbgraph
 gjs
+glib2.0
 glib-networking
-glib
-gnome-2048
+glibmm2.4
+gmime
 gnome-autoar
 gnome-backgrounds
 gnome-bluetooth
+gnome-bluetooth3
 gnome-boxes
 gnome-builder
 gnome-calculator
 gnome-calendar
 gnome-characters
-gnome-chess
 gnome-clocks
 gnome-color-manager
+gnome-connections
+gnome-console
 gnome-contacts
 gnome-control-center
 gnome-desktop
 gnome-disk-utility
 gnome-font-viewer
-gnome-games-app
-gnome-getting-started-docs
 gnome-initial-setup
 gnome-keyring
-gnome-klotski
 gnome-logs
-gnome-mahjongg
 gnome-maps
 gnome-menus
 gnome-music
-gnome-nibbles
 gnome-online-accounts
-gnome-online-miners
 gnome-photos
 gnome-remote-desktop
-gnome-robots
-gnome-screenshot
 gnome-session
 gnome-settings-daemon
 gnome-shell
 gnome-shell-extensions
 gnome-software
-gnome-sudoku
 gnome-system-monitor
-gnome-taquin
-gnome-terminal
-gnome-tetravex
+gnome-text-editor
 gnome-tour
 gnome-user-docs
 gnome-user-share
 gnome-video-effects
 gnome-weather
 gobject-introspection
+libgom
 grilo
 grilo-plugins
 gsettings-desktop-schemas
 gsound
-gst-plugins-base
-gtk+-3
+gspell
+gssdp
+gtk4
+gtk+3.0
 gtk-doc
-gtkmm-3
-gtksourceview
 gtk-vnc
-gvfs-daemon
-iagno
+gtkmm3.0
+gtksourceview4
+gtksourceview5
+gupnp
+gupnp-av
+gupnp-dlna
+gvfs
 json-glib
+jsonrpc-glib
+libadwaita-1
+libchamplain
 libdazzle
-libgweather
-libhandy-0
-libhandy
+libgdata
+libgee-0.8
+libgnomekbd
+libgsf
+libgtop2
+libgweather4
+libgxps
+libhandy-1
+libmediaart
+libnma
 libnotify
+libpeas
 librsvg
 libsecret
-libsoup
+libsigc++-2.0
+libsoup2.4
+libsoup3
+mm-common
 mutter
 nautilus
+orca
+pango1.0
+pangomm
+phodav
+pyatspi
 pygobject
-quadrapassel
+librest
 rygel
-seahorse
 simple-scan
-startup-notification
-sushi
-swell-foop
-tali
+gnome-sushi
+sysprof
 totem
 totem-pl-parser
-tracker-2
-tracker-miners-2
+tracker
 tracker-miners
-tracker
+vala
+vte2.91
+xdg-desktop-portal-gnome
 yelp
 yelp-tools
 yelp-xsl
+zenity
+
+Special additions:
+evolution
+evolution-ews
+file-roller
+gedit
+gnome-terminal
+gnome-tweaks
+seahorse
+everything that the gnome-games apt package directly depends on
+
+Special removals:
+vala
2 Likes

The Debian tracker parses files like this:
https://download.gnome.org/teams/releng/42.2/versions

Robie suggested that it may be interesting to diff those files to see changes over time.

2 Likes

The seemingly doubled gnome-bluetooth entry is that:
core:gnome-bluetooth:42.0:
core:gnome-bluetooth:3.34.5:

1 Like