Skip to content

Commit

Permalink
v0.7.0 (#584)
Browse files Browse the repository at this point in the history
Merge develop to master for release of v0.7.0

[ committed by @al-rigazzi ]
[ reviewed by @juliaputko @AlyssaCote ]
  • Loading branch information
al-rigazzi authored May 15, 2024
2 parents 265916c + ac80685 commit 5039699
Show file tree
Hide file tree
Showing 291 changed files with 24,521 additions and 6,148 deletions.
56 changes: 56 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#
# BSD 2-Clause License
#
# Copyright (c) 2021-2024, Hewlett Packard Enterprise
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

changelog:
exclude:
labels:
- ignore-for-release
categories:
- title: Features
labels:
- 'type: feature'
exclude:
labels:
- non-user-facing
- title: Bug Fixes
labels:
- 'bug: critical'
- 'bug: major'
- 'bug: minor'
exclude:
labels:
- non-user-facing
- title: API Breaks
labels:
- 'API break'
exclude:
labels:
- non-user-facing
- title: Miscellaneous Improvements
labels:
- "*"
12 changes: 12 additions & 0 deletions .github/workflows/build_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,18 @@ jobs:
runs-on: ubuntu-latest

steps:

# Maximize the space in this image
- name: Maximize build space
uses: easimon/maximize-build-space@v10
with:
root-reserve-mb: 30720
remove-dotnet: true
remove-android: true
remove-haskell: true
remove-codeql: true
remove-docker-images: true

- uses: actions/checkout@v4
with:
fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository.
Expand Down
36 changes: 20 additions & 16 deletions smartsim/slurm.py → .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#
# BSD 2-Clause License
#
# Copyright (c) 2021-2024, Hewlett Packard Enterprise
Expand All @@ -23,23 +24,26 @@
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

name: enforce_changelog

on:
pull_request:
push:
branches:
- develop

from warnings import simplefilter, warn
jobs:
changelog:
name: check_changelog
runs-on: ubuntu-latest

# pylint: disable-next=unused-import
from .wlm.slurm import (
_get_alloc_cmd,
_get_system_partition_info,
get_allocation,
get_default_partition,
release_allocation,
validate,
)
steps:
- uses: actions/checkout@v4

simplefilter("once", category=DeprecationWarning)
DEPRECATION_MSG = (
"`smartsim.slurm` has been deprecated and will be removed in a future release.\n"
"Please update your code to use `smartsim.wlm.slurm`"
)
warn(DEPRECATION_MSG, category=DeprecationWarning, stacklevel=2)
- name: Changelog Enforcer
uses: dangoslen/[email protected]
with:
changeLogPath: './doc/changelog.md'
missingUpdateErrorMessage: 'changelog.md has not been updated'
17 changes: 15 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, macos-12]
os: [ubuntu-22.04, macos-12]

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -98,7 +98,7 @@ jobs:
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: '3.8'
python-version: '3.9'

- name: Build sdist
run: |
Expand All @@ -124,3 +124,16 @@ jobs:
user: __token__
password: ${{ secrets.PYPI }}
#repository_url: https://test.pypi.org/legacy/


createPullRequest:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Create pull request
run: |
gh pr create -B develop -H master --title 'Merge master into develop' --body 'This PR brings develop up to date with master for release.'
env:
GH_TOKEN: ${{ github.token }}
12 changes: 10 additions & 2 deletions .github/workflows/run_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,13 @@ jobs:
fail-fast: false
matrix:
subset: [backends, slow_tests, group_a, group_b]
os: [macos-12, ubuntu-20.04] # Operating systems
os: [macos-12, macos-14, ubuntu-22.04] # Operating systems
compiler: [8] # GNU compiler version
rai: [1.2.7] # Redis AI versions
py_v: ['3.8', '3.9', '3.10', '3.11'] # Python versions
py_v: ["3.9", "3.10", "3.11"] # Python versions
exclude:
- os: macos-14
py_v: "3.9"

env:
SMARTSIM_REDISAI: ${{ matrix.rai }}
Expand Down Expand Up @@ -108,8 +111,13 @@ jobs:
python -m pip install .[dev,ml]
- name: Install ML Runtimes with Smart (with pt, tf, and onnx support)
if: contains( matrix.os, 'ubuntu' ) || contains( matrix.os, 'macos-12')
run: smart build --device cpu --onnx -v

