Skip to content

Define the initial stable public venvstacks API #77

Open
@ncoghlan

Description

@ncoghlan

While the Python API is formally unstable, the documentation largely covers the pieces that are expected to remain public in the stable API:

  • cli
    • .main
  • pack_venv
    • .convert_symlinks
    • .create_archive
    • .export_venv
    • .get_archive_path
  • stacks
    • .StackSpec
    • .BuildEnvironment

The API definition work that mainly needs to be done is for the stacks namespace, identifying the lower level types that API consumers will need for:

  • defining inputs to operations (e.g. passing in PackageIndexConfig)
  • type declarations related to metadata file formats and other things returned from various APIs

As well as looking at which types are sufficiently tightly coupled to each other that they really need to be treated as internal implementation details (in particular, the build environment classes make very strong assumptions about how they're going to be processed, so they're not going to be readily consumable outside a stacks.BuildEnvironment instance).

Metadata

Metadata

Assignees

Labels

Affects: Python APIAffects the public Python API of the projectCategory: MaintainabilityProposed improvement to project maintainability

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions