Some words about contributing to the stdlib.

master
alainfrisch 2016-06-16 15:31:17 +02:00
parent 6d0570242f
commit 18bc91a8e2
1 changed files with 48 additions and 0 deletions

View File

@ -253,6 +253,54 @@ log -u` to make sure the rebase patches make sense), but:
changes, or an un-testable intermediary state) is a sure way to
generate ill will.
## Contributing to the standard library
Contributions to the standard library are very welcome. There is some
widespread belief in the community than the stdlib is somehow "frozen"
and that its evolutions are mostly driven by the need of the OCaml
compiler itself. Let's be clear: this is just plain wrong. The
compiler is happy with its own local utility functions, and many
recent additions to the stdlib are not used by the compiler.
Another common and wrong idea is that core OCaml maintainers don't
really care about the standard library. This is not true, and won't
be unless one of the "alternative standard" libraries really gains
enough "market share" in the community.
So: please contribute!
Obviously, the proposals to evolve the standard library will be
evaluated with very high standards, similar to those applied to the
evolution of the surface langage, and much higher than those for
internal compiler changes (optimizations, etc).
A key property of the standard library is its stability. Backward
compatibility is not an absolute technical requirement (any addition
to/of a module can break existing code, formally), but breakage should
be limited as much as possible (and assessed, when relevant). A
corollary is that any addition creates a long-term support commitment.
For instance, once a concrete type or function is made public,
changing the exposed definition cannot be done easily.
There is no plan to extend dramatically the functional domain covered
by the standard library. For instance, proposals to include support
for XML, JSON, or network protocols are very likely to be rejected. Such
domains are better treated by external libraries. Small additions to
existing modules are much simpler to get in, even more so (but not
necessarily) when:
- they cannot easily be implemented externally, or when
- they facilitate communication between independent external
libraries, or when
- they fill obvious gaps.
Of course, standard guidelines apply as well: proper documentation,
proper tests, portability (yes, also Windows!), good justification for
why the change is desirable and why it should go into stdlib.
So: be prepared for some serious review process! But yes, yes,
contributions are welcome and appreciated. Promised.
## Contributor License Agreement