diff Sphinx/source/developers/repositories.rst @ 627:53992cb7fa7f

c++03
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 06 Mar 2021 11:35:51 +0100
parents 1248dadca1cd
children 63f246134e5b
line wrap: on
line diff
--- a/Sphinx/source/developers/repositories.rst	Thu Mar 04 10:55:12 2021 +0100
+++ b/Sphinx/source/developers/repositories.rst	Sat Mar 06 11:35:51 2021 +0100
@@ -155,13 +155,58 @@
 <https://www.mercurial-scm.org/wiki/CommunicatingChanges>`__: by
 submitting a patch, or by exchanging a bundle.
 
-Importantly, before any contribution can be accepted into the Orthanc
-repositories, its author must sign a :ref:`CLA <cla>`. This allows
-both the University Hospital of Liège and the Osimis company to act as
-the official guardians of the whole Orthanc ecosystem.
+
+Code quality
+............
+
+* Your code **must follow the C++03 standard** (C++11 is not accepted
+  for maximum cross-platform compatibility on older platforms).
+
+* The continuous integration servers of Osimis check that Orthanc
+  properly compiles on Ubuntu 16.04, on `Linux Standard Base systems
+  <https://refspecs.linuxfoundation.org/lsb.shtml>`__ using the `LSB
+  SDB 5.0.0
+  <http://ftp.linuxfoundation.org/pub/lsb/bundles/released-5.0.0/sdk/>`__,
+  on FreeBSD, on Microsoft Visual Studio 2008 (32 bit), on Microsoft
+  Visual Studio 2015 (64 bit), and on Apple OS X 10.9
+  "Mavericks". Submitted code might have to be adapted to compile on
+  these platforms. Architecture-dependant code should be located in
+  the `Orthanc::Toolbox
+  <https://hg.orthanc-server.com/orthanc/file/default/OrthancFramework/Sources/Toolbox.h>`__
+  and `Orthanc::SystemToolbox
+  <https://hg.orthanc-server.com/orthanc/file/default/OrthancFramework/Sources/SystemToolbox.h>`__
+  static classes.
+
+* Please stick to the :ref:`coding style <coding-style>` of Orthanc.
 
-Also, make sure to read our :ref:`FAQ if submitting code
-<submitting_code>`.
+* Your individual contributions should be kept **as small as
+  possible**, and should be focused on one very specific issue or
+  feature. Large architectural changes are reserved for the core
+  development team of Orthanc, as we must follow our `long-term
+  roadmap
+  <https://hg.orthanc-server.com/orthanc/file/default/TODO>`__.
+
+* Unit testing is mandatory. Integration tests should be submitted to
+  the `dedicated repository
+  <https://hg.orthanc-server.com/orthanc-tests/file/default>`__.
+
+* All the contributions will be carefully reviewed. Some contributions
+  may be modified, yet even rejected. A rejection might for instance
+  occur if your contribution does not match the Orthanc roadmap, does
+  not meet our high-quality code standards, or breaks backward
+  compatibility. Please be sure that we warmly welcome and appreciate
+  your contributions, but be aware of the fact that we are quite
+  strict, and that the review process might take time. This is why the
+  recommended way of contributing to Orthanc is always by
+  :ref:`creating contributed plugins <creating-plugins>`.
+
+* Importantly, before any contribution can be accepted into the
+  Orthanc repositories, its author must sign a :ref:`CLA <cla>`. This
+  allows both the University Hospital of Liège and the Osimis company
+  to act as the official guardians of the whole Orthanc
+  ecosystem. Another advantage of creating plugins is that signing a
+  CLA is not needed. Make sure to carefully read our :ref:`FAQ about
+  the licensing of submitted code <submitting_code>`.
 
 
 .. _hg-patch: