From ac439e695819b73f5d7b92b65dd058e1084f8b3d Mon Sep 17 00:00:00 2001 From: Gaspard Kirira Date: Wed, 1 Jul 2026 22:43:56 +0300 Subject: [PATCH 1/4] chore(release): prepare v2.7.1 --- CHANGELOG.md | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++ modules/cli | 2 +- modules/core | 2 +- 3 files changed, 113 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b4badc..820af9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,117 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +# Vix.cpp v2.7.1 + +Vix.cpp v2.7.1 is a focused patch release that strengthens the new Vix application workflow with a Go-like internal module system for backend projects. + +This release introduces the first complete foundation for **Vix App Modules**: modules can now be declared in `vix.app`, enabled or disabled from one place, compiled only when active, and automatically wired into backend applications. + +The core identity of v2.7.1 is: + +- Vix App Modules +- Backend module skeletons +- Automatic module registration +- Stronger module checks + +## Added + +### Vix App Modules + +- Added official `[module.]` section support in `vix.app`. +- Added module fields for application modules: + - `enabled` + - `path` + - `kind` + - `depends` +- Added rich module parsing in the `vix.app` manifest loader. +- Added `AppModule` manifest metadata for module name, enabled state, path, kind, and internal dependencies. +- Added support for `type = backend` in `vix.app`, mapped internally to an executable target. +- Added `vix modules list` for listing modules declared in `vix.app`. +- Added `vix modules enable ` for enabling an existing module from `vix.app`. +- Added `vix modules disable ` for disabling an existing module from `vix.app`. +- Added automatic registration of new modules into `vix.app` when using `vix modules add ` inside a `vix.app` project. +- Added `vix.module` manifest generation for every new module. +- Added backend module skeleton generation for backend projects. +- Added generated backend module files: + - `Module.hpp` + - `Module.cpp` + - `Controller.hpp` + - `Controller.cpp` + - `vix.module` + - `migrations/` + - `tests/` +- Added automatic backend module route registration through generated Vix app module wiring. +- Added generated files for backend module registration: + - `.vix/generated/app/include/vix_app_modules.hpp` + - `.vix/generated/app/vix_app_modules.cpp` +- Added automatic inclusion of `vix_app_modules.cpp` in generated backend CMake projects. +- Added generated include support for `vix_app_modules.hpp`. + +### Module safety checks + +- Added stronger `vix modules check` validation for `vix.app` projects. +- Added validation for modules declared in `vix.app` but missing on disk. +- Added validation for enabled modules missing `CMakeLists.txt`. +- Added validation for enabled modules missing `vix.module`. +- Added warnings for module folders that exist but are not declared in `vix.app`. +- Added dependency validation for undeclared module dependencies. +- Added validation for enabled modules depending on disabled modules. +- Added circular dependency detection for internal module dependencies. +- Added duplicate route prefix detection through `vix.module`. + +## Changed + +- Updated `vix modules` to behave as an app-first module organization layer for backend applications. +- Updated `vix modules add ` so backend projects generate backend-oriented modules instead of simple `api.hpp` modules. +- Updated generated backend application templates to call generated module registration hooks. +- Updated generated CMake for `vix.app` projects so only enabled modules are loaded. +- Updated `cmake/vix_modules.cmake` behavior: + - `vix.app` projects load only `VIX_ENABLED_MODULES`. + - Classic CMake projects keep the legacy `modules/*` loading behavior. +- Updated module activation rules so a module folder can exist without being compiled. +- Updated module linking so `enabled = false` in `vix.app` prevents the module from being compiled and linked. +- Updated `vix modules list` output to show declared module state, kind, path, filesystem status, and dependencies. +- Updated backend module generation to prepare a clean structure for future services, repositories, routes, migrations, and tests. + +## Fixed + +- Fixed disabled modules still being loadable through the legacy `modules/*` CMake fallback in `vix.app` projects. +- Fixed `vix.app` module handling so an empty enabled module list is still emitted as `VIX_ENABLED_MODULES`, preventing unintended legacy module loading. +- Fixed `vix modules add ` for `vix.app` projects so the module is added to the manifest automatically instead of requiring manual edits. +- Fixed backend module generation so the generated module can compile and expose a working route through automatic registration. +- Fixed module checks so bad architecture states are detected early before the application grows. + +## Notes + +Vix.cpp v2.7.1 is a small but important architecture release. + +The goal is to make large C++ backend applications easier to organize without forcing everything into one large `src/` tree. + +A Vix backend application can now keep its core application bootstrap small while features live as internal modules such as: + +```text +modules/auth +modules/projects +modules/builds +modules/packages +``` + +Each module can be declared, enabled, disabled, and validated from one place: `vix.app`. + +This gives C++ backend projects a more structured, Go-like organization model while staying native to CMake and Vix. + +The direction of this release is: + +- One backend app +- Clear internal modules +- Explicit dependencies +- Safe enable/disable workflow +- Automatic backend route wiring +- Stronger architecture checks + +This release also prepares the foundation for larger Vix-powered applications such as **Softadastra Cloud**, where features like authentication, projects, builds, packages, logs, registry, and deployments need to grow independently without turning the backend into a difficult-to-maintain folder structure. + ## v2.7.0 Vix.cpp v2.7.0 introduces three major foundations for the framework: `vix::note`, `vix::ui`, and `vix::requests`. diff --git a/modules/cli b/modules/cli index c781a15..a910dfe 160000 --- a/modules/cli +++ b/modules/cli @@ -1 +1 @@ -Subproject commit c781a15195ce9befd36f5ca75d960ff793af8f04 +Subproject commit a910dfe61a30375904be851a91b6f42e7169faae diff --git a/modules/core b/modules/core index 0fd98f4..6ba6472 160000 --- a/modules/core +++ b/modules/core @@ -1 +1 @@ -Subproject commit 0fd98f4c55cac68d68566db837a4135ffe09d32f +Subproject commit 6ba647275b6874d8f39842811d22ac063e7f1bea From 1e6e4935ed85d2838f550159b936ae11ce5c1ef8 Mon Sep 17 00:00:00 2001 From: Gaspard Kirira Date: Fri, 3 Jul 2026 09:40:07 +0300 Subject: [PATCH 2/4] chore(release): update v2.7.1 changelog and CLI --- CHANGELOG.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- modules/cli | 2 +- 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 820af9a..5799b64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 # Vix.cpp v2.7.1 -Vix.cpp v2.7.1 is a focused patch release that strengthens the new Vix application workflow with a Go-like internal module system for backend projects. +Vix.cpp v2.7.1 is a focused patch release that strengthens the new Vix application workflow with a Go-like internal module system for backend projects, improves SDK lifecycle handling, fixes dev-mode manifest watching, and gives `vix uninstall` a cleaner command experience. This release introduces the first complete foundation for **Vix App Modules**: modules can now be declared in `vix.app`, enabled or disabled from one place, compiled only when active, and automatically wired into backend applications. @@ -17,6 +17,8 @@ The core identity of v2.7.1 is: - Backend module skeletons - Automatic module registration - Stronger module checks +- Dev mode awareness for `vix.app` changes +- Better SDK lifecycle workflows ## Added @@ -28,6 +30,7 @@ The core identity of v2.7.1 is: - `path` - `kind` - `depends` + - Added rich module parsing in the `vix.app` manifest loader. - Added `AppModule` manifest metadata for module name, enabled state, path, kind, and internal dependencies. - Added support for `type = backend` in `vix.app`, mapped internally to an executable target. @@ -45,10 +48,12 @@ The core identity of v2.7.1 is: - `vix.module` - `migrations/` - `tests/` + - Added automatic backend module route registration through generated Vix app module wiring. - Added generated files for backend module registration: - `.vix/generated/app/include/vix_app_modules.hpp` - `.vix/generated/app/vix_app_modules.cpp` + - Added automatic inclusion of `vix_app_modules.cpp` in generated backend CMake projects. - Added generated include support for `vix_app_modules.hpp`. @@ -64,6 +69,30 @@ The core identity of v2.7.1 is: - Added circular dependency detection for internal module dependencies. - Added duplicate route prefix detection through `vix.module`. +### Uninstall workflow + +- Added a more complete `vix uninstall` workflow with styled CLI output aligned with the newer `vix upgrade` experience. +- Added `vix uninstall --dry-run` for previewing what would be removed without deleting files. +- Added `vix uninstall --json` for machine-readable uninstall output. +- Added `vix uninstall --verbose` for detailed command diagnostics. +- Added SDK uninstall support: + - `vix uninstall --sdk ` + - `vix uninstall --sdk-all` + - `vix uninstall --sdk-list` + +- Added SDK cleanup for installed SDK directories, current metadata, current pointers, and CMake user package registry entries. +- Added global package uninstall support through the improved uninstall flow: + - `vix uninstall -g ` + - `vix uninstall --global ` + +- Added safer CLI uninstall path detection using install metadata, `VIX_CLI_PATH`, shell lookup, explicit prefixes, and explicit binary paths. +- Added explicit uninstall options: + - `--purge` + - `--all` + - `--system` + - `--prefix ` + - `--path ` + ## Changed - Updated `vix modules` to behave as an app-first module organization layer for backend applications. @@ -73,10 +102,16 @@ The core identity of v2.7.1 is: - Updated `cmake/vix_modules.cmake` behavior: - `vix.app` projects load only `VIX_ENABLED_MODULES`. - Classic CMake projects keep the legacy `modules/*` loading behavior. + - Updated module activation rules so a module folder can exist without being compiled. - Updated module linking so `enabled = false` in `vix.app` prevents the module from being compiled and linked. - Updated `vix modules list` output to show declared module state, kind, path, filesystem status, and dependencies. - Updated backend module generation to prepare a clean structure for future services, repositories, routes, migrations, and tests. +- Updated `vix dev` so `vix.app` is treated as a configuration file, not as an ignored project file. +- Updated `vix dev` rebuild behavior so source and header changes keep the fast rebuild path, while `vix.app` changes trigger the full manifest-aware build path. +- Updated `vix uninstall` output to use clearer status lines, header sections, hints, and completion messages. +- Updated `vix uninstall --help` to document CLI uninstall, SDK uninstall, global package uninstall, purge, dry-run, JSON output, and explicit path removal. +- Updated uninstall behavior so dangerous removals are more explicit and easier to inspect before execution. ## Fixed @@ -85,12 +120,19 @@ The core identity of v2.7.1 is: - Fixed `vix modules add ` for `vix.app` projects so the module is added to the manifest automatically instead of requiring manual edits. - Fixed backend module generation so the generated module can compile and expose a working route through automatic registration. - Fixed module checks so bad architecture states are detected early before the application grows. +- Fixed `vix dev` ignoring `vix.app` changes during watch mode. +- Fixed `vix dev` so changes to `vix.app` now trigger a reconfigure-and-rebuild workflow. +- Fixed `vix dev` so manifest changes can regenerate generated app wiring and CMake output instead of staying on the fast rebuild path. +- Fixed SDK upgrade behavior so installed SDK profiles are registered with the CMake user package registry. +- Fixed uninstall behavior so SDK metadata and current pointers do not remain after removing a profile. +- Fixed uninstall behavior so global package entries are removed from the global manifest when a package is uninstalled. +- Fixed CLI uninstall feedback so users get clearer hints when a binary remains available in the shell path after removal. ## Notes Vix.cpp v2.7.1 is a small but important architecture release. -The goal is to make large C++ backend applications easier to organize without forcing everything into one large `src/` tree. +This release makes large C++ backend applications easier to organize without forcing every feature into one large `src/` tree. A Vix backend application can now keep its core application bootstrap small while features live as internal modules such as: @@ -105,6 +147,8 @@ Each module can be declared, enabled, disabled, and validated from one place: `v This gives C++ backend projects a more structured, Go-like organization model while staying native to CMake and Vix. +`vix dev` now understands this workflow better. When a normal source file changes, Vix keeps the fast rebuild path. When `vix.app` changes, Vix treats it as a configuration change so the generated CMake project, module list, and backend route wiring can be refreshed before the application restarts. + The direction of this release is: - One backend app @@ -113,6 +157,8 @@ The direction of this release is: - Safe enable/disable workflow - Automatic backend route wiring - Stronger architecture checks +- Dev mode that follows manifest changes +- Cleaner SDK lifecycle commands This release also prepares the foundation for larger Vix-powered applications such as **Softadastra Cloud**, where features like authentication, projects, builds, packages, logs, registry, and deployments need to grow independently without turning the backend into a difficult-to-maintain folder structure. diff --git a/modules/cli b/modules/cli index a910dfe..2e88bcc 160000 --- a/modules/cli +++ b/modules/cli @@ -1 +1 @@ -Subproject commit a910dfe61a30375904be851a91b6f42e7169faae +Subproject commit 2e88bccfd59729d74e03c9997a694f5a504373b7 From 49fd6f9756ce47057191073845b4f615339599a2 Mon Sep 17 00:00:00 2001 From: Gaspard Kirira Date: Fri, 3 Jul 2026 11:31:35 +0300 Subject: [PATCH 3/4] chore(release): update v2.7.1 changelog and CLI --- CHANGELOG.md | 134 +++++++++++++++++++++++++++++++++++---------------- modules/cli | 2 +- 2 files changed, 94 insertions(+), 42 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5799b64..3ce9c05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,18 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 # Vix.cpp v2.7.1 -Vix.cpp v2.7.1 is a focused patch release that strengthens the new Vix application workflow with a Go-like internal module system for backend projects, improves SDK lifecycle handling, fixes dev-mode manifest watching, and gives `vix uninstall` a cleaner command experience. +Vix.cpp v2.7.1 is a focused patch release that strengthens the new Vix application workflow with a Go-like internal module system for C++ application and backend projects, improves SDK lifecycle handling, fixes dev-mode manifest watching, and gives `vix uninstall` a cleaner command experience. -This release introduces the first complete foundation for **Vix App Modules**: modules can now be declared in `vix.app`, enabled or disabled from one place, compiled only when active, and automatically wired into backend applications. +This release introduces the first complete foundation for **Vix App Modules**: modules can now be declared in `vix.app`, enabled or disabled from one place, compiled only when active, automatically wired into executable applications, and validated before the project grows into a hard-to-maintain structure. The core identity of v2.7.1 is: -- Vix App Modules -- Backend module skeletons -- Automatic module registration -- Stronger module checks -- Dev mode awareness for `vix.app` changes -- Better SDK lifecycle workflows +```text +Vix App Modules +Backend module skeletons +Service module skeletons for app projects +Automatic module registration +Generated module tests +Stronger module checks +Dev mode awareness for vix.app changes +Better SDK lifecycle workflows +``` ## Added @@ -39,23 +43,50 @@ The core identity of v2.7.1 is: - Added `vix modules disable ` for disabling an existing module from `vix.app`. - Added automatic registration of new modules into `vix.app` when using `vix modules add ` inside a `vix.app` project. - Added `vix.module` manifest generation for every new module. + +### Backend and service module skeletons + - Added backend module skeleton generation for backend projects. -- Added generated backend module files: - - `Module.hpp` - - `Module.cpp` - - `Controller.hpp` - - `Controller.cpp` - - `vix.module` - - `migrations/` - - `tests/` - -- Added automatic backend module route registration through generated Vix app module wiring. -- Added generated files for backend module registration: - - `.vix/generated/app/include/vix_app_modules.hpp` - - `.vix/generated/app/vix_app_modules.cpp` - -- Added automatic inclusion of `vix_app_modules.cpp` in generated backend CMake projects. +- Added service module skeleton generation for app projects. +- Added generated routed module files: + +```text +Module.hpp +Module.cpp +Controller.hpp +Controller.cpp +vix.module +tests/test_.cpp +``` + +- Added `migrations/` directory generation for backend modules. +- Added generated example tests for backend and service modules. +- Added generated `ModuleRegistry` files for app projects: + +```text +include/app/ModuleRegistry.hpp +src/app/ModuleRegistry.cpp +``` + +- Added automatic app module wiring through generated Vix app module files: + +```text +.vix/generated/app/include/vix_app_modules.hpp +.vix/generated/app/vix_app_modules.cpp +``` + +- Added automatic inclusion of `vix_app_modules.cpp` in generated executable `vix.app` CMake projects. - Added generated include support for `vix_app_modules.hpp`. +- Added automatic route registration for enabled routed modules. +- Added support for `kind = service` modules in app projects. +- Added support for `kind = backend` modules in backend projects. + +### Module tests + +- Added generated test files for new modules. +- Added CTest integration for routed module tests. +- Added module test targets when `_BUILD_TESTS` is enabled. +- Added generated CMake support so module tests can be discovered and run through `vix tests`. ### Module safety checks @@ -76,14 +107,20 @@ The core identity of v2.7.1 is: - Added `vix uninstall --json` for machine-readable uninstall output. - Added `vix uninstall --verbose` for detailed command diagnostics. - Added SDK uninstall support: - - `vix uninstall --sdk ` - - `vix uninstall --sdk-all` - - `vix uninstall --sdk-list` + +```bash +vix uninstall --sdk +vix uninstall --sdk-all +vix uninstall --sdk-list +``` - Added SDK cleanup for installed SDK directories, current metadata, current pointers, and CMake user package registry entries. - Added global package uninstall support through the improved uninstall flow: - - `vix uninstall -g ` - - `vix uninstall --global ` + +```bash +vix uninstall -g +vix uninstall --global +``` - Added safer CLI uninstall path detection using install metadata, `VIX_CLI_PATH`, shell lookup, explicit prefixes, and explicit binary paths. - Added explicit uninstall options: @@ -95,10 +132,14 @@ The core identity of v2.7.1 is: ## Changed -- Updated `vix modules` to behave as an app-first module organization layer for backend applications. +- Updated `vix modules` to behave as an app-first module organization layer for C++ executable applications and backend applications. - Updated `vix modules add ` so backend projects generate backend-oriented modules instead of simple `api.hpp` modules. +- Updated `vix modules add ` so app projects generate routed service modules with controllers, route registration, `vix.module`, and tests. +- Updated generated app templates to include a small `ModuleRegistry` integration point instead of keeping all application wiring inside `src/main.cpp`. - Updated generated backend application templates to call generated module registration hooks. - Updated generated CMake for `vix.app` projects so only enabled modules are loaded. +- Updated generated CMake for executable `vix.app` projects so module wiring is generated consistently for app and backend targets. +- Updated generated CMake so test options are declared before modules are loaded, allowing module tests to be discovered correctly. - Updated `cmake/vix_modules.cmake` behavior: - `vix.app` projects load only `VIX_ENABLED_MODULES`. - Classic CMake projects keep the legacy `modules/*` loading behavior. @@ -107,6 +148,7 @@ The core identity of v2.7.1 is: - Updated module linking so `enabled = false` in `vix.app` prevents the module from being compiled and linked. - Updated `vix modules list` output to show declared module state, kind, path, filesystem status, and dependencies. - Updated backend module generation to prepare a clean structure for future services, repositories, routes, migrations, and tests. +- Updated app module generation to provide a minimal but functional HTTP service example. - Updated `vix dev` so `vix.app` is treated as a configuration file, not as an ignored project file. - Updated `vix dev` rebuild behavior so source and header changes keep the fast rebuild path, while `vix.app` changes trigger the full manifest-aware build path. - Updated `vix uninstall` output to use clearer status lines, header sections, hints, and completion messages. @@ -118,7 +160,12 @@ The core identity of v2.7.1 is: - Fixed disabled modules still being loadable through the legacy `modules/*` CMake fallback in `vix.app` projects. - Fixed `vix.app` module handling so an empty enabled module list is still emitted as `VIX_ENABLED_MODULES`, preventing unintended legacy module loading. - Fixed `vix modules add ` for `vix.app` projects so the module is added to the manifest automatically instead of requiring manual edits. +- Fixed app project module registration so routed service modules are written as `kind = service` and can be included in generated app wiring. +- Fixed generated service modules so their routes are available when enabled and disappear when disabled. - Fixed backend module generation so the generated module can compile and expose a working route through automatic registration. +- Fixed generated module tests so module test targets can be created before `vix tests` runs. +- Fixed generated test setup so module tests are not skipped because `_BUILD_TESTS` was declared after modules were loaded. +- Fixed duplicate generated file output for module test files in `vix modules add`. - Fixed module checks so bad architecture states are detected early before the application grows. - Fixed `vix dev` ignoring `vix.app` changes during watch mode. - Fixed `vix dev` so changes to `vix.app` now trigger a reconfigure-and-rebuild workflow. @@ -132,7 +179,7 @@ The core identity of v2.7.1 is: Vix.cpp v2.7.1 is a small but important architecture release. -This release makes large C++ backend applications easier to organize without forcing every feature into one large `src/` tree. +This release makes C++ applications and backend projects easier to organize without forcing every feature into one large `src/` tree. A Vix backend application can now keep its core application bootstrap small while features live as internal modules such as: @@ -143,24 +190,29 @@ modules/builds modules/packages ``` +A Vix app project can also grow through routed service modules, where each module gets its own manifest, controller, source files, and test file while the main application keeps a small `ModuleRegistry` entry point. + Each module can be declared, enabled, disabled, and validated from one place: `vix.app`. -This gives C++ backend projects a more structured, Go-like organization model while staying native to CMake and Vix. +This gives C++ projects a more structured, Go-like organization model while staying native to CMake and Vix. -`vix dev` now understands this workflow better. When a normal source file changes, Vix keeps the fast rebuild path. When `vix.app` changes, Vix treats it as a configuration change so the generated CMake project, module list, and backend route wiring can be refreshed before the application restarts. +`vix dev` now understands this workflow better. When a normal source file changes, Vix keeps the fast rebuild path. When `vix.app` changes, Vix treats it as a configuration change so the generated CMake project, module list, and app module wiring can be refreshed before the application restarts. The direction of this release is: -- One backend app -- Clear internal modules -- Explicit dependencies -- Safe enable/disable workflow -- Automatic backend route wiring -- Stronger architecture checks -- Dev mode that follows manifest changes -- Cleaner SDK lifecycle commands +```text +One application +Clear internal modules +Explicit dependencies +Safe enable/disable workflow +Automatic module route wiring +Generated module tests +Stronger architecture checks +Dev mode that follows manifest changes +Cleaner SDK lifecycle commands +``` -This release also prepares the foundation for larger Vix-powered applications such as **Softadastra Cloud**, where features like authentication, projects, builds, packages, logs, registry, and deployments need to grow independently without turning the backend into a difficult-to-maintain folder structure. +This release also prepares the foundation for larger Vix-powered applications such as Softadastra Cloud, where features like authentication, projects, builds, packages, logs, registry, and deployments need to grow independently without turning the backend into a difficult-to-maintain folder structure. ## v2.7.0 diff --git a/modules/cli b/modules/cli index 2e88bcc..31048f9 160000 --- a/modules/cli +++ b/modules/cli @@ -1 +1 @@ -Subproject commit 2e88bccfd59729d74e03c9997a694f5a504373b7 +Subproject commit 31048f920d10d86d9587093da5d2da6e3049d44e From 3c94a581a7c7406b9c78b7db5d1542c88b2b4bbf Mon Sep 17 00:00:00 2001 From: Gaspard Kirira Date: Sat, 4 Jul 2026 15:13:01 +0300 Subject: [PATCH 4/4] chore(release): prepare v2.7.1 --- modules/cli | 2 +- modules/core | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cli b/modules/cli index 31048f9..6a6ec78 160000 --- a/modules/cli +++ b/modules/cli @@ -1 +1 @@ -Subproject commit 31048f920d10d86d9587093da5d2da6e3049d44e +Subproject commit 6a6ec7824399368a586eaba57fb6c62859890ef9 diff --git a/modules/core b/modules/core index 6ba6472..b8607e4 160000 --- a/modules/core +++ b/modules/core @@ -1 +1 @@ -Subproject commit 6ba647275b6874d8f39842811d22ac063e7f1bea +Subproject commit b8607e46e832dc66f52bb4f8cd30ebad2d08d3de