Skip to content

Releases: trly/quad-ops

v0.25.0

13 Nov 21:46
99acf9f

Choose a tag to compare

Changelog

  • 176016c Add DNS settings support
  • 7a08d6b Add comprehensive test for path construction fix (quad-ops-b5m)
  • f72fc68 Add device mapping support (quad-ops-167)
  • 5569ba2 Add diagnostic utilities for Quadlet generator issues (quad-ops-3zb)
  • a208ab1 Add extra_hosts support (quad-ops-h0f)
  • 0f9cec2 Add go-cmp for better test diffs (quad-ops-4x2r)
  • d13b626 Add goleak for goroutine leak detection and fix daemon test
  • 4546738 Add init container volumes/networks/env support
  • 14aec95 Add validation warnings for unsupported Compose fields
  • fd40123 Close quad-ops-xqw - cross-platform parity complete
  • 1d7d31e Document Compose specification support
  • 21ab090 Fix DNS resolution by adding NetworkAlias for service names
  • 99acf9f Fix env file discovery by using project working directory
  • f65bd46 Fix external dependency naming to preserve underscores/hyphens
  • f3ddfde Fix missing network dependencies for containers without explicit networks
  • 28c0f1f Fix over-broad volume dependencies (quad-ops-iaa)
  • 9c2dcc8 Fix resource constraint rendering to use correct Podman flags
  • 7eb85c6 Fix resource naming: remove flawed prefix detection, trust compose-go
  • 737a0bd Fix service restart race condition in RestartMany
  • 30e7ca3 Fix: Handle external networks correctly in convertNetworkMode
  • d5b868e Fix: Include network/volume services in dependency graph for startup
  • e8dd1ee Fix: Update lifecycle tests to match waitForUnitGeneration error messages
  • 6a3adbc Fix: set RepositoryDir to tempPath for correct GitSyncer cloning
  • 48c8a66 Fix: validate with --repo and --compose-dir flags
  • 977b6e6 Implement tmpfs mount rendering with options for launchd
  • 712a0d0 Make validateExternalResources batch-aware
  • 54ae632 Merge pull request #50 from trly/refactor/simplify
  • 0903326 Migrate to stdlib t.TempDir() and remove deprecated SetupTempDir
  • c2fe8a5 Normalize unit names: replace underscores with hyphens for DNS compliance
  • 7802f1b Phase 2: Fix sync/restart topological ordering (quad-ops-dep3)
  • 5eb9015 Remove x-podman-buildargs and x-podman-volumes extensions
  • 6a396b5 Resolve beads left conflict: remove temporary conflict file
  • 7f18e57 Simplify network sanitization and extract unit type constants
  • 7c57055 Skip validation for infrastructure services in orderAndExpand
  • 9fdece1 Update beads: close quad-ops-3zb
  • 185ac7d Update golden files with stop_signal and stop_grace_period fields
  • 785d19d Update golden test files for ExternalDependencies field
  • d7a1000 Wire diagnostic utilities to sync/up commands for unit generation failures
  • 71a885f bd sync: 2025-11-09 01:37:31
  • b7d4eec bd sync: 2025-11-09 10:22:40
  • c25e201 bd sync: 2025-11-09 10:23:33
  • 7512d5b bd sync: 2025-11-09 23:47:29
  • 8a61cde chore: resolve beads merge conflict by cleaning up orphaned files
  • 2073c4f chore: update beads metadata after issue updates
  • 5980d47 clean up history
  • 7c58105 close quad-ops-h26
  • 9d53372 close: quad-ops-1sn and quad-ops-vkf, file: backlog validation tasks
  • fba5fbb completed quad-ops-dep0: Phase 0 - Remove Sanitization, Add Strict Validation.
  • df9a49a correct sanitization behavior and require projects to have valid names
  • 15599df create quad-ops-7zi
  • 2be43f3 created quad-ops-o3w to document tag workflows
  • 2524324 feat(dependency): add enhanced cycle detection with FindCycle method
  • 1d17fd0 feat(launchd): emit extra host and DNS flags in BuildPodmanArgs
  • e13f29b feat: Add RequiresMountsFor directives for bind mounts
  • 281b150 feat: add SELinux z/Z flag support for bind mounts
  • eb74dff feat: add cross-project dependency support via x-quad-ops-depends-on
  • 9ad52e9 feat: add device_cgroup_rules support for fine-grained device access
  • 96443a9 feat: add external resource validation (quad-ops-dep6)
  • 75ed987 feat: add group_add support for supplementary groups
  • c7e924b feat: add namespace mode support (pid/ipc/cgroup)
  • 9c85756 feat: add shm_size support for shared memory configuration
  • f50aa36 feat: add unit existence verification with exponential backoff retry (quad-ops-6sz)
  • 705ceb5 feat: convert configs/secrets with local sources to bind mounts
  • 45d02c4 feat: implement x-podman-buildargs and x-podman-volumes extensions
  • 024f5c9 feat: remove redundant Quadlet infrastructure dependencies
  • b08cd93 fix example compose file again
  • 2de4080 fix example compose files to pass validation
  • 9fe7650 fix ineffectual variable assignment
  • cb7c7a4 fix(compose): parse depends_on conditions
  • 6ffe36f fix(compose): prevent project prefix on external networks (quad-ops-6ph)
  • aa15252 fix(compose): skip nested git repositories when scanning for compose files
  • 64c8abe fix(sync): validate composeDir path exists before reading projects
  • d4392cf fix(systemd): add unit generation verification to StartMany and StopMany
  • 8ba90c1 fix(systemd): verify LoadState is loaded before confirming unit generation
  • 4cc1225 fix(tmpfs): add support for tmpfs mount options (size, mode, uid, gid)
  • f648e4c fix: Add network-online.target dependencies
  • 0bd5316 fix: Linux test failures in config and testutil
  • 8f87d5a fix: convert underscores to hyphens in container names for Podman DNS compatibility
  • f8f4a12 fix: do not generate systemd dependencies for external networks
  • 6c5d3b6 fix: ensure volume dependencies render in deterministic order
  • 521165f fix: handle Docker Compose ulimits short syntax correctly
  • cb384a8 fix: isolate config test from filesystem and add missing GitSyncer
  • 3679a92 fix: mark external networks as external in convertServiceNetworksList
  • 1bf7c38 fix: preserve all network aliases when adding service name
  • ea9646e fix: preserve underscores in sanitized names
  • 9d3feb4 fix: remove incorrect .volume suffix from volume source in Quadlet Volume= directive (quad-ops-712)
  • 6f4d142 fix: remove mock injections to allow platform initialization failures in tests
  • edbc497 fix: resolve lint issues (godot, revive, staticcheck)
  • 74ee3b4 fix: resolve network dependency name mismatch in renderer (quad-ops-782)
  • d656f8f fix: resolve staticcheck linting issues in systemd renderer
  • ffd8a44 fix: restart infrastructure services to ensure backing resources exist
  • 336511d fix: use AddDevice directive instead of Device
  • 4122229 fix: use build tags for platform-specific initialization
  • e3e9ef2 fix: use underscore separator in Prefix() to match Docker Compose naming
  • 39f5f1d fix: validate platform OS matches build target in initPlatform
  • e2adc42 improved cmd e2e tests
  • 69d6828 plan cross-platform parity
  • f935935 refactor(sync): extract startAndRestartServices to reduce complexity
  • b44cc81 refactor: migrate platform tests to go-cmp for better diffs
  • 66a92d8 refactor: remove os field and complex platfo...
