The index structure has been defined like this, and it is different from the environment structure.
# index_root
# ├──index.json:
# │ {
# │ "projects": [
# │ {
# │ i = "pkg:sysand/publisher1/name1",
# │ v = ["0.0.1", "0.0.2"]
# │ }
# │ ]
# │ }
# └──publisher1
# └──name1
# ├──0.0.1
# ├──0.0.2
# └──meta.json:
# {
# "iri": "pkg:sysand/publisher1/name1",
# "versions": ["0.0.1", "0.0.2"]
# }
Done / Preliminary done tasks
DONE
Add client support for publisher field
publisherfield in.project.json.project.json#212PRELIMINARY DONE
Define index structure
The index structure has been defined like this, and it is different from the environment structure.
PRELIMINARY DONE
Define index client->server upload/publish API
A preliminary strategy is implemented in the sysand-index, sending a POST request with multipart form-data, including a PURL and the .kpar data blob (with bundled README).
DONE
Add README.md bundling to build command
DONE
Add client publish command
DONE
Change client's index reading behavior (breaking)
DONE
Decisions about index server paths
Currently beta.sysand.org exposes things directly under its root path
/(https://beta.sysand.org/entries.txt), but the new index currently doesn't (https://redacted.domain/index/index.json), it instead exposes it under/index/.A client reading the index should read from
https://redacted.domain/index/, and a client publishing something should do it tohttps://redacted.domain/whereapi/v1/uploadis appended.https://crates.io makes use of a config.json file where the client looks up where it should do various things, looking like https://github.com/rust-lang/crates.io-index/blob/master/config.json:
{ "dl": "https://static.crates.io/crates", "api": "https://crates.io" }I'm considering if we perhaps should providing something like that, allowing us to reference a single URL as "the index" when users are picking where to download and upload to. It would also be a signal that the index is "smart" rather than dumb, if there is a response to such endpoint.
EDIT: sysand-index-config.json is now respected with
index_rootandapi_rootlike crates.io.Jonas assigned
Add index management command
Pending, Simonas is working this I think
Add standard library to the new index
BLOCKED until UX for [WIP] Add new usage types #281 is decided on
Support
publisher/nameshorthand forpkg:sysand/publisher/nameinsysand add?Could improve the UX of sysand, but its a fancy thing beyond the core need. sysand and the index should align, currently the index suggests using the shorthand.
BLOCKED by 8, pending assignment
Update this repo's docs on self-hosting index
We have docs at docs/src/hosting_index.md that should be updated with the
sysand indexmanagement command.DONE
Deploy new deployment of sysand-index to
test.sysand.comDISCARDED TASK
Rework sysand-index's concept of organization to publisher
Erik assigned
Write user friendly docs on the official sysand-index about publishing a package.
BLOCKED by 14, pending assignment
Update this repo's docs on publishing
We have docs at docs/src/publishing.md that should be updated to point to sysand-index's servers docs on how to publish.
DONE
Decide if and how to change how we compute the lockfile's checksum
DONE
Decide if we should remove
project_digestfrom versions.jsonversions.json#325Pending, Andrius assigned
Make lockfile's checksum optional, and Source variants specific
Erik assigned
Deploy keycloak at accounts.sensmetry.com and make us sign in with that on sysand.com