From 61cab6306b4569fc7e7df1345e3739903d993ec4 Mon Sep 17 00:00:00 2001 From: Khushboo Mehta Date: Wed, 18 Mar 2026 14:22:43 +0100 Subject: [PATCH] chore: update name oif logos-app to logos-basecamp --- logos-calc-ui/Main.qml | 2 +- logos-developer-guide.md | 38 +++++++++++++++++----------------- tutorial-qml-ui-app.md | 36 ++++++++++++++++---------------- tutorial-wrapping-c-library.md | 2 +- 4 files changed, 39 insertions(+), 39 deletions(-) diff --git a/logos-calc-ui/Main.qml b/logos-calc-ui/Main.qml index f3e57d6..7e0eb8f 100644 --- a/logos-calc-ui/Main.qml +++ b/logos-calc-ui/Main.qml @@ -250,7 +250,7 @@ Item { root.result = "" if (typeof logos === "undefined" || !logos.callModule) { - root.errorText = "Logos bridge not available (run inside logos-app)" + root.errorText = "Logos bridge not available (run inside logos-basecamp)" return } diff --git a/logos-developer-guide.md b/logos-developer-guide.md index 644bd5a..1c3cd5a 100644 --- a/logos-developer-guide.md +++ b/logos-developer-guide.md @@ -25,9 +25,9 @@ A comprehensive guide to creating, building, testing, packaging, and distributin - [4.1 The lgpm CLI](#41-the-lgpm-cli) - [4.2 Installing from Local Files](#42-installing-from-local-files) - [4.3 Installing from a Registry](#43-installing-from-a-registry) -- [Part 5: Running in the Logos App](#part-5-running-in-the-logos-app) - - [5.1 Building logos-app](#51-building-logos-app) - - [5.2 Module Types in logos-app](#52-module-types-in-logos-app) +- [Part 5: Running in logos-basecamp](#part-5-running-in-logos-basecamp) + - [5.1 Building logos-basecamp](#51-building-logos-basecamp) + - [5.2 Module Types in logos-basecamp](#52-module-types-in-logos-basecamp) - [5.3 Development Mode](#53-development-mode) - [Part 6: Inter-Module Communication](#part-6-inter-module-communication) - [6.1 The LogosAPI](#61-the-logosapi) @@ -52,7 +52,7 @@ The **Logos platform** is a modular application framework built in C++ on top of - **Process isolation** -- each module runs in its own host process (on desktop), communicating via Qt Remote Objects - **Cross-platform support** -- macOS (arm64, x86_64) and Linux (arm64, x86_64) - **A package format** (`.lgx`) for distributing modules with platform-specific variants -- **A desktop application shell** (`logos-app`) with a sidebar, tabbed workspace, and plugin management UI +- **A desktop application shell** (`logos-basecamp`) with a sidebar, tabbed workspace, and plugin management UI - **A CLI runtime** (`logoscore`) for running modules headlessly ## Architecture @@ -60,7 +60,7 @@ The **Logos platform** is a modular application framework built in C++ on top of ``` +---------------------------------------------------------------+ | Application Layer | -| logos-app (Desktop GUI) or logoscore (CLI Runtime) | +| logos-basecamp (Desktop GUI) or logoscore (CLI Runtime) | +---------------------------------------------------------------+ | | | v v v @@ -94,7 +94,7 @@ The **Logos platform** is a modular application framework built in C++ on top of | **logos-liblogos** | [logos-co/logos-liblogos](https://github.com/logos-co/logos-liblogos) | Core runtime (`logoscore`, `logos_host`, `liblogos_core`) | | **logos-package** | [logos-co/logos-package](https://github.com/logos-co/logos-package) | LGX package format library + `lgx` CLI | | **logos-package-manager-module** | [logos-co/logos-package-manager-module](https://github.com/logos-co/logos-package-manager-module) | Package manager module + `lgpm` CLI | -| **logos-app** | [logos-co/logos-co/logos-app](https://github.com/logos-co/logos-app) | Desktop application shell | +| **logos-basecamp** | [logos-co/logos-basecamp](https://github.com/logos-co/logos-basecamp) | Desktop application shell | ## Prerequisites @@ -663,24 +663,24 @@ The package manager automatically: --- -## Part 5: Running in the Logos App +## Part 5: Running in logos-basecamp -### 5.1 Building logos-app +### 5.1 Building logos-basecamp ```bash # Build the full application -nix build 'github:logos-co/logos-app#app' --out-link ./logos-app +nix build 'github:logos-co/logos-basecamp#app' --out-link ./logos-basecamp # Run it -./logos-app/bin/logos-app +./logos-basecamp/bin/logos-basecamp # Or build platform-specific distributions: -nix build 'github:logos-co/logos-app#bin-appimage' # Linux AppImage -nix build 'github:logos-co/logos-app#bin-macos-app' # macOS .app bundle -nix build 'github:logos-co/logos-app#bin-macos-dmg' # macOS DMG +nix build 'github:logos-co/logos-basecamp#bin-appimage' # Linux AppImage +nix build 'github:logos-co/logos-basecamp#bin-macos-app' # macOS .app bundle +nix build 'github:logos-co/logos-basecamp#bin-macos-dmg' # macOS DMG ``` -### 5.2 Module Types in logos-app +### 5.2 Module Types in logos-basecamp The application supports three types of modules: @@ -725,7 +725,7 @@ For rapid iteration on QML UI modules, use the development mode launcher: ```bash # Build once -nix build 'github:logos-co/logos-app' +nix build 'github:logos-co/logos-basecamp' # Run with live QML reloading (edits to .qml files take effect immediately) ./run-dev.sh @@ -992,7 +992,7 @@ Or in `metadata.json`: } ``` -When your module is installed via `lgpm`, its dependencies are automatically resolved and installed first. When loaded via `logos-app`, core module dependencies are loaded before your module. +When your module is installed via `lgpm`, its dependencies are automatically resolved and installed first. When loaded via `logos-basecamp`, core module dependencies are loaded before your module. --- @@ -1006,7 +1006,7 @@ When your module is installed via `lgpm`, its dependencies are automatically res | [logos-liblogos](https://github.com/logos-co/logos-liblogos) | Core runtime | `logoscore` (CLI), `logos_host`, `liblogos_core` | | [logos-package](https://github.com/logos-co/logos-package) | Package format | `lgx` (CLI), `liblgx` (library) | | [logos-package-manager-module](https://github.com/logos-co/logos-package-manager-module) | Package management | `lgpm` (CLI), `package_manager_plugin` | -| [logos-app](https://github.com/logos-co/logos-app) | Desktop app shell | `LogosApp` (GUI), MDI workspace, plugin loader | +| [logos-basecamp](https://github.com/logos-co/logos-basecamp) | Desktop app shell | `LogosApp` (GUI), MDI workspace, plugin loader | ## Reference: CLI Tools Summary @@ -1073,7 +1073,7 @@ experimental-features = nix-command flakes ### Module loads but LogosAPI is not available -This happens when running a module outside the full Logos runtime (e.g., in the module viewer). The `LogosAPI` is only available when the module is loaded by `logoscore` or `logos-app`. +This happens when running a module outside the full Logos runtime (e.g., in the module viewer). The `LogosAPI` is only available when the module is loaded by `logoscore` or `logos-basecamp`. ### Build fails finding Qt @@ -1084,7 +1084,7 @@ nix develop # Enter dev shell with all dependencies cmake -B build -GNinja && cmake --build build ``` -### Module not discovered by logos-app +### Module not discovered by logos-basecamp Check that: 1. The module binary is in the correct directory (modules dir for core, plugins dir for UI) diff --git a/tutorial-qml-ui-app.md b/tutorial-qml-ui-app.md index 12f0279..c7e725c 100644 --- a/tutorial-qml-ui-app.md +++ b/tutorial-qml-ui-app.md @@ -9,7 +9,7 @@ This is Part 2 of the Logos module tutorial series. In [Part 1](tutorial-wrappin - How QML UI plugins work in the Logos platform - The `logos.callModule()` bridge that connects QML to core modules - The project structure and metadata for a QML plugin -- How to build, install, and run your UI inside `logos-app` +- How to build, install, and run your UI inside `logos-basecamp` **Prerequisites:** @@ -33,7 +33,7 @@ Before writing code, let's understand the architecture: | loaded by | loaded by v v +---------------------------------------------------------------+ -| logos-app | +| logos-basecamp | | QML sandbox engine | logos_host process | +---------------------------------------------------------------+ ``` @@ -69,13 +69,13 @@ mkdir icons ### 1.2 Add an icon (optional) -Place a PNG icon at `icons/calc.png`. This appears in the `logos-app` sidebar. If you don't have one, the app will use a default icon. +Place a PNG icon at `icons/calc.png`. This appears in the `logos-basecamp` sidebar. If you don't have one, the app will use a default icon. --- ## Step 2: Write `metadata.json` -This tells `logos-app` what your plugin is and how to load it. +This tells `logos-basecamp` what your plugin is and how to load it. ```json { @@ -101,7 +101,7 @@ This tells `logos-app` what your plugin is and how to load it. | `type` | Must be `"ui_qml"` for QML UI plugins | | `pluginType` | Must be `"qml"` | | `main` | Entry point QML file — always `"Main.qml"` | -| `dependencies` | Core modules this UI needs. `logos-app` loads these before your UI. | +| `dependencies` | Core modules this UI needs. `logos-basecamp` loads these before your UI. | | `category` | Groups plugins in the sidebar (e.g., `"tools"`, `"misc"`) | | `icon` | Path to the sidebar icon, relative to the plugin directory | @@ -186,7 +186,7 @@ This is the most important part — the function that calls your core module. Ad // The logos object is injected by the host at runtime. // It won't exist if you open Main.qml in a standalone QML viewer. if (typeof logos === "undefined" || !logos.callModule) { - root.errorText = "Logos bridge not available (run inside logos-app)" + root.errorText = "Logos bridge not available (run inside logos-basecamp)" return } @@ -205,7 +205,7 @@ logos.callModule(moduleName, methodName, argsArray) └── Module name from metadata.json (e.g., "calc_module") ``` -The call is synchronous from QML's perspective. Under the hood, `logos-app` routes it via IPC to the `logos_host` process running `calc_module`, which calls `CalcModulePlugin::add()`, which calls `calc_add()` from libcalc. The result comes back through the same chain. +The call is synchronous from QML's perspective. Under the hood, `logos-basecamp` routes it via IPC to the `logos_host` process running `calc_module`, which calls `CalcModulePlugin::add()`, which calls `calc_add()` from libcalc. The result comes back through the same chain. ### 3.3 The complete file @@ -464,7 +464,7 @@ Item { root.result = "" if (typeof logos === "undefined" || !logos.callModule) { - root.errorText = "Logos bridge not available (run inside logos-app)" + root.errorText = "Logos bridge not available (run inside logos-basecamp)" return } @@ -606,12 +606,12 @@ That's it. A QML plugin is just its source files packaged for installation. --- -## Step 6: Run in `logos-app` +## Step 6: Run in `logos-basecamp` -### 6.1 Build `logos-app` +### 6.1 Build `logos-basecamp` ```bash -nix build 'github:logos-co/logos-app#app' --out-link ./logos-app +nix build 'github:logos-co/logos-basecamp#app' --out-link ./logos-basecamp ``` ### 6.2 Set up the modules directory @@ -637,14 +637,14 @@ mkdir -p ui-plugins ### 6.3 Launch ```bash -./logos-app/bin/logos-app \ +./logos-basecamp/bin/logos-basecamp \ --modules-dir ./modules \ --ui-plugins-dir ./ui-plugins ``` You should see: -1. The `logos-app` window opens with a sidebar +1. The `logos-basecamp` window opens with a sidebar 2. "Calculator UI" appears as a tab (with your icon if you provided one) 3. Click the tab to see your QML interface 4. Enter numbers and click **Add**, **Multiply**, **Factorial**, or **Fibonacci** @@ -658,7 +658,7 @@ Here's the full chain when you enter `3` and `5` and click **Add**: 1. QML: Button.onClicked → callTwoOp("add", "3", "5") 2. QML: callTwoOp() → callModule("add", [3, 5]) 3. QML: logos.callModule("calc_module", "add", [3, 5]) -4. logos-app: Routes call via IPC to logos_host process +4. logos-basecamp: Routes call via IPC to logos_host process 5. logos_host: QMetaObject::invokeMethod(plugin, "add", 3, 5) 6. C++: CalcModulePlugin::add(3, 5) → calc_add(3, 5) 7. C: Returns 8 @@ -676,7 +676,7 @@ For rapid iteration, use development mode. This watches your QML source files an ```bash # Point QML_UI at your source directory -QML_UI=$(pwd) ./logos-app/bin/logos-app \ +QML_UI=$(pwd) ./logos-basecamp/bin/logos-basecamp \ --modules-dir ./modules \ --ui-plugins-dir ./ui-plugins ``` @@ -685,7 +685,7 @@ Edit `Main.qml`, save, and the UI updates without rebuilding. ### 7.2 Debugging -Since QML plugins are sandboxed, you can't use `console.log()` to write to the terminal in production. But in development mode, `console.log()` output appears in the terminal where you launched `logos-app`. +Since QML plugins are sandboxed, you can't use `console.log()` to write to the terminal in production. But in development mode, `console.log()` output appears in the terminal where you launched `logos-basecamp`. Add debug logging to your bridge function: @@ -699,7 +699,7 @@ function callModule(method, args) { } ``` -### 7.3 Testing without `logos-app` +### 7.3 Testing without `logos-basecamp` You can open `Main.qml` in any QML viewer (e.g., `qml` from Qt) to test the layout. The `logos` bridge won't be available, so clicking buttons will show "Logos bridge not available" — but you can verify the layout and styling work correctly. @@ -732,7 +732,7 @@ nix build 'github:logos-co/logos-package-manager-module#cli' --out-link ./pm ./pm/bin/lgpm --modules-dir ./ui-plugins install --file calc_ui.lgx ``` -> **Local vs portable:** Local builds of `logos-app` (via `nix build '.#app'`) expect **local** `.lgx` packages. Portable builds (via `nix build '.#bin-bundle-dir'`, `.#bin-appimage`, or `.#bin-macos-app`) expect **portable** `.lgx` packages. See the [logos-app README](https://github.com/logos-co/logos-app/blob/master/README.md) for details. +> **Local vs portable:** Local builds of `logos-basecamp` (via `nix build '.#app'`) expect **local** `.lgx` packages. Portable builds (via `nix build '.#bin-bundle-dir'`, `.#bin-appimage`, or `.#bin-macos-app`) expect **portable** `.lgx` packages. See the [logos-basecamp README](https://github.com/logos-co/logos-basecamp/blob/master/README.md) for details. --- diff --git a/tutorial-wrapping-c-library.md b/tutorial-wrapping-c-library.md index bb3eebf..af59c82 100644 --- a/tutorial-wrapping-c-library.md +++ b/tutorial-wrapping-c-library.md @@ -729,7 +729,7 @@ nix build 'github:logos-co/logos-package-manager-module#cli' --out-link ./pm ./pm/bin/lgpm --modules-dir ./modules install --file calc_module.lgx ``` -> **Note:** Local builds of `logoscore` / `logos-app` (via `nix build`) expect **local** `.lgx` packages. Portable builds (via `nix build '.#bin-bundle-dir'`, `.#bin-appimage`, or `.#bin-macos-app`) expect **portable** `.lgx` packages. See the [logos-app README](https://github.com/logos-co/logos-app/blob/master/README.md) for details. +> **Note:** Local builds of `logoscore` / `logos-basecamp` (via `nix build`) expect **local** `.lgx` packages. Portable builds (via `nix build '.#bin-bundle-dir'`, `.#bin-appimage`, or `.#bin-macos-app`) expect **portable** `.lgx` packages. See the [logos-basecamp README](https://github.com/logos-co/logos-basecamp/blob/master/README.md) for details. ---