summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * docs: Add documentation generation in markdown formatCarlos Garnacho2021-08-265-1/+636
| | | | | | | | | | | | This is implemented as separate code that does markdown formatting, there's probably some opportunities for subclassing and text templating, but it can be made prettier later on.
| * docs: Generalize class hierarchy creation furtherCarlos Garnacho2021-08-263-33/+56
| | | | | | | | Let the caller produce the links in the format it likes.
| * tools: Rename docgen executableCarlos Garnacho2021-08-263-4/+4
| | | | | | | | Give it a more generic name.
| * docs: Rename code fileCarlos Garnacho2021-08-264-3/+3
| | | | | | | | | | Make the code filename more consistent with the rest of the Tracker tree, and account for multiple writers in the future.
| * docs: Move all XML generation into a single fileCarlos Garnacho2021-08-264-351/+278
| | | | | | | | | | We'll want to have multiple writers, so put all XML together in a single file.
| * docs: Refactor common utils to separate fileCarlos Garnacho2021-08-264-365/+435
| | | | | | | | | | We'll want to generate different document formats, the printing of the hierarchy tree can be abstraced into a common helper.
| * docs: Rewrite data model of documentation toolCarlos Garnacho2021-08-2613-996/+881
| | | | | | | | | | | | | | | | | | | | | | | | | | Instead of parsing ontology TTL by itself, use 2 in-memory TrackerSparqlConnections for the task, one to load .description files, and another with an empty database. With these in place, the ontology is fully introspectable, we can then query these to fill in our information about the defined classes and properties. One advantage here is that we avoid purpose-specific Turtle file parsers and unify this on the sparql library.
| * docs: Build again manpages and ontology docsCarlos Garnacho2021-08-263-3/+18
| | | | | | | | Manpages aren't going anywhere, and ontology docs not yet.
| * docs: Delete gtk-doc remnantsCarlos Garnacho2021-08-264-429/+0
| | | | | | | | These files only served for gtk-doc purposes, drop them.
| * docs: Finish porting of tutorial docs to MarkdownCarlos Garnacho2021-08-263-431/+66
| |
| * docs: Drop "migrating 1.x to 2.x" docsCarlos Garnacho2021-08-261-57/+0
| | | | | | | | | | If there's anything left to be ported, perhaps it's time to admit some docs won't help it.
| * docs: Port "migrating 2.x to 3.x" to markdownCarlos Garnacho2021-08-263-201/+162
| |
| * docs: Port "examples" to markdownCarlos Garnacho2021-08-263-138/+99
| |
| * docs: Port "defining ontologies" documentation to markdownCarlos Garnacho2021-08-2622-471/+392
| |
| * docs: Port "sparql and tracker" documentation to MarkdownCarlos Garnacho2021-08-263-300/+257
| |
| * docs: Port "sparql functions" doc to markdownCarlos Garnacho2021-08-263-467/+350
| |
| * docs: Port "performance" docs to markdownCarlos Garnacho2021-08-263-142/+104
| |
| * docs: Port "implementation limits" document to markdownCarlos Garnacho2021-08-263-132/+85
| |
| * docs: Move overview to markdownCarlos Garnacho2021-08-263-89/+60
| |
| * meson: Add gi-docgen as a subprojectDaniele Nicolodi2021-08-261-0/+6
| | | | | | | | Currently this is the preferred way to integrate it with the built system.
| * docs: Generate reference manual with gi-docgenDaniele Nicolodi2021-08-266-93/+371
| |
| * meson: Adjust indentationDaniele Nicolodi2021-08-261-1/+1
|/
* Merge branch 'wip/carlosg/uri-id-lookups' into 'master'Sam Thursfield2021-08-262-3/+62
|\ | | | | | | | | libtracker-data: Ensure tracker:id/uri can only look up allowed graphs See merge request GNOME/tracker!461
| * libtracker-data: Ensure tracker:id/uri can only look up allowed graphsCarlos Garnacho2021-08-262-3/+62
|/ | | | | Check with the per-graph Refcount table whether the ROWID involved is used in any allowed graph. Return 0/null otherwise.
* Merge branch 'sam/HACKING-update' into 'master'Sam Thursfield2021-08-181-1/+1
|\ | | | | | | | | HACKING.md: Update for change in functional-tests See merge request GNOME/tracker!460
| * 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).