diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 821633742..38725bf86 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -13,7 +13,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- node: [12, 14, 16]
+ node: [16, 18, 19]
os: [ubuntu-latest, windows-latest]
steps:
diff --git a/CHANGELOG b/CHANGELOG
index 17bb4b7f1..c6df44adb 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,9 @@
+v1.6.0
+ date: 2023-01-28
+ changes:
+ - Requires node.js 16+.
+ - template.date now uses dateformat ~4.6.2.
+ - other dependency updates such as glob, rimraf, etc.
v1.5.3
date: 2022-04-23
changes:
diff --git a/Gruntfile.js b/Gruntfile.js
index c0519abe2..8cfc6470e 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -15,18 +15,18 @@ module.exports = function(grunt) {
}
},
eslint: {
- gruntfile_tasks: ['Gruntfile.js', 'internal-tasks/*.js'],
- libs_n_tests: ['lib/**/*.js', '<%= nodeunit.all %>'],
+ gruntfileTasks: ['Gruntfile.js', 'internal-tasks/*.js'],
+ libsAndTests: ['lib/**/*.js', '<%= nodeunit.all %>'],
subgrunt: ['<%= subgrunt.all %>']
},
watch: {
- gruntfile_tasks: {
- files: ['<%= eslint.gruntfile_tasks %>'],
- tasks: ['eslint:gruntfile_tasks']
+ gruntfileTasks: {
+ files: ['<%= eslint.gruntfileTasks %>'],
+ tasks: ['eslint:gruntfileTasks']
},
- libs_n_tests: {
- files: ['<%= eslint.libs_n_tests %>'],
- tasks: ['eslint:libs_n_tests', 'nodeunit']
+ libsAndTests: {
+ files: ['<%= eslint.libsAndTests %>'],
+ tasks: ['eslint:libsAndTests', 'nodeunit']
},
subgrunt: {
files: ['<%= subgrunt.all %>'],
diff --git a/README.md b/README.md
index f99765384..e03b5f137 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
[![Built with Grunt](https://cdn.gruntjs.com/builtwith.svg)](http://gruntjs.com/)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fgruntjs%2Fgrunt.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fgruntjs%2Fgrunt?ref=badge_shield)
-
+
### Documentation
@@ -13,9 +13,8 @@
Visit the [gruntjs.com](https://gruntjs.com/) website for all the things.
### Support / Contributing
-Before you make an issue, please read our [Contributing](https://gruntjs.com/contributing) guide.
-You can find the grunt team in [#grunt on irc.freenode.net](https://webchat.freenode.net/?channels=grunt).
+Before you make an issue, please read our [Contributing](https://gruntjs.com/contributing) guide.
### Release History
See the [CHANGELOG](CHANGELOG).
diff --git a/package.json b/package.json
index 1343da150..84cb85f36 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,7 @@
"repository": "https://github.com/gruntjs/grunt.git",
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=16"
},
"scripts": {
"test": "node bin/grunt test",
@@ -37,29 +37,29 @@
"tool"
],
"dependencies": {
- "dateformat": "~3.0.3",
+ "dateformat": "~4.6.2",
"eventemitter2": "~0.4.13",
"exit": "~0.1.2",
- "findup-sync": "~0.3.0",
- "glob": "~7.1.6",
+ "findup-sync": "~5.0.0",
+ "glob": "~8.1.0",
"grunt-cli": "~1.4.3",
"grunt-known-options": "~2.0.0",
"grunt-legacy-log": "~3.0.0",
"grunt-legacy-util": "~2.0.1",
- "iconv-lite": "~0.4.13",
+ "iconv-lite": "~0.6.3",
"js-yaml": "~3.14.0",
"minimatch": "~3.0.4",
- "mkdirp": "~1.0.4",
+ "mkdirp": "~2.1.3",
"nopt": "~3.0.6",
- "rimraf": "~3.0.2"
+ "rimraf": "~4.1.2"
},
"devDependencies": {
"difflet": "~1.0.1",
- "eslint-config-grunt": "~1.0.1",
+ "eslint-config-grunt": "~2.0.1",
"grunt-contrib-nodeunit": "~4.0.0",
"grunt-contrib-watch": "~1.1.0",
- "grunt-eslint": "~18.1.0",
- "temporary": "~0.0.4",
+ "grunt-eslint": "~24.0.1",
+ "temporary": "~1.1.0",
"through2": "~4.0.2"
},
"files": [
diff --git a/test/gruntfile/multi-task-files.js b/test/gruntfile/multi-task-files.js
index d170d062d..3a519f649 100644
--- a/test/gruntfile/multi-task-files.js
+++ b/test/gruntfile/multi-task-files.js
@@ -59,7 +59,7 @@ module.exports = function(grunt) {
]
},
// File mapping options can be specified in these 2 formats.
- built_mapping: {
+ builtMapping: {
options: {a: 6, c: 66},
expand: true,
cwd: '<%= mappings.cwd %>',
@@ -68,7 +68,7 @@ module.exports = function(grunt) {
rename: '<%= mappings.rename %>',
extra: 123
},
- long3_mapping: {
+ long3Mapping: {
options: {a: 7, c: 77},
files: [
{
@@ -81,22 +81,22 @@ module.exports = function(grunt) {
}
]
},
- long4_mapping: {
+ long4Mapping: {
options: {a: 8, c: 88},
files: [
- '<%= run.long3_mapping.files %>'
+ '<%= run.long3Mapping.files %>'
]
},
- long5_mapping: {
+ long5Mapping: {
options: {a: 9, c: 99},
files: [
- '<%= run.long3_mapping.files %>',
- '<%= run.long4_mapping.files %>'
+ '<%= run.long3Mapping.files %>',
+ '<%= run.long4Mapping.files %>'
]
},
// Need to ensure the task function is run if no files or options were
// specified!
- no_files_or_options: {},
+ noFilesOrOptions: {},
},
});
@@ -124,7 +124,7 @@ module.exports = function(grunt) {
});
var expecteds = {
- 'run:no_files_or_options': {
+ 'run:noFilesOrOptions': {
options: {a: 1, b: 11, d: 9},
files: [],
},
@@ -236,7 +236,7 @@ module.exports = function(grunt) {
},
],
},
- 'run:built_mapping': {
+ 'run:builtMapping': {
options: {a: 6, b: 11, c: 66, d: 9},
files: [
{
@@ -248,7 +248,7 @@ module.exports = function(grunt) {
cwd: grunt.config.get('mappings.cwd'),
src: ['*1.js', '*2.js'],
dest: grunt.config.get('mappings.dest'),
- rename: grunt.config.get('run.built_mapping.rename'),
+ rename: grunt.config.get('run.builtMapping.rename'),
extra: 123,
},
},
@@ -258,16 +258,16 @@ module.exports = function(grunt) {
extra: 123,
orig: {
expand: true,
- cwd: grunt.config.get('run.built_mapping.cwd'),
+ cwd: grunt.config.get('run.builtMapping.cwd'),
src: ['*1.js', '*2.js'],
- dest: grunt.config.get('run.built_mapping.dest'),
- rename: grunt.config.get('run.built_mapping.rename'),
+ dest: grunt.config.get('run.builtMapping.dest'),
+ rename: grunt.config.get('run.builtMapping.rename'),
extra: 123,
},
},
],
},
- 'run:long3_mapping': {
+ 'run:long3Mapping': {
options: {a: 7, b: 11, c: 77, d: 9},
files: [
{
@@ -292,13 +292,13 @@ module.exports = function(grunt) {
cwd: grunt.config.get('mappings.cwd'),
src: ['*1.js', '*2.js'],
dest: grunt.config.get('mappings.dest'),
- rename: grunt.config.get('run.built_mapping.rename'),
+ rename: grunt.config.get('run.builtMapping.rename'),
extra: 123,
},
},
],
},
- 'run:long4_mapping': {
+ 'run:long4Mapping': {
options: {a: 8, b: 11, c: 88, d: 9},
files: [
{
@@ -323,13 +323,13 @@ module.exports = function(grunt) {
cwd: grunt.config.get('mappings.cwd'),
src: ['*1.js', '*2.js'],
dest: grunt.config.get('mappings.dest'),
- rename: grunt.config.get('run.built_mapping.rename'),
+ rename: grunt.config.get('run.builtMapping.rename'),
extra: 123,
},
},
],
},
- 'run:long5_mapping': {
+ 'run:long5Mapping': {
options: {a: 9, b: 11, c: 99, d: 9},
files: [
{
@@ -354,7 +354,7 @@ module.exports = function(grunt) {
cwd: grunt.config.get('mappings.cwd'),
src: ['*1.js', '*2.js'],
dest: grunt.config.get('mappings.dest'),
- rename: grunt.config.get('run.built_mapping.rename'),
+ rename: grunt.config.get('run.builtMapping.rename'),
extra: 123,
},
},
@@ -380,7 +380,7 @@ module.exports = function(grunt) {
cwd: grunt.config.get('mappings.cwd'),
src: ['*1.js', '*2.js'],
dest: grunt.config.get('mappings.dest'),
- rename: grunt.config.get('run.built_mapping.rename'),
+ rename: grunt.config.get('run.builtMapping.rename'),
extra: 123,
},
},
@@ -427,8 +427,8 @@ module.exports = function(grunt) {
});
grunt.registerTask('default', [
- 'run:no_files_or_options',
- 'test:no_files_or_options',
+ 'run:noFilesOrOptions',
+ 'test:noFilesOrOptions',
'run:dist/built.js',
'test:dist/built.js',
'run:dist/built1.js',
@@ -441,14 +441,14 @@ module.exports = function(grunt) {
'test:long2',
'run:long3',
'test:long3',
- 'run:built_mapping',
- 'test:built_mapping',
- 'run:long3_mapping',
- 'test:long3_mapping',
- 'run:long4_mapping',
- 'test:long4_mapping',
- 'run:long5_mapping',
- 'test:long5_mapping',
+ 'run:builtMapping',
+ 'test:builtMapping',
+ 'run:long3Mapping',
+ 'test:long3Mapping',
+ 'run:long4Mapping',
+ 'test:long4Mapping',
+ 'run:long5Mapping',
+ 'test:long5Mapping',
'run',
'test:all',
'test:counters',