abstraction: roll forward/back

[?]
Apr 9, 2023, 5:24 PM
GXE3ESLGGSXI45XXDOBZLAPT6DR2J7Q7LBMSHHYVOPHK3WAALZPQC

Dependencies

  • [2] BSDXVB3H backport some doc updates and renames
  • [3] MDYWFJWQ bugfix: roll back on load error
  • [4] LRDM35CE app running again
  • [5] QFURHRTP rename globals to have a single uppercase letter
  • [6] CYEH4AXB a prefix for metadata in the manifest

Change contents

  • replacement in live.lua at line 231
    [4.806][4.407:445](),[4.445][4.843:1124](),[4.843][4.843:1124]()
    Live.manifest[PARENT] = Live.head
    local manifest_filename = live.versioned_manifest(Live.next_version)
    love.filesystem.write(manifest_filename, json.encode(Live.manifest))
    Live.head = Live.next_version
    love.filesystem.write('head', tostring(Live.head))
    Live.next_version = Live.next_version + 1
    [4.806]
    [4.6977]
    live.roll_forward()
  • replacement in live.lua at line 263
    [4.1291][4.446:484](),[4.484][4.1328:1609](),[4.1328][4.1328:1609]()
    Live.manifest[PARENT] = Live.head
    local manifest_filename = live.versioned_manifest(Live.next_version)
    love.filesystem.write(manifest_filename, json.encode(Live.manifest))
    Live.head = Live.next_version
    love.filesystem.write('head', tostring(Live.head))
    Live.next_version = Live.next_version + 1
    [4.1291]
    [4.7679]
    live.roll_forward()
  • replacement in live.lua at line 266
    [4.7741][4.7741:7760](),[4.7760][4.485:525](),[4.525][3.8:65](),[3.65][4.1649:1809](),[4.525][4.1649:1809](),[4.1649][4.1649:1809]()
    -- roll back
    Live.head = Live.manifest[PARENT]
    love.filesystem.write('head', tostring(Live.head))
    local previous_manifest_filename = live.versioned_manifest(Live.head)
    Live.manifest = json.decode(love.filesystem.read(previous_manifest_filename))
    [4.7741]
    [4.7959]
    live.roll_back()
  • edit in live.lua at line 278
    [4.8043]
    [2.899]
    -- update Live.Head and record the new Live.Manifest (which caller has already modified)
    function live.roll_forward()
    Live.manifest[PARENT] = Live.head
    local manifest_filename = live.versioned_manifest(Live.next_version)
    love.filesystem.write(manifest_filename, json.encode(Live.manifest))
    Live.head = Live.next_version
    love.filesystem.write('head', tostring(Live.head))
    Live.next_version = Live.next_version + 1
    end
    -- update app.Head and reload app.Manifest appropriately
    function live.roll_back()
    Live.head = Live.manifest[PARENT]
    love.filesystem.write('head', tostring(Live.head))
    local previous_manifest_filename = live.versioned_manifest(Live.head)
    Live.manifest = json.decode(love.filesystem.read(previous_manifest_filename))
    end