Upgrade Guide
Backwards Compatibility
Section titled “Backwards Compatibility”To help ease the transition to new major versions, limited backwards compatibility has been added. For example, if your configuration file has a 5.x schema like this at the top:
# yaml-language-server: $schema=https://gcpw.art/tvs/schemas/5.11.0.jsonYour config file will be loaded in compatibility mode, which will translate your config file on-the-fly to work around breaking changes.
Some things like removed / moved engines (basic-text and video-game) will not load but channels that can be loaded with modifications will load.
Compatibility mode is not meant to be a long-term solution; when you’re ready to take advantage of new features and improvements, you can follow the steps below to update to new schemas.
Upgrade Guide 5.x -> 6.0
Section titled “Upgrade Guide 5.x -> 6.0”You can use our automated upgrade utility to help upgrade your config file. Visit /upgrade-utility in TVS 6.x or later or use the hosted version.
-
Change the schema line to the 6.0 schema:
# yaml-language-server: $schema=https://gcpw.art/tvs/schemas/6.0.0.json -
Replace any
basic-textengine usage withcharacter-generator. I’ve prepared a template that looks the same as basic-text’s defaults that you can drop in:- number: 1name: Basic Text backwards compatibilityabbr: TEXTcharacter-generator:src: placeholders/config-examples/bulletins/basic-text.jsonlines:line:- text: First line of text # put your text here- text: Second line of text -
Replace any
video-gameengine usage with the newiframeversion. You can self-host it or use the hosted version:- number: -1iframe:src: http://gcpw.art/tvs/engines/video-game # replace with your own server if self-hostingoptions:game: flappybird.nes # Required. The game library by default is from `retrobrews.github.io`. You can specify a game from there directly. Set to false to use a core that doesn't require a game.core: fceumm # Required. The system to emulate. -
Change usage of
mixfrom the old to new syntax:- Use a list rather than
aandb mixMode:becomes_mix.modeopacity:becomes_mix.opacity
Old syntax:
- number: 133name: Mix Layoutmix:a:opacity: 0.6image: placeholders/example-program.webpb:mixMode: differencegenerator: test-patternNew syntax:
- number: 133name: Mix Layoutmix:- image: placeholders/example-program.webp_mix:opacity: 0.6- generator: test-pattern_mix:mode: difference - Use a list rather than
-
Change usage of
v-splitandh-splitfrom the old to new syntax:Old syntax:
- number: 139name: V-Splitv-split:a:color: redb:color: blueNew syntax:
- number: 139name: V-Splitv-split:- color: red- color: bluesplitPercentagecan continue to be used but only if you have two components. The new equivalent is_split.weight:- number: 139name: V-Splitv-split:- color: red- color: blue_split:weight: 2 # This component will take up two units of weight compared to the others. The default is to distribute each component equally (1 weight per component)- color: green -
Move channel
titleanddescriptiontoinfosectionAnywhere where you have a channel with
titleanddescriptionattributes, move these to theinfosection and replacedescriptionwithsummary.Old syntax:
- number: 2name: Welcomeabbr: WELCOMEtitle: Thanks for testing Television Simulator!description: Welcome to TVS 6.0!New syntax:
- number: 2name: Welcomeabbr: WELCOMEinfo:title: Thanks for testing Television Simulator!summary: Welcome to TVS 6.0!