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

Generated commands look the same no matter what branch option selected #31

Closed
130s opened this issue May 16, 2016 · 7 comments · Fixed by #42
Closed

Generated commands look the same no matter what branch option selected #31

130s opened this issue May 16, 2016 · 7 comments · Fixed by #42
Labels

Comments

@130s
Copy link
Contributor

130s commented May 16, 2016

(May or may not be related to #14)

I flipped devel and latest but in the end I seem to have gotten the exactly same command.

  • devel: generate_prerelease_script.py https://raw.githubusercontent.com/ros-infrastructure/ros_buildfarm_config/production/index.yaml jade default ubuntu trusty amd64 moveit_core --level 0 --output-dir .
  • latest: generate_prerelease_script.py https://raw.githubusercontent.com/ros-infrastructure/ros_buildfarm_config/production/index.yaml jade default ubuntu trusty amd64 moveit_core --level 0 --output-dir .

Also chose specific version tag but it looks the same again.

  • 0.6.15: generate_prerelease_script.py https://raw.githubusercontent.com/ros-infrastructure/ros_buildfarm_config/production/index.yaml jade default ubuntu trusty amd64 moveit_core --level 0 --output-dir .

Question: Will the result of these command be actually different with these commands (if so, the change is embedded somehow somewhere invisible from the command)?

@dirk-thomas
Copy link
Member

dirk-thomas commented Aug 16, 2016

I can confirm that the version selection doesn't work at the moment. It seems to be a regression of the "new" UI. @wjwwood Can you please look into this at some point.

@wjwwood
Copy link
Contributor

wjwwood commented Aug 16, 2016

I'll try to have a look at it soon.

@wjwwood
Copy link
Contributor

wjwwood commented Aug 25, 2016

It doesn't look like the underlying generate_prerelease_script.py script can do this. I guess I just never noticed that this information was not used to modify the end script.

Currently, I believe it will always checkout code as defined in the devel section of the rosdistro distribution.yaml file.

@dirk-thomas Can you speak to whether or not the generate_prerelease_script.py is capable of getting the released version of the repository's packages? I see that you can override the repository url and branch for each "repository name", but since there is a branch for each package in the release case, this is not sufficient to do the "latest" or "<version>" options, as it would need to make a mapping from the repository name to several branches rather than just one. I looked at the output of --help and at the documentation here:

https://github.com/ros-infrastructure/ros_buildfarm/blob/5141d5dba2993718a363475abf86edbb0e958346/doc/jobs/prerelease_jobs.rst

But I couldn't find anything that lead me to a way to accomplish this. I think something could be done with the underlay folder, but I'm not sure.

@130s
Copy link
Contributor Author

130s commented Aug 27, 2016

it will always checkout code as defined in the devel section of the rosdistro distribution.yaml file.

That explains to me why prerelease stops with error saying like the following for a repo without source entry, even though on prerelease web i/f I selected latest:

The repository 'moveit_resources' does not have a source entry in the distribution file. We cannot generate a prerelease without a source entry.

@dirk-thomas
Copy link
Member

The script generate_prerelease_script.py has the following relevant options to override the branch / repo (see its --help output):

  • --custom-branch [REPO_NAME:BRANCH_OR_TAG_NAME [REPO_NAME:BRANCH_OR_TAG_NAME ...]]
    A name of a 'repository' from the distribution file followed by a colon and a branch / tag name
  • --custom-repo [REPO_NAME:REPO_TYPE:REPO_URL:BRANCH_OR_TAG_NAME [REPO_NAME:REPO_TYPE:REPO_URL:BRANCH_OR_TAG_NAME ...]]
    The name, type, url and branch / tag name of a repository

Using those the generated command lines for the some other examples (since moveit_core is not a repo anymore) should be:

  • devel
    generate_prerelease_script.py https://raw.githubusercontent.com/ros-infrastructure/ros_buildfarm_config/production/index.yaml kinetic default ubuntu xenial amd64 genmsg --level 0 --output-dir .
  • latest
    generate_prerelease_script.py https://raw.githubusercontent.com/ros-infrastructure/ros_buildfarm_config/production/index.yaml kinetic default ubuntu xenial amd64 --level 0 --output-dir . --custom-repo genmsg_pkg:git:https://github.com/ros-gbp/genmsg-release.git:release/kinetic/genmsg
  • 0.5.8-0
    generate_prerelease_script.py https://raw.githubusercontent.com/ros-infrastructure/ros_buildfarm_config/production/index.yaml kinetic default ubuntu xenial amd64 --level 0 --output-dir . --custom-repo genmsg_pkg:git:https://github.com/ros-gbp/genmsg-release.git:release/kinetic/genmsg/0.5.8-0

As you can see in the last two commands each package is being identified individually.

@wjwwood
Copy link
Contributor

wjwwood commented Dec 21, 2016

The use of genmsg is not very demonstrative, since it only has one package in the repository. I did nodelet_core:

generate_prerelease_script.py \
  https://raw.githubusercontent.com/ros-infrastructure/ros_buildfarm_config/production/index.yaml \
  kinetic default ubuntu xenial amd64 \
  --level 0 \
  --output-dir . \
  --custom-repo \
    nodelet_pkg:git:https://github.com/ros-gbp/nodelet_core-release.git:release/kinetic/nodelet/1.9.8-0 \
    nodelet_core_pkg:git:https://github.com/ros-gbp/nodelet_core-release.git:release/kinetic/nodelet_core/1.9.8-0 \
    nodelet_topic_tools_pkg:git:https://github.com/ros-gbp/nodelet_core-release.git:release/kinetic/nodelet_topic_tools/1.9.8-0

This would work, but I think the important thing to point out is that rather than specifying the repository name (as is the case for devel) in the other two cases you must omit the repository name and only specific the exact repository/branch pairs to clone using --custom-repo. This is a lot more work for the web tool to handle because now it must figure out what packages were released for packages in each other option, i.e. latest and <specific version>. I don't know when I'll have time to do that.

I think _pkg suffix you used in the first field of --custom-repo seems to just be a convention. In fact the first field of --custom-repo should probably just be called "local folder name" because I think that's really all it is.

@dirk-thomas
Copy link
Member

I just made up genmsg_pkg to clarify it doesn't correlate with the repo name in any way. I good convention would be to use the package name. It is already guaranteed to be unique.

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

Successfully merging a pull request may close this issue.

3 participants