summaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md15
1 files changed, 15 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 88674ca..939f4e4 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -5,6 +5,21 @@ Read the [API policy](docs/api-policy.md) and [application guide](docs/guide.md)
before changing public behavior. Keep backend details in native extensions and
make common operations usable through the portable headers.
+Shared API behavior and backend interfaces live in `src/common/`. Native
+windowing implementations, key mappings, and typed native accessors live in
+`src/platform/<backend>/`; keep their generated protocols with the backend.
+OS support shared by multiple backends lives separately in `src/platform/posix/`
+and is selected by `src/platform/meson.build`. It currently supplies the event
+loop and the private mutex implementation used through `platform/sync.h`.
+Common code should depend on these internal interfaces rather than native OS
+headers. Keep public headers in `include/yasl/` and tests in `tests/<backend>/`.
+
+For a future Win32 backend, add `src/platform/win32/`, select its event loop and
+`yasl_platform_sync.h` in the platform build, and register its backend through
+the common dispatch interface. Windows still needs build/dependency selection,
+public API/export support, and ports of POSIX-based examples and test harnesses;
+the directory structure alone does not provide Windows support.
+
For a bug report, include the revision, operating system, selected backend from
`yasl_display_backend()`, capability mask, compiler, build options, reproduction
steps, and a small example if possible. For input issues include the relevant