ros-industrial / ros_qtc_plugin

ROS Qt Creator Plug-in (https://ros-qtc-plugin.readthedocs.io)
396 stars 213 forks source link

snap package repo #463

Closed christian-rauch closed 2 years ago

christian-rauch commented 2 years ago

Qt Creator with the ROS plugin is now available as snap package: https://snapcraft.io/qtcreator-ros

As discussed in https://github.com/ros-industrial/ros_qtc_plugin/pull/460#issuecomment-1036106920 the repo with the snap build instructions (snapcraft.yaml) should be hosted somewhere public where other maintainers can access the build instructions and release new versions.

It was suggested in https://github.com/ros-industrial/ros_qtc_plugin/pull/460#issuecomment-1059377633 that this "snapcraft repo" could be hosted at @ros-industrial (potentially https://github.com/ros-industrial/qtcreator-ros-snap).

@Levi-Armstrong @marip8 @gavanderhoorn What is the status of this? Can the repo be created in the @ros-industrial organisation?

Levi-Armstrong commented 2 years ago

Does this name work ros_qtc_plugin_snap?

christian-rauch commented 2 years ago

Does this name work ros_qtc_plugin_snap?

Yes, that would also work for me. I don't mind the name so much as long as it is in a repo where multiple maintainers have access.

gavanderhoorn commented 2 years ago

There you go: ros-industrial/ros_qtc_plugin_snap.

ros-industrial-release is for Bloom release repositories.

christian-rauch commented 2 years ago

@gavanderhoorn Thanks.

I connected my GitHub account to my snapcraft account, but I am not able to select the @ros-industrial organisation from the list in order to chose the new repo as source.

christian-rauch commented 2 years ago

@Levi-Armstrong @marip8 @gavanderhoorn I think I may need access to the @ros-industrial organisation in order to connect the snap repo to my snapcraft account. If this is not possible, I would create the repo in my personal namespace (@christian-rauch ) again and invite the relevant people as collaborators to the repo. But I would still prefer if the snap is publicly visible in the @ros-industrial organisation, the same way the original ros_qtc_plugin is.

Levi-Armstrong commented 2 years ago

What is the process for connecting the two?

christian-rauch commented 2 years ago

What is the process for connecting the two?

I have to select the repo from a list of organisations: snap_connect

Levi-Armstrong commented 2 years ago

Maybe we should create a ros-industrial account as discussed here? @gavanderhoorn

Levi-Armstrong commented 2 years ago

@christian-rauch Are you a member of the ros-industrial organization on github?

Levi-Armstrong commented 2 years ago

@gavanderhoorn It looks like he may just need to be a member of the ros-industrial organization. Can you add him as a member?

christian-rauch commented 2 years ago

@christian-rauch Are you a member of the ros-industrial organization on github?

No. Otherwise, ros-industrial would appear in this list to choose from.

gavanderhoorn commented 2 years ago

I've looked into this, and it's slightly unclear how far the permissions go that the snapcraft integration requires.

In the end, all they need is to install a webhook, but I haven't been able to find how that hook should be configured exactly.

If you'd have an example @christian-rauch (from some other repository you've already enabled the integration for), you might be able to duplicate the setup.

If that's impossible, we can see whether we can make @christian-rauch an organisation member, but we've been trying to gradually reduce the nr of direct members to ros-industrial, and convert to outside collaborators where possible.

Maybe we should create a ros-industrial account as discussed here?

this could be an option.

It would still just be a regular account though, just not someone's main account.

christian-rauch commented 2 years ago

I've looked into this, and it's slightly unclear how far the permissions go that the snapcraft integration requires.

In the end, all they need is to install a webhook, but I haven't been able to find how that hook should be configured exactly.

If you'd have an example @christian-rauch (from some other repository you've already enabled the integration for), you might be able to duplicate the setup.

I registered/connected one of my repositories before. Every time you push to the main branch, a build is triggered on snapcraft and the snap is then released on the edge channel automatically. I did not have to setup a webhook or similar manually.

If that's impossible, we can see whether we can make @christian-rauch an organisation member, but we've been trying to gradually reduce the nr of direct members to ros-industrial, and convert to outside collaborators where possible.

Maybe we should create a ros-industrial account as discussed here?

this could be an option.

It would still just be a regular account though, just not someone's main account.

Currently, the snap is published under my name. If we could move this to a "verified" account (i.e. the ones with the green badge), this would be even better.

For now, I just want to make sure that all maintainers have access to the snap description and can do releases.

gavanderhoorn commented 2 years ago

Every time you push to the main branch, a build is triggered on snapcraft and the snap is then released on the edge channel automatically.

yes, I know.

I did not have to setup a webhook or similar manually.

No, that's what pushing that button on the snapcraft side automates for you.

My point was that if you'd go to the webhooks configuration of a repository you've already enabled the integration for, you should/might be able to see how that webhook is configured, and might be able to duplicate it.

christian-rauch commented 2 years ago

I've never configured a webhook manually, so I have no idea which parts are important.

The webhook settings of the snap repo show: snapcraft_webhook

Is this useful?

Levi-Armstrong commented 2 years ago

@gavanderhoorn What is the criteria to become a member? He is more or less now the most active maintainer of the this repository.

christian-rauch commented 2 years ago

Do you know how you want to continue with this? Do you want to create a dedicated ros-industrial account for snapcraft or shall I continue with my account and invite you as collaborators?

Levi-Armstrong commented 2 years ago

@gavanderhoorn I tried manually creating the webhook but it looks like it must also be configured on the snapcraft side to work see below. Can we add @christian-rauch as a member? image

