pressship 0.1.10 → 0.1.12
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.
|
@@ -1,11 +1,30 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wordpress-plugin-publish
|
|
3
|
-
description: Use this skill when publishing, submitting, reuploading, packaging, checking, or releasing WordPress.org plugins with Pressship. It covers safe Pressship workflows for local plugin directories,
|
|
3
|
+
description: Use this skill when publishing, submitting, reuploading, verifying, packaging, checking, demoing, or releasing WordPress.org plugins with Pressship. It covers safe Pressship workflows for local plugin directories, WordPress.org SVN checkouts, pending submissions, approved releases, Plugin Check review, package exclusions, WordPress Playground demos, WP-CLI usage, and authentication.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# WordPress Plugin Publish
|
|
7
7
|
|
|
8
|
-
Use Pressship for WordPress.org plugin submission and release work. Prefer `npx pressship` unless the user explicitly wants the local checkout version.
|
|
8
|
+
Use Pressship for WordPress.org plugin submission and release work. Prefer `npx pressship` unless the user explicitly wants the local checkout version or the WP-CLI package (`wp ship`).
|
|
9
|
+
|
|
10
|
+
## Install Surfaces
|
|
11
|
+
|
|
12
|
+
Use the install surface the user asks for:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx pressship verify .
|
|
16
|
+
wp package install f/pressship
|
|
17
|
+
wp ship verify .
|
|
18
|
+
npm install -g pressship
|
|
19
|
+
pressship verify .
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
For agent skill installation:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx skills add f/pressship --skill wordpress-plugin-publish -a codex
|
|
26
|
+
npx skills add f/pressship --skill wordpress-plugin-publish -a claude-code
|
|
27
|
+
```
|
|
9
28
|
|
|
10
29
|
## Safety Rules
|
|
11
30
|
|
|
@@ -13,8 +32,10 @@ Use Pressship for WordPress.org plugin submission and release work. Prefer `npx
|
|
|
13
32
|
- Do not push git commits or tags unless the user explicitly asks.
|
|
14
33
|
- Report Plugin Check findings clearly. Do not hide them just because Pressship can continue.
|
|
15
34
|
- Use repeatable excludes for large or source-only files. Prefer `.pressshipignore` when the project already has one.
|
|
35
|
+
- Use `--no-verify` only when the user explicitly asks to bypass readme validation and Plugin Check.
|
|
16
36
|
- If Pressship prompts interactively, answer only with user-approved or obvious plugin metadata.
|
|
17
37
|
- If authentication fails, run `npx pressship login` and let the user complete WordPress.org login.
|
|
38
|
+
- For approved-plugin SVN releases, expect Pressship to verify before SVN changes, reject already-published versions, and ask for a generated WordPress.org SVN password when needed.
|
|
18
39
|
|
|
19
40
|
## Orientation
|
|
20
41
|
|
|
@@ -22,11 +43,14 @@ From the plugin directory:
|
|
|
22
43
|
|
|
23
44
|
```bash
|
|
24
45
|
npx pressship whoami
|
|
46
|
+
npx pressship verify .
|
|
25
47
|
npx pressship status .
|
|
26
48
|
npx pressship info .
|
|
49
|
+
npx pressship info --remote
|
|
27
50
|
```
|
|
28
51
|
|
|
29
52
|
Use `status` to determine whether `publish` will target a pending submission reupload or an approved SVN release.
|
|
53
|
+
Use `verify` when you need readme validation and Plugin Check without creating a zip.
|
|
30
54
|
|
|
31
55
|
## Local Playground Test
|
|
32
56
|
|
|
@@ -45,9 +69,15 @@ npx pressship demo . --reset
|
|
|
45
69
|
npx pressship demo . --skip-browser
|
|
46
70
|
```
|
|
47
71
|
|
|
48
|
-
## Package
|
|
72
|
+
## Verify And Package
|
|
49
73
|
|
|
50
|
-
|
|
74
|
+
Run the publishing checks without creating a zip:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npx pressship verify .
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Create a validated WordPress-installable zip without uploading:
|
|
51
81
|
|
|
52
82
|
```bash
|
|
53
83
|
npx pressship pack .
|
|
@@ -59,7 +89,14 @@ For projects with bulky assets or source-only files, pass explicit ignores:
|
|
|
59
89
|
npx pressship pack . --ignore "assets/**" --ignore "src/**" --ignore "node_modules/**"
|
|
60
90
|
```
|
|
61
91
|
|
|
62
|
-
|
|
92
|
+
`pack`, `publish`, `submit`, and SVN `release` verify by default. If the user explicitly chooses to bypass checks, use the unified flag:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
npx pressship pack . --no-verify
|
|
96
|
+
npx pressship publish . --no-verify
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Inspect package file count and included paths. Make sure the ZIP contains runtime PHP, built assets, `readme.txt`, and any required examples or static assets. Confirm `.pressship-svn` is never included.
|
|
63
100
|
|
|
64
101
|
## Submit Or Reupload Pending Review
|
|
65
102
|
|
|
@@ -111,6 +148,18 @@ npx pressship status .
|
|
|
111
148
|
|
|
112
149
|
Use this only when the plugin is already approved and the user wants a WordPress.org release.
|
|
113
150
|
|
|
151
|
+
For an existing WordPress.org plugin, the normal SVN-based edit flow is:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
npx pressship get my-plugin ./my-plugin
|
|
155
|
+
cd ./my-plugin
|
|
156
|
+
npx pressship version patch
|
|
157
|
+
npx pressship publish --release --dry-run -y
|
|
158
|
+
npx pressship publish --release -y
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Pressship treats the SVN checkout root as the project root and edits `trunk/`. It should stop with "No version change detected" if the target tag already exists.
|
|
162
|
+
|
|
114
163
|
Dry run first:
|
|
115
164
|
|
|
116
165
|
```bash
|
|
@@ -130,6 +179,8 @@ npx pressship release . --slug my-plugin --username WpOrgUser --dry-run
|
|
|
130
179
|
npx pressship release . --slug my-plugin --username WpOrgUser -y
|
|
131
180
|
```
|
|
132
181
|
|
|
182
|
+
If `svn` is missing, let Pressship detect the OS and offer installation, or pass `--no-install-svn` only when the user wants manual setup. If the SVN password is missing, Pressship points to the user's WordPress.org SVN password page and saves the generated password locally after they provide it.
|
|
183
|
+
|
|
133
184
|
## Version Bumps
|
|
134
185
|
|
|
135
186
|
Only run version bumps when the user asks:
|
|
@@ -147,7 +198,9 @@ After a version bump, review changed plugin headers, `readme.txt` stable tag, an
|
|
|
147
198
|
Always include:
|
|
148
199
|
|
|
149
200
|
- Whether a dry run was run.
|
|
201
|
+
- Whether `verify` ran and whether validation was bypassed.
|
|
150
202
|
- Package size and notable included/excluded files.
|
|
151
203
|
- Plugin Check result summary.
|
|
152
204
|
- Upload/release status and slug.
|
|
205
|
+
- SVN checkout/tag status for approved releases.
|
|
153
206
|
- Whether git was left untouched or changed.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pressship",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"description": "Submit and release WordPress.org plugins from the command line.",
|
|
5
5
|
"homepage": "https://pressship.org",
|
|
6
6
|
"bin": {
|
|
@@ -21,9 +21,10 @@
|
|
|
21
21
|
"build": "tsc -p tsconfig.json",
|
|
22
22
|
"browsers:install": "playwright install chromium",
|
|
23
23
|
"dev": "tsx src/cli.ts",
|
|
24
|
-
"docs
|
|
25
|
-
"docs:
|
|
26
|
-
"docs:
|
|
24
|
+
"check-docs": "node -e \"const fs=require('fs');if(!fs.existsSync('website/node_modules')){console.error('\\x1b[31mError: Please run \\x1b[33mnpm install --prefix website\\x1b[31m first.\\x1b[0m');process.exit(1)}\"",
|
|
25
|
+
"docs:build": "npm run check-docs && npm run build --prefix website",
|
|
26
|
+
"docs:dev": "npm run check-docs && npm run start --prefix website",
|
|
27
|
+
"docs:serve": "npm run check-docs && npm run serve --prefix website",
|
|
27
28
|
"test": "vitest run",
|
|
28
29
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
29
30
|
},
|
|
@@ -55,7 +55,7 @@ class Pressship_WP_CLI_Command {
|
|
|
55
55
|
$npx = getenv( 'PRESSSHIP_NPX' ) ?: self::default_npx_binary();
|
|
56
56
|
$package = getenv( 'PRESSSHIP_NPX_PACKAGE' ) ?: self::default_npx_package();
|
|
57
57
|
$argv = array_merge(
|
|
58
|
-
array( $npx, '--yes', $package ),
|
|
58
|
+
array( $npx, '--yes', '--prefix', self::npx_prefix_dir(), '--package', $package, 'pressship' ),
|
|
59
59
|
array_values( $args ),
|
|
60
60
|
self::assoc_args_to_argv( $assoc_args )
|
|
61
61
|
);
|
|
@@ -146,6 +146,20 @@ class Pressship_WP_CLI_Command {
|
|
|
146
146
|
return 'pressship';
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
+
/**
|
|
150
|
+
* Isolated npm prefix so npx does not resolve a same-named local workspace.
|
|
151
|
+
*
|
|
152
|
+
* @return string
|
|
153
|
+
*/
|
|
154
|
+
private static function npx_prefix_dir() {
|
|
155
|
+
$directory = rtrim( sys_get_temp_dir(), DIRECTORY_SEPARATOR ) . DIRECTORY_SEPARATOR . 'pressship-wp-cli-npx';
|
|
156
|
+
if ( ! is_dir( $directory ) ) {
|
|
157
|
+
mkdir( $directory, 0700, true );
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return $directory;
|
|
161
|
+
}
|
|
162
|
+
|
|
149
163
|
/**
|
|
150
164
|
* Detect Windows without depending on WP-CLI utils.
|
|
151
165
|
*
|