Skip to content

Add release notes for 5.0.0 - #1978

Draft
alhambrav wants to merge 61 commits into
craftersoftware:masterfrom
alhambrav:rn-5-0-0
Draft

Add release notes for 5.0.0#1978
alhambrav wants to merge 61 commits into
craftersoftware:masterfrom
alhambrav:rn-5-0-0

Conversation

@alhambrav

Copy link
Copy Markdown
Contributor

Ticket reference or full description of what's in the PR

Add release notes for 5.0.0

@alhambrav

Copy link
Copy Markdown
Contributor Author

@alhambrav

Copy link
Copy Markdown
Contributor Author

@alhambrav

Copy link
Copy Markdown
Contributor Author
  • commit f55324a Add breaking change the Spring profile crafter_studio_externalDb and merge with master

@coderabbitai

coderabbitai Bot commented Sep 11, 2025

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Bumps docs to 5.0.0: adds 5.0.0 release notes and 5.x breaking-changes, removes many 4.x release-note files, updates Sphinx metadata and support matrix, migrates publishing blacklist to pathspecs, renames publish-related permissions/APIs, and simplifies upgrade guides and script names to .sh.

Changes

Release & upgrade docs (5.0.0)

Layer / File(s) Summary
Add language guide edits
source/by-role/developer/common/adding-a-new-language.rst
Rewrites steps, uses studio-config-override.yaml for availableLanguages, updates ui/app/src/utils/i18n.ts ImportsLookup, adds ja.json example and template/runtime import snippet, updates legacy bundle registration examples.
Sphinx/site metadata & top-level pages
source/conf.py, source/index.rst, source/support.rst, source/contribute/acknowledgements.rst
Bump release/:last-updated: to 5.0.0, update "Latest Release" text and support matrix entries.
Release notes: add 5.0.0
source/release-notes/5-0-0.rst
Add full 5.0.0 release notes covering new publishing system, Studio v2 APIs, UI refactors, FE API changes, controller script model, and dependency highlights.
Breaking changes: 5.x
source/release-notes/5-x-breaking-changes.rst
Document 5.x breaking changes: removed Spring profile, deprecated endpoints, publishing blacklist migration, controller.groovy upgrade behavior, and permission renames/removals; provide Engine Get Item replacement example.
Release-notes index & cleaning 4.x files
source/release-notes/index.rst, source/release-notes/...
Replace multiple 4.x includes with a single 5.0.0 include; remove many 4.x release-note files and the 4.x breaking-changes doc.
Publishing blacklist & studio config
source/reference/modules/studio.rst
Switch studio.configuration.publishing.blacklist.regexstudio.configuration.publishing.blacklist.pathspecs, add git pathspec guidance and note .keep ignored.
Permissions & API docs
source/includes/available-permissions-path-scope.rst, source/includes/available-permissions-project-scope.rst
Rename and add publish-related permissions (publish_approve/request/reject, publish_cancel, publish_get_queue), update API references and examples.
Upgrade index & supported paths
source/by-role/system-admin/upgrade/index.rst
Set :last-updated: to 5.0.0, change supported upgrade paths to target 5.0 (drop 3.1.x), remove MongoDB-specific upgrade section.
Search & cluster upgrade simplification
source/by-role/system-admin/upgrade/upgrading-search.rst, .../upgrading-cluster.rst
Remove 3.1.x/ES6 upgrade steps and upgrade-search.sh guidance; focus search upgrades on 4.0.x (ES 7.15) and post-upgrade index rebuild.
Server upgrade: scripts, examples, and outputs
source/by-role/system-admin/upgrade/upgrading-server.rst
Standardize script names (upgrade-target.sh, start-upgrade.sh, post-upgrade.sh), update examples to 4.4.4 → 5.0.0, add embedded DB upgrade check in startup sample, and update upgrade manager log example to upgrade.StudioUpgradeManagerImpl.
Engine & Studio editorial updates
source/reference/modules/engine.rst, source/reference/modules/studio.rst
Remove historical header-prefix notes, update migration guidance (Crafter Profile → SAML2/use authToken), and clarify sandbox/blacklist notes.

Sequence Diagram(s)

