@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 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
- 3. **Manual preservation** - Developers must manually back up their work before each rebuild and restore it afterward
18
- 4. **Coordination overhead** - Team-wide rebuild schedules require coordination and can interrupt active development
19
- 5. **All-or-nothing updates** - The entire team must update together, regardless of individual project needs
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.1
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
+
@@ -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'
@@ -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';
@@ -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'
@@ -39,7 +39,7 @@ async function stopCommand() {
39
39
 
40
40
  try {
41
41
  execSync(
42
- `docker compose -p ${projectName} -f ${composePath} stop`,
42
+ `docker compose -p ${projectName} -f "${composePath}" stop`,
43
43
  {
44
44
  cwd: composeDir,
45
45
  stdio: 'inherit'
@@ -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 {
@@ -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 volumes = [`${wpVolumeName}:/var/www/html`];
157
-
158
- // Add custom mappings
159
- if (config.mappings && Array.isArray(config.mappings)) {
160
- config.mappings.forEach(mapping => {
161
- const localPath = path.resolve(mapping.local);
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,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bostonuniversity/buwp-local",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "Local WordPress development environment for Boston University projects",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",