Snapshot and Timestamp constructors try to be clever:
self.meta = meta if meta is not None else {"targets.json": MetaFile(1)}
and
self.snapshot_meta = snapshot_meta or MetaFile(1)
So they set the metafile content without knowing what it really should be
this is annoying as Repository.snapshot() and Repository.timestamp() now think a snapshot and timestamp are not needed -- even though none have been generated yet.
I can work around this but especially for snapshot the default value seems wrong: empty dict would be more correct -- the meta dict should be filled by a conscious decision not by a default value that might be right.
For timestamp there might not be a correct value though. I think MetaFile(0) would be best (although it requires loosening the check for valid MetaFiles): it's at least clear that timestamp doesn't have a snapshot version yet
Snapshot and Timestamp constructors try to be clever:
and
So they set the metafile content without knowing what it really should be
this is annoying as
Repository.snapshot()andRepository.timestamp()now think a snapshot and timestamp are not needed -- even though none have been generated yet.I can work around this but especially for snapshot the default value seems wrong: empty dict would be more correct -- the meta dict should be filled by a conscious decision not by a default value that might be right.
For timestamp there might not be a correct value though. I think MetaFile(0) would be best (although it requires loosening the check for valid MetaFiles): it's at least clear that timestamp doesn't have a snapshot version yet