Blob


1 <!doctype html>
2 <html lang=en>
3 <head>
4 <meta charset=utf-8>
6 <title>Game of Trees (Got): Goals</title>
7 <meta name="description" content="Game of Trees (Got) Goals">
8 <meta name="viewport" content="width=device-width, initial-scale=1">
9 <link rel="stylesheet" type="text/css" href="openbsd.css">
10 <link rel="canonical" href="https://gameoftrees.org/goals.html">
11 </head>
13 <body>
14 <h2>
15 <a href="index.html">
16 <i>Game of Trees</i></a>
17 Goals
18 </h2>
19 <hr>
21 <h3>Project guidelines</h3>
22 <ul>
23 <li>
24 Follow <a href="https://www.openbsd.org">OpenBSD</a>'s security practices
25 and coding style.
26 <ul>
27 <li>Use a development process based on code review in email.
28 <li>Consistently use
29 <a href="https://man.openbsd.org/pledge">pledge(2)</a> and
30 <a href="https://man.openbsd.org/unveil">unveil(2)</a> across the code base.
31 <li>Use privilege-separation when parsing repository data from network or disk.
32 </ul>
33 <li>
34 Keep the entire code base BSD-licenced.
35 </ul>
37 <p>
38 <h3>Long-term goals</h3>
39 <ul>
40 <li>
41 Remain on-disk compatible with bare
42 <a href="https://git-scm.com">Git</a> repositories.
43 <ul>
44 <li>Don't insist on Git-compatibility beyond this requirement.
45 </ul>
46 <li>Provide a complete version control tool suite for OpenBSD.
47 <ul>
48 <li>Intuitive command line interface for required version control operations
49 (<a href="got.1.html">got</a>).
50 <li>Interactive repository browser for history analysis and review of
51 committed changes (<a href="tog.1.html">tog</a>).
52 <li>CGI repository browser for web servers (<a href="gotweb.8.html">gotweb</a>).
53 <li>Repository administration tooling with a strong focus on backup and recovery (<a href="gotadmin.1.html">gotadmin</a>).
54 <li>Repository server for hosting a central repository and synchronizing
55 changes to a cascade of public and private mirrors.
56 </ul>
57 <li>
58 Consider workflow requirements of OpenBSD developers.
59 <ul>
60 <li>Strong built-in support for a centralized repository model
61 (<a href="notes-pull-push">ideas about pull/push</a>).
62 <li>Keep things easy for developers who don't need branches.
63 <li>Support local branches for developers who need them.
64 <li>Support &quot;-stable&quot; release branches.
65 <li>Support features required by the OpenBSD project's build infrastructure.
66 </ul>
67 <li>Implement authenticated and encrypted network communications.
68 <ul>
69 <li>Provide <a href="https://openssh.com">SSH</a> and optional
70 <a href="https://libressl.org">TLS</a> support for cloning repositories
71 and pulling changes.
72 <li>Exclusively rely on SSH for pushing changes.
73 <li>Do not implement server-side support for plaintext network communications.
74 </ul>
75 </ul>
76 </body>
77 </html>