- Class Wikibase\Client\Api\ApiClientInfo
- may want to include namespaces and other settings here too.
- Member Wikibase\Client\Changes\ChangeHandler::handleChange (EntityChange $change, array $rootJobParams=[])
- process multiple changes at once!
- Member Wikibase\Client\DataAccess\Scribunto\WikibaseLuaEntityBindings::getGlobalSiteId ()
- Make this part of mw.site in the Scribunto extension.
- Member Wikibase\Client\DataAccess\Scribunto\WikibaseLuaEntityBindings::getLanguageCode ()
- Once T114640 has been implemented, this should probably be generally exposed in Scribunto as parser target language.
- Class Wikibase\Client\Hooks\LangLinkHandler
- split this up and find a better home for stuff that adds parser output properties and extension data.
- Class Wikibase\Client\RecentChanges\RevisionData
- Merge this into ExternalChange
- Member Wikibase\Client\Serializer\ClientEntitySerializer::addEntitySerializationFallbackInfo (array $serialization)
- FIXME duplicated code in Repo ResultBuilder
- Member Wikibase\Client\Serializer\ClientEntitySerializer::filterEntitySerializationUsingLangCodes (array $serialization)
- FIXME duplicated / similar code in Repo ResultBuilder
- Member Wikibase\Client\Serializer\ClientEntitySerializer::getTermsSerializationWithFallbackInfo (array $serialization)
- FIXME duplicated / similar code in Repo ResultBuilder
- 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
- Class Wikibase\DataAccess\AliasTermBuffer
- This or something similar should perhaps move to data-model-services
- 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\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.
- Class Wikibase\Lib\Formatters\CommonsLinkFormatter
- Use MediaWiki renderer
- Class Wikibase\Lib\Formatters\CommonsThumbnailFormatter
- Most feature requests require this to be a SnakFormatter instead of a ValueFormatter
- Class Wikibase\Lib\Formatters\DispatchingValueFormatter
- Plain format() shouldn't be supported, formatValue() should require the dataType ID.
- Class Wikibase\Lib\Formatters\MwTimeIsoFormatter
- move me to DataValues-time
- Member Wikibase\Lib\Formatters\OutputFormatValueFormatterFactory::applyLanguageDefaults (FormatterOptions $options)
: 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.
this shouldn't be public at all. Perhaps factor it out into a helper class.
- Member Wikibase\Lib\Formatters\QuantityDetailsFormatter::format ( $value)
Display URIs that start with http:// or https:// as clickable links.
Display URIs to entities in the local repository as clickable labels.
Mark "unitless" units somehow, e.g. via CSS or with an appended message.
- Member Wikibase\Lib\Formatters\TypedValueFormatter::formatValue (DataValue $value, $dataTypeId=null)
- make $dataTypeId mandatory.
- 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.
- 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\EntityTitleLookup::getTitleForId (EntityId $id)
- change this to return a TitleValue
- Class Wikibase\Lib\Store\HashSiteLinkStore
- Should be moved to the tests folder and namespace.
- 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\Sql\Terms\CleanTermsIfUnusedJob
- Execute the cleanup of each table in its own transaction to further reduce lock contention
- 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\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\Lib\WikibaseSettings
- Move this to a separate component.
- Member Wikibase\Repo\Api\ResultBuilder::addSiteLinkList (SiteLinkList $siteLinkList, $path, $addUrl=false)
- use a SiteLinkListSerializer when created in DataModelSerialization here
- 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\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\Content\EntityHandler::__construct ( $modelId, $unused, EntityContentDataCodec $contentCodec, EntityConstraintProvider $constraintProvider, ValidatorErrorLocalizer $errorLocalizer, EntityIdParser $entityIdParser, FieldDefinitions $fieldDefinitions, $legacyExportFormatDetector=null)
- Get rid of me
- Member Wikibase\Repo\EditEntity\EditEntity::attemptSave (EntityDocument $newEntity, $summary, $flags, $token, $watch=null, array $tags=[])
$flags here should ideally not refer to EDIT_ constants from mediawiki core.
This shouldn't throw MWExceptions
- Member Wikibase\Repo\EditEntity\MediawikiEditEntity::updateWatchlist ( $watch)
- move to separate service
- Class Wikibase\Repo\GenericEventDispatcher
- should go into MediaWiki core.
- Member Wikibase\Repo\Hooks\ShowSearchHitHandler::onShowSearchHitTitle (&$title, &$titleSnippet, $result, $terms, $specialSearch, &$query, &$attributes)
- Add highlighting when Q##-id matches and not label text.
- Member Wikibase\Repo\LinkedData\EntityDataRequestHandler::MINIMUM_MAX_AGE
- Hard maximum could be configurable somehow.
- 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\Notifications\RepoEntityChange::setMetadataFromRC (RecentChange $rc, $centralUserId)
- rename to setRecentChangeInfo
- Member Wikibase\Repo\Notifications\RepoEntityChange::setMetadataFromUser (User $user, $centralUserId)
- rename to setUserInfo
- Class Wikibase\Repo\ParserOutput\EntityParserOutputDataUpdaterCollection
- have ItemParserOutputDataUpdater, etc.
- Class Wikibase\Repo\Parsers\MwTimeIsoParser
- move me to DataValues-time
- Member Wikibase\Repo\Rdf\RdfBuilder::addEntityMetaData (EntityDocument $entity)
- extract into MetaDataRdfBuilder
- Member Wikibase\Repo\Rdf\RdfBuilder::addEntityRevisionInfo (EntityId $entityId, $revision, $timestamp)
- extract into MetaDataRdfBuilder
- Member Wikibase\Repo\Rdf\TruthyStatementRdfBuilder::addMainSnak (EntityId $entityId, Statement $statement)
- share more of this code with FullStatementRdfBuilder
- Class Wikibase\Repo\StatementRankSerializer
- this could be moved to DataModelSerialization (in some form)
- 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=[])
Might be able to further optimize handling of prepared edit in WikiPage.
now we use PageUpdater do we still need the 2 clear calls below?
- Class Wikibase\Repo\Store\Store
- provide getXXX() methods for getting local pseudo-singletons (shared service objects).
- Member Wikibase\Repo\Validators\UrlSchemeValidators::getValidator ( $scheme)
'bitcoin', 'geo', 'magnet', 'news', 'sip', 'sips', 'sms', 'tel', 'urn', 'xmpp'.
protocol relative '//'.