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

Making EasyNetQ compatible with .NET Core and other .NET Platforms #508

Closed
micdenny opened this issue Nov 19, 2015 · 62 comments
Closed

Making EasyNetQ compatible with .NET Core and other .NET Platforms #508

micdenny opened this issue Nov 19, 2015 · 62 comments
Assignees
Labels
Milestone

Comments

@micdenny
Copy link
Member

@micdenny micdenny commented Nov 19, 2015

These are the steps that remains to port on .NET Core:

  • 1. fix the code on EasyNetQ to be netcore compatible
  • 2. port EasyNetQ.Management to netcore, because it is needed for EasyNetQ.Tests
  • 3. convert all the unit test to use xunit, that is the best choice for netcore as far as I understood
  • 4. fix the build stuff and start to build from appveyor also the feature branch creating pre-release package

main PR for this is #606

@tugberkugurlu
Copy link

@tugberkugurlu tugberkugurlu commented Jun 28, 2016

Is there any movement on this? As .NET Core has hit RTM now, this would be fantastic.

@tugberkugurlu
Copy link

@tugberkugurlu tugberkugurlu commented Jul 8, 2016

Seems like official Rabbitmq client is available now on .NET Core as a pre-release https://groups.google.com/forum/#!searchin/rabbitmq-users/AppVeyor/rabbitmq-users/hyJLlXCbocY/IEWxno3oAwAJ

Any updates on this one? I am happy to help out if it would be beneficial.

@zidad
Copy link
Member

@zidad zidad commented Jul 11, 2016

We have a PR that uses the RabbitMQ appveyor pre-release version, but we haven't fixed the release process yet. Also we're not going to release it before the RabbitMQ client is released.

#589, if you could test this PR by building it from source, that would be great!

@thtp
Copy link

@thtp thtp commented Aug 4, 2016

Could you please publish prerelease version, so we at least can start developing our apps?

@tugberkugurlu
Copy link

@tugberkugurlu tugberkugurlu commented Aug 4, 2016

Yes, prerelease packae would be super amazing.

@tugberkugurlu
Copy link

@tugberkugurlu tugberkugurlu commented Aug 4, 2016

I will test the PR today as well.

@micdenny
Copy link
Member Author

@micdenny micdenny commented Aug 5, 2016

We are working on that, we already moved on appveyor ENQ official packaging, now we will move on gitflow to be able to have also pre-release packages, but I need some more time.

In the meanwhile you can use the nuget package in the artifact you can find from the builded PR by appveyor. I can also push this PR package in our MyGet repo, I don't like to push it as is in nuget.org repo just because is an irreversible operation and I wait to have the proper branch for that, and anyway to test would be better to have one more stage when we're still in PR review, so for this the idea to take the artifact and push to MyGet. What do you think? would be ok for you?

@thtp
Copy link

@thtp thtp commented Aug 5, 2016

Yep, that will be at least something to start with ) Thanks

@micdenny
Copy link
Member Author

@micdenny micdenny commented Aug 5, 2016

I've created an ENQ MyGet feed, but I think also the nuspec must be fixed, anyway this is the feed url:

https://www.myget.org/F/easynetq-unstable/api/v3/index.json

but trying adding the package on a netcore project gives this error:

Retrieving package 'EasyNetQ 0.61.1.444' from 'EasyNetQ Unstable'.
  GET https://www.myget.org/F/easynetq-unstable/api/v3/flatcontainer/easynetq/0.61.1.444/easynetq.0.61.1.444.nupkg
  OK https://www.myget.org/F/easynetq-unstable/api/v3/flatcontainer/easynetq/0.61.1.444/easynetq.0.61.1.444.nupkg 631ms
Installing EasyNetQ 0.61.1.444.
Installing NuGet package EasyNetQ.0.61.1.444.
Successfully installed 'EasyNetQ 0.61.1.444' to ConsoleApp3
Executing nuget actions took 1,29 sec
========== Finished ==========
Time Elapsed: 00:00:12.8251779
PATH=.\node_modules\.bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External;%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\git
C:\Program Files\dotnet\dotnet.exe restore "c:\users\micde\documents\visual studio 2015\Projects\ConsoleApp3\.vs\restore.dg"
log  : Restoring packages for c:\users\micde\documents\visual studio 2015\Projects\ConsoleApp3\src\ConsoleApp3\project.json...
error: Package EasyNetQ 0.61.1.444 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package EasyNetQ 0.61.1.444 supports: net45 (.NETFramework,Version=v4.5)
error: Package RabbitMQ.Client 3.6.0 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package RabbitMQ.Client 3.6.0 supports:
error:   - net45 (.NETFramework,Version=v4.5)
error:   - netcore45 (.NETCore,Version=v4.5)
error: One or more packages are incompatible with .NETCoreApp,Version=v1.0.
log  : Writing lock file to disk. Path: c:\users\micde\documents\visual studio 2015\Projects\ConsoleApp3\src\ConsoleApp3\project.lock.json
log  : c:\users\micde\documents\visual studio 2015\Projects\ConsoleApp3\src\ConsoleApp3\ConsoleApp3.xproj
log  : Restore failed in 582ms.
Errors in c:\users\micde\documents\visual studio 2015\Projects\ConsoleApp3\src\ConsoleApp3\ConsoleApp3.xproj
    Package EasyNetQ 0.61.1.444 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package EasyNetQ 0.61.1.444 supports: net45 (.NETFramework,Version=v4.5)
    Package RabbitMQ.Client 3.6.0 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package RabbitMQ.Client 3.6.0 supports:
      - net45 (.NETFramework,Version=v4.5)
      - netcore45 (.NETCore,Version=v4.5)
    One or more packages are incompatible with .NETCoreApp,Version=v1.0.

