Skip to content
Snippets Groups Projects
  1. Apr 13, 2021
  2. Mar 10, 2021
    • David Douard's avatar
      Add an ExtID object · 71be4617
      David Douard authored
      this object aims at being able to keep in the SWH Archive an
        SWHID <-> External object ID
      map, e.g. to be able to keep track of Mercurial ids so the Mercurial
      loader can be made more efficient.
      
      Related to T2849.
      v2.1.0
      71be4617
  3. Mar 04, 2021
  4. Mar 03, 2021
  5. Mar 01, 2021
  6. Feb 23, 2021
  7. Feb 19, 2021
    • vlorentz's avatar
      Use dict instead of temporary SWHID when parsing {Core,Qualified}SWHID. · 99237659
      vlorentz authored
      It is cleaner, avoids warnings, and will be needed when introducing
      ExtendedSWHID in a future commit.
      99237659
    • vlorentz's avatar
      QualifiedSWHID: Replace the 'qualifiers' dict with statically defined attributes · 8e917597
      vlorentz authored
      And store their parsed values (CoreSWHID, tuple of ints, etc.) instead of string.
      8e917597
    • vlorentz's avatar
      Add new class CoreSWHID as an alternative to SWHID/QualifiedSWHID · eba8d84d
      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
      eba8d84d
    • vlorentz's avatar
      Add new class QualifiedSWHID to replace SWHID, and deprecate the latter. · 690b7f82
      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`
      690b7f82
  8. Dec 30, 2020
    • Stefano Zacchiroli's avatar
      SWHID parsing: simplify and deduplicate validation logic · 57468505
      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
      57468505
  9. Nov 12, 2020
  10. Oct 14, 2020
    • Nicolas Dandrimont's avatar
      Make revision/release identifiers explicitly the hash of a manifest · 9224c8ca
      Nicolas Dandrimont authored
      This collapses the shared logic between these two identifier computations into a
      few more explicit steps:
       - generate data for the manifest (in either identifier computation);
       - format the manifest (in the new format_manifest function);
       - hash the manifest (in the new hash_manifest function).
      
      This will enable reusing this logic for more object types, as well as stronger
      typing for the manifest computation.
      9224c8ca
  11. Sep 18, 2020
  12. Sep 17, 2020
  13. Jul 08, 2020
  14. Jul 07, 2020
  15. Jul 06, 2020
    • David Douard's avatar
      Extract the extra_headers from metadata on the Revision model class · a7d9aca2
      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.
      v0.4.0
      a7d9aca2
  16. Jul 03, 2020
    • Antoine Lambert's avatar
      identifiers: Rename some functions and types related to SWHIDs · 1ff05161
      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.
      v0.3.8
      1ff05161
  17. Jun 15, 2020
  18. Apr 17, 2020
  19. Apr 08, 2020
    • David Douard's avatar
      Enable black · bf3f1cec
      David Douard authored
      - blackify all the python files,
      - enable black in pre-commit,
      - add a black tox environment.
      bf3f1cec
  20. Mar 23, 2020
  21. Feb 21, 2020
  22. Nov 29, 2019
  23. Oct 06, 2019
  24. Oct 04, 2019
  25. Sep 20, 2019
  26. Aug 23, 2019
Loading