Skip to content
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

[ADD] oca-gen-addon-banner: Proof of concept #593

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

etobella
Copy link
Member

@etobella etobella commented Nov 23, 2023

I am adding a new generation function that sets all the banners to a Odoo Community Logo in order to avoid external non canonical logos.

Copy link

@ValentinVinagre ValentinVinagre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😄

@ivs-cetmix
Copy link
Member

@etobella could you please give some definition of the "external non canonical logo"? What is "canonical" and what is "non canonical"?

@etobella etobella changed the title [ADD] oca-gen-addon-banner [ADD] oca-gen-addon-banner: Proof of concept Nov 23, 2023
@etobella
Copy link
Member Author

It is just a PoC. No need to such a hurry. I was just checking if it was possible

@ivs-cetmix
Copy link
Member

ivs-cetmix commented Nov 23, 2023

It is just a PoC. No need to such a hurry. I was just checking if it was possible

Oh I'm really sorry I didn't mean this to look like anything offensive ))
I know we have some hot discussion and our opinions are not always the same.
But in this case I wanted to say "This is really a great idea!". We just need to prepare all the stuff for doing it right.
Because we definitely need to make the OCA modules look better in the App Store. And the new logo is a great leaf in that right direction.
I think part of this would be enforcing some kind of an "OCA branding guidelines" which will describe how to brand the OCA modules for publishing. We could also have some sort of the pre-designed templates for different module categories.
Eg one for POS, another for the inventory, another for the Warehouse etc. We also have some graphical designers whom we can use if such assistance will be required and welcomed by the Community.

@simahawk
Copy link
Contributor

I know we have some hot discussion and our opinions are not always the same.

We don't have to agree all the times, no worries :)

But in this case I wanted to say "This is really a great idea!". We just need to prepare all the stuff for doing it right.
Because we definitely need to make the OCA modules look better in the App Store. And the new logo is a great leaf in that right direction.

Cool. We'll get back to this w/ proper guidelines update.

I think part of this would be enforcing some kind of an "OCA branding guidelines" which will describe how to brand the OCA modules for publishing. We could also have some sort of the pre-designed templates for different module categories.
Eg one for POS, another for the inventory, another for the Warehouse etc. We also have some graphical designers whom we can use if such assistance will be required and welcomed by the Community.

General branding guidelines are in the making. Specific branding per app is not. Yet, it could be a good idea maybe, and is something that can be discussed and implemented by the new board next year if there's consensus.

# TODO:Maybe we could add the title of the addon...
modified = []
for path in manifest["images"]:
image.save("%s/%s" % (addon_dir, path))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it really make sense to save one copy of this banner in every OCA module? Isn't it easier just to modify the README template (contained in this repo too) to include it from this maintainer-tools github repo directly?

Even more taking into account OCA/oca-addons-repo-template#190 (comment).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it really make sense to save one copy of this banner in every OCA module? Isn't it easier just to modify the README template (contained in this repo too) to include it from this maintainer-tools github repo directly?

Even more taking into account OCA/oca-addons-repo-template#190 (comment).

@yajo I think we should be able to put custom banners for modules. Same as icons.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, but if it isn't custom, do we really need to replicate this image thousands of times?

For the icon, we do need it, because Odoo expects the icon to exist in a specific place. But the banner only appears on the compiled readme/index

@etobella
Copy link
Member Author

The idea would be to introduce some letters with the module name on the title.

@ivs-cetmix
Copy link
Member

The idea would be to introduce some letters with the module name on the title.

How about custom design? I think would be reasonable to generate a default banner with letters. And have an OCA module banner guidelines in case someone would like to add a custom one.

@etobella
Copy link
Member Author

I would prefer to have this automatically generated in order to avoid strange cases, but that is my opinion

@pedrobaeza
Copy link
Member

@ivs-cetmix I see that you introduced in one module a "branding" banner including your company. For now, that's forbidden according OCA rules, but that can be discussed.

@pedrobaeza pedrobaeza closed this Nov 28, 2023
@pedrobaeza
Copy link
Member

pedrobaeza commented Nov 28, 2023

