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

Releasing version 3.1.2.0 #414

Closed
kazu-yamamoto opened this issue Jun 20, 2019 · 22 comments
Closed

Releasing version 3.1.2.0 #414

kazu-yamamoto opened this issue Jun 20, 2019 · 22 comments
Assignees

Comments

@kazu-yamamoto
Copy link
Collaborator

I would like to discuss what features should be implemented in version 4. Please speak up.

I would like to have:

  • using Strict and StrictData by default
@eborden
Copy link
Collaborator

eborden commented Jun 20, 2019

@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 Strict to the Q4 milestones. I wasn't thinking an epoch change for that. However I could be convinced.

@kazu-yamamoto
Copy link
Collaborator Author

@eborden Do you have any idea to implement #151? If you explain the guideline on how to address this issue, I can try.

Or should we release version 4 without fixing #151?

@eborden
Copy link
Collaborator

eborden commented May 17, 2020

@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 String would 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:

As far as I'm aware, the only breaking change is the transformation of SocketOption to a pattern synonym. Is there something else that I'm missing?

@kazu-yamamoto
Copy link
Collaborator Author

@eborden First of all, no rush. I can wait for your work.

New SocketOption maintains backward compatibility except CustomSockOpt. This means that most network code can compile with network v4 without modification.

CustomSockOpt was 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.

@kazu-yamamoto
Copy link
Collaborator Author

@eborden Nice work for changelog. Thanks.

I think we should describe new extensible APIs: getSockOpt and setSockOpt. Some users have been waiting for them.

@eborden
Copy link
Collaborator

eborden commented May 17, 2020

@kazu-yamamoto I might also debate whether removing CustomSockOpt represents an Epoch change or a Major change (Epoch.Major.Minor.Bug). The community style for Epoch would signal a major departure in design. Really we are just opening SocketOption to improved extensibility with a slight break in the original design for extension. As well this break is type checkable. I'd argue that is a Major break, not an Epoch break. That looks like 3.2.0.0, not 4.0.0.0 if we do not include exception redesign.

@kazu-yamamoto
Copy link
Collaborator Author

v3.2 sounds good to me.

At least, we can get back CustomSockOpt if we define SocketOption using a tuple. If we do so, we can keep v3.1.

@eborden
Copy link
Collaborator

eborden commented May 17, 2020

That is a solid design tradeoff for backwards compatibility.

@eborden
Copy link
Collaborator

eborden commented May 17, 2020

I'd support a deprecated pragma if PVP 1.1 was official, but as of today deprecation is still considered a breaking change.

haskell/pvp#12

@kazu-yamamoto kazu-yamamoto changed the title version 4 version 3.2 (or possibly 3.1) May 18, 2020
@kazu-yamamoto kazu-yamamoto changed the title version 3.2 (or possibly 3.1) Releasing version 3.2 (or possibly 3.1) May 18, 2020
@kazu-yamamoto
Copy link
Collaborator Author

@eborden Could you confirm that master maintains backward compatibility with 3.1?

If so, we can go forward step by step:

  • Releasing master as v3.1.2.0
  • Releasing v3.1.3 when new error handling is completed

Let's drop Strict stuff for a while. It's likely v4 issue.

@kazu-yamamoto
Copy link
Collaborator Author

kazu-yamamoto commented May 19, 2020

@kazu-yamamoto kazu-yamamoto changed the title Releasing version 3.2 (or possibly 3.1) Releasing version 3.1.2.0 May 19, 2020
@eborden
Copy link
Collaborator

eborden commented May 20, 2020

@kazu-yamamoto I created a project to track progress on 3.1.2.0.

https://github.com/haskell/network/projects/4

@kazu-yamamoto
Copy link
Collaborator Author

@eborden After #471 is merged, let's release v3.1.2.0. Please don't forget to update CHANGELOG.md . :-)

@eborden
Copy link
Collaborator

eborden commented Jul 22, 2020

Sounds good!

@kazu-yamamoto
Copy link
Collaborator Author

@eborden Now it's your turn. Let's release v3.1.2.0.

@eborden
Copy link
Collaborator

eborden commented Jul 26, 2020

👍 I'll give the changelog a once over and get it released this evening.

@kazu-yamamoto
Copy link
Collaborator Author

@eborden Gentle ping.

@eborden
Copy link
Collaborator

eborden commented Aug 5, 2020

@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.

@kazu-yamamoto
Copy link
Collaborator Author

@eborden LGTM. Let's go.

@eborden
Copy link
Collaborator

eborden commented Aug 6, 2020

@kazu-yamamoto
Copy link
Collaborator Author

Please don't forget to make 3.1.1.0 and 3.1.1.1 deprecated due to the bug of gracefulClose.

@eborden
Copy link
Collaborator

eborden commented Aug 7, 2020

  • Candidate published
  • Older versions deprecated
  • Cafe message sent

@eborden eborden closed this as completed Aug 7, 2020
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

2 participants