Releases: FerretDB/FerretDB
v2.5.0
This version works best with DocumentDB v0.106.0-ferretdb-2.5.0.
Breaking changes
Metric names
We changed Prometheus metric names and HELP
texts to highlight the fact that they are not stable yet.
We plan to promote most of them to stable in the next release.
What's Changed
RPM packages for DocumentDB
DocumentDB .rpm
packages for Red Hat Enterprise Linux are now available!
Documentation ๐
- Enable full visibility for images on zoom by @Fashander in #5346
- Add Vault blog post by @Fashander in #5368
- Add WeKan blog post by @Fashander in #5381
Other Changes ๐ค
- Add YugabyteDB integration tests by @chilagrow in #5274
- Run all YugabyteDB integration tests by @chilagrow in #5283
- Refactor normal and error responses by @AlekSi in #5326
- Update DocumentDB by @AlekSi in #5353
- Use Codecov for flaky integration tests detection by @noisersup in #5361
- Make accessing YugabyteDB logs easier by @chilagrow in #5362
- Add components in codecov by @noisersup in #5364
- Skip YugabyteDB setup for
arm64
by @chilagrow in #5372 - Tweak Ollama and MCPHost setup by @AlekSi in #5375
- Simplify flags handling by @AlekSi in #5378
- Update DocumentDB by @AlekSi in #5380
- Extract wiring into a separate package by @AlekSi in #5383
- Small cleanup by @AlekSi in #5388
- Encapsulate PostgreSQL pool in the Handler by @AlekSi in #5389
- Bump DocumentDB version by @AlekSi in #5392
- Test flaky tests detection by @noisersup in #5393
- Small tweaks by @AlekSi in #5394
- Make a resource.Untrack thread-safe by @AlekSi in #5396
- Update DocumentDB by @AlekSi in #5398
- Enable MongoDB test commands by @AlekSi in #5400
- Update Prometheus metrics by @AlekSi in #5403
- Update DocumentDB by @AlekSi in #5411
v2.4.0
This version works best with DocumentDB v0.105.0-ferretdb-2.4.0.
New Features ๐
- Allow
clusterAdmin
users to perform user management commands by @chilagrow in #5314
Enhancements ๐
Documentation ๐
- Add blog post on setting up LibreChat with FerretDB by @Fashander in #4999
- Add blog post for Payload CMS by @Fashander in #5257
- Add blog post on using Compass GUI by @Fashander in #5263
- Fix social links by @Fashander in #5264
- Add PayloadCMS to compatible apps by @Fashander in #5270
- Add Compass to compatible apps by @Fashander in #5275
- Wrap long lines in a blog post by @AlekSi in #5280
- Add NodeBB compatibility blog post by @Fashander in #5285
- Add Librechat to compatibility section by @Fashander in #5286
- Add NodeBB to compatible apps by @Fashander in #5293
- Cleanup NodeBB blog post by @chilagrow in #5294
- Add Growthbook blogpost by @Fashander in #5304
- Add Heyform compatibility blog post by @Fashander in #5316
- Add GrowthBook to compatible apps by @Fashander in #5319
- Add DBeaver compatibility blogpost by @Fashander in #5321
- Add compatible applications by @Fashander in #5335
- Prepare v2.4.0 release by @AlekSi in #5344
Other Changes ๐ค
- Add YugabyteDB to local setup by @chilagrow in #5258
- Update DocumentDB by @AlekSi in #5261
- Remove skipping of
bypassEmptyTsReplacement
by @AlekSi in #5267 - Update DocumentDB by @AlekSi in #5268
- Bring back Codecov and Coveralls integration by @chilagrow in #5276
- Update DocumentDB by @AlekSi in #5282
- Add
mcphost
as tool by @chilagrow in #5287 - Refactor requests handling by @AlekSi in #5292
- Add Dependabot configuration for mcphost by @AlekSi in #5296
- Extend middleware requests and responses by @AlekSi in #5301
- Minor refactoring of Data API by @AlekSi in #5302
- Bump deps by @AlekSi in #5307
- Refactor responses handling by @AlekSi in #5310
- Add authentication test for client reconnecting by @chilagrow in #5311
- Do not use deprecated method by @AlekSi in #5312
- Update TODO URLs by @chilagrow in #5317
- Remove
must.NotFail(wire[bson].NewXXX(
pattern by @AlekSi in #5318 - Update TODO URL for
dropUsers
test by @chilagrow in #5324 - Avoid extra marshaling by @AlekSi in #5327
- Split command handling and handlers by @AlekSi in #5328
- Update DocumentDB by @AlekSi in #5342
New Contributors
v2.3.1
Hotfix release to restore compatibility with various tools such as mongoimport
and mongorestore
.
Fixed Bugs ๐
v2.3.0
This version works best with DocumentDB v0.104.0-ferretdb-2.3.0.
New Features ๐
- Add telemetry configuration for embedded FerretDB by @jyz0309 in #5109
- Use DocumentDB's support for
bypassEmptyTsReplacement
by @AlekSi in #5217 - Use DocumentDB's
compat
command by @AlekSi in #5242
Documentation ๐
- Enable
onInlineAuthors
in blog settings by @Balou9 in #5079 - Create compatible apps section by @Fashander in #5108
- Improve insert operations in guides by @Fashander in #5131
- Update versions to point to the next release by @AlekSi in #5144
- Update Docker tags in docs by @Fashander in #5156
- Update Docker tags for next release by @Fashander in #5157
- Do not format MDX as Markdown by @AlekSi in #5186
- Add blog post on Mongo Express compatibility by @Fashander in #5194
- Add blog post for Novu compatibility by @Fashander in #5195
- Update CTS tool to wrap long lines by @AlekSi in #5202
- Disable Markdownlint rule that clashes with MDX by @AlekSi in #5210
- Small documentation tweaks by @AlekSi in #5218
- Prepare v2.3.0 release by @AlekSi in #5254
Other Changes ๐ค
- Use
runtime.Cleanup
for resource tracking by @sahinakyol in #5077 - Add Dependabot configuration for
main-v1
by @AlekSi in #5098 - Bump deps by @chilagrow in #5159
- Make
conninfo
a resource by @chilagrow in #5166 - Revert "Update CODEOWNERS" by @AlekSi in #5169
- Bump deps by @AlekSi in #5170
- Add
permissions
to GitHub Actions workflows by @AlekSi in #5182 - Bump deps by @AlekSi in #5184
- Update DocumentDB by @AlekSi in #5197
- Add test for inserting zero timestamp by @AlekSi in #5199
- Update DocumentDB by @AlekSi in #5201
- Refactor resource tracking tests by @AlekSi in #5208
- Unskip test by @AlekSi in #5211
- Use Ollama in local setup by @AlekSi in #5215
- Update TODO comments by @AlekSi in #5223
- Bump Go and deps by @AlekSi in #5236
- Update DocumentDB by @AlekSi in #5240
- Build production Docker images for PRs by @AlekSi in #5251
- Improve telemetry configuration for embedded FerretDB by @AlekSi in #5252
New Contributors
- @sahinakyol made their first contribution in #5077
- @Balou9 made their first contribution in #5079
v1.24.2
Fixed Bugs ๐
- Ignore
bypassEmptyTsReplacement
to simplify migrations by @chilagrow in #5163
Other Changes ๐ค
- Bump deps by @chilagrow in #5165
- Bump deps by @AlekSi in #5184
v2.2.0
This version works best with DocumentDB v0.103.0-ferretdb-2.2.0.
New Features ๐
- Add full arm64 support by @AlekSi, @chilagrow in #5113
- Rename old
ferretdb-eval
image toferretdb-eval-dev
by @chilagrow in #5040 - Provide
ferretdb-eval
Docker image with production build by @chilagrow in #5051 - Supervise services in evaluation images by @chilagrow in #5041
- Use volume for
state
directory by @chilagrow in #5083
Enhancements ๐
- Rename binaries and packages by @vardbabayan in #5078
- Decode
dropIndexes
response by @chilagrow in #5117
Documentation ๐
- Update DocumentDB debian packages by @Fashander in #4959
- Add Kubernetes installation guide by @Fashander in #4971
- Add blog post on FerretDB and CNPG by @Fashander in #4998
- Update Docker images by @AlekSi in #5015
- Add blog post on migrating to FerretDB with dsync by @Fashander in #5033
- Use "PostgreSQL with DocumentDB extension" phrase by @AlekSi in #5050
- Backport Kubernetes docs to 2.1 by @Fashander in #5053
- Rename and move code files in guides by @AlekSi in #5057
- Update redirects by @AlekSi in #5060
- Update OpenAPI spec description by @AlekSi in #5062
- Document Data API usage by @Fashander in #5063
- Backport
.deb
installation guide by @Fashander in #5066 - Unconvert syntax examples in documentation by @noisersup in #5072
- Reformat linter by @Fashander in #5075
- Update evaluation Docker image documentation by @chilagrow in #5076
- Document required features by @AlekSi in #5086
- Document update process for new releases by @Fashander in #5124
- Remove old TODOs by @AlekSi in #5132
Other Changes ๐ค
- Remove MongoDB driver v1 by @KrishnaSindhur in #4961
- Hook CTS tool into documentation building by @noisersup in #4990
- Do not send zero values to telemetry by @AlekSi in #5016
- Update DocumentDB by @AlekSi in #5020
- Update deps by @AlekSi in #5024
- Minor tweaks for proxy code by @AlekSi in #5025
- Move tests for sessions by @AlekSi in #5026
- Bump deps by @AlekSi in #5027
- Merge Msg and Query into a single type by @AlekSi in #5032
- Make proxy handler implement an interface by @AlekSi in #5036
- Move
findAndModify
integration tests by @AlekSi in #5037 - Update wire by @AlekSi in #5042
- Update DocumentDB by @AlekSi in #5045
- Update DocumentDB by @AlekSi in #5054
- Implement handler
Handle
function by @chilagrow in #5055 - Use new
wire
helpers by @AlekSi in #5056 - Fix docker health check on evaluation image by @chilagrow in #5067
- Define docker tags for
ferretdb-eval
image by @chilagrow in #5068 - Use
Handle
function in Data API by @chilagrow in #5069 - Use
Handle
function inclientconn
by @chilagrow in #5070 - Update DocumentDB by @AlekSi in #5074
- Skip
bypassEmptyTsReplacement
parameters for now by @AlekSi in #5080 - Reorgonize cts output files by @noisersup in #5082
- Unexport handlers by @chilagrow in #5084
- Use new
wire
helpers by @AlekSi in #5094 - Update DocumentDB by @AlekSi in #5096
- Fix Docker tags for pre-release git tags by @AlekSi in #5099
- Update DocumentDB by @AlekSi in #5115
- Hook CTS into CI by @noisersup in #5120
- Run CTS tests against Full Text Search guide examples by @noisersup in #5121
- Run CTS tests against Vector Search guide examples by @noisersup in #5122
- Run CTS tests against TTL Indexes guide examples by @noisersup in #5123
- Remove
$db
parameter from generated mongosh requests by @noisersup in #5125 - Update DocumentDB by @AlekSi in #5141
- Update DocumentDB by @AlekSi in #5142
- Prepare v2.2.0 release by @AlekSi in #5138
New Contributors
- @vardbabayan made their first contribution in #5078
v1.24.1
If you can't migrate to v2, please tell us why and what you use v1 for in the discussion.
Fixed Bugs ๐
- Fix stats for MySQL backend by @chuangjinglu in #4598
Documentation ๐
- Add Cozystack to README by @tym83 in #4563
- Update Mermaid diagrams by @rumyantseva in #4582
- Remove old docs and fix linking to the rest by @AlekSi in #4654
- Bump deps by @AlekSi in #4678
- Update URLs for FerretDB v1 by @AlekSi in #4677
- Reformat with settings from v2 by @AlekSi in #4686
Other Changes ๐ค
- Bump deps by @AlekSi in #4564
- Bump Go version by @AlekSi in #4599
- Port tools from v2 by @AlekSi in #4602
- Add separate CI job for defining Docker tags by @AlekSi in #4607
- Update
definedockertag
logic and use it by @AlekSi in #4603 - Update handling of all-in-one Docker images by @AlekSi in #4608
pngcrush
images by @AlekSi in #4623- Add workaround for Trivy failures by @AlekSi in #4631
- Bump Go by @AlekSi in #4687
- Fix linters for v1 by @AlekSi in #5101
- Fix Docker tags for pre-release git tags by @AlekSi in #5100
- Bump deps by @AlekSi in #5134
New Contributors
- @tym83 made their first contribution in #4563
- @chuangjinglu made their first contribution in #4598
v2.1.0
This version works only with DocumentDB v0.102.0-ferretdb-2.1.0.
Breaking changes
Caution
Please note that due to incompatibilities in our previous releases, DocumentDB can't be updated in place, even with a manual ALTER EXTENSION UPDATE
query or other means. A new clean installation into an empty data directory/volume is required. All data should be backed up with mongodump
/mongoexport
before and restored with mongorestore
/mongoimport
after. See our blog post for more details.
We expect future updates to be much smoother.
Fixed Bugs ๐
Enhancements ๐
- Add colorized levels to
console
logger by @noisersup in #4904 - Improve
--help
output by @KrishnaSindhur in #4918 - Add support for reading PostgreSQL URL from a file by @KrishnaSindhur in #4937
- Do not decode incoming document twice by @AlekSi in #4981
Documentation ๐
- Add post on MongoDB queries and operations on FerretDB by @Fashander in #4732
- Add example telemetry report to documentation by @AlekSi in #4861
- Add FerretDB v2 GA blog post by @AlekSi in #4884
- Add full text search guide by @Fashander in #4886
- Add guide for GUI apps by @Fashander in #4906
- Add TTL index guide by @Fashander in #4926
- Update
deb
andrpm
installation docs by @Fashander in #4927 - Sync flags grouping with docs by @AlekSi in #4933
- Add a note to documentation about PR titles by @AlekSi in #4944
- Update/backport full-text and TTL indexes guides by @AlekSi in #4948
- Backport documentation changes to v2.0 by @AlekSi in #4952
- Add basic documentation for supported commands by @AlekSi in #4970
- Update feature blog post by @Fashander in #4991
- Add blogpost on FerretDB v2.1.0 release by @Fashander in #5004
- Create redirects for
/v2.0/
documentation URLs by @AlekSi in #5011
Other Changes ๐ค
- Update changelog generator by @AlekSi in #4810
- Update TODO URLs for
listDatabase
tests by @noisersup in #4863 - Document non-enforced format of log messages in
envtool
package by @noisersup in #4867 - Start working on a new release by @AlekSi in #4885
- Adjust pool connection timeout by @AlekSi in #4888
- Check issue URLs in documentation by @chilagrow in #4890
- Add TODO comments for observability tasks by @AlekSi in #4896
- Refactor
clientconn
by @chilagrow in #4907 - Add basic structure for middlewares by @AlekSi in #4908
- Make production builds of the
main
branch by @AlekSi in #4911 - Bump deps by @AlekSi in #4916
- Move message processing in
clientconn
to a function by @chilagrow in #4919 - Change the way OP_MSG handlers are invoked by @AlekSi in #4923
- Improve integration benchmarks by @AlekSi in #4925
- Configure connection pool size in tests by @AlekSi in #4932
- Update DocumentDB by @AlekSi in #4941
- Handle
OP_QUERY
in middleware using interface by @chilagrow in #4947 - Implement error middleware by @chilagrow in #4951
- Use ERROR level logging for failed tests by @AlekSi in #4974
- Update DocumentDB by @AlekSi in #4975
- Disable tracing in benchmarks for now by @AlekSi in #4980
- Update DocumentDB by @AlekSi in #4982
- Add TODOs by @AlekSi in #4986
- Partially revert middleware changes by @AlekSi in #4995
- Add more tests for error handling by @AlekSi in #4996
- Use Go 1.24.2 by @AlekSi in #5005
- Remove error middleware for now by @AlekSi in #5008
- Disable commit check for now by @AlekSi in #5012
v2.0.0
The first generally available release of FerretDB v2, powered by DocumentDB PostgreSQL extension!
This version works best with DocumentDB v0.102.0-ferretdb-2.0.0.
Documentation ๐
- Add migration guide from v1.x to v2.x by @Fashander in #4850
- Add basic troubleshooting guide by @Fashander in #4854
- Final preparations by @AlekSi in #4874
Other Changes ๐ค
v2.0.0-rc.5
This is the final release candidate before the GA release tomorrow!
Most users don't need to update.
This version works best with
DocumentDB v0.102.0-ferretdb-2.0.0-rc.5.
New Features ๐
- Use DocumentDB API for
listDatabases
by @AlekSi in #4841 - Implement
currentOp
command by @chilagrow in #4855
Fixed Bugs ๐
Enhancements ๐
- Publish build info, state, and CLI flags in expvar by @AlekSi in #4837
- Enforce log messages format in development builds by @noisersup in #4754
- Filter out sensitive information from debug archive by @AlekSi in #4836
- Improve messages about DocumentDB version by @AlekSi in #4832
Documentation ๐
- Move comment in docs to fix DocCard by @AlekSi in #4845
- Update URL to join Slack by @AlekSi in #4851
- Recommend using full tags/versions by @Fashander in #4834
Other Changes ๐ค
- Change
dbStats
tests TODO links by @noisersup in #4823 - Update TODO comment by @AlekSi in #4831
- Bump DocumentDB for development by @AlekSi in #4839
- Update DocumentDB Docker image by @chilagrow in #4853
- Remove old code for tracking operations by @AlekSi in #4842
- Remove DocumentDB building from this repo by @chilagrow in #4852