[gimp-web] content: update GIMP 2.99.10 news.



commit 8ba172142ad6acf94889f5674b1b0583af9e3d06
Author: Jehan <jehan girinstud io>
Date:   Thu Feb 24 21:05:27 2022 +0100

    content: update GIMP 2.99.10 news.

 .../GEGL-0-4-36-arm-with-neon.png                  | Bin 0 -> 69313 bytes
 .../GEGL-0-4-36-arm-without-neon.png               | Bin 0 -> 21822 bytes
 .../gimp-2-99-10-compact-slider-in-png-export.png  | Bin 0 -> 49702 bytes
 .../gimp-2-99-10-dynamics-enabling.webp            | Bin 0 -> 187614 bytes
 .../gimp-2-99-10-dynamics-shortcut.png             | Bin 0 -> 44477 bytes
 .../gimp-2-99-10-layer-dockable-icon-hints.png     | Bin 0 -> 17615 bytes
 .../gimp-2-99-10-layer-set-preferences.png         | Bin 0 -> 113569 bytes
 .../gimp-2-99-10-layer-set.png                     | Bin 0 -> 13052 bytes
 .../gimp-2-99-10-lock-visibility.png               | Bin 0 -> 87816 bytes
 .../gimp-2-99-10-locks.png                         | Bin 0 -> 96958 bytes
 .../gimp-2-99-10-search-layers.png                 | Bin 0 -> 34067 bytes
 .../gimp-2-99-10-storing-layer-set.png             | Bin 0 -> 29253 bytes
 .../gimp-2-99-10-welcome-dialog-pt.png             | Bin 0 -> 158104 bytes
 .../gimp-2-99-10-welcome-dialog.jpg                | Bin 0 -> 267786 bytes
 .../2022/2022-02_GIMP-2.99.10_Released/index.md    | 519 +++++++++++++++++----
 15 files changed, 430 insertions(+), 89 deletions(-)
---
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/GEGL-0-4-36-arm-with-neon.png 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/GEGL-0-4-36-arm-with-neon.png
new file mode 100644
index 00000000..51152888
Binary files /dev/null and b/content/news/2022/2022-02_GIMP-2.99.10_Released/GEGL-0-4-36-arm-with-neon.png 
differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/GEGL-0-4-36-arm-without-neon.png 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/GEGL-0-4-36-arm-without-neon.png
new file mode 100644
index 00000000..b32a7e1d
Binary files /dev/null and b/content/news/2022/2022-02_GIMP-2.99.10_Released/GEGL-0-4-36-arm-without-neon.png 
differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-compact-slider-in-png-export.png 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-compact-slider-in-png-export.png
new file mode 100644
index 00000000..ec040ff4
Binary files /dev/null and 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-compact-slider-in-png-export.png differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-dynamics-enabling.webp 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-dynamics-enabling.webp
new file mode 100644
index 00000000..029b48ef
Binary files /dev/null and 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-dynamics-enabling.webp differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-dynamics-shortcut.png 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-dynamics-shortcut.png
new file mode 100644
index 00000000..50126543
Binary files /dev/null and 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-dynamics-shortcut.png differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-layer-dockable-icon-hints.png 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-layer-dockable-icon-hints.png
new file mode 100644
index 00000000..adc19883
Binary files /dev/null and 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-layer-dockable-icon-hints.png differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-layer-set-preferences.png 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-layer-set-preferences.png
new file mode 100644
index 00000000..9b2a51ad
Binary files /dev/null and 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-layer-set-preferences.png differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-layer-set.png 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-layer-set.png
new file mode 100644
index 00000000..bab67d3b
Binary files /dev/null and b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-layer-set.png differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-lock-visibility.png 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-lock-visibility.png
new file mode 100644
index 00000000..a15cd092
Binary files /dev/null and b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-lock-visibility.png 
differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-locks.png 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-locks.png
new file mode 100644
index 00000000..3dceb31c
Binary files /dev/null and b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-locks.png differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-search-layers.png 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-search-layers.png
new file mode 100644
index 00000000..7887a43f
Binary files /dev/null and b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-search-layers.png 
differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-storing-layer-set.png 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-storing-layer-set.png
new file mode 100644
index 00000000..8a3a832a
Binary files /dev/null and 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-storing-layer-set.png differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-welcome-dialog-pt.png 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-welcome-dialog-pt.png
new file mode 100644
index 00000000..d649ed29
Binary files /dev/null and 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-welcome-dialog-pt.png differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-welcome-dialog.jpg 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-welcome-dialog.jpg
new file mode 100644
index 00000000..65ef9575
Binary files /dev/null and b/content/news/2022/2022-02_GIMP-2.99.10_Released/gimp-2-99-10-welcome-dialog.jpg 
differ
diff --git a/content/news/2022/2022-02_GIMP-2.99.10_Released/index.md 
b/content/news/2022/2022-02_GIMP-2.99.10_Released/index.md
index b567dcb5..6e1f8fe2 100644
--- a/content/news/2022/2022-02_GIMP-2.99.10_Released/index.md
+++ b/content/news/2022/2022-02_GIMP-2.99.10_Released/index.md
@@ -22,11 +22,12 @@ plans toward GIMP 3.0.
 [TOC]
 
 To get a more complete list of changes, you should refer to the
