gnome-software:mwleeds/fix-setup-async-parallel

Last commit made on 2022-03-22
Get this branch:
git clone -b mwleeds/fix-setup-async-parallel https://git.launchpad.net/gnome-software

Branch merges

Branch information

Name:
mwleeds/fix-setup-async-parallel
Repository:
lp:gnome-software

Recent commits

dbb3331... by Phaedrus Leeds <email address hidden>

gs-plugin-job-refine: Respect plugin order

Instead of starting each plugin's refine in series, do batches in
parallel of plugins that have the same order number, just as we do in
gs_plugin_loader_setup_async() and other GsPluginJob classes.

31ece49... by Phaedrus Leeds <email address hidden>

gs-plugin-job-list-installed-apps: Respect plugin order

This is important at least for the epiphany plugin, which needs the
appstream plugin to have already run its list_installed_apps_async()
vfunc before that vfunc is run on the epiphany plugin. This matches what
we do for GsPluginJobRefine.

9d5a555... by Phaedrus Leeds <email address hidden>

gs-plugin-loader: Don't start all plugins in parallel

Plugins use rules like this to declare their ordering requirements:

gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_AFTER, "appstream");

And in gs_plugin_loader_setup_async() those rules are used to set an
order number on each plugin and the list of plugins is then sorted by
order number. In GNOME Software 41, the plugins were then set up
synchronously in series, so plugins later in the list were not set up
until after plugins earlier in the list had finished setting up. But in
g-s 42 we moved to doing asynchronous setup of each plugin, which means
that plugins can no longer depend on their declared
GS_PLUGIN_RULE_RUN_AFTER or GS_PLUGIN_RULE_RUN_BEFORE dependencies being
fully set up after or before them, respectively.

This is a bug, and it is making the epiphany plugin harder to reason
about, so fix it by setting up batches of plugins based on the order
numbers: plugins within a batch are set up asynchronously in parallel,
and the next batch is not started until all plugins in the previous
batch have finished.

43eb45e... by Marv-CZ

Fixed Czech translation

5743ae7... by Alexander Shopov

Update Bulgarian translation

fb34fb3... by aurisc4

Updated Lithuanian translation

9ee9206... by lumingzh

Update Chinese (China) translation

06e7441... by Piotr Drąg

Update Polish translation

4a50fec... by Asier Sarasua Garmendia <email address hidden>

Update Basque translation

dd41ba6... by Daniel Mustieles

Updated Spanish translation