Read more

v0.24.7

11 Nov 05:32
a3a17a6

Choose a tag to compare

Changelog

  • 176016c Add DNS settings support
  • 7a08d6b Add comprehensive test for path construction fix (quad-ops-b5m)
  • f72fc68 Add device mapping support (quad-ops-167)
  • 5569ba2 Add diagnostic utilities for Quadlet generator issues (quad-ops-3zb)
  • a208ab1 Add extra_hosts support (quad-ops-h0f)
  • 4546738 Add init container volumes/networks/env support
  • 14aec95 Add validation warnings for unsupported Compose fields
  • fd40123 Close quad-ops-xqw - cross-platform parity complete
  • 1d7d31e Document Compose specification support
  • f3ddfde Fix missing network dependencies for containers without explicit networks
  • 28c0f1f Fix over-broad volume dependencies (quad-ops-iaa)
  • 9c2dcc8 Fix resource constraint rendering to use correct Podman flags
  • 737a0bd Fix service restart race condition in RestartMany
  • 30e7ca3 Fix: Handle external networks correctly in convertNetworkMode
  • e8dd1ee Fix: Update lifecycle tests to match waitForUnitGeneration error messages
  • 6a3adbc Fix: set RepositoryDir to tempPath for correct GitSyncer cloning
  • 48c8a66 Fix: validate with --repo and --compose-dir flags
  • 977b6e6 Implement tmpfs mount rendering with options for launchd
  • c2fe8a5 Normalize unit names: replace underscores with hyphens for DNS compliance
  • 5eb9015 Remove x-podman-buildargs and x-podman-volumes extensions
  • 6a396b5 Resolve beads left conflict: remove temporary conflict file
  • 7f18e57 Simplify network sanitization and extract unit type constants
  • 9fdece1 Update beads: close quad-ops-3zb
  • 185ac7d Update golden files with stop_signal and stop_grace_period fields
  • d7a1000 Wire diagnostic utilities to sync/up commands for unit generation failures
  • 71a885f bd sync: 2025-11-09 01:37:31
  • b7d4eec bd sync: 2025-11-09 10:22:40
  • c25e201 bd sync: 2025-11-09 10:23:33
  • 7512d5b bd sync: 2025-11-09 23:47:29
  • 8a61cde chore: resolve beads merge conflict by cleaning up orphaned files
  • 2073c4f chore: update beads metadata after issue updates
  • 7c58105 close quad-ops-h26
  • 9d53372 close: quad-ops-1sn and quad-ops-vkf, file: backlog validation tasks
  • df9a49a correct sanitization behavior and require projects to have valid names
  • 15599df create quad-ops-7zi
  • a3a17a6 create quad-ops-w10: simplify network dependency logic
  • 2be43f3 created quad-ops-o3w to document tag workflows
  • 1d17fd0 feat(launchd): emit extra host and DNS flags in BuildPodmanArgs
  • e13f29b feat: Add RequiresMountsFor directives for bind mounts
  • 281b150 feat: add SELinux z/Z flag support for bind mounts
  • 9ad52e9 feat: add device_cgroup_rules support for fine-grained device access
  • 75ed987 feat: add group_add support for supplementary groups
  • c7e924b feat: add namespace mode support (pid/ipc/cgroup)
  • 9c85756 feat: add shm_size support for shared memory configuration
  • f50aa36 feat: add unit existence verification with exponential backoff retry (quad-ops-6sz)
  • 705ceb5 feat: convert configs/secrets with local sources to bind mounts
  • 45d02c4 feat: implement x-podman-buildargs and x-podman-volumes extensions
  • cb7c7a4 fix(compose): parse depends_on conditions
  • 6ffe36f fix(compose): prevent project prefix on external networks (quad-ops-6ph)
  • aa15252 fix(compose): skip nested git repositories when scanning for compose files
  • 64c8abe fix(sync): validate composeDir path exists before reading projects
  • d4392cf fix(systemd): add unit generation verification to StartMany and StopMany
  • 8ba90c1 fix(systemd): verify LoadState is loaded before confirming unit generation
  • 4cc1225 fix(tmpfs): add support for tmpfs mount options (size, mode, uid, gid)
  • f648e4c fix: Add network-online.target dependencies
  • f8f4a12 fix: do not generate systemd dependencies for external networks
  • 6c5d3b6 fix: ensure volume dependencies render in deterministic order
  • 521165f fix: handle Docker Compose ulimits short syntax correctly
  • 3679a92 fix: mark external networks as external in convertServiceNetworksList
  • ea9646e fix: preserve underscores in sanitized names
  • 9d3feb4 fix: remove incorrect .volume suffix from volume source in Quadlet Volume= directive (quad-ops-712)
  • edbc497 fix: resolve lint issues (godot, revive, staticcheck)
  • 74ee3b4 fix: resolve network dependency name mismatch in renderer (quad-ops-782)
  • d656f8f fix: resolve staticcheck linting issues in systemd renderer
  • 69d6828 plan cross-platform parity
  • 00aeea7 tidy: format modified files
  • 98d9c5a tidy: ignore local config.yml for testing
  • fd7c45d tidy: refactor launchd podmanarcs to reduce complexity

