You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
add_library(ALIAS) used ${target_lib} instead of ${target}: The alias target name expanded to dds-user-defaults:: (empty suffix) because target_lib was never defined. Fixed to use the correct variable ${target} → dds-user-defaults::dds_user_defaults_lib.
Malformed Generator Expressions in All 5 Submit Plugins
${PROJECT_BINARY_DIR/src} → ${PROJECT_BINARY_DIR}/src: The /src was inside the CMake variable braces, causing the expression to evaluate to an empty string. Affected: dds-submit-ssh, dds-submit-localhost, dds-submit-slurm, dds-submit-pbs, dds-submit-lsf.
Duplicate Link Libraries
dds_misc_lib listed twice in dds-commander, dds-submit-ssh, and dds-submit-localhost — removed the duplicates.
CMake Library Symlink Path Matching
Fixed regex pattern from /lib to /lib$: The original pattern incorrectly matched paths ending with /lib64 or similar, preventing the symlink creation. The exact match anchor ensures the symlink is only created when the lib directory is truly outside the standard location.
ARM Platform Architecture Detection
macOS ARM64 vs Linux aarch64: Added platform-specific architecture strings for ARM builds. macOS uses arm64 while Linux uses aarch64 for the same architecture family. This ensures precompiled worker binaries are correctly identified and deployed on both platforms.
🔧 Build Infrastructure
Boost.Process v1 Is Header-Only — No Library Component Needed
Removed process from Boost component search: Boost.Process v1 is a header-only library, so it must not be listed as a compiled component in find_package(Boost ... COMPONENTS ...). The previous configuration caused CMake to search for a libboost_process binary that does not exist, along with a fallback alias workaround.
Cleaned up dds-misc-lib link libraries: Boost::process removed from target_link_libraries in dds-misc-lib. Include paths are already provided through the Boost::boost header-only interface target, so Boost.Process v1 headers remain fully accessible without any explicit link target.
Dev Container Enhancements
Locale generation: Added en_US.UTF-8 locale generation to the dev container. This is required by Boost.Process and std::locale for proper string and process handling in the containerized environment.
Git configuration: Added postStartCommand to mark the workspace as a safe directory for git operations, resolving ownership mismatches between the mounted workspace (owned by root) and the container user (dds).
Dependency cleanup: Replaced openssh-client with libxml2-utils in the Dockerfile, and removed extensive SSH-agent forwarding documentation from devcontainer.json as it's no longer needed.
Dead Code Cleanup
Removed MiscCommon_LOCATION: Variable pointed to a non-existent directory and was never referenced by any CMakeLists.txt.
Removed IS_SET_DDS_INSTALL_PREFIX: Cache variable was set but never read anywhere in the project.
Consolidated CMAKE_MODULE_PATH: Merged two separate set() calls (where the second silently overwrote the first) into a single assignment including all three search directories.
[3.17.0] - 2026-03-16
🐛 Bug Fixes
Build Warning Fixes
Self-assignment warning in Process.h: Replaced the no-op self-assignment _filterForRealUserID = _filterForRealUserID with (void)_filterForRealUserID to silence the unused-argument warning cleanly (-Wself-assign)
Deprecated boost::asio::deadline_timer: Replaced all uses of the deprecated deadline_timer / boost::posix_time API with boost::asio::system_timer / std::chrono in Process.h and BaseChannelImpl.h (-Wdeprecated-declarations)
[[nodiscard]] warnings in Protobuf calls: Cast the return values of UnpackTo() (dds-commander) and PackFrom() (dds-submit-slurm) to void to suppress -Wunused-result
dds_tools_lib-session-tests link failure: Removed a redundant #include <boost/process.hpp> from TestSession.cpp. On Boost 1.90 the top-level header pulls in boost/process/v2/error.hpp and boost/process/v2/shell.hpp, which contain static initializers that require the compiled libboost_process (v2) library — a library that is not linked in this project. The bp namespace alias was already provided by Process.h via boost/process/v1.hpp.
🔧 Build Infrastructure
Dev Container Support
New .devcontainer/ configuration: Added a reproducible VS Code Dev Container based on debian:bookworm-slim with a multi-stage Dockerfile
Stage 1 (builder): Compiles Boost 1.90.0, abseil-cpp 20240722.1, and Protobuf v34.0 from source
Stage 2 (dev): Ships only the pre-built artifacts alongside Clang/LLVM 21 (compiler, clangd, clang-format, lld), CMake 4.2.3, ccache, git and make
Supports linux/amd64 and linux/arm64 via TARGETARCH
ccache persisted in a named Docker volume (dds-ccache) for fast incremental rebuilds
postCreateCommand automatically runs CMake configure (with ccache launchers) on first container open
VS Code extensions: vscode-clangd (replaces the C/C++ IntelliSense engine) and cmake-tools pre-installed