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

2.6.3.4 and 2.7.0.0 #296

Closed
kazu-yamamoto opened this issue Jan 23, 2018 · 22 comments
Closed

2.6.3.4 and 2.7.0.0 #296

kazu-yamamoto opened this issue Jan 23, 2018 · 22 comments

Comments

@kazu-yamamoto
Copy link
Collaborator

kazu-yamamoto commented Jan 23, 2018

2.7.0.0 should deprecate all APIs which exist in 2.6 but do not exist in 3.0. I would like to create a new 2.7-new branch based on 2.6 and then override current 2.7 in the future. 2.7-new should provide SockAddrCan since 2.7 does not provide a mechanism to extend socket addresses.

@kazu-yamamoto
Copy link
Collaborator Author

kazu-yamamoto commented Jan 23, 2018

Modules to be obsoleted:

  • Network
  • Network.BSD

@kazu-yamamoto
Copy link
Collaborator Author

kazu-yamamoto commented Jan 23, 2018

To be obsoleted in Network.Socket:

  • MkSocket
  • htonl, ntohl
  • getPeerCred and getPeerEid
  • send, sendTo, recv, recvFrom, recvLen
  • inet_addr, inet_ntoa
  • isConnected, isBound, isListening, isReadable, isWritable
  • aNY_PORT, iNADDR_ANY, iN6ADDR_ANY, sOMAXCONN, sOL_SOCKET, sCM_RIGHTS
  • packFamily, unpackFamily, packSocketType
  • SockAddrCan (done in 2.6)

Need to implement:

  • getPeerCredential
  • ifNameToIndex and ifIndexToName

@kazu-yamamoto
Copy link
Collaborator Author

kazu-yamamoto commented Jan 23, 2018

Signature changes:

API 2.7 3.0
fdSocket Socket -> CInt Socket -> IO CInt
mkSocket CInt -> Family -> SocketType -> ProtocolNumber -> SocketStatus -> IO Socket CInt -> Socket

@kazu-yamamoto
Copy link
Collaborator Author

kazu-yamamoto commented Jan 26, 2018

Done in 2.6.3.4:

  • Socket should be GCed.
  • doc for network-uri-flag
  • examples should locate in the beginning
  • Do not closeFd within sendFd

@kazu-yamamoto
Copy link
Collaborator Author

@eborden Now epoch change has been merged into master. So, we can proceed this issue. Do you agree with this approach?

@kazu-yamamoto
Copy link
Collaborator Author

Note that some packages are still using Network.BSD instead of getAddrInfo. So, we should release 2.7.0.0 ASAP and wait for enough time to release 3.0.

@eborden
Copy link
Collaborator

eborden commented Jan 26, 2018

@kazu-yamamoto Were there other commits in the 2.7.0.0 branch that aren't present in the 2.6.0.0? Are you just going to cherry-pick them over?

@kazu-yamamoto
Copy link
Collaborator Author

It's very hard to revert SockAddrCan stuff. So, I'm planning to cherry-pick some from the current 2.7 to 2.7-new.

But before that, we would have to release 2.6.3.4 with #288 to rescue GHC 8.2.

Cc: @qrilka

@kazu-yamamoto
Copy link
Collaborator Author

I misunderstood. 2.6.3.3 does not have #269, so #288 is meaningless.

Anyway, I believe we should release 2.6.3.4. I'm working both on 2.6.3.4 and 2.7.0.0. Please wait.

@kazu-yamamoto
Copy link
Collaborator Author

@eborden This branch is PoC for 2.6.3.4. I think this branch is read to release. Please review

This branch is PoC for 2.7.0.0 based on the ticket of this issue. Now I understand that we need steal getPeerCredential to deprecate getPeerCred and getPeerEid.

@kazu-yamamoto kazu-yamamoto changed the title 2.7.0.0 2.6.3.4 and 2.7.0.0 Jan 29, 2018
@kazu-yamamoto
Copy link
Collaborator Author

Should we just deprecate mkSocket and provide a function of a different name, say, toSocket :: CInt -> Socket?

@qrilka
Copy link

qrilka commented Feb 15, 2018

@eborden any estimates when new releases could be out?

@kazu-yamamoto
Copy link
Collaborator Author

@qrilka Evan is now on vacation. He will come back on 24th.

@kazu-yamamoto
Copy link
Collaborator Author

kazu-yamamoto commented Feb 15, 2018

@kazu-yamamoto
Copy link
Collaborator Author

aa49e91 shows that 2.6 does not have the bug of unix domain.

@kazu-yamamoto
Copy link
Collaborator Author

@eborden Would you release 2.6.3.4? No modification is necessary. Just make a tar ball and push it to hackagedb.

@kazu-yamamoto
Copy link
Collaborator Author

kazu-yamamoto commented Feb 28, 2018

For 2.7, I will do:

  • Rename the current 2.7 to 2.7-old
  • Create a new 2.7 on the top of 2.6.
  • Send a PR from my poc-2.7.0.0 branch.

@eborden
Copy link
Collaborator

eborden commented Mar 1, 2018

@kazu-yamamoto Will get a candidate up today. Thanks for the reminder 😄

@eborden
Copy link
Collaborator

eborden commented Mar 1, 2018

@eborden
Copy link
Collaborator

eborden commented Mar 1, 2018

Candidate published and cafe email sent: http://hackage.haskell.org/package/network-2.6.3.4

@kazu-yamamoto
Copy link
Collaborator Author

@eborden Thank you for releasing.

@kazu-yamamoto
Copy link
Collaborator Author

Close this in favor of #315.

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

3 participants