jshint and jscs have been phased out of our CI linting process with eslint,`jshint` and `jscs` have been slowly removed from Wikimedia's [Continuous Integration](https://www.mediawiki.org/wiki/Continuous_integration) (CI) [linting](https://en.wikipedia.org/wiki/Lint_(software)) process. which handles both static analysis and code style.They get replaced with `eslint`, Here'which handles both [static analysis](https://en.wikipedia.org/wiki/Static_program_analysis) and [code style](https://www.mediawiki.org/wiki/Manual:Coding_conventions).
Here is an [[https://gerrit.wikimedia.org/r/c/mediawiki/extensions/DismissableSiteNotice/+/475841|example conversion]]. You should use the config that's currently on <https://www.mediawiki.org/wiki/Manual:Coding_conventions/JavaScript#Linting>.
You'll need to remove any references to `jshint/`/`jscs`, update the dependencies in the file `package.json` for `eslint`and `eslint-config-wikimedia`, configure it to run in `Gruntfile.js`, and then fix any failures.
The following extensionsextensions in the list below are candidates for conversion for the purposes of GCIGCI. Please check them off (means: replace `[ ]` by `[x]`) in this Phabricator task if you start working on them, by clicking "Edit Task" in the upper right corner and updating the task description. (You need to be logged into Phabricator to do this. If you do not have an account in Wikimedia Phabricator yet, please check them off if you start working on them:see the [Phabricator help](https://www.mediawiki.org/wiki/Phabricator/Help#Creating_your_account) how to create an account here.)
## For Wikimedia production extensions/skins, see T195542
## Other extensions/skins
[x] AnonPrivacy @Zoranzoki21
[ ] ApprovedRevs
[ ] ArticleIndex
[ ] BaseHooks
[ ] BiblioPlus
[ ] BibManager
[ ] BlogPage
[ ] BlueSpiceFoundation
[ ] BlueSpiceRating
[ ] BlueSpiceSocial
[ ] BreadCrumbs
[ ] Buggy
[ ] Cargo
[ ] CollapsibleVector
[ ] ConfirmAccount
[ ] ContributionScores
[ ] ContributionsList
[ ] CreatePage
[ ] CreateRedirect
[ ] DeviceMapLogCapture
[ ] DisableAccount
[ ] Drafts
[ ] DumpHTML
[ ] EditSimilar
[ ] EditUser
[ ] EmailAuth
[ ] ExtTab
[ ] FanBoxes
[ ] Farmer
[ ] FundraisingEmailUnsubscribe
[ ] Genealogy
[ ] Git2Pages
[ ] HeaderTabs
[ ] HoverGallery
[ ] ImageMetrics
[ ] ImageTweaks
[ ] ImportArticles
[ ] IndexFunction
[ ] InlineCategorizer
[ ] InviteSignup
[ ] JSBreadCrumbs
[ ] JsonData
[ ] LanguageSelector
[ ] LanguageTool
[ ] LastModified
[ ] LifeWeb
[ ] Lingo
[ ] LinkFilter
[ ] LinkSuggest
[ ] Maintenance
[ ] MaintenanceShell
[ ] MarkAsHelpful
[ ] MathSearch
[ ] MetaMaster
[ ] MixedNamespaceSearchSuggestions
[ ] MsUpload
[ ] MultiMaps
[ ] NamespacePopups
[ ] NamespaceSidebar
[ ] NSFileRepo
[ ] NukeDPL
[ ] NumberFormat
[ ] Numbertext
[ ] NumerAlpha
[ ] OdbcDatabase
[ ] OfflineImportLexicon
[ ] OnlineStatus
[ ] OnlineStatusBar
[ ] OnlyRecentRecentChanges
[ ] OOJsUIAjaxLogin
[ ] OpenBadges
[ ] OpenGraphMeta
[ ] OpenID
[ ] OpenLayers
[ ] OracleTextSearch
[ ] PageBlock
[ ] PageCreationNotif
[ ] PageDisqus
[ ] PageInCat
[ ] PageLanguage
[ ] PageNotice
[ ] PagePopups
[ ] PageTools
[ ] PanScroll
[ ] PerPageLicense
[ ] PGFTikZ
[ ] PhpHighlight
[ ] PhpTags
[ ] PhpTagsFunctions
[ ] PhpTagsMaps
[ ] PhpTagsSMW
[ ] PhpTagsStorage
[ ] PhpTagsWidgets
[ ] PhpTagsWiki
[ ] PictureGame
[ ] PipeEscape
[ ] Poll
[ ] PollNY
[ ] Polyglot
[ ] PrivateDomains
[ ] ProtectSite
[ ] PurgeClickThrough
[ ] PushToWatch
[ ] Quantcast
[ ] QuickSearchLookup
[ ] QuizGame
[ ] RandomArea
[ ] RandomGameUnit
[ ] RandomImage
[ ] RandomImageByCategory
[ ] RandomInCategory
[ ] RandomPages
[ ] ReassignEdits
[ ] RefreshSpecial
[ ] RegexFun
[ ] RegexFunctions
[ ] RelatedSites
[ ] ReplaceSet
[ ] RevisionCommentSupplement
[ ] RightFunctions
[ ] RT
[ ] SafeDelete
[ ] Sarcasm
[ ] ScanSet
[ ] Screenplay
[ ] SecureHTML
[ ] SecureSessions
[ ] SelectTag
[ ] SemanticACL
[ ] SemanticBundle
[ ] SemanticDrilldown
[ ] SemanticGenealogy
[ ] SemanticInternalObjects
[ ] SemanticPageSeries
[ ] SemanticRating
[ ] SemanticSifter
[ ] SemanticTasks
[ ] SemanticWebBrowser
[ ] ShoutWikiAds
[ ] SidebarDonateBox
[ ] SideBarMenu
[ ] SimpleChanges
[ ] SimpleFarm
[ ] SimpleSecurity
[ ] SiteMetrics
[ ] SkinPerNamespace
[ ] SmiteSpam
[ ] SmoothGallery
[ ] SocialLogin
[ ] SocialProfile
[ ] SoftRedirector
[ ] SoftwareVersion
[ ] Solarium
[ ] SpamDiffTool
[ ] SpamRegex
[ ] Spark
[ ] Special404
[ ] SpellingApi
[ ] SphinxSearch
[ ] SSLClientAuthentication
[ ] StaffEdits
[ ] StalkerLog
[ ] StarterWiki
[ ] StickToThatLanguage
[ ] SubpageFun
[ ] Sudo
[ ] Survey
[ ] SVGEdit
[ ] SwiftMailer
[ ] Tabs
[ ] TemplateInfo
[ ] Theme
[ ] ThrottleOverride
[ ] TimelineTable
[ ] TimeMachine
[ ] TitleIcon
[ ] TitleKey
[ ] TweetANew
[ ] TwitterLogin
[ ] UnicodeConverter
[ ] UploadBlacklist
[ ] UploadLogo
[ ] UserGroups
[ ] UserOptionStats
[ ] UserStatus
[ ] UserThrottle
[ ] Variables
[ ] VEForAll
[ ] VoteNY
[ ] WebChat
[ ] Widgets
[ ] WikiArticleFeeds
[ ] WikiCategoryTagCloud
[ ] WikiForum
[ ] WikiLexicalData
[ ] Amethyst (skin)
[ ] Anisa (skin)
[ ] BlueSky (skin)
[ ] Bouquet (skin)
[ ] Example (skin)
[ ] Nimbus (skin)
[ ] WoOgLeShades (skin)
I can add plenty more extensions if there's demand.
Mentors: @legoktm, @Jdforrester-WMF and @Esanders