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

Target .NET Standard 1.3 #1318

Merged
merged 143 commits into from Jun 24, 2017

Conversation

Projects
None yet
@AArnott
Contributor

AArnott commented May 8, 2016

Adds .NET Core support (by way of targeting .NET Standard 1.3). .NET Framework 4.0 is still a target, but we
leverage VS2017 .NET SDK projects to multi-target both net40 and netstandard1.3 to maximize reach and enable libgit2sharp to work across platforms by way of .NET Core.

Closes #1293

AArnott added some commits Mar 29, 2016

Move most source into a Shared Project
This is in preparation for a portable project alongside the net40 one.
Add portable project
Plenty of compiler errors at this point.
Consistently apply NET40 compiler constant to all configs
Before this, it only existed in debug configuration.
Suppress serializable exceptions for portable
RecurseSubmodulesException claimed to be serializable but was missing a deserializing constructor so I added that.
Use Nerdbank.GitVersioning
This will keep the maintenance cost of updating the version to just one file (one line, in fact) instead of the 3 lines it was before, and the dozens of lines it would become with the increase in number of projects that may occur in the near future.
Merge upstream/master into portable
And fix up build breaks it introduces
@AArnott

This comment has been minimized.

Show comment
Hide comment
@AArnott

AArnott May 1, 2017

Contributor

Yes, that makes sense.
nit: I would leave analyzers in PrivateAssets as well, since if analyzers were ever added to the nativebinaries package, it wouldn't be meant to be consumed by libgit2sharp consumers.

Contributor

AArnott commented May 1, 2017

Yes, that makes sense.
nit: I would leave analyzers in PrivateAssets as well, since if analyzers were ever added to the nativebinaries package, it wouldn't be meant to be consumed by libgit2sharp consumers.

@bording

This comment has been minimized.

Show comment
Hide comment
@bording

bording May 1, 2017

Member

nit: I would leave analyzers in PrivateAssets as well, since if analyzers were ever added to the nativebinaries package, it wouldn't be meant to be consumed by libgit2sharp consumers.

So my thought process on this was, since we don't have any analyzers in the native binaries package, there wouldn't be any harm dropping that from the list. I can't currently think of a scenario where we'd add an analyzer, but if we did, who's to say if it would be just for LibGit2Sharp, or all consumers?

Ultimately, regardless of which option we choose, there's a chance it would have to be revisited should the native binaries package actually add an analyzer, so it made sense to me to only include things in the list that we know for sure we don't want downstream consumers to see.

Member

bording commented May 1, 2017

nit: I would leave analyzers in PrivateAssets as well, since if analyzers were ever added to the nativebinaries package, it wouldn't be meant to be consumed by libgit2sharp consumers.

So my thought process on this was, since we don't have any analyzers in the native binaries package, there wouldn't be any harm dropping that from the list. I can't currently think of a scenario where we'd add an analyzer, but if we did, who's to say if it would be just for LibGit2Sharp, or all consumers?

Ultimately, regardless of which option we choose, there's a chance it would have to be revisited should the native binaries package actually add an analyzer, so it made sense to me to only include things in the list that we know for sure we don't want downstream consumers to see.

@AArnott

This comment has been minimized.

Show comment
Hide comment
@AArnott

AArnott May 1, 2017

Contributor

That's fine. It was just a nit anyway, and my motivation for it was to maintain the default nuget include/exclude behaviors unless we had an explicit reason to do otherwise.

Contributor

AArnott commented May 1, 2017

That's fine. It was just a nit anyway, and my motivation for it was to maintain the default nuget include/exclude behaviors unless we had an explicit reason to do otherwise.

@AArnott

This comment has been minimized.

Show comment
Hide comment
@AArnott

AArnott May 6, 2017

Contributor

@bording and @ethomson you're not waiting on me, right? I think we're waiting on your review of the PR?
It would be great to get this in, of course. :)

Contributor

AArnott commented May 6, 2017

@bording and @ethomson you're not waiting on me, right? I think we're waiting on your review of the PR?
It would be great to get this in, of course. :)

@bording

This comment has been minimized.

Show comment
Hide comment
@bording

bording May 7, 2017

Member

@AArnott No, not waiting on you. I do want to take one more look over this now that all the feedback has been incorporated, but I believe the main thing we're waiting on is that @ethomson wants to get out one more release before we merge this in.

