Mentions légales du service

Skip to content
Snippets Groups Projects
READMEDEV.org 3.29 KiB

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 Texinfo installed on your system.

For example, on Debian systems:

sudo apt install doxygen texinfo 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.