forked from lda/telodendria
Add some information to the developer guide.
This commit is contained in:
parent
2f22c63893
commit
74c53a08ba
1 changed files with 51 additions and 9 deletions
|
@ -421,23 +421,48 @@ should just run on any POSIX operating system without modification.
|
||||||
</p>
|
</p>
|
||||||
<h2 id="project-goals">Project Goals</h2>
|
<h2 id="project-goals">Project Goals</h2>
|
||||||
<p>
|
<p>
|
||||||
The goals of this project are as follows:
|
The goals of this project are generally divided into <i>user goals</i>,
|
||||||
|
and <i>developer goals</i>, depending on who they impact the most. This
|
||||||
|
isn't an exhaustive list, but it is a list of things that I want to
|
||||||
|
prioritize, <i>because other server implementations lack them</i>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The user goals are as follows:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
To be a production-ready Matrix server capable of handling a lot of
|
To be a production-ready Matrix server capable of handling a lot of
|
||||||
users. Telodendria should have good performance in many diverse
|
users. Telodendria should have good performance in many diverse
|
||||||
environments.
|
environments. It should scale up well for large instances, and yet also
|
||||||
|
be able to scale down to a peer-to-peer device.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
To be easier to configure than any of the other Matrix homeserver
|
||||||
|
implementations. The configuration file should be flexible,
|
||||||
|
well-documented, and easy to understand and modify. An intuitive
|
||||||
|
command-line tool for administrative tasks should also be available.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
The developer goals are as follows:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
To have as few external build and run dependencies as possible. It
|
To have as few external build and run dependencies as possible. It
|
||||||
should be possible to compile Telodendria on any operating system out
|
should be possible to compile Telodendria on any POSIX operating
|
||||||
of the box, and have it be totally statically linked, ready to run
|
system right out of the box, and have it be totally statically linked,
|
||||||
under a <code>chroot(8)</code>-ed web server. You'll even notice that
|
ready to run under a <code>chroot(8)</code>. You'll even notice that
|
||||||
the documentation is written in HTML directly, not Markdown, to remove
|
the documentation is written in HTML directly, not Markdown, to remove
|
||||||
the dependency on a Markdown parser and renderer.
|
the dependency on a Markdown parser and renderer.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
To have a simple yet elegant workflow, and not depend on any large
|
||||||
|
or complex development tools, such as code forges. The entire
|
||||||
|
development workflow should be able to be successfully and efficiently
|
||||||
|
completed on a base OpenBSD install. Of course you don't have to use
|
||||||
|
OpenBSD for development by any means, but the point is, the workflow
|
||||||
|
should not require a lot of tools.
|
||||||
|
<li>
|
||||||
To be written in clean, elegant, and well-documented code. The goal is
|
To be written in clean, elegant, and well-documented code. The goal is
|
||||||
to build a Matrix homeserver from the ground up, not just because I
|
to build a Matrix homeserver from the ground up, not just because I
|
||||||
don't like the way existing homeservers are implemented, but also so I can
|
don't like the way existing homeservers are implemented, but also so I can
|
||||||
|
@ -486,12 +511,29 @@ the contribution workflow goes as smoothly as possible.
|
||||||
</p>
|
</p>
|
||||||
<h4 id="getting-the-code">Getting The Code</h4>
|
<h4 id="getting-the-code">Getting The Code</h4>
|
||||||
<p>
|
<p>
|
||||||
|
If you'd like to hack on <b>Telodendria</b>, you'll need the following
|
||||||
|
tools in addition to the tools required to
|
||||||
|
<a href="#building-the-source">build the source</a>:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><code>cvs</code> for checking out and updating a local copy
|
||||||
|
of the source code.</li>
|
||||||
|
<li><code>indent</code> for formatting your code before generating
|
||||||
|
patches</li>
|
||||||
|
<li><code>patch</code> for applying patches to your local copy of the
|
||||||
|
source code.</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Note that all of these tools are built into OpenBSD. While you of course
|
||||||
|
don't have to use OpenBSD to develop <b>Telodendria</b>, it may make
|
||||||
|
the process a little easier. In fact, these tools were chosen
|
||||||
|
precisely <i>because</i> they were built into OpenBSD, the operating
|
||||||
|
system I use.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
You can download an official release tarball if you would really like,
|
You can download an official release tarball if you would really like,
|
||||||
but the preferred way is to check out the source code from CVS. This
|
but the preferred way is to check out the source code from CVS. This
|
||||||
makes generating patches a lot easier. If you do not have CVS, consult
|
makes generating patches a lot easier.
|
||||||
your operating system's package repository to install it. CVS was the
|
|
||||||
chosen version control system for this project primarily because it is
|
|
||||||
built into OpenBSD.
|
|
||||||
</p>
|
</p>
|
||||||
<div class="code">
|
<div class="code">
|
||||||
$ export CVSROOT=anoncvs@bancino.net:/cvs
|
$ export CVSROOT=anoncvs@bancino.net:/cvs
|
||||||
|
|
Loading…
Reference in a new issue