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