jump to navigation

Blog moved to justincc.org January 31, 2012

Posted by justincc in opensim.
1 comment so far

Hi folks.  If you’re reading this, please note that my new blog location is http://justincc.org/blog.  Thanks!

These two weeks in OpenSim Dev – weeks ending Saturday 11th June 2011 June 15, 2011

Posted by justincc in opensim, opensim-dev, secondlife, virtual-environments, virtual-worlds.
add a comment

Hello everybody.  This is a summary of the last two weeks of development in OpenSimulator (I had a bit of a stomach bug last week).  Except where otherwise specified, the changes described here appear only in OpenSimulator’s cutting edge Git ‘master’ branch. Please do not attempt to use code taken directly from ‘master’ in any production environment.  Sometimes this in-development code may not work or may even cause data corruption. If you are not a developer or tester, please treat this summary instead as a preview of what will be coming up in the next release. The latest official release is OpenSimulator 0.7.1.1 (released on May 27th 2011).

The letters and numbers in brackets after some entries tell you the latest git commit to which they apply.

This week in OpenSim ( d671dbb7 – fc7e17b ).

General news

  • None this week.

Features & bug fixes

  • I updated libomv to 0.9.0, in order to fix issues with llDialog boxes on the latest Linden Lab version 2 viewers.  This fix is also in the 0.7.1-dev git branch (c67fa72).
  • James Stallings contributed a patch to allow gods to see all of a user’s groups, not just those which they explicitly list in their profile (c43ad8a).
  • Chris Hart contributed a patch to update the MSSQL database adapter for OpenSim’s most recently functionality.  This was also applied to the 0.7.1-dev Git branch (5fb0455).
  • Bluewall fixed a problem with redirecting avatars for fallback regions if the attempted destination region currently has logins disabled (777f457).
  • Diva added Hypergrid landmarks.  As with many other recent Hypergrid changes, this requires carefully updating of config files (compare current ini.example files) (cf86ba5).
  • I fixed llSensor() so that if it’s in an attachment, the detection cone faces in the direction of the avatar rather than in the relative rotation of the attachment towards the avatar (66004a9).
  • Diva added an internal EventManager.OnPrimsLoaded event so that modules can detect when a scene’s objects have been restored from persistence (9759b2a).
  • On Hypergrid, Diva fixed an issue where the creator/owner of all prims created by foreign visitors was shown as “Unknown User” (80fc607).
  • Diva discovered further issues when separating Hypergrid regions by more than 2048 tiles! (8d3a8a0).
  • I changed MySQL region database tables to use the MyISAM engine rather than InnoDB.  This results in a significant persistence speed improvement which is very noticeable when loading OARs (e.g. one scene object that took 9 seconds to persist now takes 1 second).  In theory, this may impact data retrieval but field reports say there is no noticeable difference, possibly because all prim data is currently held in memory for the duration of the sim’s run (9149ef6).
  • Dahlia made physics meshing handle both the new and old mesh formats (387b228).
  • Oren Hurvitz contributed a patch to save the sun‘s position in OARs. (804fe2d).
  • I eliminated a bug where the hover text green color value was accidentally used on persistence rather than the alpha value.  This affect OARs and quite possibly inventory and prim region crossing (fc7e17b).

Infrastructure

  • Diva continued to work on Hypergrid IM, friends and lures.

My first time Hypergrid standalone June 2, 2011

Posted by justincc in hypergrid, opensim, personal, secondlife, virtual-environments, virtual-worlds.
7 comments

Okay, so I know this will come as a bit of a surprise to some, but up till now I’ve never run a Hypergrid-enabled OpenSimulator instance.  Oh sure, I’ve looked at the documentation, read and reviewed the code and even written blog posts about it, but I’ve never found the time to actually put theory into practice.

Until now, that is.  Early this week, Nebadon Izumi was kind enough to give me some space on one of his openSUSE 11.2 servers and so I got to work.  First off, I cloned the very latest OpenSimulator development code from the Git repository, which was on Wed Jun 1 (commit 0a430bb).  I don’t advise this unless you’ve got the time and inclination to cope with all the issues of being on the very, very bleeding edge, especially right now as Diva is implementing HG friends and instant messaging :).

