Wikibase
MediaWiki Wikibase extension
Todo List
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\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
Class Wikibase\Client\Store\TitleFactory
: move this into MediaWiki core.
Member Wikibase\EntityChange::setMetadataFromRC (RecentChange $rc, $centralUserId)
rename to setRecentChangeInfo
Member Wikibase\EntityChange::setMetadataFromUser (User $user, $centralUserId)
rename to setUserInfo
Member Wikibase\EntityContent::collectValues (array $data, array $ignore=[])
needs unit test
Class Wikibase\Lib\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.
Member Wikibase\Lib\Formatters\TypedValueFormatter::formatValue (DataValue $value, $dataTypeId=null)
: make $dataTypeId mandatory.
Class Wikibase\Lib\MwTimeIsoFormatter
move me to DataValues-time
Member Wikibase\Lib\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\QuantityDetailsFormatter::format ( $value)

Display URIs to entities in the local repository as clickable labels.

Display URIs that start with http:// or https:// as clickable links.

Mark "unitless" units somehow, e.g. via CSS or with an appended message.

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\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.
Class Wikibase\Lib\Tests\Store\MockTermIndex
: make a fully functional mock conforming to the contract of the TermIndex interface and passing tests for that interface. Only then will TermPropertyLabelResolverTest be a true blackbox test.
Member Wikibase\Rdf\RdfBuilder::addEntityRevisionInfo (EntityId $entityId, $revision, $timestamp)
: extract into MetaDataRdfBuilder
Member Wikibase\Repo\Api\ResultBuilder::addSiteLinkList (SiteLinkList $siteLinkList, $path, $addUrl=false)
use a SiteLinkListSerializer when created in DataModelSerialization here
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.
Class Wikibase\Repo\Content\DataUpdateAdapter
Propose for MediaWiki core.
Class Wikibase\Repo\GenericEventDispatcher
: should go into MediaWiki core.
Member Wikibase\Repo\Hooks\ShowSearchHitHandler::onShowSearchHitTitle (Title $title, &$titleSnippet, SearchResult $result, $terms, SpecialSearch $specialSearch, array &$query, array &$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.
Class Wikibase\Repo\Parsers\MwTimeIsoParser
move me to DataValues-time
Class Wikibase\Repo\Search\Elastic\Query\HasWbStatementFeature
Move to WikibaseCirrusSearch extension
Class Wikibase\Repo\Search\Elastic\Query\WbStatementQuantityFeature
Move to WikibaseCirrusSearch extension
Member Wikibase\Repo\Store\WikiPageEntityStore::isWatching (User $user, EntityId $id)
: move this to a separate service
Member Wikibase\Repo\Tests\Api\PermissionsTestCase::applyPermissions (array $permissions=null, array $groups=null)
: try to do this without messing with the globals, or at least without hardcoding them.
Class Wikibase\Repo\Tests\Api\ResultBuilderTest
mock and inject serializers to avoid massive expected output?
Member Wikibase\Repo\Tests\Diff\ClaimDifferenceVisualizerTest::provideDifferenceAndClaim ()
Come up with a better way of testing this....
Member Wikibase\Repo\Tests\Store\Sql\WikiPageEntityStoreTest::saveEntity (WikiPageEntityStore $store, EntityDocument $entity, $summary='', User $user=null, $flags=0, $baseRevId=false)
rewrite the tests using this
Member Wikibase\Repo\Tests\SummaryFormatterTest::testOnFormat ( $type, $root, $pre, $auto, $post, $title, $local, $expected)
move to RepoHooksTest
Member Wikibase\Repo\Validators\UrlSchemeValidators::getValidator ( $scheme)

'bitcoin', 'geo', 'magnet', 'news', 'sip', 'sips', 'sms', 'tel', 'urn', 'xmpp'.

protocol relative '//'.

Member Wikibase\RepoHooks::onRecentChangeSave (RecentChange $recentChange)
: find a better way to do this!
Class Wikibase\StatementRankSerializer
this could be moved to DataModelSerialization (in some form)
Class Wikibase\Store
: provide getXXX() methods for getting local pseudo-singletons (shared service objects).
Member Wikibase\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\StringNormalizer::removeBadCharFirst ( $string)
: this was stolen from the Language class. Make that code reusable.
Member Wikibase\StringNormalizer::removeBadCharLast ( $string)
: this was stolen from the Language class. Make that code reusable.
Class Wikibase\WikibaseSettings
Move this to a separate component.