[Opensim-dev] Package manager

Diva Canto diva at metaverseink.com
Sun Dec 28 21:31:09 UTC 2014


Can you point me to documentation/code for what you did with Robust?


On 12/28/2014 12:45 PM, James Hughes wrote:
> 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 <diva at metaverseink.com>
>>> 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
>>>          Opensim-dev at opensimulator.org
>>>          http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
>>>          
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Opensim-dev mailing list
>>> Opensim-dev at opensimulator.org
>>> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
>> _______________________________________________
>> Opensim-dev mailing list
>> Opensim-dev at opensimulator.org
>> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at opensimulator.org
> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
>
>



More information about the Opensim-dev mailing list