Merged
Conversation
Module listing all modules belonging to an Odoo project by leveraging the data provided by 'odoo_repository'.
This new data model is here to distinguish available upstream modules and installed modules in a project. It inherits from `odoo.module.branch` so it has access to all its data, but is linked to an `odoo.project` and has its own `installed_version` so it becomes easy to find modules that could be upgraded within a project.
New boolean field on installed modules to tell if some migration scripts have to be played between the installed version and the latest version available.
This allows to declare projects not yet live for instance, by listing only modules we would like to install in it.
This allows to get figures from projects before actually launching them (gap analysis...), or to study a project to recover from another Odoo integrator for instance.
RepositoryScanner jobs could be quite long to execute on a repository (like 'odoo/odoo'), and depending on your Odoo config or your monitoring tools, such job could get killed before it ends up its work. While there is no issue to get the RepositoryScanner job killed and restarted later, it'll re-analyze the branch to scan to detect again the modules it has to scan, and this process itself could take ages before it re-starts the scan of the modules themselves. This commit is splitting these two tasks: - one job to detect modules to scan for a given repository/branch - one job created for each module to scan All of these jobs are depending on each other so we ensure that they are run sequentially (one branch after another, and one module after another) so only one job is running for a given repository at a time. We also ensure that no more than one job can be spawned by the user from UI. This results in a higher number of jobs, but scanning can be recovered easily.
This change allows to get a module `x` present in different
repositories (unicity constraint on `odoo.module.branch` has changed
accordingly). This is useful in case two projects have `x` installed but
the code of these modules (that can be different) are hosted in their
own project repository.
Therefore, the scan of repositories and project modules import have been
adapted to fullfil this new possibility.
Features:
- allows multiple instances of `<odoo.module.branch>` records
sharing the same module technical name and branch but belonging to
different repositories,
- repositories have now a new `specific` flag, propagated to their
modules.. By default they host generic modules, but project repositories
will host specific modules that cannot be shared to other projects,
- a generic module cannot depend on a specific module
- when importing modules in a project, specific modules of other
projects cannot be mapped,
- once a specific module is scanned in a project repository, relevant
orphaned modules installed in a project will be re-mapped to this newly
created specific module,
- detect PR only on generic modules (unmerged/pending modules are
generic only, specific modules have to be found in project
repositories).
b9cdc1d to
ec93551
Compare
ec93551 to
9413752
Compare
Collaborator
Author
|
Tested locally, working /ocabot merge nobump |
Contributor
|
On my way to merge this fine PR! |
Contributor
|
Congratulations, your PR was merged at 93380f8. Thanks a lot for contributing to OCA. ❤️ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.