BorgFormat

Identifies and validates file formats.

Configuration

Copy .env.example to .env and make changes as required:

cp .env.example .env
$EDITOR .env

Run

Build or rebuild images as required and start backend and frontend services:

docker compose up --build

Embedding

Borg can be embedded in other Angular applications. See README.md.

Development

Start a Frontend Development Server

In the directory gui run

pnpm install
pnpm start

Go Workspaces

We use Go workspaces so any tooling (e.g., IDE integration) knows about directories that contain Go modules.

To add a new directory, run for example

go work use ./tools/new-tool

Releasing a new version

  • Choose a version tag based on semantic versioning. In most cases, this means incrementing the minor version when there are new features and otherwise, incrementing the patch version.
  • Update CHANGELOG.md with the chosen version tag and any changes.
  • Update the version constant in server/cmd/server.go.
  • Push any changes to main.
  • Draft a new release on GitHub.
  • Include the release's section of CHANGELOG.md as description.

Documentation

The documentation is generated with MkDocs. To change it, edit the markdown files under docs.

Build

To build and server the documentation use

mkdocs serve

Prerequisites (Arch Linux)

  • mkdocs
  • python-pymdown-extensions
  • mkdocs-glightbox (AUR)

Deploy

To deploy the documentation to GitHub Pages use

mkdocs gh-deploy