Implement version locks, see tests/test_version_locks.py for examples