#7496 Configure a separate flatpaks/ namespace for Flatpaks
Closed: Fixed 4 months ago by kevin. Opened 8 months ago by otaylor.

Proposal and discussion

Steps that can be done in advance:

  • Modify the ReleaseComponentType table in the PDC database to add 'flatpak' type.
  • Modify the config for Pagure, Koji, and MBS and redeploy: infrastructure ansible patch
  • Update the owner-sync-pagure script and it's callers to sync the flatpaks namespace (also in the ansible patch)
  • Add --namespace=flatpaks support to fedscm-admin fedscm-admin pull request 6 - see also fedpkg pull request 303

Steps to actually move things over:

  • Move the existing repositories in Pagure (modules/eog, modules/feedreader, modules/gnome-clocks, modules/gnome-tetravex, modules/quadrapassel). (†) If necessary, we can delete the old ones and reimport.
  • Update Bodhi to look in the right pagure namespace for ownership for Flatpak updates Bodhi pull 2924

(†) modules/flatpak-runtime should not be moved - my plan is to have modules/flatpak-runtime for the module and the maintenance scripts, and new flatpaks/flatpak-runtime and flatpaks/flatpak-sdk repositories for the Runtime and SDK flatpak images that are built out of the single module.


@pingou - can you review this and the linked ansible patch to see if moving the existing repositories is feasible, and if there's any red flags with the changes to src.fedoraproject.org configuration?

@otaylor @kevin

Patch and procedure look fine to me.

I'd not mind being around to help with this (and in case of surprises). Just let me know when and where :)

Metadata Update from @bowlofeggs:
- Issue priority set to: Waiting on Assignee (was: Needs Review)
- Issue tagged with: bodhi, koji, mbs, pagure

7 months ago

Is this going to be possible to squeeze in between the beta freeze and the final freeze?

I think the procedure we want to do is:

  • Land the ansible changes and have a targeted this-change-only bodhi release ready
  • Redeploy the staging hosts
  • Test there
  • Immediately (within a day) redeploy the production hosts

That's based on a feeling that conditionalizing between staging and production in the ansible scripts is more likely to introduce errors in the test procedure than anything.

Hey @otaylor!

I apologize for how long this is taking on the Bodhi side of things. We had two weeks in a row with emergency releases that pre-empted pretty much everything I do.

I don't forsee any more emergency releases (but they wouldn't be emergencies if I could predict them in the first place ☺), so I think we should be able to get this done when the beta freeze is over.

@abompard, would you like to get started with making a Bodhi release with the patch that @otaylor needs? The Bodhi release should be ok to deploy to staging now, because it reads the expected namespace from Koji, which should allow it to work with the old and new namespace, iirc.

Dumping here the commands I ran for the posterity:

# Move the repository on disk:

for name in 'wesnoth' 'gnome-chess' 'quadrapassel' 'gnome-characters' 'gedit' 'tilix' 'firefox' 'thunderbird' \
  '0ad' 'evince' 'transmission' 'file-roller' 'eog' 'gnome-tetravex' 'gnome-clocks' 'gnome-logs' \
  'mediawriter' 'gnote' 'gnome-mahjongg' 'gnome-screenshot' 'meld' 'berusky' \
  'dconf-editor' 'feedreader' 'gnome-dictionary' 'gnome-calculator' 'gnome-font-viewer' \
  'gnome-sound-recorder' 'glade'
do
echo "cp -a /srv/git/repositories/modules/$name.git/ /srv/git/repositories/flatpaks"
echo "cp -a /srv/git/repositories/requests/modules/$name.git/ /srv/git/repositories/requests/flatpaks"
done;


### To remove the old ones (to do later, after we've cleared everything is working fine)

for name in 'wesnoth' 'gnome-chess' 'quadrapassel' 'gnome-characters' 'gedit' 'tilix' 'firefox' 'thunderbird' \
  '0ad' 'evince' 'transmission' 'file-roller' 'eog' 'gnome-tetravex' 'gnome-clocks' 'gnome-logs' \
  'mediawriter' 'gnote' 'gnome-mahjongg' 'gnome-screenshot' 'meld' 'berusky' \
  'dconf-editor' 'feedreader' 'gnome-dictionary' 'gnome-calculator' 'gnome-font-viewer' \
  'gnome-sound-recorder' 'glade'
