Mono-Addins does 100% of what we need to manage (subscribe to) remote repositories and install plugins hosted in them.
-BlueWall On Sun, 2014-12-28 at 08:43 -0800, Diva Canto wrote: > On 12/27/2014 6:56 PM, Mister Blue wrote: > > > Is there a way to incorporate the NuGet package manager > > (https://nuget.codeplex.com/). > > I looked at Nuget. Nuget is a package manager for VS applications. It > does a lot of things that we don't need, and it doesn't do anything > that we need to do. Essentially, Nuget takes your VS project, and adds > additional dlls in the bin folders and additional lines in .csproj. It > does more .Net things like keeping track of which .Net framework > version the packages are for. It seems very much tied to Visual > Studio, and mono support seems weak. From their FAQ: "Keep in mind > that the focus of NuGet is to let you modify your projects and add > references to Visual Studio projects." [1] > > This is not exactly what we need. We have our own runtime plugin > loading mechanism, region modules. What we need is a package manager > for region modules. Region modules have specific needs, such as having > their own configuration files and their own runtime dependencies. And > they don't have many of the needs that static link-time packages do: > usually region modules don't depend on other region modules, they tend > to be self-contained packages. (although dependencies are possible) > And obviously, they aren't listed explicitly as dependencies of > OpenSim.Region. > > There's a console interface to Nuget that seems to be more inline with > what we need: > http://blog.davidebbo.com/2011/01/installing-nuget-packages-directly-from.html > This seems to be a niche use of Nuget, though, and it doesn't do the > most critical part of what we need, which is to automate the dll load > path and the .ini path. If we use Nuget with this interface, it serves > solely to upload/download packages to/from a central repository, which > I'm not sure where it is, and we'd have to fix the paths by some other > means. > > Nuget is designed to help people incorporate 3rd party libraries into > their own VS projects, which is the kind of activity that we do when > we develop for OpenSim (in Windows). But that's not what we are > talking about here. We need something that helps non-developers > incorporate 3rd party custom plugins into a specific application, > OpenSim. There is no compilation/static link steps at the user's site; > there's just dropping in additional dlls and configuration files > somewhere. > > The question is where those files should be dropped, and how they are > picked up by OpenSim. Dumping everything in bin (which is what Nuget > does) doesn't sound like a good idea and, in fact, we already have the > basics in place to host 3rd party plugins under addon-modules. I think > we should proceed on that route. > > So if someone is interested in figuring out how to hack around Nuget > to make it work well for OpenSim region modules, go ahead. I am not > going to explore that option any further, as what I saw doesn't seem > seem a good fit with what we need. My sense is that in the beginning > Nuget (called Nu) seemed in line with Linux-like package managers, and > at some point it made a sharp turn to become an extension of Visual > Studio. > > (It would also be weird to host OpenSim region modules -- a > specific .Net application's plugins -- in the generic Nuget Gallery. > Region modules aren't useful for anything but OpenSim.) > > [1] http://docs.nuget.org/docs/start-here/nuget-faq > > > > > On Sat, Dec 27, 2014 at 5:37 PM, Diva Canto <[email protected]> > > wrote: > > On 12/27/2014 3:33 PM, Diva Canto wrote: > > Unfortunately, .Net doesn't seem to understand wild > > cards in the <probing> element, so the installation > > procedure will need to edit this <probing> element > > and add the new directory explicitly to the > > privatePath, with semi-colon in between, which is > > not very nice. But that's Windows philosophy, I > > guess... > > > > We could do this too, and scan everything under > > addon-modules/*/bin until we find a match. This would have > > to be done in OpenSim. > > > > > > http://stackoverflow.com/questions/1561806/looking-for-net-assembly-in-a-different-place > > > > > > > > _______________________________________________ > > Opensim-dev mailing list > > [email protected] > > http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev > > > > > > > > > > > > _______________________________________________ > > Opensim-dev mailing list > > [email protected] > > http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev > > _______________________________________________ > Opensim-dev mailing list > [email protected] > http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev _______________________________________________ Opensim-dev mailing list [email protected] http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
