Skip to content

Commit 5039699

Browse files
authored
v0.7.0 (#584)
Merge develop to master for release of v0.7.0 [ committed by @al-rigazzi ] [ reviewed by @juliaputko @AlyssaCote ]
2 parents 265916c + ac80685 commit 5039699

File tree

291 files changed

+24521
-6148
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

291 files changed

+24521
-6148
lines changed

Diff for: .github/release.yml

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#
2+
# BSD 2-Clause License
3+
#
4+
# Copyright (c) 2021-2024, Hewlett Packard Enterprise
5+
# All rights reserved.
6+
#
7+
# Redistribution and use in source and binary forms, with or without
8+
# modification, are permitted provided that the following conditions are met:
9+
#
10+
# 1. Redistributions of source code must retain the above copyright notice, this
11+
# list of conditions and the following disclaimer.
12+
#
13+
# 2. Redistributions in binary form must reproduce the above copyright notice,
14+
# this list of conditions and the following disclaimer in the documentation
15+
# and/or other materials provided with the distribution.
16+
#
17+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20+
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
21+
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22+
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25+
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27+
#
28+
29+
changelog:
30+
exclude:
31+
labels:
32+
- ignore-for-release
33+
categories:
34+
- title: Features
35+
labels:
36+
- 'type: feature'
37+
exclude:
38+
labels:
39+
- non-user-facing
40+
- title: Bug Fixes
41+
labels:
42+
- 'bug: critical'
43+
- 'bug: major'
44+
- 'bug: minor'
45+
exclude:
46+
labels:
47+
- non-user-facing
48+
- title: API Breaks
49+
labels:
50+
- 'API break'
51+
exclude:
52+
labels:
53+
- non-user-facing
54+
- title: Miscellaneous Improvements
55+
labels:
56+
- "*"

Diff for: .github/workflows/build_docs.yml

+12
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,18 @@ jobs:
3939
runs-on: ubuntu-latest
4040

4141
steps:
42+
43+
# Maximize the space in this image
44+
- name: Maximize build space
45+
uses: easimon/maximize-build-space@v10
46+
with:
47+
root-reserve-mb: 30720
48+
remove-dotnet: true
49+
remove-android: true
50+
remove-haskell: true
51+
remove-codeql: true
52+
remove-docker-images: true
53+
4254
- uses: actions/checkout@v4
4355
with:
4456
fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository.

Diff for: smartsim/slurm.py renamed to .github/workflows/changelog.yml

+20-16
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#
12
# BSD 2-Clause License
23
#
34
# Copyright (c) 2021-2024, Hewlett Packard Enterprise
@@ -23,23 +24,26 @@
2324
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
2425
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2526
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27+
#
28+
29+
name: enforce_changelog
2630

31+
on:
32+
pull_request:
33+
push:
34+
branches:
35+
- develop
2736

28-
from warnings import simplefilter, warn
37+
jobs:
38+
changelog:
39+
name: check_changelog
40+
runs-on: ubuntu-latest
2941

30-
# pylint: disable-next=unused-import
31-
from .wlm.slurm import (
32-
_get_alloc_cmd,
33-
_get_system_partition_info,
34-
get_allocation,
35-
get_default_partition,
36-
release_allocation,
37-
validate,
38-
)
42+
steps:
43+
- uses: actions/checkout@v4
3944

40-
simplefilter("once", category=DeprecationWarning)
41-
DEPRECATION_MSG = (
42-
"`smartsim.slurm` has been deprecated and will be removed in a future release.\n"
43-
"Please update your code to use `smartsim.wlm.slurm`"
44-
)
45-
warn(DEPRECATION_MSG, category=DeprecationWarning, stacklevel=2)
45+
- name: Changelog Enforcer
46+
uses: dangoslen/[email protected]
47+
with:
48+
changeLogPath: './doc/changelog.md'
49+
missingUpdateErrorMessage: 'changelog.md has not been updated'

Diff for: .github/workflows/release.yml

+15-2
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
strategy:
5454
fail-fast: false
5555
matrix:
56-
os: [ubuntu-20.04, macos-12]
56+
os: [ubuntu-22.04, macos-12]
5757

5858
steps:
5959
- uses: actions/checkout@v4
@@ -98,7 +98,7 @@ jobs:
9898
- uses: actions/setup-python@v5
9999
name: Install Python
100100
with:
101-
python-version: '3.8'
101+
python-version: '3.9'
102102

103103
- name: Build sdist
104104
run: |
@@ -124,3 +124,16 @@ jobs:
124124
user: __token__
125125
password: ${{ secrets.PYPI }}
126126
#repository_url: https://test.pypi.org/legacy/
127+
128+
129+
createPullRequest:
130+
runs-on: ubuntu-latest
131+
steps:
132+
- name: Checkout code
133+
uses: actions/checkout@v4
134+
135+
- name: Create pull request
136+
run: |
137+
gh pr create -B develop -H master --title 'Merge master into develop' --body 'This PR brings develop up to date with master for release.'
138+
env:
139+
GH_TOKEN: ${{ github.token }}

Diff for: .github/workflows/run_tests.yml

+10-2
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,13 @@ jobs:
5454
fail-fast: false
5555
matrix:
5656
subset: [backends, slow_tests, group_a, group_b]
57-
os: [macos-12, ubuntu-20.04] # Operating systems
57+
os: [macos-12, macos-14, ubuntu-22.04] # Operating systems
5858
compiler: [8] # GNU compiler version
5959
rai: [1.2.7] # Redis AI versions
60-
py_v: ['3.8', '3.9', '3.10', '3.11'] # Python versions
60+
py_v: ["3.9", "3.10", "3.11"] # Python versions
61+
exclude:
62+
- os: macos-14
63+
py_v: "3.9"
6164

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

117+
- name: Install ML Runtimes with Smart (no ONNX,TF on Apple Silicon)
118+
if: contains( matrix.os, 'macos-14' )
119+
run: smart build --device cpu --no_tf -v
120+
113121
- name: Run mypy
114122
run: |
115123
python -m pip install .[mypy]

Diff for: .gitignore

+5-7
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ tests/test_output
1111

1212
# Dependencies
1313
smartsim/_core/.third-party
14+
smartsim/_core/.dragon
1415

1516
# Docs
1617
_build
@@ -22,17 +23,14 @@ venv/
2223
.venv/
2324
env/
2425
.env/
26+
**/.env
2527

2628
# written upon install
2729
smartsim/version.py
2830

29-
smartsim/_core/bin/*-server
30-
smartsim/_core/bin/*-cli
31-
3231
# created upon install
32+
smartsim/_core/bin
3333
smartsim/_core/lib
3434

35-
**/manifest/
36-
**/*.err
37-
**/*.out
38-
**/.smartsim/*
35+
# optional dev tools
36+
.pre-commit-config.yaml

Diff for: .pylintrc

+1-1
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ valid-metaclass-classmethod-first-arg=mcs
325325
max-args=9
326326

327327
# Maximum number of locals for function / method body
328-
max-locals=20
328+
max-locals=25
329329

330330
# Maximum number of return / yield for function / method body
331331
max-returns=11

Diff for: .readthedocs.yaml

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Required
2+
version: 2
3+
4+
# Set the OS, Python version and other tools you might need
5+
build:
6+
os: ubuntu-22.04
7+
tools:
8+
python: "3.10"
9+
jobs:
10+
post_checkout:
11+
# Cancel building pull requests when there aren't changed in the docs directory or YAML file.
12+
# You can add any other files or directories that you'd like here as well,
13+
# like your docs requirements file, or other files that will change your docs build.
14+
#
15+
# If there are no changes (git diff exits with 0) we force the command to return with 183.
16+
# This is a special exit code on Read the Docs that will cancel the build immediately.
17+
- |
18+
if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- doc/ .readthedocs.yaml;
19+
then
20+
exit 183;
21+
fi
22+
pre_create_environment:
23+
- git clone --depth 1 https://github.com/CrayLabs/SmartRedis.git smartredis
24+
- git clone --depth 1 https://github.com/CrayLabs/SmartDashboard.git smartdashboard
25+
post_create_environment:
26+
- python -m pip install .[dev]
27+
- cd smartredis; python -m pip install .
28+
- cd smartredis/doc; doxygen Doxyfile_c; doxygen Doxyfile_cpp; doxygen Doxyfile_fortran
29+
- ln -s smartredis/examples ./examples
30+
- cd smartdashboard; python -m pip install .
31+
pre_build:
32+
- pip install typing_extensions==4.8.0
33+
- pip install pydantic==1.10.13
34+
- python -m sphinx -b linkcheck doc/ $READTHEDOCS_OUTPUT/linkcheck
35+
36+
# Build documentation in the "docs/" directory with Sphinx
37+
sphinx:
38+
configuration: doc/conf.py
39+
fail_on_warning: true
40+
41+
python:
42+
install:
43+
- requirements: doc/requirements-doc.txt

Diff for: .wci.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
language: Python
2323

2424
release:
25-
version: 0.6.2
26-
date: 2024-02-16
25+
version: 0.7.0
26+
date: 2024-05-14
2727

2828
documentation:
2929
general: https://www.craylabs.org/docs/overview.html

Diff for: Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,11 @@ tutorials-dev:
150150
@docker compose build tutorials-dev
151151
@docker run -p 8888:8888 smartsim-tutorials:dev-latest
152152

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

159159

160160
# help:

Diff for: README.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -174,13 +174,17 @@ system with which it has a corresponding `RunSettings` class. If one can be foun
174174
## Experiments on HPC Systems
175175

176176
SmartSim integrates with common HPC schedulers providing batch and interactive
177-
launch capabilities for all applications.
177+
launch capabilities for all applications:
178178

179179
- Slurm
180180
- LSF
181181
- PBSPro
182182
- Local (for laptops/single node, no batch)
183183

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

185189
### Interactive Launch Example
186190

0 commit comments

Comments
 (0)