Formal Works

Open Source Monorepo
Login

This is the open source repository where all Formal Works development is done.

We strive to foster an inclusive and supportive community that supports learning and helping others.

Explore the Repository

Here are some contents of the repository you might be interested in:

/specs/

interface specifications (specs)

/elixir/formalist/

an initial iteration of a collaborative API-first CMS.

/elixir/depo/

Elixir SQLite database library

/elixir/haze/v1/

Haze VM management command line tool

/elixir/site/

Formal Site CMS Elixir app

/go/webdav.go

simple WebDAV server in Go

/clojurescript/agenda/

Clojurescript-React literate program (unmaintained)

Working With the Fossil Repository

This entire website is one source code repository that includes all commits, tickets, and web pages.

To get the repository on your computer, first install Fossil. You can download the latest release from fossil-scm.org or using your favorite package manager (e.g. brew install fossil).

Then set up a working directory like follows:

  1. mkdir formal; cd formal
  2. fossil clone https://formal.codes formal.fossil
  3. fossil open formal.fossil

You can then run fossil ui to view the repo locally.

Why Not GitHub?

Self-hosting enables us to be in full control of our community and the experience they have when contributing. so that we can insure that participation will be safe and fun and free of harassment and abuse. You won't find any mean maintainers here (meantainer?). We would rather a close-knit community than drive-by commits.

Although less well-known than git, we think Fossil is easier to use and better documented than git, and we hope you'll agree. Hopefully it can be another tool in your toolbox.

If there is demand we are happy to set up code mirrors on GitHub.

Guide to Contributing

The first step is to create an account. The entire repository is MIT licensed, so anything you contribute will be MIT licensed and open source.

We practice trunk-based development because we feel it encourages everyone to work together better. You'll never have to worry about hairy branch merges. We will periodically give commit access to all users who have contributed to tickets.