Skip to content

Commit f014a4a

Browse files
author
Damian Rouson
committed
Merge branch 'master' into co_broadcast-derived-type
2 parents 4176b36 + 2dc92d1 commit f014a4a

File tree

16 files changed

+156
-155
lines changed

16 files changed

+156
-155
lines changed

.VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
$Format:%d%n%n$
22
# Fall back version, probably last release:
3-
2.7.0
3+
2.7.1
44

55
# OpenCoarrays version file. This project uses semantic
66
# versioning. For details see http://semver.org

.github/FUNDING.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# These are supported funding model platforms
2+
3+
github: [zbeekman, rouson, afanfa]
4+
# patreon: # Replace with a single Patreon username
5+
# open_collective: # Replace with a single Open Collective username
6+
# ko_fi: # Replace with a single Ko-fi username
7+
# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
custom: http://www.sourceryinstitute.org/store/p5/Donation.html

.travis.yml

Lines changed: 48 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,67 @@
11
---
2-
language: c
2+
language: minimal
33

44
os: osx
55

66
env:
77
global:
8-
# - ZERO_AR_DATE=1
8+
- ZERO_AR_DATE=1
99
- TZ=UTC
1010
- CACHE="${HOME}/.local"
11-
- MPICH_VER="3.2.1"
11+
- MPICH_VER="3.3"
1212
- MPICH_URL_HEAD="https://www.mpich.org/static/downloads/${MPICH_VER}"
1313
- MPICH_URL_TAIL="mpich-${MPICH_VER}.tar.gz"
14-
- MPICH_GCC6_BOT_URL_HEAD="https://github.com/sourceryinstitute/OpenCoarrays/files/1956499/"
15-
- MPICH_GCC7_BOT_URL_HEAD="https://github.com/sourceryinstitute/OpenCoarrays/files/1956441/"
16-
- MPICH_BOT_URL_TAIL="mpich-3.2.1_1.high_sierra.bottle.1.tar.gz"
1714
- BUILD_TYPES="Debug RelWithDebInfo Release CodeCoverage"
1815
- PATH="${HOME}/.local/bin:$PATH"
19-
# matrix:
20-
# - GCC="6 7" OSX_PACKAGES="gcc@7 gcc@6 cmake shellcheck" BUILD_TYPE="cmake"
2116

2217
matrix:
2318
fast_finish: true
2419
include:
2520
- &macOS
2621
os: osx
22+
osx_image: xcode10.2
2723
env:
2824
- BUILD_TYPE="InstallScript"
2925
GCC=9
30-
OSX_PACKAGES="gcc shellcheck cmake mpich"
31-
# cmake should be removed, but we should be installing binaries
32-
# because building from source takes forever
33-
# -
34-
# <<: *macOS
35-
# env:
36-
# - GCC=8
37-
# BUILD_TYPES="debug RelWithDebInfo Release"
38-
# OSX_PACKAGES="gcc openmpi shellcheck cmake"
26+
CC=gcc-9
27+
CXX=g++-9
28+
FC=gfortran-9
29+
addons:
30+
homebrew:
31+
packages:
32+
- gcc
33+
- mpich
34+
- shellcheck
35+
update: true
36+
- &macOS_allowed_failure
37+
<<: *macOS
38+
env:
39+
- GCC=9
40+
FC=gfortran-${GCC}
41+
BUILD_TYPES="Release CodeCoverage"
42+
addons:
43+
homebrew:
44+
packages:
45+
- cmake
46+
- gcc
47+
- openmpi
48+
- shellcheck
49+
update: true
50+
-
51+
<<: *macOS
52+
env:
53+
- GCC=9
54+
FC=gcc-${GCC}
55+
CC=gcc-${GCC}
56+
CXX=g++-${GCC}
57+
addons:
58+
homebrew:
59+
brewfile: true
60+
update: true
3961
- &ubuntu
4062
os: linux
4163
sudo: false
42-
dist: trusty
64+
dist: xenial
4365
env:
4466
- GCC=8
4567
cache:
@@ -50,7 +72,8 @@ matrix:
5072
apt:
5173
sources: &linuxsrcs
5274
- ubuntu-toolchain-r-test
53-
- george-edison55-precise-backports
75+
- sourceline: 'deb https://apt.kitware.com/ubuntu/ xenial main'
76+
key_url: 'https://apt.kitware.com/keys/kitware-archive-latest.asc'
5477
packages: &gcc8pkgs
5578
- gcc-8
5679
- gfortran-8
@@ -92,11 +115,12 @@ matrix:
92115

93116
allow_failures:
94117
- *linux_allowed_failure
95-
- osx
118+
- *macOS_allowed_failure
119+
120+
# macOS allowed failure due to random test timeouts w/ clang & OpenMPI
96121

97122
before_install:
98123
- source developer-scripts/travis/before_install.all.sh
99-
- developer-scripts/travis/before_install.${TRAVIS_OS_NAME}.sh
100124

101125
install:
102126
- pwd
@@ -105,6 +129,9 @@ install:
105129
script:
106130
- pwd
107131
- export SOURCE_DATE_EPOCH=$(git show -s --format=%ct $TRAVIS_COMMIT)
132+
- export LC_ALL=C
133+
- export TZ=UTC
134+
- export ZERO_AR_DATE=1
108135
- echo "SOURCE_DATE_EPOCH = ${SOURCE_DATE_EPOCH}"
109136
- ./developer-scripts/travis/test-script.${BUILD_TYPE:-cmake}.sh
110137

@@ -113,56 +140,6 @@ after_script:
113140
- for version in ${GCC}; do bash <(curl -s https://codecov.io/bash) -x $(type -P gcov-${GCC}) >> coverage.log 2>> coverage.err || true ; done
114141
- tail coverage.log || true
115142
- tail coverage.err || true
116-
- |
117-
if [[ "${TRAVIS_TAG}" ]]; then
118-
if [[ "v${TRAVIS_TAG}" != "v$(sed -n '/[0-9]\{1,\}\(\.[0-9]\{1,\}\)\{1,\}/{s/^\([^.]*\)\([0-9]\{1,\}\(\.[0-9]\{1,\}\)\{1,\}\)\(.*\)/\2/p;q;}' .VERSION)" ]]; then
119-
echo "ERROR: You are trying to tag a new release but have a version missmatch in \`.VERSION\`"
120-
false # throw an error
121-
fi
122-
fi
123-
124-
# before_deploy:
125-
# - git archive -v --prefix "OpenCoarrays-${TRAVIS_TAG}/" -o "OpenCoarrays-${TRAVIS_TAG}.tar.gz" ${TRAVIS_TAG}
126-
# - |
127-
# echo '# To verify cryptographic checksums `shasum -c opencoarrays-'"${TRAVIS_TAG}"'-SHA256.txt` on Mac OS X,' > "opencoarrays-${TRAVIS_TAG}-SHA256.txt
128-
# echo '# `sha256sum -c opencoarrays-'"${TRAVIS_TAG}"'-SHA256.txt` on Linux.' >> "opencoarrays-${TRAVIS_TAG}-SHA256.txt
129-
# if [[ $(uname -s) == Darwin ]]; then
130-
# shasum -a 256 "OpenCoarrays-${TRAVIS_TAG}.tar.gz" >> "opencoarrays-${TRAVIS_TAG}-SHA256.txt
131-
# else
132-
# sha256sum "OpenCoarrays-${TRAVIS_TAG}.tar.gz" >> "opencoarrays-${TRAVIS_TAG}-SHA256.txt
133-
# fi
134-
# - |
135-
# openssl aes-256-cbc -K ${encrypted_ef4535c39461_key} -iv ${encrypted_ef4535c39461_iv} -in subkey-328B3A0E-secret.asc.enc -out ./subkey-328B3A0E-secret.asc -d
136-
# gpg --allow-secret-key-import --import ./subkey-328B3A0E-secret.asc && rm subkey-328B3A0E-secret.asc
137-
# rm subkey-328B3A0E-secret.* || true
138-
# unset encrypted_ef4535c39461_key || true
139-
# unset encrypted_ef4535c39461_iv || true
140-
# gpg --armor --detach-sign -u 328B3A0E --comment 'Mac users can use GPGTools - https://gpgtools.org' \
141-
# --comment "Download Izaak Beekman's GPG public key from your" \
142-
# --comment 'trusted key server or from' \
143-
# --comment 'https://izaakbeekman.com/izaak.pubkey.txt' \
144-
# --comment 'Next add it to your GPG keyring, e.g.,' \
145-
# --comment '`curl https://izaakbeekman.com/izaak.pubkey.txt | gpg --import`' \
146-
# --comment "Make sure you have verified that the release archive's" \
147-
# --comment 'SHA256 checksum matches the provided' \
148-
# --comment "opencoarrays-${TRAVIS_TAG}-SHA256.txt and ensure that this file" \
149-
# --comment "and it's signature are in the same directory. Then" \
150-
# --comment 'verify with:' \
151-
# --comment '`gpg --verify opencoarrays-'"${TRAVIS_TAG}"'-SHA256.txt.asc`' \
152-
# "opencoarrays-${TRAVIS_TAG}-SHA256.txt"
153-
154-
# deploy:
155-
# provider: releases
156-
# api_key:
157-
# secure: lBj4VgKhU74xfzPc0CDIji6cFrN/xEQIHLHjMcnDPWEF5JQe79aunMS5qiYu5ttve6khGI1WMFEe7clUO3TXiDUPyRMS4M8B2q3fuvUIsIbYgWcKq7ut+x6+dEQDj4DE3yWpPb8IDugWFp4vno1eQ2Rid1yr6Vn+rjnbE2i6z5SkXPnIv1ziQ9G+TF4ChUA8IOd1T78gJmML86P0rbt6nW8eVuJbza2y1ggHAY//q/b6rrbOFw5PqiOBqZ/BRrKJ5d2U2mvsoZtNn4OYyXw4eKEvNDIydwaIZROXfPRmN9zJ5G7+01QA5jlXpq17KfPBr7MXkn7nrQ5q9Z2ji4hRHk/AFzM/etfl1k4WCshYs13NlORpnU0vZtCMmmmsXWxj2kpsOHLWZQKdUAPs3olMPIG6aVnO5Abk1vrVSNy/ZeknbBTKCGScET1qRSaj6d43ynBwGkqHgaJdLBAwGe0Dpap6SsLGsAg56ZqHTngGlXB1KsbJKMkUsSC5RAgEuh9m55nsMaRlTYTrv+YADAQts7lV8yMCciMeJlrd3EYryyn4ZY1O82eOofhZZ5vQUktbXHtg6YnzguFwQyn+9yY/CQfi/vu2Aoq79NJEO/9UJ82ogn6gOoIebzb0xgIONjw4M68luR2U1CXtibzSYKWLGTeOj43khqZdbOpp6xncIv0=
158-
# file:
159-
# - "OpenCoarrays-${TRAVIS_TAG}.tar.gz"
160-
# - "opencoarrays-${TRAVIS_TAG}-SHA256.txt"
161-
# - "opencoarrays-${TRAVIS_TAG}-SHA256.txt.asc"
162-
# skip_cleanup: true
163-
# on:
164-
# tags: true
165-
# repo: sourceryinstitute/opencoarrays
166143

167144
notifications:
168145
webhooks:

Brewfile

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
1-
# Brewfile to install OpenCoarrays prerequisites with [Homebrew] or [Linuxbrew].
1+
# Brewfile to install OpenCoarrays prerequisites with [Homebrew].
22
#
33
# TL;DR: `brew tap homebrew/bundle && brew bundle` to install prerequisites
44
#
55
# Homebrew for Mac OS X can be installed via:
66
# `/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"`
7-
# Linux brew (lives in userland, no sudo required) can be installed with:
8-
# `ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/linuxbrew/go/install)"`
7+
# Homebrew for Linux (lives in userland, no sudo required) can be installed with:
8+
# `sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"`
99
#
1010
# Once Homebrew/Linuxbrew is installed, execute the following commands to install the required prerequisites:
1111
# `brew tap homebrew/bundle && brew bundle`
1212
#
1313

1414
brew 'cmake'
1515
brew 'gcc'
16-
brew 'mpich', args: ['cc=gcc-8', 'build-from-source']
17-
brew 'opencoarrays', args: ['cc=gcc-8', 'build-from-source']
16+
brew 'mpich' #, args: ['cc=gcc-9', 'build-from-source', 'verbose']
17+
# brew 'opencoarrays', args: ['cc=gcc-9', 'build-from-source', 'verbose']
1818

1919
# [Homebrew]: http://brew.sh
20-
# [Linuxbrew]: http://linuxbrew.sh

CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -697,8 +697,9 @@ function(add_caf_test name num_caf_img test_target)
697697
endif()
698698
endif()
699699
if( openmpi)
700-
set (test_parameters ${test_parameters} --allow-run-as-root)
701-
message( STATUS "Open-MPI back end detected, passing --allow-run-as-root to allow tests to pass when run with sudo or as root." )
700+
if(NOT DEFINED ENV{TRAVIS})
701+
set (test_parameters ${test_parameters} --allow-run-as-root)
702+
endif()
702703
endif()
703704
set(test_parameters -np ${num_caf_img} ${test_parameters})
704705
if(DEFINED ARGN)

INSTALL.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,16 @@ and re-running CMake.
7575
## End-User Installation ##
7676

7777
Most users will find it easiest and fastest to use package management
78-
software to install OpenCoarrays. Package management options for
78+
software to install OpenCoarrays. Below is the status of OpenCoarrays
79+
in various package managers. If you do not see your favorite package
80+
manager listed or it is badly out of date, please reach out and ask
81+
for it to be included or updated, or contribute it yourself. We are
82+
happy to work with package managers to resolve issues, and adapt our
83+
build system to play nicely so they don't have to maintain patches.
84+
85+
[![Packaging status][repology-badge]][OC-on-repology]
86+
87+
Package management options for
7988
macOS, Windows, and Linux are described first below. Also described
8089
below are options for installing via the Sourcery Institute virtual
8190
machine or via the bash scripts included that are in the OpenCoarrays
@@ -423,6 +432,9 @@ file.
423432

424433
[URLs]: #
425434

435+
[OC-on-repology]: https://repology.org/project/opencoarrays/versions
436+
[repology-badge]: https://repology.org/badge/vertical-allrepos/opencoarrays.svg
437+
426438
[FreeBSD ports/packages installation information]: https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports.html
427439
[GH all releases badge]: https://img.shields.io/github/downloads/sourceryinstitute/OpenCoarrays/total.svg?style=flat-square
428440
[GH release badge]: https://img.shields.io/github/release/sourceryinstitute/OpenCoarrays.svg?style=flat-square

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,17 @@ The default [index.ipynb] notebook is read only, but you can
8787
execute it, copy it to make changes, or create an entirely
8888
new [CAF kernel][notebook kernel] notebook.
8989

90+
Packaged Version
91+
----------------
92+
93+
If you would like to be able to install OpenCoarrays through your
94+
favorite package manager, please ask them to add it, or contribute it
95+
yourself. If you see your favorite package manager has an outdated
96+
version, please ask them to update it, or contribute an update
97+
yourself.
98+
99+
[![Packaging status][repology-badge]][OC-on-repology]
100+
90101
Getting Started
91102
---------------
92103

@@ -189,6 +200,9 @@ to aid in development efforts.
189200
[Jupyter]: https://jupyter.org
190201
[index.ipynb]: https://nbviewer.jupyter.org/github/sourceryinstitute/jupyter-CAF-kernel/blob/master/index.ipynb
191202

203+
[OC-on-repology]: https://repology.org/project/opencoarrays/versions
204+
[repology-badge]: https://repology.org/badge/vertical-allrepos/opencoarrays.svg
205+
192206
[build img]: https://img.shields.io/travis/sourceryinstitute/OpenCoarrays.svg?style=flat-square "Build badge"
193207
[CI Master Branch]: https://travis-ci.org/sourceryinstitute/OpenCoarrays?branch=master "View Travis-CI builds"
194208
[download img]: https://img.shields.io/github/downloads/sourceryinstitute/OpenCoarrays/total.svg?style=flat-square "Download count badge"

cmake/InstallFileManifest.cmake

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
# This script will create and install an install manifest, including SHA256 hashes of each installed file
23
# Variables passed from CMake must be set with `install(CODE "set(...)")`
34

@@ -6,7 +7,7 @@ message(STATUS "Generating SHA256 checksumed receipt for all installed assets")
67
# Set receipt install destination
78
set(RECEIPT_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}")
89

9-
# Mimic cmake_install.cmake's handlin of components
10+
# Mimic cmake_install.cmake's handling of components
1011
if(CMAKE_INSTALL_COMPONENT)
1112
set(HASHED_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.SHA256.txt")
1213
else()
@@ -16,10 +17,15 @@ endif()
1617
# Clean out any old install manifest on re-installation, if it exists
1718
file(REMOVE "${CMAKE_BINARY_DIR}/${HASHED_INSTALL_MANIFEST}")
1819

20+
if(DEFINED ENV{DESTDIR})
21+
get_filename_component(ABS_DESTDIR "$ENV{DESTDIR}" ABSOLUTE)
22+
else()
23+
set(ABS_DESTDIR "")
24+
endif()
1925
# Loop over files computing hashes
2026
foreach(file IN LISTS CMAKE_INSTALL_MANIFEST_FILES)
21-
file(SHA256 "${file}" _file_sha256)
22-
file(RELATIVE_PATH FILE_REL_PATH "${RECEIPT_INSTALL_DIR}" "${file}")
27+
file(SHA256 "$ENV{DESTDIR}${file}" _file_sha256)
28+
file(RELATIVE_PATH FILE_REL_PATH "${ABS_DESTDIR}${RECEIPT_INSTALL_DIR}" "${ABS_DESTDIR}${file}")
2329
file(APPEND "${CMAKE_BINARY_DIR}/${HASHED_INSTALL_MANIFEST}" "${_file_sha256} ${FILE_REL_PATH}\n")
2430
endforeach()
2531
file(APPEND "${CMAKE_BINARY_DIR}/${HASHED_INSTALL_MANIFEST}"

developer-scripts/travis/install.osx.sh

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,7 @@ echo "Performing Travis-CI installation phase on macOS..."
2424
# Update and install via Homebrew on macOS
2525
brew update > /dev/null
2626

27-
brew install gcc || true
28-
brew link --overwrite gcc || true
29-
30-
for pkg in ${OSX_PACKAGES}; do
31-
brew ls --versions "${pkg}" >/dev/null || brew install "${pkg}" || brew link --overwrite "${pkg}"
32-
brew outdated "${pkg}" || brew upgrade "${pkg}"
33-
done
34-
35-
# Uninstall mpich and openmpi so that we can install our own version
36-
#brew uninstall --force --ignore-dependencies openmpi || true
37-
#brew uninstall --force --ignore-dependencies mpich || true
38-
39-
# Building CMake from source is very slow. We should be using binaries instead
40-
# if [[ "${BUILD_TYPE:-}" == InstallScript ]]; then # uninstall some stuff if present
41-
# brew uninstall --force --ignore-dependencies cmake || true
42-
# fi
27+
brew outdated
4328

4429
{
4530
mpif90 --version && mpif90 -show
@@ -51,4 +36,12 @@ done
5136
type -a cmake || echo "CMake not installed"
5237
cmake --version || true
5338

39+
echo "CC: ${CC:-none defined}"
40+
echo "\$CC --version:"
41+
${CC:-} --version || true
42+
43+
echo "FC: ${FC:-none-defined}"
44+
echo "\$FC --version:"
45+
${FC:-} --version || true
46+
5447
echo "Done."

0 commit comments

Comments
 (0)