Name:
[FWD] forward-port 8 commits from 17.0 (c676d5a..2fe943f)
State:
Killed
finished in 154m
PR State:
merged
PR Author:
David Tran
PR Author Email:
PR:
#663
Committer:
David Tran
Committer Email:
davidtran.hp@gmail.com
Commit:
1395addeb867254034d07a1dba3cc9d54635783e
Description:
[FWD] forward-port 17.0 -> 18.0 (c676d5a..2fe943f, 8 commits)
Single merge of origin/17.0 into 18.0. Every source commit enters the DAG with
its own SHA intact, so the merge-base advances to 17.0's tip and none of these
conflicts is ever re-resolved on a future run.
Ported: 6aef9e0 8069ccc 221946b 4c0d67c f35f41c 0d6646d 33a11ec 2fe943f
FOUR THINGS WOULD HAVE MERGED GREEN AND BEEN WRONG AT 18.0. Each is invisible
in the diff, so they are named here.
1. 221946b's guard is deliberately NOT taken. Source gates _loadDefaultApp on
registry.category("actions").contains("apps_menu"). At 18.0 the action
registers under the tag "menu", so that condition is permanently false and
would have silently disabled the apps-menu redirect for every user. The
target already reaches the same no-throw outcome via its session marker.
2. 4c0d67c's isCheck does not exist at 18.0. The tour engine was rewritten;
StepSchema declares no isCheck and validates through Owl validate(). `run` is
optional-typed, so an explicit undefined is not the same as absent - the key
is deleted, not set.
3. The AppsMenu tests are re-implemented on Hoot, not ported. 18.0 replaced
QUnit and all three of this module's suites imported a helper 18.0 core does
not ship - they were already dead on this branch. 18.0 also passes a BARE
STRING to doAction("menu"), so a literal port of `step(`do-action:${action.tag}`)`
reads .tag off a string, records "do-action:undefined", and passes while
asserting nothing. The new tests step on the argument itself.
4. One CSS reset was not enough. 17.0 had one test page; 18.0 runs two. Both
resets are declared under web.tests_assets AND web.assets_unit_tests.
EVIDENCE. A/B on this tree - identical suite, brand absent from the addons path
vs brand installed with the resets absent - returned 0 failures against 28, all
pixel-geometry (11x column_widths, 4x daterange, 1x datetime, draggable,
scroller, nested_sortable, 7x html_editor, 1x mail). With the resets in place
that drops to 6, all in @html_editor/*. The 17.0 runbot ids and counts were
deliberately not carried into the code - 18.0's suite has different names and
numbers, and quoting the old ones would be fabricated evidence.
Also verified on a live 18.0 build rooted on this tree: 10/10 new Hoot tests
pass, 26/26 Python tests pass across the four modules, and
WebSuite.test_check_suite now passes - it was erroring on 18.0 before this work,
which is what 2fe943f fixes.
TWO CHANGES BEYOND THE EIGHT COMMITS, both deliberate:
- viin_brand_website's x_icon QWeb override is removed and replaced by a
data-level default on website.favicon. The override was a position="replace"
that, because locate_node resolves an xpath to the first document-order match,
destroyed website's own favicon producer - so a customer who configured a
favicon could never serve it. Removing it alone would have left new websites
unbranded, so the brand image is now the field's default instead: branded out
of the box, and the customer's own value survives once set.
- Three local fixes were needed to make the ported tests actually run at 18.0:
defineMailModels() for mail's mock models, componentEnv for env.config on a
direct mount, and /web/offline -> /odoo/offline after core's route rename.
KNOWN GAPS, not hidden: the design doc's test_asset_isolation.py leak-guard was
not written; 6 @html_editor failures remain (brand-caused, pre-existing on 18.0,
outside what the 17.0 commits addressed); test_qunit_desktop fails on
viin_web_gantt, a module in a different repo; the colorpicker tour was adapted
statically and not executed; cluster-wide acceptance was not run.
Branch:
18.0
Age:
Up-time: