-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Issue
Currently it is not clear what are the responsibilities of the .openpackage folder and its metadata files.
.opencode
Currently the .opencode folder serves two purposes
- It is the location for the local registry and opencode settings
- It denotes that a directory is a openpackage package
This creates a confusion as to what is what and what purposes they should serve.
package.yml and package.index.yml
These two metadata files serve to denote metadata about the current package and file mappings respectively.
However package.yml is used to denote whether a package or a workspace, which are currently defined as two different things and have very different formats. This creates confusion and not a clear sep.
package.index.yml may potentially be redundant due to the file structure and platform configuration files denoting where files should be mapped to.
Proposed Solutions
.openpackage should only hold the registry and settings
Keep .openpackage a simple directory for holding settings, configurations and the local registry.
Introduce a new subfolder called .openpackage-meta OR rename package.yml to openpackage.yml
This would create a clear separation of concerns from .openpackage files and provides the following options:
- Using a new subfolder, like .openpackage-meta, allows you to hold the package.yml and package.index.yml in a separate location outside the root of the package and you can keep using generic names.
- Renaming package.yml to openpackage.yml makes it very clear that this subdirectory is a openpackage package and follows a similar structure of other coding languages and tools that use a metadata file to denote the purpose of the directory.
This also makes it easier to develop new packages outside of the .openpackage structure.
Use a new workspace.yml file instead of repurposing the package.yml
This helps avoid confusion and you have very clear separation of concerns between packages and workspaces.