ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

bloom; RuntimeError: Two packages have different version numbers

asked 2013-04-06 14:30:53 -0600

130s gravatar image

updated 2021-02-16 10:02:32 -0600

I'm trying to release a metapackage by following command (tutorial referred to):

$ bloom-release --ros-distro hydro foo hydro

yields following error:

==> git-bloom-generate -y rosrelease groovy --source upstream -i 0
Traceback (most recent call last):
  File "/usr/bin/git-bloom-generate", line 9, in <module>
    load_entry_point('bloom==0.3.3', 'console_scripts', 'git-bloom-generate')()
  File "/usr/lib/pymodules/python2.7/bloom/commands/git/generate.py", line 247, in main
    run_generator(generator, args)
  File "/usr/lib/pymodules/python2.7/bloom/commands/git/generate.py", line 122, in run_generator
    gen.summarize)
  File "/usr/lib/pymodules/python2.7/bloom/commands/git/generate.py", line 101, in try_execute
    retcode = func(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/bloom/generators/release.py", line 57, in summarize
    self.branch_list = self.detect_branches()
  File "/usr/lib/pymodules/python2.7/bloom/generators/rosrelease.py", line 78, in detect_branches
    fuerte=(self.rosdistro == 'fuerte'))
  File "/usr/lib/pymodules/python2.7/bloom/util.py", line 170, in get_package_data
    version = verify_equal_package_versions(packages.values())
  File "/usr/lib/pymodules/python2.7/catkin_pkg/packages.py", line 114, in verify_equal_package_versions
    raise RuntimeError('Two packages have different version numbers (%s != %s):\n- %s\n- %s' % (package.version, version, package.filename, packages[0].filename))
RuntimeError: Two packages have different version numbers (0.2.9 != 0.2.10):
- /tmp/tmp6UxXHW/clone/rqt_moveit/package.xml
- /tmp/tmp6UxXHW/clone/rqt_runtime_monitor/package.xml

The pkg rqt_moveit has been already removed both from local machine and on remote repo (github). Removing the folder under /tmp/tmp6UxXHW hasn't taken effect. Files in .git folder that contain the name of the deleted pkg are either under ./.git/logs/HEAD or ./.git/logs/refs/heads/groovy-devel, all of which seem to be commit log. I'm trying to release 0.2.10. What is wrong? Thanks!

python-bloom 0.3.3-1


UPDATE 20210216 Someone recently asked me about this. In addition to Tully's answer, there's my thoughts:

  • Cutting a tag/release "per repository" I think is a common custom for git (or other versioning tools) repo that supports tagging that creates a snapshot of the entire repo. If a repo is tagged with pkgs with versions different from the tag, it'd be confusing.
  • Tracking dependency version: Even when there's no code change in a pkg, building it on a different time may pull in different version of upstream so the pkg may behave differently.
    • This might not be a big concern at a work environment where upstream packages don't get updated (e.g. you have fixed apt source like Snapshot ros.org offers. Ubuntu/Canonical is also known to be conservative about upgrading package version once each distro (e.g. 16/18.04) is out then usually only critical bugfix release will be made within the same distro.
    • pip is totally different, they are not coordinating release schedule with Ubuntu/Canonical thus they make latest versions available on already released Ubuntu (or other OSes) distros. One of the reasons why we should be extra careful about pulling pip packages (this has been discussed at ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
3

answered 2013-05-07 16:06:18 -0600

tfoote gravatar image

updated 2013-05-07 16:07:11 -0600

bloom will only operate on an entire repo and everything in the repo must be at the same version. This is because the nature of tagging a repo is global across the repo so it asserts that all packages have the same version.

And bloom operates on the repo, hiding the files in the local checkout will not work.

edit flag offensive delete link more

Comments

That's a bit of a disappointment.. if packages don't advance on the same rate then this should forces developers to increment versions only to create ghost versions. Is there no way around this issue?

nirge gravatar image nirge  ( 2021-02-16 07:04:42 -0600 )edit

@nirge Despite this forum is not suitable for discussion (https://discourse.ros.org/ is), I have some update that I added in my question above.

130s gravatar image 130s  ( 2021-02-16 10:04:17 -0600 )edit
1

Related question: #q65871.

gvdhoorn gravatar image gvdhoorn  ( 2021-02-16 10:36:28 -0600 )edit

This is primarily a side effect of hosting the repositories in git which does not support checkingout and tagging subtrees. Our standard recommendation is to develop closely connected content in the same repo and incur the cost of potentially needing to make no-op releases. If you have decoupled development velocity the packages then probably deserve their own repository.

tfoote gravatar image tfoote  ( 2021-02-16 12:10:39 -0600 )edit

Question Tools

Stats

Asked: 2013-04-06 14:30:53 -0600

Seen: 384 times

Last updated: Feb 16 '21