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

Official Apache 2.0 License Transition #697

Closed
engn33r opened this issue May 22, 2021 · 166 comments
Closed

Official Apache 2.0 License Transition #697

engn33r opened this issue May 22, 2021 · 166 comments

Comments

@engn33r
Copy link
Collaborator

engn33r commented May 22, 2021

Hello websocket-client contributors! 👋

After discussion with the community, a consensus decision has been made to move the websocket-client project to the Apache 2.0 license. This issue was created to receive all project contributor’s approval for changing to this open and permissive license. 

If you are on the list of contributors below, you can show your approval by commenting on this issue saying “Yes, I consent to the change to the Apache 2.0 license”. That’s all you need to do, but more explanation is below if you want. The deadline is June 30 July 15 2021. If you have not contributed code, please refrain from cluttering this thread. Issue #665 was created for the license discussion if you have general comments on this transition.

Why is the license changing? Depending on when you contributed, the project was previously labeled LGPL or BSD. The license history for this project was a bit messy, so with this change we aim to:

  1. Allow websocket-client to be useful to as many users as possible via the open and permissive Apache 2.0 license.
  2. Resolve the confusion around how this project is licensed. Opinions for which license to use were solicited from the community in issue #665.
  3. Make this transition in a legally clean way that respects the rights of contributors

Why do I have to approve of the change? To make the license change official, all contributors must agree to have their work relicensed under the new license. That’s how it works in the open source world - your contribution became part of the project, but it still belongs to you.

What if I don’t approve? Please leave a note stating this. Most likely your contribution will be removed from the code base.

Other questions: The process of changing a license can be confusing, so just ask if you have questions. General comments on the transition can be added to issue #665.

Contributors:

Note 1: crossed out names have granted their consent to this change and this post will be edited regularly with updates to the list
Note 2: the contributor list is split up due to the GitHub limit on the number of people that can be tagged in one post
@0qdk4o
@2-5
@71FIL
@aarondav
@abma
@achille-roussel
@adam-stokes
@aeroaks
@agalera
@aholen
@allanlewis
@alunduil
@aluzzardi
@anshulguleria
@anuragbeniwal
@aoberoi
@apple314159
@attzonko
@atzm
@AZaugg
@basak
@bashlakov
@BonkaBonka
@bpmckinnon
@brandonmoser
@bubbleboy14
@bytesofmyself
@caseq
@c-bata
@cdare
@cgtx
@cjds
@cjellick
@cjhanks
@cmiacz
@Codeglitches
@coolyuyuyu
@CptPicard
@DaanVanVugt
@DainDwarf
@damjanstulicsonos
@dannywillems
@danrobinson88
@deniskolodin
@devmonkey22
@dimaqq
@dmiyakawa
@drew-gross
@dsuch
@dwelch91

@nneonneo
Copy link
Contributor

Yes, I consent to the change to the Apache 2.0 license.

@maximilize
Copy link

Yes, I consent to the change to the Apache 2.0 license

1 similar comment
@engn33r
Copy link
Collaborator Author

engn33r commented May 22, 2021

Yes, I consent to the change to the Apache 2.0 license

@sjlongland
Copy link
Contributor

I'm fine with it either way… but I'm a bit confused because I don't ever recall contributing code to this project and indeed the contributors list does not list me as being a contributor.

So my consent or refusal is dubious at best.

@bubbleboy14
Copy link
Collaborator

Yes, I consent to the change to the Apache 2.0 license

2 similar comments
@sfoerster
Copy link
Contributor

Yes, I consent to the change to the Apache 2.0 license

@obi1kenobi
Copy link
Contributor

Yes, I consent to the change to the Apache 2.0 license

@element-82
Copy link
Contributor

element-82 commented May 22, 2021 via email

@ransomr
Copy link

ransomr commented May 22, 2021

Yes, I consent to the change to the Apache 2.0 license

@engn33r
Copy link
Collaborator Author

engn33r commented May 22, 2021

@sjlongland Thanks for PR #272

The contributor list on github only shows the top 100 contributors, and I found that even the contributor counter undercounts the number of contributors

@trygveaa
Copy link
Contributor

Yes, I consent to the change to the Apache 2.0 license.

@trozet
Copy link
Contributor

trozet commented May 22, 2021

Yes, I consent to the change to the Apache 2.0 license

2 similar comments
@GtTmy
Copy link
Contributor

