Skip to content

Commit

Permalink
0.7.1 release (#190)
Browse files Browse the repository at this point in the history
* Start on test_micm_box_model.F90.

* Start on test_micm_box_model.F90.

* In test_micm_box_model, create micm_t solver.

* Initialize some variables.

* Use configs/analytical.

* Use configs/analytical.

* Added micm solve.

* Start on Chapter 2.

* Literal include for test_micm_box_model.

* Literal include json configs.

* Updated CMakeLists.txt.

* Add config file description.

* Tutorial Chapter 2.

* Tutorial Chapter 2.

* Minor formatting.

* Minor formatting.

* Added link to MICM docs, test program output.

* Start on tutorial CMakeLists.txt.

* Created MUSICA/tutorial subdir.

* Added MUSICA_INCLUDE_DIR and MUSICA_LIBRARY_DIR.

* Switch to MUSICA_INSTALL_DIR/include /lib.

* Include musicaConfig.cmake.

* Include addtional cmake files.

* Added Fortran to CMakeList LANGUAGES.

* Added target_link_directories and libraries.

* Added find_package(musica).

* Comment use_package(musica_fortran), not working.

* Added cmake usage comments.

* Restored find_package for musica and musica_fortran.

* Start on Tutorial Chapter 0 text.

* Added literal include of Ch 0 CMakeLists.txt.

* Chapter 0 intro.

* Tutorial Chapter 0.

* update cmake options

* set vector matrix dimension

* Use music-fortran instead of musica_fortran.

* Added test_micm_box_model executable.

* Updated test_micm_box_model with new micm solve.

* Added deallocate( micm ) in test_micm_box_model.

* Auto-format code using Clang-Format (#170)

Co-authored-by: GitHub Actions <actions@github.com>

* pypi version badge

* fair software checklist badge

* compilation flag for grid cells, vector matrix dimension

* c api for vector ordered matrix

* add vector matrix test

* update fortran api

* chage the build type

* update python wrapper

* resolve memory leak

* fix intel docker

* tuvx on

* micm git tag

* edit erorr

* opdate the option name for open mp

* remove open mp fortran in c tests

* edit comment

* Removed find_package lines in this version.

* replace unique ptr T to T

* replace tempalte with  auto

* Add profiles for TUV-x (#171)

* add profiles for TUV-x

* update TUV-x commit

* split tuvx source into separate headers and modules

* split TUV-x interface into separate modules

* allow grid creation

* fix grid updates

* update fortran tuvx wrapper

* address cross-compiler issue

* fix invalid free

* update actions

* fix grid map ownership problem

* finish profile and profile_map

* address review comments

* Auto-format code using Clang-Format

* add map header

* expose solver type enum to python

* back to template

* back to template

* enum for solver type

* enum solver type for fortran

* add fortran 2023 feature comment

* pass num grid cells to constructor

* code clean up

* space uniformly

* specify enabled languages in top level cmake

* comment out the tuvx openmp tests

* revert back

* revert back

* Added tutorial/demo.f90 as a unit test.

* Auto-format code using Clang-Format

* Set demo.f90 path with PROJECT_SOURCE_DIR.

* Added tutorial dir .dockerignore.

* add radiator wrapper

* working-on file of radiator header

* fix typos, and incomplete parts

* code clean up

* add radiator src

* fix bugs

* fix bugs

* Moved tutorial subdir to fortran/test/tutorial.

* Removed demo_c executable.

* Updated docs.

* fix bugs in c sources

* fix bugs in f90 sources

* fix bugs

* temp add radiator test

* fix bugs

* passed test

* incomplete test

* temp file for transfer

* working version

* fix test

* fix bugs

* fix fortran bugs

* add radiator fortran test

* test tag

* add fortran test

* add tests back:

* fix docker integration

* revert cmake

* clean up

* code cleanup

* code clean up

* revert back to main branch

* 159 create an action to publish to pypi when we make a release (#184)

* testing automated pypi release

* trying to appropriately name the wheels

* only need one version of python to build wheels for all other versions

* trying to get macos to build successfully

* excluding universal2 arch build for macos

* seeing if arm64 works

* trying to skip musllinux

* trying to choose linux architecture support

* trying to skip musllinux again

* adding intel based mac build

* trying to set the osx deployment target

* trying a different way

* that wasn't it

* trying to force a minimum of 10.15 for macos?

* setting action trigger

* undoing version change

* correcting project name

* Address review comments

* fix tuvx git tag

* Python error checking (#189)

* adding error checking, some debug statements for the python wrapper

* adding error checking to python, updating micm tag

* getting tests to pass

* correcting a fortran test

* newest tuvx commit

* I don't know what's wrong with nvidia

* Updating citation version number

---------

Co-authored-by: David Fillmore <fillmore@ucar.edu>
Co-authored-by: Jiwon Gim <jiwongim@ucar.edu>
Co-authored-by: David Fillmore <1524012+dwfncar@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Actions <actions@github.com>
Co-authored-by: Matt Dawson <mattldawson@gmail.com>
Co-authored-by: Jiwon Gim <55209567+boulderdaze@users.noreply.github.com>
  • Loading branch information
8 people authored Aug 7, 2024
1 parent bd9019f commit 98410c6
Show file tree
Hide file tree
Showing 77 changed files with 7,933 additions and 1,365 deletions.
2 changes: 1 addition & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@
!python/
!pyproject.toml
!LICENSE
!README.md
!README.md
85 changes: 85 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Publish Python Package

on:
workflow_dispatch:
release:
types:
- published

jobs:
build_sdist:
name: Build SDist
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Build SDist
run: pipx run build --sdist

- name: Check metadata
run: pipx run twine check dist/*

- uses: actions/upload-artifact@v4
with:
name: cibw-sdist
path: dist/*.tar.gz

build_wheels:
name: Build wheels on ${{ matrix.os }} with Python ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.12"]

steps:
- uses: actions/checkout@v4
with:
submodules: true

- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- uses: pypa/cibuildwheel@v2.17
env:
CIBW_ARCHS_MACOS: arm64 x86_64
CIBW_SKIP: cp27-* cp34-* cp35-* cp36-* *musllinux*
CIBW_BUILD: cp37-* cp38-* cp39-* cp310-* cp311-* cp312-*

- name: Verify clean directory
run: git diff --exit-code
shell: bash

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-py${{ matrix.python-version }}
path: wheelhouse/*.whl

upload_all:
name: Upload release
needs: [build_wheels, build_sdist]
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/musica
permissions:
id-token: write

steps:
- uses: actions/setup-python@v5
with:
python-version: "3.x"

- uses: actions/download-artifact@v4
with:
pattern: cibw-*
path: dist
merge-multiple: true

- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
2 changes: 1 addition & 1 deletion .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
strategy:
matrix:
gcc_version: [12, 13, 14]
build_type: [Release]
build_type: [Debug, Release]
env:
CXX: g++-${{ matrix.gcc_version }}
CC: gcc-${{ matrix.gcc_version }}
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,4 @@ number: 10
page: "E1743 - E1760"
doi: "10.1175/BAMS-D-19-0331.1"
url: "https://journals.ametsoc.org/view/journals/bams/101/10/bamsD190331.xml"
version: 0.7.0
version: 0.7.1
4 changes: 3 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.21)

# must be on the same line so that pyproject.toml can correctly identify the version
project(musica-distribution VERSION 0.7.0)
project(musica-distribution VERSION 0.7.1)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH};${PROJECT_SOURCE_DIR}/cmake)
set(CMAKE_USER_MAKE_RULES_OVERRIDE ${CMAKE_MODULE_PATH}/SetDefaults.cmake)
Expand Down Expand Up @@ -30,6 +30,8 @@ option(MUSICA_BUILD_DOCS "Build the documentation" OFF)
option(MUSICA_ENABLE_MICM "Enable MICM" ON)
option(MUSICA_ENABLE_TUVX "Enable TUV-x" ON)

set(MUSICA_SET_MICM_VECTOR_MATRIX_SIZE "1" CACHE STRING "Set MICM vector-ordered matrix dimension")

cmake_dependent_option(
MUSICA_ENABLE_PYTHON_LIBRARY "Adds pybind11, a lightweight header-only library that exposes C++ types in Python and vice versa" OFF "MUSICA_BUILD_C_CXX_INTERFACE" OFF)

Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
[![windows](https://github.com/NCAR/musica/actions/workflows/windows.yml/badge.svg)](https://github.com/NCAR/musica/actions/workflows/windows.yml)
[![pip](https://github.com/NCAR/musica/actions/workflows/pip.yml/badge.svg)](https://github.com/NCAR/musica/actions/workflows/pip.yml)
[![DOI](https://zenodo.org/badge/550370528.svg)](https://zenodo.org/doi/10.5281/zenodo.7458559)
[![PyPI version](https://badge.fury.io/py/musica.svg)](https://pypi.org/p/musica)
[![FAIR checklist badge](https://fairsoftwarechecklist.net/badge.svg)](https://fairsoftwarechecklist.net/v0.2?f=31&a=32113&i=22322&r=123)

Multi-Scale Infrastructure for Chemistry and Aerosols

Expand Down
5 changes: 3 additions & 2 deletions cmake/dependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ endif()
if (MUSICA_ENABLE_MICM AND MUSICA_BUILD_C_CXX_INTERFACE)

set_git_default(MICM_GIT_REPOSITORY https://github.com/NCAR/micm.git)
set_git_default(MICM_GIT_TAG v3.5.0)
set_git_default(MICM_GIT_TAG 6b1c58a9be14095e3f3c6df403c91c4e800f23de)

FetchContent_Declare(micm
GIT_REPOSITORY ${MICM_GIT_REPOSITORY}
Expand All @@ -60,6 +60,7 @@ if (MUSICA_ENABLE_MICM AND MUSICA_BUILD_C_CXX_INTERFACE)
)
set(MICM_ENABLE_TESTS OFF)
set(MICM_ENABLE_EXAMPLES OFF)
set(MICM_DEFAULT_VECTOR_MATRIX_SIZE ${MUSICA_SET_MICM_VECTOR_MATRIX_SIZE})

FetchContent_MakeAvailable(micm)
endif()
Expand All @@ -74,7 +75,7 @@ if (MUSICA_ENABLE_TUVX AND MUSICA_BUILD_C_CXX_INTERFACE)
set(TUVX_INSTALL_INCLUDE_DIR ${MUSICA_INSTALL_INCLUDE_DIR} CACHE STRING "" FORCE)

set_git_default(TUVX_GIT_REPOSITORY https://github.com/NCAR/tuv-x.git)
set_git_default(TUVX_GIT_TAG v0.9.0)
set_git_default(TUVX_GIT_TAG 674ee1e72853bb44d23c36602fa73c955b2f021d)

FetchContent_Declare(tuvx
GIT_REPOSITORY ${TUVX_GIT_REPOSITORY}
Expand Down
2 changes: 1 addition & 1 deletion cmake/test_util.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ function(create_standard_test_cxx)
add_executable(test_${TEST_NAME} ${TEST_SOURCES})
target_link_libraries(test_${TEST_NAME} PUBLIC musica::musica GTest::gtest_main)
if(MUSICA_ENABLE_OPENMP)
target_link_libraries(test_${TEST_NAME} PUBLIC OpenMP::OpenMP_CXX OpenMP::OpenMP_Fortran)
target_link_libraries(test_${TEST_NAME} PUBLIC OpenMP::OpenMP_CXX)
endif()
if(NOT DEFINED TEST_WORKING_DIRECTORY)
set(TEST_WORKING_DIRECTORY "${CMAKE_BINARY_DIR}")
Expand Down
2 changes: 1 addition & 1 deletion configs/chapman/species.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
{
"name": "M",
"type": "CHEM_SPEC",
"tracer type": "CONSTANT"
"tracer type": "THIRD_BODY"
},
{
"name": "O2",
Expand Down
1 change: 0 additions & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ RUN dnf -y update \
gfortran \
gdb \
git \
lapack-devel \
lcov \
make \
netcdf-fortran-devel \
Expand Down
4 changes: 2 additions & 2 deletions docker/Dockerfile.fortran-gcc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM fedora:35

ARG BUILD_TYPE=release
ARG BUILD_TYPE=Release

RUN dnf -y update \
&& dnf -y install \
Expand All @@ -13,7 +13,6 @@ RUN dnf -y update \
git \
hdf5-devel \
json-devel \
lapack-devel \
lcov \
libcurl-devel \
m4 \
Expand All @@ -38,6 +37,7 @@ RUN cd musica \
&& cmake -S . \
-B build \
-D CMAKE_BUILD_TYPE=${BUILD_TYPE} \
-D MUSICA_GIT_TAG=${MUSICA_GIT_TAG} \
-D MUSICA_BUILD_FORTRAN_INTERFACE=ON \
-D MUSICA_ENABLE_MEMCHECK=ON \
&& cd build \
Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile.fortran-gcc.integration
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ RUN dnf -y update \
git \
hdf5-devel \
json-devel \
lapack-devel \
lcov \
libcurl-devel \
m4 \
Expand Down Expand Up @@ -50,6 +49,7 @@ RUN cd musica/fortran/test/fetch_content_integration \
-D MUSICA_GIT_TAG=${MUSICA_GIT_TAG} \
-D MUSICA_ENABLE_MICM=ON \
-D MUSICA_ENABLE_TUVX=OFF \
-D MUSICA_ENABLE_MEMCHECK=ON \
&& make -j

WORKDIR musica/fortran/test/fetch_content_integration/build
8 changes: 4 additions & 4 deletions docker/Dockerfile.fortran-intel
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ ARG MUSICA_GIT_TAG=main
RUN apt update \
&& apt -y install \
cmake \
cmake-curses-gui \
curl \
gcc \
gfortran \
Expand Down Expand Up @@ -50,7 +51,7 @@ COPY . musica
RUN cd musica \
&& cmake -S . \
-B build \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_BUILD_TYPE=${BUILD_TYPE} \
&& cd build \
&& make install -j

Expand All @@ -65,8 +66,7 @@ RUN cd musica/fortran/test/fetch_content_integration \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_EXE_LINKER_FLAGS="-Wl,--copy-dt-needed-entries" \
-D MUSICA_GIT_TAG=${MUSICA_GIT_TAG} \
-D MUSICA_ENABLE_MEMCHECK=ON \
&& make -j

WORKDIR musica/fortran/test/fetch_content_integration/build
RUN cp -r /musica/build/_deps/tuvx-src/examples/ .
RUN cp -r /musica/build/_deps/tuvx-src/data/ .
WORKDIR musica/fortran/test/fetch_content_integration/build
1 change: 1 addition & 0 deletions docker/Dockerfile.fortran-nvhpc
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ RUN cd musica/fortran/test/fetch_content_integration \
-D CMAKE_BUILD_TYPE=${BUILD_TYPE} \
-D CMAKE_EXE_LINKER_FLAGS="-Wl,--copy-dt-needed-entries" \
-D MUSICA_GIT_TAG=${MUSICA_GIT_TAG} \
-D MUSICA_ENABLE_MEMCHECK=ON \
&& make -j

WORKDIR musica/fortran/test/fetch_content_integration/build
5 changes: 3 additions & 2 deletions docker/Dockerfile.memcheck
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
FROM fedora:35

ARG BUILD_TYPE=Debug

RUN dnf -y update \
&& dnf -y install \
cmake \
gcc-c++ \
gfortran \
gdb \
git \
lapack-devel \
lcov \
make \
netcdf-fortran-devel \
Expand All @@ -22,7 +23,7 @@ COPY . musica
RUN cd musica \
&& cmake -S . \
-B build \
-D CMAKE_BUILD_TYPE=Debug \
-D CMAKE_BUILD_TYPE=${BUILD_TYPE} \
-D MUSICA_ENABLE_MEMCHECK=ON \
&& cd build \
&& make install -j 8
Expand Down
9 changes: 5 additions & 4 deletions docker/Dockerfile.mpi
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
FROM fedora:35

ARG BUILD_TYPE=Debug

RUN dnf -y update \
&& dnf install -y sudo \
&& adduser test_user \
Expand All @@ -14,7 +16,6 @@ RUN sudo dnf -y install \
gcc-c++ \
gfortran \
git \
lapack-devel \
lcov \
make \
netcdf-fortran-devel \
Expand All @@ -38,9 +39,9 @@ RUN sudo chown -R test_user.test_user musica
RUN cd musica \
&& cmake -S . \
-B build \
-D CMAKE_BUILD_TYPE=debug \
-D ENABLE_TESTS=ON \
-D ENABLE_MPI=ON \
-D CMAKE_BUILD_TYPE=${BUILD_TYPE} \
-D MUSICA_ENABLE_TESTS=ON \
-D MUSICA_ENABLE_MPI=ON \
-D CMAKE_Fortran_COMPILER=/usr/lib64/openmpi/bin/mpif90 \
-D CMAKE_C_COMPILER=/usr/lib64/openmpi/bin/mpicc \
-D CMAKE_CXX_COMPILER=/usr/lib64/openmpi/bin/mpicxx \
Expand Down
11 changes: 6 additions & 5 deletions docker/Dockerfile.mpi_openmp
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
FROM fedora:35

ARG BUILD_TYPE=Debug

RUN dnf -y update \
&& dnf install -y sudo \
&& adduser test_user \
Expand All @@ -14,7 +16,6 @@ RUN sudo dnf -y install \
gcc-c++ \
gfortran \
git \
lapack-devel \
lcov \
make \
netcdf-fortran-devel \
Expand All @@ -38,10 +39,10 @@ RUN sudo chown -R test_user.test_user musica
RUN cd musica \
&& cmake -S . \
-B build \
-D CMAKE_BUILD_TYPE=debug \
-D ENABLE_MPI=ON \
-D ENABLE_OPENMP=ON \
-D ENABLE_TESTS=ON \
-D CMAKE_BUILD_TYPE=${BUILD_TYPE} \
-D MUSICA_ENABLE_MPI=ON \
-D MUSICA_ENABLE_OPENMP=ON \
-D MUSICA_ENABLE_TESTS=ON \
-D CMAKE_Fortran_COMPILER=/usr/lib64/openmpi/bin/mpif90 \
-D CMAKE_C_COMPILER=/usr/lib64/openmpi/bin/mpicc \
-D CMAKE_CXX_COMPILER=/usr/lib64/openmpi/bin/mpicxx \
Expand Down
9 changes: 5 additions & 4 deletions docker/Dockerfile.openmp
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
FROM fedora:35

ARG BUILD_TYPE=Debug

RUN dnf -y update \
&& dnf install -y sudo \
&& adduser test_user \
Expand All @@ -14,7 +16,6 @@ RUN sudo dnf -y install \
gcc-c++ \
gfortran \
git \
lapack-devel \
lcov \
make \
netcdf-fortran-devel \
Expand All @@ -37,9 +38,9 @@ RUN sudo chown -R test_user.test_user musica
RUN cd musica \
&& cmake -S . \
-B build \
-D CMAKE_BUILD_TYPE=debug \
-D ENABLE_OPENMP:BOOL=TRUE \
-D ENABLE_TESTS=ON \
-D CMAKE_BUILD_TYPE=${BUILD_TYPE} \
-D MUSICA_ENABLE_OPENMP=ON \
-D MUSICA_ENABLE_TESTS=ON \
-D CMAKE_Fortran_COMPILER=/usr/lib64/openmpi/bin/mpif90 \
-D CMAKE_C_COMPILER=/usr/lib64/openmpi/bin/mpicc \
-D CMAKE_CXX_COMPILER=/usr/lib64/openmpi/bin/mpic++ \
Expand Down
Loading

0 comments on commit 98410c6

Please sign in to comment.