Development

Please, read this section if you want to contribute to AgenDAV with code. You can even use this information to confirm a bug.

Local environment

Validation

A scripted smoke test lives at docker/smoke-test.sh. It runs against the Compose stack and exercises login (form + HTTP Basic), calendar/event CRUD through Baikal, preferences persistence, CSRF rejection, and the 404 path:

$ bash docker/smoke-test.sh           # idempotent; reuses an existing stack
$ bash docker/smoke-test.sh --reset   # rebuild and re-seed from scratch
$ bash docker/smoke-test.sh --down    # tear the stack down

Exit code 0 means every assertion passed; failed assertions print to stdout and are also written to web/var/log/<today>.log.

Building assets

If you are going to work on stylesheets, scripts or templates, you will need npm. Run the following command to download all required dependencies:

$ npm ci

Stylesheets

Stylesheets are built using the Less pre-processor. They are written as .less files and can be found inside the resources/private/assets/less directory.

Run the following command to rebuild them:

$ npm run build:css

Templates

Stylesheets are built using the dustjs templating engine. They can be found inside the resources/private/assets/less directory.

Run the following command to rebuild them:

$ npm run build:templates

JavaScript

Run the following command to rebuild them:

$ npm run build:js