Skip to content
v1.0.0

Takedown requests have now been processed in production! 🥳

New features:
- The new `requested` field in recovery bundles list the origin URLs and
  SWHIDs given to `swh alter remove`.
- The new `referencing` fields in recovery bundles list SWHIDs in the archive
  referenced by the objects contained in the bundle. This allows to ask
  for confirmation when restoring a bundle referencing missing objects.

Correctness:
- Ignore objects missing in storage when looking for references outside the set
  of candidates for removal.
- Ignore objects missing in storage when checking if new references have been
  added during a removal.
- Flush storage at every loop during restore.

User experience:
- Error out when an origin can’t be found.
- Error out when the inventory phase gets stuck.
- Improve progressbar displayed during the inventory phase.
- Add progressbar to `swh alter list-candidates`.
- Display timing information when removing from objstorages.
- Fix spurious warnings when an object cannot be found in an objstorage.
- Downgrade log messages about submodules to DEBUG level.
- Improve the error messages when we find new references.
- Remove the “Assuming […] is an origin URL” message.
- Reword a couple of user-facing messages.

Improve tests:
- Use a storage config closer to production in tests.
- Move common fixtures to conftest.py
- Avoid configuring multiple loggers.
- Reset loggers once we are done with CLI tests.
- Parse SWHIDs earlier.
- Remove a leftover print().
- Remove `storage_with_references_from_forked_origin` fixture.

Code quality:
- Use a dedicated object for `Remover.get_removable()` results.
- Refactor `RecoveryBundleCreator` initialization.
- Remove some unneeded SWHID to string conversions.