Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 73 additions & 5 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

### Main Build Commands
- `./gradlew assembleWordPressVanillaDebug` - Build debug APK for WordPress app
- `./gradlew assembleJetpackVanillaDebug` - Build debug APK for Jetpack app
- `./gradlew assembleJetpackVanillaDebug` - Build debug APK for Jetpack app
- `./gradlew installWordPressVanillaDebug` - Install debug APK to connected device
- `./gradlew installJetpackVanillaDebug` - Install debug APK for Jetpack to device

Expand Down Expand Up @@ -38,7 +38,7 @@ This repository builds two apps from shared codebase:
├── WordPress/ # Main app module
├── libs/
│ ├── fluxc/ # Networking and data layer (FluxC architecture)
│ ├── login/ # Shared login functionality
│ ├── login/ # Shared login functionality
│ ├── editor/ # Block editor integration
│ ├── image-editor/ # Image editing functionality
│ ├── analytics/ # Analytics and tracking
Expand All @@ -61,7 +61,7 @@ WordPress/src/main/java/org/wordpress/android/
├── ui/ # UI layer organized by feature
│ ├── posts/ # Post creation and management
│ ├── reader/ # Content discovery and reading
│ ├── stats/ # Site analytics and statistics
│ ├── stats/ # Site analytics and statistics
│ ├── bloggingreminders/ # Posting reminders system
│ ├── comments/ # Comment management
│ ├── accounts/ # Authentication and signup
Expand All @@ -85,7 +85,7 @@ WordPress/src/main/java/org/wordpress/android/
### Code Quality Tools
- Android Code Style Guidelines with project-specific Checkstyle and Detekt rules
- **Checkstyle**: Java code style enforcement (`config/checkstyle.xml`)
- **Detekt**: Kotlin code analysis (`config/detekt/detekt.yml`)
- **Detekt**: Kotlin code analysis (`config/detekt/detekt.yml`)
- **Android Lint**: Built-in Android static analysis
- **Line Length**: 120 characters max
- **No FIXME**: Use TODO instead of FIXME in committed code
Expand All @@ -97,4 +97,72 @@ WordPress/src/main/java/org/wordpress/android/
- Remote build cache available for faster builds (requires setup)
- Fastlane used for release automation and testing
- Secrets managed via `secrets.properties` file (not in repo)
- Pre-commit hooks may modify files during commit
- Pre-commit hooks may modify files during commit

## Release Notes Compilation Process

### Overview
Process for compiling release notes for new versions, ensuring they meet Play Store character limits (under 500, preferably 350-400) and maintain the established playful tone.

### Step-by-Step Process

#### 1. Study Previous Release Notes Style
Use `gh` to fetch releases and analyze professional editorialization patterns:
- **Version 25.8**: Raw added in commits `8cd1b4cc268887b9e2de94fb19afc108b011f0da` & `93591923dd9a9c144729952ad0dfbc9306f69894`, editorialized in `8a7fc316cf0acfc2b88b1090e3ca148f2145fa92`
- **Version 25.9**: Raw added in `b4a292cc9c9a30823bfdf8e770479a68362ed500`, editorialized in `dad8fa582856758999c43384ccbe55f34b6d2e17`
- **Version 26.0**: Raw added in `a53234ea6b13adf18acac262ad985f94308191c6` & `63067fb7249cc860d44547bb0d1b8dee975dbe8e`, editorialized in `02854d67c42146e611f0f0dff9feb0fd48dc7fd8`

Commands: `gh release view 25.8`, `gh release view 25.9`, `gh release view 26.0` (note: no 'v' prefix)

#### 2. Verify Release Branch and Get Last Release Hash
- Verify current branch follows naming: `release/x.y` (where x.y = last_release + 0.1)
- Get commit hash for last release: `gh release view <last_version> --json tagName,targetCommitish`
- Confirm current branch is properly ahead of last release tag

#### 3. Identify Changes Since Last Release
Compare current release branch against last release hash:
```bash
git log <last_release_hash>..HEAD --oneline --no-merges
```
Focus on user-facing changes from squash commit messages. **Important**: When commit messages are unclear or technical, always investigate further:
- Use `gh pr view <PR_number>` to read PR titles and descriptions
- Look for keywords indicating user-facing changes: "feat:", new functionality, UI changes, user experience
- Be especially careful with feature rollouts that may have technical-sounding commit messages but represent new user functionality
- When in doubt, investigate the PR rather than excluding potentially important features

#### 4. Compile Raw Release Notes
Create factual summary including:
- **Always check RELEASE-NOTES.txt file** (note: hyphen, not underscore) for developer-authored release notes under the version number section. These notes start with `[*]`, `[**]`, or `[***]` (stars indicate importance) and **must be included** in the raw release notes
- Only user-facing changes (exclude CI, refactoring, technical debt)
- Prioritize: New features → Improvements → Performance enhancements
- Use positive language (avoid "bug fix", prefer "improved", "enhanced", "resolved")
- Include rough character counts to gauge condensation needed
- Mark changes as WordPress-specific, Jetpack-specific, or both