sequenceDiagram
  participant Admin as System Admin
  participant Archive as New Binary Archive
  participant Install as Current Install
  participant Scripts as Upgrade Scripts
  participant Services as Server/Services
  participant Logger as StudioUpgradeManagerImpl

  Admin->>Archive: optionally extract/download new 5.0.0 bundle
  Admin->>Install: stop services (Tomcat / Deployer)
  Admin->>Scripts: run `upgrade-target.sh` / `start-upgrade.sh`
  Scripts->>Install: migrate binaries/configs, run preflight
  Scripts->>Services: execute `post-upgrade.sh` (rebuild indices, repo adjustments)
  Services->>Logger: "Check for upgrades ..." log lines
  Logger->>Admin: report completion/status
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • sumerjabri
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description only contains 'Add release notes for 5.0.0', which duplicates the title and provides no additional context, reasoning, or technical details about the changeset. Expand the description to explain the scope of release notes added, key features/breaking changes documented, and rationale for removing older release notes (4.2.0-4.4.4 and 4-x-breaking-changes).
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add release notes for 5.0.0' directly and clearly describes the main change: adding comprehensive release notes for CrafterCMS version 5.0.0, which is the primary objective of this PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@alhambrav

Copy link
Copy Markdown
Contributor Author

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (6)
source/support.rst (1)

25-29: Replace TBDs with actual release info before merge.
Fill “Released” and “Latest” cells once finalized to avoid publishing placeholders.

If helpful, I can wire these values to a single place (e.g., conf.py) to avoid future drift. Want me to propose that change?

source/conf.py (1)

154-154: Add 5 to the versions switcher.

To surface 5.x explicitly in the footer menu, include “5” alongside “current.”

-    'versions': ['current', '4', '4.1', '4.0', '3.1'],
+    'versions': ['current', '5', '4', '4.1', '4.0', '3.1'],
source/release-notes/5-x-breaking-changes.rst (2)

20-21: Call out migration guidance for removed Spring profile.

Add a short note on what replaces crafter_studio_externalDb or link to the setup page for external DB configuration in 5.x.


56-73: Cross-link to the authoritative configuration section.

Add a reference to the “Publishing Blacklist” section so readers can jump to details.

- - Publishing blacklist configuration has been changed. |br|
+ - Publishing blacklist configuration has been changed. See :ref:`publishing-blacklist`. |br|
source/release-notes/5-0-0.rst (1)

124-128: Deduplicate entry for PackageDetailsDialog packageId type.

The same change is listed twice.

-  - ``PackageDetailsDialog``: Updated ``packageId`` prop to be of type ``number``.
...
-  - ``PackageDetailsDialog``: Update ``packageId`` prop to be of type ``number``.
+  - ``PackageDetailsDialog``: Updated ``packageId`` prop to be of type ``number``.
source/release-notes/index.rst (1)

9-15: Include a pointer to 5.x breaking changes.

Add a short line under the intro or right after the 5.0.0 include to guide readers to the breaking changes page.

 .. include:: /release-notes/5-0-0.rst
+
+.. note:: See also :ref:`breaking-changes-5-x` for 5.x breaking changes.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5361a6c and de16ce9.

📒 Files selected for processing (20)
  • source/by-role/system-admin/upgrade/upgrading-server.rst (1 hunks)
  • source/conf.py (3 hunks)
  • source/contribute/acknowledgements.rst (1 hunks)
  • source/index.rst (2 hunks)
  • source/reference/modules/studio.rst (2 hunks)
  • source/release-notes/4-2-0.rst (0 hunks)
  • source/release-notes/4-2-2.rst (0 hunks)
  • source/release-notes/4-3-0.rst (0 hunks)
  • source/release-notes/4-3-1.rst (0 hunks)
  • source/release-notes/4-3-2.rst (0 hunks)
  • source/release-notes/4-4-0.rst (0 hunks)
  • source/release-notes/4-4-1.rst (0 hunks)
  • source/release-notes/4-4-2.rst (0 hunks)
  • source/release-notes/4-4-3.rst (0 hunks)
  • source/release-notes/4-4-4.rst (0 hunks)
  • source/release-notes/4-x-breaking-changes.rst (0 hunks)
  • source/release-notes/5-0-0.rst (1 hunks)
  • source/release-notes/5-x-breaking-changes.rst (1 hunks)
  • source/release-notes/index.rst (1 hunks)
  • source/support.rst (2 hunks)
