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 |
b61c666 | Stefano Zacchiroli | 14 January 2018, 21:30:16 UTC | docs: document the naming scheme for persistent identifiers Closes: T335 | 14 January 2018, 21:30:16 UTC |
a01d81c | Stefano Zacchiroli | 14 January 2018, 21:30:02 UTC | docs: shorter fulltitle for the data model document | 14 January 2018, 21:30:02 UTC |
c79c446 | Stefano Zacchiroli | 14 January 2018, 13:54:58 UTC | swh-hash-file: make sure that paths are passed on as bytes | 14 January 2018, 13:54:58 UTC |
73d5ffb | Stefano Zacchiroli | 14 January 2018, 13:40:18 UTC | bin/swh-hash-file: new binary to compute SWH-style content identifiers reincarnation of the old shw.model bin/ script, which is now gone | 14 January 2018, 13:47:43 UTC |
a5f7d1e | Stefano Zacchiroli | 14 January 2018, 13:39:45 UTC | improve hash_file() docstring to specify algorithms type | 14 January 2018, 13:39:45 UTC |
91d74ef | Antoine R. Dumont (@ardumont) | 20 December 2017, 09:40:06 UTC | swh.model.hashutil.hash_data: Optionally integrate length in result | 20 December 2017, 09:46:03 UTC |
eff2692 | Nicolas Dandrimont | 13 December 2017, 10:30:21 UTC | Merge branch 'wip/snapshots' | 13 December 2017, 10:30:21 UTC |
1b1cc8d | Nicolas Dandrimont | 12 December 2017, 19:08:47 UTC | hashutil: add `snapshot` object type for git hashes Summary: Add support for snapshot identifiers Close T566. Related to D268. Test Plan: Unit tests included Reviewers: zack, #reviewers! Maniphest Tasks: T566 Differential Revision: https://forge.softwareheritage.org/D277 | 13 December 2017, 10:30:10 UTC |
46ce819 | Nicolas Dandrimont | 12 December 2017, 19:08:30 UTC | hashutil: add `snapshot` object type for git hashes | 12 December 2017, 19:08:30 UTC |
94bd8dd | Stefano Zacchiroli | 02 November 2017, 10:09:21 UTC | docs: add absolute anchor to documentation index | 02 November 2017, 10:09:21 UTC |
0b7f217 | Nicolas Dandrimont | 12 October 2017, 15:16:56 UTC | Cleanup packaging | 12 October 2017, 15:16:56 UTC |
34228c5 | Nicolas Dandrimont | 05 October 2017, 18:45:42 UTC | test_from_disk: use os.fsencode to consistently get tmpfile names as bytes | 05 October 2017, 18:45:42 UTC |
2ab8360 | Nicolas Dandrimont | 05 October 2017, 18:38:07 UTC | mark tests needing the filesystem as such | 05 October 2017, 18:38:07 UTC |
6c30346 | Nicolas Dandrimont | 05 October 2017, 18:31:27 UTC | d/control: add breaks on packages depending on removed APIs | 05 October 2017, 18:31:27 UTC |
f6a4d7e | Nicolas Dandrimont | 05 October 2017, 18:28:11 UTC | Remove swh.model.git Close T709 | 05 October 2017, 18:28:11 UTC |
c67f012 | Nicolas Dandrimont | 04 October 2017, 20:33:45 UTC | from_disk: full test coverage | 04 October 2017, 20:33:45 UTC |
8900a91 | Nicolas Dandrimont | 04 October 2017, 20:33:17 UTC | from_disk.Directory: fix some random bugs found when using the API | 04 October 2017, 20:33:17 UTC |
a8e919a | Nicolas Dandrimont | 04 October 2017, 18:08:19 UTC | test_hashutil: remove temporary file after test | 04 October 2017, 18:08:19 UTC |
c790b85 | Nicolas Dandrimont | 04 October 2017, 17:12:39 UTC | from_disk: add a way to save the path to contents This allows loaders to lazily load data: you can read from disk and transfer only the contents that are really missing. | 04 October 2017, 17:12:39 UTC |
d54c066 | Nicolas Dandrimont | 19 September 2017, 11:40:21 UTC | from_disk: convert on-disk data to Software Heritage archive objects Summary: This module is a reimplementation of swh.model.git, with the underlying goal of replacing it and fixing T709 in the process. Reviewers: #reviewers! Differential Revision: https://forge.softwareheritage.org/D248 | 03 October 2017, 17:47:46 UTC |
f44949a | Nicolas Dandrimont | 22 September 2017, 15:10:25 UTC | Add a Merkle tree data structure | 03 October 2017, 17:47:46 UTC |
ac3df91 | Stefano Zacchiroli | 19 September 2017, 15:07:36 UTC | docs/: add sub document data-model.rst Currently just a stub (but with a hereby fixed anchor) to allow linking to it from other part of the development documentation. Will be fillen later on with an abstract description of the Software Heritage data model. | 19 September 2017, 15:07:36 UTC |
8bafb40 | Nicolas Dandrimont | 15 September 2017, 17:15:38 UTC | hashutil: improve docstrings | 15 September 2017, 17:15:38 UTC |
bd43a7f | Stefano Zacchiroli | 06 September 2017, 18:27:43 UTC | docstring: drop useless heading ":py" domain in crossrefs | 06 September 2017, 18:27:43 UTC |
1d898f7 | Stefano Zacchiroli | 06 September 2017, 18:22:30 UTC | sanitize docstrings for sphinx | 06 September 2017, 18:22:30 UTC |
b53f5d8 | Stefano Zacchiroli | 30 August 2017, 10:25:57 UTC | docs/: add sphinx apidoc generation skeleton change cherry picked from python module template commit 71b117ba0cf9f1251b1cac26d0994df03a4c787d | 30 August 2017, 10:25:57 UTC |
8aa5c3a | Nicolas Dandrimont | 12 July 2017, 14:12:12 UTC | Load pyblake2 dynamically instead of hardcoding the Python version Summary: for those people with legacy openssls Reviewers: anlambert, #reviewers! Differential Revision: https://forge.softwareheritage.org/D224 | 12 July 2017, 14:12:35 UTC |
11de644 | Nicolas Dandrimont | 26 June 2017, 12:41:11 UTC | requirements: make pyblake2 conditional on Python3.5 | 26 June 2017, 12:41:11 UTC |
d281faf | Nicolas Dandrimont | 19 June 2017, 17:56:07 UTC | d/control: drop pyblake2 if python >= 3.5 | 19 June 2017, 17:56:07 UTC |
6f89adf | Nicolas Dandrimont | 07 April 2017, 10:02:30 UTC | git: make GitPerm an IntEnum rather than bytes Fix T685 out of spite. While we wait for a cleaner refactoring of this code, this fixes the immediate clogging of the database with bogus data issue. | 07 April 2017, 10:02:30 UTC |
4d6d748 | Antoine R. Dumont (@ardumont) | 24 March 2017, 14:17:13 UTC | d/changelog: Fix sbuild warning | 24 March 2017, 14:17:13 UTC |
9812285 | Antoine R. Dumont (@ardumont) | 24 March 2017, 13:08:29 UTC | swh.model.hashutil: Add blake2s256 in default algorithms Related T703 | 24 March 2017, 14:16:36 UTC |
a42c75e | Antoine R. Dumont (@ardumont) | 16 March 2017, 17:10:18 UTC | swh.model.hashutil: Use pyblake2 dependency on python3 <= 3.4 This resolves the caveat mentioned in prior commit about not being able to use blake2 prior to 3.5 Related T692 Closes D192 | 21 March 2017, 09:35:45 UTC |