Sorry, closed by mistake.

@pedrobaeza pedrobaeza reopened this Nov 28, 2023
@ivs-cetmix
Copy link
Member

ivs-cetmix commented Nov 28, 2023

@ivs-cetmix I see that you introduced in one module a "branding" banner including your company. For now, that's forbidden according OCA rules, but that can be discussed.

@pedrobaeza don't get me wrong I'm not trying to "hack the OCA")
Moreover the idea behind having a custom banners was to promote the OCA modules and the OCA brand among the regular Odoo users.
Let's say that clear: although OCA modules are the best ones available in the Odoo App Store most of the users are unaware about it. Because it's a typical customer behaviour to opt for a bright package.
Regarding allowing or forbidding other than OCA logos on banners I would say that we need to be more realistic here as well.
To "make Odoo mightier together" we need to be mighty ourselves first and foremost.
OCA needs financial resources to develop. Being a non-profit organisation sponsorship remains the main source of the financial income.
So rather then banning or prohibiting this from the start I would have used a more wiser approach considering this an option rather than a threat.
It's absolutely clear that every new Odoo release brings new challenges to the Community with Odoo moving more and more features to the EE. And to be capable of facing that challenges and offering an adequate response to them we must grow our potential accordingly.

@pedrobaeza
Copy link
Member

Thanks for exposing your PoV and your involvement with OCA.

The problem with "company branding" is that in a collaborative environment, this branding will provoke more problems than their benefits. Some examples:

  • You start a module with very few features, putting your brand banner.
  • I add a lot of cool features to that module. What do we do with the brand banner? Putting half for it?
  • Maybe I don't want to add my features to that module to have a fresh whole new brand banner for me.
  • What about not having the skills to edit such banner?
  • Etc.

That's why this kind of option was forbidden from the beginning, for avoiding such problems. We still have the debate about making co-author of a module to a great contributor, and this is sometimes very subjective, but at least we have the mechanism, as author manifest key allows it easily.

@ivs-cetmix
Copy link
Member

Thanks for exposing your PoV and your involvement with OCA.

The problem with "company branding" is that in a collaborative environment, this branding will provoke more problems than their benefits. Some examples:

  • You start a module with very few features, putting your brand banner.
  • I add a lot of cool features to that module. What do we do with the brand banner? Putting half for it?
  • Maybe I don't want to add my features to that module to have a fresh whole new brand banner for me.
  • What about not having the skills to edit such banner?
  • Etc.

That's why this kind of option was forbidden from the beginning, for avoiding such problems. We still have the debate about making co-author of a module to a great contributor, and this is sometimes very subjective, but at least we have the mechanism, as author manifest key allows it easily.

That makes sense, thank you for pointing!
One of the possible options here could be to have this option as a part of a sponsorship package. Eg being an OCA gold sponsor gives you an option to put your logo on the banner of the OCA modules you have contributed.
However I think this should be a subject for a further discussion.

@yajo
Copy link
Member

yajo commented Nov 29, 2023

Let's say that clear: although OCA modules are the best ones available in the Odoo App Store most of the users are unaware about it. Because it's a typical customer behaviour to opt for a bright package.

If this is the motivation, I agree with @pedrobaeza that the branding we should promote is OCA's, as a community.

Of course, this can be customizable, so you can reuse the same script for your own modules. I still think that just changing the template should be enough.

So rather then banning or prohibiting this from the start I would have used a more wiser approach considering this an option rather than a threat.

I agree about this, but we currently have a place to promote module sponsors:

[ This file is optional and contains additional credits, other than
authors, contributors, and maintainers. ]
The development of this module has been financially supported by:
- Company 1 name
- Company 2 name

And also a place to promote contributors:

- Firstname Lastname <email.address@example.org> (optional company website url)
- Second Person <second.person@example.org> (optional company website url)

If your company considers that they should put a banner in those sections instead of just text, I would have nothing against that. But I'd stick to keeping company promotion in the places designed for it.

One of the possible options here could be to have this option as a part of a sponsorship package. Eg being an OCA gold sponsor gives you an option to put your logo on the banner of the OCA modules you have contributed.

