← Back to Projects

Parley

leocamello/parley

Re-imagining Package Management

I am the creator and principal architect of Parley, a modern, native command-line package manager for GNU Smalltalk, written entirely from scratch in Smalltalk.

The language is called Smalltalk—casual conversation. A parley is the formal one: a negotiation between independent parties to resolve a conflict. That is exactly what dependency resolution is in this project—a mathematically verified negotiation between constraints ending in either an agreement or a narrated conflict report.

Architectural Highlights

  • Live-object Domain: Every concept in the pipeline—from version constraints to execution scopes—is an independent object. Conflict reports are inspectable derivation trees rather than flat error strings.
  • Static Trust Boundary: While authors write executable manifests for ergonomics, the resolver strictly consumes static, literals-only index entries. Third-party code is never evaluated to compute a dependency graph.
  • Deterministic by Construction: Built with byte-stable serialization, day-one lockfiles, and a pure resolver, guaranteeing that the same inputs produce a byte-identical lockfile every single time.
  • Honest Sandboxing: parley exec launches a clean child process whose curated package path exposes exactly the resolved dependency set, ensuring true isolation.
  • Axiomatic Verification: The constraint algebra is rigorously verified against mathematical laws (e.g., De Morgan, absorption) over hundreds of seeded random test cases.

This ongoing project represents my deep interest in rigorous software engineering, algorithmic problem-solving, and exploring the upper limits of pure object-oriented design at the command line.

View Repository →