=====================
Automatic Migrations
--------------------
- Update indexing for light edges to index the N1 and N2 node identifiers
together.
(`3302 <https://github.com/vertexproject/synapse/pull/3302>`_)
- See :ref:`datamigration` for more information about automatic migrations.
Model Changes
-------------
- Update to the ``inet``, ``it``, and ``meta`` models.
(`3285 <https://github.com/vertexproject/synapse/pull/3285>`_)
(`3298 <https://github.com/vertexproject/synapse/pull/3298>`_)
(`3301 <https://github.com/vertexproject/synapse/pull/3301>`_)
(`3310 <https://github.com/vertexproject/synapse/pull/3310>`_)
- See :ref:`userguide_model_v2_145_0` for more detailed model changes.
Features and Enhancements
-------------------------
- Add a new Storm keyword, ``reverse( ... )``, which can be used to run a lift
operation in reverse order.
(`3266 <https://github.com/vertexproject/synapse/pull/3266>`_)
- Update indexing for light edges to index the N1 and N2 node identifiers
together.
(`3302 <https://github.com/vertexproject/synapse/pull/3302>`_)
- Update the Storm ``once`` command behavior and documentation to be more
intuitive when setting its timestamp and allowing nodes through it.
(`3282 <https://github.com/vertexproject/synapse/pull/3282>`_)
- Add a ``synapse_version`` key to the Storm Package schema. This can be used
to provide a string version indentifier with a minimum and maximum version,
such as ``>=2.145.0,<3.0.0``.
(`3304 <https://github.com/vertexproject/synapse/pull/3304>`_)
- Update the Storm runtime to respect permissions declared with a ``default``
value of ``true``. This allows Storm packages to define permissions which
are defaulted to ``true``.
(`3287 <https://github.com/vertexproject/synapse/pull/3287>`_)
- Add a ``SIGHUP`` handler to the base Cell which can be used to reload HTTPS
certificate files from disk. The ``synapse.tools.reload`` tool can also be
used to trigger this behavior.
(`3293 <https://github.com/vertexproject/synapse/pull/3293>`_)
- The optional ``max:users`` feature no longer counts ``locked`` or
``archived`` users when adding users.
(`3295 <https://github.com/vertexproject/synapse/pull/3295>`_)
- Update the YAML functions to use the ``yaml.CSafeLoader`` and
``yaml.CSafeDumper``.
(`3289 <https://github.com/vertexproject/synapse/pull/3289>`_)
Bugfixes
--------
- Replace ``asyncio.wait_for()`` use with a copy of the Python 3.12
implementation to avoid a race condition when cancelling tasks.
(`3299 <https://github.com/vertexproject/synapse/pull/3299>`_)
(`3307 <https://github.com/vertexproject/synapse/pull/3307>`_)
- Fix an issue with the Storm trigger ``set()`` method not properly checking
the values that it allows to be set.
(`3290 <https://github.com/vertexproject/synapse/pull/3290>`_)
- Fix an off-by-one bug in the ``SlabSeqn.aiter()`` method.
(`3300 <https://github.com/vertexproject/synapse/pull/3300>`_)
- Fix a performance issue with the IPv6 regular expression used in the scrape
APIs.
(`3311 <https://github.com/vertexproject/synapse/pull/3311>`_)
Improved Documentation
----------------------
- Revise the Storm User Guide to consolidate the background information
and data modeling sections. Add a user focused section on Views and Layers.
(`3303 <https://github.com/vertexproject/synapse/pull/3303>`_)
- Add ``int`` type specific information to the Storm documentation.
(`3288 <https://github.com/vertexproject/synapse/pull/3288>`_)
- The Storm ``movetag`` command now moves the ``doc:url`` property from the
old ``syn:tag`` node to the new ``syn:tag`` node.
(`3294 <https://github.com/vertexproject/synapse/pull/3294>`_)
- Storm Library and Type documentation no longer renders function signatures
with Python style defaults.
(`3296 <https://github.com/vertexproject/synapse/pull/3296>`_)
Deprecations
------------
- Many deprecated Cortex and splice related APIs have been marked for removal
after 2023-10-01. The full list of APIs which will be removed can be found
at :ref:`changelog-depr-20231001`.
(`3292 <https://github.com/vertexproject/synapse/pull/3292>`_)
- The use of ``synapse.common.aclosing()`` has been replaced with
``contextlib.aclosing()``. The vendored ``aclosing()`` implementation will
be removed in ``v2.250.0``.
(`3206 <https://github.com/vertexproject/synapse/pull/3206>`_)