v0.24.6

09 Nov 03:16
d8f187d

Choose a tag to compare

Changelog

  • b50e2df Add TimeoutStartSec=900 to Service section for image pull resilience
  • 8ef01e1 Add resource constraint rendering for memory and CPU
  • d8f187d Cancel artifact sharing approach and close related issues
  • 53562f1 Close quad-ops-cn8: service-to-network mapping and unit dependency fixes complete
  • b04adcf Fix: Prevent duplicate PidsLimit directive rendering
  • 1b328e7 Fix: Remove fallback network dependency logic for cross-project networks
  • 306f988 Resolve builds on every commit: upload artifacts in build.yml and use pre-built in release.yaml
  • 58832ee Simplify release workflow to use GoReleaser directly
  • af1bd86 Update issues: mark quad-ops-eki as closed
  • 366b9a7 fix gofmt issues
  • cde78ec fix race condition during unit generation

v0.24.5

09 Nov 02:50
d8f187d

Choose a tag to compare

Changelog

  • b50e2df Add TimeoutStartSec=900 to Service section for image pull resilience
  • 8ef01e1 Add resource constraint rendering for memory and CPU
  • 53562f1 Close quad-ops-cn8: service-to-network mapping and unit dependency fixes complete
  • b04adcf Fix: Prevent duplicate PidsLimit directive rendering
  • 1b328e7 Fix: Remove fallback network dependency logic for cross-project networks
  • af1bd86 Update issues: mark quad-ops-eki as closed
  • cde78ec fix race condition during unit generation

