- 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!
- 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::injectSerializationWithDataTypes (array $serialization, $pathPrefix)
- FIXME duplicated / similar code in Repo ResultBuilder
- Interface Wikibase\DataAccess\AliasTermBuffer
- This or something similar should perhaps move to data-model-services
- Interface 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)
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\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 (string $globalSiteId, string $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
- Interface 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 $string)
- this was stolen from the Language class. Make that code reusable.
- Member Wikibase\Lib\StringNormalizer::removeBadCharLast (string $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, string $summary, $flags, $token, $watch=null, array $tags=[])
- $flags here should ideally not refer to EDIT_ constants from mediawiki core.
- Member Wikibase\Repo\EditEntity\MediaWikiEditEntity::updateWatchlist (bool $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.
- Class Wikibase\Repo\ParserOutput\EntityParserOutputDataUpdaterCollection
- have ItemParserOutputDataUpdater, etc. instead.
- Class Wikibase\Repo\Parsers\MwTimeIsoParser
- move me to DataValues-time
- Member Wikibase\Repo\Rdf\RdfBuilder::addEntityMetaData (EntityId $entityId)
- extract into MetaDataRdfBuilder
- Member Wikibase\Repo\Rdf\RdfBuilder::addEntityRevisionInfo (EntityId $entityId, int $revision, string $timestamp)
- extract into MetaDataRdfBuilder
- Member Wikibase\Repo\Rdf\TruthyStatementRdfBuilder::addMainSnak (EntityId $entityId, Statement $statement)
- share more of this code with FullStatementRdfBuilder
- Member Wikibase\Repo\RepoHooks::onSkinTemplateNavigationUniversal (SkinTemplate $skinTemplate, array &$links)
- T282549 Consider moving some of this logic into a place where it can be more adequately tested
- 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?
- Interface 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 '//'.