Robotics StackExchange | Archived questions

UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' during bloom-release

UPDATE) I removed most of texts from the file (link) where the reported error seemed to happen, but the error message stays the same with bloom-release 0.4.2 and python-catkin-pkg 0.1.16-1, pointing to the same position (1684).


bloom-release 0.4.0 stops in the middle saying:

  File "/usr/lib/pymodules/python2.7/catkin_pkg/changelog.py", line 492, in to_txt
    lines.append(str(t))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 1684: ordinal not in range(128)

<== Error running command '['/usr/bin/git-bloom-generate', '-y', 'rosdebian', '--prefix', 'release/groovy', 'groovy', '-i', '0']'
Release failed, exiting.

Happens with this .rst file that's generated by catkin_generate_changelog --all. Although I found that u'\xa0' is non-breaking space in Latin1 (ISO 8859-1) according to this page, I don't see that character in the .rst file (or at least I'm not yet sure how to find one).

Thanks!

More error log:

$ bloom-release rqt_robot_plugins --track groovy --rosdistro groovy
==> git-bloom-release groovy
Processing release track settings for 'groovy'
What version are you releasing (version should normally be MAJOR.MINOR.PATCH)? 0.2.16

Executing release track 'groovy'
:
==> git-bloom-import-upstream /tmp/tmpH8MpIp/upstream-0.2.16.tar.gz  --release-version 0.2.16 --replace
Skipping transactional safety mechanism, be careful...
The latest upstream tag in the release repository is 'upstream/0.2.15'.
Importing archive into upstream branch...
Creating tag: 'upstream/0.2.16'
I'm happy.  You should be too.
:
#### Successfully generated 'quantal' debian for package 'rqt_nav_view' at version '0.2.16-0'
####

Placing debian template files into 'debian/groovy/rqt_robot_dashboard' branch.
==> Placing templates files in the 'debian' folder.

####
#### Generating 'oneiric' debian for package 'rqt_robot_dashboard' at version '0.2.16-0'
####
Generating debian for oneiric...
No historical releaser history, using current maintainer name and email for each versioned changelog entry.
Traceback (most recent call last):
  File "/usr/bin/git-bloom-generate", line 9, in <module>
    load_entry_point('bloom==0.4.0', '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 162, in run_generator
    gen.post_rebase, destination)
  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/debian/generator.py", line 484, in post_rebase
    data = self.generate_debian(package, distro)
  File "/usr/lib/pymodules/python2.7/bloom/generators/debian/generator.py", line 603, in generate_debian
    subs = self.get_subs(package, debian_distro, releaser_history)
  File "/usr/lib/pymodules/python2.7/bloom/generators/rosdebian.py", line 42, in get_subs
    releaser_history=releaser_history
  File "/usr/lib/pymodules/python2.7/bloom/generators/debian/generator.py", line 271, in generate_substitutions_from_package
    changelogs = get_changelogs(package, releaser_history)
  File "/usr/lib/pymodules/python2.7/bloom/generators/debian/generator.py", line 204, in get_changelogs
    changes_str.extend(['  ' + i for i in str(item).splitlines()])
  File "/usr/lib/pymodules/python2.7/catkin_pkg/changelog.py", line 329, in __str__
    return unicode(self).encode('utf-8')
  File "/usr/lib/pymodules/python2.7/catkin_pkg/changelog.py", line 332, in __unicode__
    return self.as_txt()
  File "/usr/lib/pymodules/python2.7/catkin_pkg/changelog.py", line 344, in as_txt
    lines = [i + b.next() + str(l).replace('\n', n) for l in self]
  File "/usr/lib/pymodules/python2.7/catkin_pkg/changelog.py", line 479, in __str__
    return unicode(self).encode('utf-8')
  File "/usr/lib/pymodules/python2.7/catkin_pkg/changelog.py", line 482, in __unicode__
    return unicode(self.to_txt())
  File "/usr/lib/pymodules/python2.7/catkin_pkg/changelog.py", line 492, in to_txt
    lines.append(str(t))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 1684: ordinal not in range(128)

<== Error running command '['/usr/bin/git-bloom-generate', '-y', 'rosdebian', '--prefix', 'release/groovy', 'groovy', '-i', '0']'
Release failed, exiting.

Asked by 130s on 2013-06-25 07:24:46 UTC

Comments

I closed this question - see the relevant ticket for the development.

Asked by 130s on 2013-07-05 04:22:01 UTC

Answers

This is probably a unicode bug in catkin_pkg, so I would open a ticket against catkin_pkg:

https://github.com/ros-infrastructure/catkin_pkg/issues

For a workaround you can figure out where in your CHANGELOG.rst the unicode character is and remove it.

P.S. Why are you using :{ask} for the version and not :{auto}? I know you're release repo is configured this way because of this line:

What version are you releasing (version should normally be MAJOR.MINOR.PATCH)?

Asked by William on 2013-06-27 19:10:21 UTC

Comments

Ok, ticket opened and I'll try working it around. Yeah I've just been forgetting to turn back :{ask} to auto after I finished troubleshooting awhile ago.

Asked by 130s on 2013-06-27 20:27:12 UTC