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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project upgrade initiative 2021-2023 #684

Open
9 of 13 tasks
engn33r opened this issue May 5, 2021 · 3 comments
Open
9 of 13 tasks

Project upgrade initiative 2021-2023 #684

engn33r opened this issue May 5, 2021 · 3 comments

Comments

@engn33r
Copy link
Collaborator

engn33r commented May 5, 2021

Hello websocket users! 馃憢

After taking over of maintainer of this project in January 2021, some good progress has been made, including:

  • Reduced the 200+ open issues down to 25 open issues
  • Created and substantially improving the project documentation
  • Transitioned from Travis CI to GitHub Actions
  • Released two new versions (0.58.0 and 0.59.0)
  • Resolved all outstanding PRs

It's time to move to phase 2 of getting this project in order! Here's what I expect to get done:

  • Solve the licensing of this library -> comment ASAP on issue License preferences for possible migration?聽#665 if you have opinions on this! The process to transition to Apache 2.0 is expect to start in mid-May
  • Release v1.0.0 in mid-May after removing Python 2 code from library. 0.59.0 was released as the final main release supporting Python 2, and version 1.0.0 will be Python 3 only
  • Fix readthedocs documentation builds so that it properly shows the comments embedded in the code
  • Improve unit tests and increase code coverage to over 80%
  • Transition unit tests to use an offline websocket server which will allow faster and more reliable testing than using echo.websocket.org, which has had downtime that impacts the GitHub Action CI
  • Get down to only 15 open issues
  • Improve the performance in key areas of this library
  • Achieve full (or nearly full) flake8 compliance
  • Remove reliance on the unmaintained PySocks and wsaccel libraries. wsaccel is used if available while PySocks was replaced with python-socks
  • Add unit tests involving an actual (or simulated) HTTP or SOCKS proxy to test proxying features, including http_proxy_timeout
  • Transition HTTP proxy code in _http.py to use python-socks instead of custom _tunnel() function
  • Add exceptions where bare raise calls or generic exceptions exist, like here and here, to enhance future troubleshooting
  • Reduce the number of linter warnings (for example, pylinter with default settings)

For tracking purposes, issue #660 has my initial list of goals from soon after taking on the project maintainer role.

@engn33r engn33r pinned this issue May 5, 2021
@instance01
Copy link
Contributor

I just want to say - you are doing an absolutely amazing job at this. So Kudos to you!

@engn33r engn33r changed the title Project upgrade initiative 2021 Project upgrade initiative 2021-2022 Jan 21, 2022
@adamwojt
Copy link
Contributor

adamwojt commented Sep 19, 2022

May I suggest of one more effort?

  • Add optional static typing.

It would highly improve readability, type hints in IDEs, and make it easier to contribute to code. Later on when code-base would be fully typed, mypy could be used for static analysis and act as tests for making sure that correct arguments are being passed around.

I remember that when I was creating PR https://github.com/websocket-client/websocket-client/pull/842/files it was quite hard to keep up of what goes where as untyped **options where passed around the code.

This could be achieved by including typing directly in code which is easier to maintain. The great example of fully typed library is FastApi

Another alternative is stub package similar to those here: https://github.com/python/typeshed/tree/master/stubs

I am happy to help in free time.

@engn33r
Copy link
Collaborator Author

engn33r commented Oct 6, 2022

@adamwojt #749 is about static typing, we can discuss more there. Help would be very much appreciated, even if the PR only adds partial type hint support!

@engn33r engn33r mentioned this issue Oct 28, 2022
@engn33r engn33r changed the title Project upgrade initiative 2021-2022 Project upgrade initiative 2021-2023 Jan 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants