Skip to Content

Contributors

Re: 14.0 branches



El mar., 13 de oct. de 2020 a la(s) 04:11, Jairo Llopis (jairo.llopis@tecnativa.com) escribió:
Hi all!

There's one thing that's true, Stéphane, and it's that you asked nobody... I'm sad but you have to admit that. 🤷‍ Actually in the template, the default value was "OCA", so this was a total surprise. I don't agree with the flamewar itself, but I guess you should have expected it...]

I just think this is the real point of the arguments.

The current architecture took +/- 2 years to stabilize (considering all the corner cases).

 

Anyways, I see that not having to deal manually with requirements.txt and oca_dependencies.txt is good! Also that will make new contributors lifes' easier (no, I don't have statistics if you ask for them 😝, but surely if pushing a module code makes travis go green instead of red, that's a good definition of "easier").

But losing the current ones (or making them work without time to hurry up) is not good either, It is not for nothing that python itself took >10 years between 2-3 and everybody knows in the meanwhile it will happen.

 

There are plenty of deployment styles here at OCA (we use doodba, you know... so this doesn't affect us), so in general terms, OCA should care more about OCA itself and their contributors.

There's some weird stuff around the thread saying that you can't pin installs with pip, which I don't really understand because you totally can... Also I don't see what's worse on that (if true) than unpinned .txt files elsewhere... Well, nevermind.

For those of you that don't like requirements.txt syntax (I don't also), check out Poetry. It's a total pleasure. I'm not saying I'll use pip to deploy odoo, it's just a tip for those of you considering doing that. 😊

Now, I do have some questions / suggestions:
  1. What happens when the module name differs from the package name? Or when several packages provide modules with the same name? How do we specify that in the manifest? AFAIK, until today only the module name is used there...
  2. Do we need to create the setup folder on all PRs? Or does the bot do it?
  3. If pip dependencies can be expressed through git, have you considered dropping the wheelhouse and using always git as dep system (with pip)? If the wheelhouse is meant to be used as a playground before real packages are pushed to pypi, have you considered using https://test.pypi.org? These might be dumb questions, but if it speeds up OCA workflow and removes the maintenance burden, it can be good.
  4. If the problem is that people needs a way to know what are a given module's dependencies, and where can they be found, would it be possible to have a script that parses a manifest and provides such info? Or could we include that info in the README automatically built by the bot, or in the module page at https://odoo-community.org/shop, or could https://odoo-community.org/ provide an API to get that info in JSON? Probably all these solutions would be better that a random text file.
  5. Where can we find docs about all of this? If none, then may you add them please?
Finally a word for PSCs that want to disable this behavior in some specific repos: instead of directly writting to .travis.yml, please use copier instead: copier update -fd dependency_installation_mode=OCA
There are some reasons behind this, but I think that's another subject. Just take it as a rule of thumb to ease template updates.

Hugs!

_______________________________________________
Mailing-List: https://odoo-community.org/groups/contributors-15
Post to: mailto:contributors@odoo-community.org
Unsubscribe: https://odoo-community.org/groups?unsubscribe



--

Nhomar G Hernández

Vauxoo | CEO

¡Construyamos algo genial!
Cel: +52 (477) 393.3942 | Telegram: nhomar | Twitter: @nhomar

México · Venezuela · Costa Rica · Perú

phone nhomar@vauxoo.com phone vauxoo.com/contactus  


by Nhomar Hernández - 04:06 - 14 Oct 2020

Reference

  • 14.0 branches
    Dear fellow contributors,

    The 14.0 branches are being created as I post this message.

    They are initialized from our new template repository that was created during the OCA Days sprint back in May [1]. This template is essentially a refreshed version of the linter configurations we have in 13.0. This new mechanism should make it easier to apply improvements across all repos in the future.

    Special thanks to Jairo Llopis for his work on this topic.

    I plan to provide a detailed walkthrough of all this during my OCA Days talk next week [6]. In the meantime, here are a few important things to note.

    1. The project description in README.md must be updated manually by PSCs.

    Since our project-level README were manually maintained and updated over a long period, it is difficult to reliably extract the variable content from them. So they are created afresh, and PSC are invited to update the repo description within the dedicated section of README.md. Please do not change the header and footer manually.

    2. Travis installs dependencies with pip, including addons of other repos

    This mechanism (activated by MQT_DEP=PIP in .travis.yml) does not use oca_dependencies.txt nor requirement.txt. It relies on __manifest__.py to discover dependencies from the 'depends' and 'external_dependencies' keys. Dependent addons are installed from the OCA wheelhouse [3], and python libraries are installed from PyPI.

    The main expected benefits are:
    - less redundancy (the manifests are enough to discover dependencies)
    - reduce rippling effects to unrelated repos when an addon or python library does not install or misbehaves, since only the dependencies really needed by a repo are installed

    If a PR depends on an unmerged addon or PR, create a file named test-requirements.txt at the repo root containing a line like this:


    This mechanism has been tested on several repos in 13.0 and should be reliable. In case of problem, mention me in the PR and/or create an issue in OCA/maintainer-quality-tools repo. Alternatively, you can restore the old behaviour by removing the MQT_DEP=PIP line from .travis.yml. For the curious, the code of the new mechanism is in the OCA/m-q-t repo [4]

    3. If you need local changes to the dotfiles let's discuss them

    There are variables in the dot files, including .travis.yml [2]. To update them, the best way is to install copier [5], run "copier update" from the repo root, and answer the questions.

    If you need other changes, you can apply them locally to resolve urgent situations, but that may make updates harder. So please open an issue in [1] to discuss if changes need to be made to the template.

    As usual, don't hesitate to let me know of any issue.

    That's all for now, folks. Happy migration!

    -sbi


    --
    Stéphane Bidoul | @SBidoul
    Acsone sa/nv | http://acsone.eu/ | +32 2 888 3120

    by Stéphane Bidoul - 09:21 - 8 Oct 2020