Skip to content

Latest commit

 

History

History
104 lines (76 loc) · 3.28 KB

READMEDEV.org

File metadata and controls

104 lines (76 loc) · 3.28 KB

README for developers

This page is dedicated to rules and conventions that Chameleon’s developers must follow and that should be read by contributors.

1 Gitlab flow: how to contribute to Chameleon

Please read and follow guidelines given in the CONTRIBUTING file.

1.1 Update submodules

Chameleon git project depends on a “submodule” git, located in cmake_modules/morse_cmake and hosted here https://gitlab.inria.fr/solverstack/morse_cmake.

To update this submodule to the last development state, follow these steps:

git submodule update --remote cmake_modules/morse_cmake
git commit cmake_modules/morse_cmake -m "update morse_cmake submodule"
git push --recurse-submodules=check

2 Documentation

<sec:doc>

2.1 Generate the documentation

2.1.1 Prerequisites

To generate the documentation you need to have Doxygen and org-mode installed on your system.

For example, on Debian systems:

sudo apt install doxygen org-mode texlive texlive-latex-extra emacs

2.1.2 configure + make documentation

Enter into the Chameleon’s source root directory and configure with CHAMELEON_ENABLE_DOC=ON, then generate the documentation with make doc

cd chameleon
mkdir build && cd build
cmake .. -DCHAMELEON_ENABLE_DOC=ON
make doc

2.2 Rules about source code documentation

Please refer to this file for the documentation guidelines README.

3 Naming and writting conventions

Chameleon library started as an extension of the PLASMA library so that code naming and writting conventions should follow PLASMA ones.

4 Packaging

A Chameleon’s release is a source package, of the form chameleon-major.minor.patch.tar.gz, which:

  1. has been properly tested,
  2. contains a generated documentation corresponding to the released version,
  3. has an up-to-date ChangeLog file,
  4. is published on internet.

4.1 Test Chameleon before packaging

TODO - Write the way we could systematically test Chameleon before packaging, for example writting a script (generated from this org-mode file) to be used on PlaFRIM plus some specific ctest tests.

4.2 Source tarball generation

This step requires to generate the documentation.

export CHAMELEON_ROOT=/path/to/chameleon/sources/to/be/released
cmake $CHAMELEON_ROOT -DCHAMELEON_ENABLE_DOC=ON
make doc
cp doc/orgmode/users_guide.pdf $CHAMELEON_ROOT
make package_source

A tarball chameleon-major.minor.patch.tar.gz should be generated and contains the users_guide documentation.

4.3 Publish the release on internet

A git tag must be first created, for example

git tag -a v1.0.0 -m 'Version 1.0.0'
git push --tags

Then in the Chameleon Tags tab, https://gitlab.inria.fr/solverstack/chameleon/tags, edit the release notes and attach the tarball previously generated.