nautilus:sam/tag-manager-test

Last commit made on 2020-05-11
Get this branch:
git clone -b sam/tag-manager-test https://git.launchpad.net/nautilus

Branch merges

Branch information

Name:
sam/tag-manager-test
Repository:
lp:nautilus

Recent commits

220e14a... by Sam Thursfield <email address hidden>

Add test for starred files feature

I'm using to test that my re-implementation of NautilusTagManager
works as expected.

It brings in quite a lot of helper code to deal with Tracker and it
depends on the currentrly unmerged [FilesProcessed signal]
(https://gitlab.gnome.org/GNOME/tracker-miners/-/merge_requests/192).

0a91cd7... by Sam Thursfield <email address hidden>

flatpak: Build tracker-miners inside the Flatpak

This is needed so that the org.freedesktop.Tracker3.Miner.Files settings
schema is available, and so that the tests that depend on Tracker can
pass as part of the CI build.

8ee7594... by Sam Thursfield <email address hidden>

flatpak: Allow Tracker 3 busnames

This is temporary. Nautilus should use the Tracker portal when it's
ready (see
https://gitlab.gnome.org/GNOME/tracker/-/merge_requests/180).

7a7d698... by Sam Thursfield <email address hidden>

flatpak: Use Tracker from GNOME Flatpak SDK

Tracker 3 is provded in the Flatpak SDK, see
https://gitlab.gnome.org/GNOME/gnome-build-meta/-/merge_requests/630.

cc79656... by Sam Thursfield <email address hidden>

tag-manager: Store starred files in a private database

Until now, starred file information was stored in the tracker-miner-fs
database. This has some downsides, firstly the data is deleted if
someone runs `tracker reset --hard`, secondly it isn't possible to
do this from inside a Flatpak sandbox with Tracker 3.0.

This commit changes the NautilusTagManager to set up a private
database inside XDG_DATA_HOME/nautilus/tags. This stores the starred
file information. The database is managed with Tracker, which allows us
to continue using the rename-tracking that tracker-miner-fs provides.
The same limitations apply as before that only files in indexed
locations can be starred.

fedff50... by Sam Thursfield <email address hidden>

tag-manager: Update to use TrackerSparqlStatement

In some cases we can TrackerSparqlStatement to avoid building queries
with printf(). This approach is also faster for local connections.

d8eeaa3... by Sam Thursfield <email address hidden>

Port to Tracker 3

Mostly the port is straightforward, we connect to tracker-miner-fs
explicitly over D-Bus instead of the centralized tracker-store daemon
we connected to previously.

The search-engine-tracker test is now isolated from the user's real
Tracker index using the `tracker-sandbox` script provided by Tracker.

There are more changes in nautilus-tag-manager.c because the
TrackerNotifier API changed, it no longer queries the URIs for
us so we need to query these ourselves, and maintain a table
of ID->URI mappings in addition to the URI->ID mapping that we
already maintained.

aaa8cc4... by Sam Thursfield <email address hidden>

Add NAUTILUS_DEBUG=TagManager flag

2dc1782... by Sam Thursfield <email address hidden>

tests: Make Tracker search test return error code on failure

Previously the test could appear to succeed even if the search
didn't work as expected.

17d5519... by Sam Thursfield <email address hidden>

build: Set NAUTILUS_DATADIR correctly