This page is dedicated to rules and conventions that Chameleon’s developers must follow and that should be read by contributors.
Please read and follow guidelines given in the CONTRIBUTING file.
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
<sec:doc>
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
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
Please refer to this file for the documentation guidelines README.
Chameleon library started as an extension of the PLASMA library so that code naming and writting conventions should follow PLASMA ones.
A Chameleon’s release is a source package, of the form chameleon-major.minor.patch.tar.gz, which:
- has been properly tested,
- contains a generated documentation corresponding to the released version,
- has an up-to-date ChangeLog file,
- is published on internet.
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.
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.
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.