Skip to content

Releases: karnarokEpoch/margot

0.9.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 09:55
4781987

[0.9.0] - 2026-09-21

🚀 Features

  • (skills) Add agent-workspace worktree orchestration skill
  • (make) Add self-documenting help target
  • (domain) Add PackageType.BUNDLE enum value
  • (services) Implement package service for offline bundle creation
  • (commands) Add margot package CLI command
  • (push) Reject PackageType.BUNDLE from OCI push operations
  • (describe) Resolve remote margo descriptors
  • (package) Add container image discovery and OCI layout foundation for Item 3
  • (package) Pull images into offline bundles
  • (package) Add --runtime local daemon lookup with registry fallback
  • (package) Add repeatable --platform filter for multi-arch bundled images
  • (package) Expose --platform flag in CLI for multi-arch platform filtering
  • (package) Resolve multi-arch platforms from local daemon and manifest-list before registry fallback

🐛 Bug Fixes

  • (skill) Sprint content tuning for sprint-workflow
  • (describe) Use rendered flag instead of path heuristic, fix temp file leak
  • (agent) Tune kiro agent permissions
  • (package) Resolve each component's own build version instead of assuming a shared version directory
  • (package) Use margo.yaml id instead of name for the bundle archive filename
  • (agent) Tune kiro agent permissions of docs-writer
  • (agents) Auto deny python cmds
  • (describe) Wire remote resolver service
  • (remote) Reuse prepared OCI retrieval to deduplicate manifest lookups
  • (package) Only bundle configured replacement images
  • (package) Treat --output as a directory and always enforce the bundle filename
  • (package) Forward runtime and platforms to image discovery after merge
  • (package) Scan all component images regardless of image: block
  • (package) Normalize Docker tarballs to OCI layout and fix daemon probe/socket bugs
  • (package) Handle ENOSPC and TMPDIR correctly during image export
  • (tests) Correct subprocess noqa directives and import placement in manifest-list test
  • (infra) Normalize docker.io to registry-1.docker.io for OCI registry API
  • (infra) Add library/ prefix for Docker Hub official images
  • (package) Skip Docker Hub attestation manifests when building platform slots
  • (oci) Normalize docker.io to registry-1.docker.io for registry requests
  • Remove unused variable in hostname normalization test

🚜 Refactor

  • (kiro) Externalize agent prompts to files via file:// references
  • (skills) Convert sprint-workflow steering to an on-demand skill with template
  • (imports) Use selective imports in src per code conventions
  • (console) Route stdin through console so it owns the sole import sys exception

📚 Documentation

  • (roadmap) Mark sprint 8 as done, archive sprint file
  • (roadmap) Postpone sprint 9 to 10
  • (roadmap) Plan remote descriptor inspection
  • (kiro) Switch to project context framework
  • Retire FEATURES.md authority; docs are the standing source of truth
  • (sprint) Design of margot package
  • Add command reference and migrate config/concepts/margo-yaml content
  • (roadmap) Backlog margot init project scaffolding command
  • Add getting-started, authentication, and CI/CD guides
  • (nav) Reorganise pages
  • (examples) Fix to_yaml jinja bug, add describe output section
  • Add status badges to README and docs landing page
  • Add coverage, GitHub social, and tooling badges
  • Add uv and pytest tooling badges
  • (package) Document the margot package command
  • Cover Sprint 9 remote commands and image bundles
  • (package) Document --runtime flag and optional daemon precondition
  • (package) Document --platform flag for multi-arch image filtering
  • (package) Clarify --output directory behavior and image-inclusion prerequisite
  • (sprint) Document open registry-fallback bug found in Item 6 testing
  • (sprint) Revise item 3 image scope; add item 6
  • (sprint) Mark manifest-list local lookup issue resolved in sprint-9
  • (sprint) Mark registry-fallback issue resolved in sprint-9

🧪 Testing

  • (remote) Satisfy lint conventions
  • (pull) Mock legacy tag CLI regression
  • (oci) Remove trailing blank line
  • (package) Cover package command and image-bundle paths; add codecov.yml
  • (package) Cover --runtime daemon lookup and docker->oci normalization
  • (package) Cover platform filtering and validation for multi-arch images
  • (package) Cover --output directory override and no-image-config info path

