Follows-up 94a7e34. The main fix there was adding the promise to
the example execution. The path change was not needed, and actually
breaks the demo, again. Only the 'docs' directory is published.
Accessing ../lib results in 404 Not Found after syncing to doc.wikimedia.org.
This is why we run 'grunt copy:jsduck', which copies those files into
the docs/ directory.
Change-Id: I2ea89bfbd980910510cbd8639f871ec931a768f1
Increase Mocha and Chrome timeout from 20 to 30 seconds.
Tool groups (headings/text style/indentation/insert/page settings) needs
more than 20 seconds.
Error message: Error: timeout of 20000ms exceeded
Bug: T139613
Change-Id: Id6d943a78d7109012c2372cbd3c00e6a80ed9583
For now just use the rules file in lib/ve, but eventually
this will be a preset.
Change-Id: I7fd79d3e1dce37aef066d416cd969e5fff1e962f
Depends-On: I17e0d23ddfedf64985495ab35d113ea08c03b1df
New changes:
3e587b8 sync-gh-pages: Fix "oojs-ui-apex.vector.css" 404 Not Found
0e53633 Toolbar: Add tooltip to structure group
7f0b6f7 Remove icon properties from windows
3a612b2 Fix positioning of mobile windows
Change-Id: I2a6995e61a76abfc0f77d3301c7c76593756463c
Right now jsonlint only ignores the top-level node_modules. If you've
built docs, there'll be a node_modules folder somewhere in there...
containing the highly-problematic jsonlint test suite. So, ignore all
node_modules directories no matter where they are.
Change-Id: Ie6f3b8c5749036dae60551d7f07c1ae6ab72d722
So many old keys not yet removed. Oy. Also, disable disallowDuplicateTranslations
for now as this fails so much.
Change-Id: I52e1555335a6e64b1e9db541ba726cf6ce8c7dd0
New changes:
3368c4c Remove some assumptions about the state of the context
79918af Move contexts to subfolder
820eaec Tests for some drag/drop functionality
e5f0e3e Convert CE surface tests to use a mock UI surface
c81dbcf Localisation updates from https://translatewiki.net.
7561ff3 Create a mock UI surface that only contains a model for model-only action tests
ad60333 Convert test timings on APIResultsQueue from seconds to milliseconds
b52d7df Table cursoring tests
3f8e821 Localisation updates from https://translatewiki.net.
9c737df Update OOjs UI to v0.11.4
5befc34 Stop using deprecated aliases for OO.ui.mixin.*
Change-Id: Ida6d4ba724686d8189975c55a18c4a6c2cfe4875
Also
* This way we don't need to pass the --config=jsduck.config.json
parameter but can run plain 'jsduck' in Jenkins. Allowing it
to use the standard job template for testing.
* Move processes=0 to jsduck.json.
Workaround for https://github.com/senchalabs/jsduck/issues/525
* Use standard ' - Documentation' suffix, which makes the first
part of the title render in bold (similar to how we do in OOjs
and OOjs UI already).
Change-Id: I6c9c7a1f29df0a72dc8cd0d37a83aaef23068062
New changes:
e6554e8 Localisation updates from https://translatewiki.net.
397a53d Localisation updates from https://translatewiki.net.
56c5937 Provide isAlignable checks for alignable nodes
2431396 ce.ContentBranchNode: Don't compare new rendering with old on first render
0131fe8 ve.ce.GeneratedContentNode: Avoid calling $.fn.add, it's slow
89f66fc Fix documentation lies about rewrap event
fb42667 Add insert/edit modes to FragmentInspector
511e0a7 Make ce.BranchNode#updateTagName do what its documentation says
626936d Localisation updates from https://translatewiki.net.
0cb3b6f build: Rename JSDuck config standard jsduck.json
Change-Id: I58d210a549ea5faa2142f716ad37c2fad9be94f5
'**' is already recursive, and besides, with the extra '*' it
would actually miss files present in modules/ itself ('**' means
in the directory and recursively in all members).
Change-Id: I20011e0d4512200765030f38a2583be5aaf7c2d9
Append this new task to the 'test' sequence in Jenkins (so that
if e.g. buildloader causes dirty diff, the build fails).
Locally this doesn't run by default, but you can mimick the
Jenkins build by running 'grunt ci' instead of 'grunt test'.
Change-Id: I7dd5417777c5a060fd9042248ece695c02c8ab41
* Use jshintrc:true which lets grunt defer autodiscovery of the file
to jshint instead of forcing it to '.jshintrc'. This allows us to
override certain settings from a subdirectory, to match behaviour
of standalone jshint.
* Sort modules.
* Use plain string instead of single-value array.
Change-Id: Ib5cd48f3ff0367b8fc84627c29e4fb32452087c0
jshint:
* Update to grunt-contrib-jshint v0.10.0 (jshint v2.5.0).
* Remove coding style options covered by jscs.
* Enable new option "freeze" (prohibits changing native prototypes).
http://www.jshint.com/blog/new-in-jshint-oct-2013/#option-freeze
* Re-order to match http://www.jshint.com/docs/options/
jscs:
* Update to grunt-jscs-checker v0.4.4 (jscs v1.4.5).
* Format .jscsrc file in a more spacious way and order the
properties less arbitrarily (using the jscs's readme order).
* Enforce more details of our coding style
* Get rid of the unsable "sticky" operator rules which have been
deprecated in favour of using other rules instead that are able
to enforce this more accurately.
- disallowLeftStickedOperators: Remove deprecated rule.
* Ternary covered by requireSpacesInConditionalExpression.
* Rest covered by requireSpace{Before,After}BinaryOperators.
- requireLeftStickedOperators: Remove deprecated rule.
* Comma covered by disallowSpaceBeforeBinaryOperators.
- requireRightStickedOperators: Remove deprecated rule.
* Logical not (!) covered by disallowSpaceAfterPrefixUnaryOperators.
See also If46b94ce1, Ib731f11b1 and I0b0cadbc5 in oojs/core.
Also:
* Update grunt-contrib-watch to latest upstream version.
Change log at https://github.com/gruntjs/grunt-contrib-watch/blob/v0.6.1/CHANGELOG#L1-L17
Change-Id: I6c5a34afea8b05a3dca617897c192594df06ca90
Also add OO.ui.ConfirmationDialog things and
update Gruntfile.js for breaking changes in VE core.
New changes:
5f1514b Localisation updates from https://translatewiki.net.
0cde22f Localisation updates from https://translatewiki.net.
ca021d8 Fix desktop dialogs
3503287 Localisation updates from https://translatewiki.net.
f02286b build: [BREAKING CHANGE] Add dependency expression
25fc053 Use message function and correct message key
a097202 Create phantom/shield nodes with methods not templates
1399844 Load dependencies in correct order
5a39c9e build: Simplify building of module dependency list
2a3871f build: Upgrade jscs and jshint
7db9b88 Localisation updates from https://translatewiki.net.
d34b2ae Update OOjs UI to v0.1.0-pre (80f1797a5c)
Change-Id: I0f23042e3cadd4614cd1dcd905287af777dd6ed3
It works locally because it can just nagivate to ../lib/ve.
In production however we need docs/ to be standalone so that we
can publish it without needing a subdirectory at:
https://docs.wikimedia.org/VisualEditor/master/.
For local usage this will be a symlink that still points to
the sibling directory (but using a symlink instead of a ../ path).
In production we can then instruct jenkins to replace that symlink
with an actual copy of lib/. As long as the generated path
references in the HTML remain the same.
Follows-up 88c4888872, which broke the publication of the docs in
Jenkins as it changed references from modules/ to ../modules/ for
the eg-iframe. This works locally, but broke in Jenkins as it was relying
on the copying of modules/ to docs/modules/ being enough to make it work).
Change-Id: I10eaa5424d172932b29774a0f03d511d555fd121
* Add lib/ve.
* Remove modules provided by VisualEditor core.
* Update paths.
* Remove VisualEditor core specific things from Gruntfile.
* Remove entries from external.js already in lib/ve/.docs/external.js.
* Implement build script to compose a jsduck index that includes
all of VisualEditor core. Right now it includes VisualEditor's
index as-is, and because those patterns (e.g. ve.dm.*Node) will
also MW subclasses this means our category page will include
MW classes under "VisualEditor (core)" (before the repo split,
this was intentional).
This is inevitable unless we list every class individually, or
(the plan) until we move the MW subclasses out of the ve.*
namespace and into mw.* somewhere.
Bug: 45342
Change-Id: Iff45cd555430634c9fc341fd3b177c1e0625300b
* Check the check on first load and use if present.
* Default to first menu item.
* Handle errors.
Change-Id: I85b83050732946c8a1c9d2d30cf0c2ad11606fa2
Consistently:
* Use <!DOCTYPE html>.
* Use lowercase element tags.
* Indent <head> from <html>.
* Use <meta charset="utf-8">.
* Indent <script> and <style> content from open/close tag.
* Put <link> before <script> when in <head> (in ve/test).
* Use .html instead of .php for indexes where PHP is no
longer used.
* Use the same license header as we use elsewhere (/*! instead
of /** and no @file)
Gruntfile:
* Include the new .js files in jshint (demos/**/*.js).
* Order buildloader keys in the same order as the directories
they go to (alphabetically).
* Add missing jshint patterns:
- .docs/**/*.js
- build/**/*.js
- modules/ve-wmf/**/*.js
* Add missing qunit test:
- qunit.unicodejs
* Add missing watch patterns:
- .jscs.json
- qunit.unicodejs
Also:
* Moved relatively large pieces of script into separate files
so that they are less repeated (though .template) and also
able to be linted properly.
* Fixed jshint warnings in newly-created trigger.js and demo.js.
* Moved <script> elements already in <body> to bottom of <body>
(in ve/test and eg-iframe).
* Moved <script> in eg-iframe from <head> to <body>.
* Fixed buildloader grunt task to use a non-\n whitespace match.
for the start as well, the newline before the placeholder was
being stripped.
* Removed the (now obsolete) index-phantomjs-tmp hack.
Change-Id: I7c5a371b82f69f367a8e1c11673d2f37868bc931
Use built-in jshintrc option for 'jshint' config instead of
parsing manually and strippig comments.
node-jshint itself has supported comment parsing for a long time
(which is why our Jenkins build, which doesn't even use grunt,
has no problem with our .jshintrc file).
But the grunt task never exposed this parser, until v0.6.4.
Change-Id: Ia45a44ac49c943845a11d3fc7a0127776e99ed2a
'grunt build' builds modules/ve/test/index.php, demos/ve/index.php
and .docs/eg-iframe.html from the associated *.template files.
Got rid of the JS-based SVG/PNG switching logic. Instead, we now
just use SVG unconditionally. We'd already dropped browser support
for browsers that don't support SVG anyway.
Change-Id: Iba2e68f17904687cb13e793a410e095f28f1b13c
Let's experiment with this via our local Gruntfile. If it works
fine we can install it in Jenkins (similar to node-csslint).
Verify through $ npm install && npm test;
Fixed all outstanding violations.
Also:
* Added syntaxhighight to ignore.
* Added imetests (which contain unformatted JSON) to ignore.
* In ve.dm.ModelRegistry#matchTypeRegExps, removed redundant
!! cast from the [+!!withFunc] statement which was hitting
a bug in node-jscs. All callers to this local private function
pass a literal boolean true/false so no need to cast it.
* Removed "/* key .. , value */" from ve.setProp, though this
wasn't caught by node-jscs, found it when searching for " , ".
* Made npm.devDependencies fixed instead of using tilde-ranges.
This too often leads to strange bugs or sudden changes. Fixed
them at the version they were currently ranging to.
Bug: 54218
Change-Id: Ib2630806f3946874c8b01e58cf171df83a28da29
Also:
* Added modules/syntaxhighlight to csslintignore because
it is broken right now, so it's hard to fix those warnings
without being able to verify it.
* Fixed a typo in the grunt-watch config that accessed an
inexistent property.
Change-Id: Ib81572506786b6a1203c454d1b2b91bb6ae2a3de
Add .csslintignore file for the csslint run by Jenkins.
Also updating our Gruntfile for local usage to include demos,
which Jenkins is going to include as well (as it uses an ignore
blacklist instead of whitelist).
Change-Id: I9114cfc54e82f090f0fcf62155ef7c1a9261548d