Skip to content

Commit ad79dc4

Browse files
authored
Add release notes to documentation (#591)
* Add release notes as markdown files * Tidy markdown files * Add to index * Links to github issues/PRs * Add back menu * Add docstring for new function
1 parent d7b1bc6 commit ad79dc4

File tree

7 files changed

+152
-0
lines changed

7 files changed

+152
-0
lines changed

docs/conf.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
# http://www.sphinx-doc.org/en/master/config
66
# -- Project information -----------------------------------------------------
77

8+
from docutils import nodes
9+
from docutils.parsers.rst import roles
10+
811
project = "MUSE"
912
copyright = "2024, Imperial College London"
1013
author = "Imperial College London"
@@ -61,3 +64,29 @@
6164
# -- Options for HTML output -------------------------------------------------
6265

6366
html_theme = "classic"
67+
68+
# -- Render GitHub links -------------------------------------------------
69+
70+
71+
def github_role(name, rawtext, text, lineno, inliner, options=None, content=None):
72+
"""Creates links to issues/pull requests on the MUSE_OS GitHub site.
73+
74+
To use in markdown:
75+
{github}`ISSUE_NUMBER` (e.g. {github}`123`)
76+
77+
To use in rst:
78+
:github:`ISSUE_NUMBER` (e.g. :github:`123`)
79+
80+
In both cases this will create a clickable link (visible as #123) to the relevant
81+
GitHub page (i.e. https://github.com/EnergySystemsModellingLab/MUSE_OS/issues/123)
82+
83+
The base URL is for the issues page, but this will also work for pull requests and
84+
discussions, as GitHub will automatically redirect to the appropriate page.
85+
"""
86+
base_url = "https://github.com/EnergySystemsModellingLab/MUSE_OS/issues/"
87+
url = f"{base_url}{text}"
88+
node = nodes.reference(rawtext, f"#{text}", refuri=url, **(options or {}))
89+
return [node], []
90+
91+
92+
roles.register_canonical_role("github", github_role)

docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ ModUlar energy system Simulation Environment: MUSE
2525
advanced-guide/index
2626
faq
2727
api
28+
release-notes/index
2829

2930

3031
Indices and tables

docs/release-notes/index.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Release notes
2+
=============
3+
4+
This is the list of changes to MUSE between each release.
5+
6+
.. toctree::
7+
:maxdepth: 1
8+
9+
v1.2.3
10+
v1.2.2
11+
v1.2.1
12+
v1.2.0

docs/release-notes/v1.2.0.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Release notes for MUSE v1.2.0 (September 19, 2024)
2+
3+
These are the main changes in MUSE v1.2.0.
4+
5+
Please read carefully if upgrading from an earlier version, as some of the changes may require you to modify your model input files or downstream analysis scripts.
6+
7+
## Dropped support for Python 3.8
8+
9+
- MUSE is now compatible with Python versions 3.9 to 3.12
10+
- If you were previously using Python 3.8, you must create a new environment using 3.9 or later. There are instructions on setting up a new environment with the appropriate Python version [here](https://muse-os.readthedocs.io/en/latest/installation/virtual-env-based.html)
11+
12+
## Model settings
13+
14+
- The default `demand_share` has changed from "new_and_retro" to "standard_demand" ({github}`349`). If your model uses retrofit agents, you MUST explicitly specify `demand_share = "new_and_retro"` for all relevant sectors. If this is left out, the model will try to use the "standard_demand" share and will fail. See updated documentation about this parameter [here](https://muse-os.readthedocs.io/en/latest/inputs/toml.html#standard-sectors).
15+
- The default value for `maximum_iterations` has changed from 3 to 100 ({github}`386`)
16+
17+
## Input files
18+
19+
- The `Level` column is no longer required in the `Technodata` and `CommOut` files, as this parameter isn't used and never has been ({github}`374` and {github}`377`). See updated documentation about this parameter [here](https://muse-os.readthedocs.io/en/latest/inputs/commodities_io.html).
20+
- The `ProcessName` column is no longer required in consumption files specified in the _consumption_path_ format. See updated documentation [here](https://muse-os.readthedocs.io/en/latest/inputs/toml.html#preset-sectors). Users are encouraged to remove this column from their files (summing rows for different processes if necessary), as this more accurately depicts how this data is used in the model.
21+
22+
## Output files
23+
24+
- We have changed how timeslices are represented in some of the output files ({github}`412`), so this now follows a consistent format across all files. Some of your downstream scripts for loading and analysing these output files may need to be updated.
25+
- Previously it was necessary to specify `index = true` (in `settings.toml`) for some of the outputs to prevent some important columns from being dropped. This is no longer required, and users should no longer require the `index` parameter for any reason ({github}`412`).
26+
27+
## Model
28+
29+
- Fixed a bug with the calculation of commodity prices ({github}`418`), which affects all models that have multiple timeslices and `maximum_iterations` > 1.
30+
- Fixed a bug which was preventing the convergence criteria in the MCA algorithm from being properly checked ({github}`407`). This will likely affect the results of most models that have `maximum_iterations` > 1.
31+
- The `minimum_service_factor` parameter was previously being applied incorrectly - this has been fixed ({github}`388`).
32+
- Constraints specified in the `settings.toml` file (with the `constraints` key) were previously being ignored (the model would always revert to the default list of constraints). This has been fixed ({github}`354`).
33+
- We have added a constraint that limits installed capacity to be no greater than that required to meet peak demand ({github}`355`). This is applied by default, however if you are manually overriding the defaults in the settings file with the `constraints` key, you MUST include "demand_limiting_capacity" in this list otherwise this constraint won't be used. Note that this only applies to the scipy solver (`lpsolver = "scipy"` in `settings.toml`), not the adhoc solver.
34+
- Fixed a bug with the calculation of LCOE in models that have a utilization factor of zero for some timeslices ({github}`304`)
35+
- Fixed a bug with the weighted_sum decision method ({github}`449`)
36+
37+
## Other notes
38+
39+
- Please don't use the "metric_supply", "metricy_supply", "timeslice_supply", "yearly_supply", "metric_consumption", "metricy_consumption", "timeslice_consumption" or "yearly_consumption" outputs, as these sometimes give incorrect values and will likely be deleted in the future. You should be able to get everything you need by using the "supply" and "consumption" outputs within each sector, for example (replacing `SECTOR_NAME` with the name of the sector):
40+
41+
```toml
42+
[[sectors.SECTOR_NAME.outputs]]
43+
filename = '{cwd}/{default_output_dir}/{Sector}/{Quantity}.csv'
44+
quantity = "supply"
45+
sink = "aggregate"
46+
```

docs/release-notes/v1.2.1.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Release notes for MUSE v1.2.1 (October 9, 2024)
2+
3+
These are the main changes in MUSE v1.2.1.
4+
5+
Please read carefully if upgrading from an earlier version, as some of the changes may require you to modify your model input files.
6+
7+
## Carbon budget module
8+
9+
- The bisection method has been fixed, as this was not working as expected before ({github}`483`, {github}`484`). Additionally, a number of default settings have been changed, and parameters renamed. Users must carefully check which parameters are specified in their settings files, as any unspecified parameters will revert to the new defaults. The main changes are as follows:
10+
- `control_undershoot` / `control_overshoot`: The default has been changed from True to False
11+
- `method`: The default has changed from `fitting` to `bisection`
12+
- `method_options.refine_price`: The default has changed from True to False
13+
- `method_options.resolution`: New parameter
14+
- `method_options.sample_size`: This parameter no longer applies to the bisection algorithm, and won't be permitted when using that method. Please use `method_options.max_iterations` instead
15+
- `method_options.tolerance` and `method_options.early_termination_count`: New parameters for the bisection method
16+
17+
__Please read the [new documentation page](https://muse-os.readthedocs.io/en/documentation/inputs/toml.html#carbon-market) in full before using a carbon budget__
18+
19+
## Default model
20+
21+
- A number of changes have been made to the default model that is generated with `muse --model default --copy PATH`. This is mostly to simplify the outputs ({github}`461`)
22+
23+
## Tutorials
24+
25+
- The tutorials have been simplified and re-ordered ({github}`470`)
26+
- A tutorial has been added explaining the use of a carbon budget ({github}`486`)

docs/release-notes/v1.2.2.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Release notes for MUSE v1.2.2 (October 28, 2024)
2+
3+
These are the main changes in MUSE v1.2.2.
4+
5+
## Bug fixes
6+
7+
This release fixes several errors in calculations related to the utilization factor, minimum service factor and commodity prices. Interested readers can follow the discussions in the following pull requests:
8+
9+
- {github}`368`
10+
- {github}`518`
11+
- {github}`534`
12+
13+
Developers should pay particular attention to the latter two PRs, to avoid introducing similar mistakes in the future.

docs/release-notes/v1.2.3.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Release notes for MUSE v1.2.3 (November 19, 2024)
2+
3+
These are the main changes in MUSE v1.2.0.
4+
5+
Please read carefully if upgrading from an earlier version, as some of the changes may require you to modify your model input files.
6+
7+
## Log files ({github}`560`)
8+
9+
- MUSE will now output two log files to the results folder whenever a simulation is run: one (`muse_info.log`) containing info and debug messages, and the other (`muse_warning.log`) containing warning messages.
10+
- Users are particularly encouraged to consult the `muse_warnings.log` file after each run, and pay attention to any messages shown.
11+
12+
## `MaxCapacityGrowth` parameter ({github}`565`)
13+
14+
- The definition of this parameter has changed to compound growth rather than linear growth. It can now be properly interpreted as the maximum growth of the technology per year. See the documentation for this parameter [here](https://muse-os.readthedocs.io/en/latest/inputs/technodata.html)
15+
- To give an example, if a 5 year time period is being used, a value of 0.5 previously meant that capacity was allowed to grow by 250% over the time period (0.5 x 5 x 100), but with compound growth the limit is now 660% (((1.5 ** 5) - 1) x 100)
16+
- Users may see results change as a result of this.
17+
18+
## Material and Variable costs ({github}`563`)
19+
20+
- Fixes errors in the calculation of material and variable costs, particularly in the case of technologies with output quantities not equal to 1. See #563 for details
21+
- This effects decision metrics, but doesn't directly effect commodity prices. There are known issues remaining in the calculation of commodity prices ({github}`551`, {github}`552`), which will be fixed separately
22+
23+
## Minor bug fixes
24+
25+
- Fixed an error introduced in v1.2.1 which caused carbon budget simulations to fail if no method options were specified ({github}`539`)

0 commit comments

Comments
 (0)