Talk:Continuous integration/Entry points
Add topicred link to Template:JSDuck
[edit]At section 1.2 JavaScript documentation, Use npm run doc as the entry point. The convention is to use Template:JSDuck the Template:JSDuck is undefined, can someone correct please. Thanks -- Christian 🇫🇷 FR (talk) 09:58, 16 January 2024 (UTC)
- I don't know who thought it'd be a template. I've fixed it to just reference the real page for JSDoc, and dropped the old JSDuck references entirely. Jdforrester (WMF) (talk) 14:29, 16 January 2024 (UTC)
php-parallel-lint
[edit]The entry points table says that php-parallel-lint is used as a PHP linter. However I can't remember ever having seen this in Wikimedia production, Jenkins CI logs, as a config file in a repo, etc. Is this tool still around, or has it been replaced by PHP CodeSniffer? Thanks. –Novem Linguae (talk) 11:08, 14 May 2024 (UTC)
composer lint
is an entrypoint configured in the mediawiki/core.git composer.json. -- BDavis (WMF) (talk) 14:56, 14 May 2024 (UTC)- @Novem Linguae: I've reverted your re-labelling edit, as the lint stage tools generally do full linting, not just syntax checking. HTH! Jdforrester (WMF) (talk) 13:28, 15 May 2024 (UTC)
- No worries. I wonder if the word linting overlaps too much with the code style column, but I see your point. –Novem Linguae (talk) 16:50, 15 May 2024 (UTC)
Where to put test scripts in package.json
[edit]For MediaWiki extensions and skins, the npm test script should not run project tests, only linters.
What's a good spot in package.json's scripts section for project tests like QUnit and Jest? –Novem Linguae (talk) 15:08, 30 May 2024 (UTC)
- Do you mean the kinds of tests run via the command line, rather than in regular ("quibble") CI? If so maybe
test:qunit
ortest:jest
or similar? In practice quite a few extensions hack intonpm test
for code to lint as well as run tests that aren't MW-specific, though there's not really much settled protocol on this, and so this advice might not be good. Jdforrester (WMF) (talk) 18:26, 30 May 2024 (UTC)- Thanks, the
test:qunit
andtest:jest
suggestion is good. In the long run, I wonder ifnpm run lint
might be a better spot for linter tests. Probably too much trouble to change it though :( –Novem Linguae (talk) 13:19, 31 May 2024 (UTC) - Anything other than linters (e.g. unit/integration tests) are run through the normal MediaWiki channels
- What are the normal MediaWiki channels? If a repo has QUnit or Jest tests, are they automatically run by Quibble somehow even if they aren't in the scripts section of the package.json file? –Novem Linguae (talk) 13:22, 31 May 2024 (UTC)
- No. Quibble does a lot of different things, but in this regard, it runs
npm cit
and then the Special:JavaScriptTest page, and that's it, so your code tests have to be in one of those locations. Jdforrester (WMF) (talk) 14:05, 31 May 2024 (UTC)- Special:JavaScriptTest runs QUnit tests right? If a repo has Jest tests, and we want them to run in CI, they have to go in
npm test
right? If so, maybe we should change the npm test script should not run project tests, only linters to reflect this. –Novem Linguae (talk) 14:21, 31 May 2024 (UTC)- Maybe. This isn't really the venue to make that decision; I'd suggest starting an RfC, but that process is dead. :-( Jdforrester (WMF) (talk) 17:29, 31 May 2024 (UTC)
- Special:JavaScriptTest runs QUnit tests right? If a repo has Jest tests, and we want them to run in CI, they have to go in
- No. Quibble does a lot of different things, but in this regard, it runs
- Thanks, the