=========================
PyNN 0.13.0 release notes
=========================

July 6th 2026

Welcome to PyNN 0.13.0!

NESTML support
--------------

PyNN now supports NESTML_ neuron and synapse models with the NEST_ backend,
via the new :mod:`pyNN.nest.nestml` module.
The :func:`nestml_cell_type` and :func:`nestml_synapse_type` factory functions
allow you to define custom neuron and synapse models in NESTML and use them
as standard PyNN cell and synapse types, with full support for PyNN's
:class:`Population` and :class:`Projection` interfaces.
NESTML compilation is deferred to :func:`sim.setup()` for correct initialisation.

Many thanks to Charl Linssen for co-designing and co-implementing this.

To use NESTML models, install the optional dependency::

    pip install PyNN[nestml]


NEURON 9 compatibility
----------------------

This release includes several fixes for compatibility with NEURON_ 9:

- Fixed extern declarations in :file:`vecstim.mod`.
- Fixed mod files for the C23 standard (thanks to Ankur Sinha, PR #819).
- Applied a compatibility patch for random number handling provided by
  Goran Jelic-Cizmek.


NEST 3.10 compatibility
-----------------------

PyNN now supports NEST_ v3.10.


morphio is now optional
-----------------------

The morphio_ dependency is now optional. It is only required for models
that use morphologically detailed neuron descriptions. To install with
morphio support::

    pip install PyNN[morphologies]


Python and NumPy version support
--------------------------------

We have dropped support for Python 3.9.
Python 3.14 has been added to the test matrix.
PyNN now works with NumPy 2.x.


Bug fixes
---------

- Fix a floating-point precision issue in pyNN.brian2 that could cause a
  tiny negative run duration to be computed when resuming a simulation at
  a time such as 12.7 ms (where floating-point arithmetic leaves the
  internal time fractionally above the target).
- Fixed building of Arbor NMODL mechanisms.
- Fix handling of native Tsodyks synapse types with the NEST backend (issue #810):
  ``tau_psc`` is now only auto-copied from the post-synaptic neuron for the PyNN
  standard ``TsodyksMarkramSynapse``, not for ``native_synapse_type``; fixes also
  applied to ``tau_psc`` reading and inhibitory projection attribute access.
- Fix :meth:`StepCurrentSource.set_parameters()` when called after :func:`sim.run()`
  with the NEST backend (issue #759): amplitude times were not adjusted relative to
  the current biological time, causing NEST to silently ignore the current injection.
- Fix :class:`ParameterSpace` coercion of lists and arrays to the correct
  ``ArrayParameter`` subtype (e.g. ``Sequence``), fixing ``SpikeSourceArray``
  population parameter assignment (issue #709).
- Fix the validation schema for standard post-synaptic response models (issue #837):
  the schema is now derived from each model's ``default_parameters`` so that it
  always matches the actual parameters of the subclass, instead of a hard-coded
  set of ``e_syn`` and ``tau_syn``.


.. _NESTML: https://nestml.readthedocs.io
.. _NEST: https://www.nest-simulator.org
.. _NEURON: https://neuron.yale.edu
.. _morphio: https://morphio.readthedocs.io
