update contributing.rst and added codeowners.rst
This commit is contained in:
parent
00c4aba828
commit
78f9c9a2cd
2 changed files with 83 additions and 19 deletions
64
doc/codeowners.rst
Normal file
64
doc/codeowners.rst
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
===========
|
||||||
|
Code owners
|
||||||
|
===========
|
||||||
|
|
||||||
|
|
||||||
|
Subsystems and code owners
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
*Note*: This list is incomplete, in doubt dom96 is responsible for the standard
|
||||||
|
library, araq is responsible for the compiler.
|
||||||
|
|
||||||
|
|
||||||
|
Compiler
|
||||||
|
~~~~~~~~
|
||||||
|
|
||||||
|
====================== ======================================================
|
||||||
|
subsystem owner(s)
|
||||||
|
====================== ======================================================
|
||||||
|
Parsing, Lexing araq
|
||||||
|
Renderer cooldome, araq
|
||||||
|
Order of passes cooldome
|
||||||
|
Semantic Checking araq
|
||||||
|
Virtual machine jangko, cooldome, GULPF, araq
|
||||||
|
Sempass2: effects tracking araq
|
||||||
|
type system, concepts zahary
|
||||||
|
transf araq
|
||||||
|
semfold constant folding araq
|
||||||
|
template instantiation zahary, araq
|
||||||
|
term rewriting macros araq
|
||||||
|
closure interators yglukhov, araq
|
||||||
|
lambda lifting yglukhov, araq
|
||||||
|
c, cpp codegen lemonboy, araq
|
||||||
|
js codegen yglukhov, lemonboy
|
||||||
|
alias analysis araq
|
||||||
|
dfa, writetracking araq
|
||||||
|
parallel, multithreading araq
|
||||||
|
incremental araq
|
||||||
|
sizeof computations krux02
|
||||||
|
====================== ======================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Standard library
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
====================== ======================================================
|
||||||
|
subsystem owner(s)
|
||||||
|
====================== ======================================================
|
||||||
|
async dom96
|
||||||
|
strutils araq
|
||||||
|
sequtils dom96, araq
|
||||||
|
times GULPF
|
||||||
|
os, ospaths dom96, araq
|
||||||
|
re araq
|
||||||
|
nre flaviu
|
||||||
|
math krux02
|
||||||
|
io dom96
|
||||||
|
garbage collector araq
|
||||||
|
Go garbage collector stefantalpalaru
|
||||||
|
coroutines Rokas Kupstys
|
||||||
|
collections GULPF
|
||||||
|
parseopt araq
|
||||||
|
json dom96
|
||||||
|
====================== ======================================================
|
||||||
|
|
@ -1,3 +1,16 @@
|
||||||
|
Contributing
|
||||||
|
============
|
||||||
|
|
||||||
|
Contributing happens via "Pull requests" (PR) on github. Every PR needs to be
|
||||||
|
reviewed before it can be merged and the Continuous Integration should be green.
|
||||||
|
|
||||||
|
The PR has to be approved (and is often merged too) by one "code owner", either
|
||||||
|
by the code owner who is responsible for the subsystem the PR belongs to or by
|
||||||
|
two core developers or by Araq.
|
||||||
|
|
||||||
|
See `codeowners <codeowners.html>`_ for more details.
|
||||||
|
|
||||||
|
|
||||||
Writing tests
|
Writing tests
|
||||||
=============
|
=============
|
||||||
|
|
||||||
|
|
@ -6,7 +19,7 @@ There are 3 types of tests:
|
||||||
1. ``runnableExamples`` documentation comment tests, ran by ``nim doc mymod.nim``
|
1. ``runnableExamples`` documentation comment tests, ran by ``nim doc mymod.nim``
|
||||||
These end up in documentation and ensure documentation stays in sync with code.
|
These end up in documentation and ensure documentation stays in sync with code.
|
||||||
|
|
||||||
2. tests in `when isMainModule:` block, ran by ``nim c mymod.nim``
|
2. tests in ``when isMainModule:`` block, ran by ``nim c mymod.nim``
|
||||||
``nimble test`` also typially runs these in external nimble packages.
|
``nimble test`` also typially runs these in external nimble packages.
|
||||||
|
|
||||||
3. testament tests, eg: tests/stdlib/tospaths.nim (only used for Nim repo).
|
3. testament tests, eg: tests/stdlib/tospaths.nim (only used for Nim repo).
|
||||||
|
|
@ -146,18 +159,8 @@ tell you if any new tests passed/failed.
|
||||||
Deprecation
|
Deprecation
|
||||||
===========
|
===========
|
||||||
|
|
||||||
Backward compatibility is important, so if you are renaming a routine
|
Backward compatibility is important, so instead of a rename you need to deprecate
|
||||||
(proc/template/macro/iterator) or a type you can use:
|
the old name and introduce a new name:
|
||||||
|
|
||||||
.. code-block:: nim
|
|
||||||
|
|
||||||
{.deprecated: [oldName: new_name].}
|
|
||||||
|
|
||||||
This form may enable future automated tooling to upgrade code (eg nimfix, which
|
|
||||||
was used in the past for nimrod -> nim migration).
|
|
||||||
|
|
||||||
Besides pure renamings (eg when parameters change) you can mark a symbol as
|
|
||||||
deprecated using the following:
|
|
||||||
|
|
||||||
.. code-block:: nim
|
.. code-block:: nim
|
||||||
|
|
||||||
|
|
@ -169,9 +172,6 @@ deprecated using the following:
|
||||||
|
|
||||||
# for enum types ``deprecated`` is not yet supported.
|
# for enum types ``deprecated`` is not yet supported.
|
||||||
|
|
||||||
Note that currently the ``deprecated`` statement does not work well with
|
|
||||||
overloading so for routines the latter variant is better.
|
|
||||||
|
|
||||||
|
|
||||||
See also `Deprecated <https://nim-lang.org/docs/manual.html#pragmas-deprecated-pragma>`_
|
See also `Deprecated <https://nim-lang.org/docs/manual.html#pragmas-deprecated-pragma>`_
|
||||||
pragma in the manual.
|
pragma in the manual.
|
||||||
|
|
@ -180,8 +180,8 @@ pragma in the manual.
|
||||||
Documentation
|
Documentation
|
||||||
=============
|
=============
|
||||||
|
|
||||||
When contributing new procedures, be sure to add documentation, especially if
|
When contributing new procs, be sure to add documentation, especially if
|
||||||
the procedure is public. Documentation begins on the line
|
the proc is public. Documentation begins on the line
|
||||||
following the ``proc`` definition, and is prefixed by ``##`` on each line.
|
following the ``proc`` definition, and is prefixed by ``##`` on each line.
|
||||||
|
|
||||||
Runnable code examples are also encouraged, to show typical behavior with a few
|
Runnable code examples are also encouraged, to show typical behavior with a few
|
||||||
|
|
@ -194,7 +194,7 @@ as well as ``testament`` and guarantee they stay in sync.
|
||||||
## Adds "Bar" to ``a``.
|
## Adds "Bar" to ``a``.
|
||||||
runnableExamples:
|
runnableExamples:
|
||||||
doAssert "baz".addBar == "bazBar"
|
doAssert "baz".addBar == "bazBar"
|
||||||
|
|
||||||
result = a & "Bar"
|
result = a & "Bar"
|
||||||
|
|
||||||
See `parentDir <https://nim-lang.github.io/Nim/ospaths.html#parentDir%2Cstring>`_
|
See `parentDir <https://nim-lang.github.io/Nim/ospaths.html#parentDir%2Cstring>`_
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue