This is a list of potential deprecated code to drop. Not all of it will be dropped before 1.32 (and we'll move entries to a parallel ticket for 1.33). Found by manually looking for hard deprecations; soft-deprecated code isn't listed here (yet?).
[x] From 1.17
[x] Nothing!
[ ] From 1.18
[ ] SpecialPageFactory – Array syntax for $wgSpecialPages
[ ] From 1.19
[ ] UnknownAction hook; no task for removal, but see T178844 for documentation.
[ ] From 1.20
[ ] Linker – calling Linker::link() with $query as a string rather than an array.
[ ] OutputPage – calling ::wrapWikiMsg() with an options parameter.
[ ] SkinTemplate – Calling ::outputPage with a specified context [hard-deprecated in 1.25]
[x] From 1.21
[x] Nothing!
[ ] From 1.22
[ ] ParserLimitReport hook
[ ] From 1.23
[ ] $wgLBFactoryConf support for values with underscores (LBFactory_Simple/LBFactory_Single/LBFactory_Multi)
[ ] SpecialPage::getTitle()
[ ] The SpecialRecentChangesQuery, SpecialRecentChangesFilters, SpecialWatchlistQuery, and SpecialWatchlistFilters hooks
[ ] From 1.24
[ ] OutputPage – Calling ::addScriptFile with a path pointed at /w/skins/common or similar malformed request
[ ] MailAddress – Construction with a User object
[ ] From 1.25
[ ] A whole lot of stuff in the Action API
[ ] Use of the UtfNormal class
[ ] wfErrorLog
[ ] wfRunHooks
[ ] WikiPage – Calling ::prepareContentForEdit with a revisionid rather than a Revision object
[ ] The DoEditSectionLink hook
[ ] The UserGetImplicitGroups hook
[ ] From 1.26
[ ] wfUseMW
[ ] ApiPageSet::getInvalidTitles()
[ ] Constructing a Block object with multiple arguments rather than an "options" array
[ ] RestbaseVirtualRESTService and ParsoidVirtualRESTService::onParsoid1Request
[ ] The UserRights hook
[ ] From 1.27
[ ] AuthManager migration stuff
[ ] The AuthPluginAutoCreate hook
[ ] wfSetupSession and wfResetSessionID
[ ] SessionManager::autoCreateUser()
[ ] The ChangePasswordForm hook
[ ] The UserLoadFromSession hook
[ ] Calling User::createNew() with any of the params password, newpassword, newpass_time, or password_expires
[ ] Setting $wgSessionsInObjectCache = false
[ ] Setting $wgSessionHandler at all
[ ] The UserCreateForm/UserLoginForm hooks and the LoginForm class and related material: T193755
[ ] Writing to $_SESSION
[ ] Specification of $wgExternalDiffEngine as wikidiff or wikidiff3
[ ] MWExceptionHandler::getLogId()
[ ] EmailNotification::updateWatchlistTimestamp()
[ ] ResourceLoaderFileModules::readStyleFiles() without a ResourceLoader context
[ ] From 1.28
[ ] The APIEditBeforeSave hook
[ ] Linking things
[ ] Linker::formatTemplates() and ::formatSize()
[ ] The LinkBegin and LinkEnd hooks
[ ] The DummyLinker class
[ ] Interwiki – ::isValidInterwiki(), ::fetch(), ::invalidateCache(), ::getAllPrefixes()
[ ] The MimeMagic fallback class for MimeAnalyzer
[ ] The UploadVerification hook
[ ] UploadBase/UploadFromChunks ::stashFile(),::stashFileGetKey() and ::stashSession()
[ ] Language::initEncoding(), ::recodeForEdit(), and ::recodeInput()
[ ] From 1.29
[ ] A bunch of stuff in the Action API
[ ] The UsageException (outside of an ApiUsageException)
[ ] DeferredUpdates::setImmediateMode()
[ ] EditPage::submit()
[ ] Message::getFormat()
[ ] Article::doEditContent() – T155696
[ ] Having no manifest_version set in extension.json
[ ] The ChangesListSpecialPageFilters hook
[ ] EmailUser hook returning a raw HTML string as an error
[ ] User ::getGroupName(), ::getGroupMember(), ::getGroupPage(), ::makeGroupLinkHTML(), and ::makeGroupLinkWiki()
[ ] From 1.30
[ ] wfUsePHP
[ ] File / MediaHandler ::getStreamHeaders()
[ ] BufferingStatsdDataFactory::getBuffer()
[ ] Title::escapeFragmentForURL()
[ ] ParserOptions::legacyOptions()
[ ] Special:EmailUser::getTarget() or ::validateTarget() without specifying the sending user
[ ] User – Setting IP addresses in the keys of $wgProxyList