These 4 weeks in OpenSim Dev – weeks ending 7th December 2013

Hello everybody.  This is a summary of the last four week’s development changes in OpenSimulator.   Except where otherwise specified, the changes described here appear only in OpenSimulator’s cutting edge ‘master’ branch in OpenSimulator’s Git source control system. Only changes that I think will be interesting to end users are listed.  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.6 (released on October 4, 2013).

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

This post covers git master commits 0f16612 to 8f221a3.

General core development news

  • None notable this period.

Features & bug fixes

  • I fixed a bug where deleting a physical linkset would only decrement the Active Objects statistic by one instead of the actual number of prims deleted (7da1085).
  • I extended the “land show” console command to accept a local land ID as a parameter.  This will output all the details about a particular land parcel (allow fly flag, media ID, etc.).  One can see local land IDs by using the “land show” command without a parameter (b4932bd).
  • I extended script compilation checking so that specifying the wrong arguments to the changed, collision, collision_end, collision_start, land_collision, land_collision_end, land_collision_start, moving_end, moving_start, no_sensor, not_at_rot_target, not_at_target, on_rez, run_time_permissions, sensor, state_exit, timer, touch, touch_end and touch_start events generates a syntax error instead of a runtime error.  This is in addition to the previous checking of state_entry.  This will be extended to the other LSL events in the future (a643771).
  • I fixed an issue where the “show modules” console command would accidentally list all the shared modules as both shared and non-shared (b44c698).
  • I fixed an issue where sitting on the child prims of a linkset would cause the camera to move to the wrong place both in-world and in mouselook mode.  This also fixes an issue where the camera would continually judder in mouselook mode when sitting on a child prim (868c0c2).
  • Fernando Oliveira contributed patches to fix windlight settings storage and regions table manipulation in the pgsql OpenSimulator database adaptor (9b76a46).
  • Dahlia added a “rotate scene” console command.  This rotates a scene in place clockwise around the centre of the region.  It does not rotate terrain, which can be achieved with separate terrain commands if the rotation is by 90 degrees.  It does not currently rotate the built-in trees at t his time.  Successive use of the command will likely introduce floating point error accumulation  (5a9ec07).
  • I fixed avatar stand positions so that these are in front of the avatar’s sitting position (8680c02).
  • I implemented most of the AGENT_CONTROL_STOP avatar movement flag (as triggered by holding down the space bar in a typical viewer).  For a stopped avatar, this prevents fly or walk/run (though not rotate) until released.  For a walking/running avatar ,this reduces movement to half speed.  For a flying avatar, this stops the avatar’s movement.  This currently does not work for jumping.  If used whilst flying, the fly animation currently continues even though the avatar is not moving (8ebad90).
  • Mircea Kitsune contributed a patch to stop excessive movement of the camera in mouselook mode when the avatar looks up or down (look straight up or down to see the most extreme version of this effect).  The code I added implements the same changes in a different position in the codebase (17b32b7).

Infrastructure changes

  • None notable this period.

2 comments for “These 4 weeks in OpenSim Dev – weeks ending 7th December 2013

  1. Seren Seraph
    December 24, 2013 at 8:30 am

    I have seen a few project use “master” branch as the dev branch likely to be fragile. Yet at many a company I have worked “master” was for post integration tested stable version and some other branch (perhaps called dev) was used for not yet stabilized joint development work. I am just curious why the convention of making “master” unstable. Or to ask a more germane way, what branch is the stable branch? Or is it just a tagged set?

  2. justincc
    January 6, 2014 at 10:08 pm

    I think that it is a question of project culture. OpenSimulator has always had the culture of integrating everything directly into the master code line, which stems from the days of using SVN, I think. I think that it does have pros and cons – separate branches do allow more thorough testing but then you have the problem of integrating your code with somebody else’s changes, instead of doing it whilst you go along.

    To be honest, my preference is to have one branch but require stability at all times through the use of regression tests, etc. It’s easier to hold the line on this (you always know if a test starts failing) than try to enforce a convention of separate branches on developers who do not want to work that way.

Leave a Reply

Your email address will not be published. Required fields are marked *