Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions bloom/commands/release.py
Original file line number Diff line number Diff line change
Expand Up @@ -1174,6 +1174,8 @@ def get_argument_parser():
help="Prevents a pull request from being opened after release")
add('--no-web', default=False, action='store_true',
help="prevents a web browser from being opened at the end")
add('--skip-pip', default=False, action='store_true',
help="skip all pip rosdep keys")
add('--pull-request-only', '-p', default=False, action='store_true',
help="skips the release actions and only tries to open a pull request")
add('--override-release-repository-url', default=None,
Expand Down Expand Up @@ -1205,6 +1207,9 @@ def main(sysargs=None):
if args.no_web:
os.environ['BLOOM_NO_WEBBROWSER'] = '1'

if args.skip_pip:
os.environ['BLOOM_SKIP_PIP'] = '1'

try:
os.environ['BLOOM_TRACK'] = args.track
disable_git_clone(True)
Expand Down
7 changes: 7 additions & 0 deletions bloom/generators/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,15 @@

from __future__ import print_function

from os import environ
import pkg_resources
import sys
import traceback

from bloom.logging import debug
from bloom.logging import error
from bloom.logging import info
from bloom.logging import warning

from bloom.rosdistro_api import get_distribution_type
from bloom.rosdistro_api import get_index
Expand Down Expand Up @@ -118,6 +120,11 @@ def resolve_more_for_os(rosdep_key, view, installer, os_name, os_version):
os_installers,
default_os_installer)
assert inst_key in os_installers
if 'BLOOM_SKIP_PIP' in environ and environ['BLOOM_SKIP_PIP'] == '1' and inst_key == 'pip':
warning("Key '{0}' resolved to '{1}' with installer '{2}' for os '{3}' '{4}', "
"but with the 'BLOOM_SKIP_PIP' environment variable set, this key is intentionally skipped."
.format(rosdep_key, installer.resolve(rule), inst_key, os_name, os_version))
return [], inst_key, default_os_installer
return installer.resolve(rule), inst_key, default_os_installer


