diff --git a/.codespellrc b/.codespellrc new file mode 100644 index 0000000..4a6672a --- /dev/null +++ b/.codespellrc @@ -0,0 +1,4 @@ +[codespell] +# Uncomment and populate the following so that codespell ignores the specified words/files +# skip = +# ignore-words-list = diff --git a/.devcontainer/nouveau/Dockerfile b/.devcontainer/nouveau/Dockerfile index 39f74b6..86d6dde 100644 --- a/.devcontainer/nouveau/Dockerfile +++ b/.devcontainer/nouveau/Dockerfile @@ -3,8 +3,6 @@ FROM ghcr.io/robotic-decision-making-lab/ros2-template:humble-desktop # Install ROS dependencies # This is done in a previous stage, but we include it again here in case anyone wants to # add new dependencies during development -ENV USERNAME=ros -ENV USER_WORKSPACE=/home/$USERNAME/ws_ros WORKDIR $USER_WORKSPACE COPY --chown=$USER_UID:$USER_GID . src/$PROJECT_NAME @@ -18,9 +16,20 @@ RUN sudo apt-get -q update \ && sudo rm -rf /var/lib/apt/lists/* # Install debugging/linting Python packages -COPY --chown=$USER_UID:$USER_GID requirements-dev.txt . -RUN python3 -m pip install -r requirements-dev.txt \ - && rm -rf requirements-dev.txt +RUN python3 -m pip install \ + pre-commit \ + mypy + +# Install debugging/linting C++ packages +RUN sudo apt-get -q update \ + && sudo apt-get -q -y upgrade \ + && sudo apt-get install -y \ + clang-format-14 \ + clang-tidy \ + clang-tools \ + && sudo apt-get autoremove -y \ + && sudo apt-get clean -y \ + && sudo rm -rf /var/lib/apt/lists/* # Disable the setuputils installation warning # This prevents us from needing to pin the setuputils version (which doesn't always work) diff --git a/.devcontainer/nouveau/devcontainer.json b/.devcontainer/nouveau/devcontainer.json index 3fcf6d9..aa27d10 100644 --- a/.devcontainer/nouveau/devcontainer.json +++ b/.devcontainer/nouveau/devcontainer.json @@ -2,9 +2,9 @@ "name": "ROS 2 Dev Container", "dockerFile": "Dockerfile", "context": "../..", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/ros/ws_ros/src/ros2-template,type=bind", - "workspaceFolder": "/home/ros/ws_ros/src/ros2-template", - "remoteUser": "ros", + "workspaceMount": "source=${localWorkspaceFolder},target=/home/ubuntu/ws_ros/src/ros2-template,type=bind", + "workspaceFolder": "/home/ubuntu/ws_ros/src/ros2-template", + "remoteUser": "ubuntu", "runArgs": [ "--network=host", "--cap-add=SYS_PTRACE", diff --git a/.devcontainer/nvidia/Dockerfile b/.devcontainer/nvidia/Dockerfile index 909033c..7023524 100644 --- a/.devcontainer/nvidia/Dockerfile +++ b/.devcontainer/nvidia/Dockerfile @@ -3,8 +3,6 @@ FROM ghcr.io/robotic-decision-making-lab/ros2-template:humble-desktop-nvidia # Install ROS dependencies # This is done in a previous stage, but we include it again here in case anyone wants to # add new dependencies during development -ENV USERNAME=ros -ENV USER_WORKSPACE=/home/$USERNAME/ws_ros WORKDIR $USER_WORKSPACE COPY --chown=$USER_UID:$USER_GID . src/$PROJECT_NAME @@ -18,9 +16,20 @@ RUN sudo apt-get -q update \ && sudo rm -rf /var/lib/apt/lists/* # Install debugging/linting Python packages -COPY --chown=$USER_UID:$USER_GID requirements-dev.txt . -RUN python3 -m pip install -r requirements-dev.txt \ - && rm -rf requirements-dev.txt +RUN python3 -m pip install \ + pre-commit \ + mypy + +# Install debugging/linting C++ packages +RUN sudo apt-get -q update \ + && sudo apt-get -q -y upgrade \ + && sudo apt-get install -y \ + clang-format-14 \ + clang-tidy \ + clang-tools \ + && sudo apt-get autoremove -y \ + && sudo apt-get clean -y \ + && sudo rm -rf /var/lib/apt/lists/* # Disable the setuputils installation warning # This prevents us from needing to pin the setuputils version (which doesn't always work) diff --git a/.devcontainer/nvidia/devcontainer.json b/.devcontainer/nvidia/devcontainer.json index 4bbbdb1..067f409 100644 --- a/.devcontainer/nvidia/devcontainer.json +++ b/.devcontainer/nvidia/devcontainer.json @@ -2,9 +2,9 @@ "name": "ROS 2 NVIDIA Dev Container", "dockerFile": "Dockerfile", "context": "../..", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/ros/ws_ros/src/ros2-template,type=bind", - "workspaceFolder": "/home/ros/ws_ros/src/ros2-template", - "remoteUser": "ros", + "workspaceMount": "source=${localWorkspaceFolder},target=/home/ubuntu/ws_ros/src/ros2-template,type=bind", + "workspaceFolder": "/home/ubuntu/ws_ros/src/ros2-template", + "remoteUser": "ubuntu", "runArgs": [ "--network=host", "--cap-add=SYS_PTRACE", diff --git a/.docker/Dockerfile b/.docker/Dockerfile index ec7d871..a27b388 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -16,9 +16,6 @@ RUN apt-get -q update \ git \ sudo \ clang \ - clang-format-14 \ - clang-tidy \ - clang-tools \ python3-pip \ python3-dev \ apt-utils \ @@ -39,8 +36,10 @@ RUN apt-get -q update \ FROM ci as robot +ENV DEBIAN_FRONTEND=noninteractive + # Configure a new non-root user -ARG USERNAME=ros +ARG USERNAME=ubuntu ARG USER_UID=1000 ARG USER_GID=$USER_UID @@ -55,7 +54,6 @@ RUN groupadd --gid $USER_GID $USERNAME \ USER $USERNAME ENV USER=$USERNAME -ENV DEBIAN_FRONTEND=noninteractive ENV USER_WORKSPACE=/home/$USERNAME/ws_ros WORKDIR $USER_WORKSPACE diff --git a/example_pkg/LICENSE b/example_pkg/LICENSE index 5f74df8..0cc9fb1 100644 --- a/example_pkg/LICENSE +++ b/example_pkg/LICENSE @@ -1,28 +1,21 @@ -BSD 3-Clause License +MIT License -Copyright (c) 2024, Robotic Decision Making Lab +Copyright (c) 2024 Evan Palmer -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/requirements-dev.txt b/requirements-dev.txt deleted file mode 100644 index a3bd924..0000000 --- a/requirements-dev.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Development tools not required for project installation -pre-commit -mypy