Skip to content

Latest commit

 

History

History
128 lines (91 loc) · 3.59 KB

File metadata and controls

128 lines (91 loc) · 3.59 KB

shimkit 0.7.0

shimkit framework laravel — Laravel-specific helpers under a new framework parent sub-app. For the full machine-readable changelog, see CHANGELOG.md.

Note: v0.7.0 was tagged but never shipped — the release workflow caught a version drift in pyproject.toml. v0.7.1 re-shipped the same surface. Production users got v0.7.1.


TL;DR

shimkit framework laravel perms PATH                 # MODERATE
shimkit framework laravel env PATH                   # MODERATE
shimkit framework laravel cron-install PATH          # MODERATE
shimkit framework laravel artisan -- <args>          # passthrough

Cross-distro permission fixer, .env scaffolder with generated APP_KEY, scheduler cron-install (wraps shimkit cron), and an artisan passthrough that runs on the host or routes through shimkit stack lemp.


What's new

framework laravel perms

Cross-distro storage + bootstrap/cache permission fixer. Replaces the legacy add:laravel-perms.sh.

Group detection: tries getent group <name> on Linux, dscl . -read /Groups/<name> on macOS, falls back to Python's grp.getgrnam. When the group doesn't exist on the host, the global chmod 664 / chmod 775 passes still run but chgrp is skipped.

shimkit framework laravel perms --yes ./myshop
shimkit framework laravel perms --yes --group staff ./myshop    # macOS-friendly
shimkit framework laravel perms --dry-run ./myshop              # plan only

framework laravel env

Writes .env with a generated APP_KEY (base64 + 32 random bytes via secrets.token_bytes(32)). No PHP required on the host — Python generates the key directly. Refuses to overwrite an existing .env.

Default DB settings target shimkit db containers, so after:

shimkit db mysql up
shimkit framework laravel env --yes ./myshop

…the first php artisan migrate works against the local mysql container.

framework laravel cron-install

Wraps shimkit cron add with the Laravel-shaped invocation:

cd <PROJECT> && php <PROJECT>/artisan schedule:run >> /dev/null 2>&1

Default name laravel-<dirname>, default schedule * * * * *. Both configurable. Backup-on-mutate + shimkit cron rollback come from the cron tool itself.

framework laravel artisan

Passthrough to php artisan. Host execution is the default — preflights php via shimkit.core.version.preflight, exits 69 with a remediation hint when php is missing. --in-container routes through shimkit stack lemp's php-fpm container.

shimkit framework laravel artisan --project ./myshop -- migrate
shimkit framework laravel artisan --project ./myshop \
    --in-container --stack myshop -- migrate --seed

Supporting changes

  • core/version.py registers a php detector (regex ^PHP ([\d.]+)) with platform-specific remediation.
  • tools.versions.php floor at 8.1.
  • core/command.py: CommandRunner.run gains an optional cwd parameter — needed by artisan passthrough.

Charter context

Second of the deferred v0.5+ candidates (after shimkit cron in v0.6.0). Replaces the legacy add:laravel-perms.sh and Laravel- flavored add:cron.sh scripts from the ubuntu/ source tree. Future framework siblings (symfony, rails, django, nextjs) slot under the same parent.


Stats

  • Tests: 528 → 561 (+33)
  • Gates: pytest, ruff, mypy strict — all green
  • New optional extras: 0

Upgrading

uv tool upgrade shimkit
pipx upgrade shimkit

If you'd like a default --email for ACME requests etc., set tools.framework.laravel.* in your user config.