- name: Install ML Runtimes with Smart (no ONNX,TF on Apple Silicon)
if: contains( matrix.os, 'macos-14' )
run: smart build --device cpu --no_tf -v

- name: Run mypy
run: |
python -m pip install .[mypy]
Expand Down
12 changes: 5 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ tests/test_output

# Dependencies
smartsim/_core/.third-party
smartsim/_core/.dragon

# Docs
_build
Expand All @@ -22,17 +23,14 @@ venv/
.venv/
env/
.env/
**/.env

# written upon install
smartsim/version.py

smartsim/_core/bin/*-server
smartsim/_core/bin/*-cli

# created upon install
smartsim/_core/bin
smartsim/_core/lib

**/manifest/
**/*.err
**/*.out
**/.smartsim/*
# optional dev tools
.pre-commit-config.yaml
2 changes: 1 addition & 1 deletion .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ valid-metaclass-classmethod-first-arg=mcs
max-args=9

# Maximum number of locals for function / method body
max-locals=20
max-locals=25

# Maximum number of return / yield for function / method body
max-returns=11
Expand Down
43 changes: 43 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Required
version: 2

# Set the OS, Python version and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.10"
jobs:
post_checkout:
# Cancel building pull requests when there aren't changed in the docs directory or YAML file.
# You can add any other files or directories that you'd like here as well,
# like your docs requirements file, or other files that will change your docs build.
#
# If there are no changes (git diff exits with 0) we force the command to return with 183.
# This is a special exit code on Read the Docs that will cancel the build immediately.
- |
if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- doc/ .readthedocs.yaml;
then
exit 183;
fi
pre_create_environment:
- git clone --depth 1 https://github.com/CrayLabs/SmartRedis.git smartredis
- git clone --depth 1 https://github.com/CrayLabs/SmartDashboard.git smartdashboard
post_create_environment:
- python -m pip install .[dev]
- cd smartredis; python -m pip install .
- cd smartredis/doc; doxygen Doxyfile_c; doxygen Doxyfile_cpp; doxygen Doxyfile_fortran
- ln -s smartredis/examples ./examples
- cd smartdashboard; python -m pip install .
pre_build:
- pip install typing_extensions==4.8.0
- pip install pydantic==1.10.13
- python -m sphinx -b linkcheck doc/ $READTHEDOCS_OUTPUT/linkcheck

# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: doc/conf.py
fail_on_warning: true

python:
install:
- requirements: doc/requirements-doc.txt
4 changes: 2 additions & 2 deletions .wci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
language: Python

release:
version: 0.6.2
date: 2024-02-16
version: 0.7.0
date: 2024-05-14

documentation:
general: https://www.craylabs.org/docs/overview.html
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -150,11 +150,11 @@ tutorials-dev:
@docker compose build tutorials-dev
@docker run -p 8888:8888 smartsim-tutorials:dev-latest

# help: tutorials-prod - Build and start a docker container to run the tutorials (v0.6.2)
# help: tutorials-prod - Build and start a docker container to run the tutorials (v0.7.0)
.PHONY: tutorials-prod
tutorials-prod:
@docker compose build tutorials-prod
@docker run -p 8888:8888 smartsim-tutorials:v0.6.2
@docker run -p 8888:8888 smartsim-tutorials:v0.7.0


# help:
Expand Down
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,13 +174,17 @@ system with which it has a corresponding `RunSettings` class. If one can be foun
## Experiments on HPC Systems

SmartSim integrates with common HPC schedulers providing batch and interactive
launch capabilities for all applications.
launch capabilities for all applications:

- Slurm
- LSF
- PBSPro
- Local (for laptops/single node, no batch)

In addition, on Slurm and PBS systems, [Dragon](https://dragonhpc.github.io/dragon/doc/_build/html/index.html)
can be used as a launcher. Please refer to the documentation for instructions on
how to insall it on your system and use it in SmartSim.


### Interactive Launch Example

Expand Down
Loading

0 comments on commit 5039699

Please sign in to comment.