GtTmy commented May 22, 2021

Yes, I consent to the change to the Apache 2.0 license

@willstott101
Copy link
Contributor

Yes, I consent to the change to the Apache 2.0 license

@71FIL
Copy link
Contributor

71FIL commented May 22, 2021 via email

@c-bata
Copy link
Contributor

c-bata commented May 22, 2021

Yes, I consent to the change to the Apache 2.0 license

@AZaugg
Copy link
Contributor

AZaugg commented May 22, 2021 via email

@JackUrb
Copy link
Contributor

JackUrb commented May 22, 2021

Yes, I consent to the change to the Apache 2.0 license

@grintor
Copy link
Contributor

grintor commented May 22, 2021

Yes, I consent to the change to the Apache 2.0 license.

3 similar comments
@ksato9700
Copy link
Contributor

Yes, I consent to the change to the Apache 2.0 license.

@oklahomer
Copy link
Contributor

Yes, I consent to the change to the Apache 2.0 license.

@tarma
Copy link
Contributor

tarma commented May 22, 2021

Yes, I consent to the change to the Apache 2.0 license.

@bpmckinnon
Copy link

Yes, I consent to the change to the Apache 2.0 license

@brandonmoser
Copy link
Contributor

Yes, I consent to the change to the Apache 2.0 license.

@truong-hua
Copy link
Contributor

truong-hua commented May 22, 2021 via email

@gtzilla
Copy link
Contributor

gtzilla commented May 22, 2021

Yes, I consent to the change to the Apache 2.0 license.

1 similar comment
@tifayuki
Copy link
Contributor

Yes, I consent to the change to the Apache 2.0 license.

@engn33r
Copy link
Collaborator Author

engn33r commented Jul 16, 2021

Thanks to everyone's effort here, we are nearly done with the license change process! The unfortunate news is that we are not quite done yet, but we are close.

I have classified the contributors who have not replied to the license change below. Most of the non-responsive contributors had their contribution removed, changed, or provided an extremely minor or not novel change. As maintainer of this project, I don't think these contributions should hold back the license change process. However, I identified 3 contributors who I think provided a "substantial" contributions where a new feature was added to websocket-client. I think reverting these contributions would impact how some users use this library, and we might reach this situation if we cannot get consent from these contributors, but I would prefer to try to find alternative means of communication with these contributors to get their consent to the license change. I would appreciate if others are able to help with getting in contact with these 3 contributors! The 3 contributors I am aiming to get license change approval from are: @cmiacz, @jhtitor, and @juhhov. I expect to post an update here in the next 1-2 weeks with the progress on this final stage of the process.

In an effort to be as transparent as possible, below are my detailed notes analyzing the contributions of each contributor who did not respond to this thread. Comments on my approach or conclusions are welcome.

Status Key
👻 = Contribution removed/replaced
💤 = Very minor (and not original or unique) edit, often 1 line
📓 = Didn’t modify actual codebase. Modified comments, readme, or example wsdump.py.
💻 = Contribution modified from the original
🎉 = more substantial change, should try to get license change consent