I think this happen just because of the bad metadata information on the nuspec.

I run out of time for today, so if @zidad can try fix the nuspec by pushing some commit on #589, I can push the new packages on MyGet (Wiebe you can also do it if you login on github with enq-bot and then login on myget using github provider)

@micdenny micdenny added in-progress and removed in-progress ready labels Aug 6, 2016
@thtp
Copy link

@thtp thtp commented Aug 8, 2016

Seems like RabbitMQ.Client dependency has not been updated. New package still depends on 3.6.0, but "core" version is 4.0.0

@zidad
Copy link
Member

@zidad zidad commented Aug 8, 2016

@thtp RabbitMQ.Client 4.0 hasn't been released yet. The latest released version is still 3.6.5, but we could decide to start working with 4.0 RC1 in a different branch. At least it's on nuget now so that's progress, didn't see that before...

@thtp
Copy link

@thtp thtp commented Aug 8, 2016

I thought those MyGet package is "experimental" package, built on unstable branch to be something like prerelease version for core. So that prerelease package could depend on prerelease RabbitMQ.

@thtp
Copy link

@thtp thtp commented Aug 10, 2016

Could you please publish to your MyGet feed prerelease version for .net core (netcoreapp1.0), built on prerelease version of RabbitMQ.Client (4.0.0-rc-1). You can call that version "*-develop" or even create separate package "EasyNetQ.Core", but it would be really great to have something to work with.

@micdenny
Copy link
Member Author

@micdenny micdenny commented Aug 10, 2016

Could you please publish to your MyGet feed prerelease version for .net core (netcoreapp1.0), built on prerelease version of RabbitMQ.Client (4.0.0-rc-1). You can call that version "*-develop" or even create separate package "EasyNetQ.Core", but it would be really great to have something to work with.

@thtp as soon as we fixed the build, we will push a pre-release package on myget, we are also changing our branching style, so it needs some time

@zidad
Copy link
Member

@zidad zidad commented Aug 11, 2016

@thtp It should be easy to build it your own from this branch: https://github.com/zidad/EasyNetQ/tree/radicalgeek-netcore
just run build.cmd in ./EasyNetQ.Core and you should get a package, just deploy it to your own nuget repo...

@micdenny
Copy link
Member Author

@micdenny micdenny commented Aug 14, 2016

@thtp I pushed a working ENQ netcore package on myget: easynetq 2.0.2-netcore0001

https://www.myget.org/F/easynetq-unstable/api/v3/index.json

@alinapopa
Copy link

@alinapopa alinapopa commented Nov 15, 2016

@zidad @micdenny Do you think EasyNetQ for core is ready for a prerelease package? It looks like this item:

  1. fix the code on EasyNetQ to be netcore compatible

is complete, there is no work remaining with regard to .NET Core porting, and all tests pass.

@zidad
Copy link
Member

@zidad zidad commented Nov 16, 2016

I'm in favor of publishing a pre-release package, however I don't have access to the build server or nuget. I'll ping @micdenny to see if I can get access....

Thank you so much for your help @alinapopa!

@zidad
Copy link
Member

@zidad zidad commented Nov 16, 2016

I've just pushed a new version to the myget feed. @micdenny and I agreed we should test first from there before pushing to nuget.

Everyone watching in this thread, please check out the new build if it works for you. Thanks!

To update run:
update-package easynetq -pre -source https://www.myget.org/F/easynetq-unstable/api/v2 -version 2.0.3-netcore0001

@brunchey
Copy link

@brunchey brunchey commented Jan 10, 2017

Any updates on this? Just wanting to check where it might be at.

@micdenny
Copy link
Member Author

@micdenny micdenny commented Jan 11, 2017

I'm having hard times, but I will try to come back on this in a couple of weeks and close it, sorry guys for delaying so much on easynetq.

@zidad
Copy link
Member

@zidad zidad commented Jan 11, 2017

@micdenny AFAIC we can really release the current version to nuget. I've used these packages for a while (on full .NET, .NET core not too much), and they work fine. GO! :)

@micdenny
Copy link
Member Author

@micdenny micdenny commented Jan 11, 2017

