Skip to content

Make Croissant built-in to Dataverse (no longer an external exporter)#12130

Open
pdurbin wants to merge 8 commits intodevelopfrom
11254-croissant-builtin
Open

Make Croissant built-in to Dataverse (no longer an external exporter)#12130
pdurbin wants to merge 8 commits intodevelopfrom
11254-croissant-builtin

Conversation

@pdurbin
Copy link
Member

@pdurbin pdurbin commented Jan 30, 2026

What this PR does / why we need it:

For users, Croissant is increasingly popular and less experimental so it makes sense to enable support for it out of the box in Dataverse, which is what #11254 is about.

For developers, a series of planned changes to Croissant means that it will be easier to maintain the code as part of the core rather than as an external exporter. Once this pull request is merged, it would make sense to work on the following issues in the order below:

Which issue(s) this PR closes:

Special notes for your reviewer:

The code is equivalent to version 0.1.6 of the external exporter.

In the external code, I was using Spotless to format the code. I'm keeping this (adding Spotless) but limiting it to Croissant classes for now. I'm very interested in our team programmatically formatting code in the backend, like we do in the frontend. I don't mind if we use a different command-line tool. Spotless could be considered a starting point.

Suggestions on how to test this:

Confirm the new feature flag is working.

Does this PR introduce a user interface change? If mockups are available, please link/include them here:

Yes, Croissant now appears out of the box:

Screenshot 2026-02-02 at 10 19 39 AM

Is there a release notes update needed for this change?:

Yes, included.

Additional documentation:

A good entry point for previewing doc changes: https://dataverse-guide--12130.org.readthedocs.build/en/12130/admin/discoverability.html#croissant-metadata-in-the-head-of-dataset-landing-pages

@github-actions github-actions bot added Croissant Croissant and Kaggle related work Feature: Metadata FY26 Sprint 15 FY26 Sprint 15 (2026-01-14 - 2026-01-28) FY26 Sprint 16 FY26 Sprint 16 (2026-01-28 - 2026-02-11) Project: Trusted Data Size: 20 A percentage of a sprint. 14 hours. Type: Suggestion an idea labels Jan 30, 2026
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

1 similar comment
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions
Copy link

github-actions bot commented Feb 2, 2026

📦 Pushed preview images as

ghcr.io/gdcc/dataverse:11254-croissant-builtin
ghcr.io/gdcc/configbaker:11254-croissant-builtin

🚢 See on GHCR. Use by referencing with full name as printed above, mind the registry name.

* Instead of Croissant, use the legacy format (Schema.org JSON-LD) in the head
* of dataset landing pages. By default this is false.
*/
LEGACY_FORMAT_IN_HEAD("legacy-format-in-head"),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm conflicted about this flag. I'm not questioning the existence itself, but its semantics. Shouldn't the Croissant in the header be the experimental thing instead of (silently as in "read the docs") replacing the old behavior?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, people have been able to opt-in to having Croissant in the head since 6.2, which came out in September 2024, thanks to this PR:

Now, in this PR, which will hopefully land in 6.10, we're saying Croissant is stable enough and recommended enough to be the default.

@poikilotherm let me turn it around. How much time is enough? If not March 2026 and 6.10, when?

Copy link
Contributor

@poikilotherm poikilotherm Feb 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't aware that we had this available for so long! Let me rephrase: lets make it a configuration then, not a feature flag. Feature flags were once reserved for defining experimental, newly added things you'd opt in to. Keeping the old header is neither new nor experimental, so a configuration option in dataverse.ui.x (or similar existing scope) would be a good fit, wouldn't it?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure! I even started trying to come up with a name as a configuration option but wasn't sure where it fix. Do you have any suggestions for me? 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Croissant Croissant and Kaggle related work Feature: Metadata FY26 Sprint 15 FY26 Sprint 15 (2026-01-14 - 2026-01-28) FY26 Sprint 16 FY26 Sprint 16 (2026-01-28 - 2026-02-11) Project: Trusted Data Size: 20 A percentage of a sprint. 14 hours. Type: Suggestion an idea

Projects

Status: Ready for Review ⏩

Development

Successfully merging this pull request may close these issues.

enable the Croissant exporter by default (move code to main repo)

2 participants