Contributor PR Contributed Still part of codebase? Original/novel contribution? Status Contribution summary
@2-5 #114 Yes No 💤 Added version variable to setup.py, but the version number has since changed.
@BonkaBonka #22 No N/A 👻 One line change to pong message to avoid hardcoded “Hi”
@cdare #169 Yes No 💤 Edited 2 lines, 1 to fix a typo and the other to provide proper input to the read_headers() function.
@cgtx #145 No N/A 👻 PR provided Python2 code, which has since been removed
@cjhanks #94 Yes No 💤 Placed existing code into for loop to fix bug. Since the commit, code moved from _core.py to _http.py.
@cmiacz #270 Yes Yes 🎉 Add no_proxy environment variable subnet IP matching
@CptPicard #224 Yes No 💤 One line edit to check if message is a string
@DainDwarf #189 Yes No 💤 One line edit to return proper value to fix bug
@damjanstulicsonos #566 Yes No 💤 Allow the Connection header to have non-default values, following the same pattern as other headers that can be set
@dmiyakawa #517 No N/A 👻 Edited license in setup.py, which has since been reverted
@dwelch91 #36 Yes No 💤 Mostly formatting and whitespace changes, except for setting the sslopt parameter to the sslopt value.
@edne #316 Yes No 📓 Fixed one line of wsdump.py example code, didn’t impact library’s underlying codebase.
@enewhuis #168 Yes No 💤 Renamed one variable in _http.py
@ericmoritz #19 Yes No 💤 Removed one line of code that would have caused bugs in certain cases
@ihjmh #468 Yes No 💤 Reverted the callback code to what it was before PR #442
@ilysym #226 Yes Yes 💻 Added socket parameter to connect() function, which has mostly almost fully been overwritten.
@ishankhare07 #127 No N/A 📓 Fixed typo in readme.rst (a file which no longer exists in this project)
@javacruft #338 No N/A 👻 Added sort function which has since been removed.
@jhtitor #417
#513
Yes Yes 🎉 #417 added PySocks support for proxying connections. #513 is a one line fix to make sure a custom timeout parameter gets used by the code.
@jin10086 #380 Yes No 📓 Minor formatting edits to readme.rst (a file which no longer exists in this project)
@juhhov #311
#474
Yes Yes 🎉 #311 adds a threading lock under high volume conditions in _abnf.py. #474 provided a significant change by adding custom _recv() and _send() functions to _socket.py
@jwilk #231
#303
Yes No 📓 Typo fixes in comments, no changes to the codebase
@l1am9111 #26 Yes No 💤 Add option to modify origin value, following same pattern as modifying other headers
@lano2088 #611 No N/A 👻 PR was reverted soon after being merged
@louisliu #82 Yes No 💤 Most of the PR was editing comments in the code, and the only code edits were to set default values for variables. The minor code modifications in the __init__.py file has since been moved to _app.py.
@lucashussey #579 Yes No 💤 Fixed minor typo in variable name, didn’t change functionality
@lujinda #301 No N/A 👻 Removed a line of code that was later reintroduced due to issue #327.
@maranov #162 Yes No 💤 One line edit, moved errno import to different file
@mfitzpatrick #448 No N/A 👻 Contribution no longer exists in the project since enable_multiThread was set to True by default.
@mjhanninen #45
#50
Yes Yes 💻 PR #45 introduced some unit tests and made some modification that have since been overwritten or heavily modified. PR #50 introduced unit tests, not impacting the underlying code base.
@newsham #195 Yes No 💤 Include support for another sslopt input that is provided by importing ssl
@nlevitt #212 Yes No 💤 One line change to change error message
@nnam #194 Yes No 📓 Added proxy support to the example code in wsdump.py. This did not add functionality to the underlying code base, and the manner of using the existing proxy feature in example code is provided in the project documentation and source code.
@novel-yet-trivial #360 No N/A 📓 Updated an example in readme.rst (a file which no longer exists in this project) and this line of the example has been modified.
@olie304 #586 Yes No 💤 One line bug fix. Swapped boolean value used to check if websocket is still running.
@Qambar #96 No N/A 👻 Fixed a minor typo in readme.rst (a file which no longer exists in this project) and this section is no longer part of the readme
@rjschwei #88
#146
Yes Yes 💻 PR #146 corrected the LGPL license text (which will obviously be removed when switching to the Apache 2.0 license). PR #88 provided CA cert functionality in the _core.py file, but that functionality has been fully removed from the _core.py file and modified in the _http.py file.
@sawdustofmind #605 Yes No 💤 Capitalize “Upgrade” in Connection header
@ukwksk #344
#347
Yes No 📓 Merged PR #344 and PR #347 and incremented websocket-client version numbers. No original code base changes of their own. Likely duplicate of username @yukiwakisaka based on email of commits.
@xloem #655 Yes No 📓 Merged @engn33r’s forked changes, but didn’t provide any contributions of their own
@yukiwakisaka #388 Yes No 📓 Merged PR #388 and incremented websocket-client version numbers. No original code base changes of their own
@zakdances #47 Yes No 📓 Only modified readme.rst (a file which no longer exists in this project) and did not change the code base

@juhhov
Copy link

juhhov commented Jul 16, 2021

Yes, I consent to the change to the Apache 2.0 license.

1 similar comment
@cmiacz
Copy link

cmiacz commented Jul 16, 2021

Yes, I consent to the change to the Apache 2.0 license.

@graingert
Copy link
Contributor

@engn33r just an fyi - you should manually mark 'unhelpful' comments on this thread as 'helpful'

@graingert
Copy link
Contributor

