This repository contains the source code for the Function Documentation application for the eXist-db native XML database.
- Function Documentation is installed by default in the eXist distribution. Just go to your eXist server's Dashboard and select Function Documentation.
- Update to the latest release via Dashboard > Package Manager, or download a release via the exist-db.org public app repository at https://exist-db.org/exist/apps/public-repo/.
-
Clone the repository to your system:
git clone https://github.com/eXist-db/function-documentation.git cd function-documentation -
Install dependencies and build the application package (
.xarfile):npm ci npm run build
The package is written to
dist/exist-function-documentation-<version>.xar. On a fresh clone,<version>will be the placeholder inpackage.json(the real version is set in-memory on the CI runner during the release pipeline). -
Install the package via Dashboard > Package Manager.
For local development against a running eXist-db, use npm run develop (live-reload) and npm run deploy (install the built package into the configured eXist-db instance — set credentials in .env, see .env.example).
Releases are fully automated: every push to master triggers semantic-release, which computes the next version from Conventional Commits since the last tag, builds the package, and publishes a GitHub Release with the package attached at https://github.com/eXist-db/function-documentation/releases.
- Write Conventional Commits. A
commitlint+huskycommit-msghook enforces this locally (@commitlint/config-conventional). The commit type determines the version bump:feat:→ minor bumpfix:,perf:→ patch bump- any commit with a
BREAKING CHANGE:footer or a!after the type (e.g.feat!:) → major bump chore:,docs:,ci:,build:,style:,refactor:,test:→ no release (cosmetic / housekeeping)
- That's it. No version bump, no tag creation, no manual release commit.
Pushes to master are released automatically. If the release pipeline fails (check the Release job in the Actions tab) the commit history is still intact, and re-running the job is safe, since semantic-release is idempotent.
LGPL v2.1 exist-db.org