💤 Files with no reviewable changes (11)
  • source/release-notes/4-3-0.rst
  • source/release-notes/4-4-1.rst
  • source/release-notes/4-4-2.rst
  • source/release-notes/4-3-1.rst
  • source/release-notes/4-2-2.rst
  • source/release-notes/4-4-3.rst
  • source/release-notes/4-4-4.rst
  • source/release-notes/4-3-2.rst
  • source/release-notes/4-4-0.rst
  • source/release-notes/4-2-0.rst
  • source/release-notes/4-x-breaking-changes.rst
🔇 Additional comments (11)
source/contribute/acknowledgements.rst (1)

2-2: LGTM on metadata bump to 5.0.0.
Matches the 5.0.0 docs alignment.

source/by-role/system-admin/upgrade/upgrading-server.rst (1)

68-68: Tighten wording; anchor verified
Avoid the duplicated "to" — apply the suggested rephrase. The :ref:breaking changes <breaking-changes-5-x> anchor exists at source/release-notes/5-x-breaking-changes.rst:5.

source/support.rst (1)

2-2: LGTM on last-updated 5.0.0.
Consistent with the 5.0.0 docs update.

source/reference/modules/studio.rst (1)

2-2: Version bump looks good.

No further action.

source/conf.py (2)

32-32: Release set to 5.0.0 — OK.

Matches the PR intent and extlinks usage.


296-303: Javadoc base/version linkage — OK.

extlinks['javadoc_base_url'] correctly derives from release.

source/release-notes/5-0-0.rst (2)

7-7: Replace “Released TBD” with the actual release date before publishing.

This blocks release.


171-173: Verify replacement endpoints (duplicated target).

“Removed workflow/publish and workflow/requestPublish, replaced by publishing/publish and publishing/publish” has a duplicated replacement. Confirm the second should be a different endpoint (e.g., publishing/calculate or workflow/approve), then correct.

source/index.rst (1)

78-78: Release blurb OK.

Matches the 5.0.0 update elsewhere.

source/release-notes/index.rst (2)

2-2: Version stamp OK.

No issues.


18-21: Cross-version link looks good.

Linking to “4 Release Notes” via docs_base_url is consistent with extlinks config.

Comment thread source/index.rst Outdated
Comment thread source/reference/modules/studio.rst
Comment thread source/support.rst Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

♻️ Duplicate comments (1)
source/index.rst (1)

2-2: Front-matter version bump looks correct; prior merge conflict resolved.
Last-updated now reads 5.0.0 and no conflict markers remain.

🧹 Nitpick comments (1)
source/index.rst (1)

80-80: Pin Docker tag to 5.0.0 for reproducibility.
Using :latest can drift after future releases.

-    docker run -p 8080:8080 craftercms/authoring_local:latest
+    docker run -p 8080:8080 craftercms/authoring_local:5.0.0
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between de16ce9 and a76504e.

