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 release team #99

Closed
1 task done
rfzeg opened this issue Aug 18, 2022 · 19 comments · Fixed by #151
Closed
1 task done

Add release team #99

rfzeg opened this issue Aug 18, 2022 · 19 comments · Fixed by #151

Comments

@rfzeg
Copy link

rfzeg commented Aug 18, 2022

@cottsay
Copy link
Contributor

cottsay commented Aug 18, 2022

Hi @rfzeg!

I'd be happy to create this release repository for you in ros2-gbp. Please open a PR into ros/rosdistro to add a source stanza for this repository in any of the official ROS distributions first, and then I can process this.

@ijnek
Copy link
Member

ijnek commented Aug 18, 2022

@rfzeg considering the existing release repo is empty, maybe its easier for @cottsay to just create a new repo on ros2-gbp. That would then not require a release before processing this request right?

@cottsay
Copy link
Contributor

cottsay commented Aug 18, 2022

@ijnek - I can work around the empty repo. The reason I'm pushing for brand-new repositories to be registered in the rosdistro index prior to provisioning their release repositories here is that I'd like the packages to undergo the review procedures we have in place in ros/rosdistro. Not the least of which is the package naming review, which could result in more work here if the name changes.

@ijnek
Copy link
Member

ijnek commented Aug 19, 2022

Thanks for clearing that up, I was wondering why you were asking for a release before having a release repository.

Perhaps I'm still missing something, but your suggestion sounds rather unusual. Having a release repo is a prerequisite for running bloom, so are you asking for a manual PR with the source entry to be opened against ros/rosdistro?

@nuclearsandwich
Copy link
Collaborator

Perhaps I'm still missing something, but your suggestion sounds rather unusual. Having a release repo is a prerequisite for running bloom, so are you asking for a manual PR with the source entry to be opened against ros/rosdistro?

A bloom release doesn't have to be the first interaction with the rosdistro database.
There are three stanzas under a repository listing in rosdistro: doc, source, and release. Bloom will offer to create all of them if none exist yet but it's also entirely possible to add source and/or doc entries beforehand, especially for projects in early development.

I can't say definitively but in the days before free CI (Travis, Circle, GitHub Actions, etc) was available I think it was more common for package maintainers to add source entries before the initial release is made in order to make use of devel jobs for their projects' primary CI.

@nuclearsandwich
Copy link
Collaborator

I'd like the packages to undergo the review procedures we have in place in ros/rosdistro. Not the least of which is the package naming review, which could result in more work here if the name changes.

We've talked about this once or twice and I agree with the rationale but keep forgetting to put it on the official agenda for discussion in the ROS 2 team and open the review guidelines update PR.

@nuclearsandwich
Copy link
Collaborator

@rfzeg have you had a chance to comply with @cottsay's request to list your package in the rosdistro?

@ijnek
Copy link
Member

ijnek commented Aug 24, 2022

We've talked about this once or twice and I agree with the rationale but keep forgetting to put it on the official agenda for discussion in the ROS 2 team and open the review guidelines update PR.

Thanks @nuclearsandwich, I've moved the topic out to another issue so we don't have to discuss it in this issue: #106

@rfzeg
Copy link
Author

rfzeg commented Aug 25, 2022

Hi @nuclearsandwich, I am sorry that we haven't been able to do so yet. Since this is my first time doing a binary release I still need some time to understand the process involved. I am aiming to comply with the request in a short period of time, most probably next week. As a side note, I am following the steps as shown here: https://docs.ros.org/en/humble/How-To-Guides/Releasing/First-Time-Release.html

@nuclearsandwich
Copy link
Collaborator

nuclearsandwich commented Aug 30, 2022

No worries @rfzeg, the reason that this step isn't yet part of that guide is that we're in the process of revising that guide and our release process so that packages receive a review of their naming conventions before the release repository is created (which may then need to be changed after the first release) if the packages don't pass naming review.

@nuclearsandwich
Copy link
Collaborator

@rfzeg a friendly reminder. If you'd like, we can close this issue for now and re-open it once the ros/rosdistro source entry is present.

@rfzeg
Copy link
Author

rfzeg commented Sep 23, 2022

@nuclearsandwich Thanks for putting up with me. I am aware this is more of a bloom question, however I feel it is a better fit if I post this in this thread. I had this issue when running: bloom-release --new-track --rosdistro humble --track humble wall_follower_ros2

It complains about 'https://github.com/ros2-gbp/wall_follower_ros2-release.git not being a .git repository, which is correct, however I thought that repository was going to be created. Clearly I must have misunderstood something here.

In summary in order to create that ros/rosdistro source entry my sequence of commands was:

  • catkin_generate_changelog --all
  • git add CHANGELOG.rst
  • git commit -m "Add CHANGELOG.rst"
  • catkin_prepare_release
  • bloom-release --new-track --rosdistro humble --track humble wall_follower_ros2

The full output of the two last commands is as follows:

user:~/ros2_ws/src/wall_follower_ros2$ catkin_prepare_release
Prepare the source repository for a release.
Repository type: git
Found packages: wall_follower_ros2
Prepare release of version '0.1.1' [Y/n]?Y
Trying to push to remote repository (dry run)...
Username for 'https://github.com': rfzeg
Password for 'https://rfzeg@github.com':
To https://github.com/rfzeg/wall_follower_ros2.git
   1ba7d21..ef10189  main -> main
