Add required files for an extension

Change-Id: I626e607e6ae7efc2521f9dd1da83c6fd90b0767d
This commit is contained in:
Ed Sanders 2019-10-10 14:25:11 +01:00
parent 7c0abd30c9
commit fe0a05ad49
13 changed files with 4566 additions and 0 deletions

11
.eslintrc.json Normal file
View file

@ -0,0 +1,11 @@
{
"extends": [
"wikimedia/client",
"wikimedia/jquery"
],
"globals": {
"mw": "readonly",
"OO": "readonly",
"ve": "readonly"
}
}

3
.stylelintrc Normal file
View file

@ -0,0 +1,3 @@
{
"extends": "stylelint-config-wikimedia"
}

1
CODE_OF_CONDUCT.md Normal file
View file

@ -0,0 +1 @@
The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Code_of_Conduct).

18
COPYING Normal file
View file

@ -0,0 +1,18 @@
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

32
Gruntfile.js Normal file
View file

@ -0,0 +1,32 @@
/* eslint-env node, es6 */
module.exports = function ( grunt ) {
var conf = grunt.file.readJSON( 'extension.json' );
grunt.loadNpmTasks( 'grunt-banana-checker' );
grunt.loadNpmTasks( 'grunt-eslint' );
grunt.loadNpmTasks( 'grunt-stylelint' );
grunt.initConfig( {
eslint: {
options: {
reportUnusedDisableDirectives: true,
extensions: [ '.js', '.json' ],
cache: true
},
all: [
'*.{js,json}',
'modules/**/*.{js,json}'
]
},
stylelint: {
all: [
'*.{css,less}',
'modules/**/*.{css,less}'
]
},
banana: conf.MessagesDirs
} );
grunt.registerTask( 'test', [ 'eslint', 'stylelint', 'banana' ] );
grunt.registerTask( 'default', 'test' );
};

13
composer.json Normal file
View file

@ -0,0 +1,13 @@
{
"require-dev": {
"jakub-onderka/php-parallel-lint": "1.0.0",
"mediawiki/mediawiki-codesniffer": "26.0.0"
},
"scripts": {
"test": [
"parallel-lint . --exclude vendor",
"phpcs -p -s"
],
"fix": "phpcbf"
}
}

25
extension.json Normal file
View file

@ -0,0 +1,25 @@
{
"name": "DiscussionTools",
"license-name": "MIT",
"version": "0.0.0",
"namemsg": "discussiontools",
"descriptionmsg": "discussiontools-desc",
"manifest_version": 1,
"MessagesDirs": {
"DiscussionTools": [ "i18n" ]
},
"ResourceFileModulePaths": {
"localBasePath": "modules",
"remoteExtPath": "DiscussionTools/modules"
},
"ResourceModules": {
},
"QUnitTestModule": {
},
"AutoloadClasses": {
"DiscussionToolsHooks": "includes/DiscussionToolsHooks.php"
},
"Hooks": {
},
"type": "other"
}

7
i18n/en.json Normal file
View file

@ -0,0 +1,7 @@
{
"@metadata": {
"authors": []
},
"discussiontools": "Discussion tools",
"discussiontools-desc": "Tools to enhance discussion pages."
}

7
i18n/qqq.json Normal file
View file

@ -0,0 +1,7 @@
{
"@metadata": {
"authors": []
},
"discussiontools": "The name of the extension",
"discussiontools-desc": "{{desc|name=DiscussionTools|url=}}"
}

View file

@ -0,0 +1,9 @@
<?php
/**
* DiscussionTools extension hooks
*
* @file
* @ingroup Extensions
* @license MIT
*/
class DiscussionToolsHooks {}

4422
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

12
package.json Normal file
View file

@ -0,0 +1,12 @@
{
"name": "DiscussionTools",
"version": "0.0.0",
"devDependencies": {
"eslint-config-wikimedia": "0.14.3",
"grunt": "1.0.4",
"grunt-banana-checker": "0.8.1",
"grunt-eslint": "22.0.0",
"grunt-stylelint": "0.11.1",
"stylelint-config-wikimedia": "0.6.0"
}
}

6
tests/.eslintrc.json Normal file
View file

@ -0,0 +1,6 @@
{
"extends": [
"wikimedia/qunit",
"../.eslintrc.json"
]
}