Skip to content
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

Misc: To release 1.0.25 #777

Closed
mcuee opened this issue Sep 7, 2020 · 113 comments
Closed

Misc: To release 1.0.25 #777

mcuee opened this issue Sep 7, 2020 · 113 comments
Labels
Release Related to release and milestone
Milestone

Comments

@mcuee
Copy link
Member

mcuee commented Sep 7, 2020

Merged main feature improvement

Merged main bug fixes


Postponed for 1.0.26 (see #1047 )

@mcuee mcuee added this to the 1.0.25 milestone Sep 7, 2020
@mcuee mcuee added the Release Related to release and milestone label Sep 7, 2020
@mcuee
Copy link
Member Author

mcuee commented Jan 16, 2021

With #838 and #831 and a few other issues resolved, probably it is good to prepare for a maintainence release 1.0.25.

@mcuee
Copy link
Member Author

mcuee commented Jan 16, 2021

I think #850 will be fixed soon as well.

@mcuee
Copy link
Member Author

mcuee commented Jan 16, 2021

Pull request 833 should be in as well. #833

@yorickvP
Copy link

yorickvP commented Feb 6, 2021

Hi! Great work fixing these issues! I just ran into #831 and spent a lot of time debugging until someone pointed me to the issue. It might be worth it to release 1.0.25 so nobody ends up using 1.0.24 by accident (it's the default in some distros).

@mcuee
Copy link
Member Author

mcuee commented Feb 7, 2021

I think the following will be good to be included in the 1.0.25 release:
#833 (pending review)
#856 (reviewed, pending minor modification of commit message, this will fix #858)
#850 (pending review of #851).

@tormodvolden
Copy link
Contributor

tormodvolden commented Feb 7, 2021

Please consider #847 (pending review of #852) as well, although the regression part was taken care of by #843.

@mcuee
Copy link
Member Author

mcuee commented Feb 9, 2021

Thanks to Chris. #833 and #850 have been closed.

@mcuee
Copy link
Member Author

mcuee commented Feb 9, 2021

@hjelmn Please help to review #852 and then see if you want to consider that for the release. Thanks.

@mcuee mcuee pinned this issue Mar 1, 2021
@EmptyVisual
Copy link

EmptyVisual commented Apr 14, 2021

@mcuee Can we do a partial maintenance release of the Linux regressions in #856 and #858 whilst we wait for the Darwin issues to be reviewed and merged separately? Most of us Linux users have been forcibly sitting on 1.0.23 for months now because of the bugs in the 1.0.24 release.

@mcuee
Copy link
Member Author

mcuee commented Apr 14, 2021

I think #856 needs to be closed for the release to happen.

@tormodvolden
Copy link
Contributor

+1 for high time to get a maintenance release with regression fixes out. I asked about #852 (Darwin) here two months ago because it is relatively trivial, but this is not a regression fix so please don't let it delay any release. Indeed it can seem like the release is hanging on #856, where the suggested fix is a massive commit with a mix of code refactoring and actual changes, API changes even. IMO it is not a critical bug fix (it was discussed whether it was a bug at all) so it could wait until after 1.0.25 and bake longer in the tree before going into a release.

@mcuee
Copy link
Member Author

mcuee commented Apr 14, 2021

#856 fixed #858. So I think #856 is still good to be merged. Nathan already reviewed it and he mentioned just needs to change the commit message. So I think it is better to merge it before the release.

@mcuee
Copy link
Member Author

mcuee commented Apr 14, 2021

@dickens Please weigh in as well. Thanks.

@mcuee
Copy link
Member Author

mcuee commented Jun 1, 2021

As far as I am concerned, only #856 needs to be merged and we should be ready for an RC.

@mcuee
Copy link
Member Author

mcuee commented Jun 5, 2021

#856 has been merged.

@mcuee
Copy link
Member Author

mcuee commented Jun 5, 2021

BTW, if you are interested, welcome to join the maintainer team. Right now only Nathan and Chris are actively handling the release.

Release since 2015.
libusb 1.0.24: by Chris on 11 Dec 2020
libusb 1.0.23 by Nathan on on 29 Aug 2019
libusb 1.0.22 by Chris on 25 Mar 2018
libusb 1.0.21 by Nathan on 26 Oct 2016
libusb 1.0.20 by Chris on 14 Sep 2015

@mcuee
Copy link
Member Author

mcuee commented Jun 5, 2021

The main difficulty with libusb is probably on Windows backends. As of today, there are 48 issues and half of them are related to Windows. And one of the main missing feature under Windows is Hotplug.

But never mind if you do not want to handle Windows, you can still help to handle Linux and/or macOS.

@mcuee
Copy link
Member Author

mcuee commented Jun 6, 2021

For those who are interested to see the 1.0.25 release coming soon, please help to carry out tests on git head. Thanks.

@hjelmn
Copy link
Member

hjelmn commented Jun 6, 2021

I identifed why the Darwin backend is failing the stress test. Will have a fix today.

The problem is in the ordering in libusb_exit caused by destroying the cached device list when the init count goes to 0. Still not sure I agree with this behavior change. I used a library destructor function for a reason... I can fix the ordering issue but this code is somewhat more fragile than I would like.

@hjelmn
Copy link
Member

hjelmn commented Jun 6, 2021

Identified the issue with Linux and the stress test. Fixing.

@hjelmn
Copy link
Member

hjelmn commented Jun 6, 2021

Interesting question. I have always assumed this is true but we don't document it. We can call:

libusb_set_option(NULL, ...);

before the default context is created, right? If not the stress test is wrong. Otherwise I have a fix that will allow this. Will hold off of this change until I get a consensus.

@hjelmn
Copy link
Member

hjelmn commented Jun 6, 2021

Opened #923 as a prototype. Please comment.

@mcuee
Copy link
Member Author

mcuee commented Jun 7, 2021

#923 seems to be good to me.

@mcuee
Copy link
Member Author

mcuee commented Jun 7, 2021

I identifed why the Darwin backend is failing the stress test. Will have a fix today.

The problem is in the ordering in libusb_exit caused by destroying the cached device list when the init count goes to 0. Still not sure I agree with this behavior change. I used a library destructor function for a reason... I can fix the ordering issue but this code is somewhat more fragile than I would like.

Commit 676076c helps macOS stress test to have the same result as Linux and Windows. Then #923 should be able to fix the remaining segfault issues with Stress test.

But issue #924 still exists under macOS when running xusb example.

@patstew
Copy link
Contributor

patstew commented Jun 7, 2021

Any chance of getting #867 in? And my #312 too if there aren't any objections.

@mcuee
Copy link
Member Author

mcuee commented Dec 3, 2021

@hjelmn
Copy link
Member

hjelmn commented Dec 11, 2021

Yeah. I can merge #1026 but only if I can get one more review. Adding an API should be done with care and I don't want to have to replace libusb_init() more than once.

@hjelmn
Copy link
Member

hjelmn commented Dec 11, 2021

Once that is resolved we need to cut a new RC and get things rolling. We solved the single biggest issue blocking macOS.

@mcuee
Copy link
Member Author

mcuee commented Jan 19, 2022

So that the following two are pending for the RC release.

Just wondering if there are any updates on these two last remaining main issues?

@tormodvolden
Copy link
Contributor

IMO, if they are not fixing regressions, these should wait for next release, and we should make the RC (and possibly the 1.0.25 release) with what we have in git now. I previously wanted these two items included, but as we discussed in #1026, these major API changes can need more review and no rushing. And we dearly need a 1.0.25 now.

@mcuee
Copy link
Member Author

mcuee commented Jan 21, 2022

I agree. We can probably tag the release now, or at least the RC1.

@mcuee
Copy link
Member Author

mcuee commented Jan 21, 2022

@hjelmn @LudovicRousseau What are your opinions?

@LudovicRousseau
Copy link
Member

No objection for a release soon.

"Release early, release often". Even if we do not have the manpower for the "release often".

@hjelmn
Copy link
Member

hjelmn commented Jan 21, 2022

Go for it!

@tormodvolden
Copy link
Contributor

RC1 is out, please help fill in (and extend) the test matrix in #1046. Thanks Ludovic for the autobuild stuff, that helps already build testing on a load of Windows platforms.

@mcuee
Copy link
Member Author

mcuee commented Jan 29, 2022

@tormodvolden @hjelmn @LudovicRousseau
It seems that we are more or less ready for the 1.0.25 release. Anything else we would like to fix?

@hjelmn
Copy link
Member

hjelmn commented Jan 29, 2022

Looks good to me.

@tormodvolden
Copy link
Contributor

Is there anything missing in the ChangeLog or other things worth mentioning in the release announcement?

Does anyone have the Windows binaries package *.7z build automatized or can volunteer to create it once we have the release tarball?

@mcuee
Copy link
Member Author

mcuee commented Jan 29, 2022

Is there anything missing in the ChangeLog or other things worth mentioning in the release announcement?

Does anyone have the Windows binaries package *.7z build automatized or can volunteer to create it once we have the release tarball?

I think the changelog is okay.

As for the Windows binary, it is okay not to have that initially. I remember that was the case when we released 1.0.23. I actually do not know how the 7z Windows binary packge is created. It is not a real issue though.

  1. Users with Visual Studio can easily build from source
  2. vcpkg has already libusb package
  3. MSYS2 distro will also have libusb package as well.

@mcuee
Copy link
Member Author

mcuee commented Jan 29, 2022

The MinGW binary package is built with the following script, but you can see it is using a multilib enabled toolchain. I am not so sure what is a suitable toolchain to use in this case.
https://github.com/libusb/libusb/blob/master/.private/bm.sh

Previously the MSVC (Visual Studio) toolchain binary was built with WDK scripts (WDK 7.1.0) so it does not have the dependancies of the VC runtime packages and had the support of Windows XP. But later the WDK build scripts were removed along with remove of Windows XP support. So I am not so sure the baseline VS version for the VS binary.

@tormodvolden
Copy link
Contributor

The 1.0.24 .7z has a long list of VS targets that correspond exactly to the Appveyor builds, so I wonder if Appveyor was used to build them, maybe locally. @LudovicRousseau's web service instance doesn't seem to store build artifacts.

@mcuee
Copy link
Member Author

mcuee commented Jan 29, 2022

I think we can tag 1.0.25 release first so that various distributions (Linux distro, macOS Homebrew and macports, Windows vcpkg and Msys2) can take the new releases.

We can always release the official windows binary once we figured out the way. If Chris is not available, probably Pete can help as well.

@LudovicRousseau
Copy link
Member

@tormodvolden I have not configured github actions to store any artifacts. That was on purpose. I don't think we need them for Unix.
It is possible to generate and store artifacts for Windows builds. But I will not take care of Windows builds myself.

Maybe the lack of Windows builds will motivate some Windows developers to help the project? :-)

