Commit Graph

166 Commits

Author SHA1 Message Date
Klaas van Schelven a5401414db Fix deprecationwarnings (about Django 5.0) in the tests
by changing an import
2025-04-26 10:52:04 +02:00
Klaas van Schelven dd339f73de One more fix for psycopg<3.0.17
see ce9d0e4941
2025-04-14 11:49:41 +02:00
Klaas van Schelven ce9d0e4941 Fix for psycopg<3.0.17 2025-04-14 11:29:12 +02:00
Klaas van Schelven 712eb63faa Merge pull request #80 from bugsink/sourcemaps-spike
Sourcemaps: first version
2025-04-14 11:08:19 +02:00
Klaas van Schelven f95927ffd6 annotate_with_meta: add a case for (typically Filtered) string 2025-04-11 22:40:51 +02:00
Klaas van Schelven 87130043e3 PoC of using sourcemaps in the UI
See #19
2025-04-10 15:52:34 +02:00
Klaas van Schelven a097e25310 issue.stored_event_count: consequences for 'irrelevance'
document & assert
2025-03-31 15:25:59 +02:00
Klaas van Schelven 9b1911aded Fix issue.stored_event_count for eviction/retention 2025-03-31 14:51:58 +02:00
Klaas van Schelven 3c35ea5398 Eviction: note on newest-first behavior 2025-03-19 16:00:38 +01:00
Klaas van Schelven 6948f3a2e1 Dead code removal
'allowed as pass-in' but in fact we always pass-in
2025-03-19 15:53:51 +01:00
Klaas van Schelven 72ab0c68ef Log message: no need to mention 'include_never_evict'
because when you reach that point, it's always True
2025-03-19 15:43:05 +01:00
Klaas van Schelven a2f3ad900b eviction-target not reached handling changes
this error has shown up for one of our users; I can't reproduce yet, but I can
make it better:

* log-don't-crash: not worth failing for this (drops the event, and also
  rolls back the transaction such that nothing is achieved regarding eviction)
* provide more info on-error (various counts)

NB: I've also changed the < into a <=, and combined it with a check on "loop
not done". I _think_ they are functionally equivalent, and that the new version
is simply more clear as well as slightly more efficient.

In my understanding: the old version simply looped one more time before giving
up (because it was < it needed one more iteration, and because there was no
explicit check on 'loop done' that inefficiency was needed in the old formulation).
I say "I think" because I don't have a test specific to the edge-case.
2025-03-19 15:32:39 +01:00
Klaas van Schelven fc4aae2dea Retention tests: hit even more edge-cases 2025-03-19 14:49:29 +01:00
Klaas van Schelven 1d0c0c65ff Retention tests/clarification: filter_for_work 2025-03-19 14:33:00 +01:00
Klaas van Schelven d3c6627556 Add a more complicated case to the retention tests
this one tests at least multiple epochs and irrelevances
2025-03-19 14:18:28 +01:00
Klaas van Schelven 1b7865d3b9 Eviction: Tests and rewrite-for-understanding of epoch_bounds_with_irrelevance 2025-03-19 11:56:55 +01:00
Klaas van Schelven f548eab778 Merge branch 'main' into tag-search 2025-03-10 09:09:40 +01:00
Klaas van Schelven 4b079487ca make_consistent: explain the use of 'dangling fk cleanup' 2025-03-07 16:36:10 +01:00
Klaas van Schelven 0ade3c0f86 Add a comment about DB-CASCADE 2025-03-07 16:35:36 +01:00
Klaas van Schelven 24b0c32281 make_consistent: tag-related models added 2025-03-07 13:57:22 +01:00
Klaas van Schelven 96e07c4dc3 Tags: delete EventTag when Events are evicted
and document related things
2025-03-07 13:50:10 +01:00
Klaas van Schelven 97f03a8951 Rewrite 'eviction_target' comment 2025-03-06 14:03:51 +01:00
Klaas van Schelven f76d3f4f40 Merge branch 'main' into tag-search 2025-03-05 16:05:17 +01:00
Klaas van Schelven f25d693804 Add postgres to GitHub CI
A first step towards (experimental) postgres support, see #21
2025-03-05 12:20:51 +01:00
Klaas van Schelven b98c1d4f44 MySQL recover from IntegrityError
as we do for the sqlite case

the need for this was revealed by running the testsuite against mysql
2025-03-05 11:04:41 +01:00
Klaas van Schelven 4cde74d7cb Event search: first version 2025-03-04 13:51:56 +01:00
Klaas van Schelven a00a815261 Merge branch 'main' into tag-search 2025-03-03 15:02:13 +01:00
Klaas van Schelven c8ecf508de Tags: on event details page show calculated tags
(not just the explicitly provided ones)
2025-03-03 11:29:07 +01:00
Klaas van Schelven adf92f6b1b make_consistent: update has_releases when needed
See #50
2025-03-03 09:06:31 +01:00
Klaas van Schelven e10c1bf7ca Remove 'store_events' command
this command to store all events on the local filesystem was useful
while 'scaffolding'; getting my hands on some initial event-data in
the early days of Bugsink, but it was never meant as a permanent tool
2025-02-27 15:14:05 +01:00
Klaas van Schelven 7a19e2d277 Tags; deducing tags; search on tags; WIP 2025-02-27 13:12:49 +01:00
Klaas van Schelven 4b7ed8f4ec Rename get_contexts_enriched_with_ua
more closely match what's going on
2025-02-26 18:20:52 +01:00
Klaas van Schelven 073bc7aaec make_consistent: add --dry-run 2025-02-19 12:06:16 +01:00
Klaas van Schelven f4250d2db8 make_consistent: document possible way forward 2025-02-19 11:56:21 +01:00
Klaas van Schelven 92425890cd make_consistent: take 'points to missing' into account while deleting
also: switch a number of deletions from in-the-loop deletions to
delete-using-sql.
2025-02-19 11:42:44 +01:00
Klaas van Schelven 14bc3688c7 retention: deletion counts, more defensive idiom
the dict as returned by Django won't contain 'events.Event' if none are deleted;
no observed bug for this line, but good measure to fix it anyway
2025-02-17 21:36:08 +01:00
Klaas van Schelven 3a1fe9acec allow long-running queries on 'nuke' and 'make_consistent' 2025-02-17 21:32:39 +01:00
Klaas van Schelven 5766fb8485 Make_consistent: run in a transaction
'Nice consistency you got here. Be a shame if anything happened to it.'
2025-02-17 21:11:44 +01:00
Klaas van Schelven e37274c9aa nuke_events: improvements
* better name
* better confirmation box
* more complete deletion (turning points, groupings)
* run in transaction
2025-02-17 21:00:12 +01:00
Klaas van Schelven b4bf6d01c3 Make import lazy for performance reasons ('cold start') 2025-02-17 13:31:03 +01:00
Klaas van Schelven d3342f2671 Rename to event-storage for consistency 2025-02-14 17:08:04 +01:00
Klaas van Schelven 212882e65d Add cleanup_eventstorage command 2025-02-14 17:06:56 +01:00
Klaas van Schelven bfd6610f83 Add migrate_to_current_eventstore command 2025-02-14 14:34:29 +01:00
Klaas van Schelven 3ccef7fd50 FileEventStorage: create dir on-demand; fix and add tests 2025-02-12 21:19:18 +01:00
Klaas van Schelven 5559fba754 Introduce FileEventStorage
An (optional) way to store the `event_data` (full event as JSON)
outside the DB. This is expected to be useful for larger setups,
because it gives you:

* A more portable database (e.g. backups); (depeding on event size
  the impact on your DB is ~50x.
* Less worries about hitting "physical" limits (e.g. disk size, max
  file size) for your DB.

Presumably (more testing will happen going forwards) it will:

* Speed up migrations (especially on sqlite, which does full table
  copies)
* Speed up event ingestion(?)

Further improvements in this commit:

* `delete_with_limit` was removed; this removes one tie-in to MySQL/Sqlite
    (See #21 for this bullet)
2025-02-12 17:11:24 +01:00
Klaas van Schelven 4921f5a05d Remove retention/eviction test-scripts
we've been having 'the real thing' for a while, no more need for
'scaffolding'
2025-02-12 09:55:28 +01:00
Klaas van Schelven b3eb5acc04 Retention/eviction: add a minimal test 2025-02-12 09:53:36 +01:00
Klaas van Schelven 9f61602fc1 Retention, internal: make max_event_count non-optional
It was optional in anticipation of other methods of eviction, but YAGNI,
and the idea of evicting in batches of 500 is baked in quite hard (for
good reasons).
2025-02-12 09:00:12 +01:00
Klaas van Schelven 14d8e9e2fb Fix: remove missed line
Should have been removed in cc861c8ba3
2025-02-11 11:00:23 +01:00
Klaas van Schelven cc861c8ba3 Remove 2 fields that were "temporary [..] to get a sense of the shape of the data 2025-02-09 21:12:25 +01:00