theforeman / foreman-ansible-modules

Ansible modules for interacting with the Foreman API and various plugin APIs such as Katello
GNU General Public License v3.0
147 stars 163 forks source link

Repository name and collection name #303

Closed ehelms closed 4 years ago

ehelms commented 5 years ago

With the merge of the collections layout and metadata support, I got to thinking if we should re-name this repository (and the collection) based on our intended scope for this project. Currently, the collection name is foreman which implies an all-encompassing scope for what will live in this collection under the Foreman namespace. That would imply to me that we could bring on board roles and playbooks associated to the management and installation of Foreman as well letting this repository move from being module focused to Foreman community focused. In which case I would suggest we move to name this repository to foreman-ansible-collection.

Alternatively, we keep this repository focused on modules for managing entities within Foreman and change the collection name to reflect this. Leaving open the possibility for collections within the namespace such as for installation and management (e.g. converting Forklift's set of roles / playbooks) to a collection.

sean797 commented 5 years ago

Currently, the collection name is foreman

nitpick, we should probably change that to theforeman https://galaxy.ansible.com/theforeman

I agree with changing it to foreman-ansible-collection but I don't necessarily agree with copying the roles/playbooks from Forklift here for 2 main reasons:

quba42 commented 5 years ago

If you are going to rename it anyway, you could also use snake case. Much more readable.

evgeni commented 5 years ago

Who owns that account on Galaxy?

Looking at https://github.com/ansible-collections/, the repo name might also be ansible_collection_foreman?

Not strictly married to any variant of the name, tho.

As for the actual content, I'd prefer this to be the place for our entity-management-modules, not for installation roles.

evgeni commented 5 years ago

Just a quick update, I do have access to said account on galaxy now and I've updated the owner of the collection to be "theforeman".

Repository/Collection name is still open.

evgeni commented 5 years ago

Also, I think @ekohl raised this, we have an ansible inventory plugin somewhere and an ansible callback plugin somewhere else, should these be hosted here too? (not strictly a discussion for this issue, but maybe keeping in mind when deciding on a collection name).

ekohl commented 5 years ago

Who owns that account on Galaxy?

I suspect @theforeman/ansible might know.

ares commented 5 years ago

@xprazak2 already shared the account I believe.

Inventory plugin and callback plugin live in main ansible repo right? I don't think it should live anywhere else.

ekohl commented 5 years ago

We mentioned that it can be beneficial to have them live outside of core for an easier release cycle. However, now that we are marked as maintainers it should be easier. That's why we don't need to decide now but it makes sense to at least consider it in naming this collection.

evgeni commented 5 years ago

Yeah, I have access to the account, all good on that part.

evgeni commented 4 years ago

As I'd like to release the first version to galaxy, we should at least decide on the collection name. I think it should be either foreman or modules, resulting in theforeman.foreman or theforeman.modules as the full name. As for the repository name, I don't strictly care :)

cc @ehelms @akofink @sean797 @mdellweg @manisha15 @bagasse @fobhep

mdellweg commented 4 years ago

Does this mean, we end up with playbooks like this?

- name: Create Location
  theforeman.foreman.foreman_location:
    name: new location
Fobhep commented 4 years ago

I vote for modules, for the simple reason that you don't have to write foreman multiple times

evgeni commented 4 years ago

@mdellweg yes, unless you use the collections keyword as documented in https://docs.ansible.com/ansible/devel/dev_guide/collections_tech_preview.html#using-collections

ekohl commented 4 years ago

How about resources? Then you end up with theforeman.resources.foreman_location. It also doesn't overload modules which have a special meaning.

Edit: alternative could be entities

evgeni commented 4 years ago

Not all modules are about resources. But I can see the point

mdellweg commented 4 years ago

besides, there is a filter, and maybe more tools are about to come. I would not go as far as calling it collection. In the end foreman might not be as bad. If someone were to keep a modified/experimental version in their namespace, it would still fit.

quba42 commented 4 years ago

Naming things is hard.

evgeni commented 4 years ago

Given the folder name, we could also do plugins?

ekohl commented 4 years ago

I was thinking about base but that's also very overloaded. theforeman.essentials.* perhaps?

Fobhep commented 4 years ago

Given the folder name, we could also do plugins?

but plugins is also somewhat reserved in ansible context

evgeni commented 4 years ago

So, agree that naming is hard and keep the existing name?

ekohl commented 4 years ago

To be clear, what is the existing name? :)

mdellweg commented 4 years ago

Finally, i would go for foreman and advise to use the collections parameter in playbooks.

evgeni commented 4 years ago

@ekohl foreman

ekohl commented 4 years ago

In that case, yes: I would go for the existing name foreman.

akofink commented 4 years ago

I'm fine with theforeman.foreman.<module> as well. Is it possible or useful to have a collection for each plugin? Like theforeman.katello.<module> and theforeman.foreman_salt.<module>, basically matching the GitHub organization/repository.

evgeni commented 4 years ago

Possible, yes, but would require more work during release and I'm not sure of the benefits (size is small anyways, and we don't have many different dependencies either).

ehelms commented 4 years ago

I vote for foreman to make it clearer that this is for the Foreman application. It keeps the door open to potentially make future collections targeted at some different aspect of the ecosystem (e.g. theforeman.installer, theforeman.maintenance, theforeman.musicvideos)

sean797 commented 4 years ago

:+1: to foreman

evgeni commented 4 years ago

With the collection bits now settled, the repo name remains.

Do we have any need to change the repo name? IMHO "Foreman Ansible Modules" is an established name by now and it explains pretty nicely what we ship here, so I'd be in favor of keeping the name for the sake of no change.

quba42 commented 4 years ago

My only issue with the name is - instead of _, but it is clearly not worth opening that can of worms.

mdellweg commented 4 years ago

I have been accustomed to that name, too. And i believe, renaming the repository creates a lot broken links and bookmarks and is not worth the pain.

evgeni commented 4 years ago

technically GH creates redirects for the old name, so it still should work, but I'd prefer not to rely on that :)

evgeni commented 4 years ago

please vote :+1: on this comment if you're in favor of closing this issue as "we did all we could" :)

quba42 commented 4 years ago

https://en.wikipedia.org/wiki/Synecdoche