Wednesday, March 21, 2018

Change Log: 2.73.1369

Expansions of Death!
Release 2.73.1369 cleans up Settlement Event Logging and adds some new help, support and notification enhancements that I've been working on for a while.

This release does not, however, add the help and notification enhancements for everyone.

Rather, subscribers of the Manager who have the "beta" preference enabled will notice the 'Help' option on the left-side navigation bar. This new feature contains campaign- and expansion-specific tips and notes as well as "alerts" that come directly from Yours Truly.

The idea behind the alerts features is that I'm starting to phase out Twitter as the official source of emerging issues, announcements about features and fixes, etc. and these alerts will accomplish the work that the Manager's Twitter account has been doing for the last several months.

Eventually, the help tips and the notifications will probably become generally available functionality, i.e. visible to all users, but, for now, they're beta functionality (until I'm comfortable with how they look and how I'm using them).

On the back-end, release 2.73.1369 devotes a good amount much-needed TLC to Settlement Event Logging, which got a little weird/broken back when the Timeline release went out.

All users of the webapp, both subscribers and non-subscribers, will hopefully notice improvements to the presentation, verbal clarity and overall usefulness of Settlement Event Logging.

I'll save the details for the change notes below, but there's a ton of tiny updates in this release intended to bring all of the API's settlement Event Logging up to a standard and basically pay down the technical debt I took on when I cut the API over to Semantic Logging back in December 2017.

(When release 2.59.1140 went into production, it shipped the basic hooks for Semantic Logging, but it didn't really change how the API logged settlement events. Now, in release 2.73.1369, I spend a good amount of time bringing the various Settlement and Survivor methods up to the current standard for recording events to the log)

Finally, I created a new project for expanding the Manager's support of expansion content. The basic idea is to go through and smooth out all of the expansion assets and features and tune everything up. I plan to start going through my Wave Two box this weekend and opening tickets.

I expect to have a better sense of how long it will take to update the Manager by Monday.

Thanks for using the Manager!

Corrections and Fixes

  1. Addressed a ng-repeat issue on the Campaign Summary view where a non-fatal JS error would be thrown if a survivor has two assets with the same handle, e.g. the epithet "Blotted Out" and the Fighting Art "Blotted Out". -D Hood
  2. Fixed an order-of-operations issue where new survivor Survival was automatically updated (while setting their name), but the event was not logged.
  3. Removed some apostrophes from Manhunter asset handles (that were causing gear display issues for settlements using MH content).
  4. Heart Flute is now a Forbidden Dance consequence. -shamanarza
  5. Addressed an(other) ASCII issue where creating survivors with fancy ASCII names could throw (non-fatal) API errors back via email. -manu161
  6. Corrected a typo that prevented the 'First Story' option from updating the settlement's timeline at creation.
  7. Addressed an issue where users could leave their settlements in an un-render-able state by removing expansion content required by the settlement's campaign-vendictar

Application Enhancements

  1. Started working on fancying-up the Settlement Event log:
    1. Settlement Event log lines reporting automation are now visually distinguished from lines related to voluntary/user activity in a number of ways.
    2. Certain types of events are now "prefixed" with an icon.
    3. Event Log lines where a principle is set are no longer the same color as survivor death lines.
  2. Keyed in gear info for Green Knight Armor expansion; keyed in recipes as well.
  3. Fixed the Green Knight Armor "flair" colors so they're more readable (and more KD-ish).
  4. Implemented the Help UI from the side nav:
    1. Created controls as a beta feature.
    2. Added support for expansion help tips and campaign-specific tips.
    3. KPI/bug "alerts" (see below) appear at the top of the Help menu.
    4. Non-subscribers see an FAQ item about disappeared settlements (obviously doesn't apply now, but when this moves out of beta, it will).
    5. Ported a bunch of help topics from the blog into the FAQs section of the new modal help.
  5. Updated toggleExpansion() method in kdmManager.js so that it will refuse to remove expansion content required by the campaign.
  6. "Mandatory" expansion content (i.e. mandated by the campaign asset definition) now shows up in Special Showdown red on the side nav expansion manager controls.
  7. Expansion controls are now loaded (from the API) after the settlement has been pulled down: should help the impression of page load speed a bit, since the addNewSettlementsToScope() call can be kind of a piglet.

API Development

  1. Spent some time in the Wiki explaining how to do Semantic Logging correctly. Mostly, I guess I did this for my own benefit, I suppose.
  2. Semantic Logging refactor (i.e. updates to Models.UserAsset.log_event() method) upgrades Semantic Logging to version 1.3:
    1. Updates the caller frames code that pulls the caller method so that it ignores the decorator and gets the correct caller method.
    2. Built out utils.action_keyword() method to support more verbs.
    3. utils.action_keyword() now forces incoming strings to lower-case, i.e. it is case-insensitive now.
    4. Developed handling for the 'create'/'created' action word, which gets a no-preposition log line, e.g. 'so-and-so created such-and-such'.
    5. Terminating punctuation is now enforced on all log lines.
    6. Added support for 'adding' and 'removing' actions.
  3. Refactored the following UserAsset methods to bring them up to the 1.3 Semantic Logging standard:
    1. survivors.Survivor.add_note()
    2. settlements.Settlement.add_location()
    3. settlements.Settlement.rm_location()
    4. survivors.Survivor.update_survival()
    5. settlements.Settlement.add_expansions()
    6. settlements.Settlement.rm_expansions()
  4. Refactored the method so that settlement event log calls make more sense, in terms of reading them in chronological order.
  5. The survivors.Survivor.set_name() method now supports the 'update_survival' kwarg, which can either enable or suppress automatic Survival updates (e.g. when going from Anonymous to named).
  6. Wrote some documentation (for myself) about how to manage Gear asset definitions.
  7. Wrote some help tips for GKA, Percival, Lonley Tree, The Bloom People, etc. Basically I ported all of my recent emails about confusing/controversial topics, plus the help topics from this blog (which will be going away as soon as the help feature is out of Beta).
  8. API error emails now produce a "ticket-friendly" summary that can be easily copy/pasted into GitHub without reformatting. 
  9. The log_event() decorator now shows the args/kwargs that were used when the failure occurred. 
  10. Removed hooks for celery. Might come back to it later...but not any time soon.
  11. Created webapp alerts feature for notifying webapp users of KPIs, Announcements, etc.:
    1. Built admin panel controls
    2. Created a new API route for working with notifications; implemented the 'new' and  'expire' endpoints
    3. Updated to be able to deal with notifications traffic
    4. Rewrote the showHide() method in adminPanel.js so that it works like kdmManager.js
    5. Created a method (and asset) that prunes release-specific notifications when a higher/greater release is available in production.
  12. The Settlement object's initialize_timeline() method now supports the 'save' kwarg for optional saving.
  13. Fade is an expansion now (due to the Caleb rule).
  14. Keyed in the 'Newborn' Rare Gear and cleaned up Fade's "Sword of Silence" info.

No comments:

Post a Comment