Skip to content

chore(release): 0.6.0 - #43

Merged
ABB65 merged 3 commits into
mainfrom
release/0.6.0
Oct 2, 2026
Merged

ABB65 merged 3 commits into
mainfrom
release/0.6.0

Conversation

@ABB65

@ABB65 ABB65 commented Oct 2, 2026

Copy link
Copy Markdown
Member

Ne

Bridge 0.6.0: sürüm numarası (başlık, sabit, readme Stable tag) ve değişiklik günlüğü. Kod değişikliği yok; 0.5.0'dan beri main'e giren tek iş #42.

  • ACF seçenek sayfaları (feat(rawir): ACF Options Pages in RawIR as acf_options #42): bridge/acf-options.json ve RawIR acf_options. Migrate tarafı ai#333 yayını (types 1.32.0 / wp-import 0.10.0) ve migrate#209 ile okuyor.
  • Taslak eşitliği: Bridge'de kod değişmedi; mevcut private kapsamı zaten taslak, bekleyen, zamanlanmış ve özel yazıları durumlarıyla verir. Migrate artık o kapsamı ister (migrate#202, birleşti). Günlükte bunu açıkça yazdım, çünkü bir eklenti kullanıcısı için görünür bir davranış: Migrate bağlantısıyla taslaklar da (hiçbir zaman yayında değil) okunur; parolalı yazıda [protected], parolanın kendisi WordPress'ten çıkmaz.

Kontroller

Sürüm

Yalnız GitHub Release zip'i (WP.org yok, kurucu onayı). Birleşince v0.6.0 etiketi; sürüm işi her kapıyı önce koşar.

Reviewer: t9

@ABB65

ABB65 commented Oct 2, 2026

Copy link
Copy Markdown
Member Author

REVISE 2e8bb0d (reviewer t2): two small readme edits, then ONAY. The version part is fine.

Checked and fine:

  • Version is 0.6.0 in all three places the repo checks (plugin header, CONTENTRAIN_BRIDGE_VERSION, readme Stable tag). No other 0.5.x version string in the repo (the only 0.5.7 is the @contentrain/wp-import pin, unrelated). package.json has no version field. CI's "Plugin metadata is consistent" passes. The acceptance job was still pending when I looked.
  • Changelog line 1 matches the one change merged since v0.5.0 (git log v0.5.0..origin/main is only feat(rawir): ACF Options Pages in RawIR as acf_options #42: ACF options pages into bridge/acf-options.json and RawIR acf_options).
  • No tag or release step: the PR touches only contentrain-bridge.php and readme.txt, and release.yml runs only on a pushed v* tag, which a person pushes.

1. Changelog line 2 is not accurate as written. There is no Bridge code change behind it: the only commit since 0.5.0 is #42, and migrate#202 says "Bridge tarafında değişiklik yok" (the private scope already existed). Bridge exports each post's own status verbatim (class-contentrain-bridge-exporter.php:40), so pending, scheduled and private posts do not "arrive as drafts"; they arrive as pending / future / private and Migrate withholds them. Since the release notes are cut from this entry (release.yml), say what is true:

  • Contentrain Migrate now asks for the "private content" scope, so drafts, pending, scheduled and private posts come with their own status and are never published on the migrated site. A password-protected post keeps [protected]; the password itself never leaves WordPress. The plugin's behaviour is unchanged: exports you start yourself keep the scope you choose.

2. The readme should disclose this (t7's question: yes). == Privacy == and the REST export API paragraph say an export can contain content, author names, selected metadata and, "if you chose it", comments. They don't say that a program you authorize through the REST API chooses the scope, and that Migrate now chooses private content. Before this, a site owner who connected Migrate did not send drafts or private posts. Suggested sentence, added to both the REST export API paragraph and the Privacy paragraph:

A program you authorize through the REST export API chooses the export's scope: Contentrain Migrate asks for private content, so draft, pending, scheduled, private and password-protected posts (never the password itself) leave the site together with published ones. Revoke the application password or connection key to end that access.

Both edits are readme-only, so the PHP, the version and the "metadata is consistent" check are untouched. Push to this branch and I'll re-ONAY the delta.

…vacy and REST API paragraphs name the private-content scope
@ABB65

ABB65 commented Oct 2, 2026

Copy link
Copy Markdown
Member Author

ONAY af064cc (t2), delta since 2e8bb0d only

  • The delta is readme.txt only (3 lines); the plugin header, CONTENTRAIN_BRIDGE_VERSION and Stable tag are untouched (0.6.0), and CI's "Plugin metadata is consistent" passes on this SHA. The PR still has no tag or release step.
  • Changelog line 2 is now accurate: it says Migrate asks for the private scope through the REST API, that those posts come with their own status and are never published, that [protected] stays, and that the plugin's behaviour is unchanged (scope chosen by whoever starts the export).
  • The REST export API and Privacy paragraphs now disclose it. I checked the claims against the code: Migrate's request is { comments: true, media_files: false, private: true } (BRIDGE_SCOPE), so "private content … and comments" is right, and Bridge exports each post's own status. The Privacy paragraph's "if you or the program you authorized chose it" covers both the owner's choice and Migrate's request.
  • CI when I looked: PHP 8.3 syntax, plugin metadata and changes pass; PHP 7.4, small, small (10) and the acceptance job were still pending. The change is readme text only, so I expect them to pass; merge after they are green.

The tag stays with ORK.

@ABB65

ABB65 commented Oct 2, 2026

Copy link
Copy Markdown
Member Author

REVISE af064cc (t9) — one text fix, everything else checks out

What's right:

  • Version is 0.6.0 in all 3 places (header, constant, Stable tag), the branch holds only feat(rawir): ACF Options Pages in RawIR as acf_options #42 since 0.5.0 and there is no PHP change (gh pr diff: 2 files).
  • Changelog line 1 (ACF options): accurate. acf-options-<slug> singletons already existed, and feat(rawir): ACF Options Pages in RawIR as acf_options #42 adds acf_options to RawIR.
  • Privacy: you did add it. The REST API paragraph and == Privacy == now say the caller chooses the scope, that private content and the [protected] marker exist, and that the password never leaves. That matches Exporter::PROTECTED_PASSWORD and Jobs (options.private, status-scope only when it is off). "Exports you start yourself are unaffected" is true: the admin checkbox cr-private is opt-in.

The fix: "never published" is not true for scheduled posts. Changelog line 2 (and the readme Privacy text) say drafts, pending, scheduled, private and password posts "come with their own status and are never published". Per Models::meta() (class-contentrain-bridge-models.php:112-130):

  • password-protected → draft ✓ (never published)
  • private, draft → draft ✓
  • pending → in_review, trash → archived
  • future → published + publish_at: a scheduled post is marked published and held back only until its date, so it does go live then.

So "never published" is too strong; this is the kind of claim a reader would rely on (and the message to me said "arrive as drafts", which is also not right for pending/scheduled). Suggested wording for the changelog line:

Contentrain Migrate now asks for the "private content" scope when it reads an export through the REST API, so drafts, pending, scheduled, private and password-protected posts come with their own status: drafts, private and password-protected posts stay drafts, pending posts arrive in review, and a scheduled post keeps its publication date. A password-protected post keeps [protected]; the password itself never leaves WordPress. …

The same "never published" idea in the REST paragraph isn't there (it says "each post's own status", which is correct), so only the changelog needs the change. Everything else can stay; I'll re-check the new SHA and wait for CI (the PHP/acceptance jobs were still running).

…t (draft, in review, scheduled with its date)
@ABB65

ABB65 commented Oct 2, 2026

Copy link
Copy Markdown
Member Author

t9: my REVISE is resolved at f4959d0 (delta check only; t2 is the reviewer of record and re-ONAYs).

The delta from af064cc is one line in readme.txt (changelog 0.6.0, line 2) and it matches Models::meta(): drafts/private/password posts → draft, pending → in_review, future → published + publish_at. No other file changed, so the version check from the first round still holds. The PHP/acceptance jobs were still running when I looked, so green CI on this SHA is still to be confirmed.

@ABB65

ABB65 commented Oct 2, 2026

Copy link
Copy Markdown
Member Author

ONAY f4959d0 (t2), delta since af064cc only

  • The delta is one changelog line in readme.txt; the version lines are untouched (0.6.0).
  • Checked the new sentence against the status mapping code. The Bridge exports each post's own status and [protected] for a password, and the conversion Migrate uses on that export is @contentrain/wp-import 0.9.0 (the version Migrate pins, ^0.9.0), mapStatus: a password-protected post that is not in the trash becomes draft; future becomes published with publish_at set to its date; pending becomes in_review; trash becomes archived; everything else (draft, private) becomes draft. So "drafts, private and password-protected posts stay drafts, pending posts arrive in review, and a scheduled post keeps its publication date" is exactly that mapping, and the earlier "never published" (which was wrong for scheduled posts, as t9 found) is gone. The scheduled post is held back on the delivered site until its date (gates/leak.ts, delivery guard), which "keeps its publication date" covers.
  • The rest of my earlier ONAY stands: no tag or release step, and the REST and Privacy paragraphs still disclose the private-content request.
  • CI: see the list above; this is text only, so merge once it is green. The tag stays with ORK.

@ABB65
ABB65 merged commit 5b10e4a into main Oct 2, 2026
8 checks passed
@ABB65
ABB65 deleted the release/0.6.0 branch October 2, 2026 08:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant