Contributors mailing list archives
contributors@odoo-community.org
Browse archives
Re: Migration to version 9
byI have additional thoughts on the one module = on repo. This is the time now to discuss where we want to go and not focus yet on the difficulties to get there. I mean moving repos etc. might imply extra work but would be beneficial if end structure proves to be more stable.
Mozetic has reminded us a truth that we tend to forget too often: the end user is our sponsor and is the one we need to please.
We are most of the time having a technical/developer point of view in the way we organize the data and community:
- github is a technical tool: I reckon that even for non-technical like me, it is no that difficult to master for basic operations but still.
- Most of the discussions I see today i about how to make the technical backend not too complex. This is sane but not enough.
- We need to care about the workflow and validate it with the different options but again we care more about the technical workflow than the end-user workflow.
What main kind of end users do we have:
1.- Technical staff (at ease with github, CLI, Linux, etc...): developer and sysadmin
2.- Functional staff with technical background (maybe not able to develop a module but can use github, install modules from CLI). Usually business owners with geek background and no IT resource.
3.- End user/Functional staff (at ease with erp, apps.odoo.com, few knowledge of github or technical details etc.)
Current workflow to get the modules is somehow OK for 1 and 2 but not satisfactory for 3.
What a end user wants?
- Access one module and test it easily to check if it fits his needs
- Test a set of modules (eg: connector or MRP)
- download, install and get update for modules or set of modules
For end user to access the modules, there are several options of which none is currently satisfying:
- Github: difficult to find one specific module, all the more in the current structure (modules are not easy to find in repos).
- apps.odoo.com: actually the easiest way to find specific modules for a neophyte.
- Online apps in Odoo: simple and straight forward (even if I know that some of you are against it)
- Runbot: needs improvements in the interface (but the "try me in runbot" button goes into the right direction), better advertising and nice tutorial but could be a perfect tool for test. Maybe not the right tool for complex sets and requires systematic unit tests and demo data.
Somehow we need to rely on github/apps for distribution unless we build our own infrastructure (which is out of scope for the moment): we need to improve the current way our work is hosted and distributed in Github.
Currently the repo scope is not that straight forward and is moving constantly: there are a lot of discussions about what should be where and about cross-dependencies modules or reporting.
I am not assessing here the technical difficulties of the one module = on repo (some of you have already made good points) but I think they can be fixed (with time and effort though).
Still, we need to build today a structure/infrastructure that can stand the growth up to 2000 modules and current repo structure is not flexible enough (I differ with Raphael here on scope limitation).
Here are some points IMO that are overlooked:
- There is already the idea of application in Odoo which reflects in the naming: website_*, sale_*, etc. It is simple and understandable by everybody. It is most of the time enough for classifications. Repo "website" is already redundant with the natural naming.
- Major difficulty today is to download 500 repos: a good script for end users OR a mirror of all modules to a repo container would be easy to arrange. End users would only have to pull that container in their main directory and restart Odoo (with all limitations of such move!). This repo (or docker or recipe) could contain only stable modules (or a mild idea of certified ones).
- We talk about bundler/recipe etc. There is an easy way to bundle: create a meta-module with dependencies. Whoever wants to create one is welcome: it requires few technical skills and it is easy to create a specific repo for it/them. It might need an uninstall function or procedure but nothing very difficult to implement.
Getting "one module=one repo" is leaner, simpler and more flexible on the structural point of view. I understand it is challenging on the technical side but current model does not scale up and we need to think about best evolution or a middle ground to get there.
Eric Caudal [Founder and CEO]
Skype: elico.corp. Phone: + 86 186 2136 1670 (Cell), + 86 21 6211 8017/27/37 (Office)
Elico Shanghai (Shenzhen/Singapore) Odoo Gold Partner, best Odoo Partner 2014 for APAC
- the official ones, part of the core and maintained by Odoo
SA
- the community ones, maintained by the OCA
- the private ones specific to a customer and maintained by
the integrator/partner or the customer
Maxime Chambreuil
+1 (514) 276-5468 #126
----- Le 29 Aoû 15, à 12:07, Raphaël Valyi <rvalyi@akretion.com> a écrit :
Good morning,My issues with the 1 repo = 1 module :
- We will lose some history during the migration.
- The migration will consume a lot of resources to make the changes on Github, Travis, Coveralls, Codacy, Transifex, Runbot, Apps, the OCA website
- We don't have the tools to efficiently manage 800 repositories nor the resources to build that tools.
- It will spread out the collaboration. Some people will work on their repo in their corner and will not get visibility, leading to few reviews and poor code quality.
- At some point in the development/deployment process, you will need to specify the list of repo to build your environment and you will want to freeze it. On average, we install 100 to 150 modules for a customer. Managing 150 repo URL with their commits to freeze them will be a pain.
- Same issue if you use eggs, rpm or deb packages for each module : you need the list of modules and their versions. Additional problem here is that module version today is not as reliable as the commit.
The only advantage is that it solves our current problem : new Odoo version release means new branch when we want to migrate the module. No need to remove anything. Clean and complete history.I think the git-filter option as described on the wiki is the best trade off :To those who want 1 repo = 1 module, show me the contributors to manage them.
- we keep the history
- we provide an easy way to see which modules have been migrated
- it allows us to match the number of repo with the resources to manage them
- it encourages collaboration
- it still allows anyone to deploy with packages by generating them based on module version
Cheers,
----- Le 29 Aoû 15, à 7:08, Daniel Reis <dgreis@sapo.pt> a écrit :The key to succeed with the approach of 1 repo 1 module is if we have a really extraordinay package manager, and even the official python ones are not good enought and depends too much of the programmers skills.
That's not the bottleneck. There are already two or three implementations with possible solutions (one of them for MQT).The first problems are collaboration workflows (handling new modules and PRs) and topic governance (module compatibility and overlapping).These are the main issues that one module repos need to address in the first place.
--DROn Sat, Aug 29, 2015 at 1:38 AM, <Mozetič@pad.odoo-community.org> wrote:But what maintenance workflow is expected for the 1 module 1 repo approach?I like less repos with more modules.But all excess are wrong.Our repositories has >500 modules and you lose the vision and migrations, quality control, SQA, CI are nearly impossible there.One repository with more that 20 or 30 modules can be considered "Huge".We are trying to split them also per "Area" but when you have 1 module per repository (we have few of them) all the points I mentioned above are really easy to mantain, but at the end the SQA is so reducted to a minimalistic testing approach and environment.I think both are well it depends of the case.Today Linux itself manage a huge separation of topics (modules) and install something brings you install hundresds of packages, but the package manager is the key (not for nothing gnu gcc is so so so old and almost untouched since time ago).BUT anybody is totally happy with actual package managers and prefer install manually some little packages...The key to succeed with the approach of 1 repo 1 module is if we have a really extraordinay package manager, and even the official python ones are not good enought and depends too much of the programmers skills.THat's my opinion about that!
--Nhomar HernandezCEO Vauxoo.Twitter: @nhomarOdoo Gold Partner_______________________________________________
Mailing-List: http://odoo-community.org/groups/oca-contributors-15
Post to: mailto:contributors@odoo-community.org
Unsubscribe: http://odoo-community.org/groups?unsubscribe_______________________________________________
Mailing-List: http://odoo-community.org/groups/oca-contributors-15
Post to: mailto:contributors@odoo-community.org
Unsubscribe: http://odoo-community.org/groups?unsubscribe_______________________________________________
Mailing-List: http://odoo-community.org/groups/oca-contributors-15
Post to: mailto:contributors@odoo-community.org
Unsubscribe: http://odoo-community.org/groups?unsubscribe
--
_______________________________________________
Mailing-List:
http://odoo-community.org/groups/oca-contributors-15
Post to: mailto:contributors@odoo-community.org
Unsubscribe:
http://odoo-community.org/groups?unsubscribe
_______________________________________________
Mailing-List:
http://odoo-community.org/groups/oca-contributors-15
Post to: mailto:contributors@odoo-community.org
Unsubscribe: http://odoo-community.org/groups?unsubscribe
Reference
-
Migration to version 9
byOpen Source Integrators, Maxime Chambreuil-
Re: Migration to version 9
byClosingAp Open Source Integrators Europe, LDA, Daniel Reis