Member

bording commented May 7, 2017

@AArnott No, not waiting on you. I do want to take one more look over this now that all the feedback has been incorporated, but I believe the main thing we're waiting on is that @ethomson wants to get out one more release before we merge this in.

@ethomson

This comment has been minimized.

Show comment
Hide comment
@ethomson

ethomson May 7, 2017

Member

I'd like to do a release but we're waiting on finalizing some things in libgit2. I'm going to branch for the upcoming release so that we can merge this into master.

Member

ethomson commented May 7, 2017

I'd like to do a release but we're waiting on finalizing some things in libgit2. I'm going to branch for the upcoming release so that we can merge this into master.

@Alxandr

This comment has been minimized.

Show comment
Hide comment
@Alxandr

Alxandr May 30, 2017

@ethomson Do you have a link to any issue on things being finalized in libgit2?

Alxandr commented May 30, 2017

@ethomson Do you have a link to any issue on things being finalized in libgit2?

@stephenwilliams

This comment has been minimized.

Show comment
Hide comment
@stephenwilliams

stephenwilliams Jun 15, 2017

Is there any indication when this will be available?

stephenwilliams commented Jun 15, 2017

Is there any indication when this will be available?

@ethomson

This comment has been minimized.

Show comment
Hide comment
@ethomson

ethomson Jun 21, 2017

Member

Okay - v0.24 is released based on libgit2 v0.26. Thanks for your patience.

@AArnott would you mind a final update just to fix the merge conflicts (which I think should be minor, but if not, then please let me know and I'm happy to resolve them), and rev the version number, and then we'll merge this?

Member

ethomson commented Jun 21, 2017

Okay - v0.24 is released based on libgit2 v0.26. Thanks for your patience.

@AArnott would you mind a final update just to fix the merge conflicts (which I think should be minor, but if not, then please let me know and I'm happy to resolve them), and rev the version number, and then we'll merge this?

@AArnott

This comment has been minimized.

Show comment
Hide comment
@AArnott

AArnott Jun 21, 2017

Contributor

with pleasure...

Contributor

AArnott commented Jun 21, 2017

with pleasure...

@AArnott AArnott changed the title from Add a portable library version (for CoreCLR support) to Target .NET Standard 1.3 Jun 21, 2017

@AArnott

This comment has been minimized.

Show comment
Hide comment
@AArnott

AArnott Jun 21, 2017

Contributor

Validation complete.

Contributor

AArnott commented Jun 21, 2017

Validation complete.

@ethomson ethomson merged commit c72b740 into libgit2:master Jun 24, 2017

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@ethomson

This comment has been minimized.

Show comment
Hide comment
@ethomson

ethomson Jun 24, 2017

Member

Thanks @AArnott, @bording and everybody for your hard work and infinite patience! This is amazing! 🎉

Member

ethomson commented Jun 24, 2017

Thanks @AArnott, @bording and everybody for your hard work and infinite patience! This is amazing! 🎉

@ethomson

This comment has been minimized.

Show comment
Hide comment
@ethomson
Member

ethomson commented Jun 24, 2017

image

@ethomson

This comment has been minimized.

Show comment
Hide comment
@ethomson
Member

ethomson commented Jun 24, 2017

giphy

@ethomson

This comment has been minimized.

Show comment
Hide comment
@ethomson
Member

ethomson commented Jun 24, 2017

giphy 1

@AArnott AArnott deleted the AArnott:portable branch Jun 24, 2017

@jaredcnance

This comment has been minimized.

Show comment
Hide comment
@jaredcnance

jaredcnance Jul 10, 2017

This is great and thanks for your work. Any idea when 0.25 will be available on NuGet?

jaredcnance commented Jul 10, 2017

This is great and thanks for your work. Any idea when 0.25 will be available on NuGet?

@bording

This comment has been minimized.

Show comment
Hide comment
@bording

bording Jul 10, 2017

Member

@jaredcnance No specific ETA yet, but hoping to have available "Soon".

Member

bording commented Jul 10, 2017

@jaredcnance No specific ETA yet, but hoping to have available "Soon".

@Cyberboss

This comment has been minimized.

Show comment
Hide comment
@Cyberboss

Cyberboss commented Jan 30, 2018

(tm)

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