bloom; RuntimeError: Two packages have different version numbers
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 forgit
(or other versioning tools) repo that supportstag
ging that creates a snapshot of the entire repo. If a repo is tagged with pkgs with versions different from thetag
, 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 pullingpip
packages (this has been discussed at ...
- This might not be a big concern at a work environment where upstream packages don't get updated (e.g. you have fixed