Skip to content

Commit

Permalink
Merge branch 'master' into 601-fix-ind2sub-with-scalar-size
Browse files Browse the repository at this point in the history
  • Loading branch information
ehennestad committed Nov 2, 2024
2 parents 89055c2 + 5cd6af6 commit 536375e
Show file tree
Hide file tree
Showing 15 changed files with 185 additions and 339 deletions.
5 changes: 3 additions & 2 deletions +tests/+unit/TutorialTest.m
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
'basicUsage.mlx', ... % depends on external data
'convertTrials.m', ... % depends on basicUsage output
'formatStruct.m', ... % Actually a utility script, not a tutorial
'read_demo.mlx'}; % depends on external data
'read_demo.mlx', ... % depends on external data
'remote_read.mlx'}; % Uses nwbRead on s3 url, potentially very slow

% SkippedFiles - Name of exported nwb files to skip reading with pynwb
SkippedFiles = {'testFileWithDataPipes.nwb'} % does not produce a valid nwb file
Expand Down Expand Up @@ -78,7 +79,7 @@ function setupMethod(testCase)

methods (Test)
function testTutorial(testCase, tutorialFile) %#ok<INUSD>
run(tutorialFile)
C = evalc( 'run(tutorialFile)' ); %#ok<NASGU>
testCase.testReadTutorialNwbFileWithPynwb()
end
end
Expand Down
2 changes: 2 additions & 0 deletions +tests/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
pynwb
hdf5plugin
2 changes: 1 addition & 1 deletion .codespellrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[codespell]
skip = *.html,*logo_matnwb.svg,*fastsearch.m,*.yaml,*UpdateThirdPartyFromUpstream.sh,*testResults.xml
skip = *.html,*logo_matnwb.svg,*fastsearch.m,*.yaml,*testResults.xml
ignore-words-list = DNE,nd,whos
12 changes: 12 additions & 0 deletions .github/.codecov.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
coverage:
range: "90...100"
status:
project:
default:
target: 90 # Set the desired coverage target as 90%
threshold: 1 # Allowable drop in coverage
patch:
default:
# 75% of the changed code must be covered by tests
threshold: 25
only_pulls: true
File renamed without changes.
46 changes: 46 additions & 0 deletions .github/workflows/run_codespell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Note: This workflow allows specifying a custom location for the Codespell
# configuration file by defining CONFIG_FILE as an environment variable.
# A defined subset of options is extracted from this file and passed to the
# Codespell action. This also ensures that the output of the codespell action
# prints out the values of these options.
# Todo: Generalize the extraction of codespell input arguments/options.

name: Codespell

on:
pull_request:
branches:
- master
push:
branches-ignore:
- master

jobs:
codespell:
name: Check for spelling errors
runs-on: ubuntu-latest
env:
CONFIG_FILE: .codespellrc

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Extract codespell configurations from configuration file
id: config
run: |
# Extract 'skip' value from the config file, excluding 'skip = ' part
skip=$(grep -E '^skip' "$CONFIG_FILE" | sed 's/^skip *= *//')
# Extract 'ignore-words-list' value from the config file, excluding 'ignore-words-list = ' part
ignore_words=$(grep -E '^ignore-words-list' "$CONFIG_FILE" | sed 's/^ignore-words-list *= *//')
# Export values as environment variables
echo "SKIP=$skip" >> $GITHUB_ENV
echo "IGNORE_WORDS_LIST=$ignore_words" >> $GITHUB_ENV
- name: Codespell
uses: codespell-project/actions-codespell@v2
with:
skip: "${{ env.SKIP }}"
ignore_words_list: "${{ env.IGNORE_WORDS_LIST }}"
82 changes: 82 additions & 0 deletions .github/workflows/run_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Run and publish MATLAB tests with coverage
name: Run tests

on:
pull_request:
branches:
- master
paths-ignore:
- "*.md"
- "*.codespellrc"
- ".github/**"
push:
branches:
- master

