Skip to content

Commit 91821a3

Browse files
authored
Clear release notes (#871)
2 parents 3ef0981 + c8898dc commit 91821a3

File tree

1 file changed

+4
-101
lines changed

1 file changed

+4
-101
lines changed

RELEASE_NOTES.md

Lines changed: 4 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -2,113 +2,16 @@
22

33
## Summary
44

5-
This release represents 3 months of work so it includes a lot of changes. Most of them are (breaking) API changes, in the hopes to make a more consistent and easier to use SDK 1.0. There are also quite a few bug fixes and a couple of new features.
5+
<!-- Here goes a general summary of what this release is about -->
66

77
## Upgrading
88

9-
- The `BatteryPool.power_status` method now streams objects of type `BatteryPoolReport`, replacing the previous `Report` objects.
10-
11-
- `Channels` has been upgraded to version 1.0.0b2, for information on how to upgrade please read [Channels release notes](https://github.com/frequenz-floss/frequenz-channels-python/releases/tag/v1.0.0-beta.2).
12-
13-
- In `BatteryPoolReport.distribution_result`,
14-
* the following fields have been renamed:
15-
+ `Result.succeeded_batteries``Result.succeeded_components`
16-
+ `Result.failed_batteries``Result.failed_components`
17-
+ `Request.batteries``Request.component_ids`
18-
* and the following fields are now type-hinted as `collections.abc.Set`, to clearly indicate that they are read-only:
19-
+ `Result.succeeded_components`
20-
+ `Result.failed_components`
21-
22-
23-
- The `Fuse` class has been moved to the `frequenz.sdk.timeseries` module.
24-
25-
- `microgrid.grid()`
26-
- A `Grid` object is always instantiated now, even if the microgrid is not connected to the grid (islanded microgrids).
27-
- The rated current of the grid fuse is set to `Current.zero()` in case of islanded microgrids.
28-
- The grid fuse is set to `None` when the grid connection component metadata lacks information about the fuse.
29-
- Grid power and current metrics were moved from `microgrid.logical_meter()` to `microgrid.grid()`.
30-
31-
Previously,
32-
33-
```python
34-
logical_meter = microgrid.logical_meter()
35-
grid_power_recv = logical_meter.grid_power.new_receiver()
36-
grid_current_recv = logical_meter.grid_current.new_receiver()
37-
```
38-
39-
Now,
40-
41-
```python
42-
grid = microgrid.grid()
43-
grid_power_recv = grid.power.new_receiver()
44-
grid_current_recv = grid.current.new_receiver()
45-
```
46-
47-
- Consumer and producer power formulas were moved from `microgrid.logical_meter()` to `microgrid.consumer()` and `microgrid.producer()`, respectively.
48-
49-
Previously,
50-
51-
```python
52-
logical_meter = microgrid.logical_meter()
53-
consumer_power_recv = logical_meter.consumer_power.new_receiver()
54-
producer_power_recv = logical_meter.producer_power.new_receiver()
55-
```
56-
57-
Now,
58-
59-
```python
60-
consumer_power_recv = microgrid.consumer().power.new_receiver()
61-
producer_power_recv = microgrid.producer().power.new_receiver()
62-
```
63-
64-
- The `ComponentGraph.components()` parameters `component_id` and `component_category` were renamed to `component_ids` and `component_categories`, respectively.
65-
66-
- The `GridFrequency.component` property was renamed to `GridFrequency.source`
67-
68-
- The `microgrid.frequency()` method no longer supports passing the `component` parameter. Instead the best component is automatically selected.
69-
70-
- The `actor.ChannelRegistry` was rewritten to be type-aware and just a container of channels. You now need to provide the type of message that will be contained by the channel and use the `get_or_create()` method to get a channel and the `stop_and_remove()` method to stop and remove a channel. Once you get a channel you can create new senders and receivers, or set channel options, as usual. Please read the docs for a full description, but in general this:
71-
72-
```python
73-
r = registry.new_receiver(name)
74-
s = registry.new_sender(name)
75-
```
76-
77-
Should be replaced by:
78-
79-
```python
80-
r = registry.get_or_create(T, name).new_receiver()
81-
s = registry.get_or_create(T, name).new_sender()
82-
```
83-
84-
- The `ReceiverFetcher` interface was slightly changed to make `maxsize` a keyword-only argument. This is to make it compatible with the `Broadcast` channel, so it can be considered a `ReceiverFetcher`.
9+
<!-- Here goes notes on how to upgrade from previous versions, including deprecations and what they should be replaced with -->
8510

8611
## New Features
8712

88-
- A new method `microgrid.voltage()` was added to allow easy access to the phase-to-neutral 3-phase voltage of the microgrid.
89-
90-
- The `actor.ChannelRegistry` is now type-aware.
91-
92-
- A new class method `Quantity.from_string()` has been added to allow the creation of `Quantity` objects from strings.
13+
<!-- Here goes the main new features and examples or instructions on how to use them -->
9314

9415
## Bug Fixes
9516

96-
- 0W power requests are now not adjusted to exclusion bounds by the `PowerManager` and `PowerDistributor`, and are sent over to the microgrid API directly.
97-
98-
- `microgrid.frequency()` / `GridFrequency`:
99-
100-
* Fix sent samples to use `Frequency` objects instead of raw `Quantity`.
101-
* Handle `None` values in the received samples properly.
102-
* Convert `nan` values in the received samples to `None`.
103-
104-
- The resampler now properly handles sending zero values.
105-
106-
A bug made the resampler interpret zero values as `None` when generating new samples, so if the result of the resampling is zero, the resampler would just produce `None` values.
107-
108-
- The PowerManager no longer holds on to proposals from dead actors forever. If an actor hasn't sent a new proposal in 60 seconds, the available proposal from that actor is dropped.
109-
110-
- Fix `Quantity.__format__()` sometimes skipping the number for very small values.
111-
112-
- Not strictly a bug fix, but the microgrid API version was bumped to v0.15.3, which indirectly bumps the common API dependency to v0.5.x, so the SDK can be compatible with other APIs using a newer version of the common API.
113-
114-
Downstream projects that require a `frequenz-api-common` v0.5.x and want to ensure proper dependency resolution should update their minimum SDK version to this release.
17+
<!-- Here goes notable bug fixes that are worth a special mention or explanation -->

0 commit comments

Comments
 (0)