Idea from T34603: search around MediaWiki for "remove after 1.XX release" code and similar and kill that code (or file bugs to remember to remove the code later).
Make sure you use a commit summary that explains what you're doing/removing (reusing this task title isn't a good one!), and also add an entry to RELEASE-NOTES-1.29 similar to those that exist already https://github.com/wikimedia/mediawiki/blob/2c74b04/RELEASE-NOTES-1.29#L54-L68
Example: https://www.mediawiki.org/wiki/Special:Code/MediaWiki/104318 added "Do not release 1.19 with this." in a comment. Search for phrases like that.
List of things that could be removed (thanks to @Matthewrbowker):
**Remove after...**
<None found>
**Deprecated, use ... instead**
* class ResetUserTokens
* Skin::doEditSectionLink()
* User::getImplicitGroups()
**@deprecated (Soft deprecated)**
* class ProfileSection
* function wfProfileIn() (ProfilerFunctions.php)
* function wfProfileOut() (ProfilerFunctions.php)
* class SpecialResetTokens
* EDIT_TOKEN_SUFFIX (in User.php)
* User::randomPassword()
* User::setPassword()
* User::setInternalPassword()
* User::setNewpassword()
* User::getTokenFromOption()
* User::setCookie()
* User::clearCookie()
* User::setExtendedLoginCookie()
* User::checkPassword()
* User::checkTemporaryPassword()
* ~~User::getEditTokenTimestamp()~~ (https://gerrit.wikimedia.org/r/c/mediawiki/core/+/423180)
* User::addNewUserLogEntry()
* ~~User::addNewUserLogEntryAutoCreate()~~ (https://gerrit.wikimedia.org/r/c/mediawiki/core/+/561395)
* BufferingStatsdDataFactory::getBuffer()
* ~~User::getPasswordFactory()~~ (https://gerrit.wikimedia.org/r/c/mediawiki/core/+/423180)
* ~~User::passwordChangeInputAttribs()~~ (https://gerrit.wikimedia.org/r/c/mediawiki/core/+/423180)
* Language::initEncoding()
* Language::recodeForEdit()
* Language::recodeInput()
* Interwiki::isValidInterwiki()
* Interwiki::fetch()
* Inetwiki::getAllPrefixes()
* class AuthManagerAuthPlugin
* Class AuthManagerAuthPluginUser
* Status::getErrorsArray()
* Status::getWarningsArray()
* $mUniqPrefix (in class Parser)
* Parser::getRandomString()
* Parser::uniqPrefix()
* Parser::disableCache()
* ~~SkinFactory::getDefaultInstance()~~ (https://gerrit.wikimedia.org/r/c/mediawiki/core/+/518325)
* ApiQueryInfo::getTokenFunctions()
* ApiQueryInfo::resetTokenCache()
* ApiQueryInfo::getEditToken()
* ApiQueryInfo::getDeleteToken()
* ApiQueryInfo::getProtectToken()
* ApiQueryInfo::getMoveToken()
* ApiQueryInfo::getBlockToken()
* ApiQueryInfo::getUnblockToken()
* ApiQueryInfo::getEmailToken()
* ApiQueryInfo::getImportToken()
* ApiQueryInfo::getWatchToken()
* ApiQueryInfo::getOptionsToken()
* LoadBalancer::getLaggedSlaveMode()
* LoadBalancer::laggedSlaveUsed()
* MimeMagic::singleton()
* class ApiTokens
**wfDeprecated (Hard deprecated)**
* ~~Parser::getRandomString()~~ (rMW1a2ef297eb17)
* ~~Parser::uniqPrefix()~~ (rMW1a2ef297eb17)
* ~~$uniq_prefix in Parser::extractTagsAndParams()~~ (rMW1a2ef297eb17)
* ~~ApiQueryLogEvents::addLogParams()~~(rMW6ff65e57bbf2)
* In DifferenceEngine::textDiff() there is a notation deprecating a variable
* $wgSessionsInObjectCache in class Setup
* SearchEngine::getOpenSearchTemplate()
* ~~WikiImproter::__construct() without a Config instance~~ (rMWaf1434ff2fea)
* LoginSignupSpecialPage::getFakeTemplate() has hook references depricated
* ~~ChangeTags::listExtensionActivatedTags()~~(rMW390f6411e09b)
* ~~ChangeTags::listExtensionDefinedTags()~~(rMW390f6411e09b)
* ~~VFormHTMLForm::isVForm()~~(rMWae7237ea9839)
* ~~User::setCookie()~~(rMW5ab3ae037114)
* ~~User::clearCookie()~~(rMW5ab3ae037114)
* ~~User::setExtendedLoginCookie()~~(rMW5ab3ae037114)
* ~~ApiPageSet::getInvalidTitles()~~(rMW6ff65e57bbf2)
* User::createNew()
* ~~User::getEditTokenTimestamp()~~(rMWc8ea95160ae0)
* ~~User::getPasswordFactory()~~(rMWc8ea95160ae0)
* ~~Revision::getRawUser()~~ (rMW318706a27c52)
* ~~Revision::getRawUserText()~~ (rMW318706a27c52)
* ~~Revision::getRawComment()~~ (rMW318706a27c52)
* MWLBFactory::getLBFactoryClass() (inside the class)
* Class LoginForm
* Job::batchInsert()
* ~~UploadBase::stashFileGetKey()~~(rMWe745bfed82c4)
* ~~UploadBase::stashSession()~~(rMWe745bfed82c4)
* MWExceptionHandler::getLogId()
* ApiResult::__construct - handing instance of ApiMain
* ~~ApiBase::getModuleProfileName()~~(rMW80f787fba3e8)
* ~~ApiBase::safeProfileOut()~~(rMW6ff65e57bbf2)
* ~~ApiBase::getProfileTime()~~(rMW64b146e55a13)
* ~~ApiBase::profileDBIn()~~(rMW6ff65e57bbf2)
* ~~ApiBase::profileDBOut()~~(rMW6ff65e57bbf2)
* ~~ApiBase::getProfileDBTime()~~(rMW3f1230e9ec36)
* ResourceLoader::readStyleFiles() without a ResourceLoader context.
* SpecialPageFactory::getList()
* SpecialPageFactory::getPage() - Array syntax
* StripState::__construct called with any arguements
* GlobalFunctions.php - wfErrorLog()
* GlobalFuctions.php - wfFixSessionID()
* GlobalFunctions.php - wfResetSessionID()
* GlobalFunctions.php - wfSetupSession()
* ~~Linker::getLinkColour()~~(rMW03e7ae45bcb1)
* Linker::link() with $query as string
* SkinTemplate::outputPage() (Not sure on this one, it's hidden in an if())
* ~~Linker::formatTemplates()~~(rMW8d47f5368785)
* MailAddress::__construct() called with a user object
* Block::__construct with multiple arguements
* ~~OutputPage::__construct with no context~~ (rMWc4145b2f087c)
* ~~OutputPage::addExtensionStyle()~~ (Unknown Commit)
* ~~OutputPage::getExtStyle()~~ (Unknown Commit)
* ~~HTMLForm::isVForm()~~(rMWae7237ea9839)