do
echo "rm -rf /srv/git/repositories/flatpaks/$name.git/"
echo "rm -rf /srv/git/repositories/requests/flatpaks/$name.git/"
done;

The DB side:

-- main projects and forks
SELECT id, namespace, name, parent_id
FROM projects
WHERE namespace='modules'
AND name in (
  'wesnoth', 'gnome-chess', 'quadrapassel', 'gnome-characters', 'gedit', 'tilix', 'firefox', 'thunderbird', 
  '0ad', 'evince', 'transmission', 'file-roller', 'eog', 'gnome-tetravex', 'gnome-clocks', 'gnome-logs',
  'mediawriter', 'gnote', 'gnome-mahjongg', 'gnome-screenshot', 'meld', 'berusky',
  'dconf-editor', 'feedreader', 'gnome-dictionary', 'gnome-calculator', 'gnome-font-viewer',
  'gnome-sound-recorder', 'glade'
) ORDER BY name;

-- main projects only
SELECT id, namespace, name, parent_id
FROM projects
WHERE namespace='modules'
AND parent_id IS NULL
AND name in (
  'wesnoth', 'gnome-chess', 'quadrapassel', 'gnome-characters', 'gedit', 'tilix', 'firefox', 'thunderbird', 
  '0ad', 'evince', 'transmission', 'file-roller', 'eog', 'gnome-tetravex', 'gnome-clocks', 'gnome-logs',
  'mediawriter', 'gnote', 'gnome-mahjongg', 'gnome-screenshot', 'meld', 'berusky',
  'dconf-editor', 'feedreader', 'gnome-dictionary', 'gnome-calculator', 'gnome-font-viewer',
  'gnome-sound-recorder', 'glade'
) ORDER BY name;

-- forks only
SELECT id, namespace, name, parent_id
FROM projects
WHERE namespace='modules'
AND parent_id IS NOT NULL
AND name in (
  'wesnoth', 'gnome-chess', 'quadrapassel', 'gnome-characters', 'gedit', 'tilix', 'firefox', 'thunderbird', 
  '0ad', 'evince', 'transmission', 'file-roller', 'eog', 'gnome-tetravex', 'gnome-clocks', 'gnome-logs',
  'mediawriter', 'gnote', 'gnome-mahjongg', 'gnome-screenshot', 'meld', 'berusky',
  'dconf-editor', 'feedreader', 'gnome-dictionary', 'gnome-calculator', 'gnome-font-viewer',
  'gnome-sound-recorder', 'glade'
) ORDER BY name;

-- Update the main projects
UPDATE projects
SET namespace='flatpaks'
WHERE namespace='modules'
AND parent_id IS NULL
AND name in (
  'wesnoth', 'gnome-chess', 'quadrapassel', 'gnome-characters', 'gedit', 'tilix', 'firefox', 'thunderbird', 
  '0ad', 'evince', 'transmission', 'file-roller', 'eog', 'gnome-tetravex', 'gnome-clocks', 'gnome-logs',
  'mediawriter', 'gnote', 'gnome-mahjongg', 'gnome-screenshot', 'meld', 'berusky',
  'dconf-editor', 'feedreader', 'gnome-dictionary', 'gnome-calculator', 'gnome-font-viewer',
  'gnome-sound-recorder', 'glade'
);

-- Update the forks
UPDATE projects
SET namespace='flatpaks'
WHERE namespace='modules'
AND parent_id IS NOT NULL
AND name in (
  'wesnoth', 'gnome-chess', 'quadrapassel', 'gnome-characters', 'gedit', 'tilix', 'firefox', 'thunderbird', 
  '0ad', 'evince', 'transmission', 'file-roller', 'eog', 'gnome-tetravex', 'gnome-clocks', 'gnome-logs',
  'mediawriter', 'gnote', 'gnome-mahjongg', 'gnome-screenshot', 'meld', 'berusky',
  'dconf-editor', 'feedreader', 'gnome-dictionary', 'gnome-calculator', 'gnome-font-viewer',
  'gnome-sound-recorder', 'glade'
);

The forks have been moved by hand, there were only 3 to do

ok, we got everything done and deployed today hopefully.

Thanks @bowlofeggs @cverna @pingou and @mohanboddu !

Let us know if you see any issues with it.

:notebook_with_decorative_cover:

Metadata Update from @kevin:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

4 months ago

Login to comment on this ticket.

Metadata