Open kcpevey opened 1 month ago
This is part of a broader discussion about providing complete symmetry between conda-store variants, API, CLI, etc. Of course that would be a larger lift/effort, but it is the only way to address also feedback raised through the user research studies. And I would certainly prefer this over ad hoc addition of methods.
I think everything that I'd find useful is contained inside of 524a1cc/conda-store-server/tests/user_journeys/utils/api_utils.py
Can you provide more concrete examples of what this programmatic access means/would look like?
I was pointed to the api_utils.py when I asked about a python api, but I didn't realize that a python api already existed - https://github.com/conda-incubator/conda-store/blob/main/conda-store/conda_store/api.py . I understand that we don't encourage usage of this api until the api/cli symmetry effort is complete. That feels like a separate issue, and its fine to close this in favor of another, more appropriate issue.
To answer your question:
Can you provide more concrete examples of what this programmatic access means/would look like?
As a software engineer who maintains many environments for other team members (on nebari), I often have to push updates to all my environments. While conda-store has its own "version history", software projects generally keep their history in git repositories. Typical usecases of conda-store for me are to have a git repo which holds an environment file (which is used to run ci tests). Any changes to my environment file in the repo then have to be hand-copied over to conda-store through the UI and rebuilt. I'd love to build up some code which could do this process for me.
For the conda-store bit, this covers the vast majority:
api = API(base_url=base_url, token=token)
# create environment
api.create_environment(namespace, specification_path)
If there is a current, recommended approach to this, I'd love to learn about it.
Feature description
I've gotten many requests for interacting with conda-store on Nebari via an API. I think everything that I'd find useful is contained inside of https://github.com/conda-incubator/conda-store/blob/524a1cc7313f3eca0d63d096ffc478df344b88ea/conda-store-server/tests/user_journeys/utils/api_utils.py . However, since its not part of the package, I can't use it directly.
I propose to move this little API into the package itself so that end users can make use of it.
Value and/or benefit
This would add the ability to programmatically interact with conda-store without rewrite REST interactions all the time.
Anything else?
No response