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

Plan for Namespace names and '_' vs '-' #779

Closed
suzuki-shunsuke opened this issue Jul 1, 2018 · 17 comments

Comments

Projects
7 participants
@suzuki-shunsuke
Copy link

commented Jul 1, 2018

Bug Report

SUMMARY

Maybe related to #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

@suzuki-shunsuke

This comment has been minimized.

Copy link
Author

commented Jul 1, 2018

image

The screenshot shows my username has been changed to suzuki_shunsuke.

@chouseknecht

This comment has been minimized.

Copy link
Member

commented Jul 1, 2018

@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 '-'.

@suzuki-shunsuke

This comment has been minimized.

Copy link
Author

commented Jul 1, 2018

@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.
@stefano-m

This comment has been minimized.

Copy link

commented Jul 3, 2018

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!

@stefano-m

This comment has been minimized.

Copy link

commented Jul 3, 2018

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!

@cutwater

This comment has been minimized.

Copy link
Collaborator

commented Jul 3, 2018

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

@stefano-m

This comment has been minimized.

Copy link

commented Jul 3, 2018

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

@seandst

This comment has been minimized.

Copy link

commented Jul 3, 2018

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?

@press5-bolognese

This comment has been minimized.

Copy link

commented Jul 3, 2018

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...

@suzuki-shunsuke

This comment has been minimized.

Copy link
Author

commented Jul 4, 2018

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.

@cutwater

This comment has been minimized.

Copy link
Collaborator

commented Jul 9, 2018

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.

@ricardclau

This comment has been minimized.

Copy link

commented Aug 16, 2018

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

@ricardclau

This comment has been minimized.

Copy link

commented Aug 16, 2018

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?

@ricardclau

This comment has been minimized.

Copy link

commented Aug 16, 2018

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

from carlosbuenosvinos.ansistrano-deploy to ansistrano.ansistrano_deploy

why is that?

@ricardclau

This comment has been minimized.

Copy link

commented Aug 16, 2018

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.

@stefano-m

This comment has been minimized.

Copy link

commented Aug 18, 2018

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.

newtonne added a commit to newtonne/ansible-role-backup that referenced this issue Nov 1, 2018

Rename Galaxy role name to borgmatic_backup
Looks like dashes are no longer allowed in namespaces and role names:
ansible/galaxy#779

@chouseknecht chouseknecht changed the title ansible galaxy has changed my username. Probably convert hyphen into underscore. Plan for Namespace names Nov 15, 2018

@chouseknecht chouseknecht changed the title Plan for Namespace names Plan for Namespace names and '_' vs '-' Nov 15, 2018

@chouseknecht chouseknecht added this to To do in Backend via automation Nov 15, 2018

@chouseknecht chouseknecht added this to the 3.2.0 milestone Nov 15, 2018

@chouseknecht chouseknecht added type/bug and removed type/question labels Nov 15, 2018

@chouseknecht

This comment has been minimized.

Copy link
Member

commented Jan 15, 2019

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.

Backend automation moved this from To do to Done Jan 15, 2019

lukeyeager added a commit to lukeyeager/deepops that referenced this issue Apr 29, 2019

Fix galaxy role name
Read up on the issue here: ansible/galaxy#779
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.