⚙️ Miscellaneous

  • Delete FEATURES.md and rewire references to docs/roadmap/sprints
  • Forward extra pytest args through make test to avoid CI drift
  • Upload coverage to Codecov from the 3.12 matrix leg
  • (sprint) Mark item 2 complete
  • (package) Update credential check comments
  • (sprint) Mark items 1 and 3 complete
  • (deps) Add pinned podman and docker SDKs for local daemon lookup
  • (sprint) Mark items 4 and 5 complete
  • (sprint) Close out sprint-9 — remote describe/verify and offline package with image bundling

Style

  • Wrap long import line in test_domain_uri.py

0.8.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 09:04
7eebc63

[0.8.0] - 2026-09-09

🚀 Features

  • (pull) Add --recursive flag for margo-only component pulling
  • (describe) Show margo artifact OCI URI in identity panel
  • (push) Add --dry-run flag to validate artifacts and registry write access
  • (describe) Rename config section to config-first, add component-first view
  • (describe) Add orphan/dead-end detection section

🐛 Bug Fixes

  • (lint) Resolve ruff findings in pull service and tests
  • (lint) Resolve ruff violations in push --dry-run implementation
  • (console) Disable rich auto-highlighting of numbers in plain output
  • (describe) Add [Component]/[Parameter] hints and fix component-first colors
  • (describe) Move orphan panel test imports to top-level
  • (describe) Move orphan report test imports to top-level

📚 Documentation

  • (sprint-8) Mark item 4 (remote describe) as done
  • (push) Define in features and roadmap --dry-run
  • Document shell completion setup
  • (plan) Update state of sprint 8

🧪 Testing

  • Add test on parameter description

Style

  • (kiro) Minor change in planner config

0.7.1

Choose a tag to compare

@github-actions github-actions released this 31 Aug 09:22
d639999

[0.7.1] - 2026-08-31

🚀 Features

  • (cli) Add --project-dir option to build and push commands

🐛 Bug Fixes

  • (tags) Convert + to _ before OCI tag validation for margo and flat components
  • (push) Print full OCI ref instead of bare tag in push summary
  • (uri) Tolerate oci:// scheme prefix in pull/fetch URIs
  • (push) Fall back to global repository when component repository is unset
  • (version) Query correct distribution name (margo-tooling) for -V output
  • (push) Pass registry hostname to OrasClient so stored credentials load
  • (oci) Restore base-class-compatible get_manifest signature
  • (oci) Restore base-class-compatible download_blob signature
  • (verify) Color-code findings by severity and fix section separator color
  • (verify) Color verdict lines by outcome and highlight schema labels

📚 Documentation

  • (contrib) Update version convention
  • (contrib) Update version of python tested
  • Document PyPI and container install methods
  • Add README with install and usage instructions
  • Add Contributor Covenant code of conduct
  • (kiro) Document to not violate Liskov Substitution Principle
  • Prepend oci:// scheme to templated repository values in examples
  • (sprint-8) Plan describe component-first view and orphan detection
  • (sprint-8) Clarify install-completion has no custom path option
  • (sprint-9) Plan --json output and stable error codes
  • (sprint-8) Add describe remote artefact

🧪 Testing

  • Fix ci issues on lint and pytest 3.14
  • Force color system of 256 colors

⚙️ Miscellaneous

  • Add PyPI classifiers, license expression, and project URLs
  • Sync uv.lock package name
  • Add GitHub issue templates for bugs and feature requests
  • Remove completed sprint 7 planning files

Style

  • (uri) Remove trailing whitespace in strip_scheme call sites

0.7.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 13:56
888a5ff

[0.7.0] - 2026-08-27

🚀 Features

  • (describe) Descriptor resolution and load gate
  • (describe) Identity, catalog and profile display model
  • (describe) Configuration-first join and component index
  • (describe) Rich panel and tree rendering
  • (describe) Wire margot describe command

