Comments (3)
Good catch. There are a few ways to handle this.
We can start versioning the settings file and writing migrations each time we make a change. E.g. if someone is running 0.1.0
and suddenly upgrades to 0.5.6
or whatever and the settings file is way different, it would load the 0.1.0
settings file and pass the object through a series of migrations, then finally save the 0.5.6
settings file.
Or we can do it the easier way and simply set a setting to its default value if it doesn't exist in the settings file already. Since this is such a simple project, that option would probably be fine. The problem would arise if we decide to change how an existing setting work (change it's type, etc). We just have to be careful not to make settings changes that will cause this to break down in the future.
from gpgsync.
I implemented the 2nd option for now. I like the idea of creating migrations, but also think it may be overkill for such a simple app. The saving grace is that it is so simple and in the future we could easily switch our approach if we ever introduced any breaking changes to the settings.
from gpgsync.
💯 agree
from gpgsync.
Related Issues (20)
- Support for keys.openpgp.org
- Verify fingerprints of keys imported using VKS interface
- In Windows, make systray icon disappear on exit
- Make Mac releases in latest version of macOS HOT 1
- Windows installer should offer to run when installation is complete
- Authority key not recognized in Ubuntu 18.04 HOT 3
- macOS systray icon needs to detect theme more often
- macOS package should be notarized
- Build linux packages automatically in CI, and push to repo
- Switch to pipenv
- Update dependencies HOT 1
- "Keylist is not in JSON format" error on sync HOT 1
- Surface example JSON format more visibly
- Integration between GPG Sync and OpenPGP CA
- GPG Sync not working on MacOS (Mojave/Catalina) with OS language different than English HOT 1
- GPG Sync 0.3.5 on Windows 10 - works up to 50% of keylist and throws error
- When opening GPG Sync for the first time with an existing settings.json, authority key is not displayed
- macOS Big Sur support
- Signature does not verify
- Build PyInstaller again for Windows release
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gpgsync.