#### 5. User Confirmation
Present raw notes to user for:
- Accuracy verification
- WordPress vs Jetpack feature classification
- Any missing or incorrect changes
- Approval to proceed with editorialization

#### 6. Editorialization
Transform raw notes using established playful style:
- Keep under 350 characters (accounting for translation expansion)
- Use engaging, user-friendly language
- Reference previous release note styles from step 1
- Create separate versions for WordPress and Jetpack apps
- Focus on user benefits and experience improvements

#### 7. Update Release Notes Files
Once user confirms the editorialized release notes, **replace** the contents of the following files (discard any existing content):
- **WordPress release notes**: `WordPress/metadata/release_notes.txt`
- **Jetpack release notes**: `WordPress/jetpack_metadata/release_notes.txt`

Document any process refinements discovered during execution.

### Content Guidelines
- **Include**: New features, UI improvements, performance enhancements, user experience changes
- **Exclude**: CI changes, code refactoring, dependency updates, internal technical changes
- **Language**: Positive sentiment, avoid "fix" terminology, focus on improvements and enhancements
- **Priority Order**: New features → Improvements → Performance → Other user-facing changes
4 changes: 4 additions & 0 deletions RELEASE-NOTES.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
*** PLEASE FOLLOW THIS FORMAT: [<priority indicator, more stars = higher priority>] <description> [<PR URL>]

26.3
-----


26.2
-----

Expand Down
14 changes: 8 additions & 6 deletions WordPress/jetpack_metadata/PlayStoreStrings.po
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,14 @@ msgstr ""
"X-Generator: VsCode\n"
"Project-Id-Version: Jetpack - Apps - Android - Release Notes\n"

msgctxt "release_note_262"
msgid ""
"26.2:\n"
"- Connect your self-hosted sites to Jetpack with our new streamlined flow—available right from Stats and Notifications.\n"
"- We've added support for mentions in the experimental editor—tag your friends and collaborators with ease.\n"
"- Media selection just got more accessible for everyone.\n"
msgstr ""

msgctxt "release_note_261"
msgid ""
"26.1:\n"
Expand All @@ -19,12 +27,6 @@ msgid ""
"- Fixed various upload bugs and improved overall media handling.\n"
msgstr ""

msgctxt "release_note_260"
msgid ""
"26.0:\n"
"We’ve added Application Passwords authentication. It’s still experimental, but once it’s fully integrated, we’ll be able to improve existing features and introduce new ones. Rock on.\n"
msgstr ""

#. translators: Release notes for this version to be displayed in the Play Store. Limit to 500 characters including spaces and commas!
#. translators: Title to be displayed in the Play Store. Limit to 30 characters including spaces and commas!
msgctxt "play_store_app_title"
Expand Down
7 changes: 3 additions & 4 deletions WordPress/jetpack_metadata/release_notes.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
- New Subscribers screen shows all your email and Reader subscribers—now you know who's reading your content.
- Media now displays properly on private sites in the experimental editor.
- Enhanced media uploads with better authentication and improved performance.
- Fixed various upload bugs and improved overall media handling.
- Connect your self-hosted sites to Jetpack with our new streamlined flow—available right from Stats and Notifications.
- We've added support for mentions in the experimental editor—tag your friends and collaborators with ease.
- Media selection just got more accessible for everyone.
13 changes: 7 additions & 6 deletions WordPress/metadata/PlayStoreStrings.po
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ msgstr ""
"X-Generator: VsCode\n"
"Project-Id-Version: Release Notes & Play Store Descriptions\n"

msgctxt "release_note_262"
msgid ""
"26.2:\n"
"- We've added support for mentions in the experimental editor—tag your friends and collaborators with ease.\n"
"- Media selection just got more accessible for everyone.\n"
msgstr ""

msgctxt "release_note_261"
msgid ""
"26.1:\n"
Expand All @@ -18,12 +25,6 @@ msgid ""
"- Fixed various upload bugs and improved overall media handling.\n"
msgstr ""

msgctxt "release_note_260"
msgid ""
"26.0:\n"
"We’ve added Application Passwords authentication. It’s still experimental, but once it’s fully integrated, we’ll be able to improve existing features and introduce new ones. Rock on.\n"
msgstr ""

