WordPress.org

Make WordPress Core

Changeset 50208


Ignore:
Timestamp:
02/05/2021 04:19:31 AM (5 months 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.