- The optimization is now performed using the `pyomo=False` setting in the `pypsa.lopf.network_lopf`. This speeds up the solving process significantly and consumes much less memory. The inclusion of additional constraints were adjusted to the new implementation. They are all passed to the `network_lopf` function via the `extra_functionality` argument. The rule `trace_solve_network` was integrated into the rule `solve_network` and can be activated via configuration with `solving: options: track_iterations: true`. The charging and discharging capacities of batteries modelled as store-link combination are now coupled ([\116](https://github.com/PyPSA/pypsa-eur/pull/116)).
- An updated extract of the [ENTSO-E Transmission System Map](https://www.entsoe.eu/data/map/) (including Malta) was added to the repository using the [GridKit](https://github.com/PyPSA/GridKit) tool. This tool has been updated to retrieve up-to-date map extracts using a single [script](https://github.com/PyPSA/GridKit/blob/master/entsoe/runall_in_docker.sh). The update extract features 5322 buses, 6574 lines, 46 links. ([\#118](https://github.com/PyPSA/pypsa-eur/pull/118)).
- Added [FSFE REUSE](https://reuse.software) compliant license information. Documentation now licensed under CC-BY-4.0 ([\#160](https://github.com/PyPSA/pypsa-eur/pull/160)).
- Added a 30 minute [video introduction](https://pypsa-eur.readthedocs.io/en/latest/introduction.html) and a 20 minute [video tutorial](https://pypsa-eur.readthedocs.io/en/latest/tutorial.html)
- Networks now store a color and a nicely formatted name for each carrier, accessible via `n.carrier['color']` and `n.carrier['nice_name']`(networks after `elec.nc`).
- Added an option to skip iterative solving usually performed to update the line impedances of expanded lines at `solving: options: skip_iterations:`.
- `snakemake` rules for retrieving cutouts and the natura raster can now be disabled independently from their respective rules to build them; via `config.*yaml` ([\136](https://github.com/PyPSA/pypsa-eur/pull/136)).
- Removed the `id` column for custom power plants in `data/custom_powerplants.csv` to avoid custom power plants with conflicting ids getting attached to the wrong bus ([\131](https://github.com/PyPSA/pypsa-eur/pull/131)).
- Add option `renewables: {carrier}: keep_all_available_areas:` to use all availabe weather cells for renewable profile and potential generation. The default ignores weather cells where only less than 1 MW can be installed ([\150](https://github.com/PyPSA/pypsa-eur/pull/150)).
- Added a function `_helpers.load_network()` which loads a network with overridden components specified in `snakemake.config['override_components']` ([\128](https://github.com/PyPSA/pypsa-eur/pull/128)).
- Bugfix in `base_network` which now finds all closest links, not only the first entry ([\143](https://github.com/PyPSA/pypsa-eur/pull/143)).
- Bugfix in `cluster_network` which now skips recalculation of link parameters if there are no links ([\149](https://github.com/PyPSA/pypsa-eur/pull/149)).
- Added information on pull requests to contribution guidelines ([\151](https://github.com/PyPSA/pypsa-eur/pull/151)).
- Improved documentation on open-source solver setup and added usage warnings.
- Updated `conda` environment regarding `pypsa`, `pyproj`, `gurobi`, `lxml`. This release requires PyPSA v0.17.0.