Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Skeleton Laravel Package

jawira/skeleton

A collection of reusable Phing build targets for PHP projects. Install PHPUnit, generate .gitignore and other common files with simple commands like phing -f vendor/jawira/skeleton/build.xml phpunit, keeping your project setup consistent across repositories.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Release Delta (v2.33.0)

  • Breaking target rename: "analysis" targets are now check targets (PR #175). Any existing build.xml, Composer script, or CI job that invokes the old target names will fail after upgrade. Shipped as a minor version bump (2.32.0 → 2.33.0), which is a semver hygiene red flag — consumers pinning ^2.33 would absorb a breaking rename silently.
  • New feature: "check outdated dependencies only" (PR #176) — a narrower, faster target that inspects outdated packages without running the full check suite.
  • Maintenance signal (positive): Two merged PRs and a tagged release indicate the repository is not abandoned, partially mitigating the prior "orphaned development" risk. Community adoption metrics (stars/dependents) remain unchanged and low.
  • Net effect on assessment: Directionally unchanged — Phing remains non-standard in the Laravel ecosystem — but the upgrade risk is now concrete and immediate rather than hypothetical, and the package's maintenance posture requires re-validation.

Architecture Fit

  • Poor alignment with Laravel's ecosystem: Laravel primarily leverages Artisan commands, Composer scripts, and CI/CD pipelines (e.g., GitHub Actions, GitLab CI) for build automation. Phing, while functional, is non-standard and lacks native integration with Laravel's tooling (e.g., php artisan, composer.json scripts).
  • Overlap with existing solutions: Laravel already provides built-in tasks (e.g., migrate, test) and supports modern tooling like Laravel Forge, Envoyer, or Deployer for deployment. This package reinvents basic workflows (e.g., linting, Git operations) without adding Laravel-specific value.
  • Growing overlap, not shrinking: The new "check outdated dependencies" target duplicates composer outdated --direct (and composer audit for security), both of which run natively with zero additional dependency surface.
  • Opportunity for niche use: Could supplement legacy Phing-based Laravel projects or teams with deep Phing expertise, but this is rare in modern Laravel development.

Integration Feasibility

  • High effort for minimal gain: Requires:
    • Adding Phing as a dependency (composer require jawira/skeleton).
    • Configuring Phing build files alongside Laravel's existing tooling.
    • Custom scripting to bridge Phing targets with Laravel's Artisan or CI/CD hooks.
  • Upgrade tax introduced by v2.33.0: Renamed targets mean every integration point must be audited and rewritten (analysis* → check*). For a team that wrapped Phing in Artisan commands or Composer scripts, this is a cross-repo find-and-replace with no deprecation shim.
  • No native Laravel integration: Targets like phpunit or gitignore could conflict with Laravel's built-in phpunit.xml or .gitignore templates, requiring manual overrides.
  • Dependency bloat: Adds Phing as a runtime dependency, increasing deployment complexity for containerized or serverless Laravel apps.

Technical Risk

  • Maintenance burden: The package's MIT license and lack of community adoption (1 star, 0 dependents) signal high risk of:
    • Breaking changes absorbed on minor bumps — now demonstrated, not theoretical (v2.33.0).
    • Security vulnerabilities (no active security audits).
    • Bus-factor risk: A single maintainer (@jawira) is the sole author on both shipped PRs.
  • Version pinning is now mandatory: The team should pin exact versions (not ^2.x) and treat every release as a potential breaking change requiring a validation pass.
  • Tooling fragmentation: Mixing Phing with Laravel's native tools (e.g., artisan test vs. phing phpunit) risks confusion and inconsistent behavior.
  • Future-proofing: Laravel's ecosystem evolves toward modern CI/CD (e.g., GitHub Actions workflows), making Phing-based solutions increasingly obsolete.

Key Questions for TPM

  1. Why Phing?
    • Does the team have a strategic reason to use Phing (e.g., legacy constraints) or is this a "build vs. buy" decision?
    • Are there specific Phing targets in this package that Laravel's tooling cannot replace (e.g., custom deployment scripts)?
  2. Upgrade Response to v2.33.0
    • Do we have any current invocations of the renamed analysis* targets? If yes, this is a same-sprint remediation item, not a backlog item.
    • Do we accept the maintainer's minor-version breaking change as an ongoing operating condition, and if so, what version-pinning policy do we adopt?
  3. Alternatives Assessment
    • Could Composer scripts ("scripts": { "test": "phpunit" }), composer outdated, or Artisan commands achieve the same goals with zero dependency overhead?
    • Would GitHub Actions or Laravel Forge provide better scalability for the target use cases?
  4. Risk Mitigation
    • How would the team maintain this package internally if upstream development stalls?
    • What's the exit strategy if Phing becomes unsustainable (e.g., migrating to Laravel-native tools)?
  5. Validation
    • Has the package been tested in a Laravel environment at v2.33.0? Are the check targets verified against Laravel's PHPUnit and Composer configs?
    • Are the previously observed 2026 release dates a typo or indicative of repository integrity issues?

Integration Approach

Stack Fit

  • Laravel's native stack: Poor fit. Laravel's default tooling (Artisan, Composer, CI/CD) already covers 90% of this package's use cases without external dependencies.
  • Legacy Phing environments: Only viable if the team:
    • Uses Phing for non-Laravel-specific tasks (e.g., monorepos with mixed PHP/non-PHP projects).
    • Has existing Phing expertise and infrastructure (e.g., custom Phing build files).
  • Hybrid scenarios: Could act as a stopgap for teams transitioning from Phing to Laravel, but requires careful isolation (e.g., separate build.xml for Phing-only tasks).

Migration Path

  1. Assessment Phase:
    • Audit current Laravel build/deployment workflows to identify gaps this package might fill.
    • Map Phing targets to Laravel equivalents (e.g., phing phpunit → php artisan test, phing check → composer validate && composer audit).
    • Inventory all analysis* target references ahead of the v2.33.0 rename.
  2. Pilot Integration:
    • Install the package in a non-production Laravel project (composer require --dev jawira/skeleton).
    • Test critical targets (e.g., gitignore, phpunit, check) against Laravel's native tools to validate behavior.
    • Document conflicts (e.g., overlapping .gitignore rules, PHPUnit config precedence).
  3. Phased Adoption:
    • Phase 1: Use only non-conflicting targets (e.g., gitignore, composer:audit) as Composer scripts, invoked by their v2.33.0 check* names.
    • Phase 2: Replace Phing with Laravel-native alternatives (e.g., Artisan commands, GitHub Actions).
    • Phase 3: Deprecate Phing entirely, migrating custom logic to Laravel's ecosystem.

Compatibility

  • Laravel 8+: May conflict with:
    • PHPUnit 11+: The package updates PHPUnit config, but Laravel's phpunit.xml takes precedence.
    • Composer 2.x scripts: Targets such as the new outdated-dependency check duplicate composer outdated behavior.
    • Docker/Containerized Laravel: Phing adds runtime dependencies, complicating container builds.
  • Package version compatibility: analysis* → check* is not backward compatible. Treat v2.32.x and v2.33.x as different integration contracts.
  • PHP Version: Ensure compatibility with Laravel's PHP version (e.g., 8.0+). The package's Dockerfile uses Phing 3.x, which may lag behind Laravel's PHP support.

Sequencing

  1. Pre-integration:
    • Freeze Laravel's build tooling (e.g., PHPUnit, Composer) to avoid version conflicts.
    • Backup existing .gitignore, phpunit.xml, and composer.json scripts.
    • Pin jawira/skeleton to an exact version in composer.json.
  2. Integration:
    • Add Phing targets as Composer scripts (e.g., "scripts": { "build:gitignore": "phing -f vendor/jawira/skeleton/build.xml gitignore" }).
    • Use custom Artisan commands to wrap Phing calls (e.g., php artisan phing:gitignore) so future renames are absorbed in one place.
  3. Post-integration:
    • Monitor for performance overhead (Phing adds ~50–100ms per target).
    • Establish a release watch: read changelogs before any version bump; assume minor releases may break.
    • Plan for deprecation by logging Phing usage and migrating to native tools.

Operational Impact

Maintenance

  • High overhead:
    • Requires dual maintenance of Phing build files and Laravel's native tooling.
    • Dependency updates: Phing and its plugins (e.g., PHP-CS-Fixer, Psalm) must be manually synced with Laravel's ecosystem.
    • Rename churn: v2.33.0 proves the package will rename targets without deprecation shims; every release should be budgeted as a small migration.
    • Customization: Any missing targets must be added manually (e.g., Laravel-specific deployment scripts).
  • Team expertise:
    • Needs Phing proficiency to debug build failures (e.g., XML syntax errors, target dependencies).
    • Laravel team may resist adopting non-standard tools, increasing onboarding friction.

Support

  • Limited ecosystem support:
    • No Laravel-specific documentation or Stack Overflow community.
    • Debugging issues requires reverse-engineering the package's Phing targets.
    • v2.33.0's rename is undocumented beyond a changelog line — no migration guide for affected consumers.
  • Vendor lock-in:
    • Custom Phing logic may become hard to migrate if the team later adopts modern CI/CD.
    • No official support: MIT license means no warranty or SLAs.

Scaling

  • Performance bottlenecks:
    • Phing's XML-based configuration is slower than Composer scripts or Artisan commands.
    • Parallel execution: Phing lacks native parallel task support (unlike GitHub Actions or Laravel Forge).
  • Deployment complexity:
    • Adds runtime dependencies (Phing, PHP-CS-Fixer, etc.), increasing:
      • Docker image size.
      • CI/CD pipeline execution time.
      • Server resource usage (e.g., memory for Phing processes).

Failure Modes

Failure Scenario Impact Mitigation
Renamed targets (v2.33.0) Builds/CI jobs referencing analysis* fail immediately after upgrade. Pin exact version; grep for analysis targets; wrap Phing in Artisan/Composer indirection.
Phing version incompatibility Builds fail silently or produce incorrect outputs. Pin Phing version in composer.json and test upgrades.
Overlapping Laravel/Phing configs .gitignore, phpunit.xml, or Composer scripts conflict. Use --force flags or custom merge logic in Phing targets.
Duplicate outdated-dependency check Two sources of truth for dependency drift; noisy or contradictory reports. Standardize on composer outdated; use Phing target only if it adds filtering.
Package abandonment No updates for security vulnerabilities or new Laravel features. Fork the repo and maintain internally; plan for migration to native tools.
CI/CD pipeline failures Phing targets time out or fail in distributed environments. Containerize Phing in CI (e.g., Docker) or replace with native CI steps.
Team resistance Developers reject non-standard tooling, reducing adoption. Frame Phing as a temporary scaffold with a clear migration path.

Ramp-Up

  • Onboarding time: 2–4 weeks to reach working proficiency — roughly 1 week for Phing build-file mechanics, 1–2 weeks for target-to-Laravel mapping, and 0.5–1 week for the v2.33.0 check migration and version-pinning policy.
  • Cost of the v2.33.0 upgrade: Low if Phing is invoked only via a single wrapper (Artisan command or Composer script); medium-to-high if targets are referenced directly across CI configs and multiple repos.
  • Ramp-down consideration: The team should enter this integration with a documented exit plan; each release like v2.33.0 raises the cumulative cost of staying on Phing rather than lowering it.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log
hsluv/hsluv
seampact/codegen
seampact/hooks
seampact/ir
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table