# Bloom 0.9.0 requires python\_version attribute in rosdistro index

**URL:** <https://discourse.openrobotics.org/t/bloom-0-9-0-requires-python-version-attribute-in-rosdistro-index/11099>\
**Category:** Packaging and Release Management\
**Tags:** bloom\
**Created:** [October 18, 2019, 9:43pm UTC](https://discourse.openrobotics.org/t/bloom-0-9-0-requires-python-version-attribute-in-rosdistro-index/11099 "2019-10-18T21:43:31Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![nuclearsandwich](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/nuclearsandwich/32/559_2.png) [@nuclearsandwich](https://discourse.openrobotics.org/u/nuclearsandwich)\
**Post date:** [October 18, 2019, 9:43pm UTC](https://discourse.openrobotics.org/t/bloom-0-9-0-requires-python-version-attribute-in-rosdistro-index/11099/1 "2019-10-18T21:43:31Z")

</div>

The [most recent bloom release](https://github.com/ros-infrastructure/bloom/releases/tag/0.9.0) has a change which affects releasing into custom rosdistro indexes.

Bloom 0.8.0 introduced support for package.xml format three conditional dependencies.  
Unlike existing tools, bloom uses only distribution metadata to build conditional context since the target environment for the generated packages is not necessarily the local environment of the developer blooming the package.  
Bloom 0.9.0 extends this support to include the `ROS_PYTHON_VERSION` condition and as such, requires that the [recently added](https://github.com/ros-infrastructure/rep/pull/207) `python_version` key be present in the rosdistro index. This change has already been implemented in the canonical rosdistro reposistory but custom rosdistro indexes may not have made this change. When a bloom release is made and the python\_version field is not defined, bloom will exit with an explanatory error message to prevent the creation of an invalid release. This is an extreme behavior but the package conditional API doesn’t currently provide any feedback about whether any conditions are actually evaluated or what variables are required to evaluate them so we couldn’t be any more focused with the message.
