<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
  <id>io.github.mightycreak.Diffuse</id>
  <name>Diffuse</name>
  <summary>Graphical tool for merging and comparing text files</summary>
  <description>
    <p>
      Diffuse is a graphical tool for comparing and merging text files. It can retrieve files for comparison from
      Bazaar, CVS, Darcs, Git, Mercurial, Monotone, RCS, and Subversion repositories.
    </p>
  </description>
  <supports>
    <control>pointing</control>
    <control>keyboard</control>
    <control>console</control>
  </supports>

  <metadata_license>FSFAP</metadata_license>
  <project_license>GPL-2.0-or-later</project_license>
  <content_rating type="oars-1.1"/>
  <launchable type="desktop-id">io.github.mightycreak.Diffuse.desktop</launchable>
  <translation type="gettext">diffuse</translation>
  <url type="homepage">https://mightycreak.github.io/diffuse/</url>
  <url type="bugtracker">https://github.com/MightyCreak/diffuse/issues</url>
  <url type="vcs-browser">https://github.com/MightyCreak/diffuse</url>
  <url type="translate">https://github.com/MightyCreak/diffuse/blob/main/docs/translators.md</url>

  <screenshots>
    <screenshot type="default">
      <image type="source">https://raw.githubusercontent.com/MightyCreak/diffuse/main/docs/images/screenshot_v0.7.7_main_window.png</image>
      <caption>Main window</caption>
    </screenshot>
    <screenshot>
      <image type="source">https://raw.githubusercontent.com/MightyCreak/diffuse/main/docs/images/screenshot_v0.7.7_about_window.png</image>
      <caption>About window</caption>
    </screenshot>
  </screenshots>

  <developer_name translatable="no">Romain Failliot</developer_name>
  <update_contact>romain@foolstep.com</update_contact>

  <releases>
    <release version="0.9.0" date="2024-01-13">
      <description>
        <p>Summary: remove support for SVK, update to GNOME 45, updated Turkish translation.</p>
        <p>Changed:</p>
        <ul>
          <li>Update from GNOME 44 to 45 (@sabriunal)</li>
          <li>Flatpak manifest now runs the tests (@sabriunal)</li>
          <li>Use appstreamcli instead of the deprecated appstream-util to validate appdata (@sabriunal)</li>
          <li>Update appdata: add translation tag, vcs-browser and translate URLs (@sabriunal)</li>
          <li>Translation: mark the developer name and release descriptions as untranslatable (@sabriunal)</li>
          <li>Translation: update Turkish translation (@sabriunal)</li>
        </ul>
        <p>Removed:</p>
        <ul>
          <li>Remove support for the SVK CVS (@MightyCreak)</li>
        </ul>
        <p>Fixed:</p>
        <ul>
          <li>Fix compatibility with Python 3.12: remove use of distutils (@MightyCreak)</li>
          <li>Fix new errors raised by Flake8 (@MightyCreak)</li>
          <li>Fix the error with the CICD due to the use of appstreamcli (@MightyCreak)</li>
        </ul>
      </description>
    </release>
    <release version="0.8.2" date="2023-04-16">
      <description translatable="no">
        <p>Use more modern, symbolic icons, add Dutch translation, and a couple of small fixes.</p>
        <p>Added:</p>
        <ul>
          <li>Add link to the Matrix room in the README (@MightyCreak)</li>
          <li>Add Dutch translation (@Vistaus)</li>
        </ul>
        <p>Changed:</p>
        <ul>
          <li>Replace `_` by `-` in the action names to be compatible with GTK action names (@MightyCreak)</li>
          <li>The About dialog is now transient for the main window (@oscfdezdz)</li>
          <li>Remove deprecated STOCK constants and use more modern, symbolic icons (@oscfdezdz)</li>
        </ul>
        <p>Fixed:</p>
        <ul>
          <li>Some signals weren't properly renamed from the previous GTK3 migration (@MightyCreak)</li>
          <li>The syntax menu wasn't working anymore (@MightyCreak)</li>
          <li>Properly handles SIGINT (i.e. Ctrl+C) now (@MightyCreak)</li>
          <li>Add back `save_state()` to remember window's width and height (@MightyCreak)</li>
        </ul>
      </description>
    </release>
    <release version="0.8.1" date="2023-04-07">
      <description translatable="no">
        <p>
          Fix for the shortcuts that weren't working anymore due to migration to Gtk.Application.
        </p>
        <p>Changed:</p>
        <ul>
          <li>Remove log function calls from the stack trace when calling `logDebug` or `logError` (@MightyCreak)</li>
          <li>
            Log functions used to log only on stderr, now `logDebug` logs on stdout and `logError`
            logs on stderr (@MightyCreak)
          </li>
          <li>Change Git default branch from `master` to `main` (@MightyCreak)</li>
        </ul>
        <p>Fixed:</p>
        <ul>
          <li>Shortcuts were not working since the move to Gtk.Application (issue #188) (@MightyCreak)</li>
        </ul>
      </description>
    </release>
    <release version="0.8.0" date="2023-04-03">
      <description translatable="no">
        <p>
          Update to GNOME 44, improved GTK 3 support, initial support for Rust, added Turkish and
          Georgian translations, and a couple of fixes.
        </p>
        <p>Added:</p>
        <ul>
          <li>Language: initial support for Rust language (@alopatindev)</li>
          <li>Translation: added Turkish translation (@libreajans)</li>
          <li>Translation: added Georgian translation (@NorwayFun)</li>
        </ul>
        <p>Changed:</p>
        <ul>
          <li>Update from GNOME 42 to GNOME 44 (@MightyCreak)</li>
          <li>Translation: updated Swedish translation (@eson57)</li>
          <li>Dialog: prompt only once if several files needs to be reloaded (@yuriiz)</li>
          <li>Use GTK3's Gtk.Application/Gtk.ApplicationWindow (@yuriiz)</li>
          <li>Split `DiffuseApplication` and `DiffuseWindow` classes in their own files (@MightyCreak)</li>
          <li>Use new Meson (from 0.50 to 0.55) and fixed deprecation warnings (@MightyCreak)</li>
          <li>
            Mac: fix the shortcut for first/previous/next/last differences, now uses ⌘ instead of
            Ctrl (@krlmlr)
          </li>
        </ul>
        <p>Fixed:</p>
        <ul>
          <li>"Go to line..." dialog didn't show up (@MightyCreak)</li>
          <li>
            Tech debt: use `transient_for` instead of the deprecated `parent` when creating a
            `Gtk.Widget` (@MightyCreak)
          </li>
          <li>Documentation: prefer `pip3` over `pip` to ensure it works everywhere (@krlmlr)</li>
          <li>Flatpak: add missing `--filesystem=xdg-run/gvfsd` privilege (@MightyCreak)</li>
        </ul>
      </description>
    </release>
    <release version="0.7.7" date="2022-10-23">
      <description translatable="no">
        <p>
          Update translations.
        </p>
        <p>Changed:</p>
        <ul>
          <li>Translation: updated Spanish translation</li>
          <li>Translation: updated POT file</li>
          <li>Translation: fixed issue with commented string that still needs translation</li>
        </ul>
      </description>
    </release>
    <release version="0.7.6" date="2022-10-23">
      <description translatable="no">
        <p>
          Add port to Mac OS.
        </p>
        <p>Added:</p>
        <ul>
          <li>Port to Mac OS (@hugoholgersson)</li>
        </ul>
        <p>Changed:</p>
        <ul>
          <li>Documentation: added dev setup for MacOS</li>
          <li>Documentation: updated the dependencies</li>
          <li>CI/CD: GitHub actions warnings</li>
        </ul>
        <p>Fixed:</p>
        <ul>
          <li>Fixed MyPy errors</li>
        </ul>
      </description>
    </release>
    <release version="0.7.5" date="2022-04-15">
      <description translatable="no">
        <p>
          Crashfix and French translation.
        </p>
        <p>Added:</p>
        <ul>
          <li>Documentation: added release process instructions</li>
          <li>Translation: added French translation</li>
        </ul>
        <p>Fixed:</p>
        <ul>
          <li>Fixed #156: Preferences cannot be saved in latest release</li>
          <li>Cleanups: use constructors instead of `new()` whenever possible in GTK classes</li>
        </ul>
      </description>
    </release>
    <release version="0.7.4" date="2022-04-03">
      <description translatable="no">
        <p>
          Mainly a maintenance release. It does increase the GNOME SDK's version.
        </p>
        <p>Added:</p>
        <ul>
          <li>Added a `--remove-obsolete` option for the update-translation.py script</li>
          <li>Added links to VCSs in README.md</li>
          <li>New keyword in config file: "option"</li>
          <li>Added instructions to install and run from a custom directory</li>
        </ul>
        <p>Changed:</p>
        <ul>
          <li>Updated the translation files</li>
          <li>Renamed POTFILES.in to POTFILES</li>
          <li>Renamed io.github.mightycreak.Diffuse.metadata.xml.in to io.github.mightycreak.Diffuse.appdata.xml.in</li>
          <li>Leaner README.md</li>
          <li>Moved the documentation to docs/</li>
          <li>In the CI, call the linters on the installed directory</li>
          <li>Renamed application name from "Diffuse Merge Tool" to "Diffuse"</li>
          <li>Linters can be run sooner (before installation)</li>
          <li>Better messages when an error occurs while parsing the config file</li>
          <li>Start converting the code to static types</li>
          <li>Add more information about the dependencies in the documentation</li>
          <li>Upgrade Flatpak GNOME's runtime to 42</li>
        </ul>
        <p>Fixed:</p>
        <ul>
          <li>>Removed the lasting lint errors (i.e. in main.py)</li>
          <li>>Fix Flatpak runtime version in documentation</li>
        </ul>
      </description>
    </release>
    <release version="0.7.3" date="2021-11-22">
      <description translatable="no">
        <p>
          Patch release that introduces linters (flake8 and mypy).
        </p>
        <p>Added:</p>
        <ul>
          <li>Added linters (flake8 and mypy) and fixed some errors</li>
          <li>Added lint jobs for both in the CI</li>
          <li>Added a flatpak job in the CI</li>
        </ul>
        <p>Changed:</p>
        <ul>
          <li>main.py slimmed down by about 5000 lines</li>
          <li>The new widgets.py is a bit fat though (~4000 lines)</li>
          <li>Updated the translation files</li>
        </ul>
        <p>Fixed:</p>
        <ul>
          <li>
            The intense code cleaning seems to have fixed a bug with the `-c` argument (#120)
          </li>
        </ul>
      </description>
    </release>
    <release version="0.7.2" date="2021-11-18">
      <description translatable="no">
        <p>
          Patch release that fixes an error about APP_NAME and the Brazilian translation.
        </p>
        <p>Added:</p>
        <ul>
          <li>
            New options: log_print_output and log_print_stack, to print the log
            messages on the output and code stack
          </li>
          <li>
            New log function: utils.logErrorAndDialog, to both log and show a
            dialog message
          </li>
        </ul>
        <p>Changed:</p>
        <ul>
          <li>Modularized the VCSs (reducing main.py by around 1300 lines)</li>
          <li>Bump GNOME runtime version from 3.38 to 41</li>
        </ul>
        <p>Fixed:</p>
        <ul>
          <li>Fixed 'APP_NAME' error when opening non existing file</li>
          <li>Fixed the Portuguese Brazilian (pt_BR) translation</li>
        </ul>
      </description>
    </release>
    <release version="0.7.1" date="2021-11-17">
      <description translatable="no">
        <p>
          Patch release to fix a bug when using the Flatpak package.
        </p>
        <p>Fixed:</p>
        <ul>
          <li>
            Fixed a Flatpak bug where the app couldn't call binaries on the
            host, such as `git`, `svn`, etc.
          </li>
        </ul>
      </description>
    </release>
    <release version="0.7.0" date="2021-11-16">
      <description translatable="no">
        <p>
          With this release, the main end-user change is the new icon. The rest
          is mainly maintenance improvements with a much more standard folder
          structure and starting to modularize the code. This is an ongoing
          effort as there is still a lot to do, but hopefully this would
          motivate some to contribute ;)
        </p>
        <p>
          An important note though: the application ID has changed and is now
          io.github.mightycreak.Diffuse.
        </p>
        <p>Added:</p>
        <ul>
          <li>New icon and in SVG now</li>
          <li>Started to modularize the code</li>
        </ul>
        <p>Changed:</p>
        <ul>
          <li>
            Changed AppID to io.github.mightycreak.Diffuse (as advised in the
            Flatpak documentation)
          </li>
          <li>Renamed directory `translations/` to `po/`</li>
          <li>Now uses POTFILES.in to list the files to translate</li>
          <li>
            Translation strings are no longer sorted alphabetically, this will
            help when there will be several files in POTFILES.in
          </li>
          <li>Updated the documentation and script in the `po/` directory</li>
          <li>Add .desktop translations in .po files</li>
        </ul>
        <p>Fixed:</p>
        <ul>
          <li>Fixed some GTK deprecation warnings</li>
        </ul>
      </description>
    </release>
    <release version="0.6.0" date="2020-11-29">
      <description translatable="no">
        <p>
          Mainly under the hood changes in this release, so nothing really
          visible to the users in this version. That said, I figured it was a
          long time since the last release (4 months ago) and, as promised, I
          want Diffuse development to be a bit more active and iterative.
        </p>
        <p>
          Apart from the maintenance changes 🧰, I think the main improvement
          is that Diffuse will soon be available through Flathub!
        </p>
        <p>Added:</p>
        <ul>
          <li>New Flatpak package, published on Flathub: com.github.mightycreak.Diffuse</li>
        </ul>
        <p>Changed:</p>
        <ul>
          <li>Replace old install.py with the more standard Meson</li>
          <li>Remove u string prefixes since Python 3 is in UTF-8 by default</li>
          <li>Replaced some interpolation operators (%) for the f string prefix</li>
          <li>Use the window scale factor for the icons generation</li>
        </ul>
      </description>
    </release>
    <release version="0.5.0" date="2020-07-18">
      <description translatable="no">
        <p>
          Here is the v0.5.0. Unintentionally, this release happens exactly 6
          years after the previous v0.4.8 release!
        </p>
        <p>
          There is a lot to do on this application, and some features didn't
          make the release. The main one being the Windows installers. I think
          6 years is too long to continue to wait until this bug is fixed. The
          Python scripts should work on Windows, but no executable is produced
          (yet) with the release.
        </p>
        <p>
          Other than that, Diffuse v0.5.0 is now officially compatible with
          Python 3 and GTK 3! And it is synced to the latest commits from
          upstream (which were never released).
        </p>
        <p>
          The next version will not take 6 years, I promise you! 😄
        </p>
        <p>Added:</p>
        <ul>
          <li>Added Pedro Albuquerque's Portuguese translation</li>
          <li>Added Åke Engelbrektson's Swedish translation</li>
          <li>Added Guillaume Hoffmann's Darcs support improvements</li>
          <li>Added Akom Chotiphantawanon's Thai translation</li>
          <li>Added support for Git submodules</li>
          <li>Added a preference and command line option to specify the version control system search order</li>
          <li>Added .editorconfig file</li>
          <li>Added .gitignore file</li>
          <li>Added message when removing files during uninstallation</li>
          <li>Added Python script to update all the translation files at once</li>
        </ul>
        <p>Changed:</p>
        <ul>
          <li>Convert to Python 3</li>
          <li>Convert to GTK 3</li>
          <li>Updated Python highlighting for Python 3 grammar</li>
          <li>Updated copyrights years and authors</li>
          <li>Improve Spanish translation</li>
          <li>Convert translation README to MarkDown</li>
          <li>Updated all the translation files</li>
        </ul>
        <p>Fixed:</p>
        <ul>
          <li>Fixed wrong icons directory for gtk-update-icon-cache</li>
          <li>Fixed missing directories when uninstalling</li>
          <li>Fixed bug introduced by r420 with RCS VCS</li>
          <li>Fixed broken drag'n'drop since migration to Python3/GTK3</li>
          <li>Fixed error when using '-m' in an SVN repo</li>
        </ul>
      </description>
    </release>
  </releases>
</component>
