@bostonuniversity/buwp-local 0.6.1 → 0.6.2
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/docs/CHANGELOG.md +25 -0
- package/docs/MIGRATION_FROM_VM.md +3 -3
- package/docs/ROADMAP.md +8 -1
- package/feedback-from-0-6-1.md +16 -0
- package/lib/commands/destroy.js +1 -1
- package/lib/commands/logs.js +1 -1
- package/lib/commands/start.js +1 -1
- package/lib/commands/stop.js +1 -1
- package/lib/commands/wp.js +1 -1
- package/lib/compose-generator.js +7 -10
- package/package.json +1 -1
package/docs/CHANGELOG.md
CHANGED
|
@@ -7,10 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.6.2]
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **Project paths with spaces** - Fixed shell command construction to properly quote Docker Compose file paths when project directory contains spaces
|
|
14
|
+
- Prevents shell word-splitting errors like `unknown docker command: "compose folder/..."`
|
|
15
|
+
- All Docker Compose commands (`start`, `stop`, `destroy`, `logs`, `wp`) now correctly handle paths with spaces and special characters
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- Volume mapping generation now uses cleaner functional programming pattern with `map()` and spread operator
|
|
19
|
+
- Improved code readability in `generateWordPressService()` by isolating volume mapping transformation
|
|
20
|
+
|
|
21
|
+
## [0.6.1]
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- Container registry accessibility check on `start` command
|
|
25
|
+
- Automatic Docker image pull with helpful authentication guidance
|
|
26
|
+
- GitHub Packages authentication assistance when image access is denied
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
- Clear error messages for registry authentication failures with actionable next steps
|
|
30
|
+
|
|
31
|
+
## [0.6.0]
|
|
32
|
+
|
|
10
33
|
### Added
|
|
11
34
|
- Credential validation on `start` command with interactive setup prompt
|
|
12
35
|
- Documentation consolidation in `docs/` directory
|
|
13
36
|
- Comprehensive guides: GETTING_STARTED.md, COMMANDS.md, CREDENTIALS.md, MULTI_PROJECT.md, ARCHITECTURE.md
|
|
37
|
+
- Robust `/etc/hosts` detection with smart one-time warnings
|
|
38
|
+
- VM Sandbox migration guide highlighting architectural advantages
|
|
14
39
|
|
|
15
40
|
## [0.5.3]
|
|
16
41
|
|
|
@@ -14,9 +14,9 @@ This guide explains the architectural advantages of buwp-local compared to tradi
|
|
|
14
14
|
In traditional VM-based development environments:
|
|
15
15
|
|
|
16
16
|
1. **Monthly rebuild cycles** - VM sandboxes must be periodically replaced with fresh builds to keep WordPress core, plugins, and infrastructure up to date
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
2. **Manual preservation** - Developers must manually back up their work before each rebuild and restore it afterward
|
|
18
|
+
3. **Coordination overhead** - Team-wide rebuild schedules require coordination and can interrupt active development
|
|
19
|
+
4. **All-or-nothing updates** - The entire team must update together, regardless of individual project needs
|
|
20
20
|
|
|
21
21
|
## How buwp-local Solves This
|
|
22
22
|
|
package/docs/ROADMAP.md
CHANGED
|
@@ -101,14 +101,21 @@ hostile.remove('127.0.0.1', config.hostname);
|
|
|
101
101
|
|
|
102
102
|
---
|
|
103
103
|
|
|
104
|
-
## Incremental Functional Improvements: v0.6.
|
|
104
|
+
## Incremental Functional Improvements: v0.6.x
|
|
105
105
|
**Status:** Currently Ongoing
|
|
106
106
|
**Focus:** Enhancements based on initial user experience
|
|
107
107
|
|
|
108
|
+
### Shipped in v0.6.1
|
|
108
109
|
- **Container Registry Assistance**
|
|
109
110
|
- Guide users on setting up access to private registries (ghcr.io)
|
|
110
111
|
- Automatic check for registry login or existing image on `start`
|
|
111
112
|
|
|
113
|
+
### Planned for v0.6.2
|
|
114
|
+
|
|
115
|
+
- ***Get spaces in volume mappings working correctly***
|
|
116
|
+
- Fix issues with spaces in host paths causing Docker errors
|
|
117
|
+
- Ensure cross-platform compatibility (Windows, macOS, Linux)
|
|
118
|
+
|
|
112
119
|
- **Basic docs on existing Xdebug features**
|
|
113
120
|
- Quickstart guide for enabling and using Xdebug in containers
|
|
114
121
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
feedback from 0.6.1
|
|
2
|
+
|
|
3
|
+
For volume mapped sandbox flavor, make a new directory for the sandbox project.
|
|
4
|
+
|
|
5
|
+
Next, use npm init to create a package.json file if you don't have one already:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm init -y
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Then install buwp-local as a development dependency:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install --save-dev @bostonuniversity/buwp-local
|
|
15
|
+
```
|
|
16
|
+
|
package/lib/commands/destroy.js
CHANGED
|
@@ -50,7 +50,7 @@ async function destroyCommand(options) {
|
|
|
50
50
|
try {
|
|
51
51
|
// This is the actual docker compose down command that removes everything
|
|
52
52
|
execSync(
|
|
53
|
-
`docker compose -p ${projectName} -f ${composePath} down -v`,
|
|
53
|
+
`docker compose -p ${projectName} -f "${composePath}" down -v`,
|
|
54
54
|
{
|
|
55
55
|
cwd: composeDir,
|
|
56
56
|
stdio: 'inherit'
|
package/lib/commands/logs.js
CHANGED
|
@@ -36,7 +36,7 @@ async function logsCommand(options) {
|
|
|
36
36
|
|
|
37
37
|
// Build docker compose logs command
|
|
38
38
|
const composeDir = path.dirname(composePath);
|
|
39
|
-
let command = `docker compose -p ${projectName} -f ${composePath} logs`;
|
|
39
|
+
let command = `docker compose -p ${projectName} -f "${composePath}" logs`;
|
|
40
40
|
|
|
41
41
|
if (options.follow) {
|
|
42
42
|
command += ' -f';
|
package/lib/commands/start.js
CHANGED
|
@@ -313,7 +313,7 @@ async function startCommand(options) {
|
|
|
313
313
|
// This is the actual docker compose up command that starts everything
|
|
314
314
|
// If there is a local .env file, it will take over the temp env file generated from the keychain, because it is specified last.
|
|
315
315
|
execSync(
|
|
316
|
-
`docker compose -p ${projectName} ${tempEnvFileFlag} ${envFileFlag} -f ${composePath} up -d`,
|
|
316
|
+
`docker compose -p ${projectName} ${tempEnvFileFlag} ${envFileFlag} -f "${composePath}" up -d`,
|
|
317
317
|
{
|
|
318
318
|
cwd: composeDir,
|
|
319
319
|
stdio: 'inherit'
|
package/lib/commands/stop.js
CHANGED
package/lib/commands/wp.js
CHANGED
|
@@ -35,7 +35,7 @@ async function wpCommand(args, _options) {
|
|
|
35
35
|
// Build docker compose exec command for WP-CLI
|
|
36
36
|
const composeDir = path.dirname(composePath);
|
|
37
37
|
const wpArgs = args.join(' ');
|
|
38
|
-
const command = `docker compose -p ${projectName} -f ${composePath} exec wordpress wp ${wpArgs}`;
|
|
38
|
+
const command = `docker compose -p ${projectName} -f "${composePath}" exec wordpress wp ${wpArgs}`;
|
|
39
39
|
|
|
40
40
|
// Execute WP-CLI command
|
|
41
41
|
try {
|
package/lib/compose-generator.js
CHANGED
|
@@ -152,16 +152,13 @@ function generateWordPressService(config, wpVolumeName) {
|
|
|
152
152
|
environment.WORDPRESS_CONFIG_EXTRA = wpConfigExtra;
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
// Build volumes array
|
|
156
|
-
const
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
volumes.push(`${localPath}:${mapping.container}`);
|
|
163
|
-
});
|
|
164
|
-
}
|
|
155
|
+
// Build volumes array with base WordPress volume
|
|
156
|
+
const customVolumes = (config.mappings || []).map(mapping => {
|
|
157
|
+
const localPath = path.resolve(mapping.local);
|
|
158
|
+
return `${localPath}:${mapping.container}`;
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
const volumes = [`${wpVolumeName}:/var/www/html`, ...customVolumes];
|
|
165
162
|
|
|
166
163
|
return {
|
|
167
164
|
image: config.image,
|