Skip to content

Remove ambiguity with .openpackage directory usage #11

@vegastyle

Description

@vegastyle

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

  1. It is the location for the local registry and opencode settings
  2. 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:

  1. 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.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions