Page MenuHomePhabricator

wdqs-common: Stand-alone git repository
Closed, ResolvedPublic5 Estimated Story Points

Description

The common library historically was part of the rdf gerrit repository.

The goal is to split all shared code into its own repository on Gitlab.

AC:

  • New repository on gitlab which contains the shared code
  • Gitlab pipeline which creates a jar artifact and pushes it into gitlab maven registry

Event Timeline

trueg changed the task status from Open to In Progress.Apr 13 2026, 3:47 PM
trueg triaged this task as High priority.
trueg moved this task from Incoming to Sprint 04 (2026/04/08) on the Wikidata Platform Team board.
lerickson set the point value for this task to 5.Apr 13 2026, 3:52 PM

As part of the refactoring of the original wikidata/query/rdf gerrit repository, the wdqs-common library has been created. It contains code shared between the rdf-streaming-consumer, rdf-streaming-updater, the rdf-spark-tools and the other tools that exist in the original repository:

The new common library contains the following parts from the original meta repository:

  • All of common
  • All of streaming-updater-common
  • StatementHelper from testTools (this means we now have test classes in this package which is not ideal but can be improved later on)
  • Several classes from tools (including their unit tests):
    • AskQueryResponseHandler
    • BNodeSkolemization
    • ChangeEvent
    • Change
    • ClassifiedStatements
    • CliUtils
    • CollectedUpdateMetrics
    • ConsumerPatch
    • ContainedException
    • Continue
    • DelegatingRdfHandler
    • EntityDiff
    • EntityId
    • EntityMungingRdfHandler
    • EventInfo
    • EventPlatformEvent
    • EventsMeta
    • EventWithMeta
    • FatalException
    • HttpClientUtils
    • InvalidEntityIdException
    • LatestRevisionResponse
    • MapperUtils
    • MultiSyncStep
    • MultiSyncUpdateQueryFactory
    • Munger
    • NamespaceStatementPredicates
    • NormalizingRdfHandler
    • NullStreamDumper
    • OptionsUtils
    • PageDeleteEvent
    • PageUndeleteEvent
    • Patch
    • PointCoordinateSwitcher
    • RdfClient
    • RDFParserSupplier
    • RDFParserSuppliers
    • RDFPatchResult
    • RdfRepository
    • RdfRepositoryUpdater
    • RecentChangeEvent
    • RecentChangeResponse
    • ReconcileEvent
    • ResponseHandler
    • RetryableException
    • RevisionCreateEvent
    • RevisionSlot
    • SiteLinksReclassification
    • StatementPredicates
    • StreamDumper
    • StreamUtils
    • SubgraphDefinition
    • SubgraphDefinitions
    • SubgraphDefinitionsParser
    • SubgraphRule
    • TupleQueryResponseHandler
    • UpdateBuilder
    • UpdateCountResponseHandler
    • UpdateMetrics
    • UpdateMetricsResponseHandler
    • Utils
    • WikibaseApiError
    • WikibaseBaseResponse
    • WikibaseEntityFetchException
    • WikibaseRepository
    • WikibaseResponse

A gitlab pipeline has also been created to build and deploy to the gitlab maven repository. An initial release can be found at https://gitlab.wikimedia.org/repos/wikidata-platform/wdqs-common/-/packages/2056

@trueg two small nits, but since we are starting fresh:

  1. can we bump parent pom to 1.100 ?
  2. how about we publish the maven artifact as 1.0.0? I don't remember where we landed on versioning.

@gmodena regarding your nits:

  1. yes, will bump as soon as everything builds. I would like to have one successful build of all separated components before we bump any versions.
  2. We decided to go to 1.0.0. However, the same applies as above: I want to do that as soon as the entire component suite builds successfully.

@gmodena regarding your nits:

  1. yes, will bump as soon as everything builds. I would like to have one successful build of all separated components before we bump any versions.
  2. We decided to go to 1.0.0. However, the same applies as above: I want to do that as soon as the entire component suite builds successfully.

Makes sense, and no rush. Thanks!