Then, after a standard prebuild.sh; nant; cp bin/OpenSim.ini.example bin/OpenSim.ini, I went in to bin/ and

  1. Changed the http_listener_port in the [Network] section to 20000 from 9000.
  2. Uncommented the Include-Architecture = “config-include/StandaloneHypergrid.ini” line.
  3. cp config-include/StandaloneCommon.ini.example config-include/StandaloneCommon.ini
  4. Opened the StandaloneCommon.ini file and did a search and replace of all “127.0.0.1:9000” references with “justincc.osgrid.org:20000”
  5. Started up mono –debug OpenSim.exe and answered the questions to set up an initial region, with a Location of 10000, 10000 and an ExternalHostName of justincc.osgrid.org
  6. Answered further questions to set this up in an estate called e1 owned by a user called Justin Clark-Casey with my own password.

Actually, I’m lying – at first I tried using port 9000, having forgotten that Nebadon gave me a different port range.  However, I soon realized when OpenSim complained of not being able to use that port on the first startup!

Okay, I’m also lying in that I started an ordinary standalone first just to check that everything actually worked before plunging into the relative unknown.

But after doing those other things, I logged in with the old 1.23 Second Life viewer and was pleasantly surprised to find that the direct login to -loginuri justincc.osgrid.org:20000 still worked.  After futzing around a bit, I went to the Hypergates website and clicked on the “Hypergrid Jump” link for the “Newest” Bellona Network Hypergates entry, which happened to be John Rogate’s Creative Twists region on osgrid.org (my address is justincc.osgrid.org but since it’s a hypergrid standalone it’s actually entirely independent from the rest of OSGrid).

And lo and behold, Firefox complained that it didn’t understand the protocol. (not surprising on my Ubuntu 11.04 box).  So I looked at the link manually

secondlife://hg.osgrid.org:80:twistsannex/151/158/31

noting the cool way that OSGrid’s hypergrid gateway address was embedded in a ‘normal’ Second Life link.  I remembered that you could click these things directly in the viewer chat, so I pasted it in, gave it a click, was pleased to note that my totally flat green map tile came up in the Place Information dialog and clicked Teleport.

And lo and behold, it worked!  I was able to run around this totally independent install of OpenSimulator and admire the architecture.  And my name had now become Justin.Clark-Casey@justincc.osgrid.org.  Fantastically cool – a truly distributed metaverse! (yeah, yeah, I know, I’m late to the party :).  Then I couldn’t teleport out again, though I suspect this is actually a network issue that John has.  And right now the region can’t be reached, which stops me posting a picture of it.  So instead, here’s a nice picture of when I went to one of Ai Austin’s OpenVue regions (secondlife://virtual.aiai.ed.ac.uk:8002:Vue-9000/128/128/30)

and then on to Lbsa Plaza (secondlife://hg.osgrid.org:80:Lbsa%20Plaza/128/128/40), which for some reason locks me to the edge of the region on initial teleport, though I can then reteleport within the sim and everything works.

A couple of times I got bit by the “4096” bug, where you can’t hypergrid to any region more than 4096 regions away on the x or y axis from your current region (Linden Lab thought that 16,777,216 regions ought to be enough for anybody ;).  This specific teleport failure reason only appears to be printed in the OpenSimulator log at the moment which can leave the user a bit mystified.  And early on, I was trying to figure out why I couldn’t get to secondlife://hg.osgrid.org:80/Wright%20Plaza/128/128/30 from justincc.osgrid.org, until Nebadon pointed out to me that both my region and Wright Plaza had the co-ordinate 10000, 10000 (which tends to upset things :).

Getting an OSGrid user into my justincc.osgrid.org and setting up FreeSWITCH on my hypergrid standalone was another adventure, which I’ll write more about soon.

If you want some more structured hypergrid instructions, there’s a page on the OpenSimulator wiki though I’m not sure how up to date it currently is for OpenSimulator 0.7.1.1.  And there’s also Diva’s D2 distribution which is pre-configured in 2×2 Megaregion configuration with Hypergrid access.

This week in OpenSim Dev – week ending Saturday 28th May 2011 May 29, 2011

Posted by justincc in opensim, opensim-dev, opensim-news, secondlife, twiod, virtual-environments, virtual-worlds.
1 comment so far

Hello everybody.  This is a summary of the last week of development in OpenSimulator.  Except where otherwise specified, the changes described here appear only in OpenSimulator’s cutting edge Git ‘master’ branch. Please do not attempt to use code taken directly from ‘master’ in any production environment.  Sometimes this in-development code may not work or may even cause data corruption. If you are not a developer or tester, please treat this summary instead as a preview of what will be coming up in the next release. The latest official release is OpenSimulator 0.7.1.1 (released on May 27th 2011).

The letters and numbers in brackets after some entries tell you the latest git commit to which they apply.

This week in OpenSim ( 58c53c4 – d532619 ).

General news

  • OpenSimulator 0.7.1.1 was released! This is a minor bug fix release from OpenSimulator 0.7.1, though it also includes code to properly implement inventory links (and hence outfits on viewer 2 and related third party viewers).

Features & bug fixes

  • Diva implemented Hypergrid friends, lures and instant messaging support. This allows you to make friends or instant message people from any hypergrid connected grid no matter which grid you are on.  It looks like this is already testable but it is still a work in progress, so, as Diva says, be prepared to delete records in your friends database table if things go awry (d532619).
  • Melanie fixed llGiveInventory() to work if the user is in another simulator or potentially if they are offline.  See Mantis 4429 for more details (24c00ac).
  • Melanie added preservation of pay prices to object serialization (e398c33).
  • I added a –noassets option to “save oar” and “save iar” console commands.  This saves an archive without any assets (which forms the vast bulk of the time taken to save and the archive storage requirements).  This is useful in backup scenarios where you know that the assets database is being backed up separately (3270f43).

Infrastructure

  • No news this week.

OpenSimulator 0.7.1.1 released May 28, 2011

Posted by justincc in opensim, opensim-news, secondlife, virtual-environments, virtual-worlds.
5 comments

Hi folks.  OpenSimulator 0.7.1.1 has just been released.  This is a minor point release on 0.7.1 and is dedicated towards fixing the more annoying bugs that have come to light since 0.7.1 and culling some of the verbosity of the log entries.

This release also has an implementation/fix for inventory links, which will hopefully mean that viewer 2 outfits now work correctly.

Please see the release notes for more information.

OpenSimulator’s login process and common login problems May 26, 2011

Posted by justincc in opensim, opensim-arch, opensim-tech-basics, secondlife, viewers, virtual-environments, virtual-worlds.
39 comments

Introduction

Today I’m going to write about how a viewer logs in to an OpenSimulator grid.  This is a considerably more complicated process than a simple website login.  If you ever need to find out why login isn’t working it really helps to know what’s going on under the hood.

Process

For simplicity’s sake, we’ll look at the standalone case, where all the regions and grid services are running under a single OpenSim.exe process.

Step 1: As the first step for logging in, the viewer sends an XMLRPC message to the Login Service URI containing the name, password, viewer version and other details.  The -loginuri parameter on the command line that tells the viewer where the login service is (here it’s 192.168.1.2 and the port number is 9000).  In viewers such as Imprudence the viewer’s grid manager can fetch this information from the grid info XML that the grid advertises at a well known URL.

Step 2: The login service uses these details to check that the password is correct.  If it is then it looks up the simulator that the user should be placed in (e.g. last or home).  In this case there’s only one region called “My Region”.  The login service will generate a random ‘circuit code’ and ask the simulator to record this code and set up an ‘agent’ in My Region.  The agent represents a user in an OpenSim region.

Step 3: Once the simulator has generated the agent, it returns a randomly generated ‘circuit code’ to the login service.  The login service will package this up together with the IP and port address of the region and return it to the viewer in a reply XMLRPC message.  The login service gets the region’s IP address and port from the ExternalHostName and InternalPort entries in the bin/config-include/Regions.ini file (config files there can also have other names as long as they end with .ini).  In this case the entry is

[My Region]
RegionUUID = dd5b77f8-bf88-45ac-aace-35bd76426c81
Location = 1000,1000
...
InternalPort = 9000
ExternalHostName = 192.168.1.2

The host name here is 192.168.1.2 (same as the login service since we’re on a standalone) and the internal port is 9000.  But in this case it specifies the port that the client should use for UDP messages between itself and the simulator (we’ll ignore HTTP capabilities in this post).  The ExternalHostName can also be SYSTEMIP, in which case the default IP of the machine hosting the simulator is used (which would also be 192.168.1.2).

Step 4: When the viewer receives the XMLRPC reply, it extracts the circuit code, simulator ip and port.  To make first contact with the simulator, it sends it a UseCircuitCode UDP message containing the circuit code.  The simulator compares this against the circuit code that the Login Service gave it for that client.  If they match then the simulator sends back and Ack packet and the two start talking to each other (i.e. the simulator gets sent terrain, object and texture information and can move around the region).  If they don’t match then the simulator logs a warning and ignores the UseCircuitCode message.

Problems

Whew, quite a process, eh?  As you can imagine, there’s a lot that can go wrong.  Let’s go through the possible problems.

Viewer has wrong loginuri

This is an easy one.  If the viewer is trying to login with the wrong uri (e.g. 192.168.1.3 in the example above) or wrong port (e.g. 9001) then you’ll get something like an “Unable to connect to grid” – nothing will ever reach the Login Service.

Viewer has wrong login credentials

Another easy one.  The Login Service will reject the credentials and tell the viewer, which will display a “Could not authenticate your avatar” message.

A firewall prevents the Login Service from replying to the viewer

In this case the viewer can send some initial TCP packets to the Login Service but can’t get anything back.  As above, the viewer will present an “Unable to connect to grid” message but this time after a longer pause until it times out on the Login Service connection.

Viewer receives misconfigured external host name from Regions.ini

Now it gets more complicated.  Suppose that instead of putting 192.168.1.2 in the My Region config I accidentally put 192.168.1.3 instead, which is a machine that doesn’t exist on my network.

[My Region]
RegionUUID = dd5b77f8-bf88-45ac-aace-35bd76426c81
Location = 1000,1000
...
InternalPort = 9000
ExternalHostName = 192.168.1.3

In this case, the first part of the login process works okay and the progress bar moves along in the viewer.  But when the Login Service returns the simulator information to the viewer, it returns the ExternalHostName of 192.168.1.3 instead of 192.168.1.2.  The viewer will make a number of attempts to contact this non-existent simulator for the second part of the login, and so appear to hang for a while on a message such as “Waiting for region handshake…” before failing with a “We’re having trouble connecting…”

In this case, since 192.168.1.3 has no machine a simple ping will reveal the mistake.  If there is a machine at that address or it’s the port number that is wrong then things are more complicated.  It’s difficult to diagnose problems here since UDP messages are connectionless, unlike TCP.  If you have a utility like netcat available on the viewer machine, you can try sending nonsense to the address and port given in Regions.ini.  For instance, above we could do

echo “foo” | nc -u 192.168.1.2 9000

and the simulator would print out a “Malformed data” message.

Viewer can’t reach region external host name

Now let’s suppose that the ExternalHostName and InternalPort are correct, but the viewer can’t reach that address for some reason (e.g. UDP messages to that port are blocked by a firewall).  You’ll see exactly the same symptoms as if the host name is misconfigured.  The diagnostics are also the same, with the addition that you need to thoroughly check your firewall and other network settings.

You can also see this if you’ve specified a public IP for ExternalHostName but you’re attempting a connection from within your LAN and your router does not support NAT loopback.  The easiest solution is to get a router that does support NAT loopback though you might also want to try the workarounds listed on that wiki page.

A firewall prevents the simulator from replying to the viewer

Unlike the firewall blocking the login service reply above, this time the first part of the login process will complete correctly and the simulator will even receive the UseCircuitCode message.  However, the Ack that it replies with (and any other UDP messages) is blocked by a firewall.  In the simulator log you will see messages such as

[LLUDPSERVER]: Ignoring a repeated UseCircuitCode from
2c3b8307-e257-4d1e-b12f-76f2b8f50ee9 at 192.168.1.3:1208
for circuit 546230463

as the viewer resends the UseCircuitCode packet another 3 times (while it displays the “Waiting for region handshake…” message.  Eventually, the viewer gives up and displays the “We’re having trouble connecting…” message.  In this case, you need to carefully check that your firewall allows outbound UDP messages from the simulator to the viewer’s IP address.

Conclusion

As you can see, the login process is complicated.  Much of this complexity exists so that in grid mode simulators can be hosted on different machines to the login service.

In grid mode, all of the above information still applies, with the addition that the login service and simulators communicate over a network rather than within a single process.  This is another point of failure.  If there’s a problem here then you should see an error in the login service log and the viewer will return with a “Unable to connect to grid” message.

This week in OpenSim Dev – week ending Saturday 21st May 2011 May 25, 2011

Posted by justincc in opensim, opensim-dev, opensim-news, secondlife, twiod, virtual-environments, virtual-worlds.
2 comments

Hello everybody.  This is a summary of the last week of development in OpenSimulator.  Except where otherwise specified, the changes described here appear only in OpenSim’s cutting edge Git ‘master’ branch. Please do not attempt to use code taken directly from ‘master’ in any production environment.  Sometimes this in-development code may not work or may even cause data corruption. If you are not a developer or tester, please treat this summary instead as a preview of what will be coming up in the next release. The latest official release is OpenSimulator 0.7.1 (released on May 4th 2011).

The letters and numbers in brackets after some entries tell you the latest git commit to which they apply.

This week in OpenSim ( 901448a – bb9b317 ).

General news

  • None this week.

Features & bug fixes

  • I fixed a bug where viewer 2 inventory links pointing to a missing inventory item target were generating an exception in the server (784f70f).
  • I allowed inventory links to deleted even if other inventory deletion was disabled (bdd78f9).
  • Kim King contributed a patch that allows LSL integers to start with a leading plus (+) sign (a2c1984).
  • I implemented llGetLinkNumberOfSides() based on code from onesong (9fc29e1).
  • I added Scene.GetSceneObjectGroup() methods so that scene objects can be directly retrieved via their UUID or name, rather than being forced to retrieve the root part first and then referencing that part’s scene object.  This matches existing create and delete scene object calls (4b0fc4f).

Infrastructure

  • No news this week.

This week in OpenSim Dev – week ending Saturday 14th May 2011 May 18, 2011

Posted by justincc in opensim, opensim-dev, opensim-news, secondlife, twiod, virtual-environments, virtual-worlds.
6 comments

Hello everybody.  This is a summary of the last week of development in OpenSimulator.  Except where otherwise specified, the changes described here appear only in OpenSim’s cutting edge Git ‘master’ branch. Please do not attempt to use code taken directly from ‘master’ in any production environment.  Sometimes this in-development code may not work or may even cause data corruption. If you are not a developer or tester, please treat this summary instead as a preview of what will be coming up in the next release. The latest official release is OpenSimulator 0.7.1 (released on May 4th 2011).

The letters and numbers in brackets after some entries tell you the latest git commit to which they apply.

This week in OpenSim ( 25809ca – a2f034c ).

General news

  • None this week.

Features & bug fixes

  • Melanie and Diva implemented compression of the data sent on avatar region transfer.  If compression is not accepted by the receiving simulator, then the transfer falls back to non-compression (e9e4c00).
  • Melanie added commands to delete scene objects by name, uuid, creator or owner.  These are only documented by the “help” command on the region console at the moment (2b88d8f).
  • E. Allen Soard contributed a core module to enforce prim limits on a given parcel – previously these were unenforced.  This covers object creation, movement and duplication by the user directly, as well as rez from a script.  It also takes into account the cumulative prim allowance from all parcels owned by the same avatar on the region.  It does not yet cover prims that are moved by a script or temporary objects (65d5955).
  • Diva fixed map tiles for Hypergrid regions seen as grey with viewer 1.  This fix was also ported to the 0.7.1-dev git branch.
  • I fixed viewer 2 current outfit inventory links so that they no longer break when outfits are changed.  Viewer 2 outfit management now works on standalones and grids that allow regions to delete inventory links (i.e. grids where all simulators are highly trusted).  However, this doesn’t yet work on OSGrid since they don’t allow link deletion – the current outfit will continue to fill up with duplicate links seen on relog.  Work is ongoing (5573fcf).
  • Diva fixed the handling of offline IM (e39dec6).
  • Signpost Marv contributed a patch to escape XML characters in grid info fields (e.g. <, >, &).  This was ported to the 0.7.1-dev branch (cb6cd37).
  • Oren Hurvitz contributed a patch that fixes the loading of older OARs that did not contain region parcel information.  A single region-spanning parcel owned by the estate owner is created instead.  This fix was ported to the 0.7.1-dev branch (64d868f).
  • tglion contributed a patch that corrects llGetParcelMaxPrims() to use the same calculations as elsewhere in OpenSim.  This was ported to 0.7.1-dev (1d86079).

Infrastructure

  • No news this week.

Warning: Don’t rely on meshes uploaded to OpenSim (just yet) May 13, 2011

Posted by justincc in opensim, opensim-dev, opensim-news, secondlife, viewers, virtual-environments, virtual-worlds.
1 comment so far

Hi folks.  At the weekly OpenSim/OSGrid development meeting last Tuesday, Nalates Uriah relayed that Linden Lab are planning some fundamental changes to how mesh is handled in Second Life.  Instead of uploading a mesh as an asset and applying it to an existing prim, it sounds like a mesh will be treated as a scene object in its own right.  Aspects of the mesh data format will also change.

When Linden Lab releases new viewers with these changes they won’t be able to see any of the meshes previously uploaded to the Linden Lab beta grid.  The same will be true for OpenSimulator.

OpenSimulator will need changes to work with the new mesh objects and data.  As it is, OpenSimulator treats uploaded mesh data as an opaque blob which it simply stores as an asset.  The asset id is placed in the SculptTexture property of the PrimitiveBaseShape of a SceneObject or in the assetID slot of an InventoryItemBase.  When a client fetches such a scene object or inventory item, it separately requests the asset data through the GetMesh capability – OpenSim doesn’t parse the asset data at all.

This simplicity means that that old mesh data might continue to work with old mesh viewers (this is not a guarantee).  But of course, if you use the old viewers then you won’t be able to see the newer mesh objects.  It’s possible that a third party viewer could implement both the old mesh approach and the new approach.  However, I think this is very unlikely, particularly if the new changes are due to deficiencies in the existing approach.

We won’t know what changes are required in OpenSimulator until the new mesh approach is public.  In the best case, the asset data can be left opaque for now and some new properties added to scene objects.  In the worst case, the asset data itself will require extensive parsing but I suspect that this will not be necessary.

So in short, I strongly recommend that you don’t rely on any mesh data that you upload to OpenSimulator until the new mesh changes are implemented.  In fact, I would recommend waiting until mesh is in public use on the Linden Lab grid, in case further changes need to occur down the road.

This week in OpenSim Dev – week ending Saturday 7th May 2011 May 11, 2011

Posted by justincc in opensim, opensim-dev, opensim-news, secondlife, twiod, virtual-environments, virtual-worlds.
1 comment so far

Hello everybody.  This is a summary of the last week of development in OpenSimulator.  Except where otherwise specified, the changes described here appear only in OpenSim’s cutting edge Git ‘master’ branch. Please do not attempt to use code taken directly from ‘master’ in any production environment.  Sometimes this in-development code may not work or may even cause data corruption. If you are not a developer or tester, please treat this summary instead as a preview of what will be coming up in the next release. The latest official release is OpenSimulator 0.7.1 (released on May 4th 2011).

The letters and numbers in brackets after some entries tell you the latest git commit to which they apply.

This week in OpenSim ( 6b2b036 –  d40e456).

General news

  • In case you somehow missed it, the final release of OpenSimulator 0.7.1 is now available for download :).  The weekly updates now concern development code again, except where noted.  Some have been ported to the 0.7.1-dev Git branch and may be published in a minor point release.

Features & bug fixes

  • Sean McNamara contributed an optional AutoBackup module.  This regularly backs up each region to an OpenSim Archive (OAR) according to a specific interval and file naming scheme.  See this wiki page for more details, though that’s a proposal that really needs to be turned into documentation.  DutchGlory has also produced a guide (0995fed).
  • Diva increased various inter-sim communication timeouts to improve reliability.  These changes were included in OpenSimulator 0.7.1 (f7d3720).
  • Dahlia further adjusted avatar position updates.  My experience is that we’ve now returned to the lots of small lurches that we had before instead of the bigger regular lurch, as detailed last week.  Ultimately, the solution is to better match OpenSimulator’s avatar velocity with the standard viewer expectations (eaa33cf).
  • Diva fixed a regression where returning objects from a parcel had stopped working (d47dacd).
  • I added a “dump asset” command to the asset service.  This will dump an asset with a given UUID to the filesystem (9ff94a3).
  • Bluewall added support for communicating with the region simulator and ROBUST data services using HTTPS, and added support for llRequestSecureURL().  See his blog post for more details.  The new settings are also explained in the config files (d40e456).
  • MrMonkE contributed an implementation of the GridUserStore for the MSSQL data adaptor, which had been forgotten (72fb0d5).

Infrastructure

  • Diva overhauled the capabilities infrastructure.  Some 3rd party modules might require code changes and recompilation to work against development code.  There are also configuration adjustments, though they should not effect you if you haven’t changed the default ini files in config-include.