Expand Down
13 changes: 10 additions & 3 deletions bloom/generators/debian/generate_cmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ def prepare_arguments(parser):
help="path to or containing the package.xml of a package")
action = parser.add_mutually_exclusive_group(required=False)
add = action.add_argument
add('--skip-pip', default=False, action='store_true', help="skip all pip rosdep keys")
add('--place-template-files', action='store_true',
help="places debian/* template files only")
add('--process-template-files', action='store_true',
Expand All @@ -77,17 +78,20 @@ def prepare_arguments(parser):
add('--ros-distro', help="ROS distro, e.g. %s (used for rosdep)" % get_non_eol_distros_prompt())
add('-i', '--debian-inc', help="debian increment number", default='0')
add('--native', action='store_true', help="generate native package")
add('--skip-test-dependencies', default=False, action='store_true',
help="skip to add test dependencies to package dependencies, i.e. Build-Depends")
return parser


def get_subs(pkg, os_name, os_version, ros_distro, deb_inc=0, native=False):
def get_subs(pkg, os_name, os_version, ros_distro, deb_inc=0, native=False, skip_test_dependencies=False):
return generate_substitutions_from_package(
pkg,
os_name,
os_version,
ros_distro,
deb_inc=deb_inc,
native=native
native=native,
skip_test_dependencies=skip_test_dependencies
)


Expand All @@ -111,6 +115,8 @@ def main(args=None, get_subs_fn=None):
os_data = create_default_installer_context().get_os_name_and_version()
os_name, os_version = os_data
ros_distro = os.environ.get('ROS_DISTRO', 'indigo')
if args.skip_pip:
os.environ['BLOOM_SKIP_PIP'] = '1'

# Allow args overrides
os_name = args.os_name or os_name
Expand All @@ -125,7 +131,8 @@ def main(args=None, get_subs_fn=None):
for path, pkg in pkgs_dict.items():
template_files = None
try:
subs = get_subs_fn(pkg, os_name, os_version, ros_distro, args.debian_inc, args.native)
subs = get_subs_fn(pkg, os_name, os_version, ros_distro, args.debian_inc, args.native,
args.skip_test_dependencies)
if _place_template_files:
# Place template files
place_template_files(path, pkg.get_build_type())
Expand Down
15 changes: 10 additions & 5 deletions bloom/generators/debian/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,8 @@ def generate_substitutions_from_package(
peer_packages=None,
releaser_history=None,
fallback_resolver=None,
native=False
native=False,
skip_test_dependencies=False
):
peer_packages = peer_packages or []
data = {}
Expand Down Expand Up @@ -352,9 +353,12 @@ def generate_substitutions_from_package(
build_depends = [
dep for dep in (package.build_depends + package.buildtool_depends)
if dep.evaluated_condition is not False]
test_depends = [
dep for dep in (package.test_depends)
if dep.evaluated_condition is not False]
if skip_test_dependencies is False:
test_depends = [
dep for dep in (package.test_depends)
if dep.evaluated_condition is not False]
else:
test_depends = []
replaces = [
dep for dep in package.replaces
if dep.evaluated_condition is not False]
Expand Down Expand Up @@ -928,7 +932,8 @@ def get_subs(self, package, debian_distro, releaser_history=None):
self.debian_inc,
[p.name for p in self.packages.values()],
releaser_history=releaser_history,
fallback_resolver=missing_dep_resolver
fallback_resolver=missing_dep_resolver,
skip_test_dependencies=skip_test_dependencies
)

def generate_debian(self, package, debian_distro):
Expand Down
5 changes: 3 additions & 2 deletions bloom/generators/rosdebian.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ def rosify_package_name(name, rosdistro):
return 'ros-{0}-{1}'.format(rosdistro, name)


def get_subs(pkg, os_name, os_version, ros_distro, deb_inc, native):
def get_subs(pkg, os_name, os_version, ros_distro, deb_inc, native, skip_test_dependencies):
# No fallback_resolver provided because peer packages not considered.
subs = generate_substitutions_from_package(
pkg,
Expand All @@ -161,7 +161,8 @@ def get_subs(pkg, os_name, os_version, ros_distro, deb_inc, native):
ros_distro,
RosDebianGenerator.default_install_prefix + ros_distro,
deb_inc=deb_inc,
native=native
native=native,
skip_test_dependencies=skip_test_dependencies
)
subs['Package'] = rosify_package_name(subs['Package'], ros_distro)
return subs
Expand Down
3 changes: 3 additions & 0 deletions bloom/generators/rpm/generate_cmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ def prepare_arguments(parser):
help="path to or containing the package.xml of a package")
action = parser.add_mutually_exclusive_group(required=False)
add = action.add_argument
add('--skip-pip', default=False, action='store_true', help="skip all pip rosdep keys")
add('--place-template-files', action='store_true',
help="places rpm/* template file(s) only")
add('--process-template-files', action='store_true',
Expand Down Expand Up @@ -107,6 +108,8 @@ def main(args=None, get_subs_fn=None):
os_data = create_default_installer_context().get_os_name_and_version()
os_name, os_version = os_data
ros_distro = os.environ.get('ROS_DISTRO', 'indigo')
if args.skip_pip:
os.environ['BLOOM_SKIP_PIP'] = '1'

# Allow args overrides
os_name = args.os_name or os_name
Expand Down
5 changes: 4 additions & 1 deletion bloom/generators/rpm/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -577,7 +577,10 @@ def _check_all_keys_are_valid(self, peer_packages, rosdistro):
retry=False)
if rule is None:
continue
if installer_key != default_installer_key:
if 'BLOOM_SKIP_PIP' in os.environ and os.environ['BLOOM_SKIP_PIP'] == '1' and \
installer_key == 'pip':
pass
elif installer_key != default_installer_key:
error("Key '{0}' resolved to '{1}' with installer '{2}', "
"which does not match the default installer '{3}'."
.format(key, rule, installer_key, default_installer_key))
Expand Down