-
PRUVOST Florent authoredPRUVOST Florent authored
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:
- has been properly tested,
- contains a generated documentation corresponding to the released version,
- has an up-to-date ChangeLog file,
- 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.