@engn33r I suspect you won't be able to contact @jhtitor

@engn33r
Copy link
Collaborator Author

engn33r commented Jul 29, 2021

@graingert yes, I was a bit too optimistic waiting for a response there

My current plan is to replace the commits from @jhtitor, but I won't get around to that for another few days. If someone wants to handle that quicker, feel free to submit a PR. Otherwise after I replace that code we should ideally switch this project over to the Apache 2.0 license in early August.

@carlwgeorge
Copy link
Contributor

Yes, I consent to the change to the Apache 2.0 license.

@EddieBreeg
Copy link
Contributor

Yes, I consent to the change to the Apache 2.0 license.

engn33r added a commit that referenced this issue Aug 11, 2021
Due to the ongoing license change process in #697, PR #417 from @jhtitor
needed to be removed. PR #417 added SOCKS proxy support using
PySocks, which is the most popular Python SOCKS proxy and is
used by libraries such as 'requests' and 'urllib3'. However, as of
mid-2021, PySocks has not seen any activity since Sep 2019 and has
several open issues. Because PySocks does not appear to be maintained
and has no forks that are actively trying to replace the old
repository, python-socks may be a better choice going forward. Although
python-socks is a newer project, it has good code coverage and recent commits from earlier this year (2021).
@engn33r
Copy link
Collaborator Author

engn33r commented Aug 11, 2021

Thank you contributors - we did it! 🎉🎉🎉

The websocket-client project has now officially transitioned to the Apache 2.0 license with the 1.2.0 release.

JarbasAl pushed a commit to HelloChatterbox/HolmesIV that referenced this issue Sep 6, 2021
core equivalent of MycroftAI/mycroft-messagebus-client#21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client#697
JarbasAl pushed a commit to HelloChatterbox/HolmesIV that referenced this issue Sep 8, 2021
core equivalent of MycroftAI/mycroft-messagebus-client#21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client#697
JarbasAl pushed a commit to HelloChatterbox/HolmesIV that referenced this issue Sep 8, 2021
core equivalent of MycroftAI/mycroft-messagebus-client#21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client#697
JarbasAl pushed a commit to HelloChatterbox/HolmesIV that referenced this issue Sep 8, 2021
core equivalent of MycroftAI/mycroft-messagebus-client#21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client#697
JarbasAl pushed a commit to HelloChatterbox/HolmesIV that referenced this issue Sep 8, 2021
core equivalent of MycroftAI/mycroft-messagebus-client#21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client#697
JarbasAl pushed a commit to HelloChatterbox/HolmesIV that referenced this issue Sep 8, 2021
core equivalent of MycroftAI/mycroft-messagebus-client#21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client#697
JarbasAl pushed a commit to HelloChatterbox/HolmesIV that referenced this issue Sep 8, 2021
core equivalent of mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client/issues/697
JarbasAl pushed a commit to HelloChatterbox/HolmesV that referenced this issue Sep 8, 2021
core equivalent of mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client/issues/697
JarbasAl pushed a commit to HelloChatterbox/HolmesV that referenced this issue Sep 8, 2021
core equivalent of mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client/issues/697
JarbasAl pushed a commit to HelloChatterbox/HolmesIV that referenced this issue Sep 8, 2021
core equivalent of mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client/issues/697
JarbasAl pushed a commit to OpenVoiceOS/ovos-core that referenced this issue Oct 19, 2021
core equivalent of mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client/issues/697
JarbasAl pushed a commit to OpenVoiceOS/ovos-core that referenced this issue Oct 19, 2021
core equivalent of mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client/issues/697
JarbasAl pushed a commit to OpenVoiceOS/ovos-core that referenced this issue Oct 19, 2021
core equivalent of mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client/issues/697
JarbasAl pushed a commit to OpenVoiceOS/ovos-core that referenced this issue Oct 21, 2021
core equivalent of mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client/issues/697
JarbasAl pushed a commit to OpenVoiceOS/ovos-core that referenced this issue Oct 26, 2021
core equivalent of mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client/issues/697
JarbasAl pushed a commit to OpenVoiceOS/ovos-core that referenced this issue Oct 26, 2021
core equivalent of mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility.

Since messagebus-client>=0.9.4 it also supports old websocket client versions this is now safe to do

This solves the issues surrounding licensing, see websocket-client/websocket-client/issues/697
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

No branches or pull requests