https://github.com/the-events-calendar/product-taskmaster
This is a collection of Gulp tasks for The Events Calendar
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.7%) to scientific vocabulary
Keywords
Repository
This is a collection of Gulp tasks for The Events Calendar
Basic Info
Statistics
- Stars: 4
- Watchers: 23
- Forks: 1
- Open Issues: 5
- Releases: 18
Topics
Metadata Files
README.md
Product Taskmaster
This is a collection of The Events Calendar product Gulp tasks
Installing in a plugin
This repository is meant to be installed via npm install. To enable
that in a repository, first ensure you are running node 16 and npm 7
(this is necessary to install peer dependencies). Then, run the
following command:
npm install --save-dev @the-events-calendar/product-taskmaster@^3.0.0
or add the following to the package.json in the devDependencies section:
"product-taskmaster": "@the-events-calendar/product-taskmaster@^3.0.0",
Browserslist
Browserslist allows us to automatically prefix CSS and provide proper polyfills for the
targeted browsers. Recent versions of Browserslist allow users to extend configurations
by doing the following in the package.json:
"browserslist": [
"extends @the-events-calendar/product-taskmaster/config/browserslist.config.js"
]
However, some projects may use older versions of Browserslist which do not allow extending
configurations. In this case, a script to sync browserslist configurations can be used to
pull the same configuration from Products Taskmaster into the project. You can sync the
configurations by adding a script in the package.json:
"scripts": {
...
"prebuild": "node node_modules/@the-events-calendar/product-taskmaster/scripts/syncBrowserslistConfig.js",
...
}
GlotPress
In order to leverage the GlotPress task, the following example info from the-events-calendar
should be added into the package.json as well:
"_domainPath": "lang",
"_textDomain": "the-events-calendar",
"_glotPressUrl": "https://translate.wordpress.org",
"_glotPressSlug": "wp-plugins/the-events-calendar/stable",
"_glotPressFileFormat": "%textdomain%-%wp_locale%.%format%",
"_glotPressFormats": [
"po",
"mo"
],
"_glotPressFilter": {
"translation_sets": false,
"minimum_percentage": 30,
"waiting_strings": false
},
Gulp tasks
Main tasks
These are the big tasks that you'll most likely be running.
default
The default task is what you get when you run gulp. It compresses
the JS and CSS files using the compress-css and compress-js tasks.
gulp
package
This task is used to package our plugins and relies on the
package-whitelist.json file containing data and GlotPress properties
within package.json.
gulp package --branch <branch-you-want-to-package>
watch
This task watches for changes in CSS and JS files, compresses those files, and then communicates the files to livereload.
gulp watch
This command also takes a --preserve flag to pass the preserve option
(see the documentation).
By default, the preserve option is set to true. To set to false, do the following:
gulp watch --preserve false
Minor tasks
These tasks are run from within the main tasks, but they can be run on their own!
postcss
This task uses PostCSS to build the .pcss files into CSS files.
gulp postcss
The command also takes a --preserve flag to pass the preserve option
(see the documentation).
By default, the preserve option is set to true. To set to false, do the following:
gulp postcss --preserve false
compress-css
This task uses gulp-cssnano to compress CSS files and name the files
with a .min.css extension.
gulp compress-css
compress-js
This task uses gulp-uglify to compress JS files and name the files
with a .min.js extension.
gulp compress-js
glotpress
This task pulls language files from the provided GlotPress URLs in package.json and places them in
the lang/ directory.
gulp glotpress
pull
This task pulls and submodule updates the repo using the branch provided by --branch.
gulp pull --branch <branch-you-want-to-pull>
zip
This task packages the files indicated by package-safelist.json into
a zip file that it places one directory above the plugin's base
directory.
Note: package-whitelist.json has been deprecated if you have one please rename it to package-safelist.json.
gulp zip
stylelint
This task runs stylelint on the pcss files using our stylelint configuration. In the root directory,
add in the .stylelintrc file:
{
"extends": "@the-events-calendar/product-taskmaster/config/stylelint"
}
To run stylelint, you'll need to provide a file path array in the package.json to tell gulp where to look.
An example might look like:
"_filePath": {
"stylelint": [
"src/resources/postcss/**/*.pcss"
]
}
eslint
This task runs ESLint on the JavaScript files using our ESLint configurations. Add an
.eslintrc file in the working repository and extend one of the configurations.
A relative path from the .eslintrc file is required as Product Taskmaster is not
a standard ESLint configuration package:
{
"extends": "./node_modules/@the-events-calendar/product-taskmaster/config/eslint.es6.js"
}
To run ESLint, you'll need to provide a file path array in the package.json to tell gulp where to look.
An example might look like:
"_filePath": {
"eslint": [
"src/modules/**/*.js",
"src/resources/**/*.js"
]
}
If you are extending the eslint.es6.js or eslint.react.js configuration,
you must have a babel.config.json file defined in the working repository, as ESLint uses
the babel.config.json file to parse the code.
Jest
This task runs Jest on the JavaScript files using our Jest configurations. Add a
jest.config.js file in the working repository and extend the jest configuration.
Add a displayName and testMatch to tell Jest what to look for:
``` var sharedConfig = require( '@the-events-calendar/product-taskmaster/config/jest.config.js' ); var pkg = require( './package.json' );
module.exports = {
...sharedConfig,
displayName: 'common',
testMatch: pkg._filePath.jest.map( ( path ) => <rootDir>/${ path } ),
};
```
Add file path array to the package.json to tell Jest what to test. An example might look like:
"_filePath": {
"jest": [
"src/modules/**/__tests__/**/*.js"
]
}
The testMatch can be input manually without relying on package.json. This just keeps all
file paths in one place.
Owner
- Name: The Events Calendar
- Login: the-events-calendar
- Kind: organization
- Website: https://theeventscalendar.com
- Twitter: TheEventsCal
- Repositories: 52
- Profile: https://github.com/the-events-calendar
Calendars, ticketing, and powerful WordPress tools to manage your events from start to finish.
GitHub Events
Total
- Release event: 2
- Delete event: 6
- Push event: 20
- Pull request review event: 3
- Pull request review comment event: 1
- Pull request event: 8
- Create event: 7
Last Year
- Release event: 2
- Delete event: 6
- Push event: 20
- Pull request review event: 3
- Pull request review comment event: 1
- Pull request event: 8
- Create event: 7
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 1
- Total pull requests: 81
- Average time to close issues: 6 months
- Average time to close pull requests: 27 days
- Total issue authors: 1
- Total pull request authors: 11
- Average comments per issue: 3.0
- Average comments per pull request: 0.36
- Merged pull requests: 59
- Bot issues: 0
- Bot pull requests: 11
Past Year
- Issues: 0
- Pull requests: 7
- Average time to close issues: N/A
- Average time to close pull requests: 27 days
- Issue authors: 0
- Pull request authors: 3
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 6
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- JacobDB (1)
Pull Request Authors
- paulmskim (28)
- bordoni (20)
- dependabot[bot] (11)
- Camwyn (5)
- borkweb (5)
- nealfennimore (4)
- sc0ttkclark (2)
- pattihis (2)
- codingmusician (2)
- redscar (2)
- mitogh (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- npm 70 last-month
- Total dependent packages: 2
- Total dependent repositories: 5
- Total versions: 14
- Total maintainers: 2
npmjs.org: @the-events-calendar/product-taskmaster
This is a collection of The Events Calendar product Gulp tasks
- Homepage: https://github.com/the-events-calendar/product-taskmaster#readme
- License: gpl-3.0
-
Latest release: 4.0.1
published over 1 year ago
Rankings
Dependencies
- 1619 dependencies
- @babel/eslint-parser ^7.14.5
- ansi-colors ^3.2.1
- archiver ^5.3.0
- browserslist ^4.6.3
- css-mqpacker ^7.0.0
- eslint-config-wpcalypso ^6.1.0
- eslint-plugin-es5 ^1.5.0
- eslint-plugin-import ^2.23.4
- eslint-plugin-inclusive-language ^2.1.1
- eslint-plugin-jsdoc ^35.1.3
- eslint-plugin-jsx-a11y ^6.4.1
- eslint-plugin-react ^7.24.0
- eslint-plugin-react-hooks ^4.2.0
- eslint-plugin-wpcalypso ^5.0.0
- fancy-log ^1.3.2
- fs-sync ^1.0.6
- gulp-cssnano ^2.1.3
- gulp-download-stream 0.0.19
- gulp-error-notifier ^1.1.0
- gulp-eslint ^6.0.0
- gulp-git ^2.8.0
- gulp-header ^2.0.5
- gulp-jest ^4.0.4
- gulp-livereload ^4.0.0
- gulp-param ^1.0.3
- gulp-postcss ^8.0.0
- gulp-rename ^1.4.0
- gulp-run-command 0.0.9
- gulp-sort ^2.0.0
- gulp-stylelint ^13.0.0
- gulp-uglify-es ^1.0.4
- gulp-vinyl-zip ^2.1.0
- gulp-wp-pot ^2.3.2
- json-parse-better-errors ^1.0.2
- postcss-calc ^7.0.1
- postcss-hexrgba ^1.0.1
- postcss-import ^12.0.1
- postcss-inline-svg ^3.1.1
- postcss-mixins ^6.2.0
- postcss-nested ^4.1.0
- postcss-preset-env ^6.2.0
- postcss-selector-parser ^6.0.2
- prettier ^1.15.1
- request ^2.88.0
- stylelint ^13.13.1
- stylelint-config-standard ^22.0.0
- stylelint-order ^4.1.0
- webpack-stream ^5.1.1
- yargs ^12.0.2