Skip to content

Syncing from upstream odoo/runbot (18.0-better-error-merge-xdo)#1027

Closed
bt-admin wants to merge 17 commits intobrain-tec:18.0-better-error-merge-xdofrom
odoo:18.0-better-error-merge-xdo
Closed

Syncing from upstream odoo/runbot (18.0-better-error-merge-xdo)#1027
bt-admin wants to merge 17 commits intobrain-tec:18.0-better-error-merge-xdofrom
odoo:18.0-better-error-merge-xdo

Conversation

@bt-admin
Copy link

bt_gitbot

Xavier-Do and others added 17 commits December 22, 2025 21:30
The initial way to configure upgrades was working fine and automatically
but does not alway match the reality of what should be supported.

Saying, upgrade from the last main version and last intermediate
(for 18, from 17.0 and 17.4) we may also want to test from 17.2 because
for some reason there are many people in 17.2 taht will need to upgrade
in 18.0. But the transition 17.2->17.3 doesn't make sense anymore
after a while since people will go in 18 imediatly at some point.

This matrix can be generated automatically from the parameters and new
versions should appear automatically, but it is possible to tweak the
values on demand.

[IMP] runbot: limit trigger to same category

Since only reference_batch from the same category are stored, it makes
senses to limit the complement trigger to the same category.

[IMP] runbot: use upgrade matrix

The current way to define the transition to use is made both using the
version (upgrade from, upgrade too) combined with a selection decision
on the config step (Last intermediate, all intermediate, previous major)

This doesn't allow to easily define in a major version that we
should upgrade from some specific saas version but not to specific saas

17.0 -> 18.0
17.3 -> 18.0
17.4 -> 18.0
but not 17.3->17.4

For now by default using the "last intermediate" and "previous major"
we will test

17.0->18.0
17.4->18.0
17.3->17.4
17.0->17.3
17.0->17.4

We an easily disable 'upgrade to' on 17.3 and 17.4 if this is not
support by the plaform anymore

17.0->18.0
17.4->18.0
17.0->17.4

The issue there is that the upgrade from 17.3 to 18.0 was partially
tested through 17.4, but upgrade from 17.4 is not tested at all anymore.

It is also difficult to define coherent version for all upgrades,
regarding upgrade stables (pushing in master in upgrade repo) and
upgrade to current + templates. The upgrade stable only test major
version to reduce load (7.0->18.0) but does not test 17.4->18.0 making
it possible to merge a pr that breaks the upgrade tests in stable.

This pr proposes to change that using upgrade matrixs, allowing to
define precisely the upgrade to test.

The upgrades will still be defined automatically when merging a new
branch, but can be disabled, reenabled, ..
Prepare the models for #1289

This pr contains teh changes needed for the new upgrade strategy without
any other change to the code reducing the risk to break something

Some new fiels are added, mainly upgrade_current and upgrade_from_base
to replace upgrade_current_source and upgrade_current_target with a more
understandable configuration.

Some views are adapted to reflect this changes

The compute of the fingerprint was modified to inlude upgrade related
informations in a more precise way, to make
allow_similar_build_quick_result more effective.
Since the commit [^1] deferring the loading of the runbot frontend JS
bundle, the stats page broke due to a jQuery call being made before the
actual load of the page.

This commit properly moves it in the "onload" listener.

[^1]: 9940718
This commit fxes all remaining upgrades usage to work with the upgrade
matrix and removes the old code.
When a build error has test-tags, a red ribbon is displayed but when the
user scrolls the ribbon is not visible anymore. In that case, it happens
that an error is archived while having disabling tags.

With this commit, test active field is displayed in red with a warning
sign in order to bring user attention.
Before this commit, build error's random field is recomputed on
error_content_ids change. But flagging an existing error content as
random doesn't change it (which could be useful when manually flagging
one as such). This commit adapts the dependency accordingly.

Also, it allows to manually flag tbe BuildError as random.
Before this commit, and since the update to Odoo 19.0,
click/middle-click on FrontendUrl fields in list view opened the
record's modal form view in addition to the actual link in a new tab.

This commit fixes it by stopping the event's propagation beyond the
actual `<a>` tag.

Steps to reproduce:
- open an error's form view,
- in the Error Content list view, click on the first/last seen date
- related build link opens in a new tab
=> the error's form view also opens in modal
Obvisoulsy #1312 was not enough, it was only applied on BuildErrorContent.
So it was working when all build error contents had the same version
ids or if they appeared in the right order.

With this commit, the sorting is applied on the build error computed
versions.
- Add breaking pr to the fields to merge
- Add a test
@bt-admin bt-admin deleted the branch brain-tec:18.0-better-error-merge-xdo February 16, 2026 07:52
@bt-admin bt-admin closed this Feb 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants