PureYAML/docs/rules/package-structure.md

967 B

Package and Repository Structure

PureYAML is a root Swift package.

Required Layout

PureYAML/
├── Package.swift
├── Sources/
│   ├── PureYAML.swift
│   ├── Model/
│   ├── Parsing/
│   └── Emitting/
├── Tests/
│   └── PureYAMLTests/
├── docs/
└── scripts/

Rules

  • Keep Package.swift at repository root.
  • Do not create a Packages/ folder.
  • Keep production code directly under Sources.
  • Keep tests in Tests/PureYAMLTests.
  • Keep Package.swift dependency-free.
  • Add new targets only when a responsibility genuinely needs isolation.

Namespace Mapping

The namespace tree mirrors the source tree:

  • Sources/Model/Value.swift -> PureYAML.Model.Value
  • Sources/Parsing/Parser.swift -> PureYAML.Parsing.Parser
  • Sources/Emitting/Dumper.swift -> PureYAML.Emitting.Dumper

The root namespace file, Sources/PureYAML.swift, is a map of namespaces only.