Skip to content

Commit

Permalink
Merge branch 'NeuralEnsemble:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
RCagnol committed Jun 7, 2023
2 parents a2eff91 + 4ac102b commit e34477f
Show file tree
Hide file tree
Showing 26 changed files with 355 additions and 235 deletions.
30 changes: 30 additions & 0 deletions .github/workflows/ebrains.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Mirror to EBRAINS

# Configure the events that are going to trigger tha automated update of the mirror
on:
push:
branches: [ master ]

# Configure what will be updated
jobs:
# set the job name
to_ebrains:
runs-on: ubuntu-latest
steps:
# this task will push the master branch of the source_repo (github) to the
# destination_repo (ebrains gitlab)
- name: syncmaster
uses: wei/git-sync@v3
with:
source_repo: https://github.com/NeuralEnsemble/PyNN
source_branch: "master"
destination_repo: "https://ghpusher:${{ secrets.EBRAINS_GITLAB_ACCESS_TOKEN }}@gitlab.ebrains.eu/NeuralEnsemble/PyNN.git"
destination_branch: "main"
# this task will push all tags from the source_repo to the destination_repo
- name: synctags
uses: wei/git-sync@v3
with:
source_repo: https://github.com/NeuralEnsemble/PyNN
source_branch: "refs/tags/*"
destination_repo: "https://ghpusher:${{ secrets.EBRAINS_GITLAB_ACCESS_TOKEN }}@gitlab.ebrains.eu/NeuralEnsemble/PyNN.git"
destination_branch: "refs/tags/*"
16 changes: 5 additions & 11 deletions .github/workflows/full-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
strategy:
fail-fast: true
matrix:
python-version: ["3.8", "3.9"]
python-version: ["3.8", "3.10"]
os: ["ubuntu-latest", "windows-latest"]
steps:
- uses: actions/checkout@v2
Expand All @@ -41,25 +41,19 @@ jobs:
if: startsWith(matrix.os, 'ubuntu')
run: |
python -m pip install neuron==8.1.0
python -m pip install nrnutils
python -m pip install "nrnutils>0.2.0"
- name: Install NEST
if: startsWith(matrix.os, 'ubuntu')
run: |
python -m pip install cython
wget https://github.com/nest/nest-simulator/archive/refs/tags/v3.3.tar.gz -O nest-simulator-3.3.tar.gz
tar xzf nest-simulator-3.3.tar.gz
cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local -Dwith-mpi=ON ./nest-simulator-3.3
wget https://github.com/nest/nest-simulator/archive/refs/tags/v3.4.tar.gz -O nest-simulator-3.4.tar.gz
tar xzf nest-simulator-3.4.tar.gz
cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local -Dwith-mpi=ON ./nest-simulator-3.4
make
make install
- name: Install PyNN itself
run: |
pip install -e .
- name: Compile NEURON mechanisms (Linux)
if: startsWith(matrix.os, 'ubuntu')
run: |
pushd pyNN/neuron/nmodl
nrnivmodl
popd
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
Expand Down
1 change: 0 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ include pyNN/nest/extensions/*.cpp
include pyNN/nest/extensions/CMakeLists.txt
include pyNN/nest/extensions/sli/*
include pyNN/descriptions/templates/*/*.txt
include test/parameters/*
include test/system/*.py
include test/system/scenarios/*.py
include test/unittests/*.py
Expand Down
14 changes: 12 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,20 @@ your simulator, and are not restricted to the standard models.
:copyright: Copyright 2006-2023 by the PyNN team, see AUTHORS.
:license: CeCILL, see LICENSE for details.

.. image:: https://travis-ci.org/NeuralEnsemble/PyNN.png?branch=master
:target: https://travis-ci.org/NeuralEnsemble/PyNN
.. image:: https://github.com/NeuralEnsemble/PyNN/actions/workflows/full-test.yml/badge.svg
:target: https://github.com/NeuralEnsemble/PyNN/actions/workflows/full-test.yml
:alt: Unit Test Status

.. image:: https://coveralls.io/repos/NeuralEnsemble/PyNN/badge.svg?branch=master&service=github
:target: https://coveralls.io/github/NeuralEnsemble/PyNN?branch=master
:alt: Test coverage

Funding
-------

Development of PyNN has been partially funded by the European Union Sixth Framework Program (FP6) under
grant agreement FETPI-015879 (FACETS), by the European Union Seventh Framework Program (FP7/2007­-2013)
under grant agreements no. 269921 (BrainScaleS) and no. 604102 (HBP),
and by the European Union’s Horizon 2020 Framework Programme for
Research and Innovation under the Specific Grant Agreements No. 720270 (Human Brain Project SGA1)
, No. 785907 (Human Brain Project SGA2) and No. 945539 (Human Brain Project SGA3).
12 changes: 6 additions & 6 deletions codemeta.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
"license": "https://spdx.org/licenses/CECILL-2.1",
"codeRepository": "https://github.com/NeuralEnsemble/PyNN",
"contIntegration": "https://github.com/NeuralEnsemble/PyNN/actions",
"dateModified": "2022-10-13",
"downloadUrl": "https://files.pythonhosted.org/packages/08/a5/f923f05ef1a12c64a0b674785c5c5abc376fe6386976fbfe376061837f5f/PyNN-0.10.1.tar.gz",
"dateModified": "2023-05-23",
"downloadUrl": "https://files.pythonhosted.org/packages/5e/55/4a904b95ecb1c50e716e0ba48e0918daf522c9c6bac5b75e0c08c1030217/PyNN-0.11.0.tar.gz",
"issueTracker": "https://github.com/NeuralEnsemble/PyNN/issues",
"name": "PyNN",
"version": "0.10.1",
"version": "0.11.0",
"identifier": "RRID:SCR_002715",
"description": "PyNN (pronounced 'pine') is a simulator-independent language for building neuronal network models.\n\nIn other words, you can write the code for a model once, using the PyNN API and the Python programming language, and then run it without modification on any simulator that PyNN supports (currently NEURON, NEST, and Brian), and on the SpiNNaker and BrainScaleS neuromorphic hardware systems.\n\nThe PyNN API aims to support modelling at a high-level of abstraction (populations of neurons, layers, columns and the connections between them) while still allowing access to the details of individual neurons and synapses when required. PyNN provides a library of standard neuron, synapse and synaptic plasticity models, which have been verified to work the same on the different supported simulators. PyNN also provides a set of commonly-used connectivity algorithms (e.g. all-to-all, random, distance-dependent, small-world) but makes it easy to provide your own connectivity in a simulator-independent way, either using the Connection Set Algebra (Djurfeldt, 2010) or by writing your own Python code.\n\nThe low-level API is good for small networks, and perhaps gives more flexibility. The high-level API is good for hiding the details and the book-keeping, allowing you to concentrate on the overall structure of your model.\n\nThe other thing that is required to write a model once and run it on multiple simulators is standard cell models. PyNN translates standard cell-model names and parameter names into simulator-specific names, e.g. standard model IFcurralpha is iafneuron in NEST and StandardIF in NEURON, while SpikeSourcePoisson is a poissongenerator in NEST and a NetStim in NEURON.\n\nEven if you don't wish to run simulations on multiple simulators, you may benefit from writing your simulation code using PyNN's powerful, high-level interface. In this case, you can use any neuron or synapse model supported by your simulator, and are not restricted to the standard models.\n\nPyNN is a work in progress, but is already being used for several large-scale simulation projects.",
"description": "PyNN (pronounced 'pine') is a simulator-independent language for building neuronal network models.\n\nIn other words, you can write the code for a model once, using the PyNN API and the Python programming language, and then run it without modification on any simulator that PyNN supports (currently NEURON, NEST and Brian 2) and on a number of neuromorphic hardware systems.\n\nThe PyNN API aims to support modelling at a high-level of abstraction (populations of neurons, layers, columns and the connections between them) while still allowing access to the details of individual neurons and synapses when required. PyNN provides a library of standard neuron, synapse and synaptic plasticity models, which have been verified to work the same on the different supported simulators. PyNN also provides a set of commonly-used connectivity algorithms (e.g. all-to-all, random, distance-dependent, small-world) but makes it easy to provide your own connectivity in a simulator-independent way.\n\nEven if you don't wish to run simulations on multiple simulators, you may benefit from writing your simulation code using PyNN's powerful, high-level interface. In this case, you can use any neuron or synapse model supported by your simulator, and are not restricted to the standard models.",
"applicationCategory": "neuroscience",
"releaseNotes": "http://neuralensemble.org/docs/PyNN/releases/0.10.1.html",
"releaseNotes": "http://neuralensemble.org/docs/PyNN/releases/0.11.0.html",
"funding": "https://cordis.europa.eu/project/id/945539",
"developmentStatus": "active",
"referencePublication": "https://doi.org/10.3389/neuro.11.011.2008",
Expand All @@ -24,7 +24,7 @@
"operatingSystem": ["Linux", "Windows", "macOS"],
"softwareRequirements": [
"at least one of the supported simulators: e.g. NEURON, NEST, or Brian.",
"Python (version 3.7-3.9)"
"Python (version 3.8-3.10)"
],
"relatedLink": [
"http://neuralensemble.org/docs/PyNN/",
Expand Down
4 changes: 2 additions & 2 deletions doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ class MockNESTModule(mock.Mock):
# built documents.
#
# The short X.Y version.
version = '0.10'
version = '0.11'
# The full version, including alpha/beta/rc tags.
release = '0.10.2.dev'
release = '0.11.0'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
48 changes: 14 additions & 34 deletions doc/developers/contributing.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ In addition to the requirements listed in :doc:`../installation`, you will need
install:

* pytest_
* mock_
* coverage_

to run tests, and:
Expand All @@ -43,10 +42,6 @@ To work on the development version::

$ git checkout master

To work on the latest stable release (for bug-fixes)::

$ git checkout --track origin/0.8

To keep your PyNN repository up-to-date with respect to the official
repository, add it as a remote::

Expand All @@ -62,12 +57,7 @@ To get PyNN onto your :envvar:`PYTHONPATH` there are many options, such as:
* pip editable mode (`pip install -e /path/to/PyNN`)
* creating a symbolic link named :file:`pyNN` from somewhere that is already
on your :envvar:`PYTHONPATH`, such as the :file:`site-packages` directory,
to the :file:`pyNN_trunk/pyNN` directory.

If you are developing with NEURON, don't forget to compile the NMODL files in
:file:`pyNN/neuron/nmodl` by running :command:`nrnivmodl`, and to recompile any time
you modify any of them.

to the :file:`pyNN_dev/pyNN` directory.

Coding style
============
Expand All @@ -80,7 +70,7 @@ We try to stay fairly close to PEP8_. Please note in particular:
- some function/method names in PyNN use ``mixedCase``, but these will
gradually be deprecated and replaced with ``lower_case_with_underscores``.
Any new functions or methods should use the latter.
- we currently target versions 2.7 and 3.6+
- we currently target versions 3.8+


Testing
Expand Down Expand Up @@ -190,36 +180,24 @@ last time:
you should do this on at least two Linux systems and one Mac OS X system.
* does the documentation build without errors? You should then at least skim
the generated HTML pages to check for obvious problems.
* have you updated the version numbers in :file:`setup.py`, :file:`pyNN/__init__.py`,
* have you updated the version numbers in :file:`pyproject.toml`, :file:`pyNN/__init__.py`,
:file:`doc/conf.py` and :file:`doc/installation.txt`?
* have you updated the changelog?

Once you've confirmed all the above, create a source package using::
Once you've confirmed all the above, create source and wheel packages using::

$ python setup.py sdist
$ python -m build

and check that it installs properly (you will find it in the :file:`dist`
subdirectory.
and check that they install properly (you will find them in the :file:`dist`
subdirectory).

Now you should commit any changes, then tag with the release number as follows::

$ git tag x.y.z

where ``x.y.z`` is the release number. You should now upload the documentation
to http://neuralensemble.org/docs/PyNN/ by running::

$ make zip

in the :file:`doc` directory, and then unpacking the resulting archive on the
NeuralEnsemble server.

If this is a development release (i.e. an *alpha* or *beta*), the final step is
to upload the source package to the INCF Software Center.
Do **not** upload development releases to PyPI.

To upload a package to the INCF Software Center, log-in, and then go to the
Contents_ tab. Click on "Add new..." then "File", then fill in the form and
upload the source package.
to http://neuralensemble.org/docs/PyNN/ by updating the `neuralensemble.github.io`
repository (in the :file:`docs/PyNN` directory).

If this is a final release, there are a few more steps:

Expand All @@ -228,9 +206,11 @@ If this is a final release, there are a few more steps:

$ git branch x.y

* upload the source package to PyPI::
* upload the packages to PyPI (Do **not** upload development releases to PyPI)::

$ twine upload dist/PyNN-x.y.z*

$ python setup.py sdist upload
* update the :file:`codemeta.json` file

* make an announcement on the `mailing list`_

Expand All @@ -244,7 +224,6 @@ If this is a final release, there are a few more steps:
.. _Sphinx: http://sphinx-doc.org/
.. _PEP8: http://www.python.org/dev/peps/pep-0008/
.. _pytest: https://docs.pytest.org
.. _mock: http://www.voidspace.org.uk/python/mock/
.. _coverage: http://nedbatchelder.com/code/coverage/
.. _`Python Package Index`: http://pypi.python.org/
.. _`mailing list`: http://groups.google.com/group/neuralensemble
Expand All @@ -256,3 +235,4 @@ If this is a final release, there are a few more steps:
.. _fork: https://github.com/NeuralEnsemble/PyNN/fork
.. _`PyNN repository`: https://github.com/NeuralEnsemble/PyNN/
.. _contents: http://software.incf.org/software/pynn/pynn/folder_contents
.. _`neuralensemble.github.io`: https://github.com/NeuralEnsemble/neuralensemble.github.io
4 changes: 2 additions & 2 deletions doc/download.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Downloads
Source distributions
--------------------

The `latest stable version of PyNN`_ (0.10.1) may be downloaded from the
The `latest stable version of PyNN`_ (0.11.0) may be downloaded from the
`Python Package Index`_. This is recommended for
anyone using PyNN for the first time.

Expand All @@ -14,7 +14,7 @@ the links below.

Older versions:

* `0.10.0 <https://pypi.python.org/pypi/PyNN/0.10.0>`_
* `0.10.1 <https://pypi.python.org/pypi/PyNN/0.10.1>`_
* `0.9.6 <https://pypi.python.org/pypi/PyNN/0.9.6>`_
* `0.8.0 <https://pypi.python.org/pypi/PyNN/0.8.0>`_
* `0.7.5 <https://pypi.python.org/pypi/PyNN/0.7.5>`_
Expand Down
2 changes: 2 additions & 0 deletions doc/index.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ PyNN: documentation

This is the documentation for version |release|. Earlier versions:

- `version 0.10`_
- `version 0.9`_
- `version 0.8`_
- `version 0.7 and earlier`_
Expand Down Expand Up @@ -70,6 +71,7 @@ Indices and tables
* :ref:`modindex`
* :ref:`search`

.. _`version 0.10`: http://neuralensemble.org/docs/PyNN/0.10/
.. _`version 0.9`: http://neuralensemble.org/docs/PyNN/0.9/
.. _`version 0.8`: http://neuralensemble.org/docs/PyNN/0.8/
.. _`version 0.7 and earlier`: http://neuralensemble.org/docs/PyNN/0.7/

0 comments on commit e34477f

Please sign in to comment.