8000 Version 0.10.2 release notes by murrayrm · Pull Request #1140 · python-control/python-control · GitHub
[go: up one dir, main page]

Skip to content

Version 0.10.2 release notes #1140

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

murrayrm
Copy link
Member
@murrayrm murrayrm commented Mar 8, 2025

This PR contains release notes for version 0.10.2 of the python-control toolbox. This should be the last PR merged before release v0.10.2 (with addition commits if any new functionality is added via other PRs).

@murrayrm murrayrm added this to the 0.10.2 milestone Mar 8, 2025
@coveralls
Copy link
coveralls commented Mar 8, 2025

Coverage Status

coverage: 94.759% (+0.01%) from 94.745%
when pulling 5aef9cc on murrayrm:release_notes-07Mar2025
into ad996f9 on python-control:main.

Copy link
Contributor
@roryyorke roryyorke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 types typos, one tentative wording suggestion.

@murrayrm murrayrm force-pushed the release_notes-07Mar2025 branch from 67c1e66 to 7548738 Compare March 8, 2025 17:40
@slivingston slivingston self-requested a review March 10, 2025 16:29
Copy link
Contributor
@bnavigator bnavigator left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Member
@slivingston slivingston left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent!

Not related to this PR but relevant in terms of the docs: pinning docutils at 0.16 is not necessary now because the current sphinx_rtd_theme release is compatible with later versions. I removed the pin from requirements.txt and locally the result looks good to me, though I did not carefully compare it side-by-side with the current case (of docutils pinned at 0.16). If you think this is too risky to do now, OK to wait and make the change after releasing version 0.10.2.

If you have access to the ReadTheDocs admin panel, it is worth checking why a warning banner is not appearing on older versions, as I commented in a recent issue.

While reviewing, I noticed a misprint in the docs: "indexed indexed" appears twice in timeresp.py:

* `FrequencyResponseData`: use `~FrequencyResponseData.complex` to
access the (squeeze processed) complex frequency response (instead
of the legacy `response` property) and
`~FrequencyResponseData.frdata` to access the 3D frequency response
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This does not render as a link to frdata for me when I build locally. This is expected because frdata is an attribute, whereas complex is a property. Attributes defined by assignment to self do not have documentation besides the class docstring, whereas the property definitions are functions and thus can have their own docstrings.

You might already be aware of the above, but I wanted to write it out to share my understanding while reviewing this PR.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider changing this to

`FrequencyResponseData.frdata <FrequencyResponseData>`

as it is written in the "Deprecations" section below.

Copy link
Member Author
@murrayrm murrayrm Mar 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've made the proposed change, but for future we might consider documenting attributes. This can be done by defining the attribute in the class and using the #: syntax in Sphinx. So something like this:

class FrequencyReponseData():
    ...
    #: Frequency response data array.
    #:
    #: The frequency response at each frequency point.  If 1D, ...
    frdata = None

@murrayrm
Copy link
Member Author

If you have access to the ReadTheDocs admin panel, it is worth checking why a warning banner is not appearing on older versions, #1131 (comment)

I looked into this and the settings are such that we should see warning banners. But we don't. I've added @slivingston as a maintainer in case you have time to look and want to debug.

@slivingston
Copy link
Member

If you have access to the ReadTheDocs admin panel, it is worth checking why a warning banner is not appearing on older versions, #1131 (comment)

I looked into this and the settings are such that we should see warning banners. But we don't. I've added @slivingston as a maintainer in case you have time to look and want to debug.

Thanks. It turns out that ReadTheDocs follows the Semantic Version specification, which states that versions less than 1.0.0 are for "initial development" and not stable. ReadTheDocs allows us to manually declare which version is stable by pushing a branch named stable, which I did. Now viewing older versions or "latest" (!= stable) shows warning banners as we want.

@murrayrm
Copy link
Member Author

Thanks for the ReadTheDocs fix, @slivingston. What do we need to do when we make a new release? Copy that release into stable?

@slivingston
Copy link
Member

Thanks for the ReadTheDocs fix, @slivingston. What do we need to do when we make a new release? Copy that release into stable?

Yes. Basically, the branch should point to the same commit as the tag used for the release:

git checkout stable
git merge 0.10.2
git push

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants
0