github.com/dahs81/otto@v0.2.1-0.20160126165905-6400716cf085/website/source/docs/install/backwards-compatibility.html.md (about) 1 --- 2 layout: "docs" 3 page_title: "Backwards Compatibility" 4 sidebar_current: "docs-install-bc" 5 description: |- 6 Information about the backwards compatibility promise for Otto. 7 --- 8 9 # Backwards Compatibility 10 11 When discussing backwards compatibility for Otto, there are usually two 12 areas of primary concern: Appfile compatibility, and the safety of deployed 13 applications. 14 15 **Appfile**. Appfile syntax compatibility is not promised until version 1.0. 16 Despite this, we don't plan on dramatically changing the format and any 17 changes will be clearly documented in the 18 [CHANGELOG](https://github.com/hashicorp/otto/blob/master/CHANGELOG.md). 19 Due to Otto's model of compiling the Appfile, any backward incompatible 20 changes won't affect existing Otto environments until a recompile 21 occurs (via `otto compile`). This minimizes the affect of Otto upgrades 22 on Appfiles. 23 24 **Builds and Deployments**. Because Otto deploys your applications, it is 25 important to understand the implications of upgrading Otto and whether your 26 deploys will break or incur downtime. Safe upgrades for infrastructure and 27 deployments aren't promised for Otto 0.1, but are a target for 0.2. For 0.1, 28 please consider builds and deployments good for demos and hobby projects. 29 You can expect with 0.2 that your deployments may be destroyed. However, 30 0.2 should include features for safe upgrades from that point forward. 31 32 **Other**. For internal folder structures such as `~/.otto.d`, `.otto`, 33 and `.ottoid`, Otto keeps track of data format versions and will silently 34 upgrade these. Note that once they're upgraded, an older version of Otto 35 cannot safely be used. There are a lot of checks in Otto 36 to verify this doesn't happen, and Otto should give you an error if it 37 attempts to read data generated by a newer version.