Skip to content
This repository was archived by the owner on Dec 18, 2018. It is now read-only.

Re-enable api check #2418

Merged
merged 1 commit into from
Mar 23, 2018
Merged

Re-enable api check #2418

merged 1 commit into from
Mar 23, 2018

Conversation

JunTaoLuo
Copy link
Contributor

@JunTaoLuo JunTaoLuo requested a review from pakrym March 23, 2018 01:57
@JunTaoLuo JunTaoLuo changed the base branch from dev to release/2.1 March 23, 2018 01:57
@JunTaoLuo
Copy link
Contributor Author

API check ran but it found a breaking change: fdb4184#diff-dfd6e5bf3bc39e44af0761394afeb8ecR16 and c3ba875#diff-dfd6e5bf3bc39e44af0761394afeb8ecR18. Should I add an exception or do we need to add an overload for the constructor?
cc @halter73

@davidfowl
Copy link
Member

That package was never released to nuget.org so it's fine.

@JunTaoLuo
Copy link
Contributor Author

JunTaoLuo commented Mar 23, 2018

@davidfowl in that case I think we should remove the baseline.json file right?

@davidfowl
Copy link
Member

@davidfowl in that case I think we should remove the baseline.json file right?

Yep!

@JunTaoLuo
Copy link
Contributor Author

@dotnet-bot test this please

@JunTaoLuo
Copy link
Contributor Author

@dotnet-bot test Windows Release x64 Build

@Eilon Eilon requested a review from ryanbrandenburg March 23, 2018 06:35
@JunTaoLuo JunTaoLuo added the blocked Blocked label Mar 23, 2018
@JunTaoLuo
Copy link
Contributor Author

API breaking change in abdcb47

@davidfowl
Copy link
Member

@JunTaoLuo I think you should skip libuv for API check and file a blocking bug in preivew2, then we need to discuss how we treat pubternal API changes that are in public APIs (specifically this public API).

/cc @DamianEdwards @Eilon

@JunTaoLuo JunTaoLuo removed the blocked Blocked label Mar 23, 2018
@Eilon
Copy link
Contributor

Eilon commented Mar 23, 2018

@davidfowl it isn't clear to me what the breaking change is here by looking at the linked diffs. Changes in public APIs that use pubternals are not considered breaking changes by us, so those would be OK.

@JunTaoLuo
Copy link
Contributor Author

@Eilon Actually it's not a pubternal breaking change. The method signature of the constructor of LibuvTransportFactory changed and it's a public type. I believe the discussion is that this type should have remained pubternal.

@JunTaoLuo
Copy link
Contributor Author

Filed follow up issue at: #2424. I want to unblock the API checks for the other packages ASAP.

@halter73
Copy link
Member

halter73 commented Mar 23, 2018

IMHO the issue is that LibuvTransportFactory never should have been fully public. Instead it should be pubternal.

The only public way to use or configure libuv should be through the UseLibuv extension methods.

@JunTaoLuo
Copy link
Contributor Author

@dotnet-bot test Ubuntu 16.04 Release Build

Copy link
Contributor

@ryanbrandenburg ryanbrandenburg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a nitpick on the ApiCheck technicalities, if we haven't shipped a package yet what we're doing for other packages is to have a baseline file for them, but have it be empty. Not really sure I have enough context to weigh in on the Libuv stuff though.

@halter73
Copy link
Member

@ryanbrandenburg Are you saying that src/Kestrel.Transport.Sockets/baseline.netcore.json should be regenerated from the release/2.1 branch since it hasn't been shipped yet? If so, do we just regenerate the baseline if we change public API prior to 2.1 RTM?

@ryanbrandenburg
Copy link
Contributor

@halter73 no, I'm saying that if we haven't shipped Kestrel.Transport.Sockets yet we should have a blank file at src/Kestrel.Transport.Sockets/baseline.netcore.json. It indicates to future travelers "this space intentionally left blank", rather than that we just forgot to generate it.

Copy link
Member

@halter73 halter73 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I can submit another PR to pubternalize LibuvTransportFactory, add an API check exception and reenable the check for the libuv transport.

@halter73
Copy link
Member

@ryanbrandenburg @pranavkm Will either of you be mad if I cherry-pick b90766d into Kestrel's release/2.1 branch?

@JunTaoLuo
Copy link
Contributor Author

Absolutely furious, but I'll get over it. /s

@ryanbrandenburg
Copy link
Contributor

@halter73 not as long as you then merge the resulting commit back into dev.

- Disable api check for Transport.Libuv due to breaking change
- Add empty baseline files for unreleased packages
@JunTaoLuo JunTaoLuo force-pushed the johluo/enable-api-check branch from cd18ca1 to 63fd1e1 Compare March 23, 2018 19:55
@JunTaoLuo JunTaoLuo merged commit 63fd1e1 into release/2.1 Mar 23, 2018
@JunTaoLuo JunTaoLuo deleted the johluo/enable-api-check branch March 23, 2018 20:52
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants