Skip to content

Config file parity: paude.json and devcontainer.json support disjoint feature sets with no way to combine them #202

Description

@p-kabelka

Only one config file is loaded at a time (src/paude/config/detector.py picks the first match in priority order and stops). The two parsers (_parse_devcontainer and _parse_paude_json in src/paude/config/parser.py) support different subsets of options with no overlap except the create section.

This makes it impossible to use certain combinations of features without a workaround -- to use a devcontainer.json with containerEnv paired with a custom Dockerfile that installs the packages, which is significantly more complex than either config file format is intended to require.

I would imagine a shared configuration could look something like this to set a custom env variables and install packages at the same time:

devcontainer.json:

{
  "customizations":{
    "paude": {
      "packages": ["ripgrep"]
    }
  },
  "containerEnv": {
    "CUSTOM_ENV_VAR": "foobar"
  }
}

or paude.json:

{
  "packages": ["ripgrep"],
  "containerEnv": {
    "CUSTOM_ENV_VAR": "foobar"
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions