NuGet Support

Aug 30, 2013 at 5:49 PM
Edited Aug 30, 2013 at 5:51 PM
What would it take to get the source code to use NuGet packages for its dependencies, and also perhaps create a NuGet package of the SIPSorcery-core code? I've been trying to get that solution to build, and I seem to keep tripping over missing dependencies. Using NuGet would certainly alleviate that.

Regards,
Mike
Coordinator
Sep 3, 2013 at 12:14 PM
I'm not sure as I've never integrated anything with NuGet. How involved is it?

I do try and keep all the required dll's in the stable directory in the repository to avoid missing dependencies.
Sep 17, 2013 at 5:07 PM
Wow. I never saw your reply. My apologies. It's actually pretty simple and straightforward. The info can be found at http://docs.nuget.org/docs/creating-packages/using-a-gui-to-build-packages

Ideally, you could have the package automatically built and deployed whenever you commit changes. Let me know if you need some assistance.
May 13, 2014 at 11:10 PM
@aaronc, I'm going to take a stab at this, and will let you know if I am successful. If so, I am happy to contribute the changes back to your project.
Coordinator
May 14, 2014 at 4:59 AM
Ok thanks, I never got around to looking into it. Any contributions are welcome.
May 21, 2014 at 9:15 PM
@aaronc,, we cloned your solution, and replaced all of the binary assembly references with the appropriate NuGet package. Then we built a NuGet package from the resulting build, and uploaded it to NuGet.org. We included a warning in the summary and refer people back here for the official release. I'd like to know whether you could verify that the NuGet package we created is correct. Then we can provide you with the changes we made so you can decide if it's something you want to maintain going forward.

https://www.nuget.org/packages/SIPSorcery.Core/

Thanks,
Mike
Coordinator
May 25, 2014 at 1:42 PM
Hi Mike, well I was able to install the nuget package you created and my test project seemed to get all the required references. Thanks a lot for putting int the effort to create the package.

I still need to spend the time to understand how to build and manage nuget packages and if it's as easy as everybody says then it shouldn't be a problem for me to take over the maintenance of the package.

I'll post back up here when I've played with nuget.
Jun 7, 2014 at 1:25 PM
@aaronc, have you made any further progress? One of my colleagues actually made a minor configuration change to your code that we'd like to get incorporated into the official release. Once that's done, and there is an official NuGet package, we (and many others) can simply use that it instead of building from source. Thanks.

Mike
Coordinator
Jun 12, 2014 at 11:01 AM
Hi Mike, yes I had a look over Nuget last week and got my head around it (I think). I was originally thinking the Nuget package would be useful for people that wanted to build the sipsorcery code and would provide a convenient way of getting all the references for the build. What you're interested in and have created is a package that includes the sipsorcery binaries so that they can be used in other projects. Is my understanding correct?
Jun 12, 2014 at 8:48 PM
We did both, actually. First, we had to modify your Visual Studio solution to get its dependencies from NuGet. Fortunately, I think they were all available. The second step was to create a NuGet package from SipSorcery.Core (if memory serves). As you said, this will allow anyone to use SipSorcery in their own projects without worrying about building it from scratch. As you release new versions and put them into NuGet.org, those using it will be able to upgrade or not at their convenience.

What I'd really to do is get your code onto GitHub. It appears that you had it there once before, about five years ago. That way you'd be able to accept pull requests and set up some build automation. Let me know what you think. We'd be happy to help get it set up.

Mike
Jun 24, 2014 at 7:28 PM
@aaronc, we went ahead and setup a fork of this project on github to track our minor changes to the API. I'd like to set you as a contributor, and eventually, owner of the project. The new fork is at https://github.com/Conveyant/SipSorcery. It contains all of the history of this repository through today.
Developer
Jun 26, 2014 at 12:19 PM
Maybe this would be a good point to request Codeplex migrate the project over to a Git Repo here on codeplex? Forks would be easier to manage and user contributions too.
Jun 26, 2014 at 4:51 PM
That's a great idea.
Coordinator
Jun 26, 2014 at 11:10 PM
I've submitted a request to move to Git.

@mdcsoft providing the Git move gets processed will that be satisfactory rather than using the github repository? On a side note the sipsorcery code base was never on github; I hosted a small sipsorcery related Ruby on Rails application with it. I also spotted that the build server I use in my day job, TeamCity, is capable of creating Nuget packages. That made me recall a codeplex announcement a while ago about automated build services. So I looked that up and it seems like this service http://www.myget.org/ could be a nice way to automate the production of a sipsorcery nuget package.
Jun 26, 2014 at 11:34 PM
That sounds perfect. Once it's converted, we will fork it, push our changes, and then issue a pull request

Developer
Jun 27, 2014 at 12:08 PM
Looks like the migration went well!
Coordinator
Jun 27, 2014 at 1:32 PM
I just got the email notification that the migration was complete. I was able to pull down the repository and do a build (although I noticed 2 superfluous config files are missing so I'll push those up to avoid confusion).
Jun 27, 2014 at 1:52 PM
Cool. We'll fork the repository and push our changes, and then issue a pull request. I'll try to get that done today.

Mike

Jul 1, 2014 at 1:06 PM
@aaronc, thanks for accepting the pull request. I noticed that Ben modified the readme.md file on the home page, saying that this isn't the official release. You might want to revert that file.