There are many user-facing changes in this release. We've changed the way how examples and default data are shipped:
- `examples/transmission_main_example.py` is replaced by `gnpy-transmission-example`
- `examples/path_requests_run.py` is replaced by `gnpy-path-request`
- Default example data, such as the equipment library, the CORONET sample topology, etc, are now shipped as a part of the Python library. You can request their location by running `gnpy-example-data`.
- There's a new tool for converting XLS data into JSON: `gnpy-convert-xls`.
The installation process got much easier, it should be enough to just run `pip install gnpy` once you've installed your Python 3.6 (or newer).
For those who use GNPy as a Python library, there were many changes as we have moved different parts of code to better places. We no longer put everything into the `gnpy.core.*` Python module hierarchy, now there is:
- [`gnpy.core`](https://gnpy.readthedocs.io/en/master/gnpy-api-core.html) which implements signal propagation,
- [`gnpy.topology`](https://gnpy.readthedocs.io/en/master/gnpy-api-topology.html) tracks requests for spectrum,
- [`gnpy.tools`](https://gnpy.readthedocs.io/en/master/gnpy-api-tools.html) provides miscellaneous tools for, e.g., dealing with JSON I/O, XLS parsing, as well as the example frontends.
GNPy now also tracks chromatic dispersion (CD) and polarization mode dispersion (PMD) of a signal as it propagates through fiber and all active nodes.
Under the hood, we've adjusted our development process a bit. We are using [Gerrit (via GerritHub.io)](https://review.gerrithub.io/p/Telecominfraproject/oopt-gnpy/+/dashboard/main:main) for code review, and [Zuul (via VexxHost)](https://zuul.vexxhost.dev/t/TelecomInfraProject/status) for Continuous Integration (CI).