|
1 | 1 | # eXist-db Function Documentation Browser App |
2 | 2 |
|
3 | | -[](https://github.com/eXist-db/function-documentation/actions/workflows/ci.yml) |
| 3 | +[](https://github.com/eXist-db/function-documentation/actions/workflows/build.yml) |
4 | 4 | [](http://www.exist-db.org/exist/apps/homepage/index.html) |
5 | 5 |
|
6 | 6 | <img src="src/main/xar-resources/icon.png" align="left" width="15%"/> |
7 | 7 |
|
8 | | -This repository contains the function documentation browser app for the [eXist-db native XML database](http://www.exist-db.org). |
| 8 | +This repository contains the source code for the Function Documentation application for the [eXist-db native XML database](https://exist-db.org). |
9 | 9 |
|
10 | 10 | ## Dependencies |
11 | 11 |
|
12 | | -- [Maven](https://maven.apache.org): `3.5.2` |
13 | | -- [eXist-db](http://exist-db.org): `6.2.0` |
| 12 | +- [Node.js](https://nodejs.org): LTS |
| 13 | +- [eXist-db](https://exist-db.org): `6.2.0` or later |
14 | 14 |
|
15 | 15 | ## Installation |
16 | 16 |
|
17 | | -- Just go to your eXist server's Dashboard and select Function Documentation. |
18 | | -- Update to the latest release via the eXist-db package manager or via the eXist-db.org public app repository at [http://exist-db.org/exist/apps/public-repo/](http://exist-db.org/exist/apps/public-repo/). |
| 17 | +- Function Documentation is installed by default in the eXist distribution. Just go to your eXist server's Dashboard and select Function Documentation. |
| 18 | +- 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/](https://exist-db.org/exist/apps/public-repo/). |
19 | 19 |
|
20 | 20 | ## Building from source |
21 | 21 |
|
22 | 22 | 1. Clone the repository to your system: |
23 | 23 |
|
24 | 24 | ```bash |
25 | | - git clone https://github.com/exist-db/function-documentation.git |
| 25 | + git clone https://github.com/eXist-db/function-documentation.git |
| 26 | + cd function-documentation |
26 | 27 | ``` |
27 | 28 |
|
28 | | -2. Build the function documentation application: |
| 29 | +2. Install dependencies and build the application package (`.xar` file): |
29 | 30 |
|
30 | 31 | ```bash |
31 | | - cd function-documentation |
32 | | - mvn clean package |
| 32 | + npm ci |
| 33 | + npm run build |
33 | 34 | ``` |
34 | 35 |
|
35 | | - The compiled `.xar` file is located in the `/target` directory |
| 36 | + The package is written to `dist/exist-function-documentation-<version>.xar`. On a fresh clone, `<version>` will be the placeholder in `package.json` (the real version is set in-memory on the CI runner during the release pipeline). |
| 37 | + |
| 38 | +3. Install the package via Dashboard > Package Manager. |
| 39 | + |
| 40 | +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`). |
| 41 | + |
| 42 | +## Release Procedure |
| 43 | + |
| 44 | +Releases are fully automated: every push to `master` triggers [semantic-release](https://semantic-release.gitbook.io/), which computes the next version from [Conventional Commits](https://www.conventionalcommits.org/) 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](https://github.com/eXist-db/function-documentation/releases). |
| 45 | + |
| 46 | +### What contributors need to do |
| 47 | + |
| 48 | +- **Write [Conventional Commits](https://www.conventionalcommits.org/).** A `commitlint` + `husky` `commit-msg` hook enforces this locally (`@commitlint/config-conventional`). The commit type determines the version bump: |
| 49 | + - `feat:` → minor bump |
| 50 | + - `fix:`, `perf:` → patch bump |
| 51 | + - any commit with a `BREAKING CHANGE:` footer or a `!` after the type (e.g. `feat!:`) → major bump |
| 52 | + - `chore:`, `docs:`, `ci:`, `build:`, `style:`, `refactor:`, `test:` → no release (cosmetic / housekeeping) |
| 53 | +- That's it. No version bump, no tag creation, no manual release commit. |
| 54 | + |
| 55 | +### What release managers need to do |
36 | 56 |
|
37 | | -3. Install this file via the Dashboard > Package Manager. |
| 57 | +Pushes to `master` are released automatically. If the release pipeline fails (check the `Release` job in the [Actions tab](https://github.com/eXist-db/function-documentation/actions)) the commit history is still intact, and re-running the job is safe, since semantic-release is idempotent. |
38 | 58 |
|
39 | 59 | ## License |
40 | 60 |
|
41 | | -LGPLv2.1 [eXist-db.org](http://exist-db.org/exist/apps/homepage/index.html) |
| 61 | +LGPL v2.1 [exist-db.org](https://exist-db.org/exist/apps/homepage/index.html) |
0 commit comments