That makes sense, but also can be a bit controversial. However I think we're all open to proposals, as long as they reflect an appropriate balance between the community interests and the ones of the members that form it, be them companies or individuals.

@ivs-cetmix
Copy link
Member

Let's say that clear: although OCA modules are the best ones available in the Odoo App Store most of the users are unaware about it. Because it's a typical customer behaviour to opt for a bright package.

If this is the motivation, I agree with @pedrobaeza that the branding we should promote is OCA's, as a community.

Of course, this can be customizable, so you can reuse the same script for your own modules. I still think that just changing the template should be enough.

+++

So rather then banning or prohibiting this from the start I would have used a more wiser approach considering this an option rather than a threat.

I agree about this, but we currently have a place to promote module sponsors:

[ This file is optional and contains additional credits, other than
authors, contributors, and maintainers. ]
The development of this module has been financially supported by:
- Company 1 name
- Company 2 name

And also a place to promote contributors:

- Firstname Lastname <email.address@example.org> (optional company website url)
- Second Person <second.person@example.org> (optional company website url)

If your company considers that they should put a banner in those sections instead of just text, I would have nothing against that. But I'd stick to keeping company promotion in the places designed for it.

Yes there are those sections. However this is obvious that having a name on the banner and having it at the bottom of the movie closing credits is not the same. Same story with the modules in the App Store.

One of the possible options here could be to have this option as a part of a sponsorship package. Eg being an OCA gold sponsor gives you an option to put your logo on the banner of the OCA modules you have contributed.

That makes sense, but also can be a bit controversial. However I think we're all open to proposals, as long as they reflect an appropriate balance between the community interests and the ones of the members that form it, be them companies or individuals.

I totally agree with you. We respect the Community opinion so we decided to remove our logos from the banners until this case will be clarified.
I'm also really glad that this case brought attention to the banners. If think if not our logo on them no one would have cared about adding banners automatically at all))

@yajo
Copy link
Member

yajo commented Dec 11, 2023

However this is obvious that having a name on the banner and having it at the bottom of the movie closing credits is not the same

Yes, that's why I think the name banner should promote OCA, while the credits banners could be used to promote the companies behind the module.

In any case, my opinions on contribution credit have been controversial in the past too. I'm more aligned to https://allcontributors.org/

You know, community work is a hard thing! Never everybody is happy. I think this subject of banners and sponsorship should be handled by @OCA/board.

@ivs-cetmix
Copy link
Member

Ok, let's get back to this 😄
We have contacted Kapreon (this is the company that developed the new OCA logo) and asked them to design a sample OCA app banner. We have used this PR as a test example: OCA/knowledge#444

The main goal is to develop a banner template which can be later used for other OCA modules.

image

Below are the results. Would be great to have your opinion on them:

Variant A
image

Variant B
image

@yajo
Copy link
Member

yajo commented Jan 11, 2024

Beautiful!

I like more variant A, but B is really cool too. You might want to open a poll in the forum.

@etobella
Copy link
Member Author

I like the idea, but I am uncertain how we will automate it, but it surely deserves a try from my side 😄

@dreispt
Copy link
Member

dreispt commented Jan 17, 2024

Hello all, great and constructive discussion.
I think everyone agrees with the principles, and the discussion forward in on the implementation details.
The way currently OCA modules shows on Odoo Apps is not great, and needs improvement (see sample below).

We do need consistent branding that does not depend on (or relay additional work to) contributors.
So it makes sense to be automatically generated, just like READMEs are.
The template to use then needs to be automatic generation friendly.

My suggestion is that it is probably simples for the image to be a generic OCA one, without including the module title, since the title will display below the image anyway. And that will simplify automation too.

This automation was discussed with @sbidoul and he is considering if this is best at the local pre-commit level, or an OCA bot automation step.

Also, there is a takeaway for the @OCA/board to draft more detailed guidelines for module branding and attribution.

image

@pedrobaeza
Copy link
Member

Using SVGs, it's very simple to automate the generation of a customized banner, and then a tool to export from SVG to PNG to comply with the apps store requirements. All of this can be streamlined through pre-commit (the same as it's done for README or RST to MD conversion).

@vdewulf
Copy link

vdewulf commented Jan 17, 2024

@ivs-cetmix A big thank you for this initiative and having contacted Kapreon directly!
Both propositions look good according to me (lighter preference for option B).
Either way, it'll be better than before :)

@yajo
Copy link
Member

yajo commented Jan 17, 2024

Using SVGs, it's very simple

Maybe just more fancy HTML and CSS in the static/description/index.html that is generated from the readme would be enough?

@ivs-cetmix
Copy link
Member

Thank you everyone for the feedback!

As I mentioned before the idea is to design some template that can be used for both automatic and custom banner creation.

image

For example here we have:

  1. OCA Logo
  2. module.name
  3. module.summary
  4. module.icon. We can use an OCA one as a fallback. However I would go further and create a set of icons for each of repo categories we have. Eg an icon for "Accounting", an icon for "Project", an icon for "Inventory" etc
    @etobella @pedrobaeza is this something that can be done automatically?

@dreispt would be really great if @OCA/board paid much more attention to promotion. New logo is great but there is much more to be done. Eg a completely redesigned OCA App Store. But that's another story.

@pedrobaeza
Copy link
Member

The automation in SVG is possible and simpler than any other, and SVG > PNG is trivial with any automated tool as well. Doing it directly with HTML+CSS is not possible, as we required an image for both Odoo and Apps Store, not other thing.

@ivs-cetmix
Copy link
Member

So we have ended up with option #2. Would be great to have this PR merged 😄
OCA/knowledge#444
@pedrobaeza

@pedrobaeza
Copy link
Member

I don't see the banner in the referenced PR. And is this creating the image programatically?

@ivs-cetmix
Copy link
Member

I don't see the banner in the referenced PR. And is this creating the image programatically?
@pedrobaeza sorry just forgot to push it)) Fixed now

@pedrobaeza
Copy link
Member

OK, but what about the second question?

@ivs-cetmix
Copy link
Member

OK, but what about the second question?

@pedrobaeza replied directly in the PR

@pedrobaeza
Copy link
Member

I mean for this PR is this creating the image programatically?

@ivs-cetmix
Copy link
Member

I mean for this PR is this creating the image programatically?

Nope, banner was designed manually by Kapreon

@pedrobaeza
Copy link
Member

Then I think adding here a static banner is not the right place. Here we should add generating tools.

@ivs-cetmix
Copy link
Member

Then I think adding here a static banner is not the right place. Here we should add generating tools.

Sure, however we should be able to replace a generated banner with a custom one designed according to the OCA guidelines.

@pedrobaeza
Copy link
Member

I would go for the fully automation system. Almost nobody is going to replace it by a custom one, and we will have the same image duplicated on each module of each repo...

@ivs-cetmix
Copy link
Member

I would go for the fully automation system. Almost nobody is going to replace it by a custom one, and we will have the same image duplicated on each module of each repo...

I totally agree with you. However there will be some cases when such banners will be replaces. For example we will be using custom banners for some OCA module we contribute. So in such cases automatic banner creation should not overwrite custom designed banners.

@pedrobaeza
Copy link
Member

That possible "custom" things should be parametrizable. The same you put on readme folder content for being compiled in README.rst/.md, you can place a file /static/description/banner_icon.png for being used in this banner composition. The text should be extracted from module title in the manifest.

@ivs-cetmix
Copy link
Member

That possible "custom" things should be parametrizable. The same you put on readme folder content for being compiled in README.rst/.md, you can place a file /static/description/banner_icon.png for being used in this banner composition. The text should be extracted from module title in the manifest.

Sure this is one of the options. However we would like to introduce animated gif banners too. And this is something that is not parametrizable as a static ones. At least I don't have too much knowledge of how to do it with params

@pedrobaeza
Copy link
Member

I think that can be embedded also in SVG files, but anyway, we should also set a guideline about that: I personally consider them very annoying, and more for a banner with limited size. It's OK for READMEs, but not for banners IMO.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants