This is an automated email from the ASF dual-hosted git repository.

pnoltes pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/celix.git


The following commit(s) were added to refs/heads/master by this push:
     new 6eca6616c Feature/add agents md (#814)
6eca6616c is described below

commit 6eca6616cfbf44c6b426bf23af6bf4e59f35ae20
Author: Pepijn Noltes <[email protected]>
AuthorDate: Sat Jan 17 19:40:48 2026 +0100

    Feature/add agents md (#814)
    
    * Add initial AGENTS.md
---
 AGENTS.md                       | 87 +++++++++++++++++++++++++++++++++++++++++
 documents/development/README.md |  5 +++
 2 files changed, 92 insertions(+)

diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 000000000..cdb663a86
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,87 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You 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.
+-->
+
+# Project overview
+  
+Apache Celix is an implementation of the OSGi specification adapted for C 
(C11) and C++ (C++14). 
+It enables a dynamic, modular software architecture using bundles, services, 
and components.
+
+Key Concepts
+ - Bundles: Deployment units (zip files) containing libraries and resources.
+ - Services: Function pointer structs (C) or abstract classes (C++) registered 
in a framework-wide registry.
+ - Components: Logic units managed by the Dependency Manager (DM) that handle 
service lifecycle (init, start, stop, deinit) declaratively.
+ - Containers: Executables created via add_celix_container that launch a 
framework instance with preconfigured bundles.
+
+## Building (Offline Priority)
+
+Assume no internet connection. Request confirmation before installing system 
packages.
+
+```bash
+
+# Initial configure build:
+cmake \
+  -DCMAKE_FETCHCONTENT_FULLY_DISCONNECTED=ON \
+  -DENABLE_TESTING=ON \
+  -DRSA_JSON_RPC=ON \
+  -DRSA_REMOTE_SERVICE_ADMIN_SHM_V2=ON \
+  -DCMAKE_BUILD_TYPE=Debug \
+  -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
+  -G Ninja \ 
+  -S . -B build
+
+# Initial configure build, if a download is needed:  
+cmake \
+  -DENABLE_TESTING=ON \
+  -DRSA_JSON_RPC=ON \
+  -DRSA_REMOTE_SERVICE_ADMIN_SHM_V2=ON \
+  -DCMAKE_BUILD_TYPE=Debug \
+  -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
+  -G Ninja \ 
+  -S . -B build
+
+# Compile:
+cmake --build build --parallel
+```
+
+# Test Execution
+
+After building, run the tests for the components you changed. Run `ctest` from
+the appropriate `build` subdirectory when possible.
+For example, to test the shell bundles:
+
+Scoped: 
+```bash 
+ctest --output-on-failure --test-dir build/<sub-dir>
+```
+
+Full Suite:
+```bash
+ctest --output-on-failure --test-dir build
+```
+
+With exception of documentation changes, always build and run the test before 
submitting changes.
+
+# Quality Standards
+
+- Line Coverage: New code must aim for >95% line coverage.
+- Error Injection: Use or extend the Apache Celix error_injector libraries to 
inject errors in unit tests to ensure high code coverage.    
+
+# Coding Style
+
+- Refer to the [development guide](documents/development/README.md) for the 
project's coding conventions. 
+- New files should be formatted with the project's `.clang-format` 
configuration.
+
diff --git a/documents/development/README.md b/documents/development/README.md
index d521acb34..5e9a8c56f 100644
--- a/documents/development/README.md
+++ b/documents/development/README.md
@@ -28,6 +28,11 @@ Note that not all existing code adheres to these conventions.
 New code should adhere to these conventions, and when possible, existing code 
should be updated to adhere to these
 conventions.
 
+## Using Generative AI
+
+- You own any code you submit, including AI-assisted changes. GenAI 
suggestions do not transfer ownership or responsibility.
+- Review AI-produced code critically for structure, threading behavior, 
resource handling, coding conventions, and test coverage. 
+
 ## Naming Conventions
 
 ### C/C++ Variables

Reply via email to