Make WordPress Core

Changeset 50208


Ignore:
Timestamp:
02/05/2021 04:19:31 AM (6 years ago)
Author:
desrosj
Message:

Build/Test Tools: Support NodeJS 14.x in the 4.5 branch.

This updates the 4.5 branch to support the latest LTS version of NodeJS (currently 14.x), allowing the same version to be used across all WordPress branches that receive security updates as a courtesy.

Because older branches use (really) old versions of NodeJS, the local Docker environment cannot be backported since the needed dependencies will not run on these older versions (see #48301). This also blocks the ability to move automated testing over to GitHub Actions (see #50401).

This also replaces the npm-shrinkwrap.json with a package-lock.json file. Lock files were not supported in earlier versions of NPM, but can now be used.

In addition to backporting the package updates that happened after branching 4.5, dependencies that were removed in future releases have also been updated to their latest versions.

Props desrosj, dd32, netweb, jorbin.
Merges [37185,37212,37612,38111,38688,39110,39113-39119,39478,42460-42461,42463,42887,43320,43323,43977,44219,44233,44728,45321,45765,46404,46408-46409,47404,47867-47869,47872-47873,48705,49636,49933,49937,49939,50017,50126,50176,50185,50192] to the 4.5 branch.
See #52341.

Location:
branches/4.5
Files:
1 added
1 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • branches/4.5

  • branches/4.5/.editorconfig

    r32116 r50208  
    1414indent_style = tab
    1515
    16 [{.jshintrc,*.json,*.yml}]
     16[*.yml]
    1717indent_style = space
    1818indent_size = 2
  • branches/4.5/.nvmrc

    r49658 r50208  
    1 v4.7.2
     114
  • branches/4.5/Gruntfile.js

    r36955 r50208  
    22module.exports = function(grunt) {
    33        var path = require('path'),
    4                 gitorsvn = require('git-or-svn'),
     4                fs = require( 'fs' ),
    55                SOURCE_DIR = 'src/',
    66                BUILD_DIR = 'build/',
    77                autoprefixer = require('autoprefixer'),
     8                sass = require( 'sass' ),
    89                mediaConfig = {},
    910                mediaBuilds = ['audiovideo', 'grid', 'models', 'views'];
    … …  
    2627                                processors: [
    2728                                        autoprefixer({
    28                                                 browsers: [
    29                                                         'Android >= 2.1',
    30                                                         'Chrome >= 21',
    31                                                         'Edge >= 12',
    32                                                         'Explorer >= 7',
    33                                                         'Firefox >= 17',
    34                                                         'Opera >= 12.1',
    35                                                         'Safari >= 6.0'
    36                                                 ],
    3729                                                cascade: false
    3830                                        })
    … …  
    167159                                src: ['wp-admin/css/colors/*/colors.scss'],
    168160                                options: {
    169                                         outputStyle: 'expanded'
     161                                        implementation: sass
    170162                                }
    171163                        }
    … …  
    442434                uglify: {
    443435                        options: {
    444                                 ASCIIOnly: true
     436                                output: {
     437                                        ascii_only: true,
     438                                        ie8: true
     439                                }
    445440                        },
    446441                        core: {
    … …  
    499494                                options: {
    500495                                        // Preserve comments that start with a bang.
    501                                         preserveComments: /^!/
     496                                        output: {
     497                                                comments: /^!/
     498                                        }
    502499                                },
    503500                                expand: true,
    … …  
    690687        grunt.registerTask( 'precommit', 'Runs test and build tasks in preparation for a commit', function() {
    691688                var done = this.async();
    692 
    693                 // Figure out what tasks to run based on what files have been modified.
    694                 function enqueueTestingTasksForModifiedFiles( filesModified ) {
    695                         var taskList = ['precommit:base'];
    696                         if ( /.*\.js/.test( filesModified ) ) {
    697                                 grunt.log.write( 'JavaScript source files modified. JavaScript tests will be run.\n');
    698                                 taskList = taskList.concat( ['precommit:js'] );
    699                         }
    700                         if ( /src.*\.css/.test( filesModified ) ) {
    701                                 grunt.log.write( 'CSS source files modified. CSS tests will be run.\n');
    702                                 taskList = taskList.concat( ['postcss:core'] );
    703                         }
    704                         if ( /.*\.php/.test( filesModified ) ) {
    705                                 grunt.log.write( 'PHP source files modified. PHP tests will be run.\n');
    706                                 taskList = taskList.concat( ['precommit:php'] );
    707                         }
    708                         grunt.task.run( taskList );
    709                         done();
     689                var map = {
     690                        svn: 'svn status --ignore-externals',
     691                        git: 'git status --short'
     692                };
     693
     694                find( [
     695                        __dirname + '/.svn',
     696                        __dirname + '/.git',
     697                        path.dirname( __dirname ) + '/.svn'
     698                ] );
     699
     700                function find( set ) {
     701                        var dir;
     702
     703                        if ( set.length ) {
     704                                fs.stat( dir = set.shift(), function( error ) {
     705                                        error ? find( set ) : run( path.basename( dir ).substr( 1 ) );
     706                                } );
     707                        } else {
     708                                grunt.fatal( 'This WordPress install is not under version control.' );
     709                        }
    710710                }
    711                 gitorsvn( __dirname, function(gitorsvn) {
    712                         if ( gitorsvn === 'svn' ) {
    713                                 grunt.util.spawn(
    714                                         {
    715                                                 cmd: 'svn',
    716                                                 args: ['status']
    717                                         },
    718                                         function(error, result, code) {
    719                                                 if ( code !== 0 ) {
    720                                                         grunt.fail.warn( 'The `svn status` command returned a non-zero exit code.', code );
    721                                                 }
    722                                                 enqueueTestingTasksForModifiedFiles( result.stdout );
    723                                         }
    724                                 );
    725                         } else if ( gitorsvn === 'git' ) {
    726                                 grunt.util.spawn(
    727                                         {
    728                                                 cmd: 'git',
    729                                                 args: ['diff', '--name-only']
    730                                         },
    731                                         function(error, result, code) {
    732                                                 if ( code !== 0 ) {
    733                                                         grunt.fail.warn( 'The `git diff --name-only` command returned a non-zero exit code.', code );
    734                                                 }
    735                                                 enqueueTestingTasksForModifiedFiles( result.stdout );
    736                                         }
    737                                 );
    738                         } else {
    739                                 grunt.log.write( 'This WordPress install is not under version control. No tests will be run.' );
    740                         }
    741                 });
    742         });
     711
     712                function run( type ) {
     713                        var command = map[ type ].split( ' ' );
     714                        var taskList = [ 'precommit:base' ];
     715
     716                        grunt.util.spawn( {
     717                                cmd: command.shift(),
     718                                args: command
     719                        }, function( error, result, code ) {
     720                                if ( code !== 0 ) {
     721                                        grunt.fatal( 'The `' +  map[ type ] + '` command returned a non-zero exit code.', code );
     722                                }
     723
     724                                [ 'js', 'css', 'php' ].forEach( function( extension ) {
     725                                        if ( ( result.stdout + '\n' ).indexOf( '.' + extension + '\n' ) !== -1 ) {
     726                                                grunt.log.writeln( extension.toUpperCase() + ' files modified. ' + extension.toUpperCase() + ' tests will be run.');
     727                                                taskList.push( 'precommit:' + extension );
     728                                        }
     729                                } );
     730
     731                                grunt.task.run( taskList );
     732
     733                                done();
     734                        } );
     735                }
     736        } );
    743737
    744738        grunt.registerTask( 'copy:all', [
  • branches/4.5/package.json

    r49419 r50208  
    11{
    2   "name": "WordPress",
    3   "version": "4.5.23",
    4   "description": "WordPress is web software you can use to create a beautiful website or blog.",
    5   "repository": {
    6     "type": "svn",
    7     "url": "https://develop.svn.wordpress.org/trunk"
    8   },
    9   "author": "The WordPress Contributors",
    10   "license": "GPL-2.0+",
    11   "devDependencies": {
    12     "autoprefixer": "~6.3.3",
    13     "git-or-svn": "~0.1.0",
    14     "grunt": "~0.4.5",
    15     "grunt-browserify": "~5.0.0",
    16     "grunt-contrib-clean": "~1.0.0",
    17     "grunt-contrib-compress": "~1.1.0",
    18     "grunt-contrib-concat": "~1.0.0",
    19     "grunt-contrib-copy": "~1.0.0",
    20     "grunt-contrib-cssmin": "~1.0.0",
    21     "grunt-contrib-imagemin": "~1.0.0",
    22     "grunt-contrib-jshint": "~1.0.0",
    23     "grunt-contrib-qunit": "~1.1.0",
    24     "grunt-contrib-uglify": "~0.10.0",
    25     "grunt-contrib-watch": "~1.0.0",
    26     "grunt-includes": "~0.5.1",
    27     "grunt-jsvalidate": "~0.2.2",
    28     "grunt-legacy-util": "^0.2.0",
    29     "grunt-patch-wordpress": "~0.3.0",
    30     "grunt-postcss": "~0.7.1",
    31     "grunt-rtlcss": "~2.0.1",
    32     "grunt-sass": "~1.1.0",
    33     "matchdep": "~1.0.0"
    34   }
     2        "name": "WordPress",
     3        "version": "4.5.23",
     4        "description": "WordPress is web software you can use to create a beautiful website or blog.",
     5        "repository": {
     6                "type": "svn",
     7                "url": "https://develop.svn.wordpress.org/trunk"
     8        },
     9        "engines": {
     10                "node": ">=14.15.0",
     11                "npm": ">=6.14.8"
     12        },
     13        "author": "The WordPress Contributors",
     14        "license": "GPL-2.0+",
     15        "browserslist": [
     16                "Android >= 2.1",
     17                "Chrome >= 21",
     18                "Edge >= 12",
     19                "Explorer >= 7",
     20                "Firefox >= 17",
     21                "Opera >= 12.1",
     22                "Safari >= 6.0"
     23        ],
     24        "devDependencies": {
     25                "autoprefixer": "^9.8.6",
     26                "grunt": "~1.3.0",
     27                "grunt-browserify": "~5.3.0",
     28                "grunt-contrib-clean": "~2.0.0",
     29                "grunt-contrib-compress": "~2.0.0",
     30                "grunt-contrib-concat": "~1.0.1",
     31                "grunt-contrib-copy": "~1.0.0",
     32                "grunt-contrib-cssmin": "~3.0.0",
     33                "grunt-contrib-imagemin": "~4.0.0",
     34                "grunt-contrib-jshint": "3.0.0",
     35                "grunt-contrib-qunit": "^4.0.0",
     36                "grunt-contrib-uglify": "~5.0.0",
     37                "grunt-contrib-watch": "~1.1.0",
     38                "grunt-includes": "~1.1.0",
     39                "grunt-jsvalidate": "~0.2.2",
     40                "grunt-legacy-util": "^2.0.0",
     41                "grunt-patch-wordpress": "~3.0.0",
     42                "grunt-postcss": "~0.9.0",
     43                "grunt-rtlcss": "~2.0.1",
     44                "grunt-sass": "~3.1.0",
     45                "matchdep": "~2.0.0",
     46                "sass": "^1.32.6"
     47        }
    3548}
  • branches/4.5/src/wp-admin/js/bookmarklet.min.js

    r32828 r50208  
    1 (function(a,b,c,d){function e(a,c){if("undefined"!=typeof c){var d=b.createElement("input");d.name=a,d.value=c,d.type="hidden",p.appendChild(d)}}var f,g,h,i,j,k,l,m,n,o=a.encodeURIComponent,p=b.createElement("form"),q=b.getElementsByTagName("head")[0],r="_press_this_app",s=!0;if(d){if(!c.match(/^https?:/))return void(top.location.href=d);if(d+="&u="+o(c),c.match(/^https:/)&&d.match(/^http:/)&&(s=!1),a.getSelection?h=a.getSelection()+"":b.getSelection?h=b.getSelection()+"":b.selection&&(h=b.selection.createRange().text||""),d+="&buster="+(new Date).getTime(),s||(b.title&&(d+="&t="+o(b.title.substr(0,256))),h&&(d+="&s="+o(h.substr(0,512)))),f=a.outerWidth||b.documentElement.clientWidth||600,g=a.outerHeight||b.documentElement.clientHeight||700,f=800>f||f>5e3?600:.7*f,g=800>g||g>3e3?700:.9*g,!s)return void a.open(d,r,"location,resizable,scrollbars,width="+f+",height="+g);i=q.getElementsByTagName("meta")||[];for(var t=0;t<i.length&&!(t>200);t++){var u=i[t],v=u.getAttribute("name"),w=u.getAttribute("property"),x=u.getAttribute("content");x&&(v?e("_meta["+v+"]",x):w&&e("_meta["+w+"]",x))}j=q.getElementsByTagName("link")||[];for(var y=0;y<j.length&&!(y>=50);y++){var z=j[y],A=z.getAttribute("rel");("canonical"===A||"icon"===A||"shortlink"===A)&&e("_links["+A+"]",z.getAttribute("href"))}b.body.getElementsByClassName&&(k=b.body.getElementsByClassName("hfeed")[0]),k=b.getElementById("content")||k||b.body,l=k.getElementsByTagName("img")||[];for(var B=0;B<l.length&&!(B>=100);B++)n=l[B],n.src.indexOf("avatar")>-1||n.className.indexOf("avatar")>-1||n.width&&n.width<256||n.height&&n.height<128||e("_images[]",n.src);m=b.body.getElementsByTagName("iframe")||[];for(var C=0;C<m.length&&!(C>=50);C++)e("_embeds[]",m[C].src);b.title&&e("t",b.title),h&&e("s",h),p.setAttribute("method","POST"),p.setAttribute("action",d),p.setAttribute("target",r),p.setAttribute("style","display: none;"),a.open("about:blank",r,"location,resizable,scrollbars,width="+f+",height="+g),b.body.appendChild(p),p.submit()}})(window,document,top.location.href,window.pt_url);
     1(function(e,n,t,i){var a,l,o,r,s,m,g,h=e.encodeURIComponent,c=n.createElement("form"),d=n.getElementsByTagName("head")[0],b="_press_this_app",u=!0;if(i)if(t.match(/^https?:/))if(i+="&u="+h(t),t.match(/^https:/)&&i.match(/^http:/)&&(u=!1),e.getSelection?a=e.getSelection()+"":n.getSelection?a=n.getSelection()+"":n.selection&&(a=n.selection.createRange().text||""),i+="&buster="+(new Date).getTime(),u||(n.title&&(i+="&t="+h(n.title.substr(0,256))),a&&(i+="&s="+h(a.substr(0,512)))),t=(t=e.outerWidth||n.documentElement.clientWidth||600)<800||5e3<t?600:.7*t,h=(h=e.outerHeight||n.documentElement.clientHeight||700)<800||3e3<h?700:.9*h,u){l=d.getElementsByTagName("meta")||[];for(var p=0;p<l.length&&!(200<p);p++){var f=l[p],y=f.getAttribute("name"),v=f.getAttribute("property"),f=f.getAttribute("content");f&&(y?N("_meta["+y+"]",f):v&&N("_meta["+v+"]",f))}o=d.getElementsByTagName("link")||[];for(var E=0;E<o.length&&!(50<=E);E++){var w=o[E],A=w.getAttribute("rel");"canonical"!==A&&"icon"!==A&&"shortlink"!==A||N("_links["+A+"]",w.getAttribute("href"))}n.body.getElementsByClassName&&(r=n.body.getElementsByClassName("hfeed")[0]),s=(r=n.getElementById("content")||r||n.body).getElementsByTagName("img")||[];for(var _=0;_<s.length&&!(100<=_);_++)-1<(g=s[_]).src.indexOf("avatar")||-1<g.className.indexOf("avatar")||g.width&&g.width<256||g.height&&g.height<128||N("_images[]",g.src);m=n.body.getElementsByTagName("iframe")||[];for(var B=0;B<m.length&&!(50<=B);B++)N("_embeds[]",m[B].src);n.title&&N("t",n.title),a&&N("s",a),c.setAttribute("method","POST"),c.setAttribute("action",i),c.setAttribute("target",b),c.setAttribute("style","display: none;"),e.open("about:blank",b,"location,resizable,scrollbars,width="+t+",height="+h),n.body.appendChild(c),c.submit()}else e.open(i,b,"location,resizable,scrollbars,width="+t+",height="+h);else top.location.href=i;function N(e,t){var i;void 0!==t&&((i=n.createElement("input")).name=e,i.value=t,i.type="hidden",c.appendChild(i))}})(window,document,top.location.href,window.pt_url);
  • branches/4.5/src/wp-includes/js/media-audiovideo.js

    r36546 r50208  
    1 (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
     1(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
    22var media = wp.media,
    33        baseSettings = window._wpmejsSettings || {},
  • branches/4.5/src/wp-includes/js/media-grid.js

    r36681 r50208  
    1 (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
     1(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
    22/**
    33 * wp.media.controller.EditAttachmentMetadata
  • branches/4.5/src/wp-includes/js/media-models.js

    r33337 r50208  
    1 (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
     1(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
    22var $ = jQuery,
    33        Attachment, Attachments, l10n, media;
  • branches/4.5/src/wp-includes/js/media-views.js

    r37813 r50208  
    1 (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
     1(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
    22/**
    33 * wp.media.controller.CollectionAdd
Note: See TracChangeset for help on using the changeset viewer.