@tormodvolden
Copy link
Contributor

tormodvolden commented Jan 29, 2022

@LudovicRousseau I was thinking of your Appveyor builds for Windows. I think storage of artifacts can easily be enabled there, but I fully understand if you don't want to get involved in it.

I see that @dickens also has Appveyor libusb builds, also without artifacts. It is Ludovic's that currently are linked from our github page, I think it was Chris' some time ago.

@LudovicRousseau
Copy link
Member

@tormodvolden I completely forgot Appveyor :-)
Everything was configured and developed by @dickens, not me.

@tormodvolden
Copy link
Contributor

I have configured appveyor so it stores build artifacts. So I can spin a .7z with all VS builds plus MinGW cross-build, and have it uploaded before I announce the release. Tentatively on Monday night (UTC).

@mcuee
Copy link
Member Author

mcuee commented Jan 30, 2022

I have configured appveyor so it stores build artifacts. So I can spin a .7z with all VS builds plus MinGW cross-build, and have it uploaded before I announce the release. Tentatively on Monday night (UTC).

That will be great. Thanks.

@tormodvolden tormodvolden unpinned this issue Jan 31, 2022
@mcuee
Copy link
Member Author

mcuee commented Feb 1, 2022

Wonderful that we finally have the libusb 1.0.25 release.

BTW, here in Singapore it is Chinese New Year holiday today.

@tormodvolden
Copy link
Contributor

That was good timing :) Happy New Year!

If the release is as quiet as the RC, we're good. It is already picked up by e.g. homebrew.

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

No branches or pull requests

10 participants