Page MenuHomePhabricator

Create a Property ID interface and use it
Closed, ResolvedPublic

Description

Per ADR 22 we want to create a new Property ID interface and use it to type hint any service that accepts both "local" and federated properties.

  • Decide on names for the interface and its two implementations ( URIPropertyId (federated) and NumericPropertyid ("local") were some favorites that came up during the aforementioned meeting. )
  • Make changes to DataModel and DataModelServices accordingly (note: might need several steps for forward compatibility)
  • Use the updated interface and implementations in all relevant code bases

Event Timeline

A possible plan is:

  • Change DataModel
    • Create NumericPropertyId class in DataModel
    • Change PropertyId class in DataModel to become an interface
    • Release DataModel with major version bump
  • Change DataModelServices
    • To create new NumericPropertyId()
    • To use new version of DataModel
  • Make patch for mediawiki-vendor to use new DataModel and DataModelServices
  • Make patch for all Wikibase extensions with a Depends-On the vendor patch(es)

An alternative plan could be:

  • Add DataModel, DataModel Serialization, Internal Serialization and DataModel Services to mono-repo packages
  • Remove dependency from wikibase composer.json
  • Do refactoring of PropertyId into an interface and introduce NumericPropertyId all in one GO.

Change 713264 had a related patch set uploaded (by Tarrow; author: Tarrow):

[mediawiki/extensions/Wikibase@master] DNM: test commit of squashed merge of datamodel

https://gerrit.wikimedia.org/r/713264

Looks like we plan to have a "a go" at the alternative plan of following ADR 14 and trying to make these repos part of the monorepo

https://gerrit.wikimedia.org/r/713264 is the result of using git filter-repo to rewrite the commits in datamodel before git merging into Wikibase and then subsequently squashing down.

An copy of the complete merged branch is temporarily available at: https://github.com/tarrow/Wikibase-clone/tree/includeDataModel

Specifically

Change 713277 had a related patch set uploaded (by Tarrow; author: Tarrow):

[mediawiki/extensions/Wikibase@master] Premtively disable linting for data-model package

https://gerrit.wikimedia.org/r/713277

Change 713277 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Premtively disable linting for data-model package

https://gerrit.wikimedia.org/r/713277

Change 713264 abandoned by Lucas Werkmeister (WMDE):

[mediawiki/extensions/Wikibase@master] DNM: test commit of squashed merge of datamodel

Reason:

superseded by Ic0f47bc5c0 if I’m not mistaken

https://gerrit.wikimedia.org/r/713264