Checking if working copy is clean (no staged changes, no modified files, no untracked files)...
Rename the forthcoming section of the following packages to version '0.1.1': wall_follower_ros2
Bump version of all packages from '0.1.0' to '0.1.1'
Committing the package.xml files...
[main 1ed303a] 0.1.1
 2 files changed, 3 insertions(+), 3 deletions(-)
Creating tag '0.1.1'...
The following commands will be executed to push the changes and tag to the remote repository:
  /usr/bin/git push origin main
  /usr/bin/git push origin 0.1.1
Execute commands to push the local commits and tags to the remote repository [Y/n]?Y
Username for 'https://github.com': rfzeg
Password for 'https://rfzeg@github.com':
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 8 threads
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 769 bytes | 769.00 KiB/s, done.
Total 7 (delta 4), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (4/4), completed with 2 local objects.
To https://github.com/rfzeg/wall_follower_ros2.git
   1ba7d21..1ed303a  main -> main
Username for 'https://github.com': rfzeg
Password for 'https://rfzeg@github.com':
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/rfzeg/wall_follower_ros2.git
 * [new tag]         0.1.1 -> 0.1.1
The source repository has been released successfully. The next step will be 'bloom-release'.

user:~/ros2_ws/src/wall_follower_ros2$ bloom-release --new-track --rosdistro humble --track humble wall_follower_ros2
/usr/lib/python3/dist-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning:  is an invalid version and will not be supported in a future release
  warnings.warn(
/usr/lib/python3/dist-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning:  is an invalid version and will not be supported in a future release
  warnings.warn(
Specified repository 'wall_follower_ros2' is not in the distribution file located at 'https://raw.githubusercontent.com/ros/rosdistro/master/humble/distribution.yaml'
Could not determine release repository url for repository 'wall_follower_ros2' of distro 'humble'
You can continue the release process by manually specifying the location of the RELEASE repository.
To be clear this is the url of the RELEASE repository not the upstream repository.
For release repositories on GitHub, you should provide the `https://` url which should end in `.git`.
Here is the url for a typical release repository on GitHub: https://github.com/ros-gbp/rviz-release.git
==> Looking for a release of this repository in a different distribution...
No reasonable default release repository url could be determined from previous releases.
Release repository url [press enter to abort]: https://github.com/ros2-gbp/wall_follower_ros2-release.git
==> Fetching 'wall_follower_ros2' repository from 'https://github.com/ros2-gbp/wall_follower_ros2-release.git'
Cloning into '/tmp/tmp9xxc5n96'...
Username for 'https://github.com': rfzeg
Password for 'https://rfzeg@github.com':
remote: Repository not found.
fatal: repository 'https://github.com/ros2-gbp/wall_follower_ros2-release.git/' not found
fatal: not a git repository (or any of the parent directories): .git
Traceback (most recent call last):
  File "/usr/bin/bloom-release", line 11, in <module>
    load_entry_point('bloom==0.11.2', 'console_scripts', 'bloom-release')()
  File "/usr/lib/python3/dist-packages/bloom/commands/release.py", line 1213, in main
    perform_release(args.repository, args.track, args.ros_distro,
  File "/usr/lib/python3/dist-packages/bloom/commands/release.py", line 1064, in perform_release
    if check_for_bloom_conf(repository):
  File "/usr/lib/python3/dist-packages/bloom/commands/release.py", line 296,in check_for_bloom_conf
    bloom_ls = ls_tree('bloom')
  File "/usr/lib/python3/dist-packages/bloom/git.py", line 162, in ls_tree
    track_branches(reference, directory=directory)
  File "/usr/lib/python3/dist-packages/bloom/git.py", line 642, in track_branches
    current_branch = get_current_branch(directory)
  File "/usr/lib/python3/dist-packages/bloom/git.py", line 615, in get_current_branch
    output = check_output(cmd, shell=True, cwd=directory)
  File "/usr/lib/python3/dist-packages/bloom/util.py", line 364, in check_output
    raise CalledProcessError(p.returncode, cmd)
subprocess.CalledProcessError: Command 'git branch --no-color' returned non-zero exit status 128.

I haven't been able to find any similar questions so far, so any help would be appreciated!

@ijnek
Copy link
Member

ijnek commented Sep 23, 2022

It complains about 'https://github.com/ros2-gbp/wall_follower_ros2-release.git not being a .git repository, which is correct, however I thought that repository was going to be created. Clearly I must have misunderstood something here.

The release repository is created by @nuclearsandwich or some other maintainer here, and not through the bloom-release command. Only once that repository exists, you can run bloom-release, which will start pushing a bunch of files on a bunch of branches up to the release repo.

@rfzeg
Copy link
Author

rfzeg commented Sep 23, 2022

Hello @ijnek I thought that was the way to comply with @cottsay's request to list my package in the rosdistro. My bad, I see my mistake now, thank you. By searching a bit I found this document here which I will follow now: https://github.com/ros/rosdistro/blob/master/REVIEW_GUIDELINES.md

Thanks for your feedback.

@rfzeg
Copy link
Author

rfzeg commented Oct 4, 2022

The ros/rosdistro source entry is present now.

@rfzeg
Copy link
Author

rfzeg commented Oct 26, 2022

Hi @cottsay just a friendly ping in case the rosdistro listing went unnoticed.

@nuclearsandwich
Copy link
Collaborator

@rfzeg thanks for the ping. I am starting the import now!

@nuclearsandwich
Copy link
Collaborator

@rfzeg this repository is empty and so there is nothing for me to import. I think that repository can be safely deleted as it is not required.

@nuclearsandwich
Copy link
Collaborator

This change has been deployed.

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

Successfully merging a pull request may close this issue.

4 participants