Cloud Sprint 13.05 Work

A lot of interesting work took place at the 13.05 Cloud Sprint, and I figured I’d be a good idea to summarize some of them.  If I miss any or don’t go into enough detail, I’m sure other folks would be more than happy to add notes about additional work.

  • Test for resizing textarea breaks in IE10 – Different browsers report dimensions differently for different means of getting them (getComputedStyle, etc).  This is now tested across all browsers working around this problem
  • Containergeddon – Tests now use a makeContainer method for testing GUI elements, which allows these containers to be easily cleaned up in tear-down methods in test suites.  This leads to greatly reduced DOM trash during testing.
  • Pop-up help and keyboard shortcuts – Keyboard shortcuts are now created using a declarative syntax, which also allows a pop-up help system (with the shortcut “?”) that utilizes the same delcarations.
  • GUI hangs in internal views if the object is deleted elsewhere – Concurrent editing of the environment was causing problems with internal (e.g.: service or unit) pages.
  • Sandbox simulator – This branch adds an environment simulator to the sandbox env that mocks deltas coming in from a real environment.  This helps with development branches to ensure that the branch you’re working on currently takes concurrent editing into account.
  • Silent errors in certain instances – Some errors did not provide very much in the way of user feedback.  For instance, dragging a service caused a permission denied error in read-only mode due to annotations.  This was an incremental branch, with the end goal of implementing a read-only indicator.
  • Unscaled pack layout – This branches a portion of the D3 layout code so as to ensure that the pack layout does not scale to a minimimum area (such as the window size or a default size).  The end result is that the initial layout doesn’t overlap services, with the eventual goal being different possible automatic layouts in the future.
  • Feature flags – A little micro-branch that allows controlling features through the URL using our name-spaced routing.  For instance, the /:flags:/charmbrowser.draganddrop.enable URL would set that feature-flag to true so that the UI could, say, only enable drag and drop from the charm browser if the flag is set.

Looking forward to a cycle full of interesting work!