christian-rauch commented 2 years ago

Sorry for keeping nagging you. But is there some decision on your side if I can become a member of @ros-industrial to maintain the snap repo or if someone of you, or a dedicated ros-industrial account, can maintain the snap and give me access to the repo?

Levi-Armstrong commented 2 years ago

Friendly ping @gavanderhoorn, @marip8

marip8 commented 2 years ago

Sorry for the lack of response here. I just talked with @JeremyZoss who is the organization owner on the ROS-I Americas and he said he would take care of adding you to the group. He may also have to create your snap repository as well if it needs to live in this organization

gavanderhoorn commented 2 years ago

I'm not too much of a fan adding yet-another integration to the ros-industrial org.

Does the ros_qtc_plugin_snap repository have to be in the same organisation as the ros_qtc_plugin repository?

If not, I propose we transfer ros_qtc_plugin_snap to ros-industrial-snap and I setup access for @christian-rauch and some ROS-I maintainers there.

christian-rauch commented 2 years ago

Does the ros_qtc_plugin_snap repository have to be in the same organisation as the ros_qtc_plugin repository?

No. It can be any repository with the necessary access rights.

If not, I propose we transfer ros_qtc_plugin_snap to ros-industrial-snap and I setup access for @christian-rauch and some ROS-I maintainers there.

Would @ros-industrial-snap be the ros-industrial user for the snapcraft store that could get the green verified batch?

gavanderhoorn commented 2 years ago

Would @ros-industrial-snap be the ros-industrial user

no, it's a Github organisation.

If we'd really want to, we could create a new user as well.

If RIC-NA could take care of that, that would be appreciated (@marip8 @JeremyZoss @robinsonmm).

gavanderhoorn commented 2 years ago

I've transferred the repository and given @christian-rauch maintenance access.

I've also invited @marip8 and @JeremyZoss @Levi-Armstrong and @marip8 to join the organisation.

@christian-rauch: you should be able to request access for the snapcraft app again.

gavanderhoorn commented 2 years ago

@ipa-hsd @ipa-cmh: I've also invited you.

@cardboardcode @Briancbn: could you perhaps decide who from APAC should get access there?

It's essentially a new release organisation, similar to ros-industrial-release.

christian-rauch commented 2 years ago

Thanks! I linked the repo https://github.com/ros-industrial-snap/ros_qtc_plugin_snap to the snap and invited @Levi-Armstrong as a collaborator to the snap.

Everyone with access to ros_qtc_plugin_snap can trigger a new build and release to the edge channel by pushing to the repo. Everyone registered as a collaborator on snapcraft can then release this from edge to stable.

Should I add additional people as snapcraft collaborators so they can release stable versions of the snap?

gavanderhoorn commented 2 years ago

Let's see who wants to pick this up (from the ppl I @-mentioned earlier).

As to ros_qtc_plugin_snap: could you please add a readme with a description of purpose, and links to the relevant (external) pages?

At the very least a link to the location in the snap store fi.

christian-rauch commented 2 years ago

@gavanderhoorn If we don't use https://github.com/ros-industrial-snap/ros_qtc_plugin_snap now, can you delete the repo again?

gavanderhoorn commented 2 years ago

I'm not sure I understand.

There is no other repository.

Why would I delete it?

christian-rauch commented 2 years ago

Oh, I meant the original ros-industrial repo at https://github.com/ros-industrial/ros_qtc_plugin_snap. But I now see that it automatically forwards to the new https://github.com/ros-industrial-snap/ros_qtc_plugin_snap. Nevermind.

gavanderhoorn commented 2 years ago

Yes. There is only one repository and it was transferred. Github just auto-redirects.

Briancbn commented 2 years ago

@ipa-hsd @ipa-cmh: I've also invited you.

@cardboardcode @Briancbn: could you perhaps decide who from APAC should get access there?

It's essentially a new release organisation, similar to ros-industrial-release.

@cardboardcode and I is fine.

marip8 commented 2 years ago

Would @ros-industrial-snap be the ros-industrial user

no, it's a Github organisation.

If we'd really want to, we could create a new user as well.

If RIC-NA could take care of that, that would be appreciated (@marip8 @JeremyZoss @robinsonmm).

What exactly is needed here? Can we not push to the snap repository as individual users?

gavanderhoorn commented 2 years ago

@marip8: I believe the idea is to have a verified user associated with the QtCreator ROS snap.

Right now it shows @christian-rauch's username.

For that to happen, we'd need to create a Github user account and use that to submit the snap to the store -- I believe.

@christian-rauch: could you confirm/correct?

christian-rauch commented 2 years ago

@christian-rauch: could you confirm/correct?

I think this is correct. Eventually, ros-industrial should get a snapcraft account. I can then request to transfer the snap from my to this new verified account.

christian-rauch commented 2 years ago

I am going to close this since the snap repo is public now and all necessary people have access.

@Levi-Armstrong I added you (levi.armstrong@gmail.com) as a collaborator for the snap package. This is still pending. Can you let me know if you want to be a collaborator (to release snaps)?

Levi-Armstrong commented 2 years ago

@christian-rauch Are you able to resend it? I looked but cannot find it in my email.

christian-rauch commented 2 years ago

@christian-rauch Are you able to resend it? I looked but cannot find it in my email.

I resend the invitation.

2022-05-18 18 17 54 dashboard snapcraft io c6cc4bf4ed9d

Is this the email address with which you are registered in the snap store?

Levi-Armstrong commented 2 years ago

@christian-rauch Done. Thank you.