📒 Files selected for processing (4)
  • source/index.rst (2 hunks)
  • source/release-notes/5-0-0.rst (1 hunks)
  • source/release-notes/5-x-breaking-changes.rst (1 hunks)
  • source/support.rst (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • source/support.rst
  • source/release-notes/5-x-breaking-changes.rst
🔇 Additional comments (4)
source/release-notes/5-0-0.rst (4)

7-7: Replace “Released TBD” with the actual release date before merging.
Avoid shipping placeholders in published docs.

-Released *TBD*
+Released *YYYY-MM-DD*  <!-- replace with the actual 5.0.0 release date -->

23-44: Validate API doc anchors/links resolve.
Several :base_url: links depend on generated anchors; case or path mismatches will 404 in built docs. Please run link checks before merging.

Would you confirm these with your Sphinx linkcheck job (or locally with “make linkcheck”) and fix any broken anchors?


171-171: Double-check replacement services text.
Both removed endpoints are listed as replaced by the same publishing/publish. If that’s intentional, add a brief note; if not, correct the second replacement (perhaps publishing/requestPublish?).


220-225: Sanity-check external references before publishing.
Verify the GitHub project link for “5.0.0” and the cross-ref compatibility-with-3.1.x still exist after the 5.x doc reorg.

Comment thread source/release-notes/5-0-0.rst Outdated
Comment thread source/release-notes/5-0-0.rst Outdated
Comment thread source/release-notes/5-0-0.rst Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (3)
source/release-notes/5-0-0.rst (3)

117-117: Typo: "by" → "with" for consistency with correct prop replacement.

The sentence mentions replacing the styles prop "Replaced by sxs prop." but this should be "Replaced with sxs prop." for grammatical consistency.

-  - Removed ``styles`` prop from ``ErrorState``, ``ApiResponseErrorState``, ``BlueprintForm``, ``LoadingState``, ``ConfirmDialog``, ``AlertDialog``, ``LauncherSection``, ``AceEditor``, ``ItemDisplay``, ``PasswordRequirementsDisplay``, ``PublishDialogForm``, ``ItemStateIcon``, ``ResizeableDrawer``, ``GlobalAppToolbar``, ``ViewToolbar``, ``PublishingStatusAvatar``, ``ItemPublishingTargetIcon`` and ``EmptyState``. Replaced by ``sxs`` prop.
+  - Removed ``styles`` prop from ``ErrorState``, ``ApiResponseErrorState``, ``BlueprintForm``, ``LoadingState``, ``ConfirmDialog``, ``AlertDialog``, ``LauncherSection``, ``AceEditor``, ``ItemDisplay``, ``PasswordRequirementsDisplay``, ``PublishDialogForm``, ``ItemStateIcon``, ``ResizeableDrawer``, ``GlobalAppToolbar``, ``ViewToolbar``, ``PublishingStatusAvatar``, ``ItemPublishingTargetIcon`` and ``EmptyState``. Replaced with ``sxs`` prop.

137-137: Missing closing backticks for prop name formatting.

The prop name onContentTypeSelected is missing proper RST inline code formatting with closing backticks.

-    - Prop ``onContentTypeSelected`` changed its signature from sending an object with ``authoringBase``, ``path``, ``isNewContent``, ``contentTypeId``, ``onSaveSuccess`` to ``{ path: string; contentType: ContentType }``
+    - Prop ``onContentTypeSelected`` changed its signature from sending an object with ``authoringBase``, ``path``, ``isNewContent``, ``contentTypeId``, ``onSaveSuccess`` to ``{ path: string; contentType: ContentType }``

189-189: Fix unbalanced backticks for inline code formatting.

The items property has unbalanced backticks that will render incorrectly in RST.

-      - ``items`` is now of type ``PublishingItem[]``.
+      - ``items`` is now of type ``PublishingItem[]``.
🧹 Nitpick comments (1)
source/release-notes/5-0-0.rst (1)

7-7: Update TBD placeholder with actual release date.

The release date is marked as "TBD" (To Be Determined). Since this is a release notes document, consider updating this with the actual release date when available.

-Released *TBD*
+Released *[ACTUAL_RELEASE_DATE]*
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a76504e and a8e0438.

📒 Files selected for processing (1)
  • source/release-notes/5-0-0.rst (1 hunks)
🔇 Additional comments (1)
source/release-notes/5-0-0.rst (1)

1-228: Overall document structure and content are comprehensive.

The release notes document is well-structured and comprehensive, covering all major areas including new features, enhancements, UI changes, and bug fixes. The categorization is clear and the technical details are appropriately detailed for a major version release.

Comment thread source/release-notes/5-0-0.rst Outdated
@alhambrav

Copy link
Copy Markdown
Contributor Author

Update new APIs in list and removed APIs commits: 880fc37 3a64d54 76c14de
craftersoftware/craftercms#7542

@alhambrav

Copy link
Copy Markdown
Contributor Author

commit: 7e8200f
Updates for new content type APIS: craftersoftware/craftercms#8636

@alhambrav

Copy link
Copy Markdown
Contributor Author

@CodeRabbit review

@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
source/by-role/developer/common/adding-a-new-language.rst (1)

73-81: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Array should include 'ko' instead of 'kr' after localeCode replacement.

The localeCode.replace('kr', 'ko') on line 74 converts 'kr' to 'ko', but the subsequent array check on line 78 still includes 'kr' instead of 'ko'. This means that when a user with Korean locale ('kr') loads the UI, the code will:

  1. Replace 'kr' with 'ko' (line 74)
  2. Check if 'ko' is in ['de', 'es', 'kr', 'ja'] (line 78)
  3. Fail the check because 'ko' is not in the array

This will prevent Korean translations from being fetched.

🔧 Proposed fix
     async function createIntlInstance(localeCode: string): Promise<IntlShape> {
       localeCode = localeCode.replace('kr', 'ko');
       if (
         !fetchedLocales[localeCode] &&
         // Nothing to fetch point if we don't have the locale
-        ['de', 'es', 'kr', 'ja'].includes(localeCode)
+        ['de', 'es', 'ko', 'ja'].includes(localeCode)
       ) {
         let fetchedTranslations = await fetchLocale(localeCode as BundledLocaleCodes);
         ...
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@source/by-role/developer/common/adding-a-new-language.rst` around lines 73 -
81, In createIntlInstance, after you normalize localeCode with
localeCode.replace('kr','ko'), update the hard-coded allowed-locale array used
in the fetchedLocales check to include 'ko' instead of 'kr' (e.g., change
['de','es','kr','ja'] to ['de','es','ko','ja']) so that the subsequent condition
correctly triggers fetchLocale(localeCode as BundledLocaleCodes) for Korean;
ensure you update the array referenced in the fetchedLocales check near the
fetchedTranslations call.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@source/by-role/developer/common/adding-a-new-language.rst`:
- Around line 73-81: In createIntlInstance, after you normalize localeCode with
localeCode.replace('kr','ko'), update the hard-coded allowed-locale array used
in the fetchedLocales check to include 'ko' instead of 'kr' (e.g., change
['de','es','kr','ja'] to ['de','es','ko','ja']) so that the subsequent condition
correctly triggers fetchLocale(localeCode as BundledLocaleCodes) for Korean;
ensure you update the array referenced in the fetchedLocales check near the
fetchedTranslations call.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 6328cf22-9005-4cc8-aab7-fb3fbc6261d1

📥 Commits

Reviewing files that changed from the base of the PR and between df61fd5 and 0277dd5.

📒 Files selected for processing (14)
  • source/by-role/developer/common/adding-a-new-language.rst
  • source/by-role/developer/upgrade/index.rst
  • source/by-role/system-admin/upgrade/index.rst
  • source/by-role/system-admin/upgrade/upgrading-cluster.rst
  • source/by-role/system-admin/upgrade/upgrading-search.rst
  • source/by-role/system-admin/upgrade/upgrading-server.rst
  • source/contribute/acknowledgements.rst
  • source/index.rst
  • source/reference/modules/engine.rst
  • source/reference/modules/studio.rst
  • source/release-notes/5-0-0.rst
  • source/release-notes/5-x-breaking-changes.rst
  • source/release-notes/index.rst
  • source/support.rst
✅ Files skipped from review due to trivial changes (6)
  • source/by-role/developer/upgrade/index.rst
  • source/contribute/acknowledgements.rst
  • source/index.rst
  • source/release-notes/5-x-breaking-changes.rst
  • source/release-notes/5-0-0.rst
  • source/release-notes/index.rst
🚧 Files skipped from review as they are similar to previous changes (7)
  • source/reference/modules/engine.rst
  • source/by-role/system-admin/upgrade/index.rst
  • source/by-role/system-admin/upgrade/upgrading-cluster.rst
  • source/by-role/system-admin/upgrade/upgrading-server.rst
  • source/by-role/system-admin/upgrade/upgrading-search.rst
  • source/reference/modules/studio.rst
  • source/support.rst

@alhambrav

alhambrav commented Aug 12, 2026

Copy link
Copy Markdown
Contributor Author

commit f024528: Add new item order API to release notes craftersoftware/craftercms#8731

@sumerjabri

Copy link
Copy Markdown
Contributor

@alhambrav, this seems to have become more than release notes. I see other things in there.

I think it's best if the new Form Engine stuff and non-release-note items flow in their own PR with a "hold" for the v5 release tag/note and are kept as a draft rather than mixing concerns.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants