diff --git a/.devcontainer/.gitignore b/.devcontainer/.gitignore
new file mode 100644
index 0000000000..4c49bd78f1
--- /dev/null
+++ b/.devcontainer/.gitignore
@@ -0,0 +1 @@
+.env
diff --git a/applications/dev-environment/devcontainer/template/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml
similarity index 74%
rename from applications/dev-environment/devcontainer/template/.devcontainer/docker-compose.yml
rename to .devcontainer/docker-compose.yml
index 290534c157..7dd6ee095b 100644
--- a/applications/dev-environment/devcontainer/template/.devcontainer/docker-compose.yml
+++ b/.devcontainer/docker-compose.yml
@@ -6,7 +6,7 @@ volumes:
services:
mqtt-server:
- image: ghcr.io/everest/everest-dev-environment/mosquitto:docker-images-v0.2.0
+ build: ../applications/containers/mosquitto
ports:
- 1883:1883
- 9001:9001
@@ -31,7 +31,7 @@ services:
- all
- ocpp
steve:
- image: ghcr.io/everest/everest-dev-environment/steve:docker-images-v0.2.0
+ build: ../applications/containers/steve
ports:
- 8180:8180
- 8443:8443
@@ -41,7 +41,7 @@ services:
- all
- ocpp
mqtt-explorer:
- image: ghcr.io/everest/everest-dev-environment/mqtt-explorer:docker-images-v0.2.0
+ build: ../applications/containers/mqtt-explorer
depends_on:
- mqtt-server
ports:
@@ -50,12 +50,11 @@ services:
- all
- sil
nodered:
- image: ghcr.io/everest/everest-dev-environment/nodered:docker-images-v0.2.0
+ build: ../applications/containers/nodered
ports:
- 1880:1880
volumes:
- node-red-data:/data
- - ./nodered-settings.js:/data/settings.js
environment:
- NODE_RED_ENABLE_PROJECTS=false
- MQTT_BROKER=mqtt-server
diff --git a/.devcontainer/general-devcontainer/Dockerfile b/.devcontainer/general-devcontainer/Dockerfile
new file mode 100644
index 0000000000..7228a8f8ca
--- /dev/null
+++ b/.devcontainer/general-devcontainer/Dockerfile
@@ -0,0 +1,83 @@
+# syntax=docker/dockerfile:1
+FROM ghcr.io/everest/everest-ci/dev-env-base:v1.5.4
+
+# Build arguments for customization
+# User and group configuration i.e. to match host user inside the container
+ARG USERNAME=docker
+ARG USER_UID=1000
+ARG USER_GID=1000
+# Configuration for everest-dev-tool's default git settings, can be overridden when working i.e. in a fork
+ARG EVEREST_DEV_TOOL_DEFAULT_GIT_ORGANIZATION_ARG=EVerest
+ARG EVEREST_DEV_TOOL_DEFAULT_GIT_HOST_ARG=github.com
+ARG EVEREST_DEV_TOOL_DEFAULT_GIT_SSH_USER_ARG=git
+
+##################################################################
+# Should be moved to everest-dev-base at some point
+
+# Update the package list and install dependencies (run as root)
+USER root
+RUN apt-get update && apt-get install -y \
+ protobuf-compiler \
+ libsystemd-dev \
+ tmux \
+ chrpath \
+ cpio \
+ diffstat \
+ gawk \
+ wget \
+ zstd \
+ liblz4-tool \
+ file \
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y locales \
+ && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \
+ && dpkg-reconfigure --frontend=noninteractive locales \
+ && update-locale LANG=en_US.UTF-8
+
+ENV LANG en_US.UTF-8
+
+
+
+# EVerest Development Tool - Dependencies
+RUN pip install --break-system-packages \
+ nanopb
+
+# EVerest Development Tool
+
+COPY --from=everest_dev_tool_src . /tmp/everest_dev_tool
+RUN ls -al /tmp/everest_dev_tool \
+ && python3 -m pip install \
+ --break-system-packages \
+ /tmp/everest_dev_tool/ \
+ && rm -rf /tmp/everest_dev_tool
+
+##################################################################
+
+# Modify the existing docker user and group to match the host's USER_UID and USER_GID
+RUN groupmod --gid ${USER_GID} ${USERNAME} && \
+ usermod --uid ${USER_UID} --gid ${USER_GID} ${USERNAME} && \
+ usermod -aG dialout ${USERNAME}
+
+# Switch to the docker user
+USER ${USERNAME}
+WORKDIR /workspace
+
+# Add known hosts for git repositories
+RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan ${EVEREST_DEV_TOOL_DEFAULT_GIT_HOST_ARG} >> ~/.ssh/known_hosts
+
+# Set environment variables
+ENV EVEREST_DEV_TOOL_DEFAULT_GIT_METHOD=ssh
+ENV EVEREST_DEV_TOOL_DEFAULT_GIT_HOST=${EVEREST_DEV_TOOL_DEFAULT_GIT_HOST_ARG}
+ENV EVEREST_DEV_TOOL_DEFAULT_GIT_SSH_USER=${EVEREST_DEV_TOOL_DEFAULT_GIT_SSH_USER_ARG}
+ENV EVEREST_DEV_TOOL_DEFAULT_GIT_ORGANIZATION=${EVEREST_DEV_TOOL_DEFAULT_GIT_ORGANIZATION_ARG}
+
+# Enable command line completion for devrd script by default
+RUN echo "" >> ${HOME}/.bashrc && \
+ echo "# Enable devrd command completion if available" >> ${HOME}/.bashrc && \
+ echo "if [ -f /workspace/applications/devrd/devrd-completion.bash ]; then" >> ${HOME}/.bashrc && \
+ echo " source /workspace/applications/devrd/devrd-completion.bash" >> ${HOME}/.bashrc && \
+ echo "fi" >> ${HOME}/.bashrc
+
+# Set up welcome message
+RUN echo "echo \"ποΈ π Welcome to the EVerest development environment!\"" >> ${HOME}/.bashrc && \
+ echo "echo \"Since you are working with the everest-core monorepo, you have all you need to get started here. πππ\"" >> ${HOME}/.bashrc && \
+ echo "echo \"You can find the devrd tool in applications/devrd/devrd\"" >> ${HOME}/.bashrc
diff --git a/applications/dev-environment/devcontainer/template/.devcontainer/general-devcontainer/devcontainer.json b/.devcontainer/general-devcontainer/devcontainer.json
similarity index 58%
rename from applications/dev-environment/devcontainer/template/.devcontainer/general-devcontainer/devcontainer.json
rename to .devcontainer/general-devcontainer/devcontainer.json
index 4b73359371..ca38b603f1 100644
--- a/applications/dev-environment/devcontainer/template/.devcontainer/general-devcontainer/devcontainer.json
+++ b/.devcontainer/general-devcontainer/devcontainer.json
@@ -1,10 +1,25 @@
{
"name": "EVerest - ${localWorkspaceFolderBasename}",
- "dockerComposeFile": ["../docker-compose.yml", "./docker-compose.devcontainer.yml"],
+
+ // Compose configuration
+ "dockerComposeFile": [
+ "../docker-compose.yml",
+ "./docker-compose.devcontainer.yml"
+ ],
"service": "devcontainer",
+ "runServices": [ "mqtt-server", "ocpp-db", "steve", "mqtt-explorer" ],
- "remoteUser": "docker",
+ // Workspace inside the container
"workspaceFolder": "/workspace",
+
+ "initializeCommand": "./applications/devrd/devrd env",
+
+ // Prevent generation of broken override compose files
+ "overrideFeatureInstallCommand": false,
+ "updateRemoteUserUID": false,
+
+ // Networking / forwarded ports
+ "remoteUser": "docker",
"forwardPorts": [
"mqtt-explorer:4000",
"steve:8180"
@@ -22,7 +37,12 @@
"protocol": "http",
"requireLocalPort": false
},
+
+ // VS Code customizations
"customizations": {
+
+ // Be aware that anything set here will not apply to the devcontainer
+ // when used without VS Code (e.g., plain Docker Compose).
"vscode": {
"settings": {
"terminal.integrated.profiles.linux": {
@@ -36,27 +56,26 @@
"python.pythonPath": "/usr/bin/python3",
"python.defaultInterpreterPath": "/usr/bin/python3",
"editor.rulers": [79, 120],
- // RST/Sphinx language server
- "esbonio.sphinx.buildDir": "${workspaceFolder}/everest/docs/_build",
- "esbonio.sphinx.confDir": "${workspaceFolder}/everest/docs",
+
// RST
"restructuredtext.preview.scrollEditorWithPreview": false,
- "restructuredtext.pythonRecommendation.disabled": true,
- "liveServer.settings.root": "/everest/docs/_build/html"
+ "restructuredtext.pythonRecommendation.disabled": true
},
+
"extensions": [
// language support CPP
"ms-vscode.cpptools",
+
// language support cmake
"twxs.cmake",
"ms-vscode.cmake-tools",
- // language support python
- "ms-python.python",
- // language support restructured text
- "lextudio.restructuredtext",
- "trond-snekvik.simple-rst",
- // doc live server
- "ritwickdey.liveserver"
+
+ // language support python
+ "ms-python.python",
+
+ // language support reStructuredText
+ "lextudio.restructuredtext",
+ "trond-snekvik.simple-rst"
]
}
}
diff --git a/applications/dev-environment/devcontainer/template/.devcontainer/general-devcontainer/docker-compose.devcontainer.yml b/.devcontainer/general-devcontainer/docker-compose.devcontainer.yml
similarity index 79%
rename from applications/dev-environment/devcontainer/template/.devcontainer/general-devcontainer/docker-compose.devcontainer.yml
rename to .devcontainer/general-devcontainer/docker-compose.devcontainer.yml
index 813e63ce49..071eceab83 100644
--- a/applications/dev-environment/devcontainer/template/.devcontainer/general-devcontainer/docker-compose.devcontainer.yml
+++ b/.devcontainer/general-devcontainer/docker-compose.devcontainer.yml
@@ -8,7 +8,6 @@ volumes:
services:
-
docker-proxy:
image: tecnativa/docker-socket-proxy:latest
volumes:
@@ -34,15 +33,16 @@ services:
env_file:
- .env
build:
- context: ./general-devcontainer
dockerfile: Dockerfile
+ context: ./general-devcontainer
+ additional_contexts:
+ everest_dev_tool_src: ../applications/everest_dev_tool
args:
USER_UID: ${UID:-1000}
USER_GID: ${GID:-1000}
- ORGANIZATION_ARG: ${ORGANIZATION_ARG:-EVerest}
- REPOSITORY_HOST: ${REPOSITORY_HOST:-github.com}
- REPOSITORY_USER: ${REPOSITORY_USER:-git}
- EVEREST_TOOL_BRANCH: ${EVEREST_TOOL_BRANCH:-main}
+ EVEREST_DEV_TOOL_DEFAULT_GIT_ORGANIZATION_ARG: ${EVEREST_DEV_TOOL_DEFAULT_GIT_ORGANIZATION:-EVerest}
+ EVEREST_DEV_TOOL_DEFAULT_GIT_HOST_ARG: ${EVEREST_DEV_TOOL_DEFAULT_GIT_HOST:-github.com}
+ EVEREST_DEV_TOOL_DEFAULT_GIT_SSH_USER_ARG: ${EVEREST_DEV_TOOL_DEFAULT_GIT_SSH_USER:-git}
volumes:
- type: bind
source: ${HOST_WORKSPACE_FOLDER:-..}
diff --git a/.gitignore b/.gitignore
index 35d4aefae8..479ae299c0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
*build
*build-cross
+*dist
.cache/
workspace.yaml
.vscode/
diff --git a/applications/dev-environment/.prospector.yaml b/.prospector.yaml
similarity index 100%
rename from applications/dev-environment/.prospector.yaml
rename to .prospector.yaml
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ced1496f09..c01df25581 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -146,7 +146,7 @@ if(NOT DISABLE_EDM)
set(THIRD_PARTY_APP_DST "${CMAKE_INSTALL_LIBEXECDIR}/everest/3rd_party")
# edm
- add_subdirectory(applications/dev-environment)
+ add_subdirectory(applications/)
evc_setup_edm()
@@ -195,7 +195,7 @@ add_subdirectory(config)
add_subdirectory(doc)
if(EVEREST_BUILD_APPLICATIONS)
- add_subdirectory(applications)
+# add_subdirectory(applications)
endif()
ev_install_project()
diff --git a/applications/CMakeLists.txt b/applications/CMakeLists.txt
index 1396988c36..2a1c09c3b2 100644
--- a/applications/CMakeLists.txt
+++ b/applications/CMakeLists.txt
@@ -1 +1,25 @@
+ev_setup_cmake_variables_python_wheel()
+
+ev_add_pip_package(
+ NAME edm
+ SOURCE_DIRECTORY dependency_manager
+)
+
+ev_is_python_venv_active(
+ RESULT_VAR IS_PYTHON_VENV_ACTIVE
+)
+
+if(NOT ${IS_PYTHON_VENV_ACTIVE})
+ message(WARNING "Python venv is not active. Please ensure that edm is available in your environment.")
+else()
+ get_target_property(SOURCE_DIRECTORY ev_pip_package_edm SOURCE_DIRECTORY)
+ message(STATUS "Installing edm from: ${SOURCE_DIRECTORY}")
+ ev_pip_install_local(
+ PACKAGE_NAME "edm"
+ PACKAGE_SOURCE_DIRECTORY "${SOURCE_DIRECTORY}"
+ )
+ unset(EVEREST_DEPENDENCY_MANAGER CACHE)
+ find_program(EVEREST_DEPENDENCY_MANAGER edm HINTS ${EV_ACTIVATE_PYTHON_VENV_PATH_TO_VENV}/bin REQUIRED)
+ message(STATUS "Using edm from: ${EDM}")
+endif()
add_subdirectory(pionix_chargebridge)
diff --git a/applications/README.md b/applications/README.md
index 11f1b9cfd0..5ea3a1a1fc 100644
--- a/applications/README.md
+++ b/applications/README.md
@@ -3,5 +3,29 @@
This directory will contain applications that are used during the EVerest build process,
deployed to the target hardware and useful scripts for development.
-_utils contains ev-cli and everest-testing as well as additional code integrated from everest-utils.
+## containers/
+
+containers/ contains multiple useful Dockerfile based containers that can be used for development.
+
+* `mosquittto` : An mqtt broker
+* `mqtt-explorer` : Tool to inspect messages on mqtt topics
+* `nodered` : NodeRED application to run i.e. sil flows
+* `steve` : OCPP backend
+
+## dependency_manager
+
+Contains the EDM (EVerest Dependency Manager) tool which is a cli to
+manage an EVerest workspace and external dependencies during building.
+
+## everest_dev_tool
+
+A CLI designed to provide helpful commands/aliases for developing.
+
+## utils/
+
+utils/ contains ev-cli and everest-testing as well as additional code integrated from everest-utils.
This might get broken up further in the future.
+
+## devrd
+
+Script to manage devcontainer + containerized services in the development environment
diff --git a/applications/dev-environment/docker/images/mosquitto/Dockerfile b/applications/containers/mosquitto/Dockerfile
similarity index 100%
rename from applications/dev-environment/docker/images/mosquitto/Dockerfile
rename to applications/containers/mosquitto/Dockerfile
diff --git a/applications/dev-environment/docker/images/mosquitto/entrypoint_wrapper.sh b/applications/containers/mosquitto/entrypoint_wrapper.sh
similarity index 100%
rename from applications/dev-environment/docker/images/mosquitto/entrypoint_wrapper.sh
rename to applications/containers/mosquitto/entrypoint_wrapper.sh
diff --git a/applications/dev-environment/docker/images/mosquitto/mosquitto.conf b/applications/containers/mosquitto/mosquitto.conf
similarity index 100%
rename from applications/dev-environment/docker/images/mosquitto/mosquitto.conf
rename to applications/containers/mosquitto/mosquitto.conf
diff --git a/applications/dev-environment/docker/images/mqtt-explorer/Dockerfile b/applications/containers/mqtt-explorer/Dockerfile
similarity index 100%
rename from applications/dev-environment/docker/images/mqtt-explorer/Dockerfile
rename to applications/containers/mqtt-explorer/Dockerfile
diff --git a/applications/dev-environment/docker/images/mqtt-explorer/entrypoint_wrapper.sh b/applications/containers/mqtt-explorer/entrypoint_wrapper.sh
similarity index 100%
rename from applications/dev-environment/docker/images/mqtt-explorer/entrypoint_wrapper.sh
rename to applications/containers/mqtt-explorer/entrypoint_wrapper.sh
diff --git a/applications/dev-environment/docker/images/mqtt-explorer/settings.json b/applications/containers/mqtt-explorer/settings.json
similarity index 100%
rename from applications/dev-environment/docker/images/mqtt-explorer/settings.json
rename to applications/containers/mqtt-explorer/settings.json
diff --git a/applications/dev-environment/docker/images/nodered/Dockerfile b/applications/containers/nodered/Dockerfile
similarity index 92%
rename from applications/dev-environment/docker/images/nodered/Dockerfile
rename to applications/containers/nodered/Dockerfile
index be2405a2d6..50d53fec02 100644
--- a/applications/dev-environment/docker/images/nodered/Dockerfile
+++ b/applications/containers/nodered/Dockerfile
@@ -4,6 +4,8 @@ RUN npm install node-red-contrib-ui-actions@0.1.8
RUN npm install node-red-node-ui-table@0.4.5
RUN npm install node-red-contrib-ui-level@0.1.46
+COPY nodered-settings.js /data/settings.js
+
USER root
COPY entrypoint.sh /entrypoint.sh
ARG TARGETARCH
diff --git a/applications/dev-environment/docker/images/nodered/entrypoint.sh b/applications/containers/nodered/entrypoint.sh
similarity index 100%
rename from applications/dev-environment/docker/images/nodered/entrypoint.sh
rename to applications/containers/nodered/entrypoint.sh
diff --git a/applications/dev-environment/docker/images/nodered/entrypoint_wrapper.sh b/applications/containers/nodered/entrypoint_wrapper.sh
similarity index 100%
rename from applications/dev-environment/docker/images/nodered/entrypoint_wrapper.sh
rename to applications/containers/nodered/entrypoint_wrapper.sh
diff --git a/applications/dev-environment/devcontainer/template/.devcontainer/nodered-settings.js b/applications/containers/nodered/nodered-settings.js
similarity index 100%
rename from applications/dev-environment/devcontainer/template/.devcontainer/nodered-settings.js
rename to applications/containers/nodered/nodered-settings.js
diff --git a/applications/dev-environment/docker/images/steve/Dockerfile b/applications/containers/steve/Dockerfile
similarity index 100%
rename from applications/dev-environment/docker/images/steve/Dockerfile
rename to applications/containers/steve/Dockerfile
diff --git a/applications/dev-environment/docker/images/steve/entrypoint_wrapper.sh b/applications/containers/steve/entrypoint_wrapper.sh
similarity index 100%
rename from applications/dev-environment/docker/images/steve/entrypoint_wrapper.sh
rename to applications/containers/steve/entrypoint_wrapper.sh
diff --git a/applications/dev-environment/docker/images/steve/init.sh b/applications/containers/steve/init.sh
similarity index 100%
rename from applications/dev-environment/docker/images/steve/init.sh
rename to applications/containers/steve/init.sh
diff --git a/applications/dev-environment/docker/images/steve/keystore.jks b/applications/containers/steve/keystore.jks
similarity index 100%
rename from applications/dev-environment/docker/images/steve/keystore.jks
rename to applications/containers/steve/keystore.jks
diff --git a/applications/dev-environment/docker/images/steve/main.properties b/applications/containers/steve/main.properties
similarity index 100%
rename from applications/dev-environment/docker/images/steve/main.properties
rename to applications/containers/steve/main.properties
diff --git a/applications/dev-environment/dependency_manager/.gitignore b/applications/dependency_manager/.gitignore
similarity index 100%
rename from applications/dev-environment/dependency_manager/.gitignore
rename to applications/dependency_manager/.gitignore
diff --git a/applications/dev-environment/LICENSE b/applications/dependency_manager/LICENSE
similarity index 100%
rename from applications/dev-environment/LICENSE
rename to applications/dependency_manager/LICENSE
diff --git a/applications/dev-environment/dependency_manager/README.md b/applications/dependency_manager/README.md
similarity index 100%
rename from applications/dev-environment/dependency_manager/README.md
rename to applications/dependency_manager/README.md
diff --git a/applications/dev-environment/dependency_manager/generate_bash_completion.sh b/applications/dependency_manager/generate_bash_completion.sh
similarity index 100%
rename from applications/dev-environment/dependency_manager/generate_bash_completion.sh
rename to applications/dependency_manager/generate_bash_completion.sh
diff --git a/applications/dev-environment/dependency_manager/pyproject.toml b/applications/dependency_manager/pyproject.toml
similarity index 100%
rename from applications/dev-environment/dependency_manager/pyproject.toml
rename to applications/dependency_manager/pyproject.toml
diff --git a/applications/dev-environment/dependency_manager/requirements.txt b/applications/dependency_manager/requirements.txt
similarity index 100%
rename from applications/dev-environment/dependency_manager/requirements.txt
rename to applications/dependency_manager/requirements.txt
diff --git a/applications/dev-environment/dependency_manager/setup.cfg b/applications/dependency_manager/setup.cfg
similarity index 100%
rename from applications/dev-environment/dependency_manager/setup.cfg
rename to applications/dependency_manager/setup.cfg
diff --git a/applications/dev-environment/dependency_manager/setup.py b/applications/dependency_manager/setup.py
similarity index 100%
rename from applications/dev-environment/dependency_manager/setup.py
rename to applications/dependency_manager/setup.py
diff --git a/applications/dev-environment/dependency_manager/src/edm_tool/__init__.py b/applications/dependency_manager/src/edm_tool/__init__.py
similarity index 100%
rename from applications/dev-environment/dependency_manager/src/edm_tool/__init__.py
rename to applications/dependency_manager/src/edm_tool/__init__.py
diff --git a/applications/dev-environment/dependency_manager/src/edm_tool/bazel.py b/applications/dependency_manager/src/edm_tool/bazel.py
similarity index 100%
rename from applications/dev-environment/dependency_manager/src/edm_tool/bazel.py
rename to applications/dependency_manager/src/edm_tool/bazel.py
diff --git a/applications/dev-environment/dependency_manager/src/edm_tool/edm-completion.bash b/applications/dependency_manager/src/edm_tool/edm-completion.bash
similarity index 100%
rename from applications/dev-environment/dependency_manager/src/edm_tool/edm-completion.bash
rename to applications/dependency_manager/src/edm_tool/edm-completion.bash
diff --git a/applications/dev-environment/dependency_manager/src/edm_tool/edm.py b/applications/dependency_manager/src/edm_tool/edm.py
similarity index 99%
rename from applications/dev-environment/dependency_manager/src/edm_tool/edm.py
rename to applications/dependency_manager/src/edm_tool/edm.py
index 4f44d339a2..3946acd9d2 100755
--- a/applications/dev-environment/dependency_manager/src/edm_tool/edm.py
+++ b/applications/dependency_manager/src/edm_tool/edm.py
@@ -1337,7 +1337,7 @@ def release_handler(args):
metadata_yaml = {}
metadata_file = os.environ.get('EVEREST_METADATA_FILE', None)
- metadata_url = "https://raw.githubusercontent.com/EVerest/everest-dev-environment/main/everest-metadata.yaml"
+ metadata_url = "https://raw.githubusercontent.com/EVerest/everest-core/main/everest-metadata.yaml"
if not metadata_file:
metadata_path = build_path / "everest-metadata.yaml"
diff --git a/applications/dev-environment/dependency_manager/src/edm_tool/templates/cpm.jinja b/applications/dependency_manager/src/edm_tool/templates/cpm.jinja
similarity index 100%
rename from applications/dev-environment/dependency_manager/src/edm_tool/templates/cpm.jinja
rename to applications/dependency_manager/src/edm_tool/templates/cpm.jinja
diff --git a/applications/dev-environment/.clang-format b/applications/dev-environment/.clang-format
deleted file mode 100644
index 42df3fa662..0000000000
--- a/applications/dev-environment/.clang-format
+++ /dev/null
@@ -1,138 +0,0 @@
----
-Language: Cpp
-# BasedOnStyle: LLVM
-AccessModifierOffset: -4
-AlignAfterOpenBracket: Align
-AlignConsecutiveMacros: true
-AlignConsecutiveAssignments: false
-AlignConsecutiveDeclarations: false
-AlignEscapedNewlines: Right
-AlignOperands: true
-AlignTrailingComments: true
-AllowAllArgumentsOnNextLine: true
-AllowAllConstructorInitializersOnNextLine: true
-AllowAllParametersOfDeclarationOnNextLine: true
-AllowShortBlocksOnASingleLine: Never
-AllowShortCaseLabelsOnASingleLine: false
-AllowShortEnumsOnASingleLine: false
-AllowShortFunctionsOnASingleLine: None
-AllowShortLambdasOnASingleLine: All
-AllowShortIfStatementsOnASingleLine: Never
-AllowShortLoopsOnASingleLine: false
-AlwaysBreakAfterDefinitionReturnType: None
-AlwaysBreakAfterReturnType: None
-AlwaysBreakBeforeMultilineStrings: false
-AlwaysBreakTemplateDeclarations: MultiLine
-BinPackArguments: true
-BinPackParameters: true
-BraceWrapping:
- AfterCaseLabel: false
- AfterClass: false
- AfterControlStatement: false
- AfterEnum: false
- AfterFunction: false
- AfterNamespace: false
- AfterObjCDeclaration: false
- AfterStruct: false
- AfterUnion: false
- AfterExternBlock: false
- BeforeCatch: false
- BeforeElse: false
- IndentBraces: false
- SplitEmptyFunction: true
- SplitEmptyRecord: true
- SplitEmptyNamespace: true
-BreakBeforeBinaryOperators: None
-BreakBeforeBraces: Attach
-BreakBeforeInheritanceComma: false
-BreakInheritanceList: BeforeColon
-BreakBeforeTernaryOperators: true
-BreakConstructorInitializersBeforeComma: false
-BreakConstructorInitializers: AfterColon
-BreakAfterJavaFieldAnnotations: false
-BreakStringLiterals: true
-ColumnLimit: 120
-CommentPragmas: '^ IWYU pragma:'
-CompactNamespaces: false
-ConstructorInitializerAllOnOneLineOrOnePerLine: true
-ConstructorInitializerIndentWidth: 4
-ContinuationIndentWidth: 4
-Cpp11BracedListStyle: true
-DeriveLineEnding: true
-DerivePointerAlignment: false
-DisableFormat: false
-ExperimentalAutoDetectBinPacking: false
-FixNamespaceComments: true
-ForEachMacros:
- - foreach
- - Q_FOREACH
- - BOOST_FOREACH
-IncludeBlocks: Preserve
-IncludeCategories:
- - Regex: '^"(llvm|llvm-c|clang|clang-c)/'
- Priority: 2
- SortPriority: 0
- - Regex: '^(<|"(gtest|gmock|isl|json)/)'
- Priority: 3
- SortPriority: 0
- - Regex: '.*'
- Priority: 1
- SortPriority: 0
-IncludeIsMainRegex: '(Test)?$'
-IncludeIsMainSourceRegex: ''
-IndentCaseLabels: false
-IndentGotoLabels: true
-IndentPPDirectives: None
-IndentWidth: 4
-IndentWrappedFunctionNames: false
-JavaScriptQuotes: Leave
-JavaScriptWrapImports: true
-KeepEmptyLinesAtTheStartOfBlocks: true
-MacroBlockBegin: ''
-MacroBlockEnd: ''
-MaxEmptyLinesToKeep: 1
-NamespaceIndentation: None
-ObjCBinPackProtocolList: Auto
-ObjCBlockIndentWidth: 2
-ObjCSpaceAfterProperty: false
-ObjCSpaceBeforeProtocolList: true
-PenaltyBreakAssignment: 2
-PenaltyBreakBeforeFirstCallParameter: 19
-PenaltyBreakComment: 300
-PenaltyBreakFirstLessLess: 120
-PenaltyBreakString: 1000
-PenaltyBreakTemplateDeclaration: 10
-PenaltyExcessCharacter: 1000000
-PenaltyReturnTypeOnItsOwnLine: 60
-PointerAlignment: Left
-ReflowComments: true
-SortIncludes: true
-SortUsingDeclarations: true
-SpaceAfterCStyleCast: false
-SpaceAfterLogicalNot: false
-SpaceAfterTemplateKeyword: true
-SpaceBeforeAssignmentOperators: true
-SpaceBeforeCpp11BracedList: false
-SpaceBeforeCtorInitializerColon: true
-SpaceBeforeInheritanceColon: true
-SpaceBeforeParens: ControlStatements
-SpaceBeforeRangeBasedForLoopColon: true
-SpaceInEmptyBlock: false
-SpaceInEmptyParentheses: false
-SpacesBeforeTrailingComments: 1
-SpacesInAngles: false
-SpacesInConditionalStatement: false
-SpacesInContainerLiterals: true
-SpacesInCStyleCastParentheses: false
-SpacesInParentheses: false
-SpacesInSquareBrackets: false
-SpaceBeforeSquareBrackets: false
-Standard: Latest
-StatementMacros:
- - Q_UNUSED
- - QT_REQUIRE_VERSION
-TabWidth: 8
-UseCRLF: false
-UseTab: Never
-...
-
diff --git a/applications/dev-environment/.eslintrc.json b/applications/dev-environment/.eslintrc.json
deleted file mode 100644
index 35bee0fa0a..0000000000
--- a/applications/dev-environment/.eslintrc.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "env": {
- "browser": true,
- "commonjs": true,
- "es2021": true
- },
- "extends": [
- "airbnb-base"
- ],
- "parserOptions": {
- "ecmaVersion": 12
- },
- "rules": {
- "camelcase": "off",
- "eqeqeq": [
- "error",
- "smart"
- ],
- "comma-dangle": [
- "warn",
- {
- "objects": "always-multiline",
- "arrays": "always-multiline",
- "functions": "never"
- }
- ],
- "import/no-unresolved": [
- 2,
- {
- "ignore": [
- "everestjs"
- ]
- }
- ],
- "max-len": [
- "warn",
- {
- "code": 120,
- "tabWidth": 2
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/applications/dev-environment/.gitignore b/applications/dev-environment/.gitignore
deleted file mode 100644
index 88fc2531f0..0000000000
--- a/applications/dev-environment/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-workspace.yaml
diff --git a/applications/dev-environment/CMakeLists.txt b/applications/dev-environment/CMakeLists.txt
deleted file mode 100644
index dc413dba1e..0000000000
--- a/applications/dev-environment/CMakeLists.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-ev_setup_cmake_variables_python_wheel()
-
-ev_add_pip_package(
- NAME edm
- SOURCE_DIRECTORY dependency_manager
-)
-
-ev_is_python_venv_active(
- RESULT_VAR IS_PYTHON_VENV_ACTIVE
-)
-
-if(NOT ${IS_PYTHON_VENV_ACTIVE})
- message(WARNING "Python venv is not active. Please ensure that edm is available in your environment.")
-else()
- get_target_property(SOURCE_DIRECTORY ev_pip_package_edm SOURCE_DIRECTORY)
- message(STATUS "Installing edm from: ${SOURCE_DIRECTORY}")
- ev_pip_install_local(
- PACKAGE_NAME "edm"
- PACKAGE_SOURCE_DIRECTORY "${SOURCE_DIRECTORY}"
- )
- unset(EVEREST_DEPENDENCY_MANAGER CACHE)
- find_program(EVEREST_DEPENDENCY_MANAGER edm HINTS ${EV_ACTIVATE_PYTHON_VENV_PATH_TO_VENV}/bin REQUIRED)
- message(STATUS "Using edm from: ${EDM}")
-endif()
diff --git a/applications/dev-environment/README.md b/applications/dev-environment/README.md
deleted file mode 100644
index 132733fd17..0000000000
--- a/applications/dev-environment/README.md
+++ /dev/null
@@ -1,442 +0,0 @@
-# EVerest Development
-
-This repository contains the steps required to build EVerest using either a container-based solution or bare metal.
-
-- [EVerest Container Based Development](#everest-container-based-development)
- - [Prerequisites](#prerequisites)
- - [Quick Start (using VS Code Development - full automation)](#quick-start-using-vs-code-development---full-automation)
- - [Manual Docker Setup](#manual-docker-setup)
- - [Available Services and Docker Compose Profiles](#available-services-and-docker-compose-profiles)
- - [Environment Variables](#environment-variables)
- - [Working with Multiple Repositories](#working-with-multiple-repositories)
- - [Shell Completion (Optional)](#shell-completion-optional)
- - [SIL Simulation](#sil-simulation)
- - [Building EVerest](#building-everest)
- - [Available Node-RED UI Simulations](#available-node-red-ui-simulations)
- - [Troubleshooting](#troubleshooting)
-- [Everest Bare Metal Development](#everest-bare-metal-development)
- - [Python Prerequisites](#python-prerequisites)
- - [EDM Prerequisites](#edm-prerequisites)
- - [Building with Tests](#building-with-tests)
- - [Cross-Compilation](#cross-compilation)
-
-## EVerest Container Based Development
-
-### Prerequisites
-
-To install the prerequisites, please check your operating system or distribution online documentation:
-
-- VS Code with Docker extension
-- Docker installed (check documentation here: )
-- Docker compose installed version V2 (not working with V1). Tested with Linux, specifically with Ubuntu 22.04 and 24.04.
-
-### Quick Start (using VS Code Development - full automation)
-
-The easiest way to develop is using VS Code with the development container:
-
-1. Follow the steps below
-2. VS Code will automatically build the container with your repository settings
-3. All development happens inside the container with the correct environment variables
-
-The contents of your folder where the code resides (e.g., `my-workspace`) are mapped inside the container in the folder called `/workspace`.
-You can exit VS Code at any time, re-running it will cause VS Code to ask you again to reopen in container.
-Here are the steps required:
-
-1. **Create a folder for your project**
- Create a new directory and navigate into it. This directory will be your new workspace or use an existing one.
-
- ```bash
- mkdir my-workspace
- cd my-workspace
- ```
-
-2. **Install DevContainer template:**
- You can use the following command to download and install the devcontainer template:
-
- **One-liner:**
-
- ```bash
- curl -s https://raw.githubusercontent.com/EVerest/everest-core/refs/heads/main/applications/dev-environment/devcontainer/setup-container > setup-container && chmod +x setup-container && ./setup-container
- ```
-
- **Manual clone (if curl fails):**
-
- ```bash
- git clone git@github.com:EVerest/everest-core.git
- cp everest-core/applications/dev-environment/devcontainer/setup-container setup-container
- chmod +x setup-container
- ./setup-container
- # you can delete the everest-core folder, it is not needed anymore
- rm -rf everest-core
- ```
-
- The script will ask you for:
- 1. **Workspace directory**: Press Enter to use current directory (recommended)
- 2. **Version**: Press Enter to use 'main' (recommended)
- 3. **Continue if directory not empty**: Type 'y' and press Enter (since you downloaded the setup-container script)
-
-3. **Open in VS Code:**
- Then open the workspace in Visual Studio Code:
-
- ```bash
- code .
- ```
-
- Or press Ctrl+O to open the current folder in VSCode.
-
- Choose **Reopen in container** when prompted by VS Code.
-
-### Manual Docker Setup
-
-If you prefer to run the container outside VS Code, the `./devrd` script provides comprehensive control:
-
-```bash
-# Quick start (generate .env and start all services)
-./devrd start
-
-# Step-by-step workflow:
-./devrd build # Build container (generates .env if missing)
-./devrd start # Start all services (generates .env if missing)
-./devrd stop # Stop all services
-./devrd purge # Remove all containers, images, and volumes
-
-# Container access:
-./devrd prompt # Get interactive shell in container
-./devrd exec # Execute single command in container
-
-# Node-RED SIL Simulation:
-./devrd flows # List available simulation flows
-./devrd flow # Switch to specific flow file
-
-# Custom environment configuration:
-./devrd env -w /path/to/workspace # Set workspace directory mapping
-```
-
-#### Available Services and Docker Compose Profiles
-
-Services are organized into logical profiles for easier management:
-
-| Profile | Service | Container Name | URL | Purpose |
-| --------------- | ----------------- | --------------------------------------- | -------------------------- | ------------------------- |
-| `mqtt/ocpp/sil` | **MQTT Server** | `_devcontainer-mqtt-server-1` | localhost:1883 | Basic MQTT broker |
-| `ocpp` | **OCPP DB** | `_devcontainer-ocpp-db-1` | Internal | OCPP database |
-| `ocpp` | **Steve (HTTP)** | `_devcontainer-steve-1` | | OCPP backend management |
-| `sil` | **Node-RED UI** | `_devcontainer-nodered-1` | | SIL simulation interface |
-| `sil` | **MQTT Explorer** | `_devcontainer-mqtt-explorer-1` | | MQTT topic browser |
-| `ocpp/sil` | **Dev Container** | `_devcontainer-devcontainer-1` | Command line | The development container |
-| `ocpp/sil` | **Docker Proxy** | `_devcontainer-docker-proxy-1` | Internal | Secure Docker API access |
-
-**Note:** The `all` profile is a synthetic profile that includes all services. Use `./devrd start all` or `./devrd start` (default) to start all services.
-
-Where `` is the Docker Compose project name (check below).
-
-**Usage Examples:**
-
-```bash
-# Start profiles
-./devrd start # Start all services (generates .env if missing)
-./devrd start all # Start all services (same as above)
-./devrd start sil # Start SIL simulation tools
-./devrd start ocpp # Start OCPP backend
-./devrd start mqtt # Start only MQTT server
-
-# Stop services
-./devrd stop # Stop all services
-./devrd stop all # Stop all services (same as above)
-./devrd stop sil # Stop SIL profile only
-./devrd stop ev-ws # Stop all containers matching pattern 'ev-ws'
-```
-
-The Docker Compose project name determines how containers are named and grouped.
-By default, it uses the **current folder name with _devcontainer suffix** (consistent with VSC behavior), but can be customized:
-
-| Behavior | Description |
-| ------------ | -------------------------------------------------------------------------------------------- |
-| **Default** | Uses current folder name + `_devcontainer` (e.g., `ev-ws_devcontainer` for `/path/to/ev-ws`) |
-| **Override** | Set `DOCKER_COMPOSE_PROJECT_NAME` environment variable |
-| **Example** | `DOCKER_COMPOSE_PROJECT_NAME="my-project" ./devrd start` |
-
-**Container naming pattern:** `{project-name}-{service}-1`
-
-- Default: `ev-ws_devcontainer-nodered-1`, `ev-ws_devcontainer-steve-1`
-- Custom: `my-project-nodered-1`, `my-project-steve-1`
-
-#### Environment Variables
-
- You can generate an .env file with auto-detected values using this command:
-
- ```bash
- ./devrd env # Generate .env file with auto-detected values
- ```
-
- This will create a `.devcontainer/.env` file with the following content:
-
- ```bash
- # Auto-generated by setup script
- ORGANIZATION_ARG=EVerest
- REPOSITORY_HOST=gitlab.com
- REPOSITORY_USER=git
- COMMIT_HASH=<..>
- EVEREST_TOOL_BRANCH=main
- UID=<..>
- GID=<..>
- HOST_WORKSPACE_FOLDER=/home/fmihut/checkout/ev-ws
- ```
-
-These variables are automatically mapped in the container to the following environment variables:
-
-- `ORGANIZATION_ARG`: Maps to `EVEREST_DEV_TOOL_DEFAULT_GIT_ORGANIZATION`
-- `REPOSITORY_HOST`: Maps to `EVEREST_DEV_TOOL_DEFAULT_GIT_HOST`
-- `REPOSITORY_USER`: Maps to `EVEREST_DEV_TOOL_DEFAULT_GIT_SSH_USER`
-- `EVEREST_TOOL_BRANCH`: Maps to `EVEREST_TOOL_BRANCH`
-- `HOST_WORKSPACE_FOLDER`: The directory mapped to `/workspace` inside the container
-
-Use this mechanism if you have a different organization or git host or user.
-This is useful if you have forked and you are hosting your development outside github.
-
-**Workspace Folder Mapping:**
-
-The `/workspace` directory inside the container can be mapped to any folder on your host system. The workspace folder is determined in the following priority order:
-
-1. **Command line option**: `-w` or `--workspace` flag
-2. **Environment variable**: `HOST_WORKSPACE_FOLDER` environment variable
-3. **`.env` file**: `HOST_WORKSPACE_FOLDER` value in `.devcontainer/.env`
-4. **Current directory**: Falls back to the current working directory
-
-The `.devcontainer` directory (containing `.env` and Docker Compose files) is always located relative to where the `devrd` script is installed. This allows you to:
-
-- Run `devrd` from any directory in your workspace
-- Use a single `devrd` installation to manage multiple workspaces by changing `HOST_WORKSPACE_FOLDER` in the `.env` file
-
-```bash
-# Set workspace mapping via command line
-./devrd env -w /path/to/workspace # Map to any directory
-./devrd start
-
-# Or edit .devcontainer/.env directly and set HOST_WORKSPACE_FOLDER
-# Then run from anywhere:
-cd /path/to/workspace/subfolder
-../devrd start # Works correctly, uses workspace from .env file
-```
-
-#### Working with Multiple Repositories
-
-To work with multiple everest repositories:
-
-1. **Follow the [Quick Start](#quick-start-using-vs-code-development---full-automation) setup** to create your workspace and install the devcontainer template
-2. **Start VS Code** or run the container manually
-3. **Clone additional repositories:**
-
-```bash
-# Follow the Quick Start setup first and
-# Build and start the environment
-./devrd build # generates .env if missing and builds the container
-code . # if you use VSCode
-./devrd start # not using VSCode (generates .env if missing)
-./devrd prompt # not using VSCode
-
-# inside the container
-cd /workspace
-everest clone everest-core # or use the git command to clone
-everest clone everest-framework # or use the git command to clone
-cd everest-core
-# Build the project (see Building EVerest section for details)
-cmake -S . -B build -G Ninja
-ninja -C build install
-# this is building everest-core and it will use the everest-framework cloned locally
-# the rest of the dependencies will be automatically downloaded by edm
-# you can manually clone any of the dependencies locally if you want to
-```
-
-#### Shell Completion (Optional)
-
-Command line completion for the `devrd` script is **enabled by default** in the container. The completion file is automatically sourced when you start a shell session.
-
-If you want to enable completion on your host system (outside the container):
-
-**For Bash:**
-
-```bash
-# Add to your ~/.bashrc
-source .devcontainer/devrd-completion.bash
-```
-
-**For Zsh:**
-
-```bash
-# Add to your ~/.zshrc
-autoload -U compinit && compinit
-source .devcontainer/devrd-completion.zsh
-```
-
-**Available completions:**
-
-- **Commands**: `env`, `build`, `start`, `stop`, `prompt`, `purge`, `exec`, `flows`, `flow`
-- **Options**: `-v`, `--version`, `-w`, `--workspace`, `--help`
-- **Node-RED flows**: dynamically detected from container (full file paths)
-- **Directories**: for workspace option
-- **Common commands**: for exec option
-
-**Example usage:**
-
-```bash
-./devrd # Shows all commands
-./devrd start # Shows available profiles to start
-```
-
-### SIL Simulation
-
-#### Building EVerest
-
-```bash
-# 1. Start environment (HOST)
-./devrd start
-
-# 2. Build project (CONTAINER)
-./devrd prompt
-cd /workspace
-cmake -B build -S . -GNinja && ninja -C build install/strip
-
-# 3. Switch to simulation (HOST)
-./devrd flow everest-core/config/nodered/config-sil-dc-flow.json
-
-# 4. Open UI
-# Visit: http://localhost:1880/ui
-```
-
-**Note:** You can use `make` instead of `ninja` by removing `-G Ninja`.
-
-#### Available Node-RED UI Simulations
-
-| Flow File | Description |
-| -------------------------------------------------------------------- | -------------------- |
-| `everest-core/config/nodered/config-sil-dc-flow.json` | Single DC charging |
-| `everest-core/config/nodered/config-sil-dc-bpt-flow.json` | DC charging with BPT |
-| `everest-core/config/nodered/config-sil-energy-management-flow.json` | Energy management |
-| `everest-core/config/nodered/config-sil-two-evse-flow.json` | Two EVSE simulation |
-| `everest-core/config/nodered/config-sil-flow.json` | Basic SIL simulation |
-
-#### Troubleshooting
-
-**Port conflicts:**
-
-Each instance uses the same ports (1883, 1880, 4000, etc.). Please note that only one instance can run at a time.
-If another process is using the port you need here is how to detect it and make it available:
-
-```bash
-sudo lsof -ti:1880 \| xargs sudo kill -9
-./devrd start
-```
-
-**Regenerate environment configuration:**
-
-```bash
-./devrd env # Generate new .env file with auto-detection
-```
-
-**Customize environment variables:**
-
-```bash
-# Use specific branch for everest-dev-environment
-./devrd env -v release/1.0
-```
-
-**Important:** If you manually edit the `.env` file and change `EVEREST_TOOL_BRANCH` or other build arguments, you must rebuild the container for changes to take effect:
-
-```bash
-# Option 1: Force rebuild (recommended)
-./devrd env # Regenerate .env if you edited it manually
-./devrd build # Rebuild with new environment variables
-
-# Option 2: Clean rebuild (if rebuild doesn't work)
-./devrd stop # Stop all containers, images, and volumes
-./devrd purge # Remove all containers, images, and volumes
-./devrd build # Rebuild from scratch
-```
-
-**Purge and rebuild:**
-
-```bash
-./devrd purge # Remove all resources for current folder
-./devrd build # Will generate .env if missing
-```
-
-**Volume conflicts:**
-
-Docker volumes are shared. Use `./devrd purge` before switching instances.
-
-**SSH keys:**
-
-Ensure your SSH agent has the necessary keys for all repositories.
-
-**Container naming:**
-
-Docker containers are named based on the workspace directory to avoid conflicts.
-
-**Environment configuration issues:**
-
-If you're having issues with environment variables or configuration, see the [Environment Variables](#environment-variables) section above.
-
-**Container build issues:**
-
-If containers fail to build or start, see the [Manual Docker Setup](#manual-docker-setup) section for basic commands.
-
-**Switching between instances:**
-
-```bash
-# Stop current instance
-./devrd stop
-
-# Purge if switching to different branch/project
-./devrd purge
-
-# Start new instance
-cd ~/different-everest-directory
-./devrd start
-```
-
-## Everest Bare Metal Development
-
-### Python Prerequisites
-
-For development outside containers, install:
-
-```bash
-python3 -m pip install protobuf grpcio-tools nanopb==0.4.8
-```
-
-### EDM Prerequisites
-
-To be able to compile using Forgejo, you need to have edm tool at least with version 0.8.0:
-
-```bash
-edm --version
-edm 0.8.0
-```
-
-### Building with Tests
-
-```bash
-cmake -Bbuild -S. -GNinja -DBUILD_TESTING=ON -DEVEREST_EXCLUDE_MODULES="Linux_Systemd_Rauc"
-ninja -C build
-ninja -C build test
-```
-
-### Cross-Compilation
-
-Install the SDK as provided by Yocto (or similar).
-Activate the environment (typically by sourcing a script).
-
-```bash
-cd {...}/everest-core
-cmake -S . -B build-cross -GNinja
- -DCMAKE_INSTALL_PREFIX=/var/everest
- -DEVC_ENABLE_CCACHE=1
- -DCMAKE_EXPORT_COMPILE_COMMANDS=1
- -DEVEREST_ENABLE_JS_SUPPORT=OFF
- -DEVEREST_ENABLE_PY_SUPPORT=OFF
- -Deverest-cmake_DIR=
-
-DESTDIR=dist ninja -C build-cross install/strip && \
- rsync -av build-cross/dist/var/everest root@:/var
-```
diff --git a/applications/dev-environment/THIRD_PARTY.md b/applications/dev-environment/THIRD_PARTY.md
deleted file mode 100644
index 920c29f40c..0000000000
--- a/applications/dev-environment/THIRD_PARTY.md
+++ /dev/null
@@ -1 +0,0 @@
-_Use this file to list out any third-party dependencies used by this project. You may choose to point to a Gemfile or other language specific packaging file for details._
diff --git a/applications/dev-environment/devcontainer/setup-container b/applications/dev-environment/devcontainer/setup-container
deleted file mode 100755
index 951c7776ea..0000000000
--- a/applications/dev-environment/devcontainer/setup-container
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/bin/bash
-
-set -e
-
-# Function to install devcontainer template
-install_devcontainer() {
- echo "π Installing EVerest DevContainer Template"
- echo "=========================================="
-
- read -p "Enter the workspace directory (default is the current directory): " WORKSPACE_DIR
- if [ -z "$WORKSPACE_DIR" ]; then
- WORKSPACE_DIR="./"
- fi
- WORKSPACE_DIR=$(realpath -m "$WORKSPACE_DIR")
-
- read -p "Enter the version of the everest-dev-environment (default is 'main'): " VERSION
- if [ -z "$VERSION" ]; then
- VERSION="main"
- fi
-
- echo "Create the workspace directory '$WORKSPACE_DIR' if it does not exist"
- mkdir -p $WORKSPACE_DIR
-
- # Check if workspace directory has files other than everest-dev-environment
- WORKSPACE_CONTENTS=$(ls -A $WORKSPACE_DIR 2>/dev/null | grep -v "^everest-dev-environment$" || true)
- if [ -n "$WORKSPACE_CONTENTS" ]; then
- # The workspace directory is not empty (excluding everest-dev-environment), warning do you want to continue?
- read -p "The workspace directory is not empty, do you want to continue? (y/N): " -r
- case "$REPLY" in
- [Nn]|"")
- echo "Exiting.."
- exit 1
- ;;
- [Yy])
- ;;
- *)
- echo "Invalid input. Exiting.."
- exit 1
- ;;
- esac
- fi
-
- # Check if everest-dev-environment exists locally
- if [ -d "everest-dev-environment" ]; then
- echo "Found local everest-dev-environment directory, using it instead of cloning..."
- SOURCE_DIR="everest-dev-environment"
- else
- echo "No local everest-dev-environment found, cloning from GitHub..."
- TMP_DIR=$(mktemp --directory)
- git clone --quiet --depth 1 --single-branch --branch "$VERSION" https://github.com/EVerest/everest-dev-environment.git "$TMP_DIR"
- SOURCE_DIR="$TMP_DIR"
- fi
-
- echo "Copy the template devcontainer configuration files to the workspace directory"
- cp -n -r $SOURCE_DIR/devcontainer/template/. $WORKSPACE_DIR/
-
- # Ensure devrd script is executable
- if [ -f "$WORKSPACE_DIR/devrd" ]; then
- chmod +x "$WORKSPACE_DIR/devrd"
- echo "β DevRD script installed and made executable"
- else
- echo "β Warning: DevRD script not found after installation"
- fi
-
- # Only remove temporary directory if we cloned it
- if [ "$SOURCE_DIR" != "everest-dev-environment" ]; then
- echo "Remove the temporary everest-dev-environment repository"
- rm -rf "$SOURCE_DIR"
- fi
-
- echo "DevContainer template installation complete!"
- echo "Files installed to: $WORKSPACE_DIR"
- echo ""
- echo "Installed components:"
- echo " β Dev Yard script (./devrd)"
- echo " β DevContainer configuration (.devcontainer/)"
- echo " β Shell completion (devrd-completion.bash/.zsh)"
- echo ""
- echo "Next steps:"
- echo " cd $WORKSPACE_DIR"
- echo " ./devrd env"
- echo " ./devrd build"
- echo " ./devrd start"
- echo " ./devrd prompt"
- echo ""
- echo "Optional - Enable command completion:"
- echo " Add to your shell configuration file:"
- echo " β’ For bash: Add 'source .devcontainer/devrd-completion.bash' to ~/.bashrc"
- echo " β’ For zsh: Add 'source .devcontainer/devrd-completion.zsh' to ~/.zshrc"
- echo " β’ For zsh: Also ensure completion is enabled: 'autoload -U compinit && compinit'"
-}
-
-# Function to display help
-show_help() {
- echo "Usage: $0 [OPTIONS]"
- echo ""
- echo "This script installs the EVerest DevContainer template to a workspace."
- echo ""
- echo "Installed components:"
- echo " β’ DevRD script (./devrd) - Main development environment manager"
- echo " β’ DevContainer configuration (.devcontainer/) - VS Code container config"
- echo " β’ Shell completion (devrd-completion.bash/.zsh) - Command completion for bash/zsh"
- echo ""
- echo "After installation:"
- echo " 1. cd to your workspace directory"
- echo " 2. Run './devrd env' to generate .env file"
- echo " 3. Run './devrd build' to build containers"
- echo " 4. Run './devrd start' to start services"
- echo " 5. Run './devrd prompt' to get shell access"
- echo ""
- echo "Optional - Enable command completion:"
- echo " Add to your shell configuration file:"
- echo " β’ For bash: Add 'source .devcontainer/devrd-completion.bash' to ~/.bashrc"
- echo " β’ For zsh: Add 'source .devcontainer/devrd-completion.zsh' to ~/.zshrc"
- echo " β’ For zsh: Also ensure completion is enabled: 'autoload -U compinit && compinit'"
- echo ""
- echo "Options:"
- echo " --help Display this help message"
- echo ""
- echo "Examples:"
- echo " $0 # Install DevContainer template to workspace"
- echo ""
- echo "After installation, use './devrd' to manage the development environment."
- exit 0
-}
-
-# Parse command line arguments
-while [ $# -gt 0 ]; do
- case $1 in
- --help)
- show_help
- ;;
- *)
- echo "Unknown option: $1"
- show_help
- ;;
- esac
-done
-
-# Execute the installation
-install_devcontainer
\ No newline at end of file
diff --git a/applications/dev-environment/devcontainer/template/.devcontainer/general-devcontainer/Dockerfile b/applications/dev-environment/devcontainer/template/.devcontainer/general-devcontainer/Dockerfile
deleted file mode 100644
index e669862873..0000000000
--- a/applications/dev-environment/devcontainer/template/.devcontainer/general-devcontainer/Dockerfile
+++ /dev/null
@@ -1,75 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM ghcr.io/everest/everest-ci/dev-env-base:v1.5.4
-
-# Build arguments for customization
-ARG USERNAME=docker
-ARG USER_UID=1000
-ARG USER_GID=1000
-ARG EVEREST_TOOL_BRANCH=main
-ARG ORGANIZATION_ARG=EVerest
-ARG REPOSITORY_HOST=github.com
-ARG REPOSITORY_USER=git
-
-# Update the package list and install dependencies (run as root)
-USER root
-RUN apt-get update && apt-get install -y \
- protobuf-compiler \
- libsystemd-dev \
- tmux \
- chrpath \
- cpio \
- diffstat \
- gawk \
- wget \
- zstd \
- liblz4-tool \
- file \
- && DEBIAN_FRONTEND=noninteractive apt-get install -y locales \
- && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \
- && dpkg-reconfigure --frontend=noninteractive locales \
- && update-locale LANG=en_US.UTF-8 \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
-
-ENV LANG en_US.UTF-8
-
-
-# Modify the existing docker user and group to match the host's USER_UID and USER_GID
-RUN groupmod --gid ${USER_GID} ${USERNAME} && \
- usermod --uid ${USER_UID} --gid ${USER_GID} ${USERNAME} && \
- usermod -aG dialout ${USERNAME}
-
-# Switch to the docker user
-USER ${USERNAME}
-WORKDIR /home/${USERNAME}
-
-# Add known hosts for git repositories
-RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan ${REPOSITORY_HOST} >> ~/.ssh/known_hosts
-
-# EVerest Development Tool - Dependencies
-RUN pip install --break-system-packages \
- nanopb
-
-# EVerest Development Tool with cache busting based on commit hash
-RUN python3 -m pip install --break-system-packages \
- git+https://github.com/EVerest/everest-dev-environment@${EVEREST_TOOL_BRANCH}#subdirectory=everest_dev_tool
-
-# Set environment variables
-ENV EVEREST_DEV_TOOL_DEFAULT_GIT_METHOD=ssh
-ENV EVEREST_DEV_TOOL_DEFAULT_GIT_HOST=${REPOSITORY_HOST}
-ENV EVEREST_DEV_TOOL_DEFAULT_GIT_SSH_USER=${REPOSITORY_USER}
-ENV EVEREST_DEV_TOOL_DEFAULT_GIT_ORGANIZATION=${ORGANIZATION_ARG}
-ENV LD_LIBRARY_PATH=/usr/local/lib
-
-# Set up welcome message
-RUN echo "echo \"ποΈ π Welcome to the EVerest development environment!\"" >> ${HOME}/.bashrc && \
- echo "echo \"To initialize the EVerest core repository everest-core in your workspace please run the following command:\"" >> ${HOME}/.bashrc && \
- echo "echo \"everest clone everest-core\"" >> ${HOME}/.bashrc && \
- echo "cd /workspace" >> ${HOME}/.bashrc
-
-# Enable command line completion for devrd script by default
-RUN echo "" >> ${HOME}/.bashrc && \
- echo "# Enable devrd command completion if available" >> ${HOME}/.bashrc && \
- echo "if [ -f /workspace/.devcontainer/devrd-completion.bash ]; then" >> ${HOME}/.bashrc && \
- echo " source /workspace/.devcontainer/devrd-completion.bash" >> ${HOME}/.bashrc && \
- echo "fi" >> ${HOME}/.bashrc
\ No newline at end of file
diff --git a/applications/dev-environment/doc/REQUIREMENTS.md b/applications/dev-environment/doc/REQUIREMENTS.md
deleted file mode 100644
index 69c30403bd..0000000000
--- a/applications/dev-environment/doc/REQUIREMENTS.md
+++ /dev/null
@@ -1,264 +0,0 @@
-# Docker-Based Workspace & Tooling β Requirements Specification
-
-Provide a lightweight, Docker-based workspace that runs both inside and outside Visual Studio Code (VS Code), orchestrates a set of containers (MQTT Explorer, OCPP/steve, Dev/Build, Node-RED), and includes a small setup tool to build, run, stop, purge, and interact with the environment. The dev container MUST support mounting a host folder as the workspace and allow building EVerest and running SIL.
-
----
-
-## Scope
-
-A minimal-dependency environment for development and simulation that:
-
-- Works **with** VS Code (Dev Containers) and **without** VS Code (CLI).
-- Runs the following containers: **MQTT Explorer**, **OCPP (steve + deps)**, **Dev/Build container**, **Node-RED for simulation**.
-- Provides a **setup tool** to manage lifecycle and developer workflows.
-- Supports **EVerest build** and **SIL execution** inside the dev container.
-
----
-
-## Definitions
-
-- **Dev container**: Linux container used for building/running code (incl. EVerest + SIL).
-- **Setup tool**: a small CLI (Bash or Python stdlib) wrapping `docker compose` and other commands.
-- **SIL**: Software-in-the-Loop execution of EVerest components.
-- **Profiles**: `docker compose` profiles enabling/disabling groups of services.
-
----
-
-## Target Platforms
-
-- **MUST**: Linux x86_64
-- **SHOULD**: Windows 11 (WSL2) and macOS (Apple Silicon)
-
----
-
-## Functional Requirements
-
-### F1. Minimal Dependencies
-
-- **MUST** require only:
- 1. Docker Engine (or Docker Desktop)
- 2. Docker Compose V2
-- **Optional** (editor integration): VS Code + βDev Containersβ extension.
-- **MUST NOT** require global host package managers (Node, Python, Java, etc.).
-
-**Acceptance:** On a clean host with only Docker/Compose, the setup tool builds and launches all profiles.
-
----
-
-### F2. VS Code Integration
-
-- Include `.devcontainer/` config enabling βReopen in Containerβ.
-- Dev container **MUST** expose project as `/workspace` (see F6).
-- System **MUST** be usable without VS Code (see F3).
-
-**Acceptance:** Opening the repo in VS Code and selecting βReopen in Containerβ starts the dev container with mounted workspace.
-
----
-
-### F3. CLI Operation (Outside VS Code)
-
-- All features **MUST** be accessible via the setup tool without VS Code.
-
-**Acceptance:** Every operation in F4/F5 is executable from a terminal with no editor running.
-
----
-
-### F4. Supported Containers
-
-Provide Compose services (each with its own profile):
-
-- **mqtt-explorer** β MQTT Explorer UI container
-- **ocpp-steve** β OCPP server (steve) + dependencies (e.g., DB)
-- **dev** β Build/dev container (toolchain for EVerest + SIL)
-- **nodered** β Node-RED for simulation
-- **Zellij or TMUX** β Possibility to see the logs of the other containers (low prio for now)
-
-**Acceptance:** `docker compose --profile up` starts the corresponding service(s).
-
----
-
-### F5. Setup Tool Capabilities
-
-Two separate CLI tools **MUST** be provided:
-
-**a) Installation Tool (`setup`)**
-
-- Runs installation directly when executed (no command needed)
-
-**b) Development Yard Tool (`devrd`)**
-
-**Start/Stop**
-
-- `start [mqtt|ocpp|dev|nodered|all]`
-- `stop [mqtt|ocpp|dev|nodered|all]`
-
-**Build/Purge**
-
-- `build` builds images.
-- `purge` removes containers/networks and optionally images/volumes.
-
-**Exec/Shell in Dev Container**
-
-- `exec ""` runs a shell command in the **running** dev container.
-- `prompt` attaches an interactive shell to the dev container.
-
-**Select Node-RED Flow**
-
-- `flows` displays the available flows for the Node-RED container
-- `set-flow ` selects the flow for the Node-RED container via bind-mount or env switch.
-- Selection **MUST** persist across restarts (volume or config).
-
-**Version checking**
-
-- version check - the script should check the version of the docker tools it is using (docker compose). In case of major difference shall display an warning message.
-
-**Acceptance:** Each subcommand functions as specified and returns non-zero on error.
-
----
-
-### F6. Dev Container Workspace Mount
-
-- **MUST** mount a host folder as `/workspace` (read-write).
-- Host path **MUST** be configurable (default: current folder).
-- File changes **MUST** be reflected both ways.
-
-**Acceptance:** Creating a file on the host appears in `/workspace` and vice versa.
-
----
-
-### F7. EVerest Build & SIL
-
-- Dev container **MUST** include prerequisites to build EVerest.
-- Dev container **COULD** include prerequisites to build an yocto image containing EVerest.
-
-**Acceptance:** On a fresh checkout, a build of EVerest completes successfully (network access assumed for deps).
-
----
-
-## Non-Functional Requirements
-
-### N1. Simplicity
-
-Repository **SHOULD** contain:
-
-- `.devcontainer/docker-compose.yml` (main compose file)
-- `.devcontainer/general-devcontainer/` (devcontainer configuration)
-- `setup` (β€ ~100 LOC, installation only)
-- `devrd` (β€ ~600 LOC, development yard management)
-- `README.md` (quickstart, troubleshooting)
-- Documentation files in `doc/` directory
-
-Both tools **SHOULD NOT** depend on non-standard Python packages; if Python is used, restrict to the standard library and standard scripting. If Bash, rely only on POSIX tools.
-
----
-
-### N2. Isolation & Persistence
-
-- Use a dedicated Docker network; services **MUST** be reachable by service name.
-- Persist appropriate data via named volumes (e.g., Node-RED data, steve DB).
-- `devrd purge` **MUST** delete persisted data.
-- Docker Compose project naming uses current folder name with `_devcontainer` suffix for consistency with VS Code.
-
----
-
-### N3. Configuration
-
-- All tunables (ports, flow path, workspace path) **MUST** be configurable via `.devcontainer/.env` and overridable via env vars/CLI flags.
-- Environment configuration is auto-generated by `devrd env` command with sensible defaults.
-- Workspace mapping is configurable via `devrd env -w ` option.
-
----
-
-### N4. Observability
-
-- `devrd start` **SHOULD** show per-service state, mapped ports, and container names.
-- `devrd flows` **SHOULD** show Node-RED container status and list available flows.
-- Container services summary displays actual port mappings and service URLs.
-
----
-
-### N5. Security Baseline
-
-- Containers **MUST NOT** run as root unless required; prefer an unprivileged user for dev.
-- Avoid `--privileged` unless strictly necessary.
-- Default ports **SHOULD** bind to localhost unless cross-host access is intended.
-- SSH agent integration for Git operations with proper key management.
-
----
-
-## Suggested Compose Structure (High-Level)
-
-- **Profiles**
- - `mqtt` β MQTT Server
- - `ocpp` β MQTT Server, OCPP DB, Steve
- - `sil` β MQTT Server, Node-RED, MQTT Explorer
-
-- **Volumes**
- - `nodered_data`, `steve_db`
-
-- **Network**
- - Default Docker network (services reachable by name)
-
-- **Project Naming**
- - `{workspace-folder-name}_devcontainer` (consistent with VS Code)
-
----
-
-## CLI Sketch
-
-```bash
-# Installation (one-time setup)
-./setup
-
-# Development environment management
-./devrd start [dev|mqtt|ocpp|nodered|all]
-./devrd stop [dev|mqtt|ocpp|nodered|all]
-./devrd build [--all|service]
-./devrd purge [service|all] [--with-images] [--with-volumes]
-./devrd exec ""
-./devrd shell
-./devrd set-flow ./flows/sim_fast.flow.json
-./devrd status
-./devrd logs [service] [--follow]
-./devrd build-everest
-./devrd run-sil [args...]
-```
-
----
-
-## Defaults (Editable via `.devcontainer/.env`)
-
-```
-ORGANIZATION_ARG=EVerest
-REPOSITORY_HOST=github.com
-REPOSITORY_USER=git
-COMMIT_HASH=
-EVEREST_TOOL_BRANCH=main
-UID=
-GID=
-HOST_WORKSPACE_FOLDER=
-```
-
----
-
-## Out-of-the-Box User Journeys
-
-1. **Run everything in VS Code**
- `./setup` β Open repo β Reopen in Container β `./devrd start all` β open Node-RED/MQTT Explorer in browser.
-
-2. **Run headless (no VS Code)**
- `./setup` β `./devrd start dev` β `./devrd build-everest` β `./devrd run-sil --scenario basic`
-
-3. **Switch Node-RED flow**
- `./devrd set-flow ./flows/ac_slow.flow.json` β `./devrd stop nodered && ./devrd start nodered`
-
----
-
-*If you want, I can turn this into a ready-to-use `docker-compose.yml`, `.devcontainer/devcontainer.json`, and a tiny `tool.sh` next.*
-
-**Decision**:
-The implementation will be having 3 parts:
-
-- a bash script `setup` for the installation of the dev container
-- a pure bash script `devrd` (development yard) that will handle the instrumentation of the containers (build, start, stop, prompt, etc)
-- a Python script for the convenience additional command and aliases (INSIDE the devcontainer)
diff --git a/applications/dev-environment/docker/docker-compose.yml b/applications/dev-environment/docker/docker-compose.yml
deleted file mode 100644
index 3c694cea32..0000000000
--- a/applications/dev-environment/docker/docker-compose.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-version: "3.6"
-
-volumes:
- ocpp-db-data:
- external: false
- node-red-data:
- external: false
-
-networks:
- default:
- external: true
- name: infranet_network
-
-services:
- mqtt-server:
- build: images/mosquitto
- ports:
- - 1883:1883
- - 9001:9001
-
- ocpp-db:
- image: mariadb:10.4.30 # pinned to patch-version because https://github.com/steve-community/steve/pull/1213
- volumes:
- - ocpp-db-data:/var/lib/mysql
- ports:
- - 13306:3306
- environment:
- MYSQL_RANDOM_ROOT_PASSWORD: "yes"
- MYSQL_DATABASE: ocpp-db
- MYSQL_USER: ocpp
- MYSQL_PASSWORD: ocpp
-
- steve:
- build: images/steve
- ports:
- - 8180:8180
- - 8443:8443
- depends_on:
- - ocpp-db
-
- nodered:
- build: images/nodered
- volumes:
- - node-red-data:/data
- depends_on:
- - mqtt-server
- ports:
- - 1880:1880
diff --git a/applications/dev-environment/everest-complete-readonly.yaml b/applications/dev-environment/everest-complete-readonly.yaml
deleted file mode 100644
index 6c5be79331..0000000000
--- a/applications/dev-environment/everest-complete-readonly.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-RISE-V2G:
- git: https://github.com/EVerest/ext-RISE-V2G.git
- git_tag: master
- options:
- - THIRD_PARTY_APP_DST rise_v2g
-Josev:
- git: https://github.com/EVerest/ext-switchev-iso15118.git
- git_tag: everest
- options:
- - THIRD_PARTY_APP_DST josev
-everest-cmake:
- git: https://github.com/EVerest/everest-cmake.git
- git_tag: main
-everest-core:
- git: https://github.com/EVerest/everest-core.git
- git_tag: main
-everest-dev-environment:
- git: https://github.com/EVerest/everest-dev-environment.git
- git_tag: main
-everest-framework:
- git: https://github.com/EVerest/everest-framework.git
- git_tag: main
-everest-utils:
- git: https://github.com/EVerest/everest-utils.git
- git_tag: main
-libfsm:
- git: https://github.com/EVerest/libfsm.git
- git_tag: main
-liblog:
- git: https://github.com/EVerest/liblog.git
- git_tag: main
- options:
- - BUILD_EXAMPLES OFF
-libmodbus:
- git: https://github.com/EVerest/libmodbus.git
- git_tag: main
- options:
- - BUILD_EXAMPLES OFF
-libocpp:
- git: https://github.com/EVerest/libocpp.git
- git_tag: main
-libslac:
- git: https://github.com/EVerest/libslac.git
- git_tag: main
-libsunspec:
- git: https://github.com/EVerest/libsunspec.git
- git_tag: main
- options:
- - BUILD_EXAMPLES OFF
-libtimer:
- git: https://github.com/EVerest/libtimer.git
- git_tag: main
- options:
- - BUILD_EXAMPLES OFF
-ext-mbedtls:
- git: https://github.com/EVerest/ext-mbedtls.git
- git_tag: mbedtls-2.28.0-trustedCAKey
-ext-openv2g:
- git: https://github.com/EVerest/ext-openv2g.git
- git_tag: everest
diff --git a/applications/dev-environment/everest-complete.yaml b/applications/dev-environment/everest-complete.yaml
deleted file mode 100644
index fc4be6d426..0000000000
--- a/applications/dev-environment/everest-complete.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-RISE-V2G:
- git: git@github.com:EVerest/ext-RISE-V2G.git
- git_tag: master
- options:
- - THIRD_PARTY_APP_DST rise_v2g
-Josev:
- git: git@github.com:EVerest/ext-switchev-iso15118.git
- git_tag: everest
- options:
- - THIRD_PARTY_APP_DST josev
-everest-cmake:
- git: git@github.com:EVerest/everest-cmake.git
- git_tag: main
-everest-core:
- git: git@github.com:EVerest/everest-core.git
- git_tag: main
-everest-dev-environment:
- git: git@github.com:EVerest/everest-dev-environment.git
- git_tag: main
-everest-framework:
- git: git@github.com:EVerest/everest-framework.git
- git_tag: main
-everest-utils:
- git: git@github.com:EVerest/everest-utils.git
- git_tag: main
-libfsm:
- git: git@github.com:EVerest/libfsm.git
- git_tag: main
-liblog:
- git: git@github.com:EVerest/liblog.git
- git_tag: main
- options:
- - BUILD_EXAMPLES OFF
-libmodbus:
- git: git@github.com:EVerest/libmodbus.git
- git_tag: main
- options:
- - BUILD_EXAMPLES OFF
-libocpp:
- git: git@github.com:EVerest/libocpp.git
- git_tag: main
-libslac:
- git: git@github.com:EVerest/libslac.git
- git_tag: main
-libsunspec:
- git: git@github.com:EVerest/libsunspec.git
- git_tag: main
- options:
- - BUILD_EXAMPLES OFF
-libtimer:
- git: git@github.com:EVerest/libtimer.git
- git_tag: main
- options:
- - BUILD_EXAMPLES OFF
-ext-mbedtls:
- git: git@github.com:EVerest/ext-mbedtls.git
- git_tag: mbedtls-2.28.0-trustedCAKey
-ext-openv2g:
- git: git@github.com:EVerest/ext-openv2g.git
- git_tag: everest
diff --git a/applications/dev-environment/everest_dev_tool/LICENSE b/applications/dev-environment/everest_dev_tool/LICENSE
deleted file mode 100644
index 261eeb9e9f..0000000000
--- a/applications/dev-environment/everest_dev_tool/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/applications/dev-environment/devcontainer/devrd b/applications/devrd/devrd
similarity index 99%
rename from applications/dev-environment/devcontainer/devrd
rename to applications/devrd/devrd
index 01574e7d7f..7f77f1ec22 100755
--- a/applications/dev-environment/devcontainer/devrd
+++ b/applications/devrd/devrd
@@ -7,7 +7,7 @@ EVEREST_TOOL_BRANCH="main"
# Script directory - where devrd is located
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# .devcontainer directory is always relative to the script location
-DEVCONTAINER_DIR="${SCRIPT_DIR}/.devcontainer"
+DEVCONTAINER_DIR="${SCRIPT_DIR}/../../.devcontainer"
# .env file is always in the .devcontainer directory (relative to script)
ENV_FILE="${DEVCONTAINER_DIR}/.env"
@@ -250,8 +250,7 @@ start_compose_profile() {
fi
# Display workspace mapping
- local workspace_folder=$(load_workspace_from_env "$(pwd)")
- echo "Workspace mapping: $workspace_folder β /workspace"
+ echo "Workspace mapping: $HOST_WORKSPACE_FOLDER β /workspace"
echo ""
# Display container links
diff --git a/applications/dev-environment/devcontainer/template/.devcontainer/devrd-completion.bash b/applications/devrd/devrd-completion.bash
similarity index 100%
rename from applications/dev-environment/devcontainer/template/.devcontainer/devrd-completion.bash
rename to applications/devrd/devrd-completion.bash
diff --git a/applications/dev-environment/devcontainer/template/.devcontainer/devrd-completion.zsh b/applications/devrd/devrd-completion.zsh
similarity index 100%
rename from applications/dev-environment/devcontainer/template/.devcontainer/devrd-completion.zsh
rename to applications/devrd/devrd-completion.zsh
diff --git a/applications/dev-environment/everest_dev_tool/.gitignore b/applications/everest_dev_tool/.gitignore
similarity index 100%
rename from applications/dev-environment/everest_dev_tool/.gitignore
rename to applications/everest_dev_tool/.gitignore
diff --git a/applications/dev-environment/dependency_manager/LICENSE b/applications/everest_dev_tool/LICENSE
similarity index 100%
rename from applications/dev-environment/dependency_manager/LICENSE
rename to applications/everest_dev_tool/LICENSE
diff --git a/applications/dev-environment/everest_dev_tool/pyproject.toml b/applications/everest_dev_tool/pyproject.toml
similarity index 100%
rename from applications/dev-environment/everest_dev_tool/pyproject.toml
rename to applications/everest_dev_tool/pyproject.toml
diff --git a/applications/dev-environment/everest_dev_tool/src/everest_dev_tool/__init__.py b/applications/everest_dev_tool/src/everest_dev_tool/__init__.py
similarity index 100%
rename from applications/dev-environment/everest_dev_tool/src/everest_dev_tool/__init__.py
rename to applications/everest_dev_tool/src/everest_dev_tool/__init__.py
diff --git a/applications/dev-environment/everest_dev_tool/src/everest_dev_tool/git_handlers.py b/applications/everest_dev_tool/src/everest_dev_tool/git_handlers.py
similarity index 100%
rename from applications/dev-environment/everest_dev_tool/src/everest_dev_tool/git_handlers.py
rename to applications/everest_dev_tool/src/everest_dev_tool/git_handlers.py
diff --git a/applications/dev-environment/everest_dev_tool/src/everest_dev_tool/parser.py b/applications/everest_dev_tool/src/everest_dev_tool/parser.py
similarity index 100%
rename from applications/dev-environment/everest_dev_tool/src/everest_dev_tool/parser.py
rename to applications/everest_dev_tool/src/everest_dev_tool/parser.py
diff --git a/applications/dev-environment/everest-metadata.yaml b/everest-metadata.yaml
similarity index 100%
rename from applications/dev-environment/everest-metadata.yaml
rename to everest-metadata.yaml