IQSS / IQSS/dataverse

Feature Request: Refactor the export subsystem to support per-version exports, better comprehension, and testability.

Open
#12,686 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Type: Feature
Dominant language
Java
Stars
1.1k
Forks
564
Avg merge
2d 2h
Merged PRs (30d)
29

Description

Overview of the Feature Request
Make the export subsystem better and prepare it for new features.

What kind of user is the feature intended for?
Users, Sysadmin, Developers

What inspired the request?
#11892

What existing behavior do you want changed?

  • As a prerequisite for solving #11892 we need to make the metadata export system understand how to deal with metadata formats per dataset version. (Citations are version dependent)
  • The current state of implementation is falling behind on following good practices and is hardly testable in unit tests (there are none for the service functionality).
  • Also we have defined an exporter contract to express it depends on a different format, there are hardly any safeguards in the implementation (dependency cycles, optimized export order, cascading invalidation).

Any brand new behavior do you want to add to Dataverse?
This is under-the-hood preparation to actually add brand new behaviour for users.

Any open or closed issues related to this feature request?
#11892

Are you thinking about creating a pull request for this feature?
Forthcoming.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the metadata export system and its exporter contract, then read related issue #11892 for the intended behavior. Define the per-dataset-version export requirements and the safeguards around dependency cycles, export order, and cascading invalidation. Done should include unit-testable service functionality and coverage for the described behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, data
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.