ros2 / ros2/ros2cli

add support for additional build-types, e.g., ros2 pkg create --build-type anewbuildtype

Open
#427 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement help wanted
Dominant language
Python
Stars
262
Forks
228
Avg merge
23h 15m
Merged PRs (30d)
12

Description

This enhancement request is to enable the creation of packages for build-types other than c/c++ and python, i.e.,ros2 pkg create --build-type mynewbuildtype

Specifically I'm proposing the addition of an extension point for additional build-types. Something like this:

entry_points={
        'ros2cli.extension_point': [
            'ros2pkg.build_type = ros2pkg.build_type:BuildTypeExtension',
        ],

As an experiment I implemented this extension point and it was quite simple to work into ros2pkg.verb.command.py with minimal changes, no refactoring of existing build-types required. I've been using my implementation for creating javascript/rclnodejs projects. I would be glad to share a PR for your consideration. If included in ros2cli, we (the rclnodejs team) will release a new build type for creating nodejs projects that properly work with ros2 run and ros2 launch commands.

Thoughts?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in ros2pkg.verb.command.py and review the proposed ros2cli.extension_point entry for build types. Check how the existing C/C++ and Python build types are selected, then verify that an additional build type can be used with ros2 pkg create without changing those existing types.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, python
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.