Skip to content

Build Package Configuration System #6

@Kinflou

Description

@Kinflou

Build Package Configuration System

Priority

P1 (High) - Enables multi-schema projects

Labels

  • core
  • package
  • configuration
  • P1

Estimated Effort

2 weeks

Description

Implement the package configuration system that allows multi-schema projects with dependencies. This includes parsing comline.toml files and managing schema imports across packages.

Current State

Location: core/src/package/config/

Basic structure with incomplete interpreters and many TODOs.

TODO References

  • package/config/ir/mod.rs:70 - Should use CAS loader instead of basic storage
  • package/config/ir/context.rs:57,66,73,104,138,145 - Incomplete methods
  • package/config/idl/parser.rs:10 - Old parser should be deleted

Acceptance Criteria

  • comline.toml format defined and documented
  • Package config parser implemented
  • Schema dependency resolution working
  • Package build pipeline functional
  • Circular dependency detection
  • Integration with CAS system
  • Example multi-package project works end-to-end

Tasks

  • Define comline.toml schema (TOML format)
    • Package metadata (name, version, authors)
    • Dependencies (local and remote)
    • Build settings
    • Code generation targets
  • Implement config file parser using toml_edit
  • Create package resolution algorithm (topological sort)
  • Add dependency graph builder
  • Integrate with CAS loader for frozen schemas
  • Add package validation (version compatibility, etc.)
  • Create multi-package test cases
  • Write package system documentation
  • Remove old/deprecated parser code

Example comline.toml

[package]
name = "my-api"
version = "0.1.0"
authors = ["Your Name <you@example.com>"]

[dependencies]
comline-std = "0.1.0"
other-schemas = { path = "../other-schemas" }

[build]
targets = ["rust", "typescript"]

Dependencies

Blocks

None (can be developed in parallel with #5)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Priority 1 - HighconfigurationConfigurationpackagePackage system

    Type

    No type

    Projects

    Status

    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions