-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
[CSharp] #2021 fixes nuget packaging options to avoid missing dll exceptions #2024
Conversation
Hey! |
Nah, it's a single msbuild call, so that's ok, I added the script, although the old one should continue to work with mono, it's just less convenient. It's cumbersome to have two ways to make a package, however. |
Thanks |
Sorry, didn't make myself clear enough. It's not about windows, it's an issue with |
Or you leave everything as is, this way you can build everything everywhere, but have to cope with multiple csproj's and duplicating package metadata in nuspec and csproj. |
@ericvergnaud can you explain the changes for me? Is it just packaging? new name? |
if you are comfortable with publishing from windows, excess csproj/sln should probably be removed to reduce clutter. It will still be possible to compile .net standard version on any os supported by .net core. @parrt hi. It's about more simple packaging process (all metadata in single file, both target frameworks are defined in single csproj file, single msbuild call for all restore/build/pack operation); defining both target frameworks (.net 3.5 and .net standard) in single csproj allows IntelliSense to perform analysis against both targets, thus preventing you from introducing changes incompatible with any of the platforms. |
Hmm...well,I really need to rely on you guys for correct C# behavior and packaging. Am I still able to build from Mac? How does this affect the nuget packages we have now? |
You can build from any platform supported by .net core tools (including Mac) using command |
Ok, i'm not sure exactly what @ericvergnaud wants me to make a decision on. I don't know much about the C# ecosystem. |
@parrt our current CI is not affected, but our release process to Nuget is. |
Ah! Hmm...I think I can get a Windows VM running on my mac. would it require installation of all M$ dev tools and such or just nuget stuff? |
I believe the community edition suffices: |
Yes, community edition will work, you really require only msbuild anyway. Oh, and to enable building for .net 3.5 on modern windows you will need to explicitly enable it in "Windows Features", like described here, and add .net 3.5 sdk during visual studio install (they improved installer in 2017, so you'll only need to check relevant sdk's in 'individual components' tab) |
Ok, So there is no name change or anything like that on the visible nuget product? |
Ok, i have windows 10 x64 in vmware with Visual Studio Comm 2015. Is that sufficient? |
Can you try from cmd line in c# folder:
Powershell ./build-nuget.ps1
(Not sure about the exact script name)
Envoyé de mon iPhone
… Le 3 oct. 2017 à 03:42, Terence Parr ***@***.***> a écrit :
Ok, i have windows 10 x64 in vmware with Visual Studio Comm 2015. Is that sufficient?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@parrt just to make sure, is it visual studio 2015 or visual studio 15 (which is in fact visual studio 2017, they need some consistency on naming)? If really is vs 2015 (it will have version id like 14.0.25420.10 in "about" window), it will not work. If the version shown is something like 15.3.3 or 15.3.4, than it's fine. You'll need to add msbuild to PATH (it'll be something like |
Pretty sure it's 2015 not 15. Heh, will the mac version of VS work? |
Not sure about the mac
I installed https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15 <https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15>
That’s VS2017 community, so should work
… Le 3 oct. 2017 à 23:51, Terence Parr ***@***.***> a écrit :
Pretty sure it's 2015 not 15. Heh, will the mac version of VS work?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#2024 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/ADLYJGaMH83BJX2XjgvV01RZRkTb7zToks5solgYgaJpZM4PiQjB>.
|
ok, i'm away from work machine today so will try later. |
@parrt hi, any luck with setting up renewed build? |
VS is fine, we just need to ensure you have necessary sdk's and stuff
Hm, that should be it. |
Yup, now the script |
@parrt Hi, sorry to bother you, but have you had any lack with packaging? |
hiya. just finished school semester and today off to 3 or 4 day vacation. i hope to start antlr stuff again on Monday |
…n transitive dependencies
@xied75 that was helpful, thank you. |
great! so if @ericvergnaud signs off on this I'll merge. I can see the artifact :) |
Has been a while. @ericvergnaud ? |
Sorry missed this
I’ll look into it this weekend
Envoyé de mon iPhone
… Le 23 nov. 2017 à 13:51, Rostislav Listerenko ***@***.***> a écrit :
Has been a while. @ericvergnaud ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@parrt if it works for you, it works. blessed |
Seems to work and I downloaded an artifact, though I didn't test the artifact as I didn't know immediately how to test it. @kaedvann can you verify that the artifact at appveyor is correct? |
@kaedvann Hmm...something is wrong with the C# build on travis: https://travis-ci.org/antlr/antlr4/jobs/307183842 can you take a look? |
Cool. i just merged that one and this one. thanks VERY much for pushing this through! |
Great! But I still would like to answer @parrt . Yes, I checked the produced artifact, it seemed to resolve the initial issue this PR was about. About testing - NuGet has a command to install package from local file, something like |
@parrt @ericvergnaud I wonder should we version the new nuget package to e.g. 4.7.2? So that it won't replace the current 4.7.1 to avoid breaking already running builds. |
Hi
There is no plan to replace the current package (if that’s even possible which would be frightening)
Envoyé de mon iPhone
… Le 27 nov. 2017 à 21:20, Dong Xie ***@***.***> a écrit :
@parrt @ericvergnaud I wonder should we version the new nuget package to e.g. 4.7.2? So that it won't replace the current 4.7.1 to avoid breaking already running builds.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Oh right we did some weird thing with numbering to get out a release. can we do 4.7.1.1? |
Definitely
Envoyé de mon iPhone
… Le 28 nov. 2017 à 00:38, Terence Parr ***@***.***> a écrit :
Oh right we did some weird thing with numbering to get out a release. can we do 4.7.1.1?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Not that good if considering SemVer is not using the 4th number. |
Yeah but better than 4.7.2 which would mean 4.7.1 ;) |
@ericvergnaud @kaedvann can you alter the build config for 4.7.1.1? I'd like to push out 4.7.1 soon. thanks! |
@parrt it is only the |
Ok, done: b9adef5 |
Add -f netstandard1.3 to the dotnet build command used on Travis. This has been necessary since PR antlr#2024, and the build has been silently failing all this time.
Add -f netstandard1.3 to the dotnet build command used on Travis. This has been necessary since PR antlr#2024, and the build has been silently failing all this time.
Add -f netstandard1.3 to the dotnet build command used on Travis. This has been necessary since PR antlr#2024, and the build has been silently failing all this time.
Add -f netstandard1.3 to the dotnet build command used on Travis. This has been necessary since PR antlr#2024, and the build has been silently failing all this time.
@ericvergnaud Hi,
I modified csproj options a bit, now I can get a working nuget package locally without the issue we described in #2021.
I added .net 3.5 as a target to "main" csproj along with netstandard, since it's easier to keep track of requirements for both sets of api's when editing code and, ideally, both targets can be packed into a nuget package with a single command. Right now it's possible only on Windows via
msbuild /t:pack
or Visual Studio; unfortunately, due to dotnet/msbuild#1333, right nowdotnet build pack
does not work for .net 3.5 target the way it should, so I adjusted the existing script to create packages from .nuspec and different solutions for different targets.