ok I would like to push a v1 for the old version, and v2 for the new net/netcore

@gruberchris
Copy link

@gruberchris gruberchris commented Mar 20, 2017

Greetings!

I am working on a project that has a dependency on EasyNetQ. I have been following your progress on supporting .NET Core for the last 6 months and it seems like you re further along now towards supporting it? I see your .NET Core feature branch is now merged with your dev branch.

No pressure but I just wanted to get a gauge on your timing for making a .NET Core release or even just a first beta release. Are you far along enough now to be able to articulate some ballpark releases? Weeks or months away? 6 months or more?

@zidad
Copy link
Member

@zidad zidad commented Mar 20, 2017

Hi @gruberchris .

The develop branch now deploys beta versions to nuget, if you would be so kind to try this version on nuget and give us feedback on your experiences that would be really helpful in getting a stable release out:

https://www.nuget.org/packages/EasyNetQ/2.0.3-unstable0057

Thank you in advance!

Wiebe

@GreenGuy09
Copy link

@GreenGuy09 GreenGuy09 commented Apr 7, 2017

Just wanted to drop by and say that I've been developing and testing against 2.0.3-unstable0057 for the last month with no issues on .net core. Looking forward to a stable release hopefully soon!

@zidad
Copy link
Member

@zidad zidad commented Apr 8, 2017

@GreenGuy09 thanks a lot for the feedback! Can I ask you which platforms (.NET Core/Standard) version(s) you're targeting?

@GreenGuy09
Copy link

@GreenGuy09 GreenGuy09 commented Apr 9, 2017

.NET Standard 1.6 for my libraries and .NET Core 1.1 for my apps.

@zidad
Copy link
Member

@zidad zidad commented Apr 9, 2017

thanks!

@CommonGuy
Copy link

@CommonGuy CommonGuy commented Apr 27, 2017

@zidad I've been using EasyNetQ on .NET Core for 5 months (previously on .NET Core 1.0, now on 1.1) and never had any problems.

@zidad
Copy link
Member

@zidad zidad commented May 1, 2017

Yeah I think we're good to do a stable release. Just 1 unit test that hasn't been rewritten yet and is currently being ignored, @micdenny anything on your wish list? (Other than the assembly versioning replacement)?

@micdenny
Copy link
Member Author

@micdenny micdenny commented May 1, 2017

Probably the convertion to vs2017 before the first stable release just because the tooling we are using is not supported anymore

@mccbraxton
Copy link

@mccbraxton mccbraxton commented Jun 5, 2017

All,

Has there been any update on when this will make it into a stable release?

@zidad
Copy link
Member

@zidad zidad commented Jun 6, 2017

I'll try to pick up the conversion to VS2017 this week

@mccbraxton
Copy link

@mccbraxton mccbraxton commented Jul 13, 2017

I see the tooling got merged in - what does that mean for the stable core release?

@zidad
Copy link
Member

@zidad zidad commented Jul 14, 2017

@mccbraxton I'm not 100% sure about the RPC implementation. Is anyone willing to test if this works as expected with the latest alpha version? @Pliner @micdenny

@jkruer01
Copy link

@jkruer01 jkruer01 commented Jul 20, 2017

Hey Everyone, first of all I want to say thank you for all of your hard work. How close is the project to being able to support .Net Core? Any estimate of when a .Net Core release might be available? Thank you!

@zidad
Copy link
Member

@zidad zidad commented Jul 24, 2017

as far as I'm concerned we're good to go. I've been running with this version for a while, but I'd like to hear a go from @micdenny and @Pliner too. Also I'm not 100% sure about the RPC implementation as I don't use that, so if anyone else could confirm that would be nice.

@micdenny
Copy link
Member Author

@micdenny micdenny commented Jul 24, 2017

I'm blocked on easynetq for a while because I'm finishing a big project, so I'm also stuck to an old easynetq version, but from august I should have time to take the latest version and give it a try on production.

In the meanwhile if you would like to push it as stable, it's ok for me, a lot of people are requesting, and no complain has been received for a while, no one else is scared, so I would push it if the project has been converted to vs2017 and the build server has no problem compile it.

I would not push the project to stable if we still on the old netcore pre-release tools, because they are deprecated, I know they are only tools, but I would prefer to go on vs2017 even if the tools are worst than the pre-release ones, but at least they are supported and developed.

@zidad
Copy link
Member

@zidad zidad commented Jul 24, 2017

@micdenny yeah we're good for VS2017 and the build server.

@zidad
Copy link
Member

@zidad zidad commented Jul 24, 2017

OK, I've merged develop to master, creating the first stable 2.x release, 2.0.4:
https://www.nuget.org/packages/EasyNetQ

Hope all works well, any input appreciated!

@micdenny
Copy link
Member Author

@micdenny micdenny commented Apr 12, 2018

the porting has been completed on version 2.x

thank you to all!!!

@micdenny micdenny closed this Apr 12, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

You can’t perform that action at this time.