Skip to content

📦 Installed Package Registry

This directory contains metadata for all installed dependencies in AudioLab.

Purpose

The registry provides: - Single source of truth for what's installed - Version tracking for reproducible builds - Installation metadata (date, source, location) - Quick lookups without querying package managers

Directory Structure

_installed_registry/
├── vcpkg/           ← C++ packages installed via vcpkg
│   ├── fftw3.yaml
│   ├── eigen3.yaml
│   └── ...
├── python/          ← Python tools and packages
│   ├── black.yaml
│   └── ...
├── vendored/        ← Vendored dependencies (submodules)
│   └── juce.yaml
└── README.md        ← This file

File Format

Each .yaml file contains:

name: package_name
version: "1.2.3"
installed_date: "2025-10-03"
installed_via: vcpkg | pip | git_submodule
physical_location: /path/to/package
category: dsp | testing | framework | tooling
size_mb: 50
purpose: "Brief description"
notes: "Optional additional info"

Maintenance

DO NOT edit manually

Registry files are automatically created/updated by: - install_core_deps.ps1 - During installation - update_registry.ps1 - Manual sync with actual installations

When to Update

Update registry when: - Installing new packages - Upgrading existing packages - Removing packages (delete .yaml file) - After system restore/migration

Sync Registry

To synchronize registry with actual installations:

.\01_installation_scripts\update_registry.ps1

Usage

List All Installed Packages

.\01_installation_scripts\list_installed.ps1

Query Specific Package

Get-Content _installed_registry\vcpkg\fftw3.yaml

Check Installation Date

Get-ChildItem _installed_registry\**\*.yaml |
  Select-Object Name, @{Name="Installed";Expression={
    (Get-Content $_.FullName | Select-String "installed_date").ToString().Split(":")[1].Trim()
  }}

Benefits

  1. Fast Lookups: No need to query vcpkg/pip every time
  2. Historical Record: Know when packages were installed
  3. CI/CD Integration: Easy to parse in scripts
  4. Offline Availability: Works without package managers
  5. Custom Metadata: Add project-specific notes

See Also