gorilla / websocket

Package gorilla/websocket is a fast, well-tested and widely used WebSocket implementation for Go.
https://gorilla.github.io
BSD 2-Clause "Simplified" License
21.65k stars 3.45k forks source link

Restore trust in the project #923

Open tebuka opened 4 weeks ago

tebuka commented 4 weeks ago

Is there an existing feature request for this?

Is your feature request related to a problem? Please describe.

Unreviewed and harmful changes were committed in 666c197fc9157896b57515c3a3326c3f8c8319fe (the 666 commit). The attempt to undo those changes is incomplete and left go test failing.

Describe the solution that you would like.

Submit a PR to revert back to the last good version of the repository, 8983b963247d87e6caf0e3b72db2539590f1b2c6.

Merge or discard changes made since that commit as follows:

80393295c1185e50d0b784d4bc5ffaa918d187b9 - Raise an issue to update other examples to return from HTTP handler as described in the PR. Delete this example because it does not show anything unique.

666c197fc9157896b57515c3a3326c3f8c8319fe - Discard. This is the commit damaged the project.

78c34874c838cb49db6001f37520856afac0bf24 - ? ac0789be11725ab2285233e9a3800c2312cff4fc - ?

aa976062fe599a7e343c2c9d0045a71b991c8e56 - Merge

b6a0d77c0500e63caab5d8fcb61f9e6df3a51c15 - Merge

629990daa33ae01adc1d520aa995487e1213bdc3 - Merge

6f5d2139f4b96d5edfe6c1aac4fe87fed8d7f9fd - Discard. Fixes bug introduced in discarded commit 666c197fc9157896b57515c3a3326c3f8c8319fe.

286c8961924a11102b6f9eeb7f522279d840a30b - Merge

01b0aaed92c975e5e740c6202e7ff8e5a85085ce - Discard. Because this package does not define the default buffer sizes on the server, there's no guarantee that the comment is accurate. If an application programmer does care about the size, then they should specify a size instead of relying on a default.

dcea2f088ce10b1b0722c4eb995a4e145b5e9047 - Discard. Fixes bug introduced in discarded commit 666c197fc9157896b57515c3a3326c3f8c8319fe.

871f6bbc7415d01c1121e514bbd6700e7a3a7cd6 - Merge

4a5e66f76330478fcdd6db7df593421ab6f8af95 - Discard. The change does not significantly decrease the time to run the test.

1e975a03cea10c7a1d6a7d32d695619810848706 - Merge.

0f0acefeac008c273174cc04fea21e43cbf7d9cf - Merge.

9a2140519af4fa77998ad2298a44637de0932053 - Discard. Fixes bug introduced in discarded commit 666c197fc9157896b57515c3a3326c3f8c8319fe.

4965080703eecd791242dc08feabd6e2eb9f1aa9 - Discard. Fixes bug introduced in discarded commit 666c197fc9157896b57515c3a3326c3f8c8319fe.

7d5b8cce7eaf880301e64a59194e0883789f83cc - Discard. Do not write to application's stderr.

cf50a3efbbd40d04f6496770df8599d8c53767de - Discard. Reverts previous commit.

d15aba1e612580723a1d5a638906813def387e41 - Merge

d08ee1ad9b8a1bad1b388165f85f7794a604b8e1 and 316861440d22b24cfa1977a7f92bb68b15ccbe13 - Merge

0cfb2cafd049d84b9c349558e9ff759c3b4869b4 and d293aa53e1c734d8f2b75c1992134d0b99d21917 - Merge, but fix per #910.

695e9095ce8736ac99c83939ca6b0fe93768f680 - Discard. Fixes bug introduced in discarded commit 666c197fc9157896b57515c3a3326c3f8c8319fe.

b2a86a174473e870c9fcc3eaba8957689090d2cc - Merge

58af150309a40ad57463b8087fe33d59d5a490d3 - Merge

09a6bab4667fc302c7f23ad770ce48be6fc2d15f - Discard. Fixes bug introduced in discarded commit 666c197fc9157896b57515c3a3326c3f8c8319fe.

b2c246b2ec6f86b53889c79022fec8dabe0a20bb, 1bddf2e0dba6f35492b0f5614905b291cd0ab88d - Discard. This is an incomplete attempt to revert 80393295c1185e50d0b784d4bc5ffaa918d187b9.

5fc9a591f0f1f04f5d49c296af0bb05b5b2b7fff - Merge.

eb8de5f0b823a8450fcb7b9e3346705856dba748 - Merge.

Describe alternatives you have considered.

Forking the project.

Anything else?

My proposal is very feasible. See https://github.com/tebuka/websocket where I cherry picked the useful commits from this repository.

AlexVulaj commented 3 weeks ago

Hey @tebuka , we just cut a new release v1.5.3 which reverts back to https://github.com/gorilla/websocket/commit/931041c5ee6de24fe9cba1aa16f1a0b910284d6d . We'll be stepping through the rest of the commits and trying to reapply in a way that makes sense - the steps you shared make a great guideline for how to proceed and I greatly appreciate you taking the time to look through this.

canelohill commented 3 weeks ago

Take a look at the Tebuka WebSocket fork. I cherry-picked the good changes since 76ecc29eff79f0cedf70c530605e486fc32131d1. The issue tebuka/websocket/issues/1 is an improved version of what I wrote above.

The Tebuka repo contains additional improvements beyond the cherry-picked commits.

You are welcome to pick commits from Tebuka WebSocket.

I created the Tebuka fork because I lost all confidence in the Gorilla maintainers. I have more work to do before announcing Tebuka to the world. After landing a PR in progress, I'll pause that work and wait to see what happens here.

jaitaiwan commented 3 weeks ago

Thanks for sharing @canelohill, and yeah that's the beauty of open source. We'll try to restore the communities trust. It's a little slower than we'd like cause we all have full time jobs and the gorilla org actually has a lot more repos that we help to maintain.

canelohill commented 2 weeks ago

I thought I'd help out because are are all busy with your jobs. I submitted PR #930, PR #931, PR #932 and PR #933 to get things started.

I suggest using rebase and merge on these PRs to retain original author information and linear history.

jaitaiwan commented 2 weeks ago

You're amazing thank you @canelohill , I'll endeavour to take a look very soon.