%bcond docs 1
# tests are broken on s390x
# https://gitlab.gnome.org/jrb/crosswords/-/issues/118
%ifarch s390x
%bcond tests 0
%else
%bcond tests 1
%endif

Name:           crosswords
Version:        0.3.141.6.1
Release:        1.20241212162420684878.master.444.g778c0823%{?dist}
Summary:        Solve crossword puzzles

# crosswords itself is GPL-3.0-or-later, the puzzle sets it bundles are
# CC-BY-SA-4.0
License:        GPL-3.0-or-later AND CC-BY-SA-4.0
URL:            https://gitlab.gnome.org/jrb/crosswords
Source:         crosswords-0.3.141.6.1.tar.gz
# Update requirements.txt and add a warning
# build: relax Python version pins in requirements.txt
# Fix gresource generation
# Only load AdwStyleManager if we have a display

BuildRequires:  desktop-file-utils
BuildRequires:  cmake
BuildRequires:  gcc
BuildRequires:  libappstream-glib
BuildRequires:  meson
BuildRequires:  python3-devel
BuildRequires:  sed
%if %{with docs}
BuildRequires:  python3dist(sphinx)
BuildRequires:  python3dist(sphinx-rtd-theme)
BuildRequires:  python3dist(myst-parser)
%endif
%if %{with tests}
# gen-word-list requires en_US.UTF8
# https://gitlab.gnome.org/jrb/crosswords/-/issues/109
BuildRequires:  glibc-langpack-en
%endif

BuildRequires:  pkgconfig(gio-2.0)
BuildRequires:  pkgconfig(gio-unix-2.0)
BuildRequires:  pkgconfig(gtk4)
BuildRequires:  pkgconfig(iso-codes)
BuildRequires:  pkgconfig(json-glib-1.0)
BuildRequires:  pkgconfig(libadwaita-1)
BuildRequires:  pkgconfig(libipuz-0.4)
BuildRequires:  pkgconfig(libpanel-1)
BuildRequires:  pkgconfig(librsvg-2.0)

Requires:       dbus-common
Requires:       %{name}-puzzle-sets-cats-and-dogs = %{version}-%{release}
Requires:       %{name}-puzzle-sets-uri = %{version}-%{release}
Recommends:     %{name}-thumbnailer = %{version}-%{release}
Suggests:       crossword-editor = %{version}-%{release}
%if %{with docs}
Suggests:       %{name}-doc = %{version}-%{release}
%endif

%description
A simple and fun game of crosswords. Load your crossword files, or play one of
the included games. Features include:

- Support for shaped and colored crosswords
- Loading .ipuz and .puz files
- Hint support, such as showing mistakes and suggesting words
- Dark mode support
- Locally installed crosswords as well as support for 3rd party downloaders

%package        puzzle-sets-cats-and-dogs
Summary:        Puzzles about cats and dogs for GNOME Crosswords
Requires:       %{name} = %{version}-%{release}
BuildArch:      noarch

%description    puzzle-sets-cats-and-dogs
This package contains a puzzle set about cats and dogs for GNOME Crosswords.

%package        puzzle-sets-internal
Summary:        Load additional puzzles for GNOME Crosswords
Requires:       %{name} = %{version}-%{release}
Provides:       crosswords-puzzle-sets-uri = %{version}-%{release}
Obsoletes:      crosswords-puzzle-sets-uri < 0.3.6-3
BuildArch:      noarch

# Used to load .puz files from disk
Recommends:     ipuz-convertor = %{version}-%{release}

%description    puzzle-sets-internal
This package contains puzzle sets used internally by GNOME Crosswords to load
additional puzzles from disk.

%package        thumbnailer
Summary:        GNOME Crosswords Thumbnailer

%description    thumbnailer
This package provides a thumbnailer for crosswords puzzles in formats supported
by GNOME Crosswords.

%if %{with docs}
%package        doc
Summary:        Documentation for %{name}
BuildArch:      noarch

%description    doc
This package contains additional documentation for GNOME Crosswords.
%endif

%package -n     crossword-editor
Summary:        Crossword puzzle editor

Requires:       %{name}%{?_isa} = %{version}-%{release}
Recommends:     %{name}-thumbnailer = %{version}-%{release}
# Used to load .puz files from disk
Recommends:     ipuz-convertor = %{version}-%{release}

%description -n crossword-editor
Standalone-tool to create crossword puzzles based on GNOME Crosswords. It can
be used to create simple puzzles with grids and clues. It has a pattern solver
and grid autofill dialog for filling in hard-to-finish corners, and will make
suggestions of words when creating the grid.

