Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define the initial stable public venvstacks API #77

Open
ncoghlan opened this issue Nov 8, 2024 · 0 comments
Open

Define the initial stable public venvstacks API #77

ncoghlan opened this issue Nov 8, 2024 · 0 comments
Assignees
Labels
Affects: Python API Affects the public Python API of the project Category: Maintainability Proposed improvement to project maintainability

Comments

@ncoghlan
Copy link
Collaborator

ncoghlan commented Nov 8, 2024

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).

@ncoghlan ncoghlan added Category: Maintainability Proposed improvement to project maintainability Affects: Python API Affects the public Python API of the project labels Nov 8, 2024
@ncoghlan ncoghlan self-assigned this Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Affects: Python API Affects the public Python API of the project Category: Maintainability Proposed improvement to project maintainability
Projects
None yet
Development

No branches or pull requests

1 participant