🐛 Bug Fixes

  • (kiro) Tipo in agent definition
  • (describe) Nest pointers under parameter, not setting
  • (describe) Resolve all ruff lint violations
  • (config) Remove redundant noqa markers after S108 per-file-ignore

📚 Documentation

  • (describe) Close out sprint 7 roadmap and definition of done

🧪 Testing

  • (describe) Add e2e coverage against real sensor-dashboard descriptor

0.6.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 11:34
4345ceb

[0.6.0] - 2026-08-27

🚀 Features

  • (verify) LinkML validation against vendored Margo spec schema
  • (verify) Recommended schema and --recommend wiring
  • (verify) Add strict and only-recommend flag
  • (verify) Tune schema B to verify required fields
  • (verify) Add checks on values

🐛 Bug Fixes

  • (verify) Summarize and enhance oneOf/anyOf validation errors

📚 Documentation

  • Cleanup for sprint 6
  • (planning) Drop --deep, verify becomes CI-only in three phases
  • (kiro) Add rich instruction in steering
  • (planning) Define and sample describe output
  • (verify) --strict polish, edge cases, docs and roadmap closure

🧪 Testing

  • (verify) Add files for schema B tuning

⚙️ Miscellaneous

  • (kiro) Python-dev use haiku model
  • (sprints) Remove sprint 6 plan, work merged

0.5.2

Choose a tag to compare

@github-actions github-actions released this 27 Aug 12:57
7b39505

[0.5.2] - 2026-08-27

🐛 Bug Fixes

  • (ci) Trigger pypi publish via workflow_run, not release event

0.5.1

Choose a tag to compare

@github-actions github-actions released this 27 Aug 11:16
3ac8d3f

[0.5.1] - 2026-08-27

⚙️ Miscellaneous

  • Add workflow to publish on pypi

0.5.0

Choose a tag to compare

@github-actions github-actions released this 24 Aug 13:13
ddb4a52

[0.5.0] - 2026-08-24

🚀 Features

  • (planner) Rename code-planner agent
  • (skill) Create fix-todo skill
  • (skill) Create code quality skill
  • (auth) Authenticate fetch and pull via stored OCI credentials
  • (auth) Add margot auth status command
  • (sprint-5) Jinja2 app.yaml rendering, id field, image search/replace, unresolved placeholder warning
  • (build) Show artifact path in build output
  • (metadata) Remove margo: block, optional variant version, Jinja2 image.replace
  • (kiro) Add find to allow tools for python-dev

🐛 Bug Fixes

  • (auth) Raise credential expiry warning threshold to 1 hour
  • (metadata) Directory defaults to component name; improve error messages
  • (metadata) Parse top-level repository field; pass it to Jinja2 context as global_repository
  • (build) Wrap compose/quadlet tarball contents in a top-level / directory
  • (logout) Remove auth entry from dockerconfig file

📚 Documentation

  • (spec) Enhance snr base on documentation example
  • (sprint-5) Mark item 2 authenticated fetch/pull as done
  • (roadmap) Track auth logout credential-store removal gap
  • (sprint-5) Mark item 1 (auth status) done, fix stale 5min threshold refs
  • (features) Document Jinja2 rendering and image replacement
  • (sprint-5) Mark sprint 5 complete, document shipped design vs original plan
  • Mark item 1-2 complet on sprint

Dcos

  • (examples) Add basic search-n-replace

0.4.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 09:06
4c99ef0

[0.4.0] - 2026-07-31

🚀 Features

  • (auth) Add margot auth login/logout commands and credentials expiry tracking
  • (auth) Auto-detect expiry from ECR token password on login
  • (auth) Display time before expiry on successful login
  • (console) Add print_json method for structured JSON output
  • (push) Implement margot push command
  • (oci) Map oras-py logger quiet/debug flags to margot verbosity level
  • (push) Add per-layer and manifest debug logging in _push_artifact
  • (console) Standardize log level prefixes and add timestamp+location in debug mode

