- Member Wikibase\Repo\Content\EntityHandler::__construct ( $modelId, $unused, EntityContentDataCodec $contentCodec, EntityConstraintProvider $constraintProvider, ValidatorErrorLocalizer $errorLocalizer, EntityIdParser $entityIdParser, FieldDefinitions $fieldDefinitions, $legacyExportFormatDetector=null)
- Get rid of me
- Member Wikibase\Repo\Merge\MergeFactory::newMergeOps (Item $fromItem, Item $toItem, array $ignoreConflicts=[])
- Injecting ChangeOpFactoryProvider is an Abomination Unto Nuggan, we'll need a ItemMergeChangeOpsSequenceBuilder or some such.
- Member Wikibase\Repo\LinkedData\EntityDataRequestHandler::MINIMUM_MAX_AGE
- Hard maximum could be configurable somehow.
- Member Wikibase\Repo\Hooks\ShowSearchHitHandler::onShowSearchHitTitle (&$title, &$titleSnippet, $result, $terms, $specialSearch, &$query, &$attributes)
- Add highlighting when Q##-id matches and not label text.
- Class Wikibase\Repo\GenericEventDispatcher
- should go into MediaWiki core.
- Member Wikibase\Repo\EditEntity\MediawikiEditEntity::updateWatchlist ( $watch)
- move to separate service
- Member Wikibase\Repo\EditEntity\EditEntity::attemptSave (EntityDocument $newEntity, $summary, $flags, $token, $watch=null, array $tags=[])
This shouldn't throw MWExceptions
$flags here should ideally not refer to EDIT_ constants from mediawiki core.
- Member Wikibase\Repo\Notifications\RepoEntityChange::setMetadataFromRC (RecentChange $rc, $centralUserId)
- rename to setRecentChangeInfo
- Member Wikibase\Repo\ChangeOp\ChangeOpsMerge::__construct (Item $fromItem, Item $toItem, array $ignoreConflicts, EntityConstraintProvider $constraintProvider, ChangeOpFactoryProvider $changeOpFactoryProvider, SiteLookup $siteLookup, StatementsMerger $statementsMerger)
- Injecting ChangeOpFactoryProvider is an Abomination Unto Nuggan, we'll need a MergeChangeOpsSequenceBuilder or some such. This will allow us to merge different kinds of entities nicely, too.
- Member Wikibase\Repo\Api\SetClaim::getSummary (array $params, Statement $statement, StatementList $statementList)
- this summary builder is ugly and summary stuff needs to be refactored
- Member Wikibase\Repo\Api\ResultBuilder::addSiteLinkList (SiteLinkList $siteLinkList, $path, $addUrl=false)
- use a SiteLinkListSerializer when created in DataModelSerialization here
- Class Wikibase\Lib\WikibaseSettings
- Move this to a separate component.
- Member Wikibase\Lib\StringNormalizer::removeBadCharFirst ( $string)
- this was stolen from the Language class. Make that code reusable.
- Member Wikibase\Lib\StringNormalizer::removeBadCharLast ( $string)
- this was stolen from the Language class. Make that code reusable.
- Class Wikibase\Repo\StatementRankSerializer
- this could be moved to DataModelSerialization (in some form)
- Member Wikibase\Repo\Validators\UrlSchemeValidators::getValidator ( $scheme)
protocol relative '//'.
'bitcoin', 'geo', 'magnet', 'news', 'sip', 'sips', 'sms', 'tel', 'urn', 'xmpp'.
- Class Wikibase\Repo\Store\Store
- provide getXXX() methods for getting local pseudo-singletons (shared service objects).
- Member Wikibase\Repo\Store\Sql\WikiPageEntityStore::isWatching (User $user, EntityId $id)
- move this to a separate service
- Member Wikibase\Repo\Store\Sql\WikiPageEntityStore::saveEntityContent (EntityContent $entityContent, User $user, $summary='', $flags=0, $baseRevId=false, array $tags=[])
now we use PageUpdater do we still need the 2 clear calls below?
Might be able to further optimize handling of prepared edit in WikiPage.
- Class Wikibase\Lib\Store\Sql\WikiPageEntityMetaDataAccessor
- This whole interface may no longer be needed with the introduction of RevisionRecord which can represent a revision on any wiki. MetaData accessing can probably be killed and instead RevisionRecord just be returned.
- Member Wikibase\Repo\Rdf\TruthyStatementRdfBuilder::addMainSnak (EntityId $entityId, Statement $statement)
- share more of this code with FullStatementRdfBuilder
- Member Wikibase\Repo\Rdf\RdfBuilder::addEntityMetaData (EntityDocument $entity)
- extract into MetaDataRdfBuilder
- Member Wikibase\Repo\Rdf\RdfBuilder::addEntityRevisionInfo (EntityId $entityId, $revision, $timestamp)
- extract into MetaDataRdfBuilder
- Class Wikibase\Repo\Parsers\MwTimeIsoParser
- move me to DataValues-time
- Class Wikibase\Repo\ParserOutput\EntityParserOutputDataUpdaterCollection
- have ItemParserOutputDataUpdater, etc. instead.
- Member Wikibase\Repo\Notifications\RepoEntityChange::setMetadataFromUser (User $user, $centralUserId)
- rename to setUserInfo
- Member Wikibase\Client\Serializer\ClientEntitySerializer::getTermsSerializationWithFallbackInfo (array $serialization)
- FIXME duplicated / similar code in Repo ResultBuilder
- Class Wikibase\Lib\Formatters\CommonsThumbnailFormatter
- Most feature requests require this to be a SnakFormatter instead of a ValueFormatter
- Class Wikibase\Lib\Formatters\CommonsLinkFormatter
- Use MediaWiki renderer
- Class Wikibase\DataAccess\PrefetchingTermLookup
- PrefetchingTermLookup probably wants an implementation that allows composing a service from multiple different parts. This would for example allow MediaInfo to use a default null AliasTermBuffer (as aliases do not exist in that context), while using a LabelLookup etc that looks up from the correct place.
- Member Wikibase\DataAccess\EntitySourceDefinitions::getSourceForEntityType (string $entityType)
- when the same entity type can be provided by multiple source (currently forbidden), this should return all sources
- Class Wikibase\DataAccess\AliasTermBuffer
- This or something similar should perhaps move to data-model-services
- Member Wikibase\Client\Serializer\ClientSerializer::getArrayWithDataTypesInGroupedSnakListAtPath (array $array, $path)
- FIXME duplicated / similar code in Repo ResultBuilder
- Member Wikibase\Client\Serializer\ClientSerializer::injectSerializationWithDataTypes (array $serialization, $pathPrefix)
- FIXME duplicated / similar code in Repo ResultBuilder
- Member Wikibase\Client\Serializer\ClientEntitySerializer::filterEntitySerializationUsingLangCodes (array $serialization)
- FIXME duplicated / similar code in Repo ResultBuilder
- Class Wikibase\Lib\Formatters\DispatchingValueFormatter
- Plain format() shouldn't be supported, formatValue() should require the dataType ID.
- Member Wikibase\Client\Serializer\ClientEntitySerializer::addEntitySerializationFallbackInfo (array $serialization)
- FIXME duplicated code in Repo ResultBuilder
- Class Wikibase\Client\RecentChanges\RevisionData
- Merge this into ExternalChange
- Class Wikibase\Client\Hooks\LangLinkHandler
- split this up and find a better home for stuff that adds parser output properties and extension data.
- Member Wikibase\Client\DataAccess\Scribunto\WikibaseLuaEntityBindings::getLanguageCode ()
- Once T114640 has been implemented, this should probably be generally exposed in Scribunto as parser target language.
- Member Wikibase\Client\DataAccess\Scribunto\WikibaseLuaEntityBindings::getGlobalSiteId ()
- Make this part of mw.site in the Scribunto extension.
- Member Wikibase\Client\Changes\ChangeHandler::handleChange (EntityChange $change, array $rootJobParams=[])
- process multiple changes at once!
- Class Wikibase\Lib\Store\Sql\Terms\CleanTermsIfUnusedJob
- Execute the cleanup of each table in its own transaction to further reduce lock contention
- Member Wikibase\Lib\Store\Sql\SiteLinkTable::getItemIdForLink ( $globalSiteId, $pageTitle)
- may want to deprecate this or change it to always return entity id object only
- Class Wikibase\Lib\Store\HashSiteLinkStore
- Should be moved to the tests folder and namespace.
- Member Wikibase\Lib\Store\EntityTitleLookup::getTitleForId (EntityId $id)
- change this to return a TitleValue
- Member Wikibase\Lib\Store\EntityStore::isWatching (User $user, EntityId $id)
- move this to a separate service
- Member Wikibase\Lib\Store\EntityStore::updateWatchlist (User $user, EntityId $id, $watch)
- move this to a separate service
- Member Wikibase\Lib\Store\EntityIdLookup::getEntityIdForTitle (Title $title)
- Switch this to using TitleValue once we can easily get the content model and handler based on a TitleValue.
- Class Wikibase\Client\Api\ApiClientInfo
- may want to include namespaces and other settings here too.
- Member Wikibase\Lib\Formatters\TypedValueFormatter::formatValue (DataValue $value, $dataTypeId=null)
- make $dataTypeId mandatory.
- Member Wikibase\Lib\Formatters\QuantityDetailsFormatter::format ( $value)
Mark "unitless" units somehow, e.g. via CSS or with an appended message.
Display URIs that start with http:// or https:// as clickable links.
Display URIs to entities in the local repository as clickable labels.
- Member Wikibase\Lib\Formatters\OutputFormatValueFormatterFactory::applyLanguageDefaults (FormatterOptions $options)
this shouldn't be public at all. Perhaps factor it out into a helper class.
: Sort out how the desired language is specified. We have two language options, each accepting different ways of specifying the language. That's not good.
- Class Wikibase\Lib\Formatters\MwTimeIsoFormatter
- move me to DataValues-time