F42 Change Proposal: GNOME Shell extension Dependency Generator (system-wide)

GNOME Shell extension Dependency Generator

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Wiki
Announced

:link: Summary

Implement a dependency generator for GNOME Shell extensions that would make the binary RPM depend on the correct versions of GNOME Shell

:link: Owner

:link: Detailed Description

GNOME Shell extensions ship with a metadata.json that lists the supported versions of GNOME Shell. This data is currently unused when packaging an extension, unless the package maintainer explicitly transfer this information to the spec – and then keeps it up to date.

With this Change Proposal implemented, the binary RPM would automatically declare its dependency on the right versions of GNOME Shell, ensuring that we will discover after mass rebuild if some extensions need to be updated because they will FTI.

:link: Feedback

:link: Benefit to Fedora

This will result in an improved user experience for our users, because extensions that install are now more likely to work.

It will also help extension packagers, as they get early signal that an extension needs to be updated, by getting a FTI bug not long after the mass rebuild is complete.

:link: Scope

  • Proposal owners:

    • Implement a dependency generator and package it as gnome-shell-extension-rpm-macros
    • make gnome-shell Provides: gnome-shell(api) == MAJOR_VER to make the implementation of the generator easier
    • Get this package pulled in by redhat-rpm-config
    • Optionally get this into epel-rpm-macros for EPEL 10
    • Provide a COPR for other developers to test
  • Other developers:

    • Test your package by explicitly adding the new dependency generator package as a BuildRequires and dropping the Requires on gnome-shell
    • If that works, once the new package is in Fedora and pulled in by redhat-rpm-config, you may (but do not have to) drop the Requires on gnome-shell as it will be redundant
  • Release engineering: #Releng issue number

  • Policies and guidelines: FPC #1425

This should only land after implementation is done

  • Trademark approval: N/A (not needed for this Change)

  • Alignment with the Fedora Strategy:

:link: Upgrade/compatibility impact

N/A. This change would be transparent to packagers and end-users - it will allow packagers to clean up their spec by removing the explicit Requires on gnome-shell but that is optional

:link: Early Testing (Optional)

Do you require ‘QA Blueprint’ support? N

:link: How To Test

Extension packagers will be able to test against the COPR containing the new dependency generator

:link: User Experience

:link: Dependencies

This requires changes to gnome-shell and optionally redhat-rpm-config. The former significantly eases implementation, as it allows a 1:1 mapping between the version listed in metadata.json and what we express in the binary RPM. The latter is required to make this transparent to other packagers; if that change does not go through this becomes a self-contained change and extension maintainers can opt in by BR-ing the package

:link: Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?)

If the dependency generator turns out to be very buggy, we can stop pulling it in redhat-rpm-config

  • Contingency deadline:

Beta freeze

  • Blocks release? No

:link: Documentation

N/A

:link: Release Notes

Last edited by @amoloney 2024-12-24T15:33:03Z

Last edited by @amoloney 2024-12-24T15:33:03Z

How do you feel about the proposal as written?

  • Strongly in favor
  • In favor, with reservations
  • Neutral
  • Opposed, but could be convinced
  • Strongly opposed
0 voters

If you are in favor but have reservations, or are opposed but something could change your mind, please explain in a reply.

We want everyone to be heard, but many posts repeating the same thing actually makes that harder. If you have something new to say, please say it. If, instead, you find someone has already covered what you’d like to express, please simply give that post a :heart: instead of reiterating. You can even do this by email, by replying with the heart emoji or just “+1”. This will make long topics easier to follow.

Please note that this is an advisory “straw poll” meant to gauge sentiment. It isn’t a vote or a scientific survey. See About the Change Proposals category for more about the Change Process and moderation policy.

This change proposal has now been submitted to FESCo with ticket #3335 for voting.

To find out more, please visit our Changes Policy documentation.