- Mar 03, 2021
-
-
vlorentz authored
-
- Mar 01, 2021
-
-
vlorentz authored
SWHID is deprecated; and CoreSWHID does not support qualifiers at all, so RawExtrinsicMetadata no longer needs to check there are no qualifiers.
-
vlorentz authored
ExtendedSWHID can identify either a software artifact or an origin, so we no longer need Union[SWHID, str]. Therefore, we no longer need the 'type' attribute, as it was only used to tell when the target is a SWHID and when it's an origin URL.
-
vlorentz authored
It can be handy as a shortcut to build SWHID objects.
- Feb 23, 2021
-
-
vlorentz authored
-
vlorentz authored
-
vlorentz authored
* Quote/unquote path * Fix line parsing and serializing to properly handle None * Fix error raised by check_visit/check_anchor
-
vlorentz authored
They were all very similar and only differ in what 'edge' cases they accept
-
vlorentz authored
Following the discussion on T3034, we decided to replace SWHID with two or three classes: * QualifiedSWHID to replace the existing SWHID (standard types + qualifiers) * CoreSWHID, for "core SWHID" only (standard types + no qualifiers) * ExtendedSWHID for internal use in Software Heritage (extra types + no qualifiers) This commit adds the last one. It also removes "ori" as a valid object type for CoreSWHID and QualifiedSWHID, as it now only belongs in ExtendedSWHID.
- Feb 19, 2021
-
-
vlorentz authored
And store their parsed values (CoreSWHID, tuple of ints, etc.) instead of string.
-
vlorentz authored
Following the discussion on T3034, we decided to replace SWHID with two or three classes: * QualifiedSWHID to replace the existing SWHID (standard types + qualifiers) * CoreSWHID, for "core SWHID" only (standard types + no qualifiers) * ExtendedSWHID for internal use in Software Heritage (extra types + no qualifiers) This commit adds the second one
-
vlorentz authored
Following the discussion on T3034, we decided to replace SWHID with two or three classes: * QualifiedSWHID to replace the existing SWHID (standard types + qualifiers) * CoreSWHID, for "core SWHID" only (standard types + no qualifiers) * ExtendedSWHID for internal use in Software Heritage (extra types + no qualifiers) Since migrating from SWHID will break existing code, this commit uses the opportunity to modernize it a little, ie.: * `keyword`-only constructor, to get rid of the hacky default values for `object_type` and `object_id` * enum instead of strings for the object type * `bytes` instead of an hex string for the object id * rename `metadata` to `qualifiers`
-
vlorentz authored
Depending on the order in which tests are run, these tests may insert lambdas with mocked blake2 functions in their closure to be inserted in hashutil._blake2_hash_cache; causing all future tests to fail. While this does not happen with the default order of tests, it does when using pytest-xdist.
-
- Jan 26, 2021
-
-
David Douard authored
so it's kept up to date when evolutions are made in the model and thus preventing swh-journal and swh-model to be unecessarly coupled. Related to T2970.
-
- Jan 12, 2021
-
-
vlorentz authored
They were mixed in with snapshot tests.
-
vlorentz authored
test_identifiers: Make sure that {directory,revision,release,snapshot}_identifier() doesn't just return a value from the dict. For example, before this commit, you could replace the code of revision_identifier() with this: def release_identifier(release): return release.get("id", b"") and all tests would still pass.
-
- Dec 30, 2020
-
-
Stefano Zacchiroli authored
Before this change there was a lot of overlap between parse_swhid() and the attrs-based validators in the SWHID class. Also, the validation implementation in parse_swhid() was done by hand. With this change the coarse-grained validation done by parse_swhid() is now delegated to a regex. The semantic validation of SWHIDs is left to attrs validators. The regex is also exposed as a module attribute, to be used by client code that want to syntactically validate SWHIDs without necessarily instantiate SWHID classes (we have several other modules doing that already, and they are using slightly different hand-made regexs, which isn't great). As part of this change we also clean up the use of ValidationError exceptions, systematically passing the problematic parts of SWHID as arguments, and uniform error messages. This change also brings some speed up in SWHID parsing. On a benchmark parsing ~30 M valid SWHIDs, the previous implementation took ~3:06 minutes, the new one ~2:50 minutes, or a ~9% speedup. Closes T2788
-
- Nov 16, 2020
-
-
Nicolas Dandrimont authored
All reverse dependencies have been updated to avoid using it now, so it can now be removed, paving the way to recycle it into an intrinsic identifier.
-
- Nov 12, 2020
-
-
Antoine R. Dumont authored
So parse_swhid raises a ValidationError when that is detected. Related to T2769
-
Antoine R. Dumont authored
Related to T2769
-
- Nov 10, 2020
-
-
Antoine R. Dumont authored
Related to T2769
-
- Oct 26, 2020
-
-
Nicolas Dandrimont authored
This backwards-compatible change prepares the transition to give RawExtrinsicMetadata an `id` field that is computed intrinsically from its contents (using the HashableObject mixin).
-
- Oct 23, 2020
-
-
Antoine Cezar authored
-
- Oct 08, 2020
-
-
vlorentz authored
that returns a value suitable for unicity constraints. Motivation: * this is somewhat more of a model concern than a journal/kafka concern IMO * this is one step toward adding support for non-model objects in KafkaJournalWriter Implementation of the unique_key methods comes from `swh.journal.serializers.object_key`.
-
- Sep 29, 2020
-
-
vlorentz authored
I created one in the wrong directory and didn't see the existing one.
-
- Sep 17, 2020
-
-
Antoine Lambert authored
Related to T2610
-
- Aug 14, 2020
-
-
vlorentz authored
We may unknowingly pass naive datetimes to the storage through them, causing the underlying DB to assign them a timezone that might not match the actual one. It already happens in swh.model and swh.loader.package tests.
-
- Aug 07, 2020
-
-
Antoine R. Dumont authored
Same as for the field data, it helps for code not yet migrated to use model object.
-
- Jul 29, 2020
-
-
David Douard authored
-
- Jul 08, 2020
-
-
Antoine Lambert authored
-
- Jul 07, 2020
-
-
vlorentz authored
-
vlorentz authored
It allows easy conversion of Union[ImmutableDict, Dict] to ImmutableDict.
-
vlorentz authored
-
vlorentz authored
So they are truly immutable now.
-
vlorentz authored
This will allow swh-storage to have a signature for *_metadata_add that is consistent with other *_add endpoints.
-
- Jul 06, 2020
-
-
David Douard authored
Add a new extra_headers attribute on Revision and use it for computing the revision's id instead of extract it from the metadata field. Only accept (bytes, bytes) as extra_header. Add a post init hook to Revision to initialize this new attribute from given metadata, if any, for bw compat. Also amend the revision_d hyptothesis strategy to generate extra_headers.
-
- Jul 03, 2020
-
-
Antoine Lambert authored
When Software Heritage persistent identifiers were introduced, they were not yet abbreviated as SWHIDs. Now that abbreviation is growing adoption, rename some functions and types in swh.model.identifiers for consistency: - PersistentId -> SWHID - persistent_identifier -> swhid - parse_persistent_identifier -> parse_swhid Backward compatibility with previous naming is maintained but deprecation warnings are introduced to encourage the use of the new names. Numerous variables in swh.model codebase have also been renamed accordingly. Also rework and improve documentation.
-
- Jul 02, 2020
-
-
Antoine R. Dumont authored
-