Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/basic_spec' into basic_spec
Browse files Browse the repository at this point in the history
  • Loading branch information
CodyCBakerPhD committed May 31, 2024
2 parents 9136aac + 59a51ca commit 8b01ba6
Show file tree
Hide file tree
Showing 7 changed files with 303 additions and 50 deletions.
14 changes: 14 additions & 0 deletions .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Codespell
on:
pull_request:
workflow_dispatch:

jobs:
codespell:
name: Check for spelling errors
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Codespell
uses: codespell-project/actions-codespell@v2
183 changes: 183 additions & 0 deletions .github/workflows/run_all_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
name: Run all tests
on:
pull_request:
schedule:
- cron: '0 5 * * 0' # once every Sunday at midnight ET
workflow_dispatch:

jobs:
run-all-tests:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
include:
- { name: linux-python3.8-minimum , requirements: minimum , python-ver: "3.8" , os: ubuntu-latest }
- { name: linux-python3.8 , requirements: pinned , python-ver: "3.8" , os: ubuntu-latest }
- { name: linux-python3.9 , requirements: pinned , python-ver: "3.9" , os: ubuntu-latest }
- { name: linux-python3.10 , requirements: pinned , python-ver: "3.10", os: ubuntu-latest }
- { name: linux-python3.11 , requirements: pinned , python-ver: "3.11", os: ubuntu-latest }
- { name: linux-python3.12 , requirements: pinned , python-ver: "3.12", os: ubuntu-latest }
- { name: linux-python3.12-upgraded , requirements: upgraded , python-ver: "3.12", os: ubuntu-latest }
- { name: windows-python3.8-minimum , requirements: minimum , python-ver: "3.8" , os: windows-latest }
- { name: windows-python3.8 , requirements: pinned , python-ver: "3.8" , os: windows-latest }
- { name: windows-python3.9 , requirements: pinned , python-ver: "3.9" , os: windows-latest }
- { name: windows-python3.10 , requirements: pinned , python-ver: "3.10", os: windows-latest }
- { name: windows-python3.11 , requirements: pinned , python-ver: "3.11", os: windows-latest }
- { name: windows-python3.12 , requirements: pinned , python-ver: "3.12", os: windows-latest }
- { name: windows-python3.12-upgraded , requirements: upgraded , python-ver: "3.12", os: windows-latest }
- { name: macos-python3.8-minimum , requirements: minimum , python-ver: "3.8" , os: macos-latest }
- { name: macos-python3.8 , requirements: pinned , python-ver: "3.8" , os: macos-latest }
- { name: macos-python3.9 , requirements: pinned , python-ver: "3.9" , os: macos-latest }
- { name: macos-python3.10 , requirements: pinned , python-ver: "3.10", os: macos-latest }
- { name: macos-python3.11 , requirements: pinned , python-ver: "3.11", os: macos-latest }
- { name: macos-python3.12 , requirements: pinned , python-ver: "3.12", os: macos-latest }
- { name: macos-python3.12-upgraded , requirements: upgraded , python-ver: "3.12", os: macos-latest }
steps:
- name: Cancel non-latest runs
uses: styfle/[email protected]
with:
all_but_latest: true
access_token: ${{ github.token }}

- uses: actions/checkout@v3
with:
submodules: 'recursive'
fetch-depth: 0 # fetch tags

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-ver }}

- name: Install build dependencies
run: |
python -m pip install --upgrade pip
python -m pip list
python -m pip check
- name: Install run requirements (minimum)
if: ${{ matrix.requirements == 'minimum' }}
run: |
python -m pip install -r requirements-min.txt -r requirements-dev.txt
python -m pip install -e .
- name: Install run requirements (pinned)
if: ${{ matrix.requirements == 'pinned' }}
run: |
python -m pip install -r requirements-dev.txt
python -m pip install -e .
- name: Install run requirements (upgraded)
if: ${{ matrix.requirements == 'upgraded' }}
run: |
python -m pip install -r requirements-dev.txt
python -m pip install -U -e .
- name: Run tests
run: |
pytest -v
- name: Build wheel and source distribution
run: |
python -m pip install --upgrade build
python -m build
ls -1 dist
- name: Test installation from a wheel (POSIX)
if: ${{ matrix.os != 'windows-latest' }}
run: |
python -m venv test-wheel-env
source test-wheel-env/bin/activate
python -m pip install dist/*-none-any.whl
python -c "import ndx_microscopy"
- name: Test installation from a wheel (windows)
if: ${{ matrix.os == 'windows-latest' }}
run: |
python -m venv test-wheel-env
test-wheel-env/Scripts/activate.bat
python -m pip install dist/*-none-any.whl
python -c "import ndx_microscopy"
run-all-tests-on-conda:
name: ${{ matrix.name }}
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0} # needed for conda environment to work
strategy:
fail-fast: false
matrix:
include:
- { name: conda-linux-python3.8-minimum , requirements: minimum , python-ver: "3.8" , os: ubuntu-latest }
- { name: conda-linux-python3.8 , requirements: pinned , python-ver: "3.8" , os: ubuntu-latest }
- { name: conda-linux-python3.9 , requirements: pinned , python-ver: "3.9" , os: ubuntu-latest }
- { name: conda-linux-python3.10 , requirements: pinned , python-ver: "3.10", os: ubuntu-latest }
- { name: conda-linux-python3.11 , requirements: pinned , python-ver: "3.11", os: ubuntu-latest }
- { name: conda-linux-python3.12 , requirements: pinned , python-ver: "3.12", os: ubuntu-latest }
- { name: conda-linux-python3.12-upgraded , requirements: upgraded , python-ver: "3.12", os: ubuntu-latest }
steps:
- name: Cancel any previous incomplete runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}

- uses: actions/checkout@v3
with:
submodules: 'recursive'
fetch-depth: 0 # fetch tags

- name: Set up Conda
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
auto-activate-base: true
activate-environment: true
python-version: ${{ matrix.python-ver }}

- name: Install build dependencies
run: |
conda config --set always_yes yes --set changeps1 no
conda info
conda config --show-sources
conda list --show-channel-urls
- name: Install run requirements (minimum)
if: ${{ matrix.requirements == 'minimum' }}
run: |
python -m pip install -r requirements-min.txt -r requirements-dev.txt
python -m pip install -e .
- name: Install run requirements (pinned)
if: ${{ matrix.requirements == 'pinned' }}
run: |
python -m pip install -r requirements-dev.txt
python -m pip install -e .
- name: Install run requirements (upgraded)
if: ${{ matrix.requirements == 'upgraded' }}
run: |
python -m pip install -r requirements-dev.txt
python -m pip install -U -e .
- name: Run tests
run: |
pytest -v
- name: Build wheel and source distribution
run: |
python -m pip install --upgrade build
python -m build
ls -1 dist
- name: Test installation from a wheel (POSIX)
run: |
python -m venv test-wheel-env
source test-wheel-env/bin/activate
python -m pip install dist/*-none-any.whl
python -c "import ndx_microscopy"
59 changes: 59 additions & 0 deletions .github/workflows/run_coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Run code coverage
on:
pull_request:
workflow_dispatch:

jobs:
run-coverage:
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
# TODO handle forks
# run pipeline on either a push event or a PR event on a fork
# if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
defaults:
run:
shell: bash
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
env: # used by codecov-action
OS: ${{ matrix.os }}
PYTHON: '3.11'
steps:
- name: Cancel any previous incomplete runs
uses: styfle/[email protected]
with:
all_but_latest: true
access_token: ${{ github.token }}

- uses: actions/checkout@v3
with:
submodules: 'recursive'
fetch-depth: 0 # fetch tags

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements-dev.txt
- name: Install package
run: |
python -m pip install -e . # must install in editable mode for coverage to find sources
python -m pip list
- name: Run tests and generate coverage report
run: |
pytest --cov
python -m coverage xml # codecov uploader requires xml format
python -m coverage report -m
# TODO uncomment after setting up repo on codecov.io
# - name: Upload coverage to Codecov
# uses: codecov/codecov-action@v3
# with:
# fail_ci_if_error: true
2 changes: 1 addition & 1 deletion NEXTSTEPS.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ with information on where to find your NWB extension.
src: https://github.com/CodyCBakerPhD/ndx-microscopy
pip: https://pypi.org/project/ndx-microscopy/
license: MIT
maintainers:
maintainers:
- CodyCBakerPhD
```

Expand Down
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ classDiagram
--------------------------------------
data : numeric, frame x height x width
--> unit : text
--------------------------------------
links
--------------------------------------
Expand All @@ -65,7 +65,7 @@ classDiagram
--> unit : text
depth_per_frame : numeric, length of frames
-- > unit : text, default="micrometers"
--------------------------------------
links
--------------------------------------
Expand All @@ -80,7 +80,7 @@ classDiagram
--------------------------------------
data : numeric, frame x height x width x depth
--> unit : text
--------------------------------------
links
--------------------------------------
Expand All @@ -96,7 +96,7 @@ classDiagram
description : text
origin_coordinates : numeric, length 3, optional
--> unit : text, default="micrometers"
--------------------------------------
attributes
--------------------------------------
Expand All @@ -111,7 +111,7 @@ classDiagram
--------------------------------------
grid_spacing : numeric, length 2, optional
--> unit : text, default="micrometers"
--------------------------------------
attributes
--------------------------------------
Expand All @@ -126,7 +126,7 @@ classDiagram
--------------------------------------
grid_spacing : numeric, length 2, optional
--> unit : text, default="micrometers"
--------------------------------------
attributes
--------------------------------------
Expand All @@ -140,7 +140,7 @@ classDiagram
datasets
--------------------------------------
description : text
--------------------------------------
attributes
--------------------------------------
Expand All @@ -164,10 +164,10 @@ classDiagram
exposure_time_in_s : numeric, optional
pulse_rate_in_Hz : numeric, optional
}
class Microscope{
<<Device>>
--------------------------------------
attributes
--------------------------------------
Expand Down
Loading

0 comments on commit 8b01ba6

Please sign in to comment.