rope
rope copied to clipboard
Remove usage of pickle from `objectdb` and `history`
pickle is insecure and it's not very efficient for larger, more complex datasets.
This will be a multiple steps plan towards moving into sqlite-backed storage:
- [x] Remove rarely used features
- [x] Deprecate objectdb and history compression: This was never the default and disk space nowadays makes this unlikely to be an issue nowadays, maybe we can re-introduce compression when sqlite migration is complete (#606)
- [x] Deprecate importing of old format (
objectdb.pickleandhistory.pickle): rope hasn't been generating this for decades (#607)
- [x] Make ScopeInfo JSON-serializable: there are some data here that are python class instances, but they really doesn't need to be, we can just
__getstate__()/__setstate__()them instead when de/serializing. #611 - [ ] Implement sqlite database schema versioning #565
- [ ] These files contains a bunch of nested dictionaries, these can be translated to sqlite tables in a straightforward manner, we'll likely will still store JSON documents inside the sqlite tables instead of normalizing everything
- [ ] Make sure that the tables have appropriate indexes
- [ ] Remove write support for legacy objectdb and history files
- [ ] Remove read support for legacy objectdb and history files