Bumps vendored Oban Pro from 1.6.13 to 1.7.0, which transitively bumps oban core to 2.22.1 (requires migrations v14) and db_connection to 2.10.0. - mix.exs constraint: ~> 1.6 → ~> 1.7 - vendor/oban_pro/ replaced with v1.7.0 hex package - migration 20260430142200: Oban core v12 → v14 (must run first) - migration 20260430142241: Oban Pro 1.7.0 schema additions Also corrects a pre-existing constraint name in AgentAssignment that was left stale by the equipment→devices rename migration (20260117190134). The unique index is named agent_assignments_device_id_index, but the schema's unique_constraint/3 still pointed at the old equipment_id name, causing the test suite to surface Ecto.ConstraintError instead of a changeset error. Required to get the suite green for this upgrade.
2.9 KiB
Vendored Dependencies
This directory contains vendored Elixir dependencies that are included directly in the repository instead of being fetched from external sources during build/CI.
Why Vendor?
These dependencies are vendored to:
- Avoid requiring authentication during CI/CD builds
- Ensure consistent builds without external dependencies
- Enable offline development
Docker Build
IMPORTANT: The vendor/ directory must be copied into the Docker build before running mix deps.get.
In Dockerfile, ensure this order:
COPY mix.exs mix.lock ./
COPY vendor vendor # ← Must be before mix deps.get
RUN mix deps.get --only $MIX_ENV
Vendored Packages
Oban Pro
Version: 1.7.0 Source: https://getoban.pro/repo (private) License: Commercial (licensed)
Advanced Oban features including batching, workflows, dynamic partitioning, and more.
Configuration in mix.exs:
{:oban_pro, "~> 1.7", path: "vendor/oban_pro"}
Oban Web
Version: 2.12.1 Source: https://hex.pm/packages/oban_web License: Apache-2.0
Web dashboard for Oban job monitoring and management.
Configuration in mix.exs:
{:oban_web, "~> 2.11", path: "vendor/oban_web"}
Router Configuration (superuser only):
# lib/towerops_web/router.ex
scope "/" do
pipe_through [:browser, :require_authenticated_user, :require_superuser]
oban_dashboard "/oban"
end
Oban Met
Version: 1.1.0 Source: https://hex.pm/packages/oban_met License: Apache-2.0
Metrics and telemetry support for Oban Web (required dependency).
Configuration in mix.exs:
{:oban_met, "~> 1.0", path: "vendor/oban_met", override: true}
Updating Vendored Dependencies
Step 1: Configure Oban Repository (if needed)
mix hex.repo add oban https://getoban.pro/repo \
--fetch-public-key SHA256:4/OSKi0NRF91QVVXlGAhb/BIMLnK8NHcx/EWs+aIWPc \
--auth-key <your-auth-key>
Step 2: Update Dependencies
# Update version constraints in mix.exs if desired
# Then fetch latest versions
mix deps.unlock oban_pro oban_web oban_met
mix deps.get
# Verify versions
mix deps | grep oban
Step 3: Update Vendored Code
# Remove old vendored versions
rm -rf vendor/oban_pro vendor/oban_web vendor/oban_met
# Copy new versions from deps
cp -r deps/oban_pro vendor/
cp -r deps/oban_web vendor/
cp -r deps/oban_met vendor/
# Compile and test
mix deps.compile
mix test
Step 4: Commit Changes
git add vendor/
git commit -m "Update vendored Oban packages
- oban_pro: 1.6.x → 1.6.y
- oban_web: 2.11.x → 2.11.y
- oban_met: 1.0.x → 1.0.y
"
Verifying Vendored Dependencies
To verify that vendored dependencies are being used correctly:
# Check that path dependencies are recognized
mix deps
# Compile from scratch
mix deps.clean --all
mix deps.compile
# Run tests
mix test