Commit 29ed46b7 authored by PRUVOST Florent's avatar PRUVOST Florent Committed by Mathieu Faverge

Doc

    improve user's doc style
    add some explanation about the code structure in the main doxygen
    fix coverage in analysis sonarqube
    add a release job to automatize release publication
    change the cdash server to my.cdash.org which is more recent and reactive than cdash.inria.fr
    fix the version number, dates and authors in headers to prepare the release 0.9.2
parent 75528e23
......@@ -9,7 +9,7 @@ stages:
before_script:
- git submodule update --init --recursive
- source .gitlab-ci-env.sh $SIMU
- mkdir -p build
- mkdir -p build-$VERSION
.build_script_template: &build_script
stage: build
......@@ -17,15 +17,15 @@ before_script:
script:
- echo BUILD_OPTIONS $BUILD_OPTIONS
- echo VERSION $VERSION
- (cd build &&
scan-build -plist --intercept-first --analyze-headers -o analyzer_reports
- (cd build-$VERSION &&
scan-build -plist --intercept-first --exclude CMakeFiles --analyze-headers -o analyzer_reports
cmake -C ../cmake_modules/gitlab-ci-initial-cache.cmake .. $BUILD_OPTIONS &&
scan-build -plist --intercept-first --analyze-headers -o analyzer_reports
scan-build -plist --intercept-first --exclude CMakeFiles --analyze-headers -o analyzer_reports
ctest --no-compress-output -V -j 5
-D ExperimentalBuild
-D ExperimentalSubmit
| tee ../chameleon_${VERSION}.log)
- (cd build &&
- (cd build-$VERSION &&
make install | tee -a ../chameleon_${VERSION}.log &&
rm install/ -r)
......@@ -35,39 +35,38 @@ before_script:
script:
- echo TESTS_RESTRICTION $TESTS_RESTRICTION
- echo VERSION $VERSION
- (cd build &&
- (cd build-$VERSION &&
eval "ctest --no-compress-output -V
$TESTS_RESTRICTION
-D ExperimentalTest
-D ExperimentalCoverage
-D ExperimentalSubmit
| tee -a ../chameleon_${VERSION}.log")
- lcov --directory build --capture --output-file ./chameleon_${VERSION}.lcov
- lcov --directory build-$VERSION --capture --output-file ./chameleon_${VERSION}.lcov
build_starpu:
build_openmp:
<<: *build_script
artifacts:
name: build_starpu
name: build_openmp
expire_in: 48 hours
paths:
- build
- chameleon_starpu.log
- build-$VERSION
- chameleon_openmp.log
variables:
BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON"
VERSION: starpu
BUILD_OPTIONS: "-DCHAMELEON_SCHED=OPENMP"
VERSION: openmp
build_starpu_simgrid:
build_parsec:
<<: *build_script
artifacts:
name: build_starpu_simgrid
name: build_parsec
expire_in: 48 hours
paths:
- build
- chameleon_starpu_simgrid.log
- build-$VERSION
- chameleon_parsec.log
variables:
SIMU: simu
BUILD_OPTIONS: "-DCHAMELEON_SIMULATION=ON -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=OFF"
VERSION: starpu_simgrid
BUILD_OPTIONS: "-DCHAMELEON_SCHED=PARSEC"
VERSION: parsec
build_quark:
<<: *build_script
......@@ -75,109 +74,112 @@ build_quark:
name: build_quark
expire_in: 48 hours
paths:
- build
- build-$VERSION
- chameleon_quark.log
variables:
BUILD_OPTIONS: "-DCHAMELEON_SCHED=QUARK"
VERSION: quark
build_parsec:
build_starpu:
<<: *build_script
artifacts:
name: build_parsec
name: build_starpu
expire_in: 48 hours
paths:
- build
- chameleon_parsec.log
- build-$VERSION
- chameleon_starpu.log
variables:
BUILD_OPTIONS: "-DCHAMELEON_SCHED=PARSEC"
VERSION: parsec
BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON"
VERSION: starpu
build_openmp:
build_starpu_simgrid:
<<: *build_script
artifacts:
name: build_openmp
name: build_starpu_simgrid
expire_in: 48 hours
paths:
- build
- chameleon_openmp.log
- build-$VERSION
- chameleon_starpu_simgrid.log
variables:
BUILD_OPTIONS: "-DCHAMELEON_SCHED=OPENMP"
VERSION: openmp
SIMU: simu
BUILD_OPTIONS: "-DCHAMELEON_SIMULATION=ON -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=OFF"
VERSION: starpu_simgrid
test_starpu_branches:
test_openmp_branches:
<<: *test_script
variables:
TESTS_RESTRICTION: "-R \"test_shm_s|test_mpi_s|time_ooc_shm_s|time_ooc_mpi_s\""
VERSION: starpu
TESTS_RESTRICTION: "-R \"test_shm_s|test_mpi_s\""
VERSION: openmp
dependencies:
- build_starpu
- build_openmp
artifacts:
name: test_starpu
name: test_openmp
expire_in: 48 hours
paths:
- build
- chameleon_starpu.log
- chameleon_starpu.lcov
- build-$VERSION
- chameleon_openmp.log
- chameleon_openmp.lcov
only:
- branches
except:
- master
- /^ci-.*$/
test_starpu_master:
test_openmp_master:
<<: *test_script
variables:
TESTS_RESTRICTION: "-R \"_shm_|_mpi_\""
VERSION: starpu
VERSION: openmp
dependencies:
- build_starpu
- build_openmp
artifacts:
name: test_starpu
name: test_openmp
expire_in: 48 hours
paths:
- build
- chameleon_starpu.log
- chameleon_starpu.lcov
- build-$VERSION
- chameleon_openmp.log
- chameleon_openmp.lcov
only:
- master@solverstack/chameleon
- /^ci-.*$/
test_starpu_simgrid_branches:
test_parsec_branches:
<<: *test_script
variables:
SIMU: simu
TESTS_RESTRICTION: "-R simu"
VERSION: starpu_simgrid
TESTS_RESTRICTION: "-R \"test_shm_s|test_mpi_s\""
VERSION: parsec
dependencies:
- build_starpu_simgrid
- build_parsec
artifacts:
name: test_starpu_simgrid
name: test_parsec
expire_in: 48 hours
paths:
- build
- chameleon_starpu_simgrid.log
- chameleon_starpu_simgrid.lcov
- build-$VERSION
- chameleon_parsec.log
- chameleon_parsec.lcov
only:
- branches
except:
- master
- /^ci-.*$/
test_starpu_simgrid_master:
test_parsec_master:
<<: *test_script
variables:
SIMU: simu
TESTS_RESTRICTION: "-R simu"
VERSION: starpu_simgrid
TESTS_RESTRICTION: "-R \"_shm_|_mpi_\""
VERSION: parsec
dependencies:
- build_starpu_simgrid
- build_parsec
artifacts:
name: test_starpu_simgrid
name: test_parsec
expire_in: 48 hours
paths:
- build
- chameleon_starpu_simgrid.log
- chameleon_starpu_simgrid.lcov
- build-$VERSION
- chameleon_parsec.log
- chameleon_parsec.lcov
only:
- master@solverstack/chameleon
- /^ci-.*$/
test_quark_branches:
<<: *test_script
......@@ -190,13 +192,14 @@ test_quark_branches:
name: test_quark
expire_in: 48 hours
paths:
- build
- build-$VERSION
- chameleon_quark.log
- chameleon_quark.lcov
only:
- branches
except:
- master
- /^ci-.*$/
test_quark_master:
<<: *test_script
......@@ -209,83 +212,90 @@ test_quark_master:
name: test_quark
expire_in: 48 hours
paths:
- build
- build-$VERSION
- chameleon_quark.log
- chameleon_quark.lcov
only:
- master@solverstack/chameleon
- /^ci-.*$/
test_parsec_branches:
test_starpu_branches:
<<: *test_script
variables:
TESTS_RESTRICTION: "-R \"test_shm_s|test_mpi_s\""
VERSION: parsec
TESTS_RESTRICTION: "-R \"test_shm_s|test_mpi_s|time_ooc_shm_s|time_ooc_mpi_s\""
VERSION: starpu
dependencies:
- build_parsec
- build_starpu
artifacts:
name: test_parsec
name: test_starpu
expire_in: 48 hours
paths:
- build
- chameleon_parsec.log
- chameleon_parsec.lcov
- build-$VERSION
- chameleon_starpu.log
- chameleon_starpu.lcov
only:
- branches
except:
- master
- /^ci-.*$/
test_parsec_master:
test_starpu_master:
<<: *test_script
variables:
TESTS_RESTRICTION: "-R \"_shm_|_mpi_\""
VERSION: parsec
VERSION: starpu
dependencies:
- build_parsec
- build_starpu
artifacts:
name: test_parsec
name: test_starpu
expire_in: 48 hours
paths:
- build
- chameleon_parsec.log
- chameleon_parsec.lcov
- build-$VERSION
- chameleon_starpu.log
- chameleon_starpu.lcov
only:
- master@solverstack/chameleon
- /^ci-.*$/
test_openmp_branches:
test_starpu_simgrid_branches:
<<: *test_script
variables:
TESTS_RESTRICTION: "-R \"test_shm_s|test_mpi_s\""
VERSION: openmp
SIMU: simu
TESTS_RESTRICTION: "-R simu"
VERSION: starpu_simgrid
dependencies:
- build_openmp
- build_starpu_simgrid
artifacts:
name: test_openmp
name: test_starpu_simgrid
expire_in: 48 hours
paths:
- build
- chameleon_openmp.log
- chameleon_openmp.lcov
- build-$VERSION
- chameleon_starpu_simgrid.log
- chameleon_starpu_simgrid.lcov
only:
- branches
except:
- master
- /^ci-.*$/
test_openmp_master:
test_starpu_simgrid_master:
<<: *test_script
variables:
TESTS_RESTRICTION: "-R \"_shm_|_mpi_\""
VERSION: openmp
SIMU: simu
TESTS_RESTRICTION: "-R simu"
VERSION: starpu_simgrid
dependencies:
- build_openmp
- build_starpu_simgrid
artifacts:
name: test_openmp
name: test_starpu_simgrid
expire_in: 48 hours
paths:
- build
- chameleon_openmp.log
- chameleon_openmp.lcov
- build-$VERSION
- chameleon_starpu_simgrid.log
- chameleon_starpu_simgrid.lcov
only:
- master@solverstack/chameleon
- /^ci-.*$/
coverage:
stage: analyse
......@@ -307,8 +317,9 @@ coverage:
- branches
except:
- master
- /^ci-.*$/
coverity:
.coverity:
stage: analyse
tags: ["large"]
dependencies: []
......@@ -317,8 +328,10 @@ coverity:
expire_in: 1 week
paths:
- chameleon.tgz
variables:
VERSION: coverity
script:
- (cd build &&
- (cd build-$VERSION &&
cmake -C ../cmake_modules/gitlab-ci-initial-cache.cmake .. -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON &&
cov-build --dir ../cov-int make -j 4)
- tar czvf chameleon.tgz cov-int
......@@ -349,11 +362,14 @@ sonarqube:
- chameleon_cppcheck.xml
- chameleon_rats.xml
- sonar.log
variables:
VERSION: sonarqube
script:
- cat *.log > chameleon_build.log
- ./tools/analysis.sh
only:
- master@solverstack/chameleon
- /^ci-.*$/
pages:
stage: deploy
......@@ -363,8 +379,10 @@ pages:
expire_in: 1 week
paths:
- public
variables:
VERSION: pages
script:
- cd build
- cd build-$VERSION
- cmake .. -DCHAMELEON_ENABLE_DOC=ON
- make doc -j5
- mv doc/orgmode/ ../public/
......@@ -372,3 +390,19 @@ pages:
- mv doc/doxygen/out/html/ ../public/doxygen/
only:
- master@solverstack/chameleon
- /^ci-.*$/
release:
stage: deploy
dependencies: []
artifacts:
name: chameleon_release
expire_in: 1 week
paths:
- build-$VERSION/*.tar.gz
variables:
VERSION: release
only:
- /^release-.*$/
script:
- ./tools/release.sh
......@@ -4,7 +4,7 @@
#
# @copyright 2009-2014 The University of Tennessee and The University of
# Tennessee Research Foundation. All rights reserved.
# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# @copyright 2012-2019 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
###
......@@ -17,12 +17,12 @@
# Univ. of California Berkeley,
# Univ. of Colorado Denver.
#
# @version 1.0.0
# @version 0.9.2
# @author Cedric Castagnede
# @author Emmanuel Agullo
# @author Mathieu Faverge
# @author Florent Pruvost
# @date 2012-07-13
# @date 2014-11-16
#
###
cmake_minimum_required(VERSION 3.3)
......@@ -36,9 +36,9 @@ if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
endif()
# set project version number
set(CHAMELEON_VERSION_MAJOR 1)
set(CHAMELEON_VERSION_MINOR 0)
set(CHAMELEON_VERSION_MICRO 0)
set(CHAMELEON_VERSION_MAJOR 0)
set(CHAMELEON_VERSION_MINOR 9)
set(CHAMELEON_VERSION_MICRO 2)
set(CHAMELEON_CMAKE_DIR "" CACHE PATH "Directory of CHAMELEON CMake modules, can be external to the project")
......@@ -916,6 +916,7 @@ if( CHAMELEON_SCHED_OPENMP )
endif( CHAMELEON_SCHED_OPENMP )
# getopt
unset(CMAKE_REQUIRED_LIBRARIES)
check_include_files(getopt.h CHAMELEON_HAVE_GETOPT_H)
if (CHAMELEON_HAVE_GETOPT_H)
check_function_exists(getopt_long CHAMELEON_HAVE_GETOPT_LONG)
......@@ -1019,7 +1020,7 @@ include(CTest)
if(${CMAKE_Fortran_COMPILER_ID} STREQUAL "Intel")
message(STATUS "Add -nofor_main to the Fortran linker (Intel compiler)")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -nofor_main")
endif(_match_ifort)
endif()
# Testing executables
if(CHAMELEON_ENABLE_EXAMPLE AND NOT CHAMELEON_SIMULATION)
......@@ -1091,7 +1092,7 @@ set(CPACK_PACKAGE_VENDOR "Inria")
set(CPACK_PACKAGE_CONTACT "morse-devel@lists.gforge.inria.fr")
set(CPACK_RESOURCE_FILE_README ${CMAKE_CURRENT_SOURCE_DIR}/README.org)
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENCE.txt)
set(CPACK_SOURCE_IGNORE_FILES "plasma-conversion;build;.cproject;.settings;.dir-locals.el;.project;.pydevproject;.svn;.git;.gitmodules;.gitlab-ci.yml")
set(CPACK_SOURCE_IGNORE_FILES "/plasma-conversion/;/build*;.cproject;.settings;.dir-locals.el;.project;.pydevproject;/.git*")
include(CPack)
###############################################################################
......
......@@ -7,9 +7,9 @@
set(CTEST_PROJECT_NAME "Chameleon")
set(CTEST_NIGHTLY_START_TIME "00:00:00 GMT")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "cdash.inria.fr")
set(CTEST_DROP_LOCATION "/CDash/submit.php?project=chameleon")
set(CTEST_DROP_METHOD "https")
set(CTEST_DROP_SITE "my.cdash.org")
set(CTEST_DROP_LOCATION "/submit.php?project=Chameleon")
set(CTEST_DROP_SITE_CDASH TRUE)
#--------------------------------------------------------------------
......
chameleon-1.0.0
chameleon-0.9.2
------------------------------------------------------------------------
- chameleon is now hosted on gitlab: https://gitlab.inria.fr/solverstack/chameleon
- MAGMA kernels are no longer supported in Chameleon
- Add SVD/EVD drivers based on parallel first stage, and sequential LAPACK second stage and solve
- Add First stage algorithm fo r the SVD/EVD solvers
......
......@@ -4,7 +4,7 @@
#
# @copyright 2009-2014 The University of Tennessee and The University of
# Tennessee Research Foundation. All rights reserved.
# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# @copyright 2012-2019 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
# @copyright 2016-2018 KAUST. All rights reserved.
#
......
......@@ -6,8 +6,8 @@
# gitlab-ci pipeline badge
#+HTML:<a href="https://gitlab.inria.fr/solverstack/chameleon/commits/master"><img alt="pipeline status"src="https://gitlab.inria.fr/solverstack/chameleon/badges/master/pipeline.svg"/></a>
# Coverity badge
#+HTML:<a href="https://scan.coverity.com/projects/chameleon"><img alt="Coverity Scan Build Status"src="https://scan.coverity.com/projects/10590/badge.svg"/></a>
# # Coverity badge
# #+HTML:<a href="https://scan.coverity.com/projects/chameleon"><img alt="Coverity Scan Build Status"src="https://scan.coverity.com/projects/10590/badge.svg"/></a>
Chameleon is a C library providing parallel algorithms to perform
BLAS/LAPACK operations exploiting fully modern architectures.
......
......@@ -60,14 +60,14 @@ developers must follow and that should be read by contributors.
Chameleon library started as an extension of the PLASMA library so
that code naming and writting conventions should follow [[https://bitbucket.org/icl/plasma][PLASMA]] ones.
* Packaging
* Releasing
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.
2) has an up-to-date ChangeLog file,
3) is published on internet as a GitLab release plus an associated
git tag.
** Test Chameleon before packaging
......@@ -76,29 +76,29 @@ developers must follow and that should be read by contributors.
org-mode file) to be used on PlaFRIM plus some specific ctest
tests.
** Source tarball generation
This step requires to generate the [[sec:doc][documentation]].
#+begin_src sh
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
#+end_src
A tarball chameleon-major.minor.patch.tar.gz should be generated
and contains the users_guide documentation.
** Publish the release on internet
A git tag must be first created, for example
#+begin_src sh
git tag -a v1.0.0 -m 'Version 1.0.0'
git push --tags
#+end_src
Then in the Chameleon *Tags* tab,
https://gitlab.inria.fr/solverstack/chameleon/tags, edit the
release notes and attach the tarball previously generated.
** Release generation and publication
Releases are published on GitLab automatically through the gitlab-ci
job /release/.
To create a release the workflow is:
1) ensure chameleon is ready for this release, /i.e./
- all required features are well integrated
- all tests succeed
- the ChangeLog file is up-to-date
- the version number is up-to-date in all source files
2) create and push a branch /release-major.minor.patch/,
major.minor.patch being the version number for the release
3) the gitlab-ci job should produce a new release and tag according
to the version number
- releases: https://gitlab.inria.fr/solverstack/chameleon/releases
- tags: https://gitlab.inria.fr/solverstack/chameleon/tags
4) delete the branch
* CDash tests dashboard
To see details about the tests performed during the [[