-[NEWS](https://gitlab.gnome.org/GNOME/gimp/-/blob/3e58204908b6301501d7ccd09936fd3d8f7baa94/NEWS#L9)
+[NEWS](https://gitlab.gnome.org/GNOME/gimp/-/blob/82af34e4941603ba81ff625e3e11731f86ba3457/NEWS#L9)
 file or look at the [commit
 history](https://gitlab.gnome.org/GNOME/gimp/-/commits/master).
 
-## "Linked layers" superseded by "layer sets"
+## Redesigned Core Features
+### "Linked layers" superseded by "layer sets"
 
 Our stable series (2.10) still uses a concept of "linked layers", which
 is mostly for transforming layers together. For instance, say you want
@@ -34,34 +35,63 @@ to translate, rotate or shear several layers the exact same way. You
 would link them with the "chain" 🔗 icon next to each layer in the
 Layers dockable.
 
-In GIMP 3.0, as we have multi-selection of layers and that all the
-transform tools were already made to work on multiple layers at once,
-this concept was redundant and confusing. Nevertheless there was still
-one added value: as a way to mark and store a relation between layers.
+In GIMP 3.0, as we have multi-selection of layers and all the transform
+tools were already made to work on multiple layers at once, this concept
+was redundant and confusing. Nevertheless there was still one added
+value: as a way to mark and store a relation between layers.
+
+This is why we remove the link feature and added instead a "layer set"
+feature. A "layer set" is a selection of layers stored with a name.
+
+<figure>
+<img src="{attach}gimp-2-99-10-layer-set.png" alt="Layer sets"/>
+<figcaption>
+<em>Layer set popover at bottom of Layers dockable</em>
+</figcaption>
+</figure>
 
-This is why we remove the link feature and added instead an "item set"
-feature. An "item set" is a selection of items (can be layers or
-channels) stored with a name.
 For instance, you could select a few layers together and store this
 selection as a layer set. Anytime in the future, you can select the same
 layers again in one click, without going through the slow process of
-clicking them one by one.
+clicking them one by one. In the below example, I am storing a semantic
+name for several layers featuring sleeping marmots:
+
+<figure>
+<img src="{attach}gimp-2-99-10-storing-layer-set.png" alt="Storing Layer sets"/>
+<figcaption>
+<em>Left: select some layers and write a set name - Right: the set can now be selected again anytime</em>
+</figcaption>
+</figure>
 
 There is more! The same dialog allows you to search through layers by
-names. Say I want to select all layers containing "marmot", I could
-search "marmot". Done.
+names. Say I want to select all layers containing "marmot" or "flower",
+I could just search said keyword.
 
-For the geekiest of us: by default, this search uses simple text search,
-but in preferences, you can also set the search entry to use the Glob or
-Regular Expression syntax!
+<figure>
+<img src="{attach}gimp-2-99-10-search-layers.png" alt="Searching layers"/>
+<figcaption>
+<em>Searching layers with "flower" in the name - 3 were found in this huge layer list</em>
+</figcaption>
+</figure>
 
-## Item locks redesigned
+For the geekiest of us: by default, this uses simple text search, but in
+Preferences, tab "Interface", you can also set the search entry
+to use the Glob or Regular Expression syntax!
+
+<figure>
+<img src="{attach}gimp-2-99-10-layer-set-preferences.png" alt="Layer sets settings"/>
+<figcaption>
+<em>Settings for search syntax: text search, glob pattern or regular expression</em>
+</figcaption>
+</figure>
+
+### Item locks redesigned
 
 The locks (position, contents and alpha) used to be at the top of the
 Layers or Channels dockables. It meant that to know whether a specific
 layer was locked, you had to select it. Worse, when selecting several
 layers, the buttons could end up in an inconsistent state (if some
-layers are locked and others not).
+layers are locked while others not).
 
 So we moved the locks to the space left vacant by the now-defunct "link"
 🔗 icon, next to each item. Clicking it will open a small popover dialog
@@ -69,9 +99,19 @@ where you can select the lock type.
 Selecting a single lock will show it next to the visibility (eye 👁️)
 icon, selecting 2 locks or more will show a generic multi-locks icon.
 Each of the new icons, specific or generic, were designed by Aryeom.
-You now know in a single glimpse to the layers list which ones are
+Now you know in a single glimpse to the layers list which ones are
 locked or not.
 
+<figure>
+<img src="{attach}gimp-2-99-10-locks.png" alt="Locking a layer"/>
+<figcaption>
+<em>Left: popover on "lock" area click -
+Middle: lock position (specific icon shown) -
+Right: lock contents (2 locks in use: multi-locks icon shown)
+</em>
+</figcaption>
+</figure>
+
 Among other advantages, the lock icons now allow the `Shift-click`
 interaction, same as the visibility icon, so that one can switch many
 items' locks at once. We also created a new `Alt-click` interaction to
@@ -79,10 +119,10 @@ switch locks within all selected layers. So we now have:
 
 * Simple `click` on a lock or visibility icon: the clicked item's
   visibility or lock state is switched.
-* `Shift-click`: the clicked item's stays visible/locked while the
+* `Shift-click`: the clicked item stays visible/locked while the
   visibility or lock state of all **other items on the same level** in
   the layer tree is switched ON or OFF.
-* `Alt-click`: the clicked item's stays visible/locked while the
+* `Alt-click`: the clicked item stays visible/locked while the
   visibility or lock state of all **other selected items** is switched
   ON or OFF.
 
@@ -92,7 +132,17 @@ is especially interesting together with features allowing to change
 multiple items at once, like the `Shift-click` or `Alt-Click` actions
 explained above. You could for instance have a background image locked
 to be always visible, then you could switch other foreground layers'
-visibility while always keeping the background visible.
+visibility while always keeping the background visible. Oppositely you
+could prevent your initial croquis for instance from being shown by
+mistake.
+
+<figure>
+<img src="{attach}gimp-2-99-10-lock-visibility.png" alt="Locking visibility of background"/>
+<figcaption>
+<em>Locking visibility of background layers to always visible and
+croquis layer to never visible.</em>
+</figcaption>
+</figure>
 
 Among other changes in this area, the alpha and position locks can now
 be set on Layer groups:
@@ -114,76 +164,176 @@ the visibility and especially the lock buttons:
 * Our default theme will now provide visible hints around inactive
   button areas while hovering these clickable areas.
 
-## Wayland and macOS support
-
-Various bugs and improvements have been made specifically to Wayland and
-macOS support. These often go together as we notice that many of the
-issues which appear on one of these also appear on the other, as we
-guess they follow similar principles.
-
-On macOS in particular though, there were massive slowness issues of the
-2.99 development series, so much that at some point, our packager feared
-that GIMP 3.0 on macOS would never be usable.
-Well we are proud to announce this was premature despair as we finally
-found some solutions for some things, workarounds for others (sometimes
-not too pretty), enough for GIMP to be finally usable and even faster
-than the 2.10 series in our various tests! Our only uncertainty is that
-the code was mostly tested on macOS Monterey. We are not sure of the
-situation on Big Sur where the problem really started.
-
-Several of the parts of the solutions lead us to GTK patches. Not
-everything is upstream yet, but we already use our current satisfying
-patch set in our own DMG package. This will help other projects using
-GTK3 and experiencing similar issues.
+<figure>
+<img src="{attach}gimp-2-99-10-layer-dockable-icon-hints.png" alt="Hints for discoverability of clickable 
areas"/>
+<figcaption>
+<em>Points to notice: "visibility" and "lock" icon headers and border around clickable area when hovering 
with pointer</em>
+</figcaption>
+</figure>
 
-## Enabling/Disabling dynamics simplified
+### Enabling/Disabling dynamics simplified
 
 It is now possible to enable and disable dynamics in a single checkbox,
 instead of tediously having to select the "Dynamics Off" neutral
 dynamics. Obviously this neutral dynamics has been removed from the list
 of installed data.
 
-It allows to switch dynamics painting in a single click without having
-to remember which dynamics you were using.
+It allows to switch dynamics painting in a single click, and without
+having to remember which dynamics you were using for switching back.
+
+<figure>
+<img src="{attach}gimp-2-99-10-dynamics-enabling.webp" alt="Enabling/disabling dynamics in a click"/>
+<figcaption>
+<em>Enabling and disabling dynamics in one click</em>
+</figcaption>
+</figure>
 
 For advanced user, we also set up the new action
-"context-dynamics-toggle". It means you can create a shortcut to switch
-the dynamics painting stat for even faster work.
+"context-dynamics-toggle". It means you can create a shortcut
+(`Edit > Keyboard Shortcuts` menu) to switch the dynamics painting
+for even faster work.
 
-## New feature for Line Art mode of bucket fill tool
+<figure>
+<img src="{attach}gimp-2-99-10-dynamics-shortcut.png" alt="Shortcut settings for enabling/disabling 
dynamics"/>
+<figcaption>
+<em>Setting a shortcut to enable or disable dynamics in the Keyboard
+Shortcuts dialog</em>
+</figcaption>
+</figure>
+
+## New Core Features
+### New feature for Line Art mode of bucket fill tool
 
-We have added a new option "Allow closing lines in selected layer" in
-the "Fill by line art detection" mode of the bucket fill tool. The name
-is not necessarily final as naming this was pretty hard.
+We added a new option "*Allow closing lines in selected layer*" in the
+"Fill by line art detection" mode of the bucket fill tool. The name is
+not necessarily final as naming this was hard.
 
-Anyway here is what it does: when you select the "Layer above/below the
-selected one" as source, the selected layer is not used as line art
-source (as the title says). Yet with this option, you add the ability to
-paint with your fill color directly in the selected layer and union this
-data as closure data.
+Anyway here is what it does: when you choose the "*Layer above|below the
+selected one*" source, the selected layer is not used as line art source
+(as the title says). Yet with this option, you add the ability to paint
+with your fill color directly in the selected layer and union this data
+as closure data.
 
 Once again, it is **not** a source for line art detection, which means
 it doesn't trigger any recomputing. It is additional data for manual
-line closure only.
+line closure only after line art and closure computation.
 
-One of the main usage could be to set the "Maximum gap length" to 0,
-which totally disable the line art closure computation, which means much
-faster computing on big line art images. Then you'd rely solely on
+One of the main usage could be to set the "*Maximum gap length*" to 0,
+which totally disable the line art closure computation, hence having
+much faster computing on big line art images. Then you'd rely solely on
 manually closed line arts. Unfortunately sometimes you don't want to
-close a line art with your line color/brush/style, you want to close it
-with your fill color/brush/style. This is when it comes into play.
+close a line art with your **line** color/brush/style, you want to close
+it with your **fill** color/brush/style. This is when this option comes
+into play.
+
+For instance, here is how you could fill the line art with the smart
+closing which could oversegment if you don't tweak properly the
+"*Maximum gap length*". Additionally the closure (here at the leg
+bottoms of the character) would likely not be the expected style:
+
+<div class='fluid-video'>
+<video width="1280" height="720" controls>
+  <source src="https://download.gimp.org/pub/gimp/video/v2.99/gimp-2-99-10-line-art-smart-closing.mp4"; 
type="video/mp4">
+  <source src="https://download.gimp.org/pub/gimp/video/v2.99/gimp-2-99-10-line-art-smart-closing.webm"; 
type="video/webm">
+Your browser does not support the video tag.
+</video>
+</div>
+
+Now let's disable the smart closing algorithm and use the new option
+instead. We will simply paint with our expected fill color and style to
+close the line art and it will be considered as "line" without
+recomputation. This way, the fill is instant and the closure style is
+exactly the one you expect:
+
+<div class='fluid-video'>
+<video width="1280" height="720" controls>
+  <source src="https://download.gimp.org/pub/gimp/video/v2.99/gimp-2-99-10-line-art-manual-closing.mp4"; 
type="video/mp4">
+  <source src="https://download.gimp.org/pub/gimp/video/v2.99/gimp-2-99-10-line-art-manual-closing.webm"; 
type="video/webm">
+Your browser does not support the video tag.
+</video>
+</div>
+
+This new option is originally based on an advanced digital painter tip
+of Aryeom on how to colorize efficiently a croquis (she was using this
+long before the "fill by line art detection" feature in GIMP, using
+*Fuzzy Select* in sample merged mode). Closing line arts with fill style
+is one of the many techniques she teaches to digital painting students at
+university. So we thought integrating this into our line art fill tool
+would be a definite gain as Aryeom was disappointed by the absence of
+style and control with the smart closing algorithm.
+
+*Note: we are aware the settings in this tool are a bit complicated to
+apprehend. We will hopefully do a pass of redesigning soon.*
+
+### Welcome Dialog
+
+GIMP now gets a `Welcome Dialog` which will show up only once after a
+new installation or an update. It will display the splash image, some
+short text and links to documentations and alike.
+
+It also has a "Release Notes" tab containing the Release Notes of the
+new version so that anyone can peek at a listing of novelties.
+
+<figure>
+<img src="{attach}gimp-2-99-10-welcome-dialog.jpg" alt="Welcome Dialog"/>
+<figcaption>
+<em>Welcome Dialog at first launch after installation or update</em>
+</figcaption>
+</figure>
+
+*Note: the currently proposed Windows installer misses the release note.
+We will fix this shortly.*
+
+The website's (the one you are reading on `gimp.org`) news will still
+provide nicer longer texts with explicative screenshots. But at least,
+the Welcome Dialog will be here for people not reading the website.
+
+An advantage of the Welcome Dialog's release notes though is that it can
+be fully localized by our translators (unlike the website in its
+current version). For instance, here are the release notes showing on a
+Portuguese-localized GIMP:
+
+<figure>
+<img src="{attach}gimp-2-99-10-welcome-dialog-pt.png" alt="Welcome Dialog in Portuguese"/>
+<figcaption>
+<em>Welcome Dialog's release notes are localized; e.g. here in Portuguese</em>
+</figcaption>
+</figure>
+
+Some more work might happen on this Welcome Dialog. For instance,
+proposing a "Customization" tab for some of the more controversial
+settings (such as themes and icons) will likely be added.
+
+There is also the question about adding more "everyday use" features,
+such as a list of some of the lastly opened images, or a "New Image"
+option, avoiding going in menus (or using shortcuts).
+Of course it means giving the ability to open the dialog at every start
+as an option (unlike now where it will only open once after a new
+update).
 
 ## Going further with our compact slider widget
 
-Our compact slider was only available to core code until recently. It
-means that all plug-ins in particular could not use of this slider.
+Our compact slider was only available to [core
+code](https://www.gimp.org/news/2020/11/06/gimp-2-99-2-released/#compact-sliders)
+until recently. It means that all plug-ins in particular could not use
+of this slider.
 So the widget has now been moved to the `libgimpui` library, making it
 usable by any plug-in which wants a nice looking and efficent slider
-with slow relative moves, fast drag moves and direct keyboard edits, all
-the while maximizing the space.
+with slow relative moves, fast drag moves and direct keyboard edits (see
+some of the [usability work on an older
+news](https://www.gimp.org/news/2020/12/25/gimp-2-99-4-released/#slider-widget)),
+all the while maximizing the space.
 
 A few of our official plug-ins already make use of it now.
 
+<figure>
+<img src="{attach}gimp-2-99-10-compact-slider-in-png-export.png" alt="Locking a layer"/>
+<figcaption>
+<em>The PNG export dialog with compact slider
+</em>
+</figcaption>
+</figure>
+
 Additionally our default `System` theme made it even more compact,
 because there were some complaints that this said *compact* slider was
 not compact enough!
@@ -334,18 +484,21 @@ results, which is why the job failures are not fatale, mostly
 informational. Let's say this is a first step, hoping this coding style
 check will get better.
 
-### `flatpak-release` tool to test older versions easily
+### Tool to bisect-test with older versions of flatpak
+
+*Note: this is developer fanciness and may not be of high interest to
+others.*
 
 Flatpak has limitations but also quite some interesting features. One of
-them is the ability to install older versions of the package. It can be
-a pretty neat developer tool when we want to test something on an older
-version of GIMP, a kind of `git bisect` but with flatpak packages.
+them is the ability to install older versions of the package easily. It
+can be a pretty neat developer tool when we want to test something on an
+older version of GIMP, a kind of `git bisect` but with flatpak packages.
 Nevertheless listing the old versions, uninstalling your current
 version, installing the relevant older, and remember the command lines
 for all this (since we don't do this daily either) was making it hardly
 usable in real life.
 
-This is where this tool comes from:
+This is where this tool comes in:
 
 ```
 $ tools/flatpak-releases  -h
@@ -369,17 +522,45 @@ Options:
 --system: install as system flatpak (default to user install)
 ```
 
-So say I want to know all the beta release which Flathub has stored:
+Say I want to know all the beta release still stored on Flathub:
 
 ```
-TODO: after flatpak update.
+$ tools/flatpak-releases --beta
+ 0: Working around weird install path of appstream file. (be96fed3) [2022-02-24 00:37:25 +0000]
+ 1: Update dependencies (127a0fa7) [2022-01-13 16:59:43 +0000]
+ 2: Issue #106:  File->Create->From Screenshot not working. (9c831b14) [2021-12-14 21:46:52 +0000]
+ 3: Release GIMP 2.99.8. (908bf5b0) [2021-10-20 20:29:00 +0000]
+ 4: Release GIMP 2.99.6. (e04355dd) [2021-04-26 14:08:32 +0000]
+ 5: Make sure the default path for plug-ins and scripts point to the extension point (8b02ea26) [2021-03-31 
16:12:06 +0000]
+ 6: Build Little-CMS 2.12 ourselves. (ae60863e) [2021-03-29 16:03:51 +0000]
+ 7: Add extension point for Gimp3 (34b2f8c0) [2021-03-27 12:40:57 +0000]
+ 8: Release GIMP 2.99.4. (20a0a962) [2020-12-22 23:45:19 +0000]
+ 9: Update to GNOME Platform 3.38. (a84da0fa) [2020-11-14 23:08:38 +0000]
+10: Use org.gnome.Platform//3.36beta. (12017e04) [2020-11-06 22:59:59 +0000]
+11: Release GIMP 2.99.2! (58fef365) [2020-10-25 22:20:18 +0000]
+12: Add shared module for intltool. (a1d2b211) [2020-06-01 18:34:15 +0000]
 ```
 
-Now say I want to install the one where I released GIMP 2.99.6 for a
-test:
+The number `0` is the GIMP 2.99.10 release (the package stored the last
+commit message, which might not be as relevant as we'd want).
+Now say I want to install the GIMP 2.99.6 release for a test:
 
 ```
-TODO: after flatpak update.
+$ tools/flatpak-releases --beta -4
+[1/2] Installing org.gimp.GIMP
+Looking for matches…
+Skipping: org.gimp.GIMP/x86_64/beta is already installed
+[2/2] Updating to commit '9165cae20b6ad8549ff8053385b0facd15bb11fc8733e0b9c50aed0e961a6c3e' (4's previous 
build)
+Looking for updates…
+
+
+        ID                     Branch         Op         Remote               Download
+ 1. [✓] org.gimp.GIMP          beta           u          flathub-beta         43.4 MB / 75.5 MB
+
+Updates complete.
+Build 4 released on 2021-04-26 14:08:32 +0000 was installed.
+Build subject: Release GIMP 2.99.6. (e04355dd)
+Build commit on flathub-beta: 9165cae20b6ad8549ff8053385b0facd15bb11fc8733e0b9c50aed0e961a6c3e
 ```
 
 Done. In 2 commands and less than a minute, I am now able to run our
@@ -388,7 +569,6 @@ GIMP 2.99.6 flatpak beta package which was 4 packages ago.
 This command allows me to do this for the stable, the beta and the
 nightly packages.
 
-
 ### New contributor documentation
 
 Our developer document was a bit sparse and not too maintained these
@@ -453,6 +633,103 @@ By the way, note that it seems we have issues with the Vala and Lua
 plug-ins on Windows in the installer we are providing here. We don't
 know why yet and still need to investigate.
 
+## Wayland and macOS support
+
+Various bugs and improvements have been made specifically to Wayland and
+macOS support. These often go together as we notice that many of the
+issues which appear on one of these also appear on the other.
+
+On macOS in particular though, there were massive slowness issues of the
+2.99 development series, so much that at some point, our packager feared
+that GIMP 3.0 on macOS would never be usable.
+Well we are proud to announce this was premature despair as we finally
+found some solutions for some things, workarounds for others, sometimes
+not too pretty yet enough for GIMP to be finally usable and even faster
+than the 2.10 series in our various tests! Our only uncertainty is that
+the code was mostly tested on macOS Monterey. We don't know the
+situation on Big Sur where the problems initially started.
+
+Several parts of the solutions lead us to GTK patches. Not everything is
+upstream yet, but we already use our current satisfying patch set in our
+own DMG package. This will help other projects using GTK3 and
+experiencing similar issues.
+
+## babl and GEGL
+
+As usual, this release is supplemented with the releases of
+[babl](https://gegl.org/babl/) 0.1.90 and [GEGL](https://gegl.org/)
+0.4.36.
+
+And these are particularly exciting for this release.
+
+### Automatic LUT creation for conversions in babl
+
+Citing Øyvind in a recent [report](https://www.patreon.com/posts/babl-lutefisk-62286666):
+
+> babl works as a universal pixel encoding translator by having - a not
+> necessarily fast reference conversion able to deal with everything - and
+> a collection of conversions that can be chained together into what babl
+> calls fishes. The fishes are raced against each other to find the best
+> conversion babl is able to create.
+
+Yet in some situations, a [LUT (Look-Up
+Table)](https://en.wikipedia.org/wiki/Lookup_table#Lookup_tables_in_image_processing)
+could perform better.
+This is why a new automatic step of LUT creation will be triggered in
+some case, and its conversion speed compared with the usual universal
+conversion paths.
+
+Right now one drawback is that it might actually slow down slightly the
+first conversion happening in a given `input > output` conversion couple.
+The solution which might come later would be to create the LUTs in the
+background in a thread and continue doing non-LUT conversions until it
+is ready.
+
+Note that the created LUTs are also garbage-collected after a few
+minutes of non-usage, to avoid filling memory with one-case LUTs.
+
+### SIMD builds for x86_64 and ARM neon (babl and GEGL)
+
+Both babl and GEGL benefits from SIMD dispatch built for x86-64 v2 and
+v3 microarchitecture levels as well as ARM neon.
+
+The same applies to core operations where we have `.so` bundles for the
+variants as well as a generic build.
+
+This was done by writing portable C code that caters well to
+auto-vectorization since support for SIMD is very good in modern
+compilers.
+
+Here is a test running a same operation multiple times on a Raspberry Pi
+without Neon and the SIMD optimization. Note that the `cairo` reference
+comparison is the `BGRA8` format (the only other format proposed by
+Cairo is `A8`):
+
+<figure>
+<img src="{attach}GEGL-0-4-36-arm-without-neon.png" alt="Test results without SIMD"/>
+<figcaption>
+<em>Filling a 256px radius circle in a 512x512 buffer a number of times without Neon</em>
+</figcaption>
+</figure>
+
+Now the same test with the SIMD optimizations built-in:
+
+<figure>
+<img src="{attach}GEGL-0-4-36-arm-with-neon.png" alt="Test results with SIMD"/>
+<figcaption>
+<em>Filling a 256px radius circle in a 512x512 buffer a number of times without Neon</em>
+</figcaption>
+</figure>
+
+Note well that both the optimized and non-optimized cases are built-in,
+and availability of relevant instructions determined by runtime tests.
+This makes these optimizations very portable, despite being based on
+recent architecture instructions.
+
+### Other improvements
+
+`babl` now also comes with pre-defined CIE Lab u8 and CIE Lab u16 formats.
+
 ## Team news
 
 On our main source repository, "*reporter*" access (allowing to triage
@@ -461,27 +738,91 @@ given to nmat and Liam Quin.
 
 Ondřej Míchal has now been given write access to the package repository
 for our stable and beta flatpak on Flathub, thus joining Hubert Figuière
-and Jehan for maintenance, after various improvements to our various
+and Jehan for maintenance, after their various improvements to our
 flatpak packages, including some very nice work for automatic detection
 of outdated dependencies, thanks to the `flatpak-external-data-checker`
 tool.
 
-TODO: translators and gimp-help + some contribution stats?
+## Release stats
+
+42 people contributed to GIMP 2.99.10:
+
+* 17 developers contributed to `GIMP` code base:
+    - 1 developer with more than 300 commits (Jehan)
+    - 4 developers with 10 to 30 commits (Jacob Boerema, Niels De Graef,
+      Lukas Oberhuber and Daniel Novomeský)
+    - 12 developers with 1 to 4 commits: Øyvind Kolås, Anders Jonsson,
+      Asalle, Emily Gonyer, Luca Bacci, Markus Volk, Ondřej Míchal,
+      Stanislav Grinkov, Yoshinori Yamakawa, bartoszek, Nikc and Tomasz
+      Goliński.
+* 20 translations were updated: Basque, British English, Catalan,
+  Chinese (China), Danish, German, Greek, Hungarian, Italian, Kabyle,
+  Latvian, Lithuanian, Polish, Portuguese, Russian, Slovenian, Spanish,
+  Swedish, Ukrainian, Vietnamese.
+* 24 translators contributed: Yuri Chornoivan, Hugo Carvalho, Anders
+  Jonsson Matej Urbančič Rodrigo Lledó, Rūdolfs Mazurs, Asier Sarasua
+  Garmendia, Luming Zh, Bruce Cowan, Jordi Mas, Piotr Drąg, Ask Hjorth
+  Larsen, Boyuan Yang, Marco Ciampa, Alan Mortensen, Daniel Mustieles,
+  Yacine Bouklif, Alexandre Prokoudine, Aurimas Černius, Balázs Meskó,
+  Luna Jernberg, Ngọc Quân Trần, Tim Sabsch and dimspingos.
+* 4 people helped with in-code documentation: Jehan, Niels De Graef,
+  Alexandre Prokoudine and Daniel Novomeský.
+* 2 people contributed to icons: Aryeom and Jehan.
+* 9 people contributed to build-related updates: Jehan, Lukas Oberhuber,
+  Øyvind Kolås, Asalle, Daniel Novomeský, Yoshinori Yamakawa, Aryeom
+  Han, Markus Volk and bartoszek.
+* One new splash screen by Aryeom Han.
+
+These are the stats on babl, GEGL and ctx side:
+
+* 4 contributors to `babl` 0.1.90:
+    - 1 contributor with more than 70 commits (Øyvind Kolås).
+    - 4 contributors with 1 to 4 commits: Mingye Wang, Jehan, Tomasz
+      Golinski and Andrzej Hunt.
+* 6 contributors to `GEGL` 0.4.36:
+    - 1 contributor with more than 20 commits (Øyvind Kolås).
+    - 5 contributors with 1 to 2 commits: Anders Jonsson, Jehan, Alan
+      Mortensen, Caleb Xu and zamfofex.
+* `ctx` doesn't have releases per-se as it is project-embedded code. So
+  let's count commits in the time frame between GIMP 2.99.8 and 2.99.10:
+    - 1 contributor with more than 600 commits (Øyvind Kolås)
+    - 1 contributor with 1 commit (Jehan)
+
+We should also not forget the documentation repository which gets more
+activity these days, thanks to the new maintainership by Jacob. In the
+same time frame as GIMP 2.99.10, it got 5 contributors:
+
+* 2 contributors on the documentation itself: Jacob Boerema and Anders
+  Jonsson.
+* 4 contributors worked on translations: Rodrigo Lledó, Anders Jonsson,
+  Jordi Mas and Piotr Drąg.
+
+Finally the work on the macOS repository should not be forgotten, thanks
+to our new packager, Lukas:
+
+* 1 contributor with more than 60 commits (Lukas Oberhuber).
+* 2 contributors with 1 to 2 commits: Jehan and Andreas Scherer.
 
 ## Downloading GIMP 2.99.10
 
 As usual, GIMP 2.99.10 is available on [GIMP official website
-(gimp.org)](https://www.gimp.org/downloads/devel/):
+(gimp.org)](https://www.gimp.org/downloads/devel/) in 3 types of
+packages:
 
-* The Linux development flatpak has already been published so that
-  anyone who installed it previously should have an update proposed by
-  their software manager (or from terminal: `flatpak update
-  org.gimp.GIMP//beta`).
+* Linux development flatpak
+* Windows installer
+* macOS DMG package
 
-* The Windows installer is already available too, very quickly thanks to
-  the [new installer release process](#automated-release-installers).
+Other packages made by third-party are obviously expected to follow
+(Linux or *BSD distributions' packages, etc.).
 
-* The macOS DMG package will hopefully be published [*soonish*](#macos).
+ℹ️ Fun fact: we learned that GIMP was successfully [built on Haiku
+OS](https://twitter.com/haikunauts/status/1489019411637972997) (yet
+another operating system, not a mainstream one) and is now provided
+through their packaging system. Even though we know it well, it always
+amazes us how cross-platform GIMP is as it can be found on nearly every
+operating system (yes GIMP is on GNU/Hurd too from what we were told!)
+and micro-architecture there is. 😊
 
 ## What's next
 
@@ -491,8 +832,8 @@ The "link" concept was also an old concept which needed to disappear for
 GIMP 3.0, so this is one less blocker as this change is now completely
 finished.
 
-The GTK port is also another big blocker, and important work in this
-direction has been started by some contributors, regarding a move to the
+The GTK port is another big blocker; important work in this direction
+has been started by some contributors regarding a move to the
 `GApplication` and `GtkApplication` frameworks and the `GAction` port.
 These patches are still heavily under work and review and have not been
 merged in any form in GIMP 2.99.10, so we will have the opportunity to


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]