EasyVersion
Goals
- Many Archives: Store in many archives at once.
- Emergent Complexity: Small implementation surface with reasonable usage requirements.
Client
Clients gather and send information to archive endpoints.
Commands
- All commands accept
--help/-h. - All commands accept
--verbose/-v. ev archive register <archive:URL> [user:ID]: Claim a specific User ID on the given archive. User ID is random if omitted.ev archive unregister <archive:URL> <user:ID>: Requests the archive to forget this User ID.ev archive login <archive:URL> <user:ID> [workspace:PATH]: Sets this combination of Archive URL + User ID as active for this workspace.ev archive logout <archive:URL> <user:ID> [workspace:PATH]: Sets this combination of Archive URL + User ID as unactive for this workspace.ev save <--note <note:TEXT> | -n <note:TEXT> [workspace:PATH]: Save the workspace's current state as a new Snapshot, with the note when provided.ev list [workspace:PATH]: List the Workspace's Snapshots. Also showing notes where set.ev clone <source:PATH> <target:PATH> [--snapshot <snapshot:ID> | -s <snapshot:ID>]: Clone the source Workspace to the target path, which may not exist yet. Clone the current workspace state if omitted.ev forget {--snapshot <snapshot:ID> | -v <snapshot:ID> | --all | -a} [workspace:PATH]: Forget the specified snapshot(s) for the given Workspace.
Archive
Clients recieve and save information from clients through their URL.
Types
Five distinct types, forming one chain from workspace to content:
| Type | Contents |
|---|---|
user |
Metadata about the user account |
workspace |
An array of snapshot hashes |
snapshot |
A manifest hash and an optional note |
manifest |
An array of reference hashes |
reference |
A relative file path and a content hash |
content |
Raw byte data |
Endpoints
HEAD /type/<type:ID>: Check whether the Type ID already exists.GET /type/<type:ID>: Returns an object with the Type's data.PUT /type/<type:ID>: Sets the object with the Type's data.DELETE /type/<type:ID>: Forget the given Type ID.
Invariants
- All in workspace configuration, will be done under
./evin the workspace root. - Archive URL + User ID login configurations are unique per workspace.
Release files for evserver 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| evserver-0.2.0.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| evserver-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.1 kB
Release files / evserver-0.2.0.tar.gz
| Download URL | evserver-0.2.0.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
51b36cc9e90cbd536792fa2ba139f468d6258d0136c54eadcd6e0443c3103c11
|
|
BLAKE2b-256 checksum How to use checksums |
b14a861d6cac2b51a0ac3b36dbfac290a9d5b73deacab023c301a8bca0ca50d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / evserver-0.2.0-py3-none-any.whl
| Download URL | evserver-0.2.0-py3-none-any.whl |
|---|---|
| Size | 5.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
361968f87b0178419f2cec9c375f254a1cf06fdac618ec7d86f935beea969a21
|
|
BLAKE2b-256 checksum How to use checksums |
b91e021d99ca17d77c7cf5d577350bb450612e68c6901f8c3f7309e751e7af8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|