Releases: trly/quad-ops
Releases · trly/quad-ops
v0.25.0
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...
v0.24.7
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
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
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
v0.24.3
v0.24.2
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
v0.24.0
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