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.