diff options
Diffstat (limited to 'CONTRIBUTING.md')
| -rw-r--r-- | CONTRIBUTING.md | 15 |
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 |
