Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / doc / guide / localhost / MLtonLibraryProject
CommitLineData
7f918cf1
CE
1<!DOCTYPE html>\r
2<html lang="en">\r
3<head>\r
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\r
5<meta name="generator" content="AsciiDoc 8.6.9">\r
6<title>MLtonLibraryProject</title>\r
7<link rel="stylesheet" href="./asciidoc.css" type="text/css">\r
8<link rel="stylesheet" href="./pygments.css" type="text/css">\r
9\r
10\r
11<script type="text/javascript" src="./asciidoc.js"></script>\r
12<script type="text/javascript">\r
13/*<![CDATA[*/\r
14asciidoc.install();\r
15/*]]>*/\r
16</script>\r
17<link rel="stylesheet" href="./mlton.css" type="text/css">\r
18</head>\r
19<body class="article">\r
20<div id="banner">\r
21<div id="banner-home">\r
22<a href="./Home">MLton 20180207</a>\r
23</div>\r
24</div>\r
25<div id="header">\r
26<h1>MLtonLibraryProject</h1>\r
27</div>\r
28<div id="content">\r
29<div id="preamble">\r
30<div class="sectionbody">\r
31<div class="paragraph"><p>We have a <a href="https://github.com/MLton/mltonlib">MLton Library repository</a>\r
32that is intended to collect libraries.</p></div>\r
33<div class="exampleblock">\r
34<div class="content">\r
35<div class="literalblock">\r
36<div class="content monospaced">\r
37<pre>https://github.com/MLton/mltonlib</pre>\r
38</div></div>\r
39</div></div>\r
40<div class="paragraph"><p>Libraries are kept in the <span class="monospaced">master</span> branch, and are grouped according\r
41to domain name, in the Java package style. For example,\r
42<a href="VesaKarvonen">VesaKarvonen</a>, who works at <span class="monospaced">ssh.com</span>, has been putting code at:</p></div>\r
43<div class="exampleblock">\r
44<div class="content">\r
45<div class="literalblock">\r
46<div class="content monospaced">\r
47<pre>https://github.com/MLton/mltonlib/tree/master/com/ssh</pre>\r
48</div></div>\r
49</div></div>\r
50<div class="paragraph"><p><a href="StephenWeeks">StephenWeeks</a>, owning <span class="monospaced">sweeks.com</span>, has been putting code at:</p></div>\r
51<div class="exampleblock">\r
52<div class="content">\r
53<div class="literalblock">\r
54<div class="content monospaced">\r
55<pre>https://github.com/MLton/mltonlib/tree/master/com/sweeks</pre>\r
56</div></div>\r
57</div></div>\r
58<div class="paragraph"><p>A "library" is a subdirectory of some such directory. For example,\r
59Stephen&#8217;s basis-library replacement library is at</p></div>\r
60<div class="exampleblock">\r
61<div class="content">\r
62<div class="literalblock">\r
63<div class="content monospaced">\r
64<pre>https://github.com/MLton/mltonlib/tree/master/com/sweeks/basic</pre>\r
65</div></div>\r
66</div></div>\r
67<div class="paragraph"><p>We use "transparent per-library branching" to handle library\r
68versioning. Each library has an "unstable" subdirectory in which work\r
69happens. When one is happy with a library, one tags it by copying it\r
70to a stable version directory. Stable libraries are immutable&#8201;&#8212;&#8201;when\r
71one refers to a stable library, one always gets exactly the same code.\r
72No one has actually made a stable library yet, but, when I&#8217;m ready to\r
73tag my library, I was thinking that I would do something like copying</p></div>\r
74<div class="exampleblock">\r
75<div class="content">\r
76<div class="literalblock">\r
77<div class="content monospaced">\r
78<pre>https://github.com/MLton/mltonlib/tree/master/com/sweeks/basic/unstable</pre>\r
79</div></div>\r
80</div></div>\r
81<div class="paragraph"><p>to</p></div>\r
82<div class="exampleblock">\r
83<div class="content">\r
84<div class="literalblock">\r
85<div class="content monospaced">\r
86<pre>https://github.com/MLton/mltonlib/tree/master/com/sweeks/basic/v1</pre>\r
87</div></div>\r
88</div></div>\r
89<div class="paragraph"><p>So far, libraries in the MLton repository have been licensed under\r
90MLton&#8217;s <a href="License">License</a>. We haven&#8217;t decided on whether that will be a\r
91requirement to be in the repository or not. For the sake of\r
92simplicity (a single license) and encouraging widest use of code,\r
93contributors are encouraged to use that license. But it may be too\r
94strict to require it.</p></div>\r
95<div class="paragraph"><p>If someone wants to contribute a new library to our repository or to\r
96work on an old one, they can make a pull request. If people want to\r
97work in their own repository, they can do so&#8201;&#8212;&#8201;that&#8217;s the point of\r
98using domain names to prevent clashes. The idea is that a user should\r
99be able to bring library collections in from many different\r
100repositories without problems. And those libraries could even work\r
101with each other.</p></div>\r
102<div class="paragraph"><p>At some point we may want to settle on an <a href="MLBasisPathMap">MLBasisPathMap</a> variable\r
103for the root of the library project. Or, we could reuse <span class="monospaced">SML_LIB</span>,\r
104and migrate what we currently keep there into the library\r
105infrastructure.</p></div>\r
106</div>\r
107</div>\r
108</div>\r
109<div id="footnotes"><hr></div>\r
110<div id="footer">\r
111<div id="footer-text">\r
112</div>\r
113<div id="footer-badges">\r
114</div>\r
115</div>\r
116</body>\r
117</html>\r