v0.24.4

09 Nov 02:03
6377d90

Choose a tag to compare

Changelog

  • 6377d90 fix(systemd): correct volume and network dependency suffixes

v0.24.3

09 Nov 01:46
772f085

Choose a tag to compare

Changelog

  • a50fc7a don't re-build on release if artifacts are available
  • 772f085 fix build.yml indentation
  • aa65b4a fix issue in build.yml syntax
  • f959e8c fix: restore service-to-service DNS resolution for multi-network services

v0.24.2

08 Nov 23:40
c289a98

Choose a tag to compare

Changelog

  • 4fef796 Add comprehensive tests for service network connections in containers
  • bde21e4 Add dependency metadata fields to launchd plist
  • 297a310 Extract service-level network declarations from compose services
  • 6c28eeb add dependency mapping to launchd rendering
  • f007416 feat: Add service-level network support for both systemd and launchd renderers
  • eebb781 feat: Add service-level network support for both systemd and launchd renderers
  • eb284ba fix: mock fallback error in StartMany_Sequential test
  • c289a98 fix: use correct plistPath in launchd lifecycle tests
  • 481bb10 fix: use same container name in network ordering test
  • a0fcb7e implement lifecycle ordering in launchd

v0.24.1

08 Nov 04:47

Choose a tag to compare

Changelog

  • f39600c fix: fix requirement of --force to detect remote changes
  • c8ae3de fix: unit list not finding platorm specific units

v0.24.0

07 Nov 05:52
4bfc76f

Choose a tag to compare

Changelog

  • d5a8944 Add cleanup of orphaned rootlessport processes before starting services
  • 024e0f2 Filter platform artifacts in list and show commands
  • 633661b Fix Docker Compose validation warnings
  • 6a3e73c Fix config init to respect user mode
  • 4839e26 Fix golangci-lint config for v2 format
  • 554b76d Fix init container systemd configuration
  • 1372ae8 Fix quad-ops-1vw: Restore Linux build units functionality
  • 403749e Fix systemd unit discovery issue and update examples
  • b622e38 Fix validation issues with docker-compose.yaml
  • 6d5e357 Implement rootlessport cleanup for orphaned processes causing port binding conflicts
  • ac8814d Implement x-quad-ops-init and x-podman-env-secrets extensions
  • 2c36e51 Remove divergence check functionality from unit list command
  • 9076e49 add steveyegge/beads
  • 2346b31 beads: setup land the plane
  • 4bfc76f feat: enhance dependency graph with cycle detection improvements, transitive methods, and conflict detection
  • 46eb589 feat: implement config init command
  • a034ee3 feat: validate podman secrets exist for x-podman-env-secrets
  • cf3a4bf fix: Add [Install] sections to volume and network Quadlet units for systemd management consistency
  • acf702c fix: Update golden test files after fixing double-prefixing in resource names
  • 0bc4d41 fix: add LabelPrefix field to launchd.Options stub
  • d332af8 fix: re-enable gosec linter and address security warnings in tests
  • 28ea0f2 onboard beads to AGENTS.md
  • 01edc96 update beads with correct instructions

v0.23.0

06 Nov 06:08
0c3d8a7

Choose a tag to compare

Changelog

  • 0c3d8a7 fix: restore Linux-specific functionality