deps: remove postgresql version detection, fix io.popen usage #11
Labels
No labels
coordination/cross-repo
coordination/needed
effort
large
effort
medium
effort
small
meta/duplicate
meta/planning
meta/wontfix
priority
high
priority
low
priority
medium
session
blocker
session
handover
session
next
status
blocked
status
done
status
in-progress
status
review
status
to-go
type
admin
type
bug
type
config
type
deployment
type
docs
type
enhancement
type
feature
type
handover
type
infrastructure
type
installation
type
maintenance
type
migration
type
research
type
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
DAW/daw-module-manager#11
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Findings
1. Wrong prefix in header comment
src/daw/module_manager/deps.luashould bedeps.lua(nosrc/prefix).2. Direct io.popen calls
find_binary()andget_postgresql_major()useio.popendirectly.Must be replaced with
out:run_rc()viadaw.common.sys.3. Hardcoded postgresql version detection
get_postgresql_major()and thepostgresqlspecial case inis_present()implement OS-specific version detection viapg_configandpsql. This violates the DAW architecture rule:no OS detection at runtime, no project-specific exceptions.
The module manager checks presence only -- not versions.
Both functions must be removed entirely.
Acceptance Criteria
io.popenreplaced without:run_rc()via daw.common.sysget_postgresql_major()removedpostgresqlspecial case inis_present()removedNote: version checking belongs in daw.common
System dependency version checking (e.g. postgresql major version via
pg_config/psql) is not lost -- it belongs in daw.common as a generic
utility, not in the module manager.
A future daw.common module (e.g. daw.common.syscheck or similar) could
provide version detection for known system dependencies.
The module manager would then call that, without any OS-specific logic
of its own.