Thursday, December 14, 2017

Change Log: 2.59.1140

I realized a day or two ago that we're into a kind of development "lightning round" right now and that I'm going to be doing small (probably daily) releases of the API as bugs and enhancement requests roll in.

Release 2.59.1140 is exactly that sort of push. It addresses a major bug in the Manager that was introduced one or two releases back, and pushes some new feature code for The Watcher and...that's about it.

All of which is to say that you can expect the next several releases to be similar to this one, with respect to scope and impact.

I expect that we're going to be in this "lighting round" kind of mode until The Watcher starts to stabilize and move into beta, at which point I expect to get back to a less frantic pace with releases.

Thanks for using the Manager!

Corrections and Fixes


  1. Fixed a bug where a bunch of storage locations showed up in the settlement locations picker.
  2. Addressed an issue in utils where coercing a list to a string could break if the strings in the list had upper-ascii characters.
  3. Fixed a bug where Secret Fighting Arts could be picked by the random Fighting Art picker.

API Development

  1. Moved the docs for /new/user out of the "Private Routes" section
  2. Reorganized the "Public Routes" so that like endpoints are grouped under headings together
  3. Added a deprecation warning for the /new_settlement route.
  4. Implemented semantic logging:
    1. All log_event() calls now record the caller function as 'method'.
    2. Calling the method automatically sets a new key called 'asset_modified', which is a tiny dict with info re: the asset that is modified by the event.
    3. Events with no explicit 'event_type' now default to the type of their caller 'method'.
    4. The 'created_by' key now defaults to None/null if there is no request context.
    5. Created utils.action_keyword() method to convert action keywords into title-case, past tense versions of themselves.
    6. Revised Settlement class methods to use semantic logging: add_location(), rm_location(), add_innovation(), rm_innovation()
    7. Revised Survivor class methods to use semantic logging: add_game_asset(), rm_game_asset()
  5. Upgraded models.settlements.Settlement.get_available_assets() method to accept a kwarg called 'only_include_selectable' that takes a bool and filters assets whose 'selectable' attribute is False.
  6. Updated a slew of location assets to have 'selectable': False
  7. Modified Models.AssetCollection.filter() to back off gracefully if it is asked to filter an attribute that does not exist on an asset.

No comments:

Post a Comment