From 4cfa4db8df14fd5d46806680847decda23fec7e8 Mon Sep 17 00:00:00 2001 From: Toby Schneider Date: Fri, 19 Jan 2024 13:43:35 +1100 Subject: [PATCH] Release 3.1.3 --- CMakeLists.txt | 4 +- release.txt => release.md | 41 +++++++++++++++++-- src/apps/middleware/goby_tool/goby_tool.cpp | 23 +++++++++++ .../goby_tool/marshalling/protobuf.cpp | 23 +++++++++++ .../goby_tool/marshalling/protobuf.h | 23 +++++++++++ .../middleware/goby_tool/unified_log_tool.cpp | 23 +++++++++++ .../middleware/goby_tool/unified_log_tool.h | 23 +++++++++++ src/apps/middleware/log_tool/log_tool.cpp | 2 +- src/apps/zeromq/zeromq_tool/zeromq_tool.cpp | 23 +++++++++++ .../application/configuration_reader.cpp | 2 +- .../application/configuration_reader.h | 2 +- src/middleware/application/configurator.h | 2 +- src/middleware/application/tool.cpp | 27 +++++++++++- src/middleware/application/tool.h | 23 +++++++++++ src/moos/goby_moos_app.h | 2 +- 15 files changed, 232 insertions(+), 11 deletions(-) rename release.txt => release.md (98%) diff --git a/CMakeLists.txt b/CMakeLists.txt index ec3ba9e7..2f372dbc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,7 +58,7 @@ endif() set(GOBY_VERSION_MAJOR "3") set(GOBY_VERSION_MINOR "1") -set(GOBY_VERSION_PATCH "2") +set(GOBY_VERSION_PATCH "3") if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") @@ -88,7 +88,7 @@ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") else() message(STATUS "Compiling from release tarball (${GOBY_VERSION_MAJOR}.${GOBY_VERSION_MINOR}.${GOBY_VERSION_PATCH}).") - set(GOBY_VERSION_DATE "2023.12.19") + set(GOBY_VERSION_DATE "2024.01.19") endif() set(GOBY_VERSION "${GOBY_VERSION_MAJOR}.${GOBY_VERSION_MINOR}.${GOBY_VERSION_PATCH}") diff --git a/release.txt b/release.md similarity index 98% rename from release.txt rename to release.md index a9bd01bd..fcac4a16 100644 --- a/release.txt +++ b/release.md @@ -1,6 +1,41 @@ -Goby Release Notes (Major version 3) +# Goby Release Notes (Major version 3) -Version 3.1.2 +## Version 3.1.3 + +### General + +- Updates to configuration reader (called by ProtobufConfigurator) to better support creation of command line tools (of the style 'tool [--options]'). New `goby::middleware::ToolHelper` class for tools to use. + + Support for environmental variables + + Support for custom positional parameters to replace default ` ` + + Support for custom short (e.g., '-l' for '--library') command line options. +- New `goby` command line tool that unifies existing tools and apps into a single point of entry and adds new tools (most notable are `goby zeromq publish` and `goby zeromq subscribe`, allowing command line publish/subscribe to `gobyd`): + - `goby log`: Manage goby log files + + `convert`: Convert .goby log files to other formats [goby_log_tool] + - `goby launch`: Launch goby *.launch files [goby_launch] + - `goby zeromq`: Interact with ZeroMQ Goby pub/sub [goby_zeromq_tool] + - `terminate`: Terminate Goby applications [goby_terminate] + - `publish`: Publish a message (on interprocess) + - `subscribe`: Subscribe to messages (on interprocess) + - `playback`: Playback .goby log files [goby_playback] + - `daemon`: Publish/subscribe broker for interprocess and, optionally, intervehicle portal [gobyd] + - `logger`: Binary logger of interprocess messages [goby_logger] + - `coroner`: Monitoring of process health [goby_coroner] + - `intervehicle_portal`: Standalone intervehicle portal [goby_intervehicle_portal] + - `gps`: GPSD client that publishes data into Goby pub/sub [goby_gps] + - `frontseat_interface`: Interface to vehicle Frontseat system (control system) [goby_frontseat_interface] + - `geov`: Interface to Google Earth via GEOV (https://gobysoft.org/geov/) [goby_geov_interface] + - `liaison`: Web-based UI for control/monitoring of Goby pub/sub [goby_liaison] + - `opencpn`: Interface to the OpenCPN GUI [goby_opencpn_interface] + - `moos_gateway`: Gateway to the MOOS middleware [goby_moos_gateway] + - `goby protobuf`: Tools for the Google Protocol Buffers (protobuf) marshalling scheme + + `show`: Display definition for message + + + + +**************** + +## Version 3.1.2 ### Bugs @@ -9,7 +44,7 @@ Version 3.1.2 **************** -Version 3.1.1 +## Version 3.1.1 ### Bugs diff --git a/src/apps/middleware/goby_tool/goby_tool.cpp b/src/apps/middleware/goby_tool/goby_tool.cpp index ccd7c01b..6d1ed42f 100644 --- a/src/apps/middleware/goby_tool/goby_tool.cpp +++ b/src/apps/middleware/goby_tool/goby_tool.cpp @@ -1,3 +1,26 @@ +// Copyright 2024: +// GobySoft, LLC (2013-) +// Community contributors (see AUTHORS file) +// File authors: +// Toby Schneider +// +// +// This file is part of the Goby Underwater Autonomy Project Binaries +// ("The Goby Binaries"). +// +// The Goby Binaries are free software: you can redistribute them and/or modify +// them under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// The Goby Binaries are distributed in the hope that they will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Goby. If not, see . + #include "goby/middleware/application/configuration_reader.h" #include "goby/middleware/application/interface.h" #include "goby/middleware/application/tool.h" diff --git a/src/apps/middleware/goby_tool/marshalling/protobuf.cpp b/src/apps/middleware/goby_tool/marshalling/protobuf.cpp index ef930f36..6038cec4 100644 --- a/src/apps/middleware/goby_tool/marshalling/protobuf.cpp +++ b/src/apps/middleware/goby_tool/marshalling/protobuf.cpp @@ -1,3 +1,26 @@ +// Copyright 2024: +// GobySoft, LLC (2013-) +// Community contributors (see AUTHORS file) +// File authors: +// Toby Schneider +// +// +// This file is part of the Goby Underwater Autonomy Project Binaries +// ("The Goby Binaries"). +// +// The Goby Binaries are free software: you can redistribute them and/or modify +// them under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// The Goby Binaries are distributed in the hope that they will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Goby. If not, see . + #include #include "goby/middleware/application/tool.h" diff --git a/src/apps/middleware/goby_tool/marshalling/protobuf.h b/src/apps/middleware/goby_tool/marshalling/protobuf.h index 19027927..d2e47a1c 100644 --- a/src/apps/middleware/goby_tool/marshalling/protobuf.h +++ b/src/apps/middleware/goby_tool/marshalling/protobuf.h @@ -1,3 +1,26 @@ +// Copyright 2024: +// GobySoft, LLC (2013-) +// Community contributors (see AUTHORS file) +// File authors: +// Toby Schneider +// +// +// This file is part of the Goby Underwater Autonomy Project Binaries +// ("The Goby Binaries"). +// +// The Goby Binaries are free software: you can redistribute them and/or modify +// them under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// The Goby Binaries are distributed in the hope that they will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Goby. If not, see . + #include "goby/middleware/application/configuration_reader.h" #include "goby/middleware/application/interface.h" diff --git a/src/apps/middleware/goby_tool/unified_log_tool.cpp b/src/apps/middleware/goby_tool/unified_log_tool.cpp index 0cee11b7..06507604 100644 --- a/src/apps/middleware/goby_tool/unified_log_tool.cpp +++ b/src/apps/middleware/goby_tool/unified_log_tool.cpp @@ -1,3 +1,26 @@ +// Copyright 2024: +// GobySoft, LLC (2013-) +// Community contributors (see AUTHORS file) +// File authors: +// Toby Schneider +// +// +// This file is part of the Goby Underwater Autonomy Project Binaries +// ("The Goby Binaries"). +// +// The Goby Binaries are free software: you can redistribute them and/or modify +// them under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// The Goby Binaries are distributed in the hope that they will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Goby. If not, see . + #include "goby/middleware/application/tool.h" #include "unified_log_tool.h" diff --git a/src/apps/middleware/goby_tool/unified_log_tool.h b/src/apps/middleware/goby_tool/unified_log_tool.h index 2f03d00a..ab82e1dd 100644 --- a/src/apps/middleware/goby_tool/unified_log_tool.h +++ b/src/apps/middleware/goby_tool/unified_log_tool.h @@ -1,3 +1,26 @@ +// Copyright 2024: +// GobySoft, LLC (2013-) +// Community contributors (see AUTHORS file) +// File authors: +// Toby Schneider +// +// +// This file is part of the Goby Underwater Autonomy Project Binaries +// ("The Goby Binaries"). +// +// The Goby Binaries are free software: you can redistribute them and/or modify +// them under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// The Goby Binaries are distributed in the hope that they will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Goby. If not, see . + #ifndef GOBY_APPS_MIDDLEWARE_GOBY_TOOL_UNIFIED_LOG_TOOL_H #define GOBY_APPS_MIDDLEWARE_GOBY_TOOL_UNIFIED_LOG_TOOL_H diff --git a/src/apps/middleware/log_tool/log_tool.cpp b/src/apps/middleware/log_tool/log_tool.cpp index 9f951eef..dafb3712 100644 --- a/src/apps/middleware/log_tool/log_tool.cpp +++ b/src/apps/middleware/log_tool/log_tool.cpp @@ -1,4 +1,4 @@ -// Copyright 2019-2023: +// Copyright 2019-2024: // GobySoft, LLC (2013-) // Community contributors (see AUTHORS file) // File authors: diff --git a/src/apps/zeromq/zeromq_tool/zeromq_tool.cpp b/src/apps/zeromq/zeromq_tool/zeromq_tool.cpp index 35b5aaeb..ee08a631 100644 --- a/src/apps/zeromq/zeromq_tool/zeromq_tool.cpp +++ b/src/apps/zeromq/zeromq_tool/zeromq_tool.cpp @@ -1,3 +1,26 @@ +// Copyright 2024: +// GobySoft, LLC (2013-) +// Community contributors (see AUTHORS file) +// File authors: +// Toby Schneider +// +// +// This file is part of the Goby Underwater Autonomy Project Binaries +// ("The Goby Binaries"). +// +// The Goby Binaries are free software: you can redistribute them and/or modify +// them under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// The Goby Binaries are distributed in the hope that they will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Goby. If not, see . + #include "goby/middleware/marshalling/dccl.h" #include "goby/middleware/marshalling/json.h" #include "goby/middleware/marshalling/protobuf.h" diff --git a/src/middleware/application/configuration_reader.cpp b/src/middleware/application/configuration_reader.cpp index e6f84c94..eaa51d11 100644 --- a/src/middleware/application/configuration_reader.cpp +++ b/src/middleware/application/configuration_reader.cpp @@ -1,4 +1,4 @@ -// Copyright 2012-2021: +// Copyright 2012-2024: // GobySoft, LLC (2013-) // Massachusetts Institute of Technology (2007-2014) // Community contributors (see AUTHORS file) diff --git a/src/middleware/application/configuration_reader.h b/src/middleware/application/configuration_reader.h index 3fc7b4a1..2cfe5941 100644 --- a/src/middleware/application/configuration_reader.h +++ b/src/middleware/application/configuration_reader.h @@ -1,4 +1,4 @@ -// Copyright 2012-2021: +// Copyright 2012-2024: // GobySoft, LLC (2013-) // Massachusetts Institute of Technology (2007-2014) // Community contributors (see AUTHORS file) diff --git a/src/middleware/application/configurator.h b/src/middleware/application/configurator.h index 6ed742b0..87649410 100644 --- a/src/middleware/application/configurator.h +++ b/src/middleware/application/configurator.h @@ -1,4 +1,4 @@ -// Copyright 2018-2021: +// Copyright 2018-2024: // GobySoft, LLC (2013-) // Community contributors (see AUTHORS file) // File authors: diff --git a/src/middleware/application/tool.cpp b/src/middleware/application/tool.cpp index cc0b6e94..89fcbf2c 100644 --- a/src/middleware/application/tool.cpp +++ b/src/middleware/application/tool.cpp @@ -1,3 +1,27 @@ +// Copyright 2024: +// GobySoft, LLC (2013-) +// Community contributors (see AUTHORS file) +// File authors: +// Toby Schneider +// Not Committed Yet +// +// +// This file is part of the Goby Underwater Autonomy Project Libraries +// ("The Goby Libraries"). +// +// The Goby Libraries are free software: you can redistribute them and/or modify +// them under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 2.1 of the License, or +// (at your option) any later version. +// +// The Goby Libraries are distributed in the hope that they will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with Goby. If not, see . + #include #include @@ -77,7 +101,8 @@ bool goby::middleware::ToolHelper::help(int* action_for_help) << goby::util::esc_nocolor << ": " << ev_options.cfg().short_help_msg(); if (ev_options.cfg().has_external_command()) - std::cerr << " (" << ev_options.cfg().external_command() << ")"; + std::cerr << " [" << goby::util::esc_blue << ev_options.cfg().external_command() + << goby::util::esc_nocolor << "]"; std::cerr << std::endl; } diff --git a/src/middleware/application/tool.h b/src/middleware/application/tool.h index 6054770b..b4251bbd 100644 --- a/src/middleware/application/tool.h +++ b/src/middleware/application/tool.h @@ -1,3 +1,26 @@ +// Copyright 2024: +// GobySoft, LLC (2013-) +// Community contributors (see AUTHORS file) +// File authors: +// Toby Schneider +// +// +// This file is part of the Goby Underwater Autonomy Project Libraries +// ("The Goby Libraries"). +// +// The Goby Libraries are free software: you can redistribute them and/or modify +// them under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 2.1 of the License, or +// (at your option) any later version. +// +// The Goby Libraries are distributed in the hope that they will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with Goby. If not, see . + #ifndef GOBY_MIDDLEWARE_APPLICATION_TOOL_H #define GOBY_MIDDLEWARE_APPLICATION_TOOL_H diff --git a/src/moos/goby_moos_app.h b/src/moos/goby_moos_app.h index 729770b6..50be7d68 100644 --- a/src/moos/goby_moos_app.h +++ b/src/moos/goby_moos_app.h @@ -1,4 +1,4 @@ -// Copyright 2011-2023: +// Copyright 2011-2024: // GobySoft, LLC (2013-) // Massachusetts Institute of Technology (2007-2014) // Community contributors (see AUTHORS file)