Repository navigation
Releasing version 3.1.2.0 #414
Description
Activity
@kazu-yamamoto I've opened the v4 project https://github.com/haskell/network/projects/3
There is a column for "Proposed" where we can stack items that we think should be in. That can serve as an initial brainstorm. Then we can spend some time triaging that list.
I actually added
Strictto the Q4 milestones. I wasn't thinking an epoch change for that. However I could be convinced.@eborden Do you have any idea to implement #151? If you explain the guideline on how to address this issue, I can try.
I'll spend some time formulating something. Even a domain specific exception like
newtype NetworkException = NetworkException Stringwould be an improvement over the current situation, but there is likely a lot more granularity that can provide utility.Or should we release version 4 without fixing #151?
@kazu-yamamoto I'm attempting to round up the current unreleased changes (see unreleased in the
CHANGELOG.md). Here is what I have:- Defined
openSocketin terms ofAddrInfo
5b0987197fe2ed7beddd7b2096522d624e71151e - Improved FreeBSD portability for Control Messages and tests
#452 - Support
sendMsgandrecvMsg
#433
#445
#451- Added
sendMsgandrecvMsgAPIs - Redefined
SocketOptionas pattern synonym
- Added
- Implement total Show functions for SockAddr
#441 - Improve portability changing
u_int32_ttouint32_t.
#442 - Removed obsolete CPP statements.
d1f4ee60ce6a4a85abb79532f64d4a4e71e2b1ce - Loads of improved test coverage.
cbd67cc50a37770432eb978ac8b8eb6da3664817
fcc2d86d53a6bec793f6a979a9e8fdf7fe3f4c22
6db96969b3e8974abbfd50a7f073baa57376fd5e
As far as I'm aware, the only breaking change is the transformation of
SocketOptionto a pattern synonym. Is there something else that I'm missing?- Defined
@eborden First of all, no rush. I can wait for your work.
New
SocketOptionmaintains backward compatibility exceptCustomSockOpt. This means that most network code can compile withnetworkv4 without modification.CustomSockOptwas removed since I don't know how to express pattern for the tuple. If we can express the pattern, we can provide perfect backward compatibility.@eborden Nice work for changelog. Thanks.
I think we should describe new extensible APIs:
getSockOptandsetSockOpt. Some users have been waiting for them.Reacted by Evan Rutledge Borden@kazu-yamamoto I might also debate whether removing
CustomSockOptrepresents anEpochchange or aMajorchange (Epoch.Major.Minor.Bug). The community style forEpochwould signal a major departure in design. Really we are just openingSocketOptionto improved extensibility with a slight break in the original design for extension. As well this break is type checkable. I'd argue that is aMajorbreak, not anEpochbreak. That looks like 3.2.0.0, not 4.0.0.0 if we do not include exception redesign.v3.2 sounds good to me.
At least, we can get back
CustomSockOptif we defineSocketOptionusing a tuple. If we do so, we can keep v3.1.That is a solid design tradeoff for backwards compatibility.
I'd support a deprecated pragma if PVP 1.1 was official, but as of today deprecation is still considered a breaking change.
- changed the title
[-]version 3.2 (or possibly 3.1)[/-][+]Releasing version 3.2 (or possibly 3.1)[/+]on May 18, 2020 @eborden Could you confirm that
mastermaintains backward compatibility with 3.1?If so, we can go forward step by step:
- Releasing
masteras v3.1.2.0 - Releasing v3.1.3 when new error handling is completed
Let's drop
Strictstuff for a while. It's likely v4 issue.- Releasing
- can't install on docker + nix-2.3 (nixos-19.09) #439 should be fixed in v3.1.2.0
- gracefulClose stops servers due to a lot of TCP states #438 should be fixed in v3.1.2.0
- changed the title
[-]Releasing version 3.2 (or possibly 3.1)[/-][+]Releasing version 3.1.2.0[/+]on May 19, 2020 @kazu-yamamoto I created a project to track progress on 3.1.2.0.
Sounds good!
@eborden Now it's your turn. Let's release v3.1.2.0.
👍 I'll give the changelog a once over and get it released this evening.
@eborden Gentle ping.
Reacted by Evan Rutledge Borden@kazu-yamamoto I've updated https://github.com/haskell/network/blob/master/CHANGELOG.md to include 3.1.2.0. Many changes were not previously represented there. Please let me know if you see anything I missed or needs further clarification. After you have approved I'll packaged everything up and release.
@eborden LGTM. Let's go.
Please don't forget to make 3.1.1.0 and 3.1.1.1 deprecated due to the bug of
gracefulClose.Reacted by Evan Rutledge Borden- Candidate published
- Older versions deprecated
- Cafe message sent
I would like to discuss what features should be implemented in version 4. Please speak up.
I would like to have:
StrictandStrictDataby default