runbot/forwardport
Xavier Morel f367a64481 [IMP] *: trigger-ify merge cron
The merge cron is the one in charge of checking staging state and
either integrating the staging into the reference branch (if
successful) or cancelling the staging (if failed).

The most obvious trigger for the merge cron is a change in staging
state from the states computation (transition from pending to either
success or failure). Explicitly cancelling / failing a staging marks
it as inactive so the merge cron isn't actually needed.

However an other major trigger is *timeout*, which doesn't have a
trivial signal. Instead, it needs to be hooked on the `timeout_limit`,
and has to be re-triggered at every update to the `timeout_limit`,
which in normal operations is mostly from "pending" statuses bumping
the timeout limit. In that case, `_trigger` to the `timeout_limit` as
that's where / when we expect a status change.

Worst case scenario with this is we have parasitic wakeups of this
cron, but having half a dozen wakeups unnecessary wakeups in an hour
is still probably better than having a wakeup every minute.
2024-08-02 15:14:50 +02:00
..
changelog [ADD] *: changelog entries I forgot 2023-08-14 09:28:19 +02:00
data [IMP] *: trigger-ify task queue type crons 2024-08-02 15:14:50 +02:00
migrations [CHG] *: rewrite commands set, rework status management 2024-05-23 07:58:46 +02:00
models [IMP] *: trigger-ify task queue type crons 2024-08-02 15:14:50 +02:00
tests [IMP] *: trigger-ify merge cron 2024-08-02 15:14:50 +02:00
__init__.py [ADD] mergebot, forwardbot: changelog 2021-10-20 15:16:48 +02:00
__manifest__.py [CHG] *: rewrite commands set, rework status management 2024-05-23 07:58:46 +02:00
controllers.py [FIX] forwardport: count next to users should be the fwport 2024-06-28 08:18:34 +02:00