flat-manager icon indicating copy to clipboard operation
flat-manager copied to clipboard

Add support for rebasing EOL extensions

Open doraskayo opened this issue 4 years ago • 3 comments

From the main commit message:

jobs: Consider every build ref when determining the EOL prefix
    
We assume that:
*  There is always at least one build ref being committed.
*  Committed ref names always include a ref type followed by a "/"
   character. For example, "app/" or "runtime/".
*  The main ref isn't necessarily an "app/" ref. For example, in the
   case of extension-only repos, the main ref is a "runtime/" ref.
*  The main ref being committed has the shortest ref name when
   removing its ref type. For example:
   *  When the committed ref names are "app/org.app.App" and
      "runtime/org.app.App.Plugin", the main ref is "app/org.app.App".
   *  When the committed ref names are "runtime/org.app.App.Plugin"
      and "runtime/org.app.App.Plugin.Debug", the main ref is
      "runtime/org.app.App.Plugin".
*  The main ref with its ref type removed should be considered to be
   the old prefix for the purpose of EOL rebasing.
    
This should allow rebasing EOL extensions in addition to apps.

Note that while the assumptions above are based on my impression, they are not necessarily all correct. Please review thoroughly.

doraskayo avatar Dec 18 '21 09:12 doraskayo

The main ref being committed has the shortest ref name when removing its ref type.

Technically this assumption may be incorrect. As I understand, add-extensions with bundle: true allows exporting extensions with arbitrary IDs, not necessarily prefixed with the app ID. This is unlikely to be used in practice, though.

gasinvein avatar Dec 18 '21 10:12 gasinvein

The main ref being committed has the shortest ref name when removing its ref type.

Technically this assumption may be incorrect. As I understand, add-extensions with bundle: true allows exporting extensions with arbitrary IDs, not necessarily prefixed with the app ID. This is unlikely to be used in practice, though.

I couldn't find documentation which actually explains this aspect. Are you familiar with any repo where this funtionality is used? If I had access to one I could take a look and adjust the PR if necessary.

doraskayo avatar Dec 18 '21 10:12 doraskayo

Are you familiar with any repo where this funtionality used?

Not with unrelated extension ID, but here is org.chromium.Chromium app exporting a custom org.chromium.Chromium.Codecs extension. Imagine the extension had some ID not starting with org.chromium., e.g. org.flathub.ChromiumCodecs.

gasinvein avatar Dec 18 '21 10:12 gasinvein