Skip to content

Releasing 2.7.0.0 (again) #315

Description

@kazu-yamamoto

This is being done in https://github.com/haskell/network/tree/2.7

Modules to be obsoleted:

  • Network
  • Network.BSD

To be obsoleted in Network.Socket:

  • MkSocket
  • htonl, ntohl
  • getPeerCred, getPeerEid and tests
  • 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
  • isUnixDomainSocketAvailable
  • setCloseOnExecIfNeeded

Others:

  • AppVeyor based on Cabal
  • Hspec

Activity

  1. kazu-yamamoto commented on Mar 23, 2018

    @kazu-yamamoto
    CollaboratorAuthor

    Signature changes:

    API 2.7 3.0
    fdSocket Socket -> CInt Socket -> IO CInt
    mkSocket CInt -> Family -> SocketType -> ProtocolNumber -> SocketStatus -> IO Socket CInt -> Socket
  2. kazu-yamamoto commented on Apr 18, 2018

    @kazu-yamamoto
    CollaboratorAuthor

    I believe that we are ready to release version 2.7.0.0. GHC 7.6.3 on AppVeyar fails but this is due to out-of-memory.

    @eborden Would you review the 2.7 branch and release version 2.7.0.0?

  3. eborden commented on Apr 20, 2018

    @eborden
    Collaborator

    @kazu-yamamoto I plan to review this weekend. Will post back here.

  4. eborden commented on Apr 21, 2018

    @eborden
    Collaborator
  5. kazu-yamamoto commented on Apr 23, 2018

    @kazu-yamamoto
    CollaboratorAuthor

    @eborden Why didn't you announce it?

  6. eborden commented on Apr 23, 2018

    @eborden
    Collaborator

    @kazu-yamamoto I have not yet published the candidate. Sorry been running around and will publish/announce soon.

  7. kazu-yamamoto commented on Apr 24, 2018

    @kazu-yamamoto
    CollaboratorAuthor

    @eborden Thank you for your answer.
    When you announce, would you explain the following background?

    • We already implemented version 3.0 where socket addresses are extendable.
    • 2.7 is the version to fill the gap between 2.6 and 3.0.
    • Some historical modules are deprecated in 2.7 and will be removed in 3.0.
    • All new APIs in 3.0 is also available 2.7.
    • No partial exports essentially. The same set of APIs are available on Linux/BSD/Windows.
    • We will wait for enough time that users stop using old modules/APIs and then release version 3.0.
  8. kazu-yamamoto commented on Apr 24, 2018

    @kazu-yamamoto
    CollaboratorAuthor

    Please feel free to fix my broken English. :-)

  9. eborden commented on Apr 24, 2018

    @eborden
    Collaborator

    @kazu-yamamoto Will do! I had a similar message drafted and will incorporate your points.

  10. eborden commented on Apr 28, 2018

    @eborden
    Collaborator

    The package has been published:
    https://hackage.haskell.org/package/network-2.7.0.0

    The cafe message is copied below:

    Announcing network-2.7.0.0
    https://hackage.haskell.org/package/network-2.7.0.0

    The 2.7.0.0 release is mostly communicating change. There are a few new APIs,
    but much of this release is dedicated to preperation for 3.0.0.0. Many long
    standing functions and modules with tacit deprecation have been officially
    marked as such.

    Change log:

    • Obsoleting the Network module.
    • Obsoleting the Network.BSD module.
    • Obsoleting APIs: MkSocket, htonl, ntohl,
      getPeerCred, 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
    • Do not closeFd within sendFd
      #271
    • Exporting ifNameToIndex and ifIndexToName from Network.Socket.
    • New APIs: setCloseOnExecIfNeeded, getCloseOnExec and getNonBlock
    • New APIs: isUnixDomainSocketAvailable and getPeerCredential
    • socketPair, sendFd and recvFd are exported even on Windows.

    Upcoming changes in 3.0.0.0 will include:

    • Functions and modules marked as deprecated in 2.7.0.0 will be removed.
    • New APIs introduced in 2.7.0.0 will be present in 3.0.0.0.
    • Socket addresses will have an extensible API.
    • Linux, BSD and Windows will all have the same API.

    3.0.0.0 has been implemented, but we will wait a sufficient period of time
    before releasing it.

    As always thanks to network contributors!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions