-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v14 - v16 splitting shopinvader module ? #1372
Comments
I agree. We should preserve the REST APIs contracts as much as we can. I understand some are impossible to preserve when moving to a SPA frontend model because they depend on the locomotive session (e.g. cart). For some we want to create a v2 because we found genuine design issues (e.g. addresses). Or provide more features and better ergonomy (e.g. async cart). But in general we must preserve compatibility for frontends, yes. Also note it is entirely possible to migrate to FastAPI while preserving frontend compatibility. That should be doable gradually. What is unclear to me is to what extent we can preserve the backend apis. |
My goal is to have lot of new v16 shiny stuff in v14 as well. If possible, I want fast api in v14. New dependency will be added to shopinvader module. There should be no breaking change in v14 , actual api will continue to work in v14. |
@sebastienbeau For sure a split would be welcome but the cost could be high. The creation of |
After thinking twice extracting "shopinvader.partner" seem to be complicated on the old V1 API, and also maybe not a good investment as if you use the V1 is mostly because you have a shop on locomitiveCMS and in that case the shopinvader.partner is required to the module will be installed I am hesitating in three direction Solution 1Having the following modules
with a script to install this module when shopinvader is updated Solution 2Having the following modules
Solution 3 Wait for V16No split is done on V14 as it can introduce some breaking change (xmlid of views, models, data will change and will required adaption in custom). Then on V16 we
On V14 if we want to use the new search-engine, we create a module "shopinvader_search_engine_futur" (or "shopinvader_search_engine_v2") that hide the "shopinvader.product/shopinvader.variant", install the required dependency and provide an helper or migrate the data, then you can uninstall shopinvader_search_engine (the shopinvader.product and shopinvader.variant will be still here but not used). |
+1 on solution 2 |
@sebastienbeau I would tend to go with 'solution 2'. The most important consideration to keep in mind is to have a symmetry in the module naming of actual shopinvader addon between 14 and 16 (at least for the maximum of addons) to ease the back/forward port. |
At first glance I tend to go w/ option 2 but is not clear what would be moved to In general, to introduce this in v14, it's really critical to maintain full backward compat. How you say in French: "ça va sans dire" 😉 And possibly having 2 api versions working at the same time (eg: using
This will likely be more problematic. We could probably wrap the backend api w/ a component or other tool so that both versions can use the same high level api seamlessly. |
I also tend to go to solution 2 as it allow us to have the "same" code and module on V14 and V16 so backport forwardport will be easier. I will put somebody from Akretion on this split. |
TODO list
components
models
data
demo (do in last, maybe too many impact on test)
views
services
wizard
tests
Binding the product in the common test will be useless (base module do not have restriction anymore)
When test are green
|
Work in progress here : https://github.com/shopinvader/odoo-shopinvader/pull/1382/files |
Migration of |
There hasn't been any activity on this issue in the past 6 months, so it has been marked as stale and it will be closed automatically if no further activity occurs in the next 30 days. |
In V16 a lot of change have been started (new api based on fastapi, huge refactor on search engine....).
A lot of change are breaking change, but as customer can change their odoo version without migrating the shop at the same time. The old API must be installable on V16.
In order to make it possible here is the plan :
Regarding the API
Regarding the product sync with search engine
On V16 the concept of binding is removed (no more shopinvader.product/shopinvader.variant)
On V14 we must split the shopinvader module in several module:
The migration script will automatically install the module (shopinvader_product and shopinvader_partner) when upgrading shopinvader module
Dependency of shopinvader addons that need the "shopinvader.product/variant/partner" will depend on the related modules
By doing this we do two thing:
@hparfr @lmignon @simahawk @sbidoul it's ok for you ?
The text was updated successfully, but these errors were encountered: