Commit 860a7206 authored by Mathieu Faverge's avatar Mathieu Faverge

Merge branch 'doc' into 'master'

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

See merge request !147
parents 75528e23 29ed46b7
......@@ -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