| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| openrefine-win-with-java-installer-3.10.0.exe | 2026-02-26 | 173.2 MB | |
| openrefine-mac-3.10.0.dmg | 2026-02-26 | 180.3 MB | |
| openrefine-linux-3.10.0.tar.gz | 2026-02-26 | 148.8 MB | |
| openrefine-win-with-java-3.10.0.zip | 2026-02-26 | 192.7 MB | |
| OpenRefine 3.10.0 source code.tar.gz | 2026-02-26 | 6.6 MB | |
| OpenRefine 3.10.0 source code.zip | 2026-02-26 | 8.6 MB | |
| README.md | 2026-02-26 | 16.0 kB | |
| Totals: 7 Items | 710.2 MB | 0 | |
This is the first stable release of the 3.10 series. Please backup your workspace directory before installing and report any problems that you encounter.
The following webinar highlights many of the new features in this release: OpenRefine 3.10 presentation
For a complete list of changes, see the following change logs: Full Changelog since 3.9.5: https://github.com/OpenRefine/OpenRefine/compare/3.9.5...3.10.0 Full Changelog since beta1: https://github.com/OpenRefine/OpenRefine/compare/3.10-beta1...3.10.0
What's Changed
Breaking Changes 🛠
- Restore exporter error reporting and clean up XLS/XLSX error handling by @tfmorris in https://github.com/OpenRefine/OpenRefine/pull/7459
Exciting New Features 🎉
- fixes [#7025]: Keep only matching rows by @kalindafab in https://github.com/OpenRefine/OpenRefine/pull/7061
- Wikibase : New media upload support for validation of mandatory properties by @sunilnatraj in https://github.com/OpenRefine/OpenRefine/pull/7068
- fixes [#6608] - Expose diacritics normalization used in fingerprint() by @AbhinavPandey1911 in https://github.com/OpenRefine/OpenRefine/pull/7127
- Show Undo notification when applying recipes by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7173
- Improve generalizability of the "column move" operation by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7174
- closes [#6281]: renaming "view" options for columns in menu by @PadyA0 in https://github.com/OpenRefine/OpenRefine/pull/7193
- Avoid name collisions of internal columns when applying recipes by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7236
- add upload button to preview tab by @smierz in https://github.com/OpenRefine/OpenRefine/pull/7253
- Feature/Add Editing results facet button to extensions menu by @savchrisostomidhs in https://github.com/OpenRefine/OpenRefine/pull/7312
- Fix: Add check before looping over archive/filename columns (#7319) by @amankumar100 in https://github.com/OpenRefine/OpenRefine/pull/7344
- Closes [#6311]: Unified style of column headers in import preview and p… by @zleonenc in https://github.com/OpenRefine/OpenRefine/pull/7415
- Update to new OkHttp MockWebserver API. Fixes [#7413] by @tfmorris in https://github.com/OpenRefine/OpenRefine/pull/7414
- implements terminal-like scroll for expression history (arrow up/down) by @DevangJagdale in https://github.com/OpenRefine/OpenRefine/pull/7437
- feat: implement GEO extension with decToGMS and geoDistance functions by @SashankBhamidi in https://github.com/OpenRefine/OpenRefine/pull/7432
- feat(db-ext): uniform batch size handling for preview and import by @DaxServer in https://github.com/OpenRefine/OpenRefine/pull/7446
- Add generalized support for Apache Compress formats by @tfmorris in https://github.com/OpenRefine/OpenRefine/pull/7497
- Introduce GetColumnDependenciesCommand by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7131 https://github.com/OpenRefine/OpenRefine/pull/7169
- Add support for renaming columns in operation metadata by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7132
- ExporterManager: add an explicite extension point by @Abbe98 in https://github.com/OpenRefine/OpenRefine/pull/7316
- Make it possibly for users to quickly copy system and version information by @Abbe98 in https://github.com/OpenRefine/OpenRefine/pull/7019
Bug Fixes 🐛🕷
- feat: Propagate column renames to facets by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7073
- Fixes [#7114] make refine.bat exit on errors from external programs by @thadguidry in https://github.com/OpenRefine/OpenRefine/pull/7115
- Update LoadLanguageCommand.java by @DevangJagdale in https://github.com/OpenRefine/OpenRefine/pull/7120
- fix: Windows installer removes previous install by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7123
- fix: Correct home page behaviour when there are no events to advertise by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7108
- fix: weird layout for wikitext importer by @SoryRawyer in https://github.com/OpenRefine/OpenRefine/pull/7176
- Fix infinite loading spinner for invalid or unknown project IDs by @SoryRawyer in https://github.com/OpenRefine/OpenRefine/pull/7187
- fixes 7010: open file manager with headless Java by @SoryRawyer in https://github.com/OpenRefine/OpenRefine/pull/7197
- Fix pagination controls and row range by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7201
- Show all column headers in full by default by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7168
- fix: Disable maximum string length in Jackson by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7191
- Fix layout of menu icons for long descriptions by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7166
- Send absolute row index in request when "last" pagination button is clicked by @SoryRawyer in https://github.com/OpenRefine/OpenRefine/pull/7211
- Fix "Edit all columns" menu by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7218
- Enable custom clustering for non-GREL expressions by @b2m in https://github.com/OpenRefine/OpenRefine/pull/7243
- Include
contextPathwhen returning a redirect response by @SoryRawyer in https://github.com/OpenRefine/OpenRefine/pull/7244 - Fix deserialization of RowAdditionOperation. by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7247
- wikibase: fix NoValueSnak being incorrectly cast by @Johann150 in https://github.com/OpenRefine/OpenRefine/pull/7292
- fix storeBlankColumns: delete only after project parsed by @smierz in https://github.com/OpenRefine/OpenRefine/pull/7272
- refine: use grep -E instead of egrep by @alanorth in https://github.com/OpenRefine/OpenRefine/pull/7408
- Set custom user agent for Wikidata calls. Fixes [#7383] by @tfmorris in https://github.com/OpenRefine/OpenRefine/pull/7412
- Introduce jackson-bom and update Jackson to 2.20.0. Fixes [#7424] by @tfmorris in https://github.com/OpenRefine/OpenRefine/pull/7425
- never exceed viewport width by @DevangJagdale in https://github.com/OpenRefine/OpenRefine/pull/7429
- Fix import of non-archive compressed files. Fixes [#7314] by @tfmorris in https://github.com/OpenRefine/OpenRefine/pull/7353
- fix db import progress updates by @smierz in https://github.com/OpenRefine/OpenRefine/pull/7439
- Remove Icelandic as a language option. Fixes [#7482] by @tfmorris in https://github.com/OpenRefine/OpenRefine/pull/7483
- switch to new mysql connector coordinates by @smierz in https://github.com/OpenRefine/OpenRefine/pull/7477
- Enable source data display in JSON parser error messages by @Copilot in https://github.com/OpenRefine/OpenRefine/pull/7496
- fix mysql driver class by @smierz in https://github.com/OpenRefine/OpenRefine/pull/7478
- Make references to JDBC driver classes explicit. Fixes [#7504] by @tfmorris in https://github.com/OpenRefine/OpenRefine/pull/7506
- Update dependencies for database extension by @tfmorris in https://github.com/OpenRefine/OpenRefine/pull/7512
- fix loading 100 rows in db import preview by @smierz in https://github.com/OpenRefine/OpenRefine/pull/7507
Windows-specific
- Fixes missing wmic command output running refine.bat if Powershell by @thadguidry in https://github.com/OpenRefine/OpenRefine/pull/7130
Other Changes
- Add icons to operations in column menu by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7060
- operations: Expose column dependencies and diffs by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7056
- facets: Add a ability to translate after a column rename by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7065
- fix: Double opening of file selection in 'Apply' dialog by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7100
- ui: Use 'Run operations' instead of 'Perform operations' in Apply dialog by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7101
- history: Validate column dependencies of operations before applying them by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7095
- operations: Expose column dependencies in c.g.r.o.cells by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7096
- operations: Expose column dependencies in c.g.r.o.recon by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7097
- operations: Expose column dependencies for c.g.r.o.rows by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7098
- chore: Separate command and operation tests for duplicate row removal by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7118
- windows: Don't offer to open the readme at the end of the installation by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7128
- Introduce the Recipe class to hold a list of operations by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7116
- Pure CSS alternative to highlighting history entries on hover by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7134
- fix: Better error reporting in apply opertations dialog by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7133
- fix typos for chomp English translation by @thadguidry in https://github.com/OpenRefine/OpenRefine/pull/7139
- grel: More faithful pretty-printing for string and regex literals by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7117
- operations: Improve data extension operation to control the created columm names by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7119
- MacOS: update file permissions in DMG package by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7144
- operations: Renaming support for c.g.r.o.cell by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7156
- operations: Renaming support for c.g.r.o.column by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7153
- Show operation icons in history panel by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7135
- operations: Renaming support for c.g.r.o.recon by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7155
- operations: Renaming support for c.g.r.o.row by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7154
- wikibase: Enable columnar analysis and renaming on operations by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7157
- Add icons for all recon operations by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7146
- Add icons for all remaining operations in the main module by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7159
- Implement missing column dependencies and columns diff on new operations by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7195
- Fix: column dependencies in cell split/join operations by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7192
- Use aria-labelledby over aria-labeledby by @keithamus in https://github.com/OpenRefine/OpenRefine/pull/7216
- Identify syntax errors in Python expressions by @SoryRawyer in https://github.com/OpenRefine/OpenRefine/pull/7217
- Add operation to remove multiple columns in one step by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7194
- Increase limit for CSV cell size by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7219
- replace png arrows with svg by @smierz in https://github.com/OpenRefine/OpenRefine/pull/7226
- Map recipe columns to project columns in 'Apply' dialog by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7158
- fix: JSON deserialization of RowAdditionOperation by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7225
- Resolve cypress test failures from language updates by @SoryRawyer in https://github.com/OpenRefine/OpenRefine/pull/7260
- Introduce icons for facet types by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7233
- Add operation icons to the dialog warning of history erasure by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7230
- Update Cypress dependency files by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7228
- wikibase: Add operation icons by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7232
- wikibase: Fix translation keys of English description issues by @wetneb in https://github.com/OpenRefine/OpenRefine/pull/7283
- 2024 governance update by @magdmartin in https://github.com/OpenRefine/OpenRefine/pull/7023
- Proposal: Add JSDoc annotations to JavaScript extension points by @Abbe98 in https://github.com/OpenRefine/OpenRefine/pull/7296
- docs: add jsdoc annotations to DOM utilities by @Abbe98 in https://github.com/OpenRefine/OpenRefine/pull/7306
- docs: add jsdoc annotations to I18N utilities by @Abbe98 in https://github.com/OpenRefine/OpenRefine/pull/7307
- docs: add jsdoc annotations to CellRenderRegistry by @Abbe98 in https://github.com/OpenRefine/OpenRefine/pull/7315
- docs: add jsdoc annotations to CSRF utilities by @Abbe98 in https://github.com/OpenRefine/OpenRefine/pull/7305
- don't inject default encodings into the client by @Abbe98 in https://github.com/OpenRefine/OpenRefine/pull/7304
- test: add regression test for AddColumnCommand parameter parsing by @amansingh-swe in https://github.com/OpenRefine/OpenRefine/pull/7310
- Switch to OSSRH Staging API. Refs [#7390] by @tfmorris in https://github.com/OpenRefine/OpenRefine/pull/7401
- replace png in db extension with svg by @smierz in https://github.com/OpenRefine/OpenRefine/pull/7494
- replace several png with svg by @smierz in https://github.com/OpenRefine/OpenRefine/pull/7530
- fix typo in path to operation icon by @smierz in https://github.com/OpenRefine/OpenRefine/pull/7554
New Contributors
- @b2m made their first (code) contribution in https://github.com/OpenRefine/OpenRefine/pull/7243
- @kalindafab made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7061
- @ej2432 made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7107
- @DevangJagdale made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7120
- @AbhinavPandey1911 made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7127
- @keithamus made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7216
- @PadyA0 made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7193
- @Johann150 made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7292
- @JyothiSwaroopReddy07 made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7301
- @savchrisostomidhs made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7312
- @amansingh-swe made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7310
- @amankumar100 made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7344
- @alanorth made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7408
- @zleonenc made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7415
- @ritoban23 made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7447
- @SashankBhamidi made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7432
- @Copilot made their first contribution in https://github.com/OpenRefine/OpenRefine/pull/7496 (welcome, our AI overlords!)
Full Changelog: https://github.com/OpenRefine/OpenRefine/compare/3.9.5...3.10.0
Dependency updates
Most dependencies have had at least minor updates. Please review the changes in pom.xml for details. Some of the more significant ones, including database drivers, are listed in the sections above.