4 We have a https://github.com/MLton/mltonlib[MLton Library repository]
5 that is intended to collect libraries.
8 https://github.com/MLton/mltonlib
11 Libraries are kept in the `master` branch, and are grouped according
12 to domain name, in the Java package style. For example,
13 <:VesaKarvonen:>, who works at `ssh.com`, has been putting code at:
16 https://github.com/MLton/mltonlib/tree/master/com/ssh
19 <:StephenWeeks:>, owning `sweeks.com`, has been putting code at:
22 https://github.com/MLton/mltonlib/tree/master/com/sweeks
25 A "library" is a subdirectory of some such directory. For example,
26 Stephen's basis-library replacement library is at
29 https://github.com/MLton/mltonlib/tree/master/com/sweeks/basic
32 We use "transparent per-library branching" to handle library
33 versioning. Each library has an "unstable" subdirectory in which work
34 happens. When one is happy with a library, one tags it by copying it
35 to a stable version directory. Stable libraries are immutable -- when
36 one refers to a stable library, one always gets exactly the same code.
37 No one has actually made a stable library yet, but, when I'm ready to
38 tag my library, I was thinking that I would do something like copying
41 https://github.com/MLton/mltonlib/tree/master/com/sweeks/basic/unstable
47 https://github.com/MLton/mltonlib/tree/master/com/sweeks/basic/v1
50 So far, libraries in the MLton repository have been licensed under
51 MLton's <:License:>. We haven't decided on whether that will be a
52 requirement to be in the repository or not. For the sake of
53 simplicity (a single license) and encouraging widest use of code,
54 contributors are encouraged to use that license. But it may be too
57 If someone wants to contribute a new library to our repository or to
58 work on an old one, they can make a pull request. If people want to
59 work in their own repository, they can do so -- that's the point of
60 using domain names to prevent clashes. The idea is that a user should
61 be able to bring library collections in from many different
62 repositories without problems. And those libraries could even work
65 At some point we may want to settle on an <:MLBasisPathMap:> variable
66 for the root of the library project. Or, we could reuse `SML_LIB`,
67 and migrate what we currently keep there into the library