Earlier this week I generated the complete changelog for Humble using a script. I then spent several hours reading that changelog, looking for things to add to the short-form changelog (I think my eyes are now permanently glazed over). While doing this, what I was looking for were user-facing APIs or features, not bug-fixes. What I came up with is the following list of changes that would ideally be documented for Humble. Note that there are probably both false-positives (there are things on the list that don't need to be documented) as well as false-negatives (I may have missed a new feature here or there). Still, I think this represents a decent overall look at everything new in Humble. Items that are already checked off already have a release note, so no need to do additional work there.
Type Adaptation ([rclcpp] Type Adaptation feature rclcpp#1557 , Add type adaption example examples#300 )
Overlay include changes
ament_cmake_gen_version_h package (Add ament_cmake_gen_version_h package ament/ament_cmake#198 )
FindPython3 instead of FindPythonInterp? (Use FindPython3 instead of FindPythonInterp ament/ament_cmake#355 )
ament_cmake_copyright file exclusion ([ament_cmake_copyright] Add file exclusion support ament/ament_lint#328 )
ament_generate_version_header (Add ament_generate_version_header ament/ament_cmake#377 ) (possibly obsoletes ament_cmake_gen_version_h
ament_cmake_uncrustify file exclusion ([ament_cmake_uncrustify] Add file exclude support ament/ament_lint#330 )
SPDX identifiers for package licenses (Add SPDX identifiers to the licenses. ament/ament_lint#315 )
Deprecation of void shared_ptr subscription callback (Deprecate the void shared_ptr<MessageT> subscription callback signatures rclcpp#1713 , Fix deprecated subscriber callback warnings examples#323 , Fix deprecated sub callback warnings ros-visualization/interactive_markers#84 , and others)
Type Adaptation with intra-process comms in same context for passing opaque handles
wait_for_all_acked (Add wait_for_all_acked support rclcpp#1662 , Add an example about how to use wait_for_all_acked examples#316 , Add rmw_publisher_wait_for_all_acked support rmw#296 , and others)
rclcpp::WaitSet (Add wait set examples examples#315 )
rclpy SIGINT/SIGTERM handling (Shutdown asynchronously when sigint is received rclpy#844 , Update python nodes sigint/sigterm handling examples#330 , and others)
Deprecation of tf2_geometry_msgs.h (Deprecate tf2_geometry_msgs.h geometry2#418 )
Launch boolean substitutions (Add boolean substitutions launch#598 )
Launch environment variable scoping (Support scoping environment variables launch#601 )
Launch evaluate math in python (Evaluate math symbols and functions in python expression launch#557 )
Launch_testing pytest (First prototype of native pytest plugin for launch based tests launch#528 )
Launch Executable description (Adding Executable description class launch#454 )
Launch match target action (event handlers: Allow to match the target action with a callable and not only with an object instance launch#540 )
Launch AppendEnvironmentVariable (Add AppendEnvironmentVariable action launch#543 )
Launch ClearLaunchConfigurations (Feature clear launch configs launch#515 )
Launch_ros parameter substitution (Add parameter substitution launch_ros#297 )
Launch_ros Composable parameters from file (Set parameters from file for composable nodes launch_ros#281 )
Launch_ros alternate parameter file configuration (Support both parameter file configurations for composable nodes launch_ros#259 )
Launch_ros SetParametersFromFile (launch_ros action to set parameters for all nodes in scope using a global parameter yaml file launch_ros#260 )
Launch_ros change push-ros-namespace to push_ros_namespace (Add push_ros_namespace alias to push-ros-namespace launch_ros#250 )
Launch_ros new ros_arguments for Node (Add ros_arguments option to Node action launch_ros#249 )
Launch_ros RosTimer action (ROS Timer Action launch_ros#244 )
Launch_ros XML composable containers (Support container in frontend launch_ros#235 )
launch_testing Remove deprecated ready_fn ([launch_testing] remove deprecated ready_fn feature launch#589 )
rosidl_get_typesupport_target (Add rosidl_get_typesupport_target and deprecate rosidl_target_interfaces rosidl#606 )
content-filtered-topics (add content-filtered-topic interfaces rcl#894 , ContentFilteredTopic Design Proposal. design#282 , Add support for content filtered topics rmw#302 , Add support for user-specified content filters rmw_connextdds#68 , Add content filter topic feature rmw_fastrtps#513 , and others)
Events Executor support (Add Events Executor rcl#839 , Add EventsExecutor rmw#286 , Add EventsExecutor rmw_fastrtps#468 , and others)
Client/service QoS getters (Add client/service QoS getters rcl#941 , Add client/service QoS getters rmw_fastrtps#560 , and others)
Allow users to disable loaned messages (introduce ROS_DISABLE_LOAN_MSG to disable can_loan_messages. rcl#949 )
rclcpp Removal of APIs deprecated during Galactic (remove things that were deprecated during galactic rclcpp#1913 )
Deprecate CamelCase rclcpp_components methods (Deprecate method names that use CamelCase in rclcpp_components rclcpp#1716 )
Allow selection of executor in rclcpp_components_register_node (Select executor in node registration rclcpp#1898 )
Auto-transition lifecycle entities (Automatically transition lifecycle entities when node transitions rclcpp#1863 )
Deprecation of get_env.h in favor of env.h (Deprecate get_env.h and move content to env.{h,c} rcutils#340 )
Client/service QoS getters (Add client/service QoS getters rmw#314 )
Sequence numbers in message_info (Add sequence numbers to message info structure rmw#318 )
Certificate Revocation Lists (Add support for Certificate Revocation List files. rmw_dds_common#52 )
Changed default Fast-RTPS publication mode to synchronous (Change default to synchronous rmw_fastrtps#571 )
robot_state_publisher add frame_prefix parameter (Restore tf_prefix support for ROS2 ros/robot_state_publisher#159 )
robot_state_publisher subscription SensorDataQoS (Make joint_states subscription QoS configurable; default to SensorDataQoS ros/robot_state_publisher#179 )
robot_state_publisher always publish fixed frames to /tf_static (Always publish fixed frames to /tf_static ros/robot_state_publisher#158 )
ros2launch launch-prefix (Resolves #37 - Added --launch-prefix argument for 'ros2 launch' command launch_ros#254 )
ros2launch launch-prefix-filter (Add regex filter for selective launch-prefix application launch_ros#261 )
ros2param command-line argument interpretation (Fix how ros2 param interprets command-line arguments. ros2cli#684 )
ros2param deprecate command-line arguments (add '--write' option to avoid an unintentional data loss. ros2cli#638 )
ros2cli always line buffer (Make the ros2cli output always line buffered ros2cli#659 )
ros2pkg use local git config instead of global (Use local git config instead of global ros2cli#693 )
ros2pkg automatically add LICENSE files for known licenses (Generate LICENSE files on ros2 pkg create. ros2cli#650 )
ros2topic output data in YAML "block" style (add yaml dump flow style. ros2cli#698 )
ros2topic echo print once (support ros2topic echo once option. ros2cli#695 )
ros2topic regex filter (Feature: ros2topic echo filtering with python expression ros2cli#654 )
ros2topic pub make QoS Reliable and Transient-local (Change default QoSProfile for pub ros2cli#653 )
ros2topic pub add option to wait for N matching subscriptions (Add option in ros2 topic pub to wait for N matching subscriptions, use N=1 by default when combined with --times ros2cli#642 )
ros2topic pub/echo qos autodetection (QoS autodetection ros2cli#613 )
ros2topic echo deprecate --lost-messages (Make Lost Messages option ON by default ros2cli#633 )
rosbag2 bag rewrite (Expose bag_rewrite as ros2 bag convert rosbag2#921 )
rosbag2 start time play option (Add start time play option rosbag2#931 )
rosbag2 ignore-leaf-topics (topics without a publisher) (Add "ignore leaf topics" option to recorder rosbag2#925 )
rosbag2 add ability to start paused (Add pause/resume options to the bag recorder rosbag2#905 , Add --start-paused option to ros2 bag play rosbag2#904 )
rosbag2 add ability to use keyboard to pause/resume/play-next (keyboard controls for pause/resume toggle and play-next: rosbag2#847 )
rosbag2 add snapshot mode (only start writing once service is called (Add --snapshot-mode argument to the "record" verb rosbag2#851 )
rosbag2 add delay option (only start playing after delay) (Add delay option rosbag2#789 )
rosbag2 seek interface (added seek interface rosbag2#836 )
rosbag2 burst mode (play as fast as possible) (Add burst-mode to Player rosbag2#977 )
rosidl_generator_c implement copy and equality operators for C messages (Implement copy function for C messages rosidl#650 , Implement equality operator function for C messages. rosidl#648 )
Update to Connext 6
sensor_msgs Add YUV420 and YUV444 to image encodings (Add YUV420 and YUV444 to image encodings common_interfaces#172 )
sensor_msgs add equidistant distortion model (Add equidistant distortion model common_interfaces#160 )
shape_msgs Add PRISM type to SolidPrimitive (Add prism type to the SolidPrimitive.msg (#166) common_interfaces#167 )
tf2 change TF2Error names to be more descriptive (Change TF2Error names to be a bit more descriptive. geometry2#349 )
tf2_eigen add transforms for twists and wrenches (Add doTransform function for twists or wrenches geometry2#406 , Feature: Add doTransform for Wrench messages geometry2#476 )
tf2_ros use dedicated callback group and executor for timer (Isolate timer interface geometry2#447 )
tf2_ros Add a more intuitive CLI for static_transform_publisher (More Intuitive CLI for Static Transform Publisher geometry2#392 )
rviz2 Add property for configuring camera plugins far plane distance (Add far plane distance property to camera rviz#849 )
rviz2 Display triangle textures with gradients (Triangle lists support textures rviz#719 )
rviz2 Show mass properties in robot model (mass property visualization rviz#714 )
rviz2 Add ability to show YUV images in rviz (Yuv to rgb changes rviz#701 )
rclpy Add LifecycleNodes (Implement managed nodes rclpy#865 )
rclpy Add Clock.sleep_until and Clock.sleep_for (Add Clock.sleep_until rclpy#858 , Add Clock.sleep_for using sleep_until rclpy#864 )
rclcpp Add Clock::sleep_until (Re-add Clock::sleep_until rclcpp#1814 )
Earlier this week I generated the complete changelog for Humble using a script. I then spent several hours reading that changelog, looking for things to add to the short-form changelog (I think my eyes are now permanently glazed over). While doing this, what I was looking for were user-facing APIs or features, not bug-fixes. What I came up with is the following list of changes that would ideally be documented for Humble. Note that there are probably both false-positives (there are things on the list that don't need to be documented) as well as false-negatives (I may have missed a new feature here or there). Still, I think this represents a decent overall look at everything new in Humble. Items that are already checked off already have a release note, so no need to do additional work there.
void shared_ptr<MessageT>subscription callback signatures rclcpp#1713, Fix deprecated subscriber callback warnings examples#323, Fix deprecated sub callback warnings ros-visualization/interactive_markers#84, and others)Launch Executable description (Adding Executable description class launch#454)Launch_ros alternate parameter file configuration (Support both parameter file configurations for composable nodes launch_ros#259)Launch_ros change push-ros-namespace to push_ros_namespace (Addpush_ros_namespacealias topush-ros-namespacelaunch_ros#250)launch_testing Remove deprecated ready_fn ([launch_testing] remove deprecatedready_fnfeature launch#589)ros2 bag convertrosbag2#921)ros2 bag playrosbag2#904)