Skip to content

Index rework overview #210

@consideRatio

Description

@consideRatio
  1. Add client support for publisher field

  2. Define index structure

    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"]
     #             }
    
  3. 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).

  4. Add README.md bundling to build command

  5. Add client publish command
    Remains to be done. Successful testing against the new index has been done by Erik in Add publish command #176.

  6. Change client's index reading behavior (breaking)
    With the local env structure diverging from the index structure, we need to change how the client reads from an index with a clear breaking change.

  7. Add index management command
    With the local env structure diverging from the index structure, we need to change how users are to manage a local index. Previously they for example did sysand env install urn:kpar:my_project --path MyProject.kpar, so what should they do now? Commands like sysand index init and sysand index add etc could be relevant to address this.

  8. Add standard library to the new index

    • An organization should be created at the new index.
    • Standard libraries with publisher field set should be uploaded

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions