@jumpgroup/laravel-tools 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +59 -0
- package/README.md +378 -0
- package/bin/groups/cache.js +52 -0
- package/bin/groups/database.js +105 -0
- package/bin/groups/forge.js +272 -0
- package/bin/groups/local.js +78 -0
- package/bin/groups/media.js +110 -0
- package/bin/tools.js +23 -0
- package/docs/Changelog.md +267 -0
- package/docs/TODO.md +167 -0
- package/docs/releases/release_0.0.1.md +116 -0
- package/docs/releases/release_0.0.2.md +88 -0
- package/docs/releases/release_0.0.3.md +58 -0
- package/docs/releases/release_0.0.4.md +128 -0
- package/docs/releases/release_0.0.5.md +77 -0
- package/docs/releases/release_0.0.6.md +80 -0
- package/docs/releases/release_1.0.0.md +61 -0
- package/docs/releases/release_1.0.1.md +18 -0
- package/docs/releases/release_1.0.2.md +18 -0
- package/docs/releases/release_1.0.3.md +19 -0
- package/docs/releases/release_1.1.0.md +18 -0
- package/docs/releases/release_1.1.1.md +17 -0
- package/docs/releases/release_1.1.2.md +18 -0
- package/docs/releases/release_1.1.3.md +21 -0
- package/docs/releases/release_1.1.4.md +18 -0
- package/docs/releases/release_1.1.5.md +18 -0
- package/docs/releases/release_1.1.6.md +21 -0
- package/docs/releases/release_1.1.7.md +17 -0
- package/docs/releases/release_2.0.0.md +192 -0
- package/docs/releases/release_2.0.1.md +53 -0
- package/docs/releases/release_2.0.2.md +55 -0
- package/docs/releases/release_2.0.3.md +69 -0
- package/docs/releases/release_2.1.0.md +59 -0
- package/docs/releases/release_2.2.0.md +83 -0
- package/docs/releases/release_2.2.1.md +36 -0
- package/docs/releases/release_2.2.2.md +57 -0
- package/docs/releases/release_2.2.3.md +39 -0
- package/docs/releases/release_2.2.4.md +75 -0
- package/docs/releases/release_2.2.5.md +69 -0
- package/docs/releases/release_3.0.0.md +87 -0
- package/docs/releases/release_3.0.1.md +65 -0
- package/docs/releases/release_3.1.0.md +90 -0
- package/docs/releases/release_3.2.0.md +74 -0
- package/docs/releases/release_3.3.0.md +72 -0
- package/package.json +35 -0
- package/src/aws/bucket.js +287 -0
- package/src/aws/cloudfront.js +433 -0
- package/src/aws/config.js +39 -0
- package/src/aws/iam.js +189 -0
- package/src/cache.js +49 -0
- package/src/database.js +315 -0
- package/src/forge/client.js +43 -0
- package/src/forge/config.js +33 -0
- package/src/forge/provisioning.js +191 -0
- package/src/forge/servers.js +27 -0
- package/src/forge/sites.js +93 -0
- package/src/google/groupMembers.js +35 -0
- package/src/google/utilities.js +39 -0
- package/src/local/doctor.js +214 -0
- package/src/local/setup.js +398 -0
- package/src/media.js +143 -0
- package/src/stub/docker/mysql/my.cnf +6 -0
- package/src/stub/docker/php/local.ini +4 -0
- package/src/stub/docker/traefik/dynamic_conf.yml +4 -0
- package/src/stub/docker/traefik/traefik.yml +24 -0
- package/src/stub/docker-compose/php8.0/docker-compose.yml +78 -0
- package/src/stub/docker-compose/php8.1/docker-compose.yml +78 -0
- package/src/stub/docker-compose/php8.2/docker-compose.yml +78 -0
- package/src/stub/docker-compose/php8.3/docker-compose.yml +78 -0
- package/src/stub/docker-compose/php8.4/docker-compose.yml +78 -0
- package/src/stub/docker-compose.yml +78 -0
- package/src/utilities/command.js +137 -0
- package/src/utilities/dateUtils.js +7 -0
- package/src/utilities/fileUtils.js +36 -0
- package/src/utilities/google-drive.js +69 -0
- package/src/utilities/pathUtils.js +15 -0
- package/src/utilities/userInput.js +28 -0
- package/src/utilities/utilities.js +57 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Release 0.0.3 — Cache command group
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-03-18
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Implements the `cache` command group. Small and self-contained — no new design
|
|
10
|
+
decisions required, fully reuses the utilities from 0.0.1.
|
|
11
|
+
|
|
12
|
+
In trellis-tools, cache flushing meant clearing WordPress's object cache
|
|
13
|
+
(Memcached/Redis via WP-CLI). For Laravel there is no single "object cache"
|
|
14
|
+
command — instead, Laravel has four independent cache layers that each need to
|
|
15
|
+
be cleared separately.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Commands added
|
|
20
|
+
|
|
21
|
+
| Command | What it does |
|
|
22
|
+
|---------|-------------|
|
|
23
|
+
| `cache flush-local` | Clears all Laravel caches in the local Docker app container |
|
|
24
|
+
| `cache flush-remote` | Clears all Laravel caches on a remote server via SSH |
|
|
25
|
+
| `cache flush-all` | Runs flush-local then flush-remote |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Files added
|
|
30
|
+
|
|
31
|
+
### `src/cache.js`
|
|
32
|
+
Defines the four artisan commands to run on every flush:
|
|
33
|
+
```
|
|
34
|
+
php artisan cache:clear — application cache (Redis / file)
|
|
35
|
+
php artisan config:clear — cached config files
|
|
36
|
+
php artisan route:clear — cached route list
|
|
37
|
+
php artisan view:clear — compiled Blade templates
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- `flushLocal()` — iterates the four commands via `docker exec {APP_NAME}-app php artisan {cmd}`
|
|
41
|
+
- `flushRemote(options)` — joins them with `&&` and runs them in a single SSH call
|
|
42
|
+
- `flushAll(options)` — calls both in sequence
|
|
43
|
+
|
|
44
|
+
### `bin/groups/cache.js`
|
|
45
|
+
CLI layer only. Three Commander subcommands wired to `src/cache.js`.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Design decisions
|
|
50
|
+
|
|
51
|
+
- **Four commands instead of one** — unlike `wp cache flush`, there is no single
|
|
52
|
+
Laravel artisan command that clears everything. All four layers are always
|
|
53
|
+
cleared together to avoid partial state.
|
|
54
|
+
- **Single SSH call for remote** — the four artisan commands are joined with `&&`
|
|
55
|
+
into one SSH invocation rather than four separate connections, for speed.
|
|
56
|
+
- **No Q1 dependency** — local flush uses the already-decided container name
|
|
57
|
+
(`{APP_NAME}-app`); remote flush uses SSH via `laravel-tools.yml`, same as
|
|
58
|
+
the database commands. The deploy tool is not involved.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Release 0.0.4 — Local setup scripts + container name fixes
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-03-18
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Historical note
|
|
8
|
+
|
|
9
|
+
This release note is kept for historical traceability only.
|
|
10
|
+
|
|
11
|
+
It does **not** describe the current local workflow baseline anymore.
|
|
12
|
+
The current source of truth is the `1.0.0` local workflow:
|
|
13
|
+
|
|
14
|
+
1. `npx laravel-tools local setup-project`
|
|
15
|
+
2. `yarn repo-setup`
|
|
16
|
+
3. `yarn start`
|
|
17
|
+
4. `yarn setup-laravel`
|
|
18
|
+
|
|
19
|
+
Read the root `README.md` and `docs/Changelog.md` for the active workflow.
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
Implements the `local` command group — the commands developers run to spin up a
|
|
24
|
+
new Laravel project locally. Also fixes container naming across the codebase
|
|
25
|
+
after analysing the real Laravel project structure.
|
|
26
|
+
|
|
27
|
+
At the time of 0.0.4 the local workflow was:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
1. laravel-tools local setup-project (not built yet at the time)
|
|
31
|
+
2. laravel-tools local setup-repo ← built here
|
|
32
|
+
yarn repo-setup in boilerplate package.json calls this
|
|
33
|
+
3. docker compose up -d
|
|
34
|
+
yarn start in boilerplate package.json calls this
|
|
35
|
+
4. laravel-tools local setup-laravel ← built here
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Bug fixes
|
|
41
|
+
|
|
42
|
+
### Wrong container names in `src/cache.js` and `src/database.js`
|
|
43
|
+
The initial implementation assumed container names of `{APP_NAME}-app` and
|
|
44
|
+
`{APP_NAME}-db`. After analysing the real Laravel project docker-compose.yml,
|
|
45
|
+
the correct names are:
|
|
46
|
+
|
|
47
|
+
| Wrong | Correct |
|
|
48
|
+
|-------|---------|
|
|
49
|
+
| `{APP_NAME}-app` | `{APP_NAME}-api` |
|
|
50
|
+
| `{APP_NAME}-db` | `{APP_NAME}-mysql` |
|
|
51
|
+
|
|
52
|
+
All references in `src/cache.js` and `src/database.js` updated.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Stub files added (`src/stub/`)
|
|
57
|
+
|
|
58
|
+
Template files that `setup-repo` copies into the project root, substituting
|
|
59
|
+
`${VAR}` tokens with values from `.env`.
|
|
60
|
+
|
|
61
|
+
### `src/stub/docker-compose.yml`
|
|
62
|
+
Based on the real project docker-compose.yml, with:
|
|
63
|
+
- Hardcoded names (`supporticket.test`) replaced with `${APP_NAME}.test`
|
|
64
|
+
- Inconsistent volume mount path for mysql fixed (`./mysql/` → `./docker/mysql/`)
|
|
65
|
+
- Services: `traefik`, `api` (`jumpgroupit/laravel-image:0.1.0`), `db` (MySQL 8.0)
|
|
66
|
+
|
|
67
|
+
### `src/stub/docker/traefik/traefik.yml`
|
|
68
|
+
Fixed leftover wrong network name: `ecommerce-network` → `api-network`.
|
|
69
|
+
|
|
70
|
+
### `src/stub/docker/traefik/dynamic_conf.yml`
|
|
71
|
+
Cert paths changed from hardcoded project-specific names to generic:
|
|
72
|
+
- `site.test.pem` / `site.key`
|
|
73
|
+
These are the names `setup-repo` renames the mkcert output to, so this file
|
|
74
|
+
never needs to change between projects.
|
|
75
|
+
|
|
76
|
+
### `src/stub/docker/php/local.ini`
|
|
77
|
+
PHP configuration copied from the real project: upload limits, execution time,
|
|
78
|
+
memory limit.
|
|
79
|
+
|
|
80
|
+
### `src/stub/docker/mysql/my.cnf`
|
|
81
|
+
Minimal MySQL config enabling the general query log.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Commands added
|
|
86
|
+
|
|
87
|
+
### `local setup-repo`
|
|
88
|
+
Equivalent of trellis-tools `local setup-repo` (`setupLocal` in src/index.js).
|
|
89
|
+
|
|
90
|
+
Flow:
|
|
91
|
+
1. Assert `.env.example` and `.secret-fetcher` exist
|
|
92
|
+
2. Inject secrets via `@jumpgroup/secret-fetcher::replaceSecrets()` → `.env`
|
|
93
|
+
3. Copy all stub files to project root with variable substitution
|
|
94
|
+
(`@jumpgroup/secret-fetcher::replaceFiles()`)
|
|
95
|
+
4. Create `docker/certs/` directory
|
|
96
|
+
5. Run `mkcert {APP_NAME}.test` inside `docker/certs/`
|
|
97
|
+
6. Rename certs to generic names (`site.test.pem`, `site.key`) so
|
|
98
|
+
`dynamic_conf.yml` works for any project without modification
|
|
99
|
+
7. Add `{APP_NAME}.test` to `/etc/hosts` via `sudo hostile set`
|
|
100
|
+
|
|
101
|
+
### `local setup-laravel`
|
|
102
|
+
Equivalent of trellis-tools `local setup-wordpress` (`setupWordpress`).
|
|
103
|
+
|
|
104
|
+
Flow:
|
|
105
|
+
1. Assert `.env` exists (setup-repo must have run first)
|
|
106
|
+
2. Check `{APP_NAME}-api` container is running
|
|
107
|
+
3. If `APP_KEY` already present in `.env` (injected by secret-fetcher in
|
|
108
|
+
step 2), skip `key:generate` — avoids overwriting the vault key
|
|
109
|
+
4. If `APP_KEY` missing, run `php artisan key:generate`
|
|
110
|
+
5. Run `php artisan migrate`
|
|
111
|
+
6. Optionally run `php artisan db:seed` (interactive confirm)
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Dependencies added to `package.json`
|
|
116
|
+
|
|
117
|
+
| Package | Purpose |
|
|
118
|
+
|---------|---------|
|
|
119
|
+
| `@jumpgroup/secret-fetcher` | Secret injection and stub file deployment |
|
|
120
|
+
| `glob` | File pattern matching (used by secret-fetcher stub copy) |
|
|
121
|
+
| `hostile` | `/etc/hosts` editing via `sudo hostile set` |
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Other changes
|
|
126
|
+
|
|
127
|
+
- `bin/tools.js`: registered `local` command group, removed unused `readFileSync`
|
|
128
|
+
import.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Release 0.0.5 — PHP version stubs + Docker image updates
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-03-20
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Updates the Docker service versions in the stub to the latest stable versions
|
|
10
|
+
compatible with macOS 15.2, and introduces PHP version variants for the
|
|
11
|
+
docker-compose stub — mirroring the trellis-tools pattern. The `setup-repo`
|
|
12
|
+
command now accepts a `--phpversion` flag to select which image to use.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Docker image version updates (`src/stub/docker-compose.yml`)
|
|
17
|
+
|
|
18
|
+
| Service | Before | After | Reason |
|
|
19
|
+
|---------|--------|-------|--------|
|
|
20
|
+
| `traefik` | `v2.4.7` | `v2.11` | Latest stable v2, macOS 15.2 compatible. Stayed on v2 (not v3) for consistency with existing projects |
|
|
21
|
+
| `mysql` | `8.0` | `8.4` | Latest LTS release |
|
|
22
|
+
| `jumpgroupit/laravel-image` | `0.1.0` | `0.2.5` | Latest release (PHP 8.4) |
|
|
23
|
+
|
|
24
|
+
> Traefik v3 was evaluated and rejected — it has breaking config changes and
|
|
25
|
+
> the team already runs v2.11 across all other projects.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## PHP version stub variants added
|
|
30
|
+
|
|
31
|
+
New structure under `src/stub/docker-compose/`:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
src/stub/
|
|
35
|
+
docker-compose.yml ← default (PHP 8.4)
|
|
36
|
+
docker-compose/
|
|
37
|
+
php8.0/docker-compose.yml ← jumpgroupit/laravel-image:0.2.2
|
|
38
|
+
php8.1/docker-compose.yml ← jumpgroupit/laravel-image:0.2.3
|
|
39
|
+
php8.2/docker-compose.yml ← jumpgroupit/laravel-image:0.1.0
|
|
40
|
+
php8.3/docker-compose.yml ← jumpgroupit/laravel-image:0.2.4
|
|
41
|
+
php8.4/docker-compose.yml ← jumpgroupit/laravel-image:0.2.5
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
PHP 8.0 and 8.1 are end-of-life but included for legacy project support.
|
|
45
|
+
|
|
46
|
+
Image tag mapping (confirmed with team):
|
|
47
|
+
|
|
48
|
+
| PHP version | Image tag |
|
|
49
|
+
|-------------|-----------|
|
|
50
|
+
| 8.0 | `jumpgroupit/laravel-image:0.2.2` |
|
|
51
|
+
| 8.1 | `jumpgroupit/laravel-image:0.2.3` |
|
|
52
|
+
| 8.2 | `jumpgroupit/laravel-image:0.1.0` |
|
|
53
|
+
| 8.3 | `jumpgroupit/laravel-image:0.2.4` |
|
|
54
|
+
| 8.4 | `jumpgroupit/laravel-image:0.2.5` |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## `--phpversion` flag added to `local setup-repo`
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
laravel-tools local setup-repo # default: php8.4
|
|
62
|
+
laravel-tools local setup-repo --phpversion php8.2
|
|
63
|
+
laravel-tools local setup-repo --phpversion php8.0
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### How it works (`src/local/setup.js`)
|
|
67
|
+
|
|
68
|
+
1. `replaceFiles` copies all stubs including the `docker-compose/` version subfolders
|
|
69
|
+
2. If a non-default version is requested, `docker-compose.yml` is overwritten
|
|
70
|
+
with the version-specific file (with `${VAR}` tokens substituted from `.env`)
|
|
71
|
+
3. The `docker-compose/` subfolder is removed from the project root — it is
|
|
72
|
+
internal to laravel-tools and not needed in the project
|
|
73
|
+
|
|
74
|
+
### Files changed
|
|
75
|
+
|
|
76
|
+
- `src/local/setup.js` — added `phpversion` option, version selection logic, cleanup
|
|
77
|
+
- `bin/groups/local.js` — added `--phpversion` option with `.choices()` validation
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Release 0.0.6 — Mailpit local mail service
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-03-20
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Adds Mailpit as the local email testing service across all Docker Compose stubs.
|
|
10
|
+
Mailpit replaces the originally requested Mailhog, which has not been maintained
|
|
11
|
+
since 2021. Mailpit is a drop-in replacement with the same ports, actively
|
|
12
|
+
maintained, and has a significantly better web UI.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Why Mailpit over Mailhog
|
|
17
|
+
|
|
18
|
+
| | Mailhog | Mailpit |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| Last release | 2021 | Active |
|
|
21
|
+
| SMTP port | 1025 | 1025 |
|
|
22
|
+
| Web UI port | 8025 | 8025 |
|
|
23
|
+
| Web UI quality | Basic | Modern |
|
|
24
|
+
| ARM64 support | Unofficial | Official |
|
|
25
|
+
|
|
26
|
+
Both work identically from Laravel's perspective — only the image name changes.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Changes to all Docker Compose stubs
|
|
31
|
+
|
|
32
|
+
Files updated:
|
|
33
|
+
- `src/stub/docker-compose.yml` (default, PHP 8.4)
|
|
34
|
+
- `src/stub/docker-compose/php8.0/docker-compose.yml`
|
|
35
|
+
- `src/stub/docker-compose/php8.1/docker-compose.yml`
|
|
36
|
+
- `src/stub/docker-compose/php8.2/docker-compose.yml`
|
|
37
|
+
- `src/stub/docker-compose/php8.3/docker-compose.yml`
|
|
38
|
+
- `src/stub/docker-compose/php8.4/docker-compose.yml`
|
|
39
|
+
|
|
40
|
+
### Service added: `mailpit`
|
|
41
|
+
|
|
42
|
+
```yaml
|
|
43
|
+
mailpit:
|
|
44
|
+
image: axllent/mailpit:latest
|
|
45
|
+
container_name: ${APP_NAME}-mailpit
|
|
46
|
+
restart: unless-stopped
|
|
47
|
+
ports:
|
|
48
|
+
- "1025:1025" # SMTP — Laravel MAIL_HOST points here
|
|
49
|
+
- "8025:8025" # Web UI — direct access
|
|
50
|
+
networks:
|
|
51
|
+
- api-network
|
|
52
|
+
labels:
|
|
53
|
+
- "traefik.enable=true"
|
|
54
|
+
- "traefik.http.routers.mailpit.rule=Host(`mail.${APP_NAME}.test`)"
|
|
55
|
+
- "traefik.http.routers.mailpit.tls=true"
|
|
56
|
+
- "traefik.http.services.mailpit.loadbalancer.server.port=8025"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### `api` service: `depends_on` updated
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
depends_on:
|
|
63
|
+
- db
|
|
64
|
+
- mailpit ← added
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Laravel `.env` configuration
|
|
70
|
+
|
|
71
|
+
Any Laravel project using these stubs should have:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
MAIL_MAILER=smtp
|
|
75
|
+
MAIL_HOST=${APP_NAME}-mailpit
|
|
76
|
+
MAIL_PORT=1025
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The web UI is accessible at `https://mail.{APP_NAME}.test` after `setup-repo`
|
|
80
|
+
adds the domain to `/etc/hosts` and Traefik routes it via the labels above.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Release 1.0.0 — Local workflow baseline
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-02
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
First baseline release where the Laravel local workflow is treated as the core product.
|
|
10
|
+
This version establishes the 4-step setup model:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
1. laravel-tools local setup-project
|
|
14
|
+
2. yarn repo-setup
|
|
15
|
+
3. yarn start
|
|
16
|
+
4. yarn setup-laravel
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The release also aligns the local setup model with the Trellis-style split between:
|
|
20
|
+
- project identity definition
|
|
21
|
+
- local repo preparation
|
|
22
|
+
- runtime startup
|
|
23
|
+
- application initialization
|
|
24
|
+
|
|
25
|
+
## Added
|
|
26
|
+
|
|
27
|
+
- New `local setup-project` command
|
|
28
|
+
- Multi-repo workflow documentation for working across:
|
|
29
|
+
- `laravel-tools`
|
|
30
|
+
- Laravel boilerplate
|
|
31
|
+
- real Laravel reference project
|
|
32
|
+
|
|
33
|
+
## Changed
|
|
34
|
+
|
|
35
|
+
- `local setup-project` now prompts for the project name and updates:
|
|
36
|
+
- `APP_NAME`
|
|
37
|
+
- `APP_URL`
|
|
38
|
+
- `ASSETS_URL`
|
|
39
|
+
in `.env.example`
|
|
40
|
+
- `local setup-repo` now focuses on local environment preparation only
|
|
41
|
+
- Local setup now adds both:
|
|
42
|
+
- `${APP_NAME}.test`
|
|
43
|
+
- `mail.${APP_NAME}.test`
|
|
44
|
+
to `/etc/hosts`
|
|
45
|
+
- Certificate generation now supports both local hosts
|
|
46
|
+
- Docker stub templating now prefers `DB_DATABASE` while preserving `DB_NAME` compatibility
|
|
47
|
+
- Database import cleanup now clears all four Laravel cache layers
|
|
48
|
+
- Local Traefik/MySQL defaults were updated to the current baseline:
|
|
49
|
+
- Traefik `v3.6.11`
|
|
50
|
+
- MySQL `max_allowed_packet = 256M`
|
|
51
|
+
- query log disabled by default
|
|
52
|
+
|
|
53
|
+
## Fixed
|
|
54
|
+
|
|
55
|
+
- Missing `.secret-fetcher` during `local setup-project` now fails with the standard team-specific message:
|
|
56
|
+
`Secret fetcher non è inizializzato, contattare Giada o Andrea`
|
|
57
|
+
|
|
58
|
+
## Notes
|
|
59
|
+
|
|
60
|
+
- This is the first version intended as a serious baseline for testing the Laravel local workflow end-to-end.
|
|
61
|
+
- Earlier `0.x` releases remain the pre-baseline build-up history.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Release 1.0.1 — Stub copy target fix
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-02
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Hotfix for a critical `local setup-repo` issue discovered during real project testing.
|
|
10
|
+
|
|
11
|
+
## Fixed
|
|
12
|
+
|
|
13
|
+
- Corrected the destination passed to `replaceFiles(...)` so the project root is treated as a directory, not as a file path
|
|
14
|
+
- Prevented `EISDIR: illegal operation on a directory` failures while copying generated Docker/Traefik stubs into the target repo
|
|
15
|
+
|
|
16
|
+
## Impact
|
|
17
|
+
|
|
18
|
+
- `local setup-repo` can now complete the stub copy phase on real Laravel projects
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Release 1.0.2 — Session migration bootstrap
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-02
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Fixes local Laravel initialization for projects that rely on a sessions table but do not already ship the migration.
|
|
10
|
+
|
|
11
|
+
## Fixed
|
|
12
|
+
|
|
13
|
+
- `local setup-laravel` now attempts to generate the session-table migration before running migrations
|
|
14
|
+
- Reduced first-run failures caused by missing `create_sessions_table` migrations
|
|
15
|
+
|
|
16
|
+
## Impact
|
|
17
|
+
|
|
18
|
+
- More reliable bootstrap on fresh Laravel projects during step 4 of the local workflow
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Release 1.0.3 — Target `.gitignore` safety
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-02
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Improves generated-project hygiene during local repo preparation.
|
|
10
|
+
|
|
11
|
+
## Added
|
|
12
|
+
|
|
13
|
+
- `local setup-repo` now appends missing local-only entries to the target project's `.gitignore`:
|
|
14
|
+
- `mysql/`
|
|
15
|
+
- `docker/certs/`
|
|
16
|
+
|
|
17
|
+
## Impact
|
|
18
|
+
|
|
19
|
+
- Generated local artifacts are less likely to show up as noisy untracked files in consumer projects
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Release 1.1.0 — Optional Filament install
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-02
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Extends Laravel bootstrap with an optional Filament installation flow.
|
|
10
|
+
|
|
11
|
+
## Added
|
|
12
|
+
|
|
13
|
+
- `local setup-laravel` now asks whether Filament should be installed during setup
|
|
14
|
+
- If confirmed, the setup flow starts the Composer require + Filament installation sequence inside the running app container
|
|
15
|
+
|
|
16
|
+
## Impact
|
|
17
|
+
|
|
18
|
+
- New Laravel projects can bootstrap Filament directly from the standard local setup flow
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Release 1.1.1 — Composer constraint fix for Filament
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-02
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Quick fix for the initial Filament installation command added in `1.1.0`.
|
|
10
|
+
|
|
11
|
+
## Fixed
|
|
12
|
+
|
|
13
|
+
- Corrected the `composer require` syntax used for `filament/filament:^3.2`
|
|
14
|
+
|
|
15
|
+
## Impact
|
|
16
|
+
|
|
17
|
+
- Filament installation no longer fails because of an invalid Composer package constraint
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Release 1.1.2 — Filament user command
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-02
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Adds a dedicated helper command for creating a Filament user in the local environment.
|
|
10
|
+
|
|
11
|
+
## Added
|
|
12
|
+
|
|
13
|
+
- New `local user add` command
|
|
14
|
+
- The command runs `php artisan make:filament-user` inside the running `${APP_NAME}-api` container
|
|
15
|
+
|
|
16
|
+
## Impact
|
|
17
|
+
|
|
18
|
+
- Filament-enabled projects can create admin users without leaving the tool flow
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Release 1.1.3 — Composer/install output cleanup
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-02
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Improves the visibility and ordering of setup output while hardening session migration handling.
|
|
10
|
+
|
|
11
|
+
## Added
|
|
12
|
+
|
|
13
|
+
- `local setup-repo` now runs `composer install` explicitly as part of the repo preparation phase
|
|
14
|
+
|
|
15
|
+
## Changed
|
|
16
|
+
|
|
17
|
+
- Composer installation output now appears in the expected place during setup instead of surfacing later from asynchronous container startup
|
|
18
|
+
|
|
19
|
+
## Fixed
|
|
20
|
+
|
|
21
|
+
- Session migration checks were tightened before running Laravel migrations
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Release 1.1.4 — Session migration detection via `readdirSync`
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-02
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Refines the session-table detection introduced in the previous releases.
|
|
10
|
+
|
|
11
|
+
## Fixed
|
|
12
|
+
|
|
13
|
+
- Replaced `glob`-based session migration detection with `readdirSync` on `database/migrations`
|
|
14
|
+
- Reduced false negatives / false positives when checking whether `create_sessions_table` already exists
|
|
15
|
+
|
|
16
|
+
## Impact
|
|
17
|
+
|
|
18
|
+
- `local setup-laravel` is more deterministic when deciding whether to generate the session migration
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Release 1.1.5 — Non-interactive Filament install
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-02
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Removes interactive noise from the Filament setup phase.
|
|
10
|
+
|
|
11
|
+
## Fixed
|
|
12
|
+
|
|
13
|
+
- `php artisan filament:install` now runs with `--no-interaction`
|
|
14
|
+
- Removed self-spam / TTY-related friction during automated local setup
|
|
15
|
+
|
|
16
|
+
## Impact
|
|
17
|
+
|
|
18
|
+
- Filament installation is smoother and better behaved inside scripted setup flows
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Release 1.1.6 — Graceful migrations
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-02
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Stabilizes the final migration phase of local Laravel initialization.
|
|
10
|
+
|
|
11
|
+
## Changed
|
|
12
|
+
|
|
13
|
+
- `local setup-laravel` now runs `php artisan migrate --graceful`
|
|
14
|
+
|
|
15
|
+
## Fixed
|
|
16
|
+
|
|
17
|
+
- Session-table detection naming/flow was cleaned up before the final migration step
|
|
18
|
+
|
|
19
|
+
## Impact
|
|
20
|
+
|
|
21
|
+
- Migration execution is more tolerant during repeated setup runs
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Release 1.1.7 — Filament assets in setup flow
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-04-02
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Completes the Filament bootstrap sequence by publishing its assets during setup.
|
|
10
|
+
|
|
11
|
+
## Added
|
|
12
|
+
|
|
13
|
+
- `local setup-laravel` now runs `php artisan filament:assets` after Filament installation
|
|
14
|
+
|
|
15
|
+
## Impact
|
|
16
|
+
|
|
17
|
+
- Filament panels are more likely to be usable immediately after the setup flow completes
|