summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* HACKING.md: Update for change in functional-testssam/HACKING-updateSam Thursfield2021-08-181-1/+1
|
* Merge branch 'prevent_saving_half_completed_db' into 'master'Sam Thursfield2021-08-1215-119/+664
|\ | | | | | | | | Ignore saving half completed db See merge request GNOME/tracker!457
| * ontolog-changes.py: mark some tests as expected failureAbanoub Ghadban2021-08-101-6/+16
| | | | | | | | Replaced @ut.skip() by @ut.expectedFailure notation for tests that are not supported by tracker yet.
| * ontology-changes.py: prevent some tests from being skippedAbanoub Ghadban2021-08-101-4/+3
| | | | | | | | | | There were some tests that were skipped in ontology-changes.py file (most likely because tracker was not support them when they are written). The @ut.skip notation is removed from the tests that are supported by tracker now.
| * add a test case for ontology rollback on failureAbanoub Ghadban2021-08-1010-0/+529
| | | | | | | | | | | | | | The test case works by trying to create a database with a malformed ontology. Hence, the connection is expected to fail and no database is created. Then, a new connection is created with a valid ontology. Hence, we ensure that the database is build correctly and it is not affected by the malformed ontology. The next step is trying to update the ontology using another malformed ontology. It is expected to fail and the db is rolled back to its previous consistent state. Finally, the database is updated using a valid ontology and we make sure that it is updated successfully without being affected by the malformed ontology update.
| * update ontology last modified field inside the ontology transactionAbanoub Ghadban2021-08-101-7/+7
| |
| * propagate errors that happen while updating an existing db schemaAbanoub Ghadban2021-08-101-77/+50
| | | | | | | | | | If an error happens while updating the existing ontologies, all changes that applied on the db schema will be rolled back and an error will propagate to the connection method. The old behavior was showing warnings, applying some changes and discarding other changes.
| * delete the half-completed db if the db creation failedAbanoub Ghadban2021-08-103-7/+38
| | | | | | | | Prevents saving half completed database when the error happens while creating the database for the first time.
| * tracker-db-manager: add "first_time" fieldAbanoub Ghadban2021-08-064-19/+22
| | | | | | | | | | | | Adds "first_time" field to TrackerDBManager class. Removes "first_time" argument from tracker_db_manager_new() as we can access it through tracker_db_manager_is_first_time() Later, the first_time field will be checked before deleting the newly created db when error occures during the creation process
* | Merge branch 'wip/carlosg/fix-build-as-subproject' into 'master'Carlos Garnacho2021-08-042-2/+2
|\ \ | | | | | | | | | | | | libtracker-sparql: Check for the correct build CWD as subproject See merge request GNOME/tracker!458
| * | libtracker-sparql: Check for the correct build CWD as subprojectCarlos Garnacho2021-08-042-2/+2
|/ / | | | | | | | | | | | | | | | | | | When building Tracker as a subproject, the CWD at build time is still that of the root project. We want to check this, instead of the subproject build root. This makes the remote module correctly detected in the build dir when building Tracker as a subproject (as it happens in tracker-miners CI).
* | Merge branch 'wip/carlosg/two-spoonfuls-of-soup' into 'master'Sam Thursfield2021-07-297-55/+195
|\ \ | |/ | | | | | | | | | | libtracker-sparql: Allow building against multiple versions of libsoup Closes #320 See merge request GNOME/tracker!456
| * libtracker-sparql: Allow building against multiple versions of libsoupCarlos Garnacho2021-07-287-55/+195
|/ | | | | | | | | | | | | | | | Tracker is an innocent bystander hindering libsoup3 port, since the libsoup2/3->tracker->gtk3 dependency chain imposes a libsoup version, graphical applications using libsoup cannot port at their own pace. Make our remote code (connection & endpoint) be a private module that is built against both versions of libsoup (if found), then we pick one at runtime, with a preference on libsoup3 if libsoup2 .so file is not seen in the already loaded libraries. This patch should be reverted ASAP, once we can consider libsoup2 deprecated. Fixes: https://gitlab.gnome.org/GNOME/tracker/-/issues/320
* Merge branch 'sam/devel-cleanup' into 'master'Sam Thursfield2021-07-222-2/+1
|\ | | | | | | | | Remove dependency on GModule See merge request GNOME/tracker!454
| * Remove dependency on GModuleSam Thursfield2021-07-222-2/+1
|/ | | | | | This was used by tracker-extract which no longer lives in this repo. https://gitlab.gnome.org/GNOME/tracker/-/issues/313
* Merge branch 'abderrahim/soup3' into 'master'Carlos Garnacho2021-07-221-1/+0
|\ | | | | | | | | meson.build: fix building with libsoup3 See merge request GNOME/tracker!453
| * meson.build: fix building with libsoup3Abderrahim Kitouni2021-07-221-1/+0
|/ | | | currently it requires soup2 to be installed even if building against soup3
* Merge branch 'wip/carlosg/check-style-fixes' into 'master'Sam Thursfield2021-07-171-4/+7
|\ | | | | | | | | Check style fixes. See merge request GNOME/tracker!451
| * check-style: Separate uncrustify.cfg file location to a variableCarlos Garnacho2021-07-131-1/+4
| | | | | | | | So it's more easily visible.
| * check-style: Ignore chunks that only contain deleted codeCarlos Garnacho2021-07-131-1/+1
| | | | | | | | These have no code style to check.
| * check-style: Fix off-by-one errorCarlos Garnacho2021-07-131-1/+1
| | | | | | | | | | | | Checking the end line, we should account that the whole chunk was already displaced by the code comment that turns uncrustify on, so we are off by one here.
| * check-style: Remove all context from diffsCarlos Garnacho2021-07-131-1/+1
| | | | | | | | | | | | | | This avoids setting the uncrustify on/off code comments in the middle of surrounding code, and maybe breaking their style on the way. Reducing the context to 0 ensures these are right at the start and end lines of the function.
* | Merge branch 'wip/carlosg/test-error-fixes' into 'master'Sam Thursfield2021-07-178-16/+61
|\ \ | |/ |/| | | | | | | | | Improve handling of consecutive single-valued property changes in the same batch Closes tracker-miners#179 See merge request GNOME/tracker!450
| * libtracker-data: Ensure to synchronize cached values after deleteCarlos Garnacho2021-07-131-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In these paths of TrackerResource insertion handling for single valued properties, we schedule property deletion, but don't synchronize the cache here. Clear the value array contents so future checks match. This is the most direct cause of the warning seen at https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/179, there is a double CREATED event emission going on there, that due to non-atomicity in the file creation operation has those TrackerResources disagreeing in the nfo:fileSize for the file. Being those 2 tracker_resource_set_*() operations, we schedule prior deletes, but at the time of handling the second nfo:fileSize we'd still be thinking there was a value left in the array, due to the lack of sync. Fixes: https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/179
| * libtracker-data: Check for already visited properties during flushCarlos Garnacho2021-07-131-5/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to TrackerResource insertion trying to avoid too frequent flushing, we might end up with a single batch containing multiple single-valued property delete+insert changes for the same resource/property. These currently fail with "multiple values for single-valued property" errors but that will be fixed in a followup commit. If these got through, we would want to avoid telling SQLite about these properties several times, e.g.: INSERT OR REPLACE INTO ... (ID, "nfo:fileSize", "nfo:fileSize") Since what happens then is unspecified (SQLite chooses to honor the first value and ignore the second). To fix this, check the already visited properties when generating the INSERT/UPDATE statement for single-valued properties in a class table, and ensure we stick to the last given value. This avoids having to prematurely flush just to keep these two changes separate, and coalesces things the right way (i.e. we end up with the good, last value).
| * libtracker-sparql: Add early cancellation check on query tasksCarlos Garnacho2021-07-131-0/+3
| | | | | | | | | | In the direct connection, add an early check for the task being cancelled by the time it's going to be executed.
| * libtracker-data: Propagate error on queries executed while closingCarlos Garnacho2021-07-131-0/+8
| | | | | | | | | | If the data manager is being closed, that will lead to crashes, propagate an error instead. Crash seen occasionally running tracker-miner-fs-test.
| * libtracker-data: Make get_db_interface() return a GErrorCarlos Garnacho2021-07-136-11/+20
|/ | | | | This is a failable operation, so add a GError parameter and propagate errors happening inside instead of warning in place.
* Merge branch 'make_ontology_parsing_warnings_clearer' into 'master'Sam Thursfield2021-07-1211-14/+285
|\ | | | | | | | | Track current line and column numbers and handle missing prefix error See merge request GNOME/tracker!447
| * test-movie.ttl: fixed missing prefix errorAbanoub Ghadban2021-07-121-0/+1
| |
| * add test cases for ontology errorAbanoub Ghadban2021-07-128-0/+205
| |
| * tracker-data-manager.c: propagate error occurs while parsing the ontology fileAbanoub Ghadban2021-07-121-2/+2
| |
| * tracker-turtle-reader.c: add error parameter to expand_prefixAbanoub Ghadban2021-07-121-4/+22
| | | | | | | | It propagates an error from the expand_prefix function if the prefix is not found.
| * tracker-turtle-reader.c: track current line and column numbersAbanoub Ghadban2021-07-121-8/+55
| | | | | | | | | | | | | | | | Add the functionality of tracking the current line and column numbers of the turtle file being parsed. These numbers will be used to specify the location of the parsing warning or error when happen. The seek_input() function is added, so it can be used to advance in the ontology file. Each time a token is parsed, the seek_input() function is called to skip the parsed token. It counts the number of characters and new lines in the parsed token and it update the current line and column numbers according to them.
* | Merge branch 'fix_style_issue' into 'master'Sam Thursfield2021-07-062-13/+13
|\ \ | | | | | | | | | | | | Fix style issue See merge request GNOME/tracker!449
| * | tracker-data-manager.c: fix style issueAbanoub Ghadban2021-07-051-11/+11
| | |
| * | tracker-turtle-reader.c: fix style issueAbanoub Ghadban2021-07-051-2/+2
| |/
* | Merge branch 'wip/carlosg/portal-test-timeouts' into 'master'Sam Thursfield2021-07-062-0/+2
|\ \ | |/ |/| | | | | | | | | tests: Disable GVFS in functional tests Closes #314 See merge request GNOME/tracker!448
| * libtracker-data: Plug memory leakCarlos Garnacho2021-07-061-0/+1
| | | | | | | | | | We get a new reference to the GDBusConnection here, so it should be unref() after use.
| * tests: Disable GVFS in functional testsCarlos Garnacho2021-07-051-0/+1
|/ | | | | | | | | | | | | | | | On some of these tests, we create a per-testcase dbus environment, thus rely on g_bus_get*() default connections to be correctly tear down and created again for the next testcase. GVFS does not seem to play along with this, and keeps the default GDBusConnections alive between runs. This may fail with "Connection already closed" if we attempted to get a default session/system bus on later testcases, since the dbus daemon is actually tear down. We actually don't need to pull GVFS here at all, so disable it for our testcases to tiptoe the issue. Fixes: https://gitlab.gnome.org/GNOME/tracker/-/issues/314
* Update Russian translationAlexey Rubtsov2021-07-021-1473/+1227
|
* Merge branch 'sam/ci-docs' into 'master'Sam Thursfield2021-06-282-0/+6
|\ | | | | | | | | | | | | ci: Build documentation when testing Closes #310 See merge request GNOME/tracker!434
| * ci: Build documentation when testingsam/ci-docsSam Thursfield2021-06-281-0/+4
| | | | | | | | | | | | | | | | Fixes https://gitlab.gnome.org/GNOME/tracker/-/issues/310 We avoid building the docs on Alpine Linux as that doesn't work, probably due to missing dependencies. See an example in: https://gitlab.gnome.org/GNOME/tracker/-/jobs/1322163
| * build: Show documentation enabled/disabled state in summarySam Thursfield2021-06-221-0/+2
| |
* | Merge branch 'wip/carlosg/libtracker-data-readme' into 'master'Sam Thursfield2021-06-281-0/+402
|\ \ | | | | | | | | | | | | libtracker-data: Add README about libtracker-data internals See merge request GNOME/tracker!436
| * | libtracker-data: Add README about libtracker-data internalsCarlos Garnacho2021-06-271-0/+402
|/ / | | | | | | | | Add some current (so far!) documentation about implementation details and design choices.
* | Merge branch 'fix-website-links' into 'master'Sam Thursfield2021-06-251-0/+1
|\ \ | | | | | | | | | | | | | | | | | | docs: fix broken links in website Closes #317 See merge request GNOME/tracker!446
| * | docs: fix broken links in websiteNishit Patel2021-06-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | directory urls no longer work by default, and `site_urls` config option has be made compulsory config option, since version 1.2 of Mkdocs and if `site_urls` option is not defined then `use_directory_urls` is set to false leading to broken links Mkdocs Release Notes: https://www.mkdocs.org/about/release-notes/#backward-incompatible-changes-in-12 Fixes: #317
* | | Merge branch 'wip/carlosg/code-style-checks' into 'master'Sam Thursfield2021-06-223-5/+268
|\ \ \ | | | | | | | | | | | | | | | | Add script to do code style checks See merge request GNOME/tracker!442
| * | | ci: Check code style in merge request changesCarlos Garnacho2021-06-171-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the new check-style script to check the code style for all changes in a merge request, in order to suggest changes to conform to it. However, allow these checks to fail, so they are more of a hint while the uncrustify configuration is tested to be correct, we decide to enforce the style, etc. As the script requires uncrustify, ensure it's installed in the Fedora image, and use it to run the check.