conda-store icon indicating copy to clipboard operation
conda-store copied to clipboard

Conda-Store plugin system for builds and artifacts

Open costrouc opened this issue 1 year ago • 0 comments

Conda-Store heavily uses Traitlets for allowing easy configuration. One area that has not been easily customizable is the build system and the artifacts generated. I would like to change this by having a standardized object for Conda-Store builds.

class CondaStoreBuilder:
     build_artifacts = [
         'ARTIFACT_1',
         'ARTIFACT_2',
        ...
     ]

     depends_on = [
         'ARTIFACT_A'
     ]

     def build_artifact(self, artifact_type: str, build_id: int):
           pass 

     def delete_artifact(self, artifact_type: str, build_id: int):
           pass


class CondaStore:
       registered_builders = [
             FilesystemBuilder,
             LockfileBuilder,
             PinnedYAMLBuilder,
             CondaPackBuilder,
             DockerBuilder,
       ]

This is roughly the interface that I can envision for a build extionsion system. CondaStore will then need to understand the build dependency order.

costrouc avatar Aug 25 '22 18:08 costrouc