Closed grlee77 closed 8 years ago
@grlee77 good idea, it's time for that.
Should be pretty straightforward to get this one out the door. No beta or RC needed I'd think, however one to two weeks before the planned release we should probably ask on the mailing list that people test current master against their own code.
The above list is a good outline for the release notes.
@grlee77 are you interested to be the release manager for this one?
Would be good to get all PRs that are (almost) ready merged in time. The breakup of _pywt
above isn't urgent for 0.4.0, but the other ones listed above are all very nice to have.
Sounds good to me.
I can rebase #55 (api cleanup) this week - it should then be good to merge.
I can finish #116 (dwt axis arg) easily if #125 is merged. #120 (dwtn axis arg) is more tricky though.
@rgommers I volunteer to be release manager, but since it will be my first time, I will likely need some help along the way.
@grlee77 cool. I'll help out where needed.
Hi @rgommers
I started drafting the v0.4.0 release notes based on the features listed above. Is there a script somewhere that autogenerates the author lists and the lists of issues and PRs closed as in the previous 0.3.0-notes.rst
?
Yes, use $ python util/authors.py v0.3.0..HEAD
and $ python util/gh_lists.py v0.4.0
.
i think we should try to get #116, #130 and #67 merged prior to tagging v0.4.0.
Does Friday, Dec 18 sound reasonable for this? I think they are all almost there.
We can then notify the mailing list to let people test for a bit before making a release by the end of the month.
That makes sense to me. And pinging the mailing list sounds like a good idea.
I've submitted a fix to #101 in #144 (making demo images importable). Might want to include it in the release.
Thanks for all the recent work everyone!
I will plan to merge the last few v0.4.0 PRs tomorrow and then notify the mailing list to give some time for additional testing.
In drafting the email to the mailing list, I wanted to give a planned date for the release. Are there any objections to Dec 28? That would provide 10 days for testing.
Several of those days are holiday but yes I think that is fine.
Did any of you receive a post by me from the mailing list? I tried posting a notice about testing the upcoming release both yesterday and today, but do not see either showing up. I can retry via email rather than using the "New Topic" button on the google groups page, but I don't want to spam the list if it was already sent.
I didn't receive anything. It should also show up on the google groups web interface if it came through.
Hmm... Frustrating. I tried again, but via direct email from my gmail account rather than through the web interface. I still don't see anything. If you wouldn't mind, can you posting the message for me? I wonder if it is too long and/or getting blocked as spam somehow? I don't get an error message or anything, it just doesn't seem to show up.
Here is what I tried to send to pywavelets@googlegroups.com
subject: upcoming PyWavelets release (0.4.0), please test
Hello,
We are nearly ready to release PyWavelets v0.4.0. Please test from current master and report any problems you encounter (https://github.com/PyWavelets/pywt/). The current plan is to tag the release on Dec 28.
I have pasted a summary of the changes from our current draft of the release notes below. There are several new features and performance improvements in addition to some API cleanup.
New features
============
1D and 2D stationary wavelet transforms
---------------------------------------
1D (``iswt``) and 2D (``iswt2``) stationary wavelet transforms were added.
These currently only support even length inputs
Faster 2D and nD wavelet transforms
-----------------------------------
The multidimensional DWT and IDWT code was refactored and is now an order of
magnitude faster than in previous releases. The following functions benefit:
``dwt2``, ``idwt2``, ``dwtn``, ``idwtn``.
Complex floating point support
------------------------------
64 and 128-bit complex data types are now supported by all wavelet transforms.
nD implementation of the multilevel DWT and IDWT
------------------------------------------------
The existing 1D and 2D multilevel transforms were supplemented with an nD
implementation.
Wavelet transforms can be applied along a specific axis/axes
------------------------------------------------------------
All wavelet transform functions now support explicit specification of the axis
or axes upon which to perform the transform.
Example Datasets
----------------
Two additional 2D grayscale images were added (`camera`, `ascent`). The
previously existing 1D ECG data (`ecg`) and the 2D aerial image (`aero`)
used in the demos can also now be imported via functions defined in
`pywt.data` (e.g. ``camera = pywt.data.camera()``)
Deprecated features
===================
A number of functions have been renamed, the old names are deprecated and will
be removed in a future release:
- ``intwave``, renamed to ``integrate_wavelet``
- ``centrfrq``, renamed to ``central_frequency``
- ``scal2frq``, renamed to ``scale2frequency``
- ``orthfilt``, renamed to ``orthogonal_filter_bank``
Integration of general signals (i.e. not wavelets) with ``integrate_wavelet``
is deprecated.
The ``MODES`` object and its attributes are deprecated. The new name is
``Modes``, and the attribute names are expanded:
- ``zpd``, renamed to ``zero``
- ``cpd``, renamed to ``constant``
- ``sp1``, renamed to ``smooth``
- ``sym``, renamed to ``symmetric``
- ``ppd``, renamed to ``periodic``
- ``per``, renamed to ``periodization``
Backwards incompatible changes
==============================
``idwt`` no longer takes a ``correct_size`` parameter. As a consequence,
``idwt2`` inputs must match exactly in length. For multilevel transforms, where
arrays differing in size by one element may be produced, use the ``waverec``
functions from the ``multilevel`` module instead.
Bugs Fixed
==========
float32 inputs were not always respected. All transforms now return float32
outputs when called using float32 inputs.
Incorrect detail coefficients were returned by `downcoef` when `level > 1`.
Other changes
=============
Much of the API documentation is now autogenerated from the corresponding
function docstrings. The numpydoc sphinx extension is now needed to build the
documentation.
Sent, showed up straight away. You're visible on the member list, so that's not the problem. Maybe you signed up with a different email address than you use now?
@rgommers , @kwohlfahrt , @aaren I sent an email to Ralph with a few questions regarding release procedures, but perhaps it is easier to just ask here.
I think I know how to update setup.py
, tag the release and upload the source distributions to PyPI, but have still have a couple of questions:
1.) how do the wheels get built and transferred to PyPI? 2.) Is there a script that uploads the HTML docs to PyPI or do I build them locally and upload the docs manually through the web interface?
In regards to posting to the PyWavelets google group, I see that the settings for the group say: "Posts from new members are held for moderation.". Who is the moderator for the group? I don't have any previous posts to the group, so it may be that the messages I sent were awaiting approval somewhere.
just a quick note that the issue with me posting to the google groups should be sorted out now. My messages were awaiting moderation, but now @nigma has added me (and @rgommers) as owners of the group.
1.) how do the wheels get built and transferred to PyPI?
Appveyor builds the wheels for each PR, so if you modify setup.py
via a PR then all you have to do is grab those wheels and upload them to PyPi. Wheels are stored under the "Artifacts" tab (example: https://ci.appveyor.com/project/PyWavelets/pywt/build/1.0.138/job/hhb9h644f1ro9048/artifacts) and you can upload them from the PyPi web interface (log in, browse to PyWavelets, and use the "upload" button under the Files tab).
2.) Is there a script that uploads the HTML docs to PyPI or do I build them locally and upload the docs manually through the web interface?
If you push the v0.4.0
tag to Github then ReadTheDocs will build the html docs automatically. Docs are never uploaded to PyPi. So nothing to do here.
just a quick note that the issue with me posting to the google groups should be sorted out now. My messages were awaiting moderation, but now @nigma has added me (and @rgommers) as owners of the group.
ah, good to have that sorted out. I emptied the queue of messages to be moderated.
Maybe one note on uploading: there are a lot of bad ways to do it (like setup.py upload
), the recommended way is twine upload -s <tarballs or wheels to upload>
. That's secure, and the -s
will GPG-sign the files. You'll need to have your GPG key set up for that (if no time for that now, leave out the -s
).
@rgommers
Thanks for the tip to use twine
rather than setup.py upload
. I have tagged the release and uploaded to PyPI. I also marked it as a release on github. Is there anything else I still need to do aside from emailing the google group to announce the release?
The docs at http://pywavelets.readthedocs.org/en/latest/ are up to date, but the ones at: http://pythonhosted.org/PyWavelets/ (linked to from the top of https://pypi.python.org/pypi/PyWavelets/0.4.0) are still the release 0.3.0 docs.
I have now updated the docs on http://pythonhosted.org/PyWavelets/ by uploading a .zip file via the pypi web interface
0.4.0 released
Forgot about pythonhosted.org, sorry. Release looks good and complete, thanks for all the efforts @grlee77!
Oh, one thing may be useful: for the release announcement, put a few sentences about "what is PyWavelets" at the top, and send it also to the scipy-user
and python-announce
lists. Not many people read the PyWavelets list....
Great. Thanks all!
It looks like we have a nice set of additions that could make up a new release in the near future, although there are a few outstanding PRs that would be nice to have. Any objections to planning a v0.4 release prior to the end of the year?
Here is a summary of the key things that have been completed since v0.3. Let me know if I missed anything.
PRs already merged:
new features
maintenance
bugs fixed
PRs in progress/review:
new features
maintenance
bugs fixed
breaking changes