From e83774f927214889ca8870f25d216a3f8e78b83e Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Tue, 12 Dec 2023 10:19:53 -0500 Subject: [PATCH 01/22] docs typo and submodule version bump --- README.md | 3 ++- build_system/utilities/norlab-build-system | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 14aca33b..b8a2b837 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,8 @@ NBS is deployed on our [TeamCity](https://www.jetbrains.com/teamcity/) continuou - The `develop` branch can only be merged through a pull-request from any `` branchs. Any contributor can submit a pull request to the `develop` branch; - The `master` branch can only be merged from the `release` branch through a pull-request by a repository admin. -In both cases submiting a pull request will trigger a build configuration on our build system and the pull request will be granted if the build/test run succeede. + +In both cases submitting a pull request will trigger a build configuration on our build system and the pull request will be granted if the build/test run succeed. **Current build matrix:** `[latest] x [x86, arm64] x [ubuntu] x [bionic, focal, jammy] x [Release, RelWithDebInfo, MinSizeRel]` diff --git a/build_system/utilities/norlab-build-system b/build_system/utilities/norlab-build-system index 90228cf6..f05a1f2b 160000 --- a/build_system/utilities/norlab-build-system +++ b/build_system/utilities/norlab-build-system @@ -1 +1 @@ -Subproject commit 90228cf6a1dbd6095cb298b3f6d1c65b5f3c06e4 +Subproject commit f05a1f2b8fd9afc18bd64c14f3ade75af3e1b436 From bb447bcb8e7f34006907d8b4966f5e6ce95bdbaa Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Tue, 12 Dec 2023 10:41:22 -0500 Subject: [PATCH 02/22] submodule version bump --- build_system/utilities/norlab-shell-script-tools | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_system/utilities/norlab-shell-script-tools b/build_system/utilities/norlab-shell-script-tools index c77cab77..d001bdb0 160000 --- a/build_system/utilities/norlab-shell-script-tools +++ b/build_system/utilities/norlab-shell-script-tools @@ -1 +1 @@ -Subproject commit c77cab779dc376dc2884193ac6a8b969b6a5d59a +Subproject commit d001bdb0daea0c3ba30acb7d88bd3c05744072f8 From 53e2749bfe0ee774e696838d1ded01161813618d Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Tue, 12 Dec 2023 13:13:26 -0500 Subject: [PATCH 03/22] docs: improve README.md, fix typo, mod changelog version to 1.4.0. --- CHANGELOG.rst | 2 +- README.md | 14 ++++++++------ build_system/utilities/norlab-build-system | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f9d19042..f19ecbd2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package libpointmatcher ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -2.0.0 (2023-12-15) +1.4.0 (2023-12-15) ----------------- * fix: N2ST path resolution in dependencies-doc docker image * refactor: move libpointmatcher build-system logic to norlab-build-system submodule diff --git a/README.md b/README.md index b8a2b837..dd0b786a 100644 --- a/README.md +++ b/README.md @@ -97,17 +97,19 @@ Please use our [github's issue tracker](http://github.com/ethz-asl/libpointmatch ## Codebase -Libpointmatcher codebase now integrate [norlab-build-system (NBS)](https://github.com/norlab-ulaval/norlab-build-system) and [norlab-shell-script-tools (N2ST)](https://github.com/norlab-ulaval/norlab-shell-script-tools). `NBS` is a build-infrastructure-agnostic build system custom-made for our need at NorLab and `N2ST` is library of shell script, function for shell script development and a shell testing tools leveraging `bats-core`. +Libpointmatcher codebase now integrate [norlab-build-system (NBS)](https://github.com/norlab-ulaval/norlab-build-system) and [norlab-shell-script-tools (N2ST)](https://github.com/norlab-ulaval/norlab-shell-script-tools). `NBS` is a build-infrastructure-agnostic build system custom-made to meet our needs in robotic software engineering at NorLab and `N2ST` +library of shell function and shell script as well as a shell testing tools leveraging _**bats-core**_ and _**docker**_ to speed up shell script development. -NBS is deployed on our [TeamCity](https://www.jetbrains.com/teamcity/) continuous integration/deployment server and oversees both protected branch of the [libpointmatcher](https://github.com/norlab-ulaval/libpointmatcher) GitHub repository: the `master` branch and the `develop` branch. +NBS is deployed on our [TeamCity](https://www.jetbrains.com/teamcity/) continuous integration/deployment server and oversees protected branches of the [libpointmatcher](https://github.com/norlab-ulaval/libpointmatcher) GitHub repository: -- The `develop` branch can only be merged through a pull-request from any `` branchs. Any contributor can submit a pull request to the `develop` branch; -- The `master` branch can only be merged from the `release` branch through a pull-request by a repository admin. +- The `develop` branch can only be merged through a pull-request from any `` branches. Any contributor can submit a pull request to the `develop` branch; +- the `release` branch is a revision and preparation branch where we can freeze the codebase in a given state without stalling to `develop` branch progression; +- The `master` branch can only be merged through a pull-request from the `release` branch. Only repository admin can submit a PR to the `master` branch. -In both cases submitting a pull request will trigger a build configuration on our build system and the pull request will be granted if the build/test run succeed. +In all cases, submitting a pull request to `develop` or `master` will trigger a build/test configuration on our build system and the pull request will be granted if the build/test run succeed. **Current build matrix:** -`[latest] x [x86, arm64] x [ubuntu] x [bionic, focal, jammy] x [Release, RelWithDebInfo, MinSizeRel]` +`[latest] x [x86, arm64] x [ubuntu] x [bionic, focal] x [Release, RelWithDebInfo, MinSizeRel]` ### Development workflow diff --git a/build_system/utilities/norlab-build-system b/build_system/utilities/norlab-build-system index f05a1f2b..acdbcda9 160000 --- a/build_system/utilities/norlab-build-system +++ b/build_system/utilities/norlab-build-system @@ -1 +1 @@ -Subproject commit f05a1f2b8fd9afc18bd64c14f3ade75af3e1b436 +Subproject commit acdbcda985d41c0766d6c1e32841b347393b24db From c6a0779417ef4fd640daf95dbe86c2cffb03108f Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Tue, 12 Dec 2023 13:14:24 -0500 Subject: [PATCH 04/22] refactor: bump LPM version number in C++ header to 1.4.0 --- pointmatcher/PointMatcher.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pointmatcher/PointMatcher.h b/pointmatcher/PointMatcher.h index 57760726..c6acefd6 100644 --- a/pointmatcher/PointMatcher.h +++ b/pointmatcher/PointMatcher.h @@ -70,9 +70,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. //! version of the Pointmatcher library as string -#define POINTMATCHER_VERSION "1.3.1" +#define POINTMATCHER_VERSION "1.4.0" //! version of the Pointmatcher library as an int -#define POINTMATCHER_VERSION_INT 10301 +#define POINTMATCHER_VERSION_INT 10400 //! Functions and classes that are not dependant on scalar type are defined in this namespace namespace PointMatcherSupport From 08e515a1703ed7dabfbef1e7bb300f198fe1aba6 Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Tue, 12 Dec 2023 13:33:28 -0500 Subject: [PATCH 05/22] docs: README.md improvement to the *Contributing* section --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index dd0b786a..1c6b4ab1 100644 --- a/README.md +++ b/README.md @@ -95,18 +95,19 @@ described [here](doc/ICPIntro.md) in more detail. Please use our [github's issue tracker](http://github.com/ethz-asl/libpointmatcher/issues) to report bugs. If you are running the library on Ubuntu, copy-paste the output of the script [listVersionsUbuntu.sh](https://github.com/norlab-ulaval/libpointmatcher/blob/master/utest/listVersionsUbuntu.sh) to simplify the search of an answer. -## Codebase +## Codebase development -Libpointmatcher codebase now integrate [norlab-build-system (NBS)](https://github.com/norlab-ulaval/norlab-build-system) and [norlab-shell-script-tools (N2ST)](https://github.com/norlab-ulaval/norlab-shell-script-tools). `NBS` is a build-infrastructure-agnostic build system custom-made to meet our needs in robotic software engineering at NorLab and `N2ST` -library of shell function and shell script as well as a shell testing tools leveraging _**bats-core**_ and _**docker**_ to speed up shell script development. +Libpointmatcher codebase now integrate [norlab-build-system (NBS)](https://github.com/norlab-ulaval/norlab-build-system) and [norlab-shell-script-tools (N2ST)](https://github.com/norlab-ulaval/norlab-shell-script-tools). +`NBS` is a build-infrastructure-agnostic build system custom-made to meet our needs in robotic software engineering at NorLab and `N2ST` is a library of shell script functions as well as a shell testing tools leveraging _**bats-core**_ and _**docker**_ . +`N2ST` purpose is to speed up shell script development and improve reliability. -NBS is deployed on our [TeamCity](https://www.jetbrains.com/teamcity/) continuous integration/deployment server and oversees protected branches of the [libpointmatcher](https://github.com/norlab-ulaval/libpointmatcher) GitHub repository: +`NBS` is deployed on our [TeamCity](https://www.jetbrains.com/teamcity/) continuous integration/deployment server and oversees protected branches of the [libpointmatcher](https://github.com/norlab-ulaval/libpointmatcher) GitHub repository: - The `develop` branch can only be merged through a pull-request from any `` branches. Any contributor can submit a pull request to the `develop` branch; - the `release` branch is a revision and preparation branch where we can freeze the codebase in a given state without stalling to `develop` branch progression; - The `master` branch can only be merged through a pull-request from the `release` branch. Only repository admin can submit a PR to the `master` branch. -In all cases, submitting a pull request to `develop` or `master` will trigger a build/test configuration on our build system and the pull request will be granted if the build/test run succeed. +In any cases, submitting a pull request to `develop` or `master` will trigger a build/test configuration on our build system and the pull request will be granted if the build/test run succeed. **Current build matrix:** `[latest] x [x86, arm64] x [ubuntu] x [bionic, focal] x [Release, RelWithDebInfo, MinSizeRel]` From 88786f03f42f0bd166e66950faa08ef4c239fc35 Mon Sep 17 00:00:00 2001 From: boxanm <47394922+boxanm@users.noreply.github.com> Date: Wed, 13 Dec 2023 16:44:02 +0000 Subject: [PATCH 06/22] Modify Licence year --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index e9f13856..9703c25e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2010-2021, the libpointmatcher authors +Copyright (c) 2010-2023, the libpointmatcher authors All rights reserved. Redistribution and use in source and binary forms, with or without From 8371f36bdd54526d04725c26975b33337d4d938a Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Thu, 14 Dec 2023 13:06:12 -0500 Subject: [PATCH 07/22] fix: make run_bats_core_test_in_n2st.bash script able to automatically set the default tests directory from within an interactive session --- build_system/tests/run_bats_core_test_in_n2st.bash | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/build_system/tests/run_bats_core_test_in_n2st.bash b/build_system/tests/run_bats_core_test_in_n2st.bash index 8486eaf9..1a2fcb61 100644 --- a/build_system/tests/run_bats_core_test_in_n2st.bash +++ b/build_system/tests/run_bats_core_test_in_n2st.bash @@ -1,10 +1,8 @@ #!/bin/bash # ================================================================================================= -# Execute '' repo shell script tests via 'norlab-shell-script-tools' library +# Execute libpoitmatcher repo shell script tests via 'norlab-shell-script-tools' library # -# 1. ToDo: Copy this script somewhere in your superproject -# 2. (optional) ToDo: set N2ST_PATH="" -# 3. Execute the script +# Note the script can be executed from anywhere as long as its inside the libpointmatcher repository # # Usage: # $ bash run_bats_core_test_in_n2st.bash ['[/]' ['']] @@ -14,12 +12,16 @@ # - ['/'] A specific bats file to run, default will # run all bats file in the test directory # -# Globals: -# Read N2ST_PATH Default to "./utilities/norlab-shell-script-tools" +# Globals: none # # ================================================================================================= OPTIONS="$@" +if [[ -z $OPTIONS ]]; then + # Set to default bats tests directory if none specified + OPTIONS="build_system/tests/tests_bats/" +fi + N2ST_PATH="build_system/utilities/norlab-shell-script-tools" function n2st::run_n2st_testsing_tools(){ From e66b0d15f154275e2d66717fb9a52a86df101130 Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Fri, 15 Dec 2023 01:36:57 -0500 Subject: [PATCH 08/22] refactor: fix LPM build system root path resolution. Added .env.libpointmatcher at root to resolve path, top dir name and set prompt acronym for N2ST --- .env.libpointmatcher | 25 +++++++++++++++++++ ...un_all_docker_dryrun_and_config_tests.bash | 3 ++- .../tests/run_bats_core_test_in_n2st.bash | 2 +- ...t_lpm_crawl_dependencies_build_matrix.bats | 10 ++++---- 4 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 .env.libpointmatcher diff --git a/.env.libpointmatcher b/.env.libpointmatcher new file mode 100644 index 00000000..9734ba72 --- /dev/null +++ b/.env.libpointmatcher @@ -0,0 +1,25 @@ +# ================================================================================================= +# +# Set project related environment variables. Those are available for convenience +# and are also required by 'norlab-shell-script-tools' library. +# +# Usage: +# +# Important! Source this file from 'libpointmatcher' repository root +# $ cd +# $ set -o allexport && source .env.libpointmatcher && set +o allexport +# +# ================================================================================================= + +PROJECT_PROMPT_NAME='LPM' + +PROJECT_GIT_REMOTE_URL="https://github.com/norlab-ulaval/libpointmatcher" +PROJECT_GIT_NAME=$( basename "${PROJECT_GIT_REMOTE_URL}" .git ) + +# Programaticaly fetch source code information +PROJECT_ROOT=$( git rev-parse --show-toplevel ) +PROJECT_SRC_NAME="$( basename ${PROJECT_ROOT} )" + +LPM_BUILD_SYSTEM_PATH="${PROJECT_ROOT}/build_system" +N2ST_PATH="${PROJECT_ROOT}/build_system/utilities/norlab-shell-script-tools" +NBS_PATH="${PROJECT_ROOT}/build_system/utilities/norlab-build-system" diff --git a/build_system/tests/run_all_docker_dryrun_and_config_tests.bash b/build_system/tests/run_all_docker_dryrun_and_config_tests.bash index 553befce..1ed0f9c3 100644 --- a/build_system/tests/run_all_docker_dryrun_and_config_tests.bash +++ b/build_system/tests/run_all_docker_dryrun_and_config_tests.bash @@ -7,7 +7,8 @@ # # -_PATH_TO_SCRIPT="$(realpath "${BASH_SOURCE[0]}")" +#_PATH_TO_SCRIPT="$(realpath "${BASH_SOURCE[0]}")" +_PATH_TO_SCRIPT="$(realpath "$0")" SCRIPT_DIR_PATH="$(dirname "${_PATH_TO_SCRIPT}")" TEST_DIR="$SCRIPT_DIR_PATH/tests_docker_dryrun_and_config" diff --git a/build_system/tests/run_bats_core_test_in_n2st.bash b/build_system/tests/run_bats_core_test_in_n2st.bash index 1a2fcb61..f4e6d29c 100644 --- a/build_system/tests/run_bats_core_test_in_n2st.bash +++ b/build_system/tests/run_bats_core_test_in_n2st.bash @@ -1,6 +1,6 @@ #!/bin/bash # ================================================================================================= -# Execute libpoitmatcher repo shell script tests via 'norlab-shell-script-tools' library +# Execute libpointmatcher repo shell script tests via 'norlab-shell-script-tools' library # # Note the script can be executed from anywhere as long as its inside the libpointmatcher repository # diff --git a/build_system/tests/tests_bats/test_lpm_crawl_dependencies_build_matrix.bats b/build_system/tests/tests_bats/test_lpm_crawl_dependencies_build_matrix.bats index c954fb82..fbf779db 100644 --- a/build_system/tests/tests_bats/test_lpm_crawl_dependencies_build_matrix.bats +++ b/build_system/tests/tests_bats/test_lpm_crawl_dependencies_build_matrix.bats @@ -68,7 +68,7 @@ teardown() { # ====Test casses================================================================================== @test "${TESTED_FILE} › dependencies image › execute ok › expect pass" { -# skip "tmp mute" # ToDo: on task end >> delete this line ← +# skip "dev" # ToDo: on task end >> mute this line ← # run bash "${TESTED_FILE}" "${DOTENV_BUILD_MATRIX}" --fail-fast -- build >&3 run bash "${TESTED_FILE}" "${DOTENV_BUILD_MATRIX}" --fail-fast -- build @@ -78,21 +78,21 @@ teardown() { } @test "${TESTED_FILE} › --help as first argument › execute ok › expect pass" { -# skip "tmp mute" # ToDo: on task end >> delete this line ← +# skip "dev" # ToDo: on task end >> mute this line ← run bash "${TESTED_FILE}" --help assert_success - assert_output --regexp .*"Starting".*"${TESTED_FILE}".*"\$".*"${TESTED_FILE}".*"[--help]".*"<.env.build_matrix.*>".*"[]".*"[".*"]".*"Mandatory argument:".*"<.env.build_matrix.*>".*"Optional arguments:".*"-h, --help".*"--docker-debug-logs".*"--fail-fast" + assert_output --regexp .*"Starting".*"${TESTED_FILE}".*"\$".*"${TESTED_FILE} \[--help\] <.env.build_matrix.*> \[\] \[-- \]".*"Mandatory argument:".*"<.env.build_matrix.*>".*"Optional arguments:".*"-h, --help".*"--docker-debug-logs".*"--fail-fast" refute_output --regexp .*"Starting".*"${TESTED_FILE}".*"[NBS]".*"Build images specified in".*"'${COMPOSE_FILE}'".*"following".*"${DOTENV_BUILD_MATRIX_NAME}" } @test "${TESTED_FILE} › second arg: --help › execute ok › expect pass" { -# skip "tmp mute" # ToDo: on task end >> delete this line ← +# skip "dev" # ToDo: on task end >> mute this line ← run bash "${TESTED_FILE}" --fail-fast --help assert_success - assert_output --regexp .*"Starting".*"${TESTED_FILE}".*"\$".*"${TESTED_FILE}".*"[--help]".*"<.env.build_matrix.*>".*"[]".*"[".*"]".*"Mandatory argument:".*"<.env.build_matrix.*>".*"Optional arguments:".*"-h, --help".*"--docker-debug-logs".*"--fail-fast" + assert_output --regexp .*"Starting".*"${TESTED_FILE}".*"\$".*"${TESTED_FILE} \[--help\] <.env.build_matrix.*> \[\] \[-- \]".*"Mandatory argument:".*"<.env.build_matrix.*>".*"Optional arguments:".*"-h, --help".*"--docker-debug-logs".*"--fail-fast" refute_output --regexp .*"Starting".*"${TESTED_FILE}".*"[NBS]".*"Build images specified in".*"'${COMPOSE_FILE}'".*"following".*"${DOTENV_BUILD_MATRIX_NAME}" } From 46305219bfe43ba7a02c066b8820a7790f4f3c37 Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Fri, 15 Dec 2023 02:07:54 -0500 Subject: [PATCH 09/22] docs: add build system shield.io and update git submodule instructions --- .env.libpointmatcher | 22 ++++++++++++++++------ README.md | 37 ++++++++++++++++++++++++++----------- 2 files changed, 42 insertions(+), 17 deletions(-) diff --git a/.env.libpointmatcher b/.env.libpointmatcher index 9734ba72..966b613b 100644 --- a/.env.libpointmatcher +++ b/.env.libpointmatcher @@ -13,13 +13,23 @@ PROJECT_PROMPT_NAME='LPM' +# ....Programaticaly fetch source code information................................................. PROJECT_GIT_REMOTE_URL="https://github.com/norlab-ulaval/libpointmatcher" PROJECT_GIT_NAME=$( basename "${PROJECT_GIT_REMOTE_URL}" .git ) +PROJECT_PATH=$( git rev-parse --show-toplevel ) +PROJECT_SRC_NAME="$( basename ${PROJECT_PATH} )" -# Programaticaly fetch source code information -PROJECT_ROOT=$( git rev-parse --show-toplevel ) -PROJECT_SRC_NAME="$( basename ${PROJECT_ROOT} )" +# ....Set LPM related environment variable with their own prefix................................... +# Note: Those with "PROJECT_" prefix will get eventualy overiden in the case where N2ST is used +# as a library. Using generic testing logic require that environment variables with +# "PROJECT_" prefix be available. +LPM_PROMPT_NAME="${PROJECT_PROMPT_NAME" +LPM_GIT_REMOTE_URL="${PROJECT_GIT_REMOTE_URL}" +LPM_GIT_NAME="${PROJECT_GIT_NAME}" +LPM_PATH="${PROJECT_PATH}" +LPM_SRC_NAME="${PROJECT_SRC_NAME}" -LPM_BUILD_SYSTEM_PATH="${PROJECT_ROOT}/build_system" -N2ST_PATH="${PROJECT_ROOT}/build_system/utilities/norlab-shell-script-tools" -NBS_PATH="${PROJECT_ROOT}/build_system/utilities/norlab-build-system" +# ....Set dependencies path........................................................................ +LPM_BUILD_SYSTEM_PATH="${PROJECT_PATH}/build_system" +N2ST_PATH="${PROJECT_PATH}/build_system/utilities/norlab-shell-script-tools" +NBS_PATH="${PROJECT_PATH}/build_system/utilities/norlab-build-system" diff --git a/README.md b/README.md index 3c3cf3a5..b80ac255 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,31 @@ --- -`libpointmatcher` is currently tested on our build system with the following architecture and OS + + +`libpointmatcher` is currently tested on our build system for the following architecture and OS - x86 and arm64/v8 -- Ubuntu bionic (18.04) and focal (20.04) +- Ubuntu bionic (18.04) and focal (20.04) + Note: support for Ubuntu jammy (22.04) and MacOs OsX (latest) are on our wishlist + +
+ +
+ +
+ +### ★ Version `1.4.0` release note (important) +This release of _libpointmatcher_ introduces the integration of [norlab-build-system (NBS)](https://github.com/norlab-ulaval/norlab-build-system) as a _git submodule_ for codebase development and testing. + +Execute the following to clone the repository with its submodule: +```shell +git clone --recurse-submodules https://github.com/norlab-ulaval/libpointmatcher.git +``` +If _libpointmatcher_ was previously cloned, execute the following to fetch its new submodule +```shell +git submodule update --remote --recursive --init +``` +
# Documentation and Tutorials @@ -23,17 +45,10 @@ It is now maintained by the Northern Robotics Laboratory ([Norlab](https://norla You can read the latest changes in the [release notes](doc/ReleaseNotes.md). -# Quick Start -Clone the repository with its submodule -```shell -git clone --recurse-submodules https://github.com/norlab-ulaval/libpointmatcher.git - -# If libpointmatcher is already cloned, fetch its new submodule -git submodule update --remote --recursive --init -``` +# Quick Start Although we suggest to use the [tutorials](doc/index.md), here is a quick version of it: The library has a light dependency list: @@ -106,7 +121,7 @@ NBS is deployed on our [TeamCity](https://www.jetbrains.com/teamcity/) continuou In both cases submiting a pull request will trigger a build configuration on our build system and the pull request will be granted if the build/test run succeede. **Current build matrix:** -`[latest] x [x86, arm64] x [ubuntu] x [bionic, focal, jammy] x [Release, RelWithDebInfo, MinSizeRel]` +`[latest] x [x86, arm64] x [ubuntu] x [bionic, focal] x [Release, RelWithDebInfo, MinSizeRel]` ### Development workflow From 71f898975efda7608395d30d996395be85c3f56a Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Sun, 17 Dec 2023 15:13:23 -0500 Subject: [PATCH 10/22] chore: add github code owner entries and add instructions --- .github/CODEOWNERS | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 07f6752e..95cd2804 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,13 +1,29 @@ +# ================================================================================================= # Files or directories with designated code owner. -# Branch with "Require review from Code Owners" will automaticaly trigger a request to a designated code owner - -# DevOps related -/build_system/ @RedLeader962 -/.github/ @RedLeader962 -/.dockerignore @RedLeader962 -/.gitignore @RedLeader962 - -# Core -/pointmatcher @boxanm @simonpierredeschenes @aguenette -/python @boxanm @simonpierredeschenes @aguenette -/utest @boxanm @simonpierredeschenes @aguenette +# +# Note: +# - Each line is a file pattern followed by one or more owners. +# - Branch with branch protection rule "Require review from Code Owners" +# will automaticaly trigger a request to a designated code owner +# ================================================================================================= + +# ....Repository wide code owner................................................................... +# These owners will be the default owners for everything in the repo. +* @pomerlef + +# ....Core directories and files................................................................... +/README.md @pomerlef +/LICENSE @pomerlef +/pointmatcher @boxanm @simonpierredeschenes @aguenette +/python @boxanm @simonpierredeschenes @aguenette +/utest @boxanm @simonpierredeschenes @aguenette + +# ....DevOps related............................................................................... +/build_system/ @RedLeader962 +/build_system/utilities @RedLeader962 +/.github/ @RedLeader962 +/.env.libpointmatcher @RedLeader962 +/.gitmodules @RedLeader962 +/.dockerignore @RedLeader962 +/.gitignore @RedLeader962 + From 476a28c1f5f9c182f17152f72501987db02924d5 Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Sun, 17 Dec 2023 15:21:29 -0500 Subject: [PATCH 11/22] style: clean CODEOWNERS file --- .github/CODEOWNERS | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 95cd2804..79176641 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -9,21 +9,21 @@ # ....Repository wide code owner................................................................... # These owners will be the default owners for everything in the repo. -* @pomerlef +* @pomerlef # ....Core directories and files................................................................... -/README.md @pomerlef -/LICENSE @pomerlef -/pointmatcher @boxanm @simonpierredeschenes @aguenette -/python @boxanm @simonpierredeschenes @aguenette -/utest @boxanm @simonpierredeschenes @aguenette +/README.md @pomerlef +/LICENSE @pomerlef +/pointmatcher @boxanm @simonpierredeschenes @aguenette +/python @boxanm @simonpierredeschenes @aguenette +/utest @boxanm @simonpierredeschenes @aguenette # ....DevOps related............................................................................... -/build_system/ @RedLeader962 -/build_system/utilities @RedLeader962 -/.github/ @RedLeader962 -/.env.libpointmatcher @RedLeader962 -/.gitmodules @RedLeader962 -/.dockerignore @RedLeader962 -/.gitignore @RedLeader962 +/build_system/ @RedLeader962 +/build_system/utilities @RedLeader962 +/.github/ @RedLeader962 +/.gitmodules @RedLeader962 +/.dockerignore @RedLeader962 +/.gitignore @RedLeader962 +/.env.libpointmatcher @RedLeader962 From 76d0e245a92d8ea1d4b69a8ee72332839495b34e Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Sun, 17 Dec 2023 17:53:59 -0500 Subject: [PATCH 12/22] chore: added a PR template and a commit msg references file --- .github/CODEOWNERS | 6 ++-- .github/pull_request_template.md | 47 ++++++++++++++++++++++++++++++++ commit_msg_reference.md | 37 +++++++++++++++++++++++++ 3 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 .github/pull_request_template.md create mode 100644 commit_msg_reference.md diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 79176641..9ead055a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -17,13 +17,13 @@ /pointmatcher @boxanm @simonpierredeschenes @aguenette /python @boxanm @simonpierredeschenes @aguenette /utest @boxanm @simonpierredeschenes @aguenette +/.env.libpointmatcher @RedLeader962 # ....DevOps related............................................................................... +/.github/ @RedLeader962 /build_system/ @RedLeader962 /build_system/utilities @RedLeader962 -/.github/ @RedLeader962 /.gitmodules @RedLeader962 -/.dockerignore @RedLeader962 /.gitignore @RedLeader962 -/.env.libpointmatcher @RedLeader962 +/.dockerignore @RedLeader962 diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..f28c55d6 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,47 @@ +# Description +### Summary: + + + + + + +### Changes and type of changes: + +- +- +- + + +--- + +# Checklist: + +### Code related +- [ ] All tests pass locally with my changes (Check [README.md Contributing](https://github.com/norlab-ulaval/libpointmatcher/tree/master#contributing) for testing procedure ) +- [ ] I have made corresponding changes to the documentation (i.e.: function, class, script header, + README.md) +- [ ] I have commented hard-to-understand code +- [ ] I have added tests that prove my fix is effective or that my feature works + +### PR creation related +- [ ] My pull request `base ref` branch is set to the `develop` branch (the _build-system_ won't be triggered otherwise) +- [ ] My pull request branch is up-to-date with the `develop` branch (the _build-system_ will reject it otherwise) + +### PR description related +- [ ] I have included a quick summary of the changes +- [ ] I have included a high-level list of changes and their corresponding type + - Types: `feat` `fix` `docs` `style` `refactor` `perf` `test` `build` `ci` `chore` `revert` + - Breaking changes: `!` + - Reference: + - See [commit_msg_reference.md](https://github.com/norlab-ulaval/libpointmatcher/blob/master/commit_msg_reference.md) in the repository root for details + - https://www.conventionalcommits.org +- [ ] I have indicated the related issue's id with `# ` if changes are of type `fix` + + ## Note for repository admins + ### Release PR related +- Only repository admins have the privilege to `push/merge` on the default branch (ie: `master`) and the `release` branch. +- Keep PR in `draft` mode until all the release reviewers are ready to push the release. +- Once a PR from `release` -> `master` branch is created (not in draft mode), + - the _build-system_ test + - and it triggers the _semantic release automation_ diff --git a/commit_msg_reference.md b/commit_msg_reference.md new file mode 100644 index 00000000..251335b4 --- /dev/null +++ b/commit_msg_reference.md @@ -0,0 +1,37 @@ +# Conventional Commits + +See https://www.conventionalcommits.org for details + + +#### Commit types description: + +- `!`: Commit that introduces a breaking API change (correlating with MAJOR in Semantic + Versioning) +- `feat`: A new feature +- `fix`: A bug fix +- `docs`: Documentation only changes +- `style`: Changes that do not affect the meaning of the code (white-space, formatting, missing + semi-colons, etc) +- `refactor`: A code change that neither fixes a bug nor adds a feature +- `perf`: A code change that improves performance +- `test`: Adding missing tests or correcting existing tests +- `build`: Changes that affect the build system or external dependencies (example scopes: gulp, + broccoli, npm) +- `ci`: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, + BrowserStack, SauceLabs) +- `chore`: Other changes that don't modify src or test files +- `revert`: Reverts a previous commit + +#### Commit footer: + +- `BREAKING CHANGE`: Commit that introduces a breaking API change (correlating with MAJOR in Semantic Versioning) + +#### Commit message structure +``` +[()]: + +[optional-body] + +[optional-footer(s)] + +``` From 5530c4fbf4cb32e08fa2919e2a8f29ffb31b6b86 Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Sun, 17 Dec 2023 18:06:58 -0500 Subject: [PATCH 13/22] docs: added readme related to _libpointmatcher-build-system_ and updated `pull_request_template.md` references --- .github/pull_request_template.md | 2 +- build_system/README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 build_system/README.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index f28c55d6..b8a51573 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -18,7 +18,7 @@ # Checklist: ### Code related -- [ ] All tests pass locally with my changes (Check [README.md Contributing](https://github.com/norlab-ulaval/libpointmatcher/tree/master#contributing) for testing procedure ) +- [ ] All tests pass locally with my changes (Check [README.md #Contributing](https://github.com/norlab-ulaval/libpointmatcher/tree/master#contributing) for testing procedure using the _libpointmatcher-build-system_ localy) - [ ] I have made corresponding changes to the documentation (i.e.: function, class, script header, README.md) - [ ] I have commented hard-to-understand code diff --git a/build_system/README.md b/build_system/README.md new file mode 100644 index 00000000..58514a98 --- /dev/null +++ b/build_system/README.md @@ -0,0 +1 @@ +See [README.md #Contributing](https://github.com/norlab-ulaval/libpointmatcher/tree/master#contributing) for instructions on how integrate the `libpointmatcher-build-system` to your local development workflow (on your workstation). From 3cc38ef0b1b76c3f3a245942ad43e9d9708bb440 Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Sun, 17 Dec 2023 19:06:09 -0500 Subject: [PATCH 14/22] docs: readme contributing instructions + versions and updated PR template --- .github/pull_request_template.md | 6 +++--- README.md | 33 ++++++++++++++++++++------------ 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index b8a51573..c5110124 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -18,11 +18,11 @@ # Checklist: ### Code related -- [ ] All tests pass locally with my changes (Check [README.md #Contributing](https://github.com/norlab-ulaval/libpointmatcher/tree/master#contributing) for testing procedure using the _libpointmatcher-build-system_ localy) - [ ] I have made corresponding changes to the documentation (i.e.: function, class, script header, README.md) - [ ] I have commented hard-to-understand code - [ ] I have added tests that prove my fix is effective or that my feature works +- [ ] All tests pass locally with my changes (Check [README.md #Contributing](https://github.com/norlab-ulaval/libpointmatcher/tree/master#contributing) for local testing procedure using _libpointmatcher-build-system_) ### PR creation related - [ ] My pull request `base ref` branch is set to the `develop` branch (the _build-system_ won't be triggered otherwise) @@ -43,5 +43,5 @@ - Only repository admins have the privilege to `push/merge` on the default branch (ie: `master`) and the `release` branch. - Keep PR in `draft` mode until all the release reviewers are ready to push the release. - Once a PR from `release` -> `master` branch is created (not in draft mode), - - the _build-system_ test - - and it triggers the _semantic release automation_ + - it triggers the _build-system_ test + - (in-progress) and it triggers the _semantic release automation_ diff --git a/README.md b/README.md index 12b8962f..f0c31558 100644 --- a/README.md +++ b/README.md @@ -5,16 +5,22 @@ --- -`libpointmatcher` is currently tested on our build system for the following architecture and OS +`libpointmatcher` is tested on our build system under the following architecture and OS: - x86 and arm64/v8 - Ubuntu bionic (18.04) and focal (20.04) - Note: support for Ubuntu jammy (22.04) and MacOs OsX (latest) are on our wishlist + +Note: +- support for Ubuntu jammy (22.04) comming soon +- `libpointmatcher` reportedly works on MacOs OsX (latest) and Windows (latest)
- +
-
+
+
+ +
### ★ Version `1.4.0` release note (important) This release of _libpointmatcher_ introduces the integration of [norlab-build-system (NBS)](https://github.com/norlab-ulaval/norlab-build-system) as a _git submodule_ for codebase development and testing. @@ -152,16 +158,19 @@ bash lpm_create_multiarch_docker_builder.bash ```shell cd /build_system -# Run the build matrix as specified in ".env.build_matrix.libpointmatcher" on native architecture using "ci_PR" service +# Run the build matrix as specified in ".env.build_matrix.libpointmatcher" +# on native architecture using "ci_PR" service bash lpm_crawl_libpointmatcher_build_matrix.bash --fail-fast -- build ci_PR -# Run a specific case using build flags with multi-architecture virtualization using "ci_PR_amd64" and "ci_PR_arm64v8" services -bash lpm_crawl_libpointmatcher_build_matrix.bash --repository-version-build-matrix-override latest \ - --os-name-build-matrix-override ubuntu \ - --cmake-build-type-build-matrix-override RelWithDebInfo \ - --ubuntu-version-build-matrix-override focal \ - --fail-fast \ - -- build ci_PR_amd64 ci_PR_arm64v8 +# Run a specific case using build flags with multi-architecture +# virtualization using "ci_PR_amd64" and "ci_PR_arm64v8" services +bash lpm_crawl_libpointmatcher_build_matrix.bash \ + --repository-version-build-matrix-override latest \ + --os-name-build-matrix-override ubuntu \ + --cmake-build-type-build-matrix-override RelWithDebInfo \ + --ubuntu-version-build-matrix-override focal \ + --fail-fast \ + -- build ci_PR_amd64 ci_PR_arm64v8 # Read the help for details bash lpm_crawl_libpointmatcher_build_matrix.bash --help From 4d8caeaef8e29b14eeed4395b79824f2909b5c25 Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Sun, 17 Dec 2023 19:27:11 -0500 Subject: [PATCH 15/22] build: update submodule version to latest --- build_system/utilities/norlab-build-system | 2 +- build_system/utilities/norlab-shell-script-tools | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build_system/utilities/norlab-build-system b/build_system/utilities/norlab-build-system index 0bc05779..7460ff90 160000 --- a/build_system/utilities/norlab-build-system +++ b/build_system/utilities/norlab-build-system @@ -1 +1 @@ -Subproject commit 0bc0577943e9455710cd54f38dd697dced581b54 +Subproject commit 7460ff90eb81bdbce305f8a6f4ad0dcd86f211a6 diff --git a/build_system/utilities/norlab-shell-script-tools b/build_system/utilities/norlab-shell-script-tools index d001bdb0..0614d544 160000 --- a/build_system/utilities/norlab-shell-script-tools +++ b/build_system/utilities/norlab-shell-script-tools @@ -1 +1 @@ -Subproject commit d001bdb0daea0c3ba30acb7d88bd3c05744072f8 +Subproject commit 0614d54476e9404e1ecc19d9282b267d68946e8d From 7fa11e9733ffad5585d480b2d1abbdd06994907d Mon Sep 17 00:00:00 2001 From: RedLeaderOne Date: Sun, 17 Dec 2023 19:31:24 -0500 Subject: [PATCH 16/22] chore: update IDE run configuration --- ...ompose._ \342\200\272 --help menu.run.xml" | 4 ++-- ...r build & run IamBuildSystemTester.run.xml | 17 ----------------- ...bash \342\200\272 build --dry-run.run.xml" | 19 ------------------- ...\200\272 build _service_ _popup_.run.xml" | 2 +- ...ies_arm64v8 ci_PR_arm64v8 _popup_.run.xml" | 2 +- ...ependencies (BUILD MATRIX SUBSET).run.xml" | 2 +- ...uild test_compilation__ (Release).run.xml" | 2 +- ...efixed_path (BUILD MATRIX SUBSET).run.xml" | 2 +- ...s-general dependencies (AS IN TC).run.xml" | 2 +- ...wd tree + docker system disk usage.run.xml | 4 ++-- .../list docker images + container.run.xml | 2 +- ...rminal in a Ubuntu 20.04 container.run.xml | 4 ++-- 12 files changed, 13 insertions(+), 49 deletions(-) delete mode 100644 build_system/.jetbrains_run_config/(command version) docker build & run IamBuildSystemTester.run.xml delete mode 100644 "build_system/.jetbrains_run_config/(test) lpm_execute_compose_over_build_matrix.bash \342\200\272 build --dry-run.run.xml" diff --git "a/build_system/.jetbrains_run_config/(HELP) bash lpm_execute_compose._ \342\200\272 --help menu.run.xml" "b/build_system/.jetbrains_run_config/(HELP) bash lpm_execute_compose._ \342\200\272 --help menu.run.xml" index 299b0879..e955512d 100644 --- "a/build_system/.jetbrains_run_config/(HELP) bash lpm_execute_compose._ \342\200\272 --help menu.run.xml" +++ "b/build_system/.jetbrains_run_config/(HELP) bash lpm_execute_compose._ \342\200\272 --help menu.run.xml" @@ -1,6 +1,6 @@ - -