Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add checksums API #22

Merged
merged 8 commits into from
Apr 17, 2021
Merged

Add checksums API #22

merged 8 commits into from
Apr 17, 2021

Conversation

nylen
Copy link
Contributor

@nylen nylen commented Mar 6, 2021

Looks to work properly from my quick testing. Closes #16.

@nylen
Copy link
Contributor Author

nylen commented Mar 6, 2021

Results available here:

@nylen
Copy link
Contributor Author

nylen commented Mar 6, 2021

This has different behavior than the WP checksums API for versions that aren't found: https://api.wordpress.org/core/checksums/1.0/?version=4.9.99&locale=en_US returns {"checksums":false} while https://api-v1-test.classicpress.net/checksums/1.2.99.json returns a 404 error.

@timbocode
Copy link
Contributor

timbocode commented Mar 12, 2021

This seems to work exactly as required. I've carried out extensive testing on an upgrade from CP 1.1.4 to CP 1.2.0 and all appears to have gone well.

APIs used for testing

CP 1.1.4: https://api-v1-test.classicpress.net/checksums/1.1.4.json
CP 1.2.0: https://api-v1-test.classicpress.net/checksums/1.2.0.json

Result

The upgrade copied 275 files in total as shown here (arranged in alphabetical order for convenience):

Show files
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/composer.json
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/license.txt
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/readme.html
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-login.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/about.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/credits.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/common.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/common.min.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/common-rtl.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/common-rtl.min.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/customize-controls.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/customize-controls.min.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/customize-controls-rtl.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/customize-controls-rtl.min.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/deprecated-media-rtl.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/deprecated-media-rtl.min.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/forms.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/forms.min.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/forms-rtl.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/forms-rtl.min.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/login.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/login.min.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/login-rtl.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/css/login-rtl.min.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/freedoms.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/images/bubble_bg.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/images/date-button.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/images/date-button-2x.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/images/media-button-music.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/images/media-button-other.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/images/sort.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/images/sort-2x.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/images/xit.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/images/xit-2x.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/ajax-actions.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/class-core-upgrader.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/class-ftp.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/class-pclzip.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/class-wp-ajax-upgrader-skin.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/class-wp-filesystem-direct.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/class-wp-filesystem-ftpext.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/class-wp-filesystem-ssh2.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/class-wp-importer.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/misc.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/plugin-install.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/schema.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/update.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/includes/upgrade.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/install.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/accordion.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/code-editor.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/color-picker.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/comment.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/common.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/custom-background.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/customize-controls.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/customize-nav-menus.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/customize-widgets.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/dashboard.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/edit-comments.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/editor.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/editor-expand.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/gallery.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/image-edit.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/inline-edit-post.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/inline-edit-tax.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/language-chooser.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/link.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/media.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/media-gallery.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/media-upload.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/nav-menu.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/options-general.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/options-general.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/password-strength-meter.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/plugin-install.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/post.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/postbox.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/revisions.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/set-post-thumbnail.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/svg-painter.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/tags.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/tags-box.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/tags-suggest.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/theme.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/theme-plugin-editor.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/updates.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/user-profile.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/user-suggest.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/widgets.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/widgets/custom-html-widgets.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/widgets/media-audio-widget.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/widgets/media-gallery-widget.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/widgets/media-image-widget.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/widgets/media-video-widget.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/widgets/media-widgets.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/widgets/text-widgets.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/js/xfn.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/options.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/options-general.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/update-core.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-admin/user-edit.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/class-json.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/class-phpmailer.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/class-pop3.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/class-requests.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/class-smtp.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/class-wp-customize-manager.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/class-wp-editor.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/css/admin-bar.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/css/admin-bar.min.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/css/admin-bar-rtl.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/css/admin-bar-rtl.min.css
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/embed.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/formatting.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/functions.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/general-template.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/getid3.lib.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/getid3.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/license.txt
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.audio.ac3.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.audio.dts.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.audio.flac.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.audio.mp3.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.audio.ogg.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.audio-video.asf.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.audio-video.flv.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.audio-video.matroska.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.audio-video.quicktime.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.audio-video.riff.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.tag.apetag.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.tag.id3v1.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.tag.id3v2.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/module.tag.lyrics3.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/ID3/readme.txt
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/blank.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/down_arrow.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/down_arrow-2x.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_arrow.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_biggrin.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_confused.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_cool.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_eek.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_exclaim.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_idea.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_mad.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_mrgreen.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_neutral.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_question.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_razz.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_sad.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_smile.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_surprised.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_twisted.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/smilies/icon_wink.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/xit.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/images/xit-2x.gif
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/admin-bar.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/api-request.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/autosave.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/colorpicker.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/customize-base.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/customize-loader.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/customize-models.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/customize-preview.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/customize-preview-nav-menus.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/customize-preview-widgets.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/customize-selective-refresh.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/customize-views.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/heartbeat.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/hoverIntent.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/imagesloaded.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/jquery.masonry.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/accordion.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/autocomplete.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/button.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/core.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/datepicker.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/dialog.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/draggable.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/droppable.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-blind.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-bounce.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-clip.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-drop.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-explode.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-fade.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-fold.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-highlight.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-puff.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-pulsate.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-scale.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-shake.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-size.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-slide.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/effect-transfer.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/menu.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/mouse.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/position.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/progressbar.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/resizable.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/selectable.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/selectmenu.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/slider.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/sortable.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/spinner.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/tabs.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/tooltip.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/jquery/ui/widget.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/json2.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/mce-view.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/media-audiovideo.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/media-audiovideo.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/media-editor.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/mediaelement/mediaelement-migrate.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/mediaelement/wp-mediaelement.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/mediaelement/wp-playlist.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/media-grid.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/media-grid.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/media-models.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/media-models.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/media-views.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/media-views.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/plupload/handlers.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/plupload/moxie.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/plupload/plupload.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/plupload/wp-plupload.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/quicktags.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/shortcode.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/tinymce/plugins/wpautoresize/plugin.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/tinymce/plugins/wpdialogs/plugin.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/tinymce/plugins/wpemoji/plugin.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/tinymce/plugins/wpgallery/plugin.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/tinymce/plugins/wplink/plugin.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/tinymce/plugins/wptextpattern/plugin.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/tinymce/plugins/wpview/plugin.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/tinymce/wp-tinymce.js.gz 
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/twemoji.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/utils.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-a11y.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-ajax-response.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-api.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-auth-check.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-backbone.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-custom-header.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-embed.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-embed-template.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-emoji.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-emoji-loader.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-emoji-release.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wplink.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-list-revisions.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-lists.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-pointer.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/js/wp-util.min.js
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/load.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/meta.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/option.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/pluggable.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/plugin.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/Requests/Cookie.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/Requests/Transport/fsockopen.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/rest-api/class-wp-rest-request.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/script-loader.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/SimplePie/Parse/Date.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/theme.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/update.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/user.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/version.php
wp-content/upgrade/1.2.0-pqqC4O/ClassicPress-release-1.2.0/wp-includes/wp-db.php

To cross-check this, I used the command diff -qr cp1.1.4/ cp1.2.0/ to compare 2 clean installations of CP 1.1.4 and CP 1.2.0 and the files highlighted as different were identical to the files copied during the upgrade. The only slight anomaly is that readme.html is copied during the upgrade whether it has change or not.

Error checking

To test what happens when an invalid API URL is used, I set the "new" API to https://api-v1-test.classicpress.net/checksums/4.9.15.json. Although this returned a 404, the upgrade continued but copied all files instead of just the ones that had changed.

@nylen
Copy link
Contributor Author

nylen commented Mar 12, 2021

Thank you for checking @timbocode. It sounds like this is doing what it's supposed to do, but I am still not clear on the exact conditions required for a file not to be copied/upgraded as it should be. Does this happen on any upgrade from v1.1.4 to v1.2.0, or is an earlier version also required to be installed before v1.1.4?

I am also thinking it would be a good idea to add another path component here for the type of checksum being used. This would mean that https://api-v1-test.classicpress.net/checksums/1.1.4.json becomes https://api-v1-test.classicpress.net/checksums/md5/1.1.4.json, and we'd have a natural place to put checksums using other hash algorithms in the future.

@nylen
Copy link
Contributor Author

nylen commented Mar 12, 2021

Also, a minor improvement that shouldn't block us getting the initial version out, but the 1.0.0-alpha0 builds shouldn't be part of the "release" section at https://api-v1-test.classicpress.net/checksums/, and the display/sorting of the "nightly" section can be improved further (maybe collapsible sections by base version number using the <details> and <summary> tags)

@nylen nylen merged commit 327768b into master Apr 17, 2021
@nylen nylen deleted the add/checksums-api branch April 17, 2021 00:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add checksums API
2 participants