1072884 | Ishan Bhanuka | 18 June 2019, 12:18:38 UTC | Add pyblake2 platform specific dependency Remove version checking code, pyblake2 is installed by default on python 3.6+ | 18 June 2019, 13:49:42 UTC |
b3250d2 | Valentin Lorentz | 18 June 2019, 11:40:20 UTC | Remove dependency on swh-core. This is a fix to workaround pip's inability to correctly solve extra requirements (swh-model depends on swh-core[], but if other packages depend on swh-model and swh-core[http], the 'http' extra does not always get installed). | 18 June 2019, 11:40:56 UTC |
d7ec4a6 | David Douard | 15 May 2019, 13:44:21 UTC | cli: add support for --help on the 'identify' cli tool | 11 June 2019, 08:06:30 UTC |
0815880 | David Douard | 15 May 2019, 13:31:13 UTC | setup: register the 'identify' cli subcommand | 11 June 2019, 08:06:30 UTC |
60c3f7d | David Douard | 15 May 2019, 13:30:06 UTC | cli: the 'objects' argument is in fact mandatory | 11 June 2019, 08:06:30 UTC |
c3a7e4e | Valentin Lorentz | 05 June 2019, 09:28:34 UTC | Prevent Hypothesis from writing the null character in the 'reason' field. pgsql does not support it. | 05 June 2019, 09:28:34 UTC |
b42d35c | Valentin Lorentz | 03 June 2019, 14:29:29 UTC | Prevent generation of empty branch names. | 03 June 2019, 14:29:29 UTC |
6ef1dc1 | Valentin Lorentz | 09 May 2019, 14:29:46 UTC | Explicitely implement from_dict instead of using introspection magic. There is more repetition, but it's easier to read and '%timeit Revision.from_dict(d)' is 5 times faster. | 10 May 2019, 08:25:55 UTC |
fc3d3c1 | Valentin Lorentz | 26 April 2019, 11:33:29 UTC | Prevent from_dict() from changing its input dict. | 26 April 2019, 11:33:29 UTC |
efc7e72 | Valentin Lorentz | 12 April 2019, 13:51:15 UTC | Add a from_dict() method to model classes, that does the inverse of to_dict(). | 16 April 2019, 08:17:44 UTC |
868b8c3 | Nicolas Dandrimont | 12 April 2019, 10:03:09 UTC | Update coverage gitignore | 12 April 2019, 10:03:09 UTC |
fee3a41 | Nicolas Dandrimont | 11 April 2019, 10:03:10 UTC | Make sure timestamps can be represented by Python no matter the timezone | 11 April 2019, 10:03:10 UTC |
54490c9 | Valentin Lorentz | 09 April 2019, 16:30:50 UTC | Limit Content.length to what the pgsql storage supports. | 09 April 2019, 16:30:50 UTC |
f9641d2 | Valentin Lorentz | 08 April 2019, 19:46:28 UTC | Tune the model generation to work with the pgsql storage. | 09 April 2019, 15:06:34 UTC |
6909704 | Valentin Lorentz | 08 April 2019, 13:14:13 UTC | Check recursively that .to_dict() returns a nested dict. | 08 April 2019, 13:14:13 UTC |
9f80661 | Valentin Lorentz | 08 April 2019, 13:13:36 UTC | Remove debug prints. | 08 April 2019, 13:13:36 UTC |
d1b2156 | Valentin Lorentz | 05 April 2019, 17:15:16 UTC | Add a model based using 'attrs' and Hypothesis strategies to generate it. | 08 April 2019, 12:43:12 UTC |
4d40f4d | Valentin Lorentz | 04 April 2019, 18:46:15 UTC | Make snapshot_identifier add the cycle to the exception's arguments when it detects one. | 04 April 2019, 18:46:15 UTC |
b8fadd1 | David Douard | 22 November 2018, 10:59:54 UTC | doc: update index to match new swh-doc format related to T1330 | 23 November 2018, 12:52:35 UTC |
a7ac5c9 | David Douard | 12 November 2018, 13:12:01 UTC | make-doc: add an 'assets' make target for the doc used by the swh-docs to generate images and schemas when building the whole documentation. | 12 November 2018, 13:12:01 UTC |
c4a6c27 | David Douard | 09 November 2018, 10:57:03 UTC | Add :orphan: metadata to data-model and persistent-identifiers doc files to prevent sphinx from complaining about these not being included. | 09 November 2018, 10:57:03 UTC |
fa140b2 | Nicolas Dandrimont | 29 October 2018, 15:07:38 UTC | Remove debian directory | 29 October 2018, 15:07:38 UTC |
4700b84 | Antoine R. Dumont (@ardumont) | 25 October 2018, 11:40:46 UTC | swh.model.hashutil: Remove deprecated hash_* function to the benefit of MultiHash api | 25 October 2018, 11:52:22 UTC |
33027d7 | Stefano Zacchiroli | 24 October 2018, 13:48:12 UTC | PID doc: add reference to iPRES 2018 paper | 24 October 2018, 13:48:12 UTC |
4e6bce9 | Antoine R. Dumont (@ardumont) | 23 October 2018, 14:20:24 UTC | swh.model.tests.test_cli: Fix pytest.mark.fr to pytest.mark.fs | 23 October 2018, 14:23:54 UTC |
33d2a5e | Antoine R. Dumont (@ardumont) | 23 October 2018, 14:15:19 UTC | d/rules: Update build instruction | 23 October 2018, 14:23:54 UTC |
01b195a | Antoine R. Dumont (@ardumont) | 23 October 2018, 14:15:06 UTC | d/control: Update build dependency | 23 October 2018, 14:15:06 UTC |
78f0c39 | Nicolas Dandrimont | 23 October 2018, 14:02:31 UTC | Don't run pytest in the docs directory | 23 October 2018, 14:03:48 UTC |
825fbbd | David Douard | 23 October 2018, 13:41:40 UTC | Fix rst formatting errors in hashutil.py Summary: to make sphinx happy. Test Plan: make -C docs Reviewers: ardumont Reviewed By: ardumont Differential Revision: https://forge.softwareheritage.org/D571 | 23 October 2018, 13:42:22 UTC |
2c1062a | David Douard | 23 October 2018, 12:33:01 UTC | docs: fix a rst formatting problem double back-quote (``) are not interpreted when inside a emphasis block. | 23 October 2018, 13:39:57 UTC |
af12e4c | Nicolas Dandrimont | 23 October 2018, 13:19:36 UTC | Add pytest.ini with doctest setting | 23 October 2018, 13:19:36 UTC |
a57183d | Nicolas Dandrimont | 15 October 2018, 11:36:32 UTC | Update gitignore to ignore pytest and hypothesis caches | 23 October 2018, 09:57:31 UTC |
7cb415e | David Douard | 23 October 2018, 07:28:40 UTC | tox: install test deps from setup.py file's [testing] extras This prevent from requiring a too much recent tox version to fire the tests, especially this allows to run tests using stretch's tox version. | 23 October 2018, 07:28:40 UTC |
f58f4c2 | Stefano Zacchiroli | 15 October 2018, 15:31:13 UTC | doc: document PID resolution possibilities other than Web UI / Promote "Resolution" to a new top-level section, because it's now rather voluminous. As part of this document the resolver limitations of identifiers.org, that get in the way of PID contextual information. Closes T1015 Closes T1223 | 19 October 2018, 12:49:56 UTC |
da77ac8 | David Douard | 18 October 2018, 14:16:20 UTC | tox: install requirements-test.txt in pyn py3 env | 18 October 2018, 14:17:49 UTC |
2aca1be | David Douard | 18 October 2018, 13:24:52 UTC | add .tox to gitignore | 18 October 2018, 13:24:52 UTC |
0250497 | David Douard | 18 October 2018, 13:23:22 UTC | add a simple tox file | 18 October 2018, 13:23:22 UTC |
b6c1ca3 | David Douard | 18 October 2018, 13:10:23 UTC | tests: rename TestedMerkleLeaf and TestedMerkleNode classes so pytest does not think they are test classes. | 18 October 2018, 13:23:00 UTC |
0c95a59 | David Douard | 18 October 2018, 13:03:30 UTC | tests: assertEquals -> assertEqual to clear deprecation warnings. | 18 October 2018, 13:03:30 UTC |
b210fdd | David Douard | 18 October 2018, 12:57:43 UTC | tests: use pytest instead of nose related to T1261 | 18 October 2018, 12:57:43 UTC |
7af882a | Nicolas Dandrimont | 12 October 2018, 09:46:31 UTC | Rename test methods to test_ to allow py.test collection Summary: Related to T1261 Test Plan: before and after: 138 tests passed (2 skipped) Reviewers: #reviewers! Differential Revision: https://forge.softwareheritage.org/D520 | 12 October 2018, 09:47:31 UTC |
866548c | David Douard | 12 October 2018, 09:38:27 UTC | tests: move dir-folder test data back here and ensure it is included in the source package. Related to T1265. | 12 October 2018, 09:38:27 UTC |
1032c73 | David Douard | 08 October 2018, 10:09:08 UTC | setup: rename extra_requirements as blake2_requirements to prevent confusion with setup()'s "extras_require" argument. | 08 October 2018, 10:09:08 UTC |
01440f7 | David Douard | 04 October 2018, 13:24:02 UTC | docs: add a basic README file | 08 October 2018, 10:04:52 UTC |
607e3a1 | David Douard | 04 October 2018, 13:05:51 UTC | add build/ to the gitignore file | 08 October 2018, 10:04:52 UTC |
e9dd7ba | David Douard | 04 October 2018, 13:04:30 UTC | setup: prepare for pypi upload related to T1242 | 08 October 2018, 10:04:52 UTC |
8473446 | Antoine Pietri | 05 October 2018, 10:53:50 UTC | Add requirements-test.txt | 05 October 2018, 10:53:51 UTC |
6d86b69 | David Douard | 03 October 2018, 12:20:55 UTC | doc: use inkscape instead of dia to generate image files it makes life a bit easier for CI (less dependencies). | 03 October 2018, 12:20:55 UTC |
92e240e | Antoine R. Dumont (@ardumont) | 03 October 2018, 08:50:50 UTC | bin: Migrate swh-hashtree to swh-model This is a temporary move. This will eventually converge with swh.model.cli as the directory hashing ability overlaps. What's missing in the cli for now is the ability to filter patterns. This is mostly used to compute hashes on tree coming from multiple dvcs. This imposes the need to be able to filter pattern like .svn, .hg, etc... | 03 October 2018, 09:12:22 UTC |
6f5d74b | Stefano Zacchiroli | 03 October 2018, 09:07:43 UTC | docs: make sure images are built/cleaned on sphinx targets Related D454 | 03 October 2018, 09:07:43 UTC |
94c1a97 | Stefano Zacchiroli | 01 October 2018, 13:47:47 UTC | docs: add title and brief module description | 01 October 2018, 13:47:47 UTC |
ac3b0f8 | Antoine R. Dumont (@ardumont) | 27 September 2018, 15:44:01 UTC | swh.model.hashutil: Remove extra length parameter This aligns the new api with the old one. | 27 September 2018, 15:44:01 UTC |
0119f4c | Antoine R. Dumont (@ardumont) | 27 September 2018, 12:28:05 UTC | swh.model: Do multiple reads with a fixed chunk size | 27 September 2018, 12:28:05 UTC |
3487025 | Antoine R. Dumont (@ardumont) | 21 September 2018, 13:08:15 UTC | hashutil: Migrate towards MultiHash api | 21 September 2018, 13:32:55 UTC |
eb338cd | Antoine R. Dumont (@ardumont) | 17 September 2018, 09:41:17 UTC | hashutil: Clarify further the module dostring | 17 September 2018, 09:41:17 UTC |
8c26ddb | Antoine R. Dumont (@ardumont) | 17 September 2018, 09:02:24 UTC | hashutil: Update module and functions docstrings | 17 September 2018, 09:31:22 UTC |
5676bd6 | Antoine R. Dumont (@ardumont) | 17 September 2018, 09:01:35 UTC | hashutil: Remove unused variables | 17 September 2018, 09:29:43 UTC |
50e583f | Antoine R. Dumont (@ardumont) | 17 September 2018, 08:58:11 UTC | MultiHash.from_path: Use the length coming from os.path | 17 September 2018, 09:29:43 UTC |
7bfb0a8 | Antoine R. Dumont (@ardumont) | 17 September 2018, 09:28:13 UTC | swh.model.hashutil: Reuse hash_path's old definition Remove unused track_length parameter | 17 September 2018, 09:29:43 UTC |
4959a45 | Antoine R. Dumont (@ardumont) | 14 September 2018, 22:48:52 UTC | swh.model.hashutil: Mark hash_* function as deprecated And revert to their original behavior (returning only digest as bytes) | 14 September 2018, 22:48:52 UTC |
9084f96 | Antoine R. Dumont (@ardumont) | 14 September 2018, 22:35:43 UTC | hashutil: Improve MultiHash class from_* to compute hashes This allows calls like: - MultiHash.from_file(file_object).digest() - MultiHash.from_path(b'foo').hexdigest() - MultiHash.from_data(b'foo').bytehexdigest() | 14 September 2018, 22:37:29 UTC |
836198c | Antoine R. Dumont (@ardumont) | 14 September 2018, 21:39:08 UTC | swh.model.hashutil: Remove unnecessary endpoints | 14 September 2018, 21:49:36 UTC |
3b9e8e9 | Antoine R. Dumont (@ardumont) | 14 September 2018, 21:32:31 UTC | hashutil: Set the hash_names defaulting to swh default hash algo | 14 September 2018, 21:32:31 UTC |
0e71ebf | Antoine R. Dumont (@ardumont) | 14 September 2018, 18:04:27 UTC | hashutil: Add MultiHash to compute hashes of content in 1 roundtrip This is the first step to improve the hashutil module according to "the" plan [1]. In this regards, the hashutil exposes the same function as before. Internally though, they now uses a MultiHash instance. Related D410 [1] D410#7952 | 14 September 2018, 18:07:05 UTC |
7f885ed | Antoine R. Dumont (@ardumont) | 13 September 2018, 23:11:43 UTC | swh.model.hashutil: Open hash_stream endpoint Related T421 | 13 September 2018, 23:42:22 UTC |
5ca5dce | Antoine R. Dumont (@ardumont) | 13 September 2018, 22:21:33 UTC | hashutil: Allow option to require hexdigest instead of binary digest Related T421 | 13 September 2018, 23:41:56 UTC |
2034fed | Antoine R. Dumont (@ardumont) | 20 July 2018, 12:57:17 UTC | swh.model.identifiers: Open metadata in persistent_identifier method Related T1152 | 20 July 2018, 12:57:17 UTC |
ad2c349 | Stefano Zacchiroli | 12 July 2018, 14:22:36 UTC | refactor CLI tests to avoid duplicate assertion pairs | 12 July 2018, 14:22:36 UTC |
07208f0 | Stefano Zacchiroli | 12 July 2018, 14:19:11 UTC | swh-identify: follow symlinks for CLI arguments (by default) ... and add an option to explicitly not follow them, if needed. Closes T1135 | 12 July 2018, 14:19:11 UTC |
abffb22 | Stefano Zacchiroli | 12 July 2018, 14:01:47 UTC | cli.py: prefer os.fsdecode() over manual fiddling with locale.getpref... | 12 July 2018, 14:01:47 UTC |
89f8d11 | Stefano Zacchiroli | 12 July 2018, 13:32:07 UTC | swh-identify: add support for passing multiple CLI arguments Closes T1134 | 12 July 2018, 13:32:07 UTC |
f539890 | Stefano Zacchiroli | 12 July 2018, 13:00:24 UTC | swh-identify: show filename in output (by default) with explicit option to hide it Closes T1133 | 12 July 2018, 13:00:24 UTC |
edcd365 | Antoine Lambert | 29 June 2018, 09:44:51 UTC | identifiers: Improve persistent identifiers representation This commit changes the swh pids representation returned by the parse_persistent_identifier function from a dict to a named tuple. Also, the 'object_type' attribute of that named tuple now contains a full name instead of an abbreviated one. Closes T1112 Closes T1125 | 29 June 2018, 09:45:17 UTC |
5eb055d | Antoine R. Dumont (@ardumont) | 22 June 2018, 13:36:52 UTC | d/rules: Avoid fs tests during packaging | 22 June 2018, 13:36:52 UTC |
3803ac3 | Antoine R. Dumont (@ardumont) | 22 June 2018, 13:32:48 UTC | d/control: Add missing dependency | 22 June 2018, 13:34:27 UTC |
bd22f27 | Antoine R. Dumont (@ardumont) | 21 June 2018, 09:53:52 UTC | identifiers: Reuse ValidationError exception + update docstring Close T1104 Close D346 | 21 June 2018, 11:45:17 UTC |
f2422d6 | Antoine R. Dumont (@ardumont) | 21 June 2018, 09:50:40 UTC | identifiers: Validate that inputs are correct Related T1104 | 21 June 2018, 11:45:17 UTC |
dfb128e | Antoine R. Dumont (@ardumont) | 21 June 2018, 08:47:59 UTC | swh.model.cli: Catch specific exception during identifiers check Related T1104 | 21 June 2018, 11:45:17 UTC |
b6073e2 | Antoine R. Dumont (@ardumont) | 21 June 2018, 08:10:50 UTC | identifiers: Permit to pass directly the object's id As the client of this api might not be aware of what's the right id key for a given object. Related T1104 | 21 June 2018, 11:45:17 UTC |
79d57ac | Antoine R. Dumont (@ardumont) | 20 June 2018, 10:11:27 UTC | identifiers: Fix wrong type in docstring | 21 June 2018, 11:45:17 UTC |
7779c57 | Antoine R. Dumont (@ardumont) | 20 June 2018, 10:11:07 UTC | identifiers: Also validate the hash is correct Related T1104 | 21 June 2018, 11:45:16 UTC |
0d3a051 | Antoine R. Dumont (@ardumont) | 20 June 2018, 09:05:22 UTC | identifiers: Raise when invalid contextual data in persistent id Related T1104 | 21 June 2018, 11:45:16 UTC |
8a0cc22 | Antoine R. Dumont (@ardumont) | 20 June 2018, 08:18:17 UTC | identifiers: Make invalid persistent identifier parsing raise error Related T1104 | 21 June 2018, 11:45:16 UTC |
90f08ee | Nicolas Dandrimont | 20 June 2018, 14:08:42 UTC | Update blake2 support to be less Debian-specific Summary: We used to depend on the 'blake2s256' and 'blake2b512' names to be available in hashlib.algorithms_available. It turns out that that's specific to OpenSSL 1.1. We now try, in order: - blake2s256/blake2b512 as shipped by libssl1.1 (Python 3.5+ on Debian stretch and up) - blake2s/blake2b as built into Python 3.6+ - pyblake2 if all else fails While we're here, let's also avoid doing not-so-subtle hacks with hashlib builtins. Thanks to Alexios Zavras for the report. Test Plan: New unit tests added to check for behavior in all cases. Manually running the tests on Python 3.4 + pyblake2, Python 3.5 and Python 3.6 as shipped by Debian exercises all three cases. Reviewers: zack, #reviewers! Differential Revision: https://forge.softwareheritage.org/D347 | 21 June 2018, 10:21:17 UTC |
0d5bc17 | Stefano Zacchiroli | 16 June 2018, 20:40:44 UTC | add swh-identify CLI tool to compute persistent identifiers Currently only content and directory object types are supported, but more can be added in the future. Closes T1039 | 16 June 2018, 20:40:44 UTC |
0c00db9 | Stefano Zacchiroli | 15 June 2018, 10:40:48 UTC | remove obsolete doc about sha1 computation superseded by the doc of swh.model.identifiers | 15 June 2018, 10:40:48 UTC |
8359879 | Antoine R. Dumont (@ardumont) | 14 June 2018, 09:16:40 UTC | docs/persistent-identifiers.rst: Fix typo and align formatting | 14 June 2018, 09:16:40 UTC |
078460b | Stefano Zacchiroli | 13 June 2018, 14:00:14 UTC | docs: add high-level description of the Merkle DAG text adapted from iPRES 2017 paper about Software Heritage, section "Data Model" Closes T787 | 13 June 2018, 14:00:14 UTC |
3f31a9c | Stefano Zacchiroli | 05 June 2018, 09:30:03 UTC | doc: use / as documented endpoint to resolve persistent identifiers | 05 June 2018, 09:30:03 UTC |
bc30e8b | Stefano Zacchiroli | 05 June 2018, 09:04:32 UTC | doc: add documentation of contextual information for persistent IDs Closes T1041 | 05 June 2018, 09:04:32 UTC |
448eafa | Antoine Lambert | 18 May 2018, 14:57:05 UTC | parse_persistent_identifier: Add optional parts parsing This commits adds support for parsing optional parts in persistent identifiers. Optional parts are defined the following way: <swh_id>[;key1=val1][;key2=val2] Related T1040 | 18 May 2018, 14:57:36 UTC |
3f72bca | Antoine Lambert | 07 March 2018, 12:38:39 UTC | docs: Remove Lorem ipsum paragraph in data-model page | 07 March 2018, 12:38:39 UTC |
d1b975a | Stefano Zacchiroli | 09 February 2018, 15:50:24 UTC | docs: add snapshot, branches, and visits to Merkle DAG diagram | 09 February 2018, 15:50:24 UTC |
6fe1595 | Stefano Zacchiroli | 09 February 2018, 15:49:56 UTC | docs: generate PDF Merkle DAG diagram by default | 09 February 2018, 15:49:56 UTC |
96114f6 | Stefano Zacchiroli | 09 February 2018, 13:32:03 UTC | docs: add preliminary version of the Merkle DAG diagram | 09 February 2018, 13:32:03 UTC |
d788ef1 | Antoine R. Dumont (@ardumont) | 31 January 2018, 09:33:34 UTC | swh.model.identifiers: Fix typo in snapshot_identifier docstring | 31 January 2018, 09:33:34 UTC |
a06122e | Antoine Lambert | 23 January 2018, 13:16:49 UTC | docs: Fix small issue | 23 January 2018, 13:16:49 UTC |
ab0fb5a | Antoine Pietri | 18 January 2018, 15:27:22 UTC | Add swh.model.toposort algorithm | 19 January 2018, 13:40:52 UTC |
bdf26f5 | Antoine R. Dumont (@ardumont) | 17 January 2018, 09:22:55 UTC | swh.model.identifiers: persistent_identifier takes object as input Related T335 | 17 January 2018, 10:01:32 UTC |
122326d | Antoine R. Dumont (@ardumont) | 15 January 2018, 17:57:19 UTC | swh.models.hashutil: Add persistent identifier function Related T335 Related T933 | 15 January 2018, 18:28:22 UTC |