Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions .github/workflows/canary.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: "Canary Build"

on:
schedule:
- cron: '0 0 * * 0' # Run weekly on Sunday at midnight
workflow_dispatch:
pull_request:
branches:
- develop
paths:
- '.github/workflows/canary.yml'
- '.github/workflows/requirements.txt'
- '.github/workflows/requirements_dev.txt'
- '.github/workflows/requirements_doc.txt'
- 'conanfile.py'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build-macOS-canary:
name: macOS Latest Dependencies
runs-on: macos-latest
timeout-minutes: 75
strategy:
matrix:
python-version: [ "3.13" ]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install Homebrew
run: |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install swig doxygen

- name: "Create virtual Environment"
run: python3 -m venv .venv
- name: "Capture initial package versions"
run: |
source .venv/bin/activate
pip freeze > initial_versions.txt
echo "Initial package versions:" >> $GITHUB_STEP_SUMMARY
cat initial_versions.txt >> $GITHUB_STEP_SUMMARY
echo "\n" >> $GITHUB_STEP_SUMMARY

- name: "Install canary requirements"
run: |
source .venv/bin/activate
pip3 install -r .github/workflows/requirements.txt
pip3 install -r .github/workflows/requirements_dev.txt
pip3 install -r .github/workflows/requirements_doc.txt
pip3 install pytest-error-for-skips

- name: "Capture final package versions"
run: |
source .venv/bin/activate
pip freeze > final_versions.txt
echo "Final package versions:" >> $GITHUB_STEP_SUMMARY
cat final_versions.txt >> $GITHUB_STEP_SUMMARY
echo "\n" >> $GITHUB_STEP_SUMMARY
echo "Package version changes:" >> $GITHUB_STEP_SUMMARY
diff -u initial_versions.txt final_versions.txt | grep -E '^[+-]' | grep -v '^+++' | grep -v '^---' >> $GITHUB_STEP_SUMMARY

- name: "Build basilisk with latest dependencies"
run: source .venv/bin/activate && python3 conanfile.py --opNav True --allOptPkg --mujoco True --mujocoReplay True --pyPkgCanary True

- name: "Run Python Tests"
run: |
source .venv/bin/activate
cd src
pytest -n auto -m "not ciSkip" -rs --error-for-skips
if: ${{ always() }}
- name: "Run C/C++ Tests"
working-directory: ./dist3
run: ctest -C Release
if: ${{ always() }}

- name: "Build Documentation"
run: |
source .venv/bin/activate
cd docs
make html SPHINXOPTS="-W"
if: ${{ always() }}

- name: "Upload package version logs"
if: always()
uses: actions/upload-artifact@v4
with:
name: package-versions
path: |
initial_versions.txt
final_versions.txt
9 changes: 9 additions & 0 deletions .github/workflows/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
pandas
matplotlib
numpy
colorama
tqdm
pillow
requests
bokeh
protobuf
15 changes: 15 additions & 0 deletions .github/workflows/requirements_dev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
wheel
cmake<4.0
conan
packaging
setuptools
setuptools-scm

pytest
pytest-html
pytest-xdist

pre-commit
clang-format

psutil
6 changes: 6 additions & 0 deletions .github/workflows/requirements_doc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
breathe
docutils
recommonmark
sphinx
sphinx_rtd_theme
sphinx-copybutton
9 changes: 6 additions & 3 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"vizInterface": [[True, False], True],
"mujoco": [[True, False], False],
"buildProject": [[True, False], True],
"pyPkgCanary": [[True, False], False],

# XXX: Set managePipEnvironment to True to keep the old behaviour of
# managing the `pip` environment directly (upgrading, installing Python
Expand Down Expand Up @@ -123,19 +124,21 @@ def system_requirements(self):
# TODO: Remove this: requirements and optional requirements are
# installed automatically by add_basilisk_to_sys_path(). Only build
# system requirements need to be installed here.
reqFile = open('requirements.txt', 'r')
reqPath = '.github/workflows/' if self.options.get_safe("pyPkgCanary") else ''

reqFile = open(f'{reqPath}requirements.txt', 'r')
required = reqFile.read().replace("`", "").split('\n')
reqFile.close()
pkgList = [x.lower() for x in required]

reqFile = open('requirements_dev.txt', 'r')
reqFile = open(f'{reqPath}requirements_dev.txt', 'r')
required = reqFile.read().replace("`", "").split('\n')
reqFile.close()
pkgList += [x.lower() for x in required]

checkStr = "Required"
if self.options.get_safe("allOptPkg"):
optFile = open('requirements_doc.txt', 'r')
optFile = open(f'{reqPath}requirements_doc.txt', 'r')
optionalPkgs = optFile.read().replace("`", "").split('\n')
optFile.close()
optionalPkgs = [x.lower() for x in optionalPkgs]
Expand Down
3 changes: 3 additions & 0 deletions docs/source/Support/bskReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ Version |release|
- Marked the use of python 3.8 as deprecated
- Support for ``opNavMode`` flag within vizSupport was removed, as its deprecation period ended
- Demo video was added to :ref:`scenarioQuadMaps` documentation
- Pinned python dependencies to avoid issues with new package versions.
- Added a new github workflow job ``canary`` to routinely check the compatibility of latest python dependencies with python 3.13 on the latest mac-os.


Version 2.7.0 (April 20, 2025)
Expand Down Expand Up @@ -81,6 +83,7 @@ Version 2.7.0 (April 20, 2025)
- :beta:`Mujoco Support`: Added ``StatefulSysModel`` for models in the dynamics task of ``MJScene`` that need to declare
continuous-time states. Modified :ref:`scenarioDeployPanels` to illustrate the use of ``StatefulSysModel``.


Version 2.6.0 (Feb. 21, 2025)
-------------------------------
- Build ``ubuntu-latest`` wheels for Python 3.9, 3.10, and 3.11 on GitHub CI, allowing for
Expand Down
8 changes: 4 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[build-system]
build-backend = "setuptools.build_meta"
requires = [
"setuptools>=70.1.0", # Required for "bdist_wheel" to work correctly.
"setuptools-scm>=8.0", # Automatically include all Git-controlled files in sdist
"packaging>=22", # Due to incompatibility: https://github.com/pypa/setuptools/issues/4483
"setuptools>=70.1.0,<=78.1.0", # Required for "bdist_wheel" to work correctly.
"setuptools-scm>=8.0,<=8.2.1", # Automatically include all Git-controlled files in sdist
"packaging>=22,<=24.2", # Due to incompatibility: https://github.com/pypa/setuptools/issues/4483

# Requirements for building Basilisk through conanfile
"conan>=2.0.5",
"conan>=2.0.5,<=2.15.1",
"cmake>=3.26,<4.0",
"swig>=4.2.1" # Known to work with https://github.com/nightlark/swig-pypi/pull/120
]
Expand Down
18 changes: 9 additions & 9 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
pandas
matplotlib
numpy
colorama
tqdm
Pillow
requests
bokeh
protobuf
pandas<=2.2.3,>=2.0.3
matplotlib<=3.10.1,>=3.7.5
numpy<=2.2.4,>=1.24.4
colorama==0.4.6
tqdm==4.67.1
pillow<=11.2.1,>=10.4.0
requests==2.32.3
bokeh<=3.7.2,>=3.1.1
protobuf<=6.30.2,>=5.29.4
24 changes: 12 additions & 12 deletions requirements_dev.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
wheel
cmake<4.0
conan>2.0.5
packaging>=22
setuptools>=70.1.0
setuptools-scm>=8.0
wheel>=0.45.1,<=0.46.1
cmake>=3.26,<4.0
conan>=2.0.5,<=2.15.1
packaging>=22,<=24.2
setuptools>=70.1.0,<=78.1.0
setuptools-scm>=8.0,<=8.2.1

pytest
pytest-html
pytest-xdist
pytest==8.3.5
pytest-html==4.1.1
pytest-xdist==3.6.1

pre-commit
clang-format
pre-commit>=3.5.0,<=4.2.0
clang-format==20.1.0

psutil
psutil==7.0.0
13 changes: 6 additions & 7 deletions requirements_doc.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
breathe
docutils
recommonmark
sphinx>7.0.0
sphinx_rtd_theme>=3.0.0
sphinx-copybutton
docutils
breathe==4.36.0
docutils==0.21.2
recommonmark==0.7.1
sphinx>7.0.0,=<8.2.3
sphinx_rtd_theme>=3.0.0,<=3.0.2
sphinx-copybutton==0.5.2
Loading