#. translators: Release notes for this version to be displayed in the Play Store. Limit to 500 characters including spaces and commas!
#. translators: Shorter Release notes for this version to be displayed in the Play Store. Limit to 500 characters including spaces and commas!
msgctxt "sample_post_content"
Expand Down
5 changes: 2 additions & 3 deletions WordPress/metadata/release_notes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
- Media now displays properly on private sites in the experimental editor.
- Enhanced media uploads with better authentication and improved performance.
- Fixed various upload bugs and improved overall media handling.
- We've added support for mentions in the experimental editor—tag your friends and collaborators with ease.
- Media selection just got more accessible for everyone.
22 changes: 15 additions & 7 deletions fastlane/resources/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -978,8 +978,6 @@
<string name="experimental_subscribers_feature_description">View and manage newsletter subscribers</string>
<string name="experimental_application_password_feature">Application Password log in</string>
<string name="experimental_application_password_feature_description">Enable Application Password to log into self-hosted sites</string>
<string name="experimental_jetpack_rest_connection">Experimental Jetpack REST Connection</string>
<string name="experimental_jetpack_rest_connection_description">Enable experimental Jetpack REST Connection flow</string>

<!-- Debug settings -->
<string name="preference_open_debug_settings" translatable="false">Debug Settings</string>
Expand Down Expand Up @@ -1009,23 +1007,29 @@

<!-- Jetpack REST Connection Screen -->
<string name="jetpack_rest_connection_title">Jetpack Connection</string>
<string name="jetpack_rest_connection_setup_title">Setting up Jetpack (Simulated)</string>
<string name="jetpack_rest_connection_setup_title">Setting up Jetpack</string>
<string name="jetpack_rest_connection_step_login_wpcom">Login to WordPress.com</string>
<string name="jetpack_rest_connection_step_install_jetpack">Install Jetpack plugin</string>
<string name="jetpack_rest_connection_step_connect_site">Connect your site</string>
<string name="jetpack_rest_connection_step_connect_wpcom">Connect to WordPress.com</string>
<string name="jetpack_rest_connection_step_connect_site">Connect site to WordPress.com</string>
<string name="jetpack_rest_connection_step_connect_user">Connect user to WordPress.com</string>
<string name="jetpack_rest_connection_step_finalize">Finalize setup</string>
<string name="jetpack_rest_connection_status_not_started">Not started</string>
<string name="jetpack_rest_connection_status_in_progress">In progress…</string>
<string name="jetpack_rest_connection_status_completed">Completed</string>
<string name="jetpack_rest_connection_status_failed">Failed</string>
<string name="jetpack_rest_connection_cancel_title">Cancel Jetpack Setup?</string>
<string name="jetpack_rest_connection_cancel_message">The Jetpack connection process is in progress. Are you sure you want to cancel?</string>
<string name="jetpack_rest_connection_error_jetpack_already_installed">Jetpack is already installed</string>
<string name="jetpack_rest_connection_error_timeout">Timed out</string>
<string name="jetpack_rest_connection_error_unknown" translatable="false">@string/error_generic</string>
<string name="jetpack_rest_connection_error_offline" translatable="false">@string/no_network_title</string>
<string name="jetpack_rest_connection_error_wpcom">Unable to connect to WordPress.com</string>
<string name="jetpack_rest_connection_error_login_wpcom">Unable to log into WordPress.com</string>
<string name="jetpack_rest_connection_error_connect_wpcom">Unable to connect to WordPress.com</string>
<string name="jetpack_rest_connection_error_install_jetpack">Install failed</string>
<string name="jetpack_rest_connection_error_install_jetpack_inactive">Jetpack installed but inactive</string>
<string name="jetpack_rest_connection_error_connect_site">Failed to connect to site</string>
<string name="jetpack_rest_connection_error_connect_user">Failed to connect user to WordPress.com</string>
<string name="jetpack_rest_connection_error_access_token">Access token missing</string>
<string name="jetpack_rest_connection_error_activate_stats">Failed to activate stats</string>

<!-- Stats refresh -->
<string name="stats_no_data_yet">No data yet</string>
Expand Down Expand Up @@ -1576,6 +1580,7 @@
<string name="notifications_jetpack_connection_setup_info">To get helpful notifications on your device from your WordPress site, you\'ll need to install the Jetpack plugin. Would you like to set up Jetpack?</string>
<string name="notifications_empty_view_reader">Go to Reader</string>
<string name="content_description_person_reading_device_notification">Person reading device with notifications</string>
<string name="content_description_empty_view">Image illustrating that the view is empty</string>
<string name="older_two_days">Older than 2 days</string>
<string name="older_last_week">Older than a week</string>
<string name="older_month">Older than a month</string>
Expand Down Expand Up @@ -5071,4 +5076,7 @@ translators: %s: Select control option value e.g: "Auto, 25%". -->
<string name="application_password_name_sort">Name</string>
<string name="application_password_created_sort">Created</string>
<string name="application_password_last_used_sort">Last used</string>

<!-- DataView -->
<string name="dataview_default_empty_message">There\'s nothing here</string>
</resources>
4 changes: 2 additions & 2 deletions version.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
versionName=26.1
versionCode=1472
versionName=26.2-rc-1
versionCode=1473
Loading