Changeset 3391813
- Timestamp:
- 11/07/2025 03:26:50 PM (2 months ago)
- Location:
- wordpress-beta-tester
- Files:
-
- 22 edited
- 1 copied
-
assets/screenshot-1.png (modified) (previous)
-
assets/screenshot-2.png (modified) (previous)
-
tags/4.0.0 (copied) (copied from wordpress-beta-tester/trunk)
-
tags/4.0.0/CHANGES.md (modified) (1 diff)
-
tags/4.0.0/README.md (modified) (2 diffs)
-
tags/4.0.0/languages/wordpress-beta-tester.pot (modified) (13 diffs)
-
tags/4.0.0/readme.txt (modified) (3 diffs)
-
tags/4.0.0/src/WPBT/WPBT_Core.php (modified) (13 diffs)
-
tags/4.0.0/src/WPBT/WPBT_Settings.php (modified) (1 diff)
-
tags/4.0.0/src/WPBT/WP_Beta_Tester.php (modified) (5 diffs)
-
tags/4.0.0/vendor/composer/installed.json (modified) (7 diffs)
-
tags/4.0.0/vendor/composer/installed.php (modified) (5 diffs)
-
tags/4.0.0/wp-beta-tester.php (modified) (2 diffs)
-
trunk/CHANGES.md (modified) (1 diff)
-
trunk/README.md (modified) (2 diffs)
-
trunk/languages/wordpress-beta-tester.pot (modified) (13 diffs)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/src/WPBT/WPBT_Core.php (modified) (13 diffs)
-
trunk/src/WPBT/WPBT_Settings.php (modified) (1 diff)
-
trunk/src/WPBT/WP_Beta_Tester.php (modified) (5 diffs)
-
trunk/vendor/composer/installed.json (modified) (7 diffs)
-
trunk/vendor/composer/installed.php (modified) (5 diffs)
-
trunk/wp-beta-tester.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wordpress-beta-tester/tags/4.0.0/CHANGES.md
r3369865 r3391813 1 1 [unreleased] 2 3 #### 4.0.0 / 2025-11-07 4 * refactor to use `core_version_check_query_args` filter for simplicity and compatibility 5 * remove checks on `WP_AUTO_UPDATE_CORE` 6 * update to require WordPress 4.9 2 7 3 8 #### 3.6.5 / 2025-09-29 -
wordpress-beta-tester/tags/4.0.0/README.md
r3326069 r3391813 4 4 * License: GPLv2 5 5 * License URI: https://www.opensource.org/licenses/GPL-2.0 6 * Requires at least: 3.16 * Requires at least: 4.9 7 7 * Requires PHP: 5.6 8 8 * Stable Tag: master … … 27 27 There is a setting to **Skip successful autoupdate emails**. It functions to disable sending emails to the admin user for successful autoupdates. Only emails indicating failures of the autoupdate process are sent. 28 28 29 There is a setting to **Skip bundled plugins and themes**. It functions to disable the installation of any plugins or themes that are bundled with the Core update. 30 29 31 PRs are welcome on [GitHub](https://github.com/afragen/wordpress-beta-tester). -
wordpress-beta-tester/tags/4.0.0/languages/wordpress-beta-tester.pot
r3369865 r3391813 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: WordPress Beta Tester 3.6.5\n"5 "Project-Id-Version: WordPress Beta Tester 4.0.0\n" 6 6 "Report-Msgid-Bugs-To: https://github.com/afragen/wordpress-beta-tester/issues\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2025- 09-29T16:02:36+00:00\n"12 "POT-Creation-Date: 2025-11-07T01:38:42+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.12.0\n" … … 44 44 msgstr "" 45 45 46 #: src/WPBT/WPBT_Core.php: 7646 #: src/WPBT/WPBT_Core.php:60 47 47 msgid "WP Beta Tester Settings" 48 48 msgstr "" 49 49 50 #: src/WPBT/WPBT_Core.php:77 51 msgid "Core Settings" 52 msgstr "" 53 54 #: src/WPBT/WPBT_Core.php:84 55 msgid "Select the update channel you would like this website to use:" 56 msgstr "" 57 50 58 #: src/WPBT/WPBT_Core.php:93 51 msgid "Core Settings"52 msgstr ""53 54 #: src/WPBT/WPBT_Core.php:10055 msgid "Select the update channel you would like this website to use:"56 msgstr ""57 58 #: src/WPBT/WPBT_Core.php:10959 59 msgid "Select one of the stream options below:" 60 60 msgstr "" 61 61 62 #: src/WPBT/WPBT_Core.php:1 6863 msgid "<strong> Please note:</strong> There are no development builds available for the beta stream you have chosen, so you will receive normal update notifications."62 #: src/WPBT/WPBT_Core.php:150 63 msgid "<strong>Warning:</strong> The `WP_AUTO_UPDATE_CORE` constant is set. WordPress Beta Tester settings will be overridden." 64 64 msgstr "" 65 65 66 66 #. translators: 1: link to backing up database, 2: link to make.wp.org/core, 3: link to beta support forum 67 #: src/WPBT/WPBT_Core.php:1 7767 #: src/WPBT/WPBT_Core.php:159 68 68 #, php-format 69 69 msgid "By their nature, these releases are unstable and should not be used anyplace where your data is important. So please <a href=\"%1$s\">back up your database</a> before upgrading to a test release. In order to hear about the latest beta releases, your best bet is to watch the <a href=\"%2$s\">development blog</a> and the <a href=\"%3$s\">beta forum</a>." 70 70 msgstr "" 71 71 72 #: src/WPBT/WPBT_Core.php:1 7872 #: src/WPBT/WPBT_Core.php:160 73 73 #: src/WPBT/WPBT_Help.php:48 74 74 msgctxt "URL to database backup instructions on HelpHub" … … 76 76 msgstr "" 77 77 78 #: src/WPBT/WPBT_Core.php:1 8078 #: src/WPBT/WPBT_Core.php:162 79 79 #: src/WPBT/WPBT_Help.php:50 80 80 msgctxt "URL to beta support forum" … … 83 83 84 84 #. translators: %s: link to new trac ticket 85 #: src/WPBT/WPBT_Core.php:1 8585 #: src/WPBT/WPBT_Core.php:167 86 86 #, php-format 87 87 msgid "Thank you for helping test WordPress. Please <a href=\"%s\">report any bugs you find</a>." 88 88 msgstr "" 89 89 90 #: src/WPBT/WPBT_Core.php:1 8990 #: src/WPBT/WPBT_Core.php:171 91 91 msgid "By default, your WordPress installation uses the stable update channel. To return to this, please deactivate this plugin and re-install from the <a href=\"update-core.php\">WordPress Updates</a> page." 92 92 msgstr "" 93 93 94 94 #. translators: %s: update version 95 #: src/WPBT/WPBT_Core.php:1 9395 #: src/WPBT/WPBT_Core.php:175 96 96 #, php-format 97 97 msgid "Currently your site is set to update to %s." 98 98 msgstr "" 99 99 100 #: src/WPBT/WPBT_Core.php: 209100 #: src/WPBT/WPBT_Core.php:191 101 101 msgid "Save after switching" 102 102 msgstr "" 103 103 104 #: src/WPBT/WPBT_Core.php:219 105 msgid "Channel options are overridden by the `WP_AUTO_UPDATE_CORE` constant." 106 msgstr "" 107 108 #. translators: %s: WP_AUTO_UPDATE_CORE setting 109 #: src/WPBT/WPBT_Core.php:223 110 #: src/WPBT/WPBT_Core.php:274 111 #, php-format 112 msgid "`WP_AUTO_UPDATE_CORE` is defined as `%s`." 113 msgstr "" 114 115 #: src/WPBT/WPBT_Core.php:236 104 #: src/WPBT/WPBT_Core.php:198 116 105 msgid "Point release" 117 106 msgstr "" 118 107 119 108 #. translators: %s: Current WordPress version base, eg 5.5 120 #: src/WPBT/WPBT_Core.php:2 42109 #: src/WPBT/WPBT_Core.php:204 121 110 #, php-format 122 111 msgid "This contains the work that is occurring on a branch in preparation for a %s point release. This should also be fairly stable but will be available before the branch is ready for release." 123 112 msgstr "" 124 113 125 #: src/WPBT/WPBT_Core.php:2 50114 #: src/WPBT/WPBT_Core.php:212 126 115 msgid "Bleeding edge" 127 116 msgstr "" 128 117 129 #: src/WPBT/WPBT_Core.php:2 52118 #: src/WPBT/WPBT_Core.php:214 130 119 msgid "This is the bleeding edge development code from `trunk` which may be unstable at times. <em>Only use this if you really know what you are doing</em>." 131 120 msgstr "" 132 121 133 #: src/WPBT/WPBT_Core.php:270 134 msgid "Stream options are overridden by the `WP_AUTO_UPDATE_CORE` constant." 135 msgstr "" 136 137 #: src/WPBT/WPBT_Core.php:287 122 #: src/WPBT/WPBT_Core.php:230 138 123 msgid "Nightlies" 139 124 msgstr "" 140 125 141 #: src/WPBT/WPBT_Core.php:2 89126 #: src/WPBT/WPBT_Core.php:232 142 127 msgid "Latest daily updates." 143 128 msgstr "" 144 129 145 #: src/WPBT/WPBT_Core.php:2 94146 #: src/WPBT/WPBT_Core.php: 308130 #: src/WPBT/WPBT_Core.php:237 131 #: src/WPBT/WPBT_Core.php:251 147 132 msgid "Beta/RC Only" 148 133 msgstr "" 149 134 150 #: src/WPBT/WPBT_Core.php:2 96151 #: src/WPBT/WPBT_Core.php: 310135 #: src/WPBT/WPBT_Core.php:239 136 #: src/WPBT/WPBT_Core.php:253 152 137 msgid "This is for the Beta/RC releases only of the selected channel." 153 138 msgstr "" 154 139 155 #: src/WPBT/WPBT_Core.php: 300156 #: src/WPBT/WPBT_Core.php: 314140 #: src/WPBT/WPBT_Core.php:243 141 #: src/WPBT/WPBT_Core.php:257 157 142 msgid "Release Candidates Only" 158 143 msgstr "" 159 144 160 #: src/WPBT/WPBT_Core.php: 302161 #: src/WPBT/WPBT_Core.php: 316145 #: src/WPBT/WPBT_Core.php:245 146 #: src/WPBT/WPBT_Core.php:259 162 147 msgid "This is for the Release Candidate releases only of the selected channel." 163 148 msgstr "" 164 149 165 150 #. translators: %s: version number 166 #: src/WPBT/WPBT_Core.php:3 87151 #: src/WPBT/WPBT_Core.php:329 167 152 #, php-format 168 153 msgid "version %s" 169 154 msgstr "" 170 155 171 #: src/WPBT/WPBT_Core.php:3 93156 #: src/WPBT/WPBT_Core.php:335 172 157 msgid "next development version" 173 158 msgstr "" 174 159 175 160 #. translators: %l: next version numbers 176 #: src/WPBT/WPBT_Core.php:3 98161 #: src/WPBT/WPBT_Core.php:340 177 162 msgid "version %l, whichever is released first" 178 163 msgstr "" 179 164 180 165 #. translators: Used to join items in a list with more than 2 items. 181 #: src/WPBT/WPBT_Core.php:4 92166 #: src/WPBT/WPBT_Core.php:432 182 167 #, php-format 183 168 msgid "%1$s, %2$s" … … 185 170 186 171 #. translators: Used to join last two items in a list with more than 2 times. 187 #: src/WPBT/WPBT_Core.php:4 94172 #: src/WPBT/WPBT_Core.php:434 188 173 #, php-format 189 174 msgid "%1$s, or %2$s" … … 191 176 192 177 #. translators: Used to join items in a list with only 2 items. 193 #: src/WPBT/WPBT_Core.php:4 96178 #: src/WPBT/WPBT_Core.php:436 194 179 #, php-format 195 180 msgid "%1$s or %2$s" … … 281 266 282 267 #. translators: %s: WordPress Beta Tester Settings page URL 283 #: src/WPBT/WP_Beta_Tester.php:12 6268 #: src/WPBT/WP_Beta_Tester.php:125 284 269 #, php-format 285 270 msgid "<strong>Warning:</strong> Your current <a href=\"%s\">WordPress Beta Tester plugin configuration</a> will downgrade your installation to a previous version - please reconfigure it." 286 271 msgstr "" 287 272 288 #: src/WPBT/WP_Beta_Tester.php:2 99273 #: src/WPBT/WP_Beta_Tester.php:249 289 274 msgid "WordPress Beta Testing" 290 275 msgstr "" 291 276 292 277 #. translators: %s: WordPress version 293 #: src/WPBT/WP_Beta_Tester.php: 319278 #: src/WPBT/WP_Beta_Tester.php:269 294 279 #, php-format 295 280 msgid "Please help test <strong>WordPress %s</strong>." … … 297 282 298 283 #. translators: %1: link to closed and reopened trac tickets on current milestone 299 #: src/WPBT/WP_Beta_Tester.php: 325284 #: src/WPBT/WP_Beta_Tester.php:275 300 285 #, php-format 301 286 msgid "Here are the <a href=\"%s\" target=\"_blank\">commits for the milestone</a>." … … 303 288 304 289 #. translators: %s: update version 305 #: src/WPBT/WP_Beta_Tester.php: 334290 #: src/WPBT/WP_Beta_Tester.php:284 306 291 #, php-format 307 292 msgid "Currently your site is set to update to <strong>%s</strong>." … … 309 294 310 295 #. translators: %s: WP Beta Tester settings URL 311 #: src/WPBT/WP_Beta_Tester.php: 340296 #: src/WPBT/WP_Beta_Tester.php:290 312 297 #, php-format 313 298 msgid "Head over to your <a href=\"%s\">WordPress Beta Tester Settings</a> and make sure the <strong>beta/RC</strong> stream is selected." … … 315 300 316 301 #. translators: %s: Milestone version 317 #: src/WPBT/WP_Beta_Tester.php:3 99302 #: src/WPBT/WP_Beta_Tester.php:350 318 303 #, php-format 319 304 msgid "WordPress %s Dev Notes" … … 321 306 322 307 #. translators: %s: Milestone version 323 #: src/WPBT/WP_Beta_Tester.php: 409308 #: src/WPBT/WP_Beta_Tester.php:360 324 309 #, php-format 325 310 msgid "WordPress %s Field Guide" -
wordpress-beta-tester/tags/4.0.0/readme.txt
r3369865 r3391813 5 5 License: GPLv2 6 6 License URI: https://www.opensource.org/licenses/GPL-2.0 7 Requires at least: 3.17 Requires at least: 4.9 8 8 Requires PHP: 5.6 9 9 Tested up to: 6.9 10 Stable Tag: 3.6.510 Stable Tag: 4.0.0 11 11 12 12 Allows you to easily upgrade for testing the next versions of WordPress. … … 29 29 There is a setting to **Skip successful autoupdate emails**. It functions to disable sending emails to the admin user for successful autoupdates. Only emails indicating failures of the autoupdate process are sent. 30 30 31 There is a setting to **Skip bundled plugins and themes**. It functions to disable the installation of any plugins or themes that are bundled with the Core update. 32 33 31 34 PRs are welcome on [GitHub](https://github.com/afragen/wordpress-beta-tester). 32 35 33 36 ## Changelog 37 38 #### 4.0.0 / 2025-11-07 39 * refactor to use `core_version_check_query_args` filter for simplicity and compatibility 40 * remove checks on `WP_AUTO_UPDATE_CORE` 41 * update to require WordPress 4.9 34 42 35 43 #### 3.6.4 / 2025-07-10 … … 366 374 ## Screenshots 367 375 368 1. This shows the main administration page for the plugin369 2. This shows the Extra Settings page for the plugin370 3. This shows the Dashboard callout376 1. Main Settings page 377 2. Extra Settings page 378 3. Dashboard widget -
wordpress-beta-tester/tags/4.0.0/src/WPBT/WPBT_Core.php
r3201160 r3391813 28 28 29 29 /** 30 * Holds $core_update_stream_constant from WP_Beta_Tester.31 *32 * @var string|bool33 */34 protected static $core_update_stream_constant;35 36 /**37 * Holds $core_update_channel_constant from WP_Beta_Tester.38 *39 * @var string|bool40 */41 protected static $core_update_channel_constant;42 43 /**44 30 * Constructor. 45 31 * … … 49 35 */ 50 36 public function __construct( WP_Beta_Tester $wp_beta_tester, $options ) { 51 self::$options = $options; 52 $this->wp_beta_tester = $wp_beta_tester; 53 self::$core_update_stream_constant = $wp_beta_tester::$core_update_stream_constant; 54 self::$core_update_channel_constant = $wp_beta_tester::$core_update_channel_constant; 37 self::$options = $options; 38 $this->wp_beta_tester = $wp_beta_tester; 55 39 } 56 40 … … 111 95 'wp_beta_tester_core', 112 96 'wp_beta_tester_core', 113 array( 114 'class' => 'wpbt-settings-title' . ( ! self::$core_update_channel_constant ? '' : 'hidden' ), 115 ) 97 array( 'class' => 'wpbt-settings-title' ) 116 98 ); 117 99 } … … 164 146 $this->wp_beta_tester->action_admin_head_plugins_php(); // Check configuration. 165 147 $preferred = $this->wp_beta_tester->get_preferred_from_update_core(); 166 if ( 'development' !== $preferred->response) {167 echo '<div class=" updated fade">';168 echo '<p>' . wp_kses_post( __( '<strong>Please note:</strong> There are no development builds available for the beta stream you have chosen, so you will receive normal update notifications.', 'wordpress-beta-tester' ) ) . '</p>';169 echo '</ div>';148 if ( defined( 'WP_AUTO_UPDATE_CORE' ) && WP_AUTO_UPDATE_CORE ) { 149 echo '<div class="notice notice-warning fade"><p>'; 150 echo wp_kses_post( __( '<strong>Warning:</strong> The `WP_AUTO_UPDATE_CORE` constant is set. WordPress Beta Tester settings will be overridden.', 'wordpress-beta-tester' ) ); 151 echo '</p></div>'; 170 152 } 171 153 … … 211 193 </tr> 212 194 </fieldset> 213 <?php 214 if ( self::$core_update_channel_constant ) { 215 ?> 216 <fieldset> 217 <tr> 218 <th><label></label></th> 219 <td><?php esc_html_e( 'Channel options are overridden by the `WP_AUTO_UPDATE_CORE` constant.', 'wordpress-beta-tester' ); ?><p> 220 <?php 221 printf( 222 /* translators: %s: WP_AUTO_UPDATE_CORE setting */ 223 esc_html__( '`WP_AUTO_UPDATE_CORE` is defined as `%s`.', 'wordpress-beta-tester' ), 224 esc_attr( self::$core_update_channel_constant ) 225 ); 226 ?> 227 </p></td> 228 </tr> 229 </fieldset> 230 <?php 231 } else { 232 ?> 233 <fieldset> 195 <fieldset> 234 196 <tr> 235 197 <th><label><input name="wp-beta-tester" id="update-stream-point-nightlies" type="radio" value="branch-development" class="tog" <?php checked( 'branch-development', self::$options['channel'] ); ?> /> … … 238 200 <td> 239 201 <?php 240 printf(241 /* translators: %s: Current WordPress version base, eg 5.5 */242 esc_html__( 'This contains the work that is occurring on a branch in preparation for a %s point release. This should also be fairly stable but will be available before the branch is ready for release.', 'wordpress-beta-tester' ),243 esc_attr( $next_versions['point'] )244 );202 printf( 203 /* translators: %s: Current WordPress version base, eg 5.5 */ 204 esc_html__( 'This contains the work that is occurring on a branch in preparation for a %s point release. This should also be fairly stable but will be available before the branch is ready for release.', 'wordpress-beta-tester' ), 205 esc_attr( $next_versions['point'] ) 206 ); 245 207 ?> 246 208 </td> … … 250 212 <?php esc_html_e( 'Bleeding edge', 'wordpress-beta-tester' ); ?> 251 213 </label></th> 252 <td><?php echo wp_kses_post( __( 'This is the bleeding edge development code from `trunk` which may be unstable at times. <em>Only use this if you really know what you are doing</em>.', 'wordpress-beta-tester' ) ); ?></td> 253 </tr> 254 </fieldset> 255 <?php 256 } 214 <td><?php echo wp_kses_post( __( 'This is the bleeding edge development code from `trunk` which may be unstable at times. <em>Only use this if you really know what you are doing</em>.', 'wordpress-beta-tester' ) ); ?></td> 215 </tr> 216 </fieldset> 217 <?php 257 218 } 258 219 … … 263 224 */ 264 225 public function stream_radio_group() { 265 if ( self::$core_update_stream_constant ) { 266 ?> 267 <fieldset> 268 <tr> 269 <th><label></label></th> 270 <td><?php esc_html_e( 'Stream options are overridden by the `WP_AUTO_UPDATE_CORE` constant.', 'wordpress-beta-tester' ); ?><p> 271 <?php 272 printf( 273 /* translators: %s: WP_AUTO_UPDATE_CORE setting */ 274 esc_html__( '`WP_AUTO_UPDATE_CORE` is defined as `%s`.', 'wordpress-beta-tester' ), 275 esc_attr( self::$core_update_stream_constant ) 276 ); 277 ?> 278 </p></td> 279 </tr> 280 </fieldset> 281 <?php 282 } else { 283 ?> 284 <fieldset> 226 ?> 227 <fieldset> 285 228 <tr> 286 229 <th><label><input name="wp-beta-tester-beta-rc" id="update-stream-beta" type="radio" value="" class="tog" <?php checked( false, self::$options['stream-option'] ); ?> /> … … 317 260 </tr> 318 261 <?php endif; ?> 319 </fieldset> 320 <?php 321 } 262 </fieldset> 263 <?php 322 264 } 323 265 … … 332 274 ?> 333 275 <div> 334 <?php if ( 'wp_beta_tester_core' === $tab ) : ?>276 <?php if ( 'wp_beta_tester_core' === $tab ) : ?> 335 277 <form method="post" action="<?php echo esc_attr( $action ); ?>"> 336 278 <?php settings_fields( 'wp_beta_tester_core' ); ?> … … 345 287 let $bleedingEdgeStream = $( '.bleeding-edge-stream' ); 346 288 347 <?php if ( 'development' !== self::$options['channel'] ) : // Time to do our basic JS magic :). ?>289 <?php if ( 'development' !== self::$options['channel'] ) : // Time to do our basic JS magic :). ?> 348 290 $bleedingEdgeStream.hide(); 349 291 <?php endif; ?> … … 383 325 384 326 // Site is not on a beta/RC stream so use the preferred version. 385 if ( ! $beta_rc && ! empty( $next_version ) && ! self::$core_update_stream_constant) {327 if ( ! $beta_rc && ! empty( $next_version ) ) { 386 328 /* translators: %s: version number */ 387 329 return sprintf( __( 'version %s', 'wordpress-beta-tester' ), $preferred_version ); … … 466 408 ); 467 409 468 if ( ! $next_versions['beta'] || 'rc' === self::$options['stream-option'] 469 || 'rc' === self::$core_update_stream_constant || 1 < $next_rc 470 ) { 410 if ( ! $next_versions['beta'] || 'rc' === self::$options['stream-option'] || 1 < $next_rc ) { 471 411 unset( $next_versions['beta'] ); 472 412 } -
wordpress-beta-tester/tags/4.0.0/src/WPBT/WPBT_Settings.php
r3261736 r3391813 285 285 <h1><?php esc_html_e( 'Beta Testing WordPress', 'wordpress-beta-tester' ); ?></h1> 286 286 <?php $this->options_tabs(); ?> 287 <div class=" updatedfade">287 <div class="notice notice-info fade"> 288 288 <p><?php echo wp_kses_post( __( '<strong>Please note:</strong> Once you have switched your website to one of these beta versions of software, it will not always be possible to downgrade as the database structure may be updated during the development of a major release.', 'wordpress-beta-tester' ) ); ?></p> 289 289 </div> -
wordpress-beta-tester/tags/4.0.0/src/WPBT/WP_Beta_Tester.php
r3369865 r3391813 28 28 29 29 /** 30 * Holds WP_AUTO_UPDATE_CORE if set.31 *32 * @var string|bool33 */34 public static $core_update_stream_constant;35 36 /**37 * Holds WP_AUTO_UPDATE_CORE if set.38 *39 * @var string|bool40 */41 public static $core_update_channel_constant;42 43 /**44 30 * Constructor. 45 31 * … … 49 35 */ 50 36 public function __construct( $file, $options ) { 51 $this->file = $file; 52 self::$options = $options; 53 self::$core_update_stream_constant = defined( 'WP_AUTO_UPDATE_CORE' ) && in_array( \WP_AUTO_UPDATE_CORE, array( 'beta', 'rc' ), true ) ? \WP_AUTO_UPDATE_CORE : false; 54 self::$core_update_channel_constant = defined( 'WP_AUTO_UPDATE_CORE' ) && in_array( \WP_AUTO_UPDATE_CORE, array( 'development', 'branch-development' ), true ) ? \WP_AUTO_UPDATE_CORE : false; 37 $this->file = $file; 38 self::$options = $options; 55 39 } 56 40 … … 78 62 ) 79 63 ); 80 add_filter( 'pre_http_request', array( $this, 'filter_http_request' ), 10, 3 ); 64 65 // Set channel query arg for core version check. 66 add_filter( 'core_version_check_query_args', array( $this, 'set_core_update_channel_constant' ), 10, 1 ); 67 68 /* // phpcs:ignore Squiz.PHP.CommentedOutCode.Found 69 * For testing pretend we're on another release. 70 * $url = add_query_arg( 'pretend_releases', array( '5.6-beta2' ), $url ); 71 add_filter( 72 'core_version_check_query_args', 73 function ( $query_args ) { 74 return array_merge( $query_args, array( 'pretend_releases' => array( '5.6-beta2' ) ) ); 75 }, 76 10, 77 1 78 ); 79 */ 81 80 82 81 // Fixed in https://core.trac.wordpress.org/changeset/49708. … … 132 131 133 132 /** 134 * Filter 'pre_http_request' to add beta-tester API check. 135 * 136 * @param mixed $result $result from filter. 137 * @param array $args Array of filter args. 138 * @param string $url URL from filter. 139 * @return stdClass Output from wp_remote_get(). 140 */ 141 public function filter_http_request( $result, $args, $url ) { 142 if ( $result || isset( $args['_beta_tester'] ) ) { 143 return $result; 144 } 145 if ( false === strpos( $url, '//api.wordpress.org/core/version-check/' ) ) { 146 return $result; 147 } 148 149 // It's a core-update request. 150 $args['_beta_tester'] = true; 151 152 $url = empty( self::$options['stream-option'] ) 153 ? add_query_arg( 'channel', self::$options['channel'], $url ) 154 : add_query_arg( 'channel', self::$options['stream-option'], $url ); 155 156 // Use WP_AUTO_UPDATE_CORE if set. 157 $url = self::$core_update_stream_constant ? add_query_arg( 'channel', self::$core_update_stream_constant, $url ) : $url; 158 $url = self::$core_update_channel_constant ? add_query_arg( 'channel', self::$core_update_channel_constant, $url ) : $url; 159 160 // Make adjustments for switching between channels. 161 $url = $this->channel_switching_modification( $url ); 162 163 // phpcs:ignore Squiz.PHP.CommentedOutCode.Found 164 // $url = add_query_arg( 'pretend_releases', array( '5.6-beta2' ), $url ); 165 // pretend_releases[]=5.6-beta2 query arg example. 166 167 return wp_remote_get( $url, $args ); 168 } 169 170 /** 171 * Modify URL to version check to return expected API response. 172 * 173 * @param string $url Version check URL. 174 * 175 * @return string $url 176 */ 177 private function channel_switching_modification( $url ) { 178 $next_versions = ( new WPBT_Core( $this, static::$options ) )->calculate_next_versions(); 179 $wp_version = get_bloginfo( 'version' ); 180 $channel = self::$core_update_channel_constant ? self::$core_update_channel_constant : self::$options['channel']; 181 182 if ( false !== strpos( $channel, 'development' ) 183 && version_compare( $wp_version, $next_versions['point'], '<' ) 184 ) { 185 return $url; 186 } 187 188 switch ( $channel ) { 189 case 'branch-development': 190 $url = add_query_arg( 'version', $next_versions['point'] . '-alpha', $url ); 191 break; 192 case 'development': 193 if ( false !== strpos( $wp_version, $next_versions['point'] ) 194 || version_compare( $wp_version, $next_versions['point'], '<' ) 195 ) { 196 $url = add_query_arg( 'version', $next_versions['release'] . '-alpha', $url ); 197 } 198 break; 199 } 200 201 return $url; 133 * Get channel query arg. 134 * 135 * @return string 136 */ 137 public static function get_channel() { 138 return empty( self::$options['stream-option'] ) 139 ? self::$options['channel'] 140 : self::$options['stream-option']; 141 } 142 143 /** 144 * Set channel query arg in wp_version_check(). 145 * 146 * @param array $query_args Array of query args. 147 * 148 * @return array 149 */ 150 public function set_core_update_channel_constant( $query_args ) { 151 return array_merge( $query_args, array( 'channel' => self::get_channel() ) ); 202 152 } 203 153 … … 358 308 359 309 // For testing, set cache to 10 seconds. 310 // phpcs:ignore Squiz.Commenting.InlineComment.InvalidEndChar 360 311 // add_filter( 'wp_feed_cache_transient_lifetime', function () { return 10; } ); 361 312 -
wordpress-beta-tester/tags/4.0.0/vendor/composer/installed.json
r3369865 r3391813 102 102 { 103 103 "name": "phpcsstandards/phpcsextra", 104 "version": "1.4. 1",105 "version_normalized": "1.4. 1.0",104 "version": "1.4.2", 105 "version_normalized": "1.4.2.0", 106 106 "source": { 107 107 "type": "git", 108 108 "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", 109 "reference": "8 82b8c947ada27eb002870fe77fee9ce0a454cdb"109 "reference": "8e89a01c7b8fed84a12a2a7f5a23a44cdbe4f62e" 110 110 }, 111 111 "dist": { 112 112 "type": "zip", 113 "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/8 82b8c947ada27eb002870fe77fee9ce0a454cdb",114 "reference": "8 82b8c947ada27eb002870fe77fee9ce0a454cdb",113 "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/8e89a01c7b8fed84a12a2a7f5a23a44cdbe4f62e", 114 "reference": "8e89a01c7b8fed84a12a2a7f5a23a44cdbe4f62e", 115 115 "shasum": "" 116 116 }, … … 127 127 "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" 128 128 }, 129 "time": "2025- 09-05T06:54:52+00:00",129 "time": "2025-10-28T17:00:02+00:00", 130 130 "type": "phpcodesniffer-standard", 131 131 "extra": { … … 187 187 { 188 188 "name": "phpcsstandards/phpcsutils", 189 "version": "1.1. 2",190 "version_normalized": "1.1. 2.0",189 "version": "1.1.3", 190 "version_normalized": "1.1.3.0", 191 191 "source": { 192 192 "type": "git", 193 193 "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", 194 "reference": " b22b59e3d9ec8fe4953e42c7d59117c6eae70eae"194 "reference": "8b8e17615d04f2fc2cd46fc1d2fd888fa21b3cf9" 195 195 }, 196 196 "dist": { 197 197 "type": "zip", 198 "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/ b22b59e3d9ec8fe4953e42c7d59117c6eae70eae",199 "reference": " b22b59e3d9ec8fe4953e42c7d59117c6eae70eae",198 "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/8b8e17615d04f2fc2cd46fc1d2fd888fa21b3cf9", 199 "reference": "8b8e17615d04f2fc2cd46fc1d2fd888fa21b3cf9", 200 200 "shasum": "" 201 201 }, … … 212 212 "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0 || ^3.0.0" 213 213 }, 214 "time": "2025- 09-05T00:00:03+00:00",214 "time": "2025-10-16T16:39:32+00:00", 215 215 "type": "phpcodesniffer-standard", 216 216 "extra": { … … 283 283 { 284 284 "name": "squizlabs/php_codesniffer", 285 "version": "3.13. 4",286 "version_normalized": "3.13. 4.0",285 "version": "3.13.5", 286 "version_normalized": "3.13.5.0", 287 287 "source": { 288 288 "type": "git", 289 289 "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", 290 "reference": " ad545ea9c1b7d270ce0fc9cbfb884161cd706119"290 "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4" 291 291 }, 292 292 "dist": { 293 293 "type": "zip", 294 "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ ad545ea9c1b7d270ce0fc9cbfb884161cd706119",295 "reference": " ad545ea9c1b7d270ce0fc9cbfb884161cd706119",294 "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4", 295 "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4", 296 296 "shasum": "" 297 297 }, … … 305 305 "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" 306 306 }, 307 "time": "2025- 09-05T05:47:09+00:00",307 "time": "2025-11-04T16:30:35+00:00", 308 308 "bin": [ 309 309 "bin/phpcbf", … … 311 311 ], 312 312 "type": "library", 313 "extra": {314 "branch-alias": {315 "dev-master": "3.x-dev"316 }317 },318 313 "installation-source": "dist", 319 314 "notification-url": "https://packagist.org/downloads/", -
wordpress-beta-tester/tags/4.0.0/vendor/composer/installed.php
r3369865 r3391813 4 4 'pretty_version' => 'dev-master', 5 5 'version' => 'dev-master', 6 'reference' => ' 3157d931e1241c2e8ee94768674ee9684e4e606e',6 'reference' => 'a8d784f6503c52311db2e2df9775d6c3cfc9560e', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-master', 15 15 'version' => 'dev-master', 16 'reference' => ' 3157d931e1241c2e8ee94768674ee9684e4e606e',16 'reference' => 'a8d784f6503c52311db2e2df9775d6c3cfc9560e', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../', … … 30 30 ), 31 31 'phpcsstandards/phpcsextra' => array( 32 'pretty_version' => '1.4. 1',33 'version' => '1.4. 1.0',34 'reference' => '8 82b8c947ada27eb002870fe77fee9ce0a454cdb',32 'pretty_version' => '1.4.2', 33 'version' => '1.4.2.0', 34 'reference' => '8e89a01c7b8fed84a12a2a7f5a23a44cdbe4f62e', 35 35 'type' => 'phpcodesniffer-standard', 36 36 'install_path' => __DIR__ . '/../phpcsstandards/phpcsextra', … … 39 39 ), 40 40 'phpcsstandards/phpcsutils' => array( 41 'pretty_version' => '1.1. 2',42 'version' => '1.1. 2.0',43 'reference' => ' b22b59e3d9ec8fe4953e42c7d59117c6eae70eae',41 'pretty_version' => '1.1.3', 42 'version' => '1.1.3.0', 43 'reference' => '8b8e17615d04f2fc2cd46fc1d2fd888fa21b3cf9', 44 44 'type' => 'phpcodesniffer-standard', 45 45 'install_path' => __DIR__ . '/../phpcsstandards/phpcsutils', … … 48 48 ), 49 49 'squizlabs/php_codesniffer' => array( 50 'pretty_version' => '3.13. 4',51 'version' => '3.13. 4.0',52 'reference' => ' ad545ea9c1b7d270ce0fc9cbfb884161cd706119',50 'pretty_version' => '3.13.5', 51 'version' => '3.13.5.0', 52 'reference' => '0ca86845ce43291e8f5692c7356fccf3bcf02bf4', 53 53 'type' => 'library', 54 54 'install_path' => __DIR__ . '/../squizlabs/php_codesniffer', -
wordpress-beta-tester/tags/4.0.0/wp-beta-tester.php
r3369865 r3391813 14 14 * Description: Allows you to easily upgrade to Beta releases. 15 15 * Author: WordPress Upgrade/Install Team 16 * Version: 3.6.516 * Version: 4.0.0 17 17 * Network: true 18 18 * Author URI: https://make.wordpress.org/core/components/upgrade-install/ … … 22 22 * License URI: https://www.opensource.org/licenses/GPL-2.0 23 23 * GitHub Plugin URI: https://github.com/afragen/wordpress-beta-tester 24 * Requires at least: 3.124 * Requires at least: 4.9 25 25 * Requires PHP: 5.6 26 26 */ -
wordpress-beta-tester/trunk/CHANGES.md
r3369865 r3391813 1 1 [unreleased] 2 3 #### 4.0.0 / 2025-11-07 4 * refactor to use `core_version_check_query_args` filter for simplicity and compatibility 5 * remove checks on `WP_AUTO_UPDATE_CORE` 6 * update to require WordPress 4.9 2 7 3 8 #### 3.6.5 / 2025-09-29 -
wordpress-beta-tester/trunk/README.md
r3326069 r3391813 4 4 * License: GPLv2 5 5 * License URI: https://www.opensource.org/licenses/GPL-2.0 6 * Requires at least: 3.16 * Requires at least: 4.9 7 7 * Requires PHP: 5.6 8 8 * Stable Tag: master … … 27 27 There is a setting to **Skip successful autoupdate emails**. It functions to disable sending emails to the admin user for successful autoupdates. Only emails indicating failures of the autoupdate process are sent. 28 28 29 There is a setting to **Skip bundled plugins and themes**. It functions to disable the installation of any plugins or themes that are bundled with the Core update. 30 29 31 PRs are welcome on [GitHub](https://github.com/afragen/wordpress-beta-tester). -
wordpress-beta-tester/trunk/languages/wordpress-beta-tester.pot
r3369865 r3391813 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: WordPress Beta Tester 3.6.5\n"5 "Project-Id-Version: WordPress Beta Tester 4.0.0\n" 6 6 "Report-Msgid-Bugs-To: https://github.com/afragen/wordpress-beta-tester/issues\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2025- 09-29T16:02:36+00:00\n"12 "POT-Creation-Date: 2025-11-07T01:38:42+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.12.0\n" … … 44 44 msgstr "" 45 45 46 #: src/WPBT/WPBT_Core.php: 7646 #: src/WPBT/WPBT_Core.php:60 47 47 msgid "WP Beta Tester Settings" 48 48 msgstr "" 49 49 50 #: src/WPBT/WPBT_Core.php:77 51 msgid "Core Settings" 52 msgstr "" 53 54 #: src/WPBT/WPBT_Core.php:84 55 msgid "Select the update channel you would like this website to use:" 56 msgstr "" 57 50 58 #: src/WPBT/WPBT_Core.php:93 51 msgid "Core Settings"52 msgstr ""53 54 #: src/WPBT/WPBT_Core.php:10055 msgid "Select the update channel you would like this website to use:"56 msgstr ""57 58 #: src/WPBT/WPBT_Core.php:10959 59 msgid "Select one of the stream options below:" 60 60 msgstr "" 61 61 62 #: src/WPBT/WPBT_Core.php:1 6863 msgid "<strong> Please note:</strong> There are no development builds available for the beta stream you have chosen, so you will receive normal update notifications."62 #: src/WPBT/WPBT_Core.php:150 63 msgid "<strong>Warning:</strong> The `WP_AUTO_UPDATE_CORE` constant is set. WordPress Beta Tester settings will be overridden." 64 64 msgstr "" 65 65 66 66 #. translators: 1: link to backing up database, 2: link to make.wp.org/core, 3: link to beta support forum 67 #: src/WPBT/WPBT_Core.php:1 7767 #: src/WPBT/WPBT_Core.php:159 68 68 #, php-format 69 69 msgid "By their nature, these releases are unstable and should not be used anyplace where your data is important. So please <a href=\"%1$s\">back up your database</a> before upgrading to a test release. In order to hear about the latest beta releases, your best bet is to watch the <a href=\"%2$s\">development blog</a> and the <a href=\"%3$s\">beta forum</a>." 70 70 msgstr "" 71 71 72 #: src/WPBT/WPBT_Core.php:1 7872 #: src/WPBT/WPBT_Core.php:160 73 73 #: src/WPBT/WPBT_Help.php:48 74 74 msgctxt "URL to database backup instructions on HelpHub" … … 76 76 msgstr "" 77 77 78 #: src/WPBT/WPBT_Core.php:1 8078 #: src/WPBT/WPBT_Core.php:162 79 79 #: src/WPBT/WPBT_Help.php:50 80 80 msgctxt "URL to beta support forum" … … 83 83 84 84 #. translators: %s: link to new trac ticket 85 #: src/WPBT/WPBT_Core.php:1 8585 #: src/WPBT/WPBT_Core.php:167 86 86 #, php-format 87 87 msgid "Thank you for helping test WordPress. Please <a href=\"%s\">report any bugs you find</a>." 88 88 msgstr "" 89 89 90 #: src/WPBT/WPBT_Core.php:1 8990 #: src/WPBT/WPBT_Core.php:171 91 91 msgid "By default, your WordPress installation uses the stable update channel. To return to this, please deactivate this plugin and re-install from the <a href=\"update-core.php\">WordPress Updates</a> page." 92 92 msgstr "" 93 93 94 94 #. translators: %s: update version 95 #: src/WPBT/WPBT_Core.php:1 9395 #: src/WPBT/WPBT_Core.php:175 96 96 #, php-format 97 97 msgid "Currently your site is set to update to %s." 98 98 msgstr "" 99 99 100 #: src/WPBT/WPBT_Core.php: 209100 #: src/WPBT/WPBT_Core.php:191 101 101 msgid "Save after switching" 102 102 msgstr "" 103 103 104 #: src/WPBT/WPBT_Core.php:219 105 msgid "Channel options are overridden by the `WP_AUTO_UPDATE_CORE` constant." 106 msgstr "" 107 108 #. translators: %s: WP_AUTO_UPDATE_CORE setting 109 #: src/WPBT/WPBT_Core.php:223 110 #: src/WPBT/WPBT_Core.php:274 111 #, php-format 112 msgid "`WP_AUTO_UPDATE_CORE` is defined as `%s`." 113 msgstr "" 114 115 #: src/WPBT/WPBT_Core.php:236 104 #: src/WPBT/WPBT_Core.php:198 116 105 msgid "Point release" 117 106 msgstr "" 118 107 119 108 #. translators: %s: Current WordPress version base, eg 5.5 120 #: src/WPBT/WPBT_Core.php:2 42109 #: src/WPBT/WPBT_Core.php:204 121 110 #, php-format 122 111 msgid "This contains the work that is occurring on a branch in preparation for a %s point release. This should also be fairly stable but will be available before the branch is ready for release." 123 112 msgstr "" 124 113 125 #: src/WPBT/WPBT_Core.php:2 50114 #: src/WPBT/WPBT_Core.php:212 126 115 msgid "Bleeding edge" 127 116 msgstr "" 128 117 129 #: src/WPBT/WPBT_Core.php:2 52118 #: src/WPBT/WPBT_Core.php:214 130 119 msgid "This is the bleeding edge development code from `trunk` which may be unstable at times. <em>Only use this if you really know what you are doing</em>." 131 120 msgstr "" 132 121 133 #: src/WPBT/WPBT_Core.php:270 134 msgid "Stream options are overridden by the `WP_AUTO_UPDATE_CORE` constant." 135 msgstr "" 136 137 #: src/WPBT/WPBT_Core.php:287 122 #: src/WPBT/WPBT_Core.php:230 138 123 msgid "Nightlies" 139 124 msgstr "" 140 125 141 #: src/WPBT/WPBT_Core.php:2 89126 #: src/WPBT/WPBT_Core.php:232 142 127 msgid "Latest daily updates." 143 128 msgstr "" 144 129 145 #: src/WPBT/WPBT_Core.php:2 94146 #: src/WPBT/WPBT_Core.php: 308130 #: src/WPBT/WPBT_Core.php:237 131 #: src/WPBT/WPBT_Core.php:251 147 132 msgid "Beta/RC Only" 148 133 msgstr "" 149 134 150 #: src/WPBT/WPBT_Core.php:2 96151 #: src/WPBT/WPBT_Core.php: 310135 #: src/WPBT/WPBT_Core.php:239 136 #: src/WPBT/WPBT_Core.php:253 152 137 msgid "This is for the Beta/RC releases only of the selected channel." 153 138 msgstr "" 154 139 155 #: src/WPBT/WPBT_Core.php: 300156 #: src/WPBT/WPBT_Core.php: 314140 #: src/WPBT/WPBT_Core.php:243 141 #: src/WPBT/WPBT_Core.php:257 157 142 msgid "Release Candidates Only" 158 143 msgstr "" 159 144 160 #: src/WPBT/WPBT_Core.php: 302161 #: src/WPBT/WPBT_Core.php: 316145 #: src/WPBT/WPBT_Core.php:245 146 #: src/WPBT/WPBT_Core.php:259 162 147 msgid "This is for the Release Candidate releases only of the selected channel." 163 148 msgstr "" 164 149 165 150 #. translators: %s: version number 166 #: src/WPBT/WPBT_Core.php:3 87151 #: src/WPBT/WPBT_Core.php:329 167 152 #, php-format 168 153 msgid "version %s" 169 154 msgstr "" 170 155 171 #: src/WPBT/WPBT_Core.php:3 93156 #: src/WPBT/WPBT_Core.php:335 172 157 msgid "next development version" 173 158 msgstr "" 174 159 175 160 #. translators: %l: next version numbers 176 #: src/WPBT/WPBT_Core.php:3 98161 #: src/WPBT/WPBT_Core.php:340 177 162 msgid "version %l, whichever is released first" 178 163 msgstr "" 179 164 180 165 #. translators: Used to join items in a list with more than 2 items. 181 #: src/WPBT/WPBT_Core.php:4 92166 #: src/WPBT/WPBT_Core.php:432 182 167 #, php-format 183 168 msgid "%1$s, %2$s" … … 185 170 186 171 #. translators: Used to join last two items in a list with more than 2 times. 187 #: src/WPBT/WPBT_Core.php:4 94172 #: src/WPBT/WPBT_Core.php:434 188 173 #, php-format 189 174 msgid "%1$s, or %2$s" … … 191 176 192 177 #. translators: Used to join items in a list with only 2 items. 193 #: src/WPBT/WPBT_Core.php:4 96178 #: src/WPBT/WPBT_Core.php:436 194 179 #, php-format 195 180 msgid "%1$s or %2$s" … … 281 266 282 267 #. translators: %s: WordPress Beta Tester Settings page URL 283 #: src/WPBT/WP_Beta_Tester.php:12 6268 #: src/WPBT/WP_Beta_Tester.php:125 284 269 #, php-format 285 270 msgid "<strong>Warning:</strong> Your current <a href=\"%s\">WordPress Beta Tester plugin configuration</a> will downgrade your installation to a previous version - please reconfigure it." 286 271 msgstr "" 287 272 288 #: src/WPBT/WP_Beta_Tester.php:2 99273 #: src/WPBT/WP_Beta_Tester.php:249 289 274 msgid "WordPress Beta Testing" 290 275 msgstr "" 291 276 292 277 #. translators: %s: WordPress version 293 #: src/WPBT/WP_Beta_Tester.php: 319278 #: src/WPBT/WP_Beta_Tester.php:269 294 279 #, php-format 295 280 msgid "Please help test <strong>WordPress %s</strong>." … … 297 282 298 283 #. translators: %1: link to closed and reopened trac tickets on current milestone 299 #: src/WPBT/WP_Beta_Tester.php: 325284 #: src/WPBT/WP_Beta_Tester.php:275 300 285 #, php-format 301 286 msgid "Here are the <a href=\"%s\" target=\"_blank\">commits for the milestone</a>." … … 303 288 304 289 #. translators: %s: update version 305 #: src/WPBT/WP_Beta_Tester.php: 334290 #: src/WPBT/WP_Beta_Tester.php:284 306 291 #, php-format 307 292 msgid "Currently your site is set to update to <strong>%s</strong>." … … 309 294 310 295 #. translators: %s: WP Beta Tester settings URL 311 #: src/WPBT/WP_Beta_Tester.php: 340296 #: src/WPBT/WP_Beta_Tester.php:290 312 297 #, php-format 313 298 msgid "Head over to your <a href=\"%s\">WordPress Beta Tester Settings</a> and make sure the <strong>beta/RC</strong> stream is selected." … … 315 300 316 301 #. translators: %s: Milestone version 317 #: src/WPBT/WP_Beta_Tester.php:3 99302 #: src/WPBT/WP_Beta_Tester.php:350 318 303 #, php-format 319 304 msgid "WordPress %s Dev Notes" … … 321 306 322 307 #. translators: %s: Milestone version 323 #: src/WPBT/WP_Beta_Tester.php: 409308 #: src/WPBT/WP_Beta_Tester.php:360 324 309 #, php-format 325 310 msgid "WordPress %s Field Guide" -
wordpress-beta-tester/trunk/readme.txt
r3369865 r3391813 5 5 License: GPLv2 6 6 License URI: https://www.opensource.org/licenses/GPL-2.0 7 Requires at least: 3.17 Requires at least: 4.9 8 8 Requires PHP: 5.6 9 9 Tested up to: 6.9 10 Stable Tag: 3.6.510 Stable Tag: 4.0.0 11 11 12 12 Allows you to easily upgrade for testing the next versions of WordPress. … … 29 29 There is a setting to **Skip successful autoupdate emails**. It functions to disable sending emails to the admin user for successful autoupdates. Only emails indicating failures of the autoupdate process are sent. 30 30 31 There is a setting to **Skip bundled plugins and themes**. It functions to disable the installation of any plugins or themes that are bundled with the Core update. 32 33 31 34 PRs are welcome on [GitHub](https://github.com/afragen/wordpress-beta-tester). 32 35 33 36 ## Changelog 37 38 #### 4.0.0 / 2025-11-07 39 * refactor to use `core_version_check_query_args` filter for simplicity and compatibility 40 * remove checks on `WP_AUTO_UPDATE_CORE` 41 * update to require WordPress 4.9 34 42 35 43 #### 3.6.4 / 2025-07-10 … … 366 374 ## Screenshots 367 375 368 1. This shows the main administration page for the plugin369 2. This shows the Extra Settings page for the plugin370 3. This shows the Dashboard callout376 1. Main Settings page 377 2. Extra Settings page 378 3. Dashboard widget -
wordpress-beta-tester/trunk/src/WPBT/WPBT_Core.php
r3201160 r3391813 28 28 29 29 /** 30 * Holds $core_update_stream_constant from WP_Beta_Tester.31 *32 * @var string|bool33 */34 protected static $core_update_stream_constant;35 36 /**37 * Holds $core_update_channel_constant from WP_Beta_Tester.38 *39 * @var string|bool40 */41 protected static $core_update_channel_constant;42 43 /**44 30 * Constructor. 45 31 * … … 49 35 */ 50 36 public function __construct( WP_Beta_Tester $wp_beta_tester, $options ) { 51 self::$options = $options; 52 $this->wp_beta_tester = $wp_beta_tester; 53 self::$core_update_stream_constant = $wp_beta_tester::$core_update_stream_constant; 54 self::$core_update_channel_constant = $wp_beta_tester::$core_update_channel_constant; 37 self::$options = $options; 38 $this->wp_beta_tester = $wp_beta_tester; 55 39 } 56 40 … … 111 95 'wp_beta_tester_core', 112 96 'wp_beta_tester_core', 113 array( 114 'class' => 'wpbt-settings-title' . ( ! self::$core_update_channel_constant ? '' : 'hidden' ), 115 ) 97 array( 'class' => 'wpbt-settings-title' ) 116 98 ); 117 99 } … … 164 146 $this->wp_beta_tester->action_admin_head_plugins_php(); // Check configuration. 165 147 $preferred = $this->wp_beta_tester->get_preferred_from_update_core(); 166 if ( 'development' !== $preferred->response) {167 echo '<div class=" updated fade">';168 echo '<p>' . wp_kses_post( __( '<strong>Please note:</strong> There are no development builds available for the beta stream you have chosen, so you will receive normal update notifications.', 'wordpress-beta-tester' ) ) . '</p>';169 echo '</ div>';148 if ( defined( 'WP_AUTO_UPDATE_CORE' ) && WP_AUTO_UPDATE_CORE ) { 149 echo '<div class="notice notice-warning fade"><p>'; 150 echo wp_kses_post( __( '<strong>Warning:</strong> The `WP_AUTO_UPDATE_CORE` constant is set. WordPress Beta Tester settings will be overridden.', 'wordpress-beta-tester' ) ); 151 echo '</p></div>'; 170 152 } 171 153 … … 211 193 </tr> 212 194 </fieldset> 213 <?php 214 if ( self::$core_update_channel_constant ) { 215 ?> 216 <fieldset> 217 <tr> 218 <th><label></label></th> 219 <td><?php esc_html_e( 'Channel options are overridden by the `WP_AUTO_UPDATE_CORE` constant.', 'wordpress-beta-tester' ); ?><p> 220 <?php 221 printf( 222 /* translators: %s: WP_AUTO_UPDATE_CORE setting */ 223 esc_html__( '`WP_AUTO_UPDATE_CORE` is defined as `%s`.', 'wordpress-beta-tester' ), 224 esc_attr( self::$core_update_channel_constant ) 225 ); 226 ?> 227 </p></td> 228 </tr> 229 </fieldset> 230 <?php 231 } else { 232 ?> 233 <fieldset> 195 <fieldset> 234 196 <tr> 235 197 <th><label><input name="wp-beta-tester" id="update-stream-point-nightlies" type="radio" value="branch-development" class="tog" <?php checked( 'branch-development', self::$options['channel'] ); ?> /> … … 238 200 <td> 239 201 <?php 240 printf(241 /* translators: %s: Current WordPress version base, eg 5.5 */242 esc_html__( 'This contains the work that is occurring on a branch in preparation for a %s point release. This should also be fairly stable but will be available before the branch is ready for release.', 'wordpress-beta-tester' ),243 esc_attr( $next_versions['point'] )244 );202 printf( 203 /* translators: %s: Current WordPress version base, eg 5.5 */ 204 esc_html__( 'This contains the work that is occurring on a branch in preparation for a %s point release. This should also be fairly stable but will be available before the branch is ready for release.', 'wordpress-beta-tester' ), 205 esc_attr( $next_versions['point'] ) 206 ); 245 207 ?> 246 208 </td> … … 250 212 <?php esc_html_e( 'Bleeding edge', 'wordpress-beta-tester' ); ?> 251 213 </label></th> 252 <td><?php echo wp_kses_post( __( 'This is the bleeding edge development code from `trunk` which may be unstable at times. <em>Only use this if you really know what you are doing</em>.', 'wordpress-beta-tester' ) ); ?></td> 253 </tr> 254 </fieldset> 255 <?php 256 } 214 <td><?php echo wp_kses_post( __( 'This is the bleeding edge development code from `trunk` which may be unstable at times. <em>Only use this if you really know what you are doing</em>.', 'wordpress-beta-tester' ) ); ?></td> 215 </tr> 216 </fieldset> 217 <?php 257 218 } 258 219 … … 263 224 */ 264 225 public function stream_radio_group() { 265 if ( self::$core_update_stream_constant ) { 266 ?> 267 <fieldset> 268 <tr> 269 <th><label></label></th> 270 <td><?php esc_html_e( 'Stream options are overridden by the `WP_AUTO_UPDATE_CORE` constant.', 'wordpress-beta-tester' ); ?><p> 271 <?php 272 printf( 273 /* translators: %s: WP_AUTO_UPDATE_CORE setting */ 274 esc_html__( '`WP_AUTO_UPDATE_CORE` is defined as `%s`.', 'wordpress-beta-tester' ), 275 esc_attr( self::$core_update_stream_constant ) 276 ); 277 ?> 278 </p></td> 279 </tr> 280 </fieldset> 281 <?php 282 } else { 283 ?> 284 <fieldset> 226 ?> 227 <fieldset> 285 228 <tr> 286 229 <th><label><input name="wp-beta-tester-beta-rc" id="update-stream-beta" type="radio" value="" class="tog" <?php checked( false, self::$options['stream-option'] ); ?> /> … … 317 260 </tr> 318 261 <?php endif; ?> 319 </fieldset> 320 <?php 321 } 262 </fieldset> 263 <?php 322 264 } 323 265 … … 332 274 ?> 333 275 <div> 334 <?php if ( 'wp_beta_tester_core' === $tab ) : ?>276 <?php if ( 'wp_beta_tester_core' === $tab ) : ?> 335 277 <form method="post" action="<?php echo esc_attr( $action ); ?>"> 336 278 <?php settings_fields( 'wp_beta_tester_core' ); ?> … … 345 287 let $bleedingEdgeStream = $( '.bleeding-edge-stream' ); 346 288 347 <?php if ( 'development' !== self::$options['channel'] ) : // Time to do our basic JS magic :). ?>289 <?php if ( 'development' !== self::$options['channel'] ) : // Time to do our basic JS magic :). ?> 348 290 $bleedingEdgeStream.hide(); 349 291 <?php endif; ?> … … 383 325 384 326 // Site is not on a beta/RC stream so use the preferred version. 385 if ( ! $beta_rc && ! empty( $next_version ) && ! self::$core_update_stream_constant) {327 if ( ! $beta_rc && ! empty( $next_version ) ) { 386 328 /* translators: %s: version number */ 387 329 return sprintf( __( 'version %s', 'wordpress-beta-tester' ), $preferred_version ); … … 466 408 ); 467 409 468 if ( ! $next_versions['beta'] || 'rc' === self::$options['stream-option'] 469 || 'rc' === self::$core_update_stream_constant || 1 < $next_rc 470 ) { 410 if ( ! $next_versions['beta'] || 'rc' === self::$options['stream-option'] || 1 < $next_rc ) { 471 411 unset( $next_versions['beta'] ); 472 412 } -
wordpress-beta-tester/trunk/src/WPBT/WPBT_Settings.php
r3261736 r3391813 285 285 <h1><?php esc_html_e( 'Beta Testing WordPress', 'wordpress-beta-tester' ); ?></h1> 286 286 <?php $this->options_tabs(); ?> 287 <div class=" updatedfade">287 <div class="notice notice-info fade"> 288 288 <p><?php echo wp_kses_post( __( '<strong>Please note:</strong> Once you have switched your website to one of these beta versions of software, it will not always be possible to downgrade as the database structure may be updated during the development of a major release.', 'wordpress-beta-tester' ) ); ?></p> 289 289 </div> -
wordpress-beta-tester/trunk/src/WPBT/WP_Beta_Tester.php
r3369865 r3391813 28 28 29 29 /** 30 * Holds WP_AUTO_UPDATE_CORE if set.31 *32 * @var string|bool33 */34 public static $core_update_stream_constant;35 36 /**37 * Holds WP_AUTO_UPDATE_CORE if set.38 *39 * @var string|bool40 */41 public static $core_update_channel_constant;42 43 /**44 30 * Constructor. 45 31 * … … 49 35 */ 50 36 public function __construct( $file, $options ) { 51 $this->file = $file; 52 self::$options = $options; 53 self::$core_update_stream_constant = defined( 'WP_AUTO_UPDATE_CORE' ) && in_array( \WP_AUTO_UPDATE_CORE, array( 'beta', 'rc' ), true ) ? \WP_AUTO_UPDATE_CORE : false; 54 self::$core_update_channel_constant = defined( 'WP_AUTO_UPDATE_CORE' ) && in_array( \WP_AUTO_UPDATE_CORE, array( 'development', 'branch-development' ), true ) ? \WP_AUTO_UPDATE_CORE : false; 37 $this->file = $file; 38 self::$options = $options; 55 39 } 56 40 … … 78 62 ) 79 63 ); 80 add_filter( 'pre_http_request', array( $this, 'filter_http_request' ), 10, 3 ); 64 65 // Set channel query arg for core version check. 66 add_filter( 'core_version_check_query_args', array( $this, 'set_core_update_channel_constant' ), 10, 1 ); 67 68 /* // phpcs:ignore Squiz.PHP.CommentedOutCode.Found 69 * For testing pretend we're on another release. 70 * $url = add_query_arg( 'pretend_releases', array( '5.6-beta2' ), $url ); 71 add_filter( 72 'core_version_check_query_args', 73 function ( $query_args ) { 74 return array_merge( $query_args, array( 'pretend_releases' => array( '5.6-beta2' ) ) ); 75 }, 76 10, 77 1 78 ); 79 */ 81 80 82 81 // Fixed in https://core.trac.wordpress.org/changeset/49708. … … 132 131 133 132 /** 134 * Filter 'pre_http_request' to add beta-tester API check. 135 * 136 * @param mixed $result $result from filter. 137 * @param array $args Array of filter args. 138 * @param string $url URL from filter. 139 * @return stdClass Output from wp_remote_get(). 140 */ 141 public function filter_http_request( $result, $args, $url ) { 142 if ( $result || isset( $args['_beta_tester'] ) ) { 143 return $result; 144 } 145 if ( false === strpos( $url, '//api.wordpress.org/core/version-check/' ) ) { 146 return $result; 147 } 148 149 // It's a core-update request. 150 $args['_beta_tester'] = true; 151 152 $url = empty( self::$options['stream-option'] ) 153 ? add_query_arg( 'channel', self::$options['channel'], $url ) 154 : add_query_arg( 'channel', self::$options['stream-option'], $url ); 155 156 // Use WP_AUTO_UPDATE_CORE if set. 157 $url = self::$core_update_stream_constant ? add_query_arg( 'channel', self::$core_update_stream_constant, $url ) : $url; 158 $url = self::$core_update_channel_constant ? add_query_arg( 'channel', self::$core_update_channel_constant, $url ) : $url; 159 160 // Make adjustments for switching between channels. 161 $url = $this->channel_switching_modification( $url ); 162 163 // phpcs:ignore Squiz.PHP.CommentedOutCode.Found 164 // $url = add_query_arg( 'pretend_releases', array( '5.6-beta2' ), $url ); 165 // pretend_releases[]=5.6-beta2 query arg example. 166 167 return wp_remote_get( $url, $args ); 168 } 169 170 /** 171 * Modify URL to version check to return expected API response. 172 * 173 * @param string $url Version check URL. 174 * 175 * @return string $url 176 */ 177 private function channel_switching_modification( $url ) { 178 $next_versions = ( new WPBT_Core( $this, static::$options ) )->calculate_next_versions(); 179 $wp_version = get_bloginfo( 'version' ); 180 $channel = self::$core_update_channel_constant ? self::$core_update_channel_constant : self::$options['channel']; 181 182 if ( false !== strpos( $channel, 'development' ) 183 && version_compare( $wp_version, $next_versions['point'], '<' ) 184 ) { 185 return $url; 186 } 187 188 switch ( $channel ) { 189 case 'branch-development': 190 $url = add_query_arg( 'version', $next_versions['point'] . '-alpha', $url ); 191 break; 192 case 'development': 193 if ( false !== strpos( $wp_version, $next_versions['point'] ) 194 || version_compare( $wp_version, $next_versions['point'], '<' ) 195 ) { 196 $url = add_query_arg( 'version', $next_versions['release'] . '-alpha', $url ); 197 } 198 break; 199 } 200 201 return $url; 133 * Get channel query arg. 134 * 135 * @return string 136 */ 137 public static function get_channel() { 138 return empty( self::$options['stream-option'] ) 139 ? self::$options['channel'] 140 : self::$options['stream-option']; 141 } 142 143 /** 144 * Set channel query arg in wp_version_check(). 145 * 146 * @param array $query_args Array of query args. 147 * 148 * @return array 149 */ 150 public function set_core_update_channel_constant( $query_args ) { 151 return array_merge( $query_args, array( 'channel' => self::get_channel() ) ); 202 152 } 203 153 … … 358 308 359 309 // For testing, set cache to 10 seconds. 310 // phpcs:ignore Squiz.Commenting.InlineComment.InvalidEndChar 360 311 // add_filter( 'wp_feed_cache_transient_lifetime', function () { return 10; } ); 361 312 -
wordpress-beta-tester/trunk/vendor/composer/installed.json
r3369865 r3391813 102 102 { 103 103 "name": "phpcsstandards/phpcsextra", 104 "version": "1.4. 1",105 "version_normalized": "1.4. 1.0",104 "version": "1.4.2", 105 "version_normalized": "1.4.2.0", 106 106 "source": { 107 107 "type": "git", 108 108 "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", 109 "reference": "8 82b8c947ada27eb002870fe77fee9ce0a454cdb"109 "reference": "8e89a01c7b8fed84a12a2a7f5a23a44cdbe4f62e" 110 110 }, 111 111 "dist": { 112 112 "type": "zip", 113 "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/8 82b8c947ada27eb002870fe77fee9ce0a454cdb",114 "reference": "8 82b8c947ada27eb002870fe77fee9ce0a454cdb",113 "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/8e89a01c7b8fed84a12a2a7f5a23a44cdbe4f62e", 114 "reference": "8e89a01c7b8fed84a12a2a7f5a23a44cdbe4f62e", 115 115 "shasum": "" 116 116 }, … … 127 127 "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" 128 128 }, 129 "time": "2025- 09-05T06:54:52+00:00",129 "time": "2025-10-28T17:00:02+00:00", 130 130 "type": "phpcodesniffer-standard", 131 131 "extra": { … … 187 187 { 188 188 "name": "phpcsstandards/phpcsutils", 189 "version": "1.1. 2",190 "version_normalized": "1.1. 2.0",189 "version": "1.1.3", 190 "version_normalized": "1.1.3.0", 191 191 "source": { 192 192 "type": "git", 193 193 "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", 194 "reference": " b22b59e3d9ec8fe4953e42c7d59117c6eae70eae"194 "reference": "8b8e17615d04f2fc2cd46fc1d2fd888fa21b3cf9" 195 195 }, 196 196 "dist": { 197 197 "type": "zip", 198 "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/ b22b59e3d9ec8fe4953e42c7d59117c6eae70eae",199 "reference": " b22b59e3d9ec8fe4953e42c7d59117c6eae70eae",198 "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/8b8e17615d04f2fc2cd46fc1d2fd888fa21b3cf9", 199 "reference": "8b8e17615d04f2fc2cd46fc1d2fd888fa21b3cf9", 200 200 "shasum": "" 201 201 }, … … 212 212 "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0 || ^3.0.0" 213 213 }, 214 "time": "2025- 09-05T00:00:03+00:00",214 "time": "2025-10-16T16:39:32+00:00", 215 215 "type": "phpcodesniffer-standard", 216 216 "extra": { … … 283 283 { 284 284 "name": "squizlabs/php_codesniffer", 285 "version": "3.13. 4",286 "version_normalized": "3.13. 4.0",285 "version": "3.13.5", 286 "version_normalized": "3.13.5.0", 287 287 "source": { 288 288 "type": "git", 289 289 "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", 290 "reference": " ad545ea9c1b7d270ce0fc9cbfb884161cd706119"290 "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4" 291 291 }, 292 292 "dist": { 293 293 "type": "zip", 294 "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ ad545ea9c1b7d270ce0fc9cbfb884161cd706119",295 "reference": " ad545ea9c1b7d270ce0fc9cbfb884161cd706119",294 "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4", 295 "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4", 296 296 "shasum": "" 297 297 }, … … 305 305 "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" 306 306 }, 307 "time": "2025- 09-05T05:47:09+00:00",307 "time": "2025-11-04T16:30:35+00:00", 308 308 "bin": [ 309 309 "bin/phpcbf", … … 311 311 ], 312 312 "type": "library", 313 "extra": {314 "branch-alias": {315 "dev-master": "3.x-dev"316 }317 },318 313 "installation-source": "dist", 319 314 "notification-url": "https://packagist.org/downloads/", -
wordpress-beta-tester/trunk/vendor/composer/installed.php
r3369865 r3391813 4 4 'pretty_version' => 'dev-master', 5 5 'version' => 'dev-master', 6 'reference' => ' 3157d931e1241c2e8ee94768674ee9684e4e606e',6 'reference' => 'a8d784f6503c52311db2e2df9775d6c3cfc9560e', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-master', 15 15 'version' => 'dev-master', 16 'reference' => ' 3157d931e1241c2e8ee94768674ee9684e4e606e',16 'reference' => 'a8d784f6503c52311db2e2df9775d6c3cfc9560e', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../', … … 30 30 ), 31 31 'phpcsstandards/phpcsextra' => array( 32 'pretty_version' => '1.4. 1',33 'version' => '1.4. 1.0',34 'reference' => '8 82b8c947ada27eb002870fe77fee9ce0a454cdb',32 'pretty_version' => '1.4.2', 33 'version' => '1.4.2.0', 34 'reference' => '8e89a01c7b8fed84a12a2a7f5a23a44cdbe4f62e', 35 35 'type' => 'phpcodesniffer-standard', 36 36 'install_path' => __DIR__ . '/../phpcsstandards/phpcsextra', … … 39 39 ), 40 40 'phpcsstandards/phpcsutils' => array( 41 'pretty_version' => '1.1. 2',42 'version' => '1.1. 2.0',43 'reference' => ' b22b59e3d9ec8fe4953e42c7d59117c6eae70eae',41 'pretty_version' => '1.1.3', 42 'version' => '1.1.3.0', 43 'reference' => '8b8e17615d04f2fc2cd46fc1d2fd888fa21b3cf9', 44 44 'type' => 'phpcodesniffer-standard', 45 45 'install_path' => __DIR__ . '/../phpcsstandards/phpcsutils', … … 48 48 ), 49 49 'squizlabs/php_codesniffer' => array( 50 'pretty_version' => '3.13. 4',51 'version' => '3.13. 4.0',52 'reference' => ' ad545ea9c1b7d270ce0fc9cbfb884161cd706119',50 'pretty_version' => '3.13.5', 51 'version' => '3.13.5.0', 52 'reference' => '0ca86845ce43291e8f5692c7356fccf3bcf02bf4', 53 53 'type' => 'library', 54 54 'install_path' => __DIR__ . '/../squizlabs/php_codesniffer', -
wordpress-beta-tester/trunk/wp-beta-tester.php
r3369865 r3391813 14 14 * Description: Allows you to easily upgrade to Beta releases. 15 15 * Author: WordPress Upgrade/Install Team 16 * Version: 3.6.516 * Version: 4.0.0 17 17 * Network: true 18 18 * Author URI: https://make.wordpress.org/core/components/upgrade-install/ … … 22 22 * License URI: https://www.opensource.org/licenses/GPL-2.0 23 23 * GitHub Plugin URI: https://github.com/afragen/wordpress-beta-tester 24 * Requires at least: 3.124 * Requires at least: 4.9 25 25 * Requires PHP: 5.6 26 26 */
Note: See TracChangeset
for help on using the changeset viewer.