Galaxy: Plan for Namespace names and '_' vs '-'

Created on 1 Jul 2018  路  17Comments  路  Source: ansible/galaxy

Bug Report

SUMMARY

Maybe related to https://github.com/ansible/galaxy/issues/775 .
Previously my ansible galaxy's username is suzuki-shunsuke which is same as github username.
But today I found my ansible galaxy's username has changed to suzuki_shunsuke and I can't change it.
So my role's path has changed and ansible playbooks which depend on my roles has broken.

$ ansible-galaxy install suzuki-shunsuke.docker-ce-centos
- downloading role 'docker-ce-centos', owned by suzuki-shunsuke
 [WARNING]: - suzuki-shunsuke.docker-ce-centos was NOT installed successfully: - sorry, suzuki-shunsuke.docker-ce-centos was not
found on https://galaxy.ansible.com.

ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.
STEPS TO REPRODUCE
EXPECTED RESULTS
ACTUAL RESULTS


arebackend priorithigh typbug

Most helpful comment

We will move forward with the changes and notify our users but guys, this is just unbeliveable.

We have literally thousands of users relying on ansistrano for their CI/CD pipelines. You just cannot make these changes without a transition period.

All 17 comments

image

The screenshot shows my username has been changed to suzuki_shunsuke.

@suzuki-shunsuke

We can put your Namespace back to 'suzuki-shunsuke', if it makes things easier. Just let me know on this ticket.

Understand, however, that in the 3.1 release we will be working to add support for modules and plugins in Galaxy, meaning that you will be able to upload to Galaxy and install from Galaxy packages of modules, plugins, and roles. For that to work, namespaces need to be Python compatible, which means they can't contain '-'.

@chouseknecht
Thank you for reply and great work.

Support for modules and plugins sounds good!

But I think this change of namespace is a breaking change.
I think you had better let users know this change.

And it is desiable that users can find this change by ansible-galaxy install command's error message. For example,

$ ansible-galaxy install suzuki-shunsuke.docker-ce-centos
- downloading role 'docker-ce-centos', owned by suzuki-shunsuke
 [WARNING]: - suzuki-shunsuke.docker-ce-centos was NOT installed successfully: - sorry, suzuki-shunsuke.docker-ce-centos was not
found on https://galaxy.ansible.com.

Perhaps suzuki_shunsuke.docker-ce-centos?
At ansible galaxy 3.0 the hyphen in the namespace converts into underscore.
For detail, please see <good link>.

ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.

I am affected too stefano-m became stefano_m with no notice whatsoever.

I don't know how many ansible galaxy users have hyphens in their user names, but my guess is "many".

I hope you appreciate that this regression is breaking all the ansible-galaxy install that refer to the original hyphenated name and that used to work just fine.

More importantly, the error message given by ansible-galaxy simply says that the role was not found, which is very surprising!

Additionally, this breaks all roles uses inside playbooks:

 - role: stefano-m.iptables

won't work any more.

Personally, I am not too much bothered by the name change as my own role is not popular at all, but I will have to re-relase it to fix the documentation and whatnot. I feel quite annoyed by this.

@chouseknecht is there a way to notify galaxy users whose name has been changed? At least they can plan accordingly.

Thanks!

@stefano-m fixed namespace to "stefano-m".

@cutwater I didn't quite ask for that, but thanks anyway. Please don't make any further changes to that account.

Understand, however, that in the 3.1 release we will be working to add support for modules and plugins in Galaxy, meaning that you will be able to upload to Galaxy and install from Galaxy packages of modules, plugins, and roles. For that to work, namespaces need to be Python compatible, which means they can't contain '-'.

A galaxy namespace I work with has been affected by this, but this quote has me wondering now if I should ask for the galaxy namespace to be fixed, or if we should update the github organization name to conform. The current roadmap has no information regarding 3.1; where can I get more information about these coming features in order to make a more informed decision?

Was any warning or communication made to namespace owners? This is a huge thing to have done without communication! A galaxy namespace I work with has been affected by this, and I can't imagine how many other orgs will run into the same problem...

Were all username's changes rollbacked?
I found my username was changed to "suzuki-shunsuke" (I didn't ask that).
And not only me, I found some users whose name includes hyphen.

With latest update #820, all existing namespaces were rolled back to previous naming schema for backward compatibility. All new namespaces and roles names containing dashes will be converted to underscores.

Apparently, ansible roles are also affected

https://galaxy.ansible.com/ansistrano/ansistrano-deploy only the role with more Github stars is broken now

Once again, all things broken for nothing. Unbeliveable

It gets better, apparently the change was applied when calling the notifications webhook after releasing a new tag for https://galaxy.ansible.com/ansistrano/ansistrano-deploy

However https://galaxy.ansible.com/ansistrano/ansistrano-rollback still works with hyphen? Will it break once we release a new tag?

@chouseknecht Why this change? Do you realise how many CI/CD pipelines you just broke with this?

Not only this, but the new tag triggered this change:

from carlosbuenosvinos.ansistrano-deploy to ansistrano.ansistrano_deploy

why is that?

We will move forward with the changes and notify our users but guys, this is just unbeliveable.

We have literally thousands of users relying on ansistrano for their CI/CD pipelines. You just cannot make these changes without a transition period.

Is there going to be an official statement from Red Hat/Ansible about this?

I hope that future breaking changes will be managed more gracefully.

Thanks.

As we move toward Mazer and changing the way Ansible content is installed to the local filesystem, path and content names are expected to be Python compatible. So for this reason, we will no longer support '-' in namespace, repository and content names.

For existing Galaxy users, we will continue to allow '-' in one-off cases by performing manual database updates on request. The goal is to not break existing content, and as best we can, help users transition to new names.

If you do run into a case where you need '_' converted to '-', please file an issue, and we'll perform the update as quickly as possible.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

chouseknecht picture chouseknecht  路  6Comments

TheRojam picture TheRojam  路  4Comments

drew-kun picture drew-kun  路  4Comments

peterchoo picture peterchoo  路  3Comments

gforcada picture gforcada  路  3Comments