Skip to content

Commit

Permalink
Merge pull request #168 from NeuralEnsemble/development
Browse files Browse the repository at this point in the history
Changes for NML v2.3 release
  • Loading branch information
pgleeson authored Sep 20, 2023
2 parents 6aa7813 + b10d8c9 commit f3a0db6
Show file tree
Hide file tree
Showing 60 changed files with 41,413 additions and 24,501 deletions.
32 changes: 19 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,50 +2,56 @@ name: Build

on:
push:
branches: [ master, development ]
branches: [ master, development, experimental ]
pull_request:
branches: [ master, development ]
branches: [ master, development, experimental ]

jobs:
build:

runs-on: ubuntu-latest
strategy:
name: Check Python ${{ matrix.python-version }} on ${{ matrix.runs-on }}
runs-on: ${{ matrix.runs-on }}
strategy:
fail-fast: false
matrix:
python-version: ["3.7", "3.8", "3.9"]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
runs-on: [ubuntu-latest, windows-latest, macos-latest]

steps:
- uses: actions/checkout@v3

- name: Start MongoDB
uses: supercharge/[email protected]

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

- name: Install dependencies
run: |
sudo apt-get install libhdf5-serial-dev liblzo2-dev -y
#sudo apt-get install libhdf5-serial-dev liblzo2-dev libgraphviz-dev -y
python -m pip install --upgrade pip
if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Build package
run: |
pip install .[full]
- name: Test with pytest
if: ${{ matrix.runs-on == 'ubuntu-latest' }}
run: |
pytest
# Just test on linux for now...
pytest -vs
- name: Run examples
if: ${{ matrix.python-version != '3.7' || matrix.runs-on != 'macos-latest' }} # issue with _bz2 module...
run: |
cd neuroml/examples
python run_all.py
- name: Final version info
run: |
cd ./neuroml/examples && python run_all.py
pip list
- name: Lint with flake8
if: ${{ matrix.runs-on == 'ubuntu-latest' }}
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
Expand Down
36 changes: 36 additions & 0 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: Upload Python Package

on:
release:
types: [published]

jobs:
deploy:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build
- name: Build package
run: python -m build
- name: Publish package
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
15 changes: 7 additions & 8 deletions .github/workflows/regenerate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,31 @@ name: Regenerate nml.py

on:
push:
branches: [ master, development ]
branches: [ master, development, experimental ]
pull_request:
branches: [ master, development ]
branches: [ master, development, experimental ]

jobs:
build:

runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.7", "3.8", "3.9"]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

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

- name: Install dependencies
run: |
sudo apt-get install libhdf5-serial-dev liblzo2-dev -y
sudo apt-get install libhdf5-serial-dev liblzo2-dev libgraphviz-dev -y
python -m pip install --upgrade pip
if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
pip install .[dev]
- name: Rebuild nml.py
run: |
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,6 @@ neuroml/test/*.h5
.venv
/data
.mypy_cache/

sed-script.txt
/test.sh
18 changes: 18 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
version: 2

build:
os: ubuntu-22.04
tools:
python: "3.11"


sphinx:
configuration: doc/conf.py


python:
install:
- method: pip
path: .
extra_requirements:
- doc
26 changes: 0 additions & 26 deletions .travis.yml

This file was deleted.

8 changes: 7 additions & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ Contributions to the Python libNeuroML package:

Andrew Davison [1]
Michele Mattioni [2]
Padraig Gleeson [3]
Padraig Gleeson [3]
Mike Vella [4]
Mike Hull [5]
Ankur Sinha [3]

[1] UNIC, CNRS, Gif sur Yvette
[2] EBI
Expand All @@ -13,3 +14,8 @@ Mike Hull [5]
[5] University of Bristol

If you contribute code, please add your name and affiliation to this file.

Please see also:

- https://github.com/NeuralEnsemble/libNeuroML/graphs/contributors
- https://docs.neuroml.org/NeuroMLOrg/Contributors.html
29 changes: 25 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,38 @@ A related package, **[pyNeuroML](https://github.com/NeuroML/pyNeuroML)** builds

pyNeuroML builds on: [libNeuroML](https://github.com/NeuralEnsemble/libNeuroML) & [PyLEMS](https://github.com/LEMS/pylems) and wraps functionality from [jNeuroML](https://github.com/NeuroML/jNeuroML).


## Development process for libNeuroML

Most of the work happens in the [development branch](https://github.com/NeuralEnsemble/libNeuroML/tree/development).
That branch is kept up to date with the development branches for [NeuroML 2](https://github.com/NeuroML/NeuroML2/tree/development) and related libraries.
See https://docs.neuroml.org/ for an overview of the various NeuroML libraries.

## Changelog
### version 0.2.57 (dev)

### version 0.4.1

- add multiple cell builder utility functions
- performance improvements in generic helper functions
- documentation fixes/improvements
- add type annotations to all nml classes to aid users
- add level 1 validation method
- add generic component inspection methods

### version 0.4.0

- update to use schema version 2.3
- drop python 2 support

### version 0.3.1

- include schema documentation in generated `nml.py` API
- introduce generic methods to add child/children elements to components

### version 0.2.58

- multiple documentation fixes

### version 0.2.57

- Enable Python 3.10 support
- Regenerate nml.py with generateDS using Python 3
Expand Down Expand Up @@ -105,6 +128,4 @@ See https://docs.neuroml.org/ for an overview of the various NeuroML libraries.
- Schema validation utility
- Improved documentation and documentation new look


:copyright: Copyright 2023 by the libNeuroML team, see [AUTHORS](AUTHORS). Modified BSD License, see [LICENSE](LICENSE) for details.

Loading

0 comments on commit f3a0db6

Please sign in to comment.