%package -n     ipuz-convertor
Summary:        Converts puz files to ipuz files
BuildArch:      noarch

Requires:       crosswords
Requires:       python3
Requires:       python3dist(beautifulsoup4)
Requires:       python3dist(dateparser)
Requires:       python3dist(lxml)
Requires:       python3dist(puzpy)
Requires:       python3dist(regex)
Requires:       python3dist(requests)
Requires:       python3dist(xdfile)

%description -n ipuz-convertor
ipuz-convertor is a script to convert puzzle files from puz to ipuz.

%prep
%autosetup -p1 -n crosswords-0.3.141.6.1

# Update image references in README
mkdir images
cp -p data/images/{a-dogs-day,hero}.png images/
sed -i 's:data/images/:images/:g' README.md

# Relax lxml version pin on older releases
%if 0%{?fedora} < 42
sed -i 's:^lxml>=.*:lxml:' requirements.txt
%endif

# Generate Python dependencies for the converter
%generate_buildrequires
%pyproject_buildrequires -N requirements.txt

%build
%meson -Ddevelopment=false
%meson_build

%if %{with docs}
sphinx-build-3 docs html
rm -rf html/.{doctrees,buildinfo}
%endif

%install
%meson_install
%find_lang %{name}

%if %{with tests}
%check
%meson_test

appstream-util validate-relax --nonet \
  %{buildroot}%{_metainfodir}/org.gnome.Crosswords.metainfo.xml

desktop-file-validate \
  %{buildroot}/%{_datadir}/applications/org.gnome.Crosswords.desktop \
  %{buildroot}/%{_datadir}/applications/org.gnome.Crosswords.Editor.desktop
%endif

# TODO: remove when the 0.3.14 is out
mkdir -p %{buildroot}%{_datadir}/%{name}/word-lists

%files -f %{name}.lang
%license COPYING
%doc CONTRIBUTING.md NEWS.md README.md TODO.md images
%{_bindir}/%{name}
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/puzzle-sets
%{_datadir}/%{name}/word-lists/
%{_datadir}/applications/org.gnome.Crosswords.desktop
%{_datadir}/dbus-1/services/org.gnome.Crosswords.service
%{_datadir}/glib-2.0/schemas/org.gnome.Crosswords.gschema.xml
%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Crosswords.svg
%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Crosswords-symbolic.svg
%{_datadir}/mime/packages/org.gnome.Crosswords.xml
%{_metainfodir}/org.gnome.Crosswords.metainfo.xml

%if %{with docs}
%files doc
%license COPYING
%doc html
%endif

%files puzzle-sets-cats-and-dogs
%license COPYING
%{_datadir}/%{name}/puzzle-sets/cats-and-dogs

%files puzzle-sets-internal
%license COPYING
%{_datadir}/%{name}/puzzle-sets/*
%exclude %{_datadir}/%{name}/puzzle-sets/cats-and-dogs

%files thumbnailer
%license COPYING
%{_bindir}/%{name}-thumbnailer
%dir %{_datadir}/thumbnailers
%{_datadir}/thumbnailers/%{name}.thumbnailer

%files -n crossword-editor
%{_bindir}/crossword-editor
%{_datadir}/applications/org.gnome.Crosswords.Editor.desktop
%{_datadir}/dbus-1/services/org.gnome.Crosswords.Editor.service
%{_datadir}/glib-2.0/schemas/org.gnome.Crosswords.Editor.gschema.xml
%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Crosswords.Editor.svg
%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Crosswords.Editor-symbolic.svg
%{_metainfodir}/org.gnome.Crosswords.Editor.metainfo.xml

%files -n ipuz-convertor
%license COPYING
%{_datadir}/%{name}/ipuz-convertor
%{_libexecdir}/ipuz-convertor

%changelog
* Thu Dec 12 2024 Packit <hello@packit.dev> - 0.3.141.6.1-1.20241212162420684878.master.444.g778c0823
- Pass the WordListResource to the WordSolver (Jonathan Blandford)
- Hook up context menu to real entries (Jonathan Blandford)
- Remove the unref of the text tags (Jonathan Blandford)
- chain up to parent dispose (Jonathan Blandford)
- Remove print statements (Jonathan Blandford)
- Started adding context label to the tags (Jonathan Blandford)
- Make sure SPDX-License-Identifier is set in every C file (Jonathan Blandford)
- reset the scrollbar when updating (Jonathan Blandford)
- Add an overlay to the definition box. In particular (Jonathan Blandford)
- Modify the section to accept an array of attrlists (Jonathan Blandford)
- Add crosswords-misc.h header (Jonathan Blandford)
- Add some quick macros for doing quick-and-dirty profiling (Jonathan Blandford)
- Make the definitions textview transparent (Jonathan Blandford)
- Update tags to be more dark friendly (Jonathan Blandford)
- Look up the word when clicking on a tag in the results (Jonathan Blandford)
- Clean up eamples (Jonathan Blandford)
- Add a subtitle to the sections with some examples (Jonathan Blandford)
- This does two things simultaneously: (Jonathan Blandford)
- Update comment to indicate how to force the wrapbox code (Jonathan Blandford)
- refactor each deletions section into their own function (Jonathan Blandford)
- Swap headless and tailless visibly in the results (Jonathan Blandford)
- Add Empty pattern (Jonathan Blandford)
- Remove an overly-aggressive short-circuit (Jonathan Blandford)
- Don't add the evens to the array twice (Jonathan Blandford)
- Make strings easier for translators (Jonathan Blandford)
- Popup the words definitions in the tooltip (Jonathan Blandford)
- Add get_resource() to pair with get_resource() (Jonathan Blandford)
- use 'skip' trigraph to stop glib-mkenums from including those symbols (Jonathan Blandford)
- Bad hack to keep UI stable (Jonathan Blandford)
- Set the visibility of the alternations/deletions to require results (Jonathan Blandford)
- Clean up spacing a little (Jonathan Blandford)
- Add a prelight effect to tags (Jonathan Blandford)
- Make tags a little bigger (Jonathan Blandford)
- get headless/tailless words to fully work (Jonathan Blandford)
- Add underline attributes to the labels (Jonathan Blandford)
- Don't break the pattern (Jonathan Blandford)
- Quick hack to double up the enum with libadw 1.7 (Jonathan Blandford)
- Marks stack page titles as translatable (Jonathan Blandford)
- Qick hack to set the right labels for ADW 1.7 (Jonathan Blandford)
- Use the proper locale name (Vinson Lee)
- Use the right CSS for the header of sections (Jonathan Blandford)
- Change the font of the word tag to match "title-1" from adw CSS (Jonathan Blandford)
- Use the new section widget (Jonathan Blandford)
- New way to display the clue info tags (Jonathan Blandford)
- Switch to AdwWrapBox (Jonathan Blandford)
- Put some extra spacing between tags (Jonathan Blandford)
- remove the margin from the tag. (Jonathan Blandford)
- Add optional dependency on liabadwaita 1.7.alpha (Jonathan Blandford)
- Update build instructions: (Jonathan Blandford)
- Ignore the glib source directory, if it's downloaded (Jonathan Blandford)
- Avoid a full git checkout when doing a CI build (Jonathan Blandford)
- shhh git (Jonathan Blandford)
- small cleanups (Jonathan Blandford)
- fix link (Jonathan Blandford)
- Add a quick readme for the Wordlists (Jonathan Blandford)
- Add license file from wordnik repo (Jonathan Blandford)
- Add word-entry.md to the index (Jonathan Blandford)
- Add a missing line return (Jonathan Blandford)
- Remove duplicated prototype (Jonathan Blandford)
- Clean up documentation (Jonathan Blandford)
- Add a minimal test to keep ASAN happy (Jonathan Blandford)
- Update definition data files (Jonathan Blandford)
- Update docs to match current code (Jonathan Blandford)
- Remove libpanel wrap file. (Jonathan Blandford)
- Up libadwaita dependency (Jonathan Blandford)
- Add a vertical separator between the word and the buttons. (Jonathan Blandford)
- Shut up git (Jonathan Blandford)
- Use the meson provided wrap file instead. This should work better! (Jonathan Blandford)
- Add a subproject for gilb (Jonathan Blandford)
- Only load AdwStyleManager if we have a display (Jonathan Blandford)
- bump the glib dependency (Jonathan Blandford)
- Tweak the appearance to make it look better (Jonathan Blandford)
- Include defs with the test dictionary (Jonathan Blandford)
- remove unused test data (Jonathan Blandford)
- Change test to use a WordListResource (Jonathan Blandford)
- Remove extra print statement (Jonathan Blandford)
- Export the tags from the defs (Jonathan Blandford)
- Export the tags list from the resource (Jonathan Blandford)
- Read the tags from the new defs format (Jonathan Blandford)
- Write the tags array into the defs records (Jonathan Blandford)
- Ass the commands to create the test defs (Jonathan Blandford)
- Don't assert for a NULL filter (Jonathan Blandford)
- Update the copyright date to be the build year (Jonathan Blandford)
- Standardize our admonition format (Jonathan Blandford)
- Add a disclaimer about installing distrobox (Jonathan Blandford)
- Fix instructions to source the environment, and preserve it (Jonathan Blandford)
- Add a call to download libipuz explicitly (Jonathan Blandford)
- Only add to count if we write the entry (Jonathan Blandford)
- Add an option to work with the test-words dictionary (Jonathan Blandford)
- Add a warning if script is run without downloading the rawdata (Jonathan Blandford)
- Remove vestigal code (Jonathan Blandford)
- Pass the charset from the puzzle to edit-clue-suggestions (Jonathan Blandford)
- Remove the resource from the word-list. (Jonathan Blandford)
- Explicitly set the resource for the player (Jonathan Blandford)
- Remove direct access to the GResources from word-list-resources (Jonathan Blandford)
- change terminology to match edit-clue-suggestions (Jonathan Blandford)
- Pipe the resource all the way through suggestions (Jonathan Blandford)
- Change word-list-def to take a resource (Jonathan Blandford)
- load the correct index for the pos table (Jonathan Blandford)
- load the defs more completely into the resource (Jonathan Blandford)
- Pass the resource to ClueInfo and clueDefinitions (Jonathan Blandford)
- API to set a resource for a word_list_model (Jonathan Blandford)
- CI: Bump the container base tag (Federico Mena Quintero)
- RELEASING.md: Update with instructions for the new script (Federico Mena Quintero)
- ci/update-python-requirements: New script to generate python3-requirements.json with the special modules (Federico Mena Quintero)
- pass the word list resource into update() for EditWordList (Jonathan Blandford)
- Pass the word-list resource into update (Jonathan Blandford)
- Keep a copy of the currnet word-list resource in edit-window (Jonathan Blandford)
- Remove the signal for when the resource changed (Jonathan Blandford)
- Change word_list_set_resource to return a bool (Jonathan Blandford)
- RELEASING.md: add cheatsheet with the json for puzpy/xdfile (Federico Mena Quintero)
- Explicitly require lxml 5.3.0 or later (Federico Mena Quintero)
- Update python3-requirements.json by hand (Federico Mena Quintero)
- Add comment to requirements.txt to distinguish it from the CI's own (Federico Mena Quintero)
- CI: Put a checkout of flatpak-builder-tools in /usr/local (Federico Mena Quintero)
- CI: add requirements-parser for flatpak-builder-tools/pip (Federico Mena Quintero)
- CI: Bump the Rust stable version (Federico Mena Quintero)
- Remove word_list_set_bytes() (Jonathan Blandford)
- Use the new built gresource instead of using new_from_bytes() (Jonathan Blandford)
- Remove the gresource from the src directory (Jonathan Blandford)
- Build a test gresource as well (Jonathan Blandford)
- we were building the index for the wordnik dict from the broda files (Jonathan Blandford)
- Make this function a bit more legible (Jonathan Blandford)
- remove set_bytes() (Jonathan Blandford)
- Mid-surgery (Jonathan Blandford)
- Check for charset being NULL (Jonathan Blandford)
- Add a temporary API to get the WordListResource (Jonathan Blandford)
- Listen for changes to the current resource (Jonathan Blandford)
- Drop the internal GResource from word-list-resouces (Jonathan Blandford)
- Load a WordListResource as well as a GResource (Jonathan Blandford)
- Export the resource for now (Jonathan Blandford)
- Add the rest of the bytes from the defs (Jonathan Blandford)
- Wrap the GResource for the wordlist in its own GObject (Jonathan Blandford)
- CI: Explicitly install diffutils/less so the busybox version doesn't conflict with distrobox (Federico Mena Quintero)
- Add '?' to the list of characters we allow to add to the filter. (Jonathan Blandford)
- Add a keybinding to flip text (Jonathan Blandford)
- Add a public method to flip text (Jonathan Blandford)
- Don't switch the filter_stack when getting a new filter (Jonathan Blandford)
- Button-entry from the nautilus save dialog (Jonathan Blandford)
- Remover extraneous print statement (Jonathan Blandford)
- Remove the cursor (Jonathan Blandford)
- pass filters from the entry up to the EditWindow (Jonathan Blandford)
- Filter text to the WordList when typing in the entry (Jonathan Blandford)
- Display the number of entries we find in the Definitions tab (Jonathan Blandford)
- Add an entry to the clue suggestions (Jonathan Blandford)
- migrate suggestions into their own widget (Jonathan Blandford)
- new suggestions widget (Jonathan Blandford)
- Try a different way to get the analyzer to not complain (Jonathan Blandford)
- Avoid triggering a potential error with asan (Jonathan Blandford)
- disable test functions to avoid warnings about unused functions (Jonathan Blandford)
- Try a different way to get the analyzer to not complain (Jonathan Blandford)
- Avoid triggering a potential error with asan (Jonathan Blandford)
- disable test functions to avoid warnings about unused functions (Jonathan Blandford)
- disable tests with custom data for now (Jonathan Blandford)
- Read the frequencies from the frequency table (Jonathan Blandford)
- Write the frequency-table-offset to the index (Jonathan Blandford)
- Calculate letter frequencies and write them to the word index (Jonathan Blandford)
- disable tests with custom data for now (Jonathan Blandford)
- Add a quick sanity check to make sure we don't go negative (Jonathan Blandford)
- Read the frequencies from the frequency table (Jonathan Blandford)
- Write the frequency-table-offset to the index (Jonathan Blandford)
- Calculate letter frequencies and write them to the word index (Jonathan Blandford)
- Add a script/target for recreating the definitions (Jonathan Blandford)
- some quick docs about the wordlist (Jonathan Blandford)
- Use the new suffixes of the json/dict files (Jonathan Blandford)
- Remove print statements (Jonathan Blandford)
- Update dictionary snapshot (Jonathan Blandford)
- Fix typo (Jonathan Blandford)
- Match scored_parse_word C implementaion (Jonathan Blandford)
- Add a test for scored_parse_word (Jonathan Blandford)
- normalize the source word with NFD before uppercassing/filtering it (Jonathan Blandford)
- Fix escaping (Jonathan Blandford)
- Check in the word list index to git (Jonathan Blandford)
- Remove the dependency on building the index/json files for wordlists (Jonathan Blandford)
- Build the gresource from a wordlist-index in the SOURCE(!) directory. (Jonathan Blandford)
- Use new names for the index file (Jonathan Blandford)
- Add a run_target to rebuild the wordlist-index (Jonathan Blandford)
- Add a guard against adding too long an entry (Jonathan Blandford)
- compare the word, not the hash (Jonathan Blandford)
- Initial cut at returning a list of definitions for a filter (Jonathan Blandford)
- Move scored_parse_word to word-list-misc (Jonathan Blandford)
- Add a landing page for GitLab Pages (Federico Mena Quintero)
- We are dealing with filters and not word_strs (Jonathan Blandford)
- Rename QuickLoader to DefIndexElement (Jonathan Blandford)
- Start making this little-endian friendly (Jonathan Blandford)
- include the POS in the definition text (Jonathan Blandford)
- Parse the POS array and use it (Jonathan Blandford)
- Keep the last-loaded GBytes around (Jonathan Blandford)
- Add the enum-index to the WordList Gresource (Jonathan Blandford)
- Fix a cut-n-paste error (Jonathan Blandford)
- Hook up the edit_clue_definition to the selection changed event (Jonathan Blandford)
- Initial cut at a working Definition view (Jonathan Blandford)
- Whoops! Don't free the new def as we return it. (Jonathan Blandford)
- Remove debugging print (Jonathan Blandford)
- Add the definitions widget to the EditWindow (Jonathan Blandford)
- New widget to display definitions (Jonathan Blandford)
- shush, git (Jonathan Blandford)
- Enum that loads from the json file created by the extractor (Jonathan Blandford)
- Add initial precalculated data files (Jonathan Blandford)
- Initial implementation of `WordListDef::lookup()` (Jonathan Blandford)
- Add an extract mode to def-extractor.py (Jonathan Blandford)
- Add the definition files to the GResource (Jonathan Blandford)
- Add missing includes to word-list-resources.h (Jonathan Blandford)
- Change the name of the defs to be -defs (Jonathan Blandford)
- Print out the elapsed time of this function (Jonathan Blandford)
- Remove the enums (Jonathan Blandford)
- Use the json file to load the tags/POS entries (Jonathan Blandford)
- Dump the pos/tags enums to json instead of python enums (Jonathan Blandford)
- Rework def-extractor (Jonathan Blandford)
- Updated for wordnik (Jonathan Blandford)
- Create the gvariant index with g_str_hash, and sort it by the hash (Jonathan Blandford)
- Include a python version of djb2 hash (g_str_hash()) (Jonathan Blandford)
- Include 1 character words (Jonathan Blandford)
- Temporarily compile with -Wno-expansion-to-defined (Jonathan Blandford)
- Try bumping the flatpak runtime versions to match (Jonathan Blandford)
- Move to the latest version of GNOME (Jonathan Blandford)
- Port to AdwDialog (Jonathan Blandford)
- Port to AdwAboutDialog (Jonathan Blandford)
- Port to AdwAboutDialog (Jonathan Blandford)
- Port to AdwAboutDialog (Jonathan Blandford)
- Port to AdwAboutDialog (Jonathan Blandford)
- Port to AdwAboutDialog (Jonathan Blandford)
- Port to AdwAboutDialog (Jonathan Blandford)
- use g_sort_array() (Jonathan Blandford)
- Add the test data to git (Jonathan Blandford)
- Write a better test (Jonathan Blandford)
- Fill in the rest of the getters (Jonathan Blandford)
- Add word_list_def_print () (Jonathan Blandford)
- Remove extraneous prints (Jonathan Blandford)
- We are finally parsing an entry correctly! (Jonathan Blandford)
- Add some debugging output (Jonathan Blandford)
- Checkpoint (Jonathan Blandford)
- Initial cut at reading the definitions. Does not work yet (Jonathan Blandford)
- remove the printing of the invalid words (Jonathan Blandford)
- Update POS (Jonathan Blandford)
- Manually add the proverb pos (Jonathan Blandford)
- Create the index for the table (Jonathan Blandford)
- use a hash table of lists to store the Words in. (Jonathan Blandford)
- Import max/min_word_length and the threshold from the C file (Jonathan Blandford)
- Add comment to explain the otherwise unused call to create_entry_list() (Jonathan Blandford)
- print the word as well as assert when there's a mismatch (Jonathan Blandford)
- Use the right hash table name (Jonathan Blandford)
- Big refactor to add argument parsing (Jonathan Blandford)
- Move the gvariant dump function into its own file (Jonathan Blandford)
- use scored_parse_word() when reading from the dictionary (Jonathan Blandford)
- skip words that are invalid. eg. "7-up" (Jonathan Blandford)
- disable tags for now (Jonathan Blandford)
- Reimplement the scored_parse_word() from the C word list (Jonathan Blandford)
- Write the gvariant to a different file (Jonathan Blandford)
- add to_variant() call to Word classes (Jonathan Blandford)
- Add validate() methods to word classes. (Jonathan Blandford)
- Move the header into the sense (Jonathan Blandford)
- Checkpoint (Jonathan Blandford)
- Enums are now generated (Jonathan Blandford)
- In progress extractor. (Jonathan Blandford)
- I forget word (Jonathan Blandford)
- Update basic-types description (Jonathan Blandford)
- Move the convertor into its own subdirectory in the tools/ directory (Jonathan Blandford)
- use API for IpuzCell rather than poke the structure (Jonathan Blandford)
- Remove stray g_print (Jonathan Blandford)
- Change the game won toast to use_markup (Jonathan Blandford)
- Add the label to the clues when they're not tied to a direction (Jonathan Blandford)
- Fix Typo (Jonathan Blandford)
- Add a guard against jpz acrostic files. (Jonathan Blandford)
- Make error message a little more understandable (Jonathan Blandford)
- Add another namespace to the namespaces we support (Jonathan Blandford)
- Change the applet to also allow namespaces (Jonathan Blandford)
- use self.assert instead of manually exiting (Jonathan Blandford)
- Optionally unzip the src jpz file if it's zipped up (Jonathan Blandford)
- Link to the issue and not the design (Jonathan Blandford)
- Update startup-actions doc to add a few more possible directions (Jonathan Blandford)
- style the scorolledwindows in the sidebar explicitly (Jonathan Blandford)
- Initialize result to NULL (Jonathan Blandford)
- s/WordSolver/TaskRunner/g (Jonathan Blandford)
- remove unneeded header files (Jonathan Blandford)
- Rename get_solution to get_result (Jonathan Blandford)
- Make WordSolver generic (Jonathan Blandford)
- Rethought the initial_word_table (Jonathan Blandford)
- remove cross-thread communication info from _new() (Jonathan Blandford)
- move code to set up the run to PuzzleTask (Jonathan Blandford)
- Use PuzzleTask to clear the solution (Jonathan Blandford)
- Change word-solver-task-cell to inherit from PuzzleTask (Jonathan Blandford)
- New object to act as the base of a task (Jonathan Blandford)
- Add a comment to explain the setlocale call (Jonathan Blandford)
- Add a warning if setlocale fails (Jonathan Blandford)
- migrate to ipuz_clue_get_first_coord (Jonathan Blandford)
- ipuz_clue_get_enumeration no longer refs on return (Jonathan Blandford)
- use accessors for ipuz_clue (Jonathan Blandford)
- move to new IpuzClue API (Jonathan Blandford)
- s/get_size/get_total_count/g (Jonathan Blandford)
- Adjust to new ipuz_charset iterator functionality (Jonathan Blandford)
- migrate to ipuz_puzzle_game_won (Jonathan Blandford)
- Migrate to ipuz-grid (Jonathan Blandford)
- Acrostic: advance to the next cell using the quote clue, irrespective of the set preference (Tanmay Patil)
- migrate from ipuz_crossword_find_clue_by_* (Jonathan Blandford)
- migrate from ipuz_crossword_clue_guessed (Jonathan Blandford)
- migrate from ipuz_crossword_get_clue/guess_string_by_id (Jonathan Blandford)
- migrate from ipuz_crossword_get_id_by_clue (Jonathan Blandford)
- migrate from ipuz_clues_get_clue_by_id (Jonathan Blandford)
- migrate from ipuz_crossword_get_n_clues (Jonathan Blandford)
- migrate from ipuz_crossword_get_clues (Jonathan Blandford)
- migrate from ipuz_crossword_clue_set_get_label (Jonathan Blandford)
- migrate from ipuz_clues_clue_set_get_dir (Jonathan Blandford)
- Migrate ipuz_crossword_get_n_clue_sets to ipuzclues (Jonathan Blandford)
- Match with new libipuz acrostic api (Jonathan Blandford)
- Sync with updated libipuz changes (Jonathan Blandford)
- Always try to scroll to the row (Jonathan Blandford)
- Change ipuz-convertor to avoid failing on missing imports (Adam Fontenot)
- Add builddir = true to the json (Jonathan Blandford)
- More header updates (Jonathan Blandford)
- update headers (Jonathan Blandford)
- Reminder to update docs in RELEASING (Jonathan Blandford)
- update headers (Jonathan Blandford)
- Update doc index page (Jonathan Blandford)
- update some doc headers (Jonathan Blandford)
- go back to building with network (Jonathan Blandford)
- Include cargo-sources.json (Jonathan Blandford)
- close the preview window with esc or ctrl-w (Jonathan Blandford)
- remove selection from preview (Jonathan Blandford)
- Add an AdwHeaderBar to the window (Jonathan Blandford)
- Keep a separate state for the preview window, and pop it up on C-S-p (Jonathan Blandford)
- Refactor EditPreviewWindow (Jonathan Blandford)
- Refactor measure (Jonathan Blandford)
- Add a collapsible property to PlayXwordColumn (Jonathan Blandford)
- Fix a long-standing bug with calculating the initial x of the puzzle (Jonathan Blandford)
- Remove dispose (Jonathan Blandford)
- Set up stub for edit-preview-window (Jonathan Blandford)
- Update reflect what we are planning and include justifications (Jonathan Blandford)
- Use new tags for building (Jonathan Blandford)
- Remove skip_filled (Jonathan Blandford)
- Add explicit dependency on metainfo file meson objects and paths (Jonathan Blandford)
- Grab libipuz first (Jonathan Blandford)
- explicitly build libipuz without introspection and docs (Jonathan Blandford)
- Use the script to run tests (Jonathan Blandford)
- New script to preinstall libipuz before running tests (Jonathan Blandford)
- disable docs and gobject-introspection on the build for now (Jonathan Blandford)
- Fix edit-hero.ipuz JSON strings (Vinson Lee)
- load the url, not author (Jonathan Blandford)
- Initialize autoptr to NULL (Jonathan Blandford)
- Update RELEASING to reflect new location (Jonathan Blandford)
- Remove these two word lists (Jonathan Blandford)
- bump the CI version, which shoudl force it to rebuild (Jonathan Blandford)
- Clean up tests in meson.build (Jonathan Blandford)
- Disable the tests that run the acrostic generator (Jonathan Blandford)
- Dup the charset (Jonathan Blandford)
- Create a test generator with a custom word-list (Jonathan Blandford)
- Add a "word-list" property to AcrosticGenerator (Jonathan Blandford)
- reindent (Jonathan Blandford)
- Charset should be a boxed, not a pointer (Jonathan Blandford)
- reindent (Jonathan Blandford)
- Update tests to pass. (Jonathan Blandford)
- Install the test word list in the right place in the resource (Jonathan Blandford)
- Add four anagrams for testing purposes. (Jonathan Blandford)
- Default WordList:track-settings to FALSE (Jonathan Blandford)
- Change the built-in word-list resource to be a smaller list (Jonathan Blandford)
- Clear out the skip-list when the resource changes (Jonathan Blandford)
- use the new word-array-model (Jonathan Blandford)
- use the new word-array-model (Jonathan Blandford)
- Use the new array-word-model (Jonathan Blandford)
- split word-array-model into it's own file (Jonathan Blandford)
- cancel the autosolver when the resource changes (Jonathan Blandford)
- Update the model when the word-list source changes (Jonathan Blandford)
- Recalculate the filter after changing the word-list source (Jonathan Blandford)
- Listen to changes in the default word-list (Jonathan Blandford)
- Emit a signal when the default resource changes (Jonathan Blandford)
- Try the newest version of tubleweed (Jonathan Blandford)
- disable some gtk build options for the subprojects (Jonathan Blandford)
- Pin the wrap files to the newer required versions (Jonathan Blandford)
- Bump gtk requirements (Jonathan Blandford)
- Add default_options to libadwaita (Jonathan Blandford)
- AdwDialog is in libadwaita-1.5. Bump the version requirement (Jonathan Blandford)
- Bump the meson version requirement (Jonathan Blandford)
- Make global word-list a GObject (Jonathan Blandford)
- Revert the devel flatpak file to build with network (Jonathan Blandford)
- Revert the devel flatpak file to build with network (Jonathan Blandford)
- Fix leaks (Jonathan Blandford)
- Use the default word list from the gsetting (Jonathan Blandford)
- s/is_selected/is_default (Jonathan Blandford)
- use default values for new puzzles (Jonathan Blandford)
- Hook up default author/copyright/url to the UI (Jonathan Blandford)
- Add default author/copyright/url to the schema (Jonathan Blandford)
- Hook up radio buttons to the default word-list. (Jonathan Blandford)
- Add set_default() (Jonathan Blandford)
- update comment description (Jonathan Blandford)
- Create radio buttons for each word list (Jonathan Blandford)
- Add is_selected (Jonathan Blandford)
- Add a gsetting to keep the preferred word-list (Jonathan Blandford)
- Drop the 'word-list-' prefix for the resource files (Jonathan Blandford)
- Add new files to parse the resources from disk (Jonathan Blandford)
- Parse word-count from the index (Jonathan Blandford)
- Set a WORD_LIST_PATH env variable (Jonathan Blandford)
- Add the word count to the exported index (Jonathan Blandford)
- Pass the output directory to gen-word-list-resource (Jonathan Blandford)
- Add an autoclean function to WordListIndex (Jonathan Blandford)
- Make sure output matches target filename. (Jonathan Blandford)
- Add the index to the gresource file (Jonathan Blandford)
- Change gen-word-list to output the index json block separately (Jonathan Blandford)
- Create standalone gresource files for the word lists (Jonathan Blandford)
- Apply earlier docs (Jonathan Blandford)
- Convert to AdwPreferencesDialog (Jonathan Blandford)
- Convert to AdwPreferencesDialog (Jonathan Blandford)
- remove cell-array from libword-list (Jonathan Blandford)
- Initial stub for edit preferences dialog (Jonathan Blandford)
- Add display-name to the wordlist headers (Jonathan Blandford)
- Update doc (Jonathan Blandford)
- Match new acrostic API (Jonathan Blandford)
- s/get_info/get_puzzle_info() (Jonathan Blandford)
- Match new signature for IpuzArrowwordForeachBlocksFunc (Jonathan Blandford)
- Match new foreach signature (Jonathan Blandford)
- Match new foreach function naming and signature (Jonathan Blandford)
- Migrate to IpuzCellType (Jonathan Blandford)
- Foreach now takes a const IpuzCellCoord* (Jonathan Blandford)
- Match IpuzArrowword passing coords by reference (Jonathan Blandford)
- Migrate to IpuzGuesses passing coords by ref (Jonathan Blandford)
- Change run script to have it load the library/GI from libipuz (Jonathan Blandford)
- Move IpuzBoard to pass the coord by ref (Jonathan Blandford)
- Change libipuz calls to pass IpuzCellCoord by reference (Jonathan Blandford)
- Move IpuzClueId calls to libipuz to be by reference (Jonathan Blandford)
- use ipuz_crossword_get_id_by_clue() (Jonathan Blandford)
- Reenable network build (Jonathan Blandford)
- build: relax Python version pins in requirements.txt (Davide Cavalca)
- Great renaming (Jonathan Blandford)
- post release version bump (Jonathan Blandford)
- Update and add a warning (Jonathan Blandford)
- sync with versions from flathub (Jonathan Blandford)