summaryrefslogtreecommitdiff
path: root/docs/api-policy.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/api-policy.md')
-rw-r--r--docs/api-policy.md13
1 files changed, 7 insertions, 6 deletions
diff --git a/docs/api-policy.md b/docs/api-policy.md
index 0c8f040..dd22ca7 100644
--- a/docs/api-policy.md
+++ b/docs/api-policy.md
@@ -1,16 +1,17 @@
# Public API policy
-YASL 0.1 is pre-release. The installed headers are the public API; implementation
+YASL 0.1 is pre-release. The headers under `include/yasl/` are the public API; implementation
headers under `src/` are private even when their symbols appear in a static
-archive. The shared library exports only declarations from installed headers.
-Native backend headers and accessors are available only for built backends.
+archive. The shared library exports only declarations from public headers.
+Native backend accessors are exported only for built backends. Installation
+copies only the shared and static libraries; use matching source-tree headers.
There is currently no stable ABI promise and no versioned shared-library SONAME.
Rebuild consumers against the exact headers/library pair they ship. Source and
binary compatibility can change before 1.0. Do not assume struct layout is stable
across releases, mix headers and binaries from different revisions, or persist
-public structs as a file/network format. The package version is available through
-`pkg-config --modversion yasl`.
+public structs as a file/network format. The release version is declared in
+`meson.build`.
See [migration notes](migrating.md) for window creation, portable keyboard, and
fractional scroll API changes.
@@ -28,7 +29,7 @@ Every public addition or behavior change needs:
- An update to the guide and its backend limits when observable behavior changes.
- A runnable example when the new workflow cannot be understood from an isolated
call, and meaningful regression coverage for ownership or behavior changes.
-- A check that shared exports and installed-package consumers still work.
+- A check that shared exports and consumers of the installed library still work.
Functions documenting errno set it on failure. Other booleans report acceptance
or availability without a guaranteed errno; void setters are best effort.