🐛 Bug Fixes

  • (auth) Registry as required positional argument on login/logout
  • (auth) Replace --save-expiry with --expiry-hours, no implicit default
  • (commands) Replace rprint with console.print_json in fetch
  • (lint) Resolve all ruff violations
  • (push) Correct OCI media types in push_margo and push_quadlet
  • (push) Pass files as path:content-type strings to oras-py push
  • (push) Pass manifest_config as path:media-type string to oras-py
  • (push) Use low-level oras-py API to set artifactType on pushed manifests
  • (push) Set artifactType after mediaType and add created annotation
  • (lint) Resolve all ruff errors in push commands, service, and infra

🚜 Refactor

  • (spec) Replace maintainers with authors and organizations
  • (spec) Decouple version and appVersion in margo.yaml
  • (oci) OrasClient inherits OrasClientLib instead of wrapping it

📚 Documentation

  • (pages) Create margo.yaml page
  • (pages) Create example pages
  • (pages) Define templating and rewrite examples
  • (spec) Use manifest.* as template context root namespace
  • Restructure template context as nested list
  • Add Default column to field tables in margo-yaml reference
  • (style) Minor refactors

🧪 Testing

  • (infra) Add coverage for oci pull, download_blob, login, logout
  • (commands) Add unit tests for global_options --debug/--verbose branches
  • (commands) Add coverage for auth _format_expiry already-expired and logout error
  • (commands) Cover _invoke_build re-raise path for non-skip ValueError
  • (services) Add unit tests for pull._available_layer_types helper
  • (services) Clarify and cover _build_placeholder_map version_override intent
  • (infra) Cover remove_expiry when removing the only credentials entry
  • (infra) Cover remove_expiry when removing the only credentials entry
  • Reach 100% coverage on infra/oci.py, services/build.py, services/push.py

⚙️ Miscellaneous

  • Start of 0.4.0
  • (git) Ignore worktree starting by .wk-*
  • (lint) Suppress SLF001 for unit tests globally
  • (plan) Prepare sprint 5-6 and clean backlog

Style

  • Use yaml+jinja lexer for app.yaml.jinja code blocks
  • Prevent field name wrapping in tables
  • (imports) Remove all global import for selective ones

0.3.0-rc1

Choose a tag to compare

@github-actions github-actions released this 28 Jul 07:28
0dce59c

[0.3.0-rc1] - 2026-07-28

🚀 Features

  • Reassign -V to --version, free -v for --verbose
  • Add console module with success/warning/info/debug/fatal
  • Add --verbose/-v and --debug/-d global flags
  • Add console.info() step logging to pull and fetch services
  • Add console.debug() infra logging to oci adapter
  • (domain) Add OCI tag and SemVer validation (domain/tags.py)
  • (domain) Add margo.yaml dataclasses and parser (domain/metadata.py)
  • (domain) Add PackageType.ALL and BuildTarget dataclass (domain/models.py)
  • (config) Add dynaconf Settings with layered config (config.py)
  • (infra) Add pure-Python filesystem helpers (infra/filesystem.py)
  • (services) Add build orchestration service (services/build.py)
  • (cli) Add margot build command (commands/build.py)
  • (kiro) Tuning of agent tooling
  • Add appVersion field to margo.yaml and MargoYaml
  • (kiro) Create agent docs-writer with steering
  • (mkdocs) Create mkdocs content skeleton

🐛 Bug Fixes

  • (tests) Resolve all ruff lint errors
  • Add -h shortcut for --help
  • Skip undefined components when --type all
  • Support multiple -t flags for build command
  • Remove and recreate output dir on rebuild (idempotent)
  • Use appVersion for <app_tag>, remove <margo_version> placeholder

🚜 Refactor

  • Migrate commands output to console module

📚 Documentation

  • (plan) Add spec for output and error output
  • (kiro) Add output directives
  • (spec) Update sprint 3 spec and margot build file
  • (kiro) Remove implemented spec
  • (spec) Add appVersion to margo.yaml

🧪 Testing

  • Add E2E verbose/debug flag tests

⚙️ Miscellaneous

  • Add run of pytest with 3.14
  • Add mkdocs deps to docs group
  • Add make receipes for documentation
  • (docs) Add GitHub Pages deployment workflow

Style

  • Fix ruff issues
  • Resolve ruff violations (UP045, F401, C901, PLR0912)