jobs:
run_tests:
name: Run MATLAB tests
runs-on: ubuntu-latest
steps:
- name: check out repository
uses: actions/checkout@v4
- name: install python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: configure python env
run: |
python -m pip install -U pip
pip install -r +tests/requirements.txt
echo "HDF5_PLUGIN_PATH=$(python -c "import hdf5plugin; print(hdf5plugin.PLUGINS_PATH)")" >> "$GITHUB_ENV"
- name: install MATLAB
uses: matlab-actions/setup-matlab@v2
with:
release: R2024a # this is necessary to test dynamic filters
- name: run tests
uses: matlab-actions/run-command@v2
with:
command: results = assertSuccess(nwbtest); assert(~isempty(results), 'No tests ran');
- name: upload JUnit results
uses: actions/upload-artifact@v4
with:
name: test-results
path: testResults.xml
retention-days: 1
- name: upload coverage results
uses: actions/upload-artifact@v4
with:
name: test-coverage
path: ./coverage.xml
publish_junit:
name: Publish JUnit Test Results
runs-on: ubuntu-latest
if: ${{ always() }}
needs: [run_tests]
steps:
- name: retrieve result files
uses: actions/download-artifact@v4
with:
name: test-results
- name: publish results
uses: mikepenz/action-junit-report@v4
with:
report_paths: 'testResults.xml'
publish_coverage:
name: Publish Cobertura Test Coverage
runs-on: ubuntu-latest
needs: [run_tests]
steps:
- name: check out repository
uses: actions/checkout@v4
- name: retrieve code coverage files
uses: actions/download-artifact@v4
with:
name: test-coverage
- name: publish on Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.xml
name: codecov-matnwb
verbose: true
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
![MatNWB Logo](logo/logo_matnwb_small.png)

[![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=NeurodataWithoutBorders/matnwb&file=tutorials/basicUsage.mlx)
[![codecov](https://codecov.io/gh/NeurodataWithoutBorders/matnwb/branch/master/graph/badge.svg?token=apA7F24NsO)](https://codecov.io/gh/NeurodataWithoutBorders/matnwb) ![Azure DevOps tests](https://img.shields.io/azure-devops/tests/NeurodataWithoutBorders/matnwb/4)
[![codecov](https://codecov.io/gh/NeurodataWithoutBorders/matnwb/branch/master/graph/badge.svg?token=apA7F24NsO)](https://codecov.io/gh/NeurodataWithoutBorders/matnwb)
[![Run tests](https://github.com/NeurodataWithoutBorders/matnwb/actions/workflows/run_tests.yml/badge.svg)](https://github.com/NeurodataWithoutBorders/matnwb/actions/workflows/run_tests.yml?query=event%3Apush+branch%3Amaster)
[![Codespell](https://github.com/NeurodataWithoutBorders/matnwb/actions/workflows/run_codespell.yml/badge.svg?branch=master)](https://github.com/NeurodataWithoutBorders/matnwb/actions/workflows/run_codespell.yml?query=event%3Apush+branch%3Amaster)

MatNWB is a Matlab interface for reading and writing Neurodata Without Borders (NWB) 2.x files.

Expand Down
48 changes: 0 additions & 48 deletions azure-pipelines.yml

This file was deleted.

5 changes: 0 additions & 5 deletions installer/readme.txt

This file was deleted.

71 changes: 0 additions & 71 deletions installer/setupNWB.iss

This file was deleted.

16 changes: 16 additions & 0 deletions tools/maintenance/validateCodecovSettings.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
function validateCodecovSettings()
% validateCodecovSettings Validate a codecov settings file.
%
% Note: This is a utility function developer's can use to check the
% codecov settings file in .github/.codecov.yaml

sysCommand = sprintf("curl -X POST --data-binary @%s https://codecov.io/validate", ...
fullfile(misc.getMatnwbDir, '.github', '.codecov.yaml'));

[status, message] = system(sysCommand);

assert(status == 0, 'Curl command failed')

assert(contains(message, 'Valid!'), ...
'Codecov settings file is invalid')
end
36 changes: 20 additions & 16 deletions tutorials/html/remote_read.html

Large diffs are not rendered by default.

Binary file modified tutorials/remote_read.mlx
Binary file not shown.
Loading

0 comments on commit 536375e

Please sign in to comment.