v1.22.0 (2024-06-26)
Production Docker images now use a non-root user with UID 1000 and GID 1000.
- Make maximum document size configurable by @chilagrow in FerretDB#4294
- Enable initial user setup for new authentication by @AlekSi in FerretDB#4310
- Fix TCP port for debug handler in Docker images by @AlekSi in FerretDB#4218
- Fix embedded package panic by @noisersup in FerretDB#4278
- Use non-privileged
scratch
for production Docker images by @rumyantseva in FerretDB#4211 - Improve error message for
state.json
by @AlekSi in FerretDB#4251 - Sort new fields in lexicographic order during update by @wazir-ahmed in FerretDB#4223
- Add blog post for FerretDB v1.21 release by @Fashander in FerretDB#4202
- Add blog post for Openziti by @Fashander in FerretDB#4194
- Fix broken code blocks in documentation by @AlekSi in FerretDB#4239
- Add KubeDB blogpost on deploying FerretDB on Kubernetes by @Fashander in FerretDB#4253
- Add blog post about deploying FerretDB on Taikun CloudWorks by @Fashander in FerretDB#4297
- Update example in documentation by @nullniverse in FerretDB#4305
- Add blog post on Adding MongoDB compatibility to Aiven for PostgreSQL by @Fashander in FerretDB#4349
- Add
restart: on-failure
to all containers by @pravi in FerretDB#4309
- Bump deps by @AlekSi in FerretDB#4201
- Make our own low-level driver for testing by @noisersup in FerretDB#4193
- Bump deps by @AlekSi in FerretDB#4238
- Fix some comments by @deferdeter in FerretDB#4237
- Add dummy setup flags by @b1ron in FerretDB#4247
- Fix some comments by @dockercui in FerretDB#4257
- Remove old BSON implementation by @AlekSi in FerretDB#4262
- Port BSON changes by @AlekSi in FerretDB#4263
- Move tools cache directory by @AlekSi in FerretDB#4265
- Use more shards on CI by @AlekSi in FerretDB#4266
- Bump Go to 1.22.3 and deps by @AlekSi in FerretDB#4272
- Update linters configuration by @AlekSi in FerretDB#4277
- Fix
env-data
by @chilagrow in FerretDB#4289 - Bump deps by @AlekSi in FerretDB#4302
- Port some changes from v2 by @AlekSi in FerretDB#4307
- Extract user creation and move to
backends
package by @AlekSi in FerretDB#4311 - Populate
env-data
for runningFerretDB
by @chilagrow in FerretDB#4319 - Fix
task docker-local
command by @AlekSi in FerretDB#4363 - Add stub for the Docker healthcheck by @noisersup in FerretDB#4355
- Bump deps by @AlekSi in FerretDB#4375
- Remove
PLAIN
mechanism from new authentication by @chilagrow in FerretDB#4373 - Fix codecov CLI version by @AlekSi in FerretDB#4379
- Add
TestMain
to each integration test package by @AlekSi in FerretDB#4366 - Handle supported mechanisms in
hello
andgetParameters
commands by @chilagrow in FerretDB#4368 - Remove ambiguous comment by @chilagrow in FerretDB#4382
- Revert codecov version fix by @AlekSi in FerretDB#4383
- Fix typo in migration guide by @AlekSi in FerretDB#4384
- Port
wire
package changes by @AlekSi in FerretDB#4386 - Port
password
changes by @AlekSi in FerretDB#4388 - Include
SpeculativeAuthenticate
changes by @chilagrow in FerretDB#4390 - Fix
saslContinue
prematurely returningdone
by @chilagrow in FerretDB#4391
- @deferdeter made their first contribution in FerretDB#4237
- @dockercui made their first contribution in FerretDB#4257
- @nullniverse made their first contribution in FerretDB#4305
- @pravi made their first contribution in FerretDB#4309
All closed issues and pull requests. All commits.
v1.21.0 (2024-02-20)
- Add experimental
SCRAM-SHA-1
/SCRAM-SHA-256
authentication support by @henvic in FerretDB#4078
- Reorganize and fix
update
/upsert
logic by @wazir-ahmed in FerretDB#4069
- Improve capped collection cleanup by @wazir-ahmed in FerretDB#4118
- Make batch sizes configurable by @kropidlowsky in FerretDB#4149
- Fix Codapi file error by @Fashander in FerretDB#4077
- Add Tembo QA blog post by @Fashander in FerretDB#4081
- Update correct image link by @Fashander in FerretDB#4116
- Add Pulumi blog post by @Fashander in FerretDB#4102
- Add Tembo to README by @AlekSi in FerretDB#4168
- Remove some closed issues from documentation by @AlekSi in FerretDB#4172
- Use Go 1.22 and bump deps by @AlekSi in FerretDB#4094
- Add more fields to requests and responses by @rumyantseva in FerretDB#4096
- Revert SQLite version bump by @AlekSi in FerretDB#4106
- Refactor
bson2
package by @AlekSi in FerretDB#4105 - Use
bson2
package for wire queries and replies by @AlekSi in FerretDB#4108 - Make logger configurable in the embedded
ferretdb
package by @fadyat in FerretDB#4028 - Fix
envtool run test
-run
and-skip
flags by @henvic in FerretDB#4101 - Add MySQL backend collection by @adetunjii in FerretDB#4083
- Ignore
maxTimeMS
argument incount
,insert
,update
,delete
by @farit2000 in FerretDB#4121 - Use correct salt length by @AlekSi in FerretDB#4126
- Skip stuck tailable cursor test by @chilagrow in FerretDB#4131
- Enforce new authentication by @chilagrow in FerretDB#4075
- Replace
bson
withbson2
inwire
by @AlekSi in FerretDB#4110 - Improve
OP_MSG
validity checks by @AlekSi in FerretDB#4135 - Support speculative authenticate by @chilagrow in FerretDB#4111
- Add MySQL backend by @adetunjii in FerretDB#4137
- Fix
saslContinue
crashing due to not found authentication conversation by @henvic in FerretDB#4129 - Cleanup TODO for speculative authenticate by @chilagrow in FerretDB#4143
- Fix MySQL collection stats by @adetunjii in FerretDB#4145
- Use Go 1.22.1 by @AlekSi in FerretDB#4155
- Advertise SCRAM / SASL support in addition to PLAIN by @henvic in FerretDB#4113
- Add linter to check truncate tag in blog posts by @sbshah97 in FerretDB#4139
- Fix PLAIN mechanism authentication incorrectly working by @chilagrow in FerretDB#4163
- Improve
bson2
andwire
logging by @AlekSi in FerretDB#4148 - Fix logging of deeply nested documents by @AlekSi in FerretDB#4167
- Support localhost exception by @chilagrow in FerretDB#4156
- Do not use the flow style in the diff output by @AlekSi in FerretDB#4170
- Do not use
fjson
by @AlekSi in FerretDB#4175 - Remove
fjson
package by @AlekSi in FerretDB#4176 - Fix
speculativeAuthenticate
panic on empty database by @chilagrow in FerretDB#4178 - Move old
bson
package by @AlekSi in FerretDB#4177 - Rename
bson2
tobson
by @AlekSi in FerretDB#4179 - Move Docker build files by @AlekSi in FerretDB#4180
- Bump protobuf dependency to make CI happy by @AlekSi in FerretDB#4187
- Use authentication enabled docker for integration test by @chilagrow in FerretDB#4160
- Bump
pgx
by @AlekSi in FerretDB#4190
- @farit2000 made their first contribution in FerretDB#4121
- @sbshah97 made their first contribution in FerretDB#4139
All closed issues and pull requests. All commits.
v1.20.1 (2024-02-19)
Production Docker images now use a non-root user with UID 1000 and GID 1000.
That change was made in v1.20.0, reverted in v1.20.1, and will be re-introduced in a future release.
- Add blog post on Ubicloud managed postgres by @Fashander in FerretDB#4010
- Add release blog post for v1.19.0 by @Fashander in FerretDB#4020
- Truncate release blog post by @Fashander in FerretDB#4047
- Add blog post on Disaster Recovery for FerretDB with Elotl Nova by @Fashander in FerretDB#4038
- Update Codapi by @Fashander in FerretDB#4039
- Add blogpost on FerretDB stack on Tembo by @Fashander in FerretDB#4037
- Add tests for new SCRAM-SHA-256 authentication support by @henvic in FerretDB#4012
- Add
TODO
comments for logging by @AlekSi in FerretDB#4015 - Add
bson2
helpers for conversions and logging by @AlekSi in FerretDB#4019 - Setup MySQL backend by @adetunjii in FerretDB#4003
- Expose new authentication enabling flag by @AlekSi in FerretDB#4029
- Bump deps and speed-up
checkcomments
by @AlekSi in FerretDB#4030 - Display
envtool run test
progress with run and/or skip flags by @fadyat in FerretDB#3999 - Use Ubicloud for CI runners by @AlekSi in FerretDB#4027
- Implement
database.Stats
for MySQL backend by @adetunjii in FerretDB#4034 - Minor cleanups by @AlekSi in FerretDB#4046
- Add experimental pushdown for dot notation by @noisersup in FerretDB#4049
- Bump Go to 1.21.7 by @AlekSi in FerretDB#4059
- Add utility for hashing SCRAM-SHA-256 password by @henvic in FerretDB#4031
- Use rootless
scratch
containers for production Docker images by @ahmethakanbesel in FerretDB#4004 - Prepare query statements for MySQL by @adetunjii in FerretDB#4064
- Implement
bson2.RawDocument
checking by @AlekSi in FerretDB#4076 - Add helper for decoding document sequences by @AlekSi in FerretDB#4080
- Add SCRAM-SHA-256 authentication support by @henvic in FerretDB#3989
- Remove SCRAM-SHA-256 implementation TODO links by @henvic in FerretDB#4086
- Update telemetry host by @AlekSi in FerretDB#4085
- @ahmethakanbesel made their first contribution in FerretDB#4004
All closed issues and pull requests. All commits.
v1.19.0 (2024-01-29)
- Support creating an index on nested fields for SQLite by @fadyat in FerretDB#3972
- Fix
maxTimeMS
forgetMore
command by @noisersup in FerretDB#3919 - Fix
upsert
with$setOnInsert
operator by @wazir-ahmed in FerretDB#3931 - Fix validation process for creating duplicate
_id
index by @kropidlowsky in FerretDB#3990
- Bump deps by @AlekSi in FerretDB#3955
- Add documentation for oplog by @Fashander in FerretDB#3960
- Fix search queries by @Fashander in FerretDB#3976
- Fix Taskfile.yml indentation by @AlekSi in FerretDB#3964
- Speed-up Docker builds by @AlekSi in FerretDB#3965
- Run more
maxTimeMS
tests by @noisersup in FerretDB#3940 - Store passwords for PLAIN authentication mechanism by @henvic in FerretDB#3928
- Use PBKDF2 for storing
PLAIN
passwords by @AlekSi in FerretDB#3970 - Shard extra CI configurations by @AlekSi in FerretDB#3946
- Small fixes and tweaks by @AlekSi in FerretDB#3971
- Implement
updateUser
command by @henvic in FerretDB#3973 - Small assorted tweaks by @AlekSi in FerretDB#3979
- Add MySQL backend Registry by @adetunjii in FerretDB#3967
- Add new BSON decoding package by @AlekSi in FerretDB#3905
- Refactor
bson2
encoding/decoding by @AlekSi in FerretDB#3987 - Use
usersInfo
forcreateUser
anddropUser
integration tests by @henvic in FerretDB#3980 - Improve
bson2
fuzzing by @AlekSi in FerretDB#3988 - Update contributing documentation by @AlekSi in FerretDB#3994
- Use
ListCollection
with a filter by @sachinpuranik in FerretDB#3995 - Add tests for MySQL registry by @adetunjii in FerretDB#3993
- Prepare CI to having multiple main branches by @AlekSi in FerretDB#4002
- Ignore
$readPreference
field by @b1ron in FerretDB#3996 - Hide
*types.Document
fromwire
struct fields by @AlekSi in FerretDB#4000 - Add deep
bson2
decoding by @AlekSi in FerretDB#3997 - Expose raw documents in the
wire
package by @AlekSi in FerretDB#4011
- @fadyat made their first contribution in FerretDB#3972
All closed issues and pull requests. All commits.
v1.18.0 (2024-01-08)
This release adds support for capped collections.
They can be created as usual using create
command.
Both max
(maximum number of documents) and size
(maximum collection size in bytes) parameters are supported.
This release adds support for tailable cursors.
Both tailable
and awaitData
parameters are supported.
This release adds support for the basic OpLog functionality. The main supported use case is Meteor's OpLog tailing. Replication is not supported yet.
OpLog collection does not exist by default.
To enable OpLog functionality, create a capped collection oplog.rs
in the local
database.
Setting replica set name using --repl-set-name
flag / FERRETDB_REPL_SET_NAME
environment variable
might also be needed.
- Add support for tailable cursors by @AlekSi in FerretDB#3799
- Implement
awaitData
tailable cursors by @noisersup in FerretDB#3900 - Implement and test OpLog for update operations by @rumyantseva in FerretDB#3899
- Enable OpLog and tailable cursors by @AlekSi in FerretDB#3887
- Implement
createUser
command by @henvic in FerretDB#3848 - Implement
dropUser
command by @henvic in FerretDB#3866 - Implement
dropAllUsersFromDatabase
command by @henvic in FerretDB#3867 - Implement
usersInfo
command by @henvic in FerretDB#3897
- Don't cleanup capped collections if there is nothing to cleanup by @rumyantseva in FerretDB#3909
- Disallow
maxTimeMS
for non-awaitData cursors ingetMore
command by @noisersup in FerretDB#3917 - Add the necessary for replica set fields to
ismaster
response by @rumyantseva in FerretDB#3925
- Add CI configuration for Citus by @AlekSi in FerretDB#3865
- Bump deps by @AlekSi in FerretDB#3880
- Fix tests by @AlekSi in FerretDB#3871
- Add MySQL backend registry by @adetunjii in FerretDB#3850
- Fix local MySQL setup by @AlekSi in FerretDB#3886
- Fix clean-up on
aggregate
errors by @AlekSi in FerretDB#3892 - Use
dropAllUsersFromDatabase
in tests by @henvic in FerretDB#3891 - Add
awaitData
tests by @noisersup in FerretDB#3872 - Add utilities for working with passwords by @AlekSi in FerretDB#3890
- Add support for
--skip
inenvtool tests run
by @KrishnaSindhur in FerretDB#3805 - Small clean-ups by @AlekSi in FerretDB#3896
- Add basic SAP HANA backend by @yonarw in FerretDB#3719
- Add integration tests for OpLog entries of insert and delete operations by @rumyantseva in FerretDB#3862
- Add more cursor tests by @noisersup in FerretDB#3893
- Refactor
ConnInfo
in preparation for new auth by @AlekSi in FerretDB#3901 - Add some small improvements to the linter that checks open issues by @rumyantseva in FerretDB#3756
- Forbid
bson.E/D/M/A
, except integration tests by @AlekSi in FerretDB#3908 - Bump deps by @AlekSi in FerretDB#3912
- Make
AssertEqual
helper handle duplicate keys by @AlekSi in FerretDB#3911 - Drop test users on cleanup by @AlekSi in FerretDB#3914
- Cleanup
awaitData
tailable cursor by @noisersup in FerretDB#3915 - Cleanup a closed issue by @rumyantseva in FerretDB#3924
- Ignore
sparse
index parameter for now by @AlekSi in FerretDB#3934 - Allow filtering by name in
ListDatabases
andListCollections
by @sachinpuranik in FerretDB#3851 - Disallow native passwords for MySQL by @adetunjii in FerretDB#3937
- Fix
awaitData
cursor panic by @noisersup in FerretDB#3935 - Use
usersInfo
indropAllUsersFromDatabase
tests by @henvic in FerretDB#3932 - Allow Native Passwords for testcase by @adetunjii in FerretDB#3941
- @yonarw made their first contribution in FerretDB#3719
- @sachinpuranik made their first contribution in FerretDB#3851
All closed issues and pull requests. All commits.
v1.17.0 (2023-12-18)
- Allow building without PostgreSQL or SQLite backend by @anunayasri in FerretDB#3803
- Allow sorting by
$natural
by @noisersup in FerretDB#3822 - Disallow
$natural
in compound sort by @noisersup in FerretDB#3832 - Generate collection UUIDs by @wazir-ahmed in FerretDB#3791
- Support capped collection cleanup by @rumyantseva in FerretDB#3831
- Fix
listDatabases
filtering when usingnameOnly
by @henvic in FerretDB#3788
- Improve
validate
diagnostic command by @b1ron in FerretDB#3804 - Add fields to
listCollections.cursor
response by @henvic in FerretDB#3809
- Add new release FerretDB v1.16.0 blog post by @Fashander in FerretDB#3808
- Change release blogpost image by @Fashander in FerretDB#3825
- Enable versioning on documentation by @Fashander in FerretDB#3821
- Add documentation for older versions by @AlekSi in FerretDB#3834
- Support subdirectories for integration tests by @AlekSi in FerretDB#3810
- Move tests for tailbable cursors by @AlekSi in FerretDB#3811
- Bump deps by @AlekSi in FerretDB#3817
- Refactor cursor creation by @AlekSi in FerretDB#3820
- Use single flag to disable all pushdowns by @noisersup in FerretDB#3793
- Add tracing to
envtool tests run
by @hungaikev in FerretDB#3695 - Extract
find
helper functions by @AlekSi in FerretDB#3826 - Fix tests for MongoDB with enabled replica set by @rumyantseva in FerretDB#3807
- Ignore
$clusterTime
by @AlekSi in FerretDB#3830 - Add MySQL backend metadata by @adetunjii in FerretDB#3828
- Clean-up tests a bit by @AlekSi in FerretDB#3835
- Allow bypassing authentication by @AlekSi in FerretDB#3840
- Add tests for tailable cursors by @noisersup in FerretDB#3833
- Add missing logging parameter by @AlekSi in FerretDB#3847
- Test cross-session cursors by @noisersup in FerretDB#3849
- Use MongoDB 7 by @henvic in FerretDB#3824
- Simplify tailable cursor tests by @AlekSi in FerretDB#3854
- Add
upsert
tests by @wazir-ahmed in FerretDB#3864 - Add cursor tests by @noisersup in FerretDB#3859
- @wazir-ahmed made their first contribution in FerretDB#3791
- @henvic made their first contribution in FerretDB#3788
- @anunayasri made their first contribution in FerretDB#3803
- @hungaikev made their first contribution in FerretDB#3695
All closed issues and pull requests. All commits.
v1.16.0 (2023-12-04)
- Clarify MongoDB version by @AlekSi in FerretDB#3653
- Add blogpost for release v.1.15 by @Fashander in FerretDB#3728
- Update domain name in docs by @AlekSi in FerretDB#3757
- Update Docusaurus to v3 by @Fashander in FerretDB#3772
- Update domain name in more places by @AlekSi in FerretDB#3802
- Cleanup pushdown terminology by @noisersup in FerretDB#3691
- Make RecordID a signed value by @AlekSi in FerretDB#3740
- Bump deps by @AlekSi in FerretDB#3747
- Add MySQL into the build system by @adetunjii in FerretDB#3736
- Add MySQL backend to CI by @AlekSi in FerretDB#3751
- Remove common
handlers.Interface
by @AlekSi in FerretDB#3753 - Remove unsafe pushdown by @noisersup in FerretDB#3752
- Support
DeleteAll
for capped collections by @rumyantseva in FerretDB#3718 - Add startup warning for debug builds by @AlekSi in FerretDB#3735
- Move
sqlite/*.go
tointernal/handler
by @rumyantseva in FerretDB#3755 - Add TODOs about pushdowns by @AlekSi in FerretDB#3762
- Clean-up old code for multiple handlers by @AlekSi in FerretDB#3763
- Add TODOs by @AlekSi in FerretDB#3764
- Move some commands from
common
to the handler by @AlekSi in FerretDB#3766 - Add TODOs by @AlekSi in FerretDB#3771
- Allow
system.
prefix for collections for now by @AlekSi in FerretDB#3775 - Setup MySQL integration tests by @adetunjii in FerretDB#3758
- Rename
commonerrors
andcommonparams
by @noisersup in FerretDB#3779 - Add TLS support to proxy mode by @AlekSi in FerretDB#3783
- Provide sort to backend as the document by @noisersup in FerretDB#3754
- Add stubs for authentication commands by @AlekSi in FerretDB#3776
- Move
getParameter
out ofcommon
package by @noisersup in FerretDB#3789 - Remove
commoncommands
package by @noisersup in FerretDB#3780 - Remove done TODOs by @AlekSi in FerretDB#3795
- Ignore
go-consistent
failures by @AlekSi in FerretDB#3794 - Log batches for
find
,aggregate
,getMore
by @AlekSi in FerretDB#3800 - Set
GOARM
explicitly by @AlekSi in FerretDB#3796
All closed issues and pull requests. All commits.
v1.15.0 (2023-11-20)
Our release binaries and packages now include linux
as a part of their file names.
That's a preparation for providing artifacts for other OSes.
- Support
showRecordId
infind
by @chilagrow in FerretDB#3637 - Add JSON format for logging by @AlekSi in FerretDB#3689
- Add option to disable
--debug-addr
by @cosmastech in FerretDB#3698
- Allow usage without state dir by @AlekSi in FerretDB#3703
- Allow the usage of existing PostgreSQL schema by @AlekSi in FerretDB#3717
- Generate SQL queries with comments for find operations by @chumaumenze in FerretDB#3697
- Mention proxy flag in docs by @Fashander in FerretDB#3673
- Update README.md to include Vultr by @mrusme in FerretDB#3675
- Add blog post on FastNetMon by @Fashander in FerretDB#3676
- Fix content error by @Fashander in FerretDB#3694
- Add blogpost for "How to Package and Deploy FerretDB with Acorn" by @Fashander in FerretDB#3679
- Enable interactivity on blogpost by @Fashander in FerretDB#3659
- Fix Codapi error on blog post by @Fashander in FerretDB#3721
- Add migration blog post by @Fashander in FerretDB#3709
- Make tests stable on CI by @AlekSi in FerretDB#3678
- Bump deps by @AlekSi in FerretDB#3690
- Use separate PostgreSQL databases in tests by @AlekSi in FerretDB#3622
- Add test for tailable cursor with non-capped collection by @noisersup in FerretDB#3677
- Use
-
in addition to the empty string by @AlekSi in FerretDB#3704 - Use the standard
*mongo.WriteError
type by @AlekSi in FerretDB#3705 - Fix tests for MongoDB with enabled replica set by @rumyantseva in FerretDB#3604
- Handle panicking tests by @AlekSi in FerretDB#3711
- Make handler accept constructed backend by @rumyantseva in FerretDB#3710
- Add issue tracking to checkcomments analyzer by @raeidish in FerretDB#3632
- Add TODOs and fix URLs by @AlekSi in FerretDB#3723
- Move diff tests from dance to integration tests by @ksankeerth in FerretDB#3525
- Small assorted tweaks by @AlekSi in FerretDB#3724
- @mrusme made their first contribution in FerretDB#3675
- @cosmastech made their first contribution in FerretDB#3698
- @chumaumenze made their first contribution in FerretDB#3697
- @ksankeerth made their first contribution in FerretDB#3525
All closed issues and pull requests. All commits.
v1.14.0 (2023-11-07)
As mentioned in the previous release changes, the old PostgreSQL backend code is completely removed. PostgreSQL remains our main backend, just with a new code base.
- Implement
compact
command by @adetunjii in FerretDB#3559
- Optimize detection of duplicate fields by @AlekSi in FerretDB#3645
- Optimize
insert
performance by batching by @princejha95 in FerretDB#3621
- Fix incorrect schema by @AlekSi in FerretDB#3635
- Add blogpost for FerretDB v1.13.0 by @Fashander in FerretDB#3639
- Add Vultr blog post by @Fashander in FerretDB#3646
- Update blog post on Ubuntu by @Fashander in FerretDB#3658
- Add blog post on MongoDB sorting for scalar values by @chilagrow in FerretDB#3200
- Disallow capped collection creation when disabled by @AlekSi in FerretDB#3636
- Run backend tests for SAP HANA by @AlekSi in FerretDB#3657
- Update
golangci-lint
by @AlekSi in FerretDB#3651 - Remove
pgdb
fromenvtool
by @ShatilKhan in FerretDB#3586 - Remove old
pg
handler by @AlekSi in FerretDB#3661 - Add test for capped collection in
aggregate
$collStats
by @chilagrow in FerretDB#3643 - Enable
GOMAXPROCS
autotuning by @AlekSi in FerretDB#3105 - Add integration tests progress reporting by @rubiagatra in FerretDB#3471
- Add timing information to
envtool
output by @AlekSi in FerretDB#3664 - Remove old SAP HANA handler by @AlekSi in FerretDB#3674
- Rename main_postgeresql to main_postgresql by @gen1us2k in FerretDB#3668
- (WIP) Support
create
for capped collections by @rumyantseva in FerretDB#3614 - (WIP) Support
InsertAll
andFindAll
for capped collections by @chilagrow in FerretDB#3610
- @ShatilKhan made their first contribution in FerretDB#3586
- @rubiagatra made their first contribution in FerretDB#3471
- @gen1us2k made their first contribution in FerretDB#3668
All closed issues and pull requests. All commits.
v1.13.0 (2023-10-23)
The new PostgreSQL backend is now enabled by default.
You can still enable the old backend with --postgresql-old
flag or FERRETDB_POSTGRESQL_OLD=true
environment variable,
but it will be removed in the next release.
Our Docker images (but not binaries and .deb
/ .rpm
packages) now use /state
directory for the SQLite backend.
That directory is also a Docker volume, so data will be preserved after the container restart by default.
We now provide linux/arm/v7
binaries, Docker images, and .deb
/ .rpm
packages.
- Implement pushdown for
aggregate
for PostgreSQL by @noisersup in FerretDB#3607 - Implement sort pushdown for PostgreSQL by @noisersup in FerretDB#3504
- Implement limit pushdown for PostgreSQL by @noisersup in FerretDB#3580
- Implement
indexSizes
forcollStats
by @chilagrow in FerretDB#3575 - Implement free storage in
collStats
,dbStats
andaggregate
$collStats
by @chilagrow in FerretDB#3594 - Add capped collection counts in
serverStatus
by @chilagrow in FerretDB#3566 - Integrate Statsviz by @codenoid in FerretDB#3591
- Fix invalid validation for
_id
field by @slavabobik in FerretDB#3523 - Fix
explain
panic for non-existent collection on PostgreSQL by @noisersup in FerretDB#3541
- Add basic logging for PostgreSQL backend by @AlekSi in FerretDB#3560
- Report actual backend name by @AlekSi in FerretDB#3570
- Improve
/debug
page by @codenoid in FerretDB#3592 - Add filter pushdown for
_id: <string>
for SQLite by @AlekSi in FerretDB#3599
- Add release blog post for FerretDB v1.12 by @Fashander in FerretDB#3555
- Crush images by @AlekSi in FerretDB#3561
- Change SQLite directory for Docker images by @AlekSi in FerretDB#3571
- Enable Mermaid diagrams in Docusaurus by @sid-js in FerretDB#3532
- Enable linters to accept exclamation marks in headers by @chanon-mike in FerretDB#3578
- Add SQLite info to glossary list by @pvinoda in FerretDB#3593
- Add blog post on using Illa Cloud with FerretDB by @Fashander in FerretDB#3516
- Add SQLite set up docs by @Fashander in FerretDB#3568
- Add "How to Install FerretDB on Ubuntu" blog post by @Fashander in FerretDB#2802
- Update ILLA blog post by @Fashander in FerretDB#3620
- Add links to blog by @Fashander in FerretDB#3623
- Improve embedded package documentation by @princejha95 in FerretDB#3537
- Use separate PostgreSQL databases in tests by @AlekSi in FerretDB#3553
- Make
collStats
calculate collection size accurately forPostgreSQL
statistics by @chilagrow in FerretDB#3513 - Implement
Collection.Compact
for SQLite by @Akhil-2001 in FerretDB#3536 - Use self-hosted runner for packages building by @AlekSi in FerretDB#3569
- Do not create databases during local setup by @AlekSi in FerretDB#3572
- Build
arm/v7
binaries by @AlekSi in FerretDB#3577 - Add more tests and fixes for
$collStats
aggregation stage by @chilagrow in FerretDB#3565 - Build
arm/v7
.deb
and.rpm
packages and binaries by @AlekSi in FerretDB#3576 - Add tests for insertion of documents with invalid
_id
fields by @slavabobik in FerretDB#3579 - Add more data to output of
collStats
anddbStats
by @chilagrow in FerretDB#3538 - Update
dataSize
anddbStats
integration tests by @chilagrow in FerretDB#3585 - Do not return stats in
Backend.ListDatabases
by @AlekSi in FerretDB#3588 - Remove old TODOs by @AlekSi in FerretDB#3595
- Use stdlib's
slices
package by @AlekSi in FerretDB#3590 - Remove done TODO by @chilagrow in FerretDB#3596
- Check that linked issues are open by @KrishnaSindhur in FerretDB#3277
- Make it easier to run old PG handler by @AlekSi in FerretDB#3598
- Implement
Collection.Compact
for PostgreSQL by @rumyantseva in FerretDB#3603 - Do not skip invalid TODOs by @AlekSi in FerretDB#3597
- Unskip filter pushdown integration tests by @noisersup in FerretDB#3605
- Call
ANALYZE
less often by @Aditya1404Sal in FerretDB#3563 - Keep envtool's version always up-to-date by @AlekSi in FerretDB#3609
- Fix some tests for SQLite backend by @AlekSi in FerretDB#3617
- Do not create OpLog database/collection on a fly by @AlekSi in FerretDB#3625
- Make
listIndexes
return a sorted list by @codenoid in FerretDB#3602
- @Akhil-2001 made their first contribution in FerretDB#3536
- @sid-js made their first contribution in FerretDB#3532
- @codenoid made their first contribution in FerretDB#3591
- @chanon-mike made their first contribution in FerretDB#3578
- @pvinoda made their first contribution in FerretDB#3593
All closed issues and pull requests. All commits.
v1.12.1 (2023-10-10)
The new PostgreSQL backend is ready for testing.
Enable it with --postgresql-new
flag or FERRETDB_POSTGRESQL_NEW=true
environment variable.
The next FerretDB version will enable it by default.
Production Docker images use scratch
as a base Docker image.
The only file present in the image is a FerretDB binary (with root TLS certificates embedded).
In addition to linux/arm64
Docker images, we now provide linux/arm64
binaries and .deb
/ .rpm
packages.
- Build
arm64
binaries and packages by @AlekSi in FerretDB#3477 - Implement metrics collection by @Mihai22125 in FerretDB#3430
- Implement
RenameCollection
by @AlekSi in FerretDB#3440 - Implement
InsertAll
by @chilagrow in FerretDB#3419 - Implement
DeleteAll
by @chilagrow in FerretDB#3441 - Implement
DropDatabase
andStatus
by @chilagrow in FerretDB#3451 - Implement
UpdateAll
by @chilagrow in FerretDB#3449 - Implement
ListCollections
,CreateCollection
andDropCollection
by @chilagrow in FerretDB#3444 - Implement
explain
by @noisersup in FerretDB#3465 - Implement
database.Stats
by @chilagrow in FerretDB#3464 - Implement
collection.Stats
by @chilagrow in FerretDB#3478 - Implement
CreateIndexes
,DropIndexes
,ListIndexes
by @rumyantseva in FerretDB#3468 - Implement filter pushdown by @noisersup in FerretDB#3482
- Add info about indexes to
dbStats
response by @rumyantseva in FerretDB#3534
- Verify that client metadata not being mutated by @kropidlowsky in FerretDB#3194
- Relax restrictions when _id is not the first field in projection by @princejha95 in FerretDB#3491
- Fix
_id
restriction in aggregation$project
stage by @chilagrow in FerretDB#3508
- Implement validation for
createIndexes
anddropIndexes
commands for SQLite by @rumyantseva in FerretDB#3373 - Use
Ping
for checking connection by @AlekSi in FerretDB#3519
- Update Writing Guide by @Fashander in FerretDB#3424
- Add blog post on Using MajorM as MongoDB GUI for FerretDB by @Fashander in FerretDB#3387
- Add release blog post for FerretDB v1.11.0 by @Fashander in FerretDB#3439
- Fix RSS feed issue with images by @Fashander in FerretDB#3417
- Republish Hacktobest blog post by @Fashander in FerretDB#3429
- Add blog post on Enmeshed by @Fashander in FerretDB#3448
- Add
$project
and$unset
to aggregation stages section by @Akhaled19 in FerretDB#3450 - Add operation mode definition to Glossary by @rohitkbc in FerretDB#3472
- Improve definitions for aggregation stages by @Fashander in FerretDB#3499
- Add TODOs for capped collections by @AlekSi in FerretDB#3461
- Fix blog post formatting by @Fashander in FerretDB#3515
- Fix typo in contributing documentation by @jrmanes in FerretDB#3507
- Add mermaid diagrams by @AlekSi in FerretDB#3524
- Update documentation by @AlekSi in FerretDB#3530
- Add CI configurations by @AlekSi in FerretDB#3423
- Fix CI configuration and add TODOs by @AlekSi in FerretDB#3436
- Add SAP HANA backend stub by @AlekSi in FerretDB#3433
- Bump deps by @AlekSi in FerretDB#3437
- Remove extra function by @AlekSi in FerretDB#3447
- Fix fluky
TestRenameCollectionCompat
tests by @chilagrow in FerretDB#3438 - Mark pushdown results based on tested backend by @noisersup in FerretDB#3446
- Run tests with
envtool tests run
by @AlekSi in FerretDB#3453 - Remove unused expected failures by @AlekSi in FerretDB#3455
- Tweak SQLite backend tests by @AlekSi in FerretDB#3460
- Add tests for backends contract by @AlekSi in FerretDB#3456
- Speed-up Docker image building by @AlekSi in FerretDB#3470
- Fix running a subset of tests by @AlekSi in FerretDB#3479
- Add a workaround for Docker build failures by @AlekSi in FerretDB#3480
- Add stubs for
Collection.Compact
by @AlekSi in FerretDB#3485 - Process collection name param using
collection
tag by @adetunjii in FerretDB#3476 - Revive logic of lower cased key for collection name by @chilagrow in FerretDB#3494
- Add
RecordID
totypes.Document
by @AlekSi in FerretDB#3495 - Extract
ReservedPrefix
constant by @AlekSi in FerretDB#3497 - Fix stress tests by @AlekSi in FerretDB#3502
- Fix concurrent Docker builds by @AlekSi in FerretDB#3503
- Store indexes metadata by @rumyantseva in FerretDB#3434
- Tweak tests timeouts by @AlekSi in FerretDB#3514
- Bump Go version by @AlekSi in FerretDB#3510
- Disallow importing handlers code from backends by @AlekSi in FerretDB#3512
- Disable
auto_vacuum
for SQLite by @AlekSi in FerretDB#3496 - Fix index name generation by @rumyantseva in FerretDB#3511
- Fix unit tests for indexes by @rumyantseva in FerretDB#3531
- Make new PostgreSQL backend tests pass by @rumyantseva in FerretDB#3522
- @Mihai22125 made their first contribution in FerretDB#3430
- @Akhaled19 made their first contribution in FerretDB#3450
- @rohitkbc made their first contribution in FerretDB#3472
- @princejha95 made their first contribution in FerretDB#3491
- @jrmanes made their first contribution in FerretDB#3507
All closed issues and pull requests. All commits.
v1.11.0 (2023-09-25)
- Fix
collStats
to return correct count of documents forSQLite
by @chilagrow in FerretDB#3363 - Fix metadata updates for
dropIndexes
by @rumyantseva in FerretDB#3358
- Return statistics of indexes for
collStats
anddbStats
for SQLite backend by @rumyantseva in FerretDB#3361
- Improve blog format by @Fashander in FerretDB#3359
- Add a blog post for v1.10 by @AlekSi in FerretDB#3346
- Add docs for migrating to MongoDB from FerretDB by @Fashander in FerretDB#3374
- Mention SQLite in docs by @ptrfarkas in FerretDB#3408
- Add test for inserting different data types by @noisersup in FerretDB#3345
- Recreate test directory by @AlekSi in FerretDB#3364
- Use consistent spelling by @AlekSi in FerretDB#3365
- Use filter and insert more documents in
BenchmarkReplaceSettingsDocument
by @chilagrow in FerretDB#3343 - Replace deprecated Jaeger exporter by @adetunjii in FerretDB#3368
- Remove the need to close
conninfo
by @AlekSi in FerretDB#3376 - Add small tweaks by @AlekSi in FerretDB#3377
- Add CI configuration for SQLite without pushdown by @AlekSi in FerretDB#3381
- Enforce valid
types
usage by @AlekSi in FerretDB#3384 - Reorder codebase in SQLite registry by @chilagrow in FerretDB#3382
- Store
PostgreSQL
metadata by @chilagrow in FerretDB#3356 - Add
TODO
s by @AlekSi in FerretDB#3412 - Run new PostgreSQL backend tests by @AlekSi in FerretDB#3407
- Implement
Query
in newPostgreSQL
backend by @chilagrow in FerretDB#3411
All closed issues and pull requests. All commits.
v1.10.1 (2023-09-14)
With this release, the SQLite backend support is officially out of beta, on par with our PostgreSQL backend, and fully supported!
- Implement
aggregate
for SQLite by @chilagrow in FerretDB#3256 - Implement
collStats
for SQLite by @chilagrow in FerretDB#3295 - Implement
createIndexes
for SQLite by @rumyantseva in FerretDB#3304 - Implement
dbStats
for SQLite by @chilagrow in FerretDB#3270 - Implement
distinct
for SQLite by @chilagrow in FerretDB#3265 - Implement
dropIndexes
for SQLite by @rumyantseva in FerretDB#3329 - Implement
explain
command for SQLite by @noisersup in FerretDB#3264 - Implement
findAndModify
for SQLite by @chilagrow in FerretDB#3302 - Implement
getLog
for SQLite by @rumyantseva in FerretDB#3279 - Implement
listDatabases
for SQLite by @rumyantseva in FerretDB#3269 - Implement
listIndexes
for SQLite by @rumyantseva in FerretDB#3301 - Implement
renameCollection
for SQLite by @chilagrow in FerretDB#3321 - Implement
serverStatus
anddataSize
commands for SQLite by @chilagrow in FerretDB#3316 - Support
_id
implicit filter forObjectID
in SQLite by @chilagrow in FerretDB#3330 - Support
$bit
bitwise update operator by @adetunjii in FerretDB#3266 - Support
ordered
insert
s for SQLite by @AlekSi in FerretDB#3223
- Make
delete
s atomic for SQLite by @AlekSi in FerretDB#3291 - Make
update
s atomic for SQLite by @AlekSi in FerretDB#3296 - Do not change
search_path
parameter by @AlekSi in FerretDB#3299
- Cleanup
$bit
update operator by @chilagrow in FerretDB#3315 - Document how to test for compatibility by @b1ron in FerretDB#3268
- Update blog writing guide documentation by @chilagrow in FerretDB#3209
- Update category links in writing guide by @Fashander in FerretDB#3323
- Update deb.md - minor grammar correction by @athkishore in FerretDB#3289
- Update the writing guide by @Fashander in FerretDB#3311
- Add ability to freeze
*types.Document
and*types.Array
by @KrishnaSindhur in FerretDB#3253 - Add backend decorators and OpLog stub by @AlekSi in FerretDB#3303
- Add backend interface for
collStats
by @chilagrow in FerretDB#3294 - Add backend interface for
dbStats
by @chilagrow in FerretDB#3267 - Add more tests by @chilagrow in FerretDB#3336
- Add new PostgreSQL backend stub by @AlekSi in FerretDB#3319
- Add tests for accessing aggregation variable
$$ROOT
field by @chilagrow in FerretDB#3254 - Add tests for validation bug by @AlekSi in FerretDB#3286
- Add transactions to
fsql
by @AlekSi in FerretDB#3278 - Bump deps by @AlekSi in FerretDB#3284
- Clean-up
*types.Timestamp
a bit by @AlekSi in FerretDB#3305 - Do not
ConsumeValues
in the$group
aggregation stage by @adetunjii in FerretDB#3344 - Expand architecture docs, add comments by @AlekSi in FerretDB#3288
- Fix params handling for
dropIndexes
implementation for SQLite by @rumyantseva in FerretDB#3350 - Make registry return full collection info by @AlekSi in FerretDB#3292
- Remove
Database.Close
by @AlekSi in FerretDB#3327 - Remove duplicated
$expr
tests by @chilagrow in FerretDB#3255 - Return correct response if unique index violation happened on SQLite backend by @rumyantseva in FerretDB#3353
- Simplify and deprecate
commonerrors.WriteErrors
by @AlekSi in FerretDB#3258 - Skip tests for
enable
setFreeMonitoring
for MongoDB by @chilagrow in FerretDB#3318 - Tweak MongoDB initialization process by @AlekSi in FerretDB#3307
- Update TODO comments by @noisersup in FerretDB#3262
- Use
pkgsite
instead ofgodoc
by @AlekSi in FerretDB#3326 - Use Go 1.21 by @AlekSi in FerretDB#3324
- @athkishore made their first contribution in FerretDB#3289
All closed issues and pull requests. All commits.
v1.9.0 (2023-08-28)
- Add more metrics for
*sql.DB
by @slavabobik in FerretDB#3230
- Add blog post for FerretDB v1.8.0 by @Fashander in FerretDB#3198
- Fix typos in documentation by @pratikmota in FerretDB#3217
- Make the writing guide accessible but unlisted by @AlekSi in FerretDB#3221
- Add blogpost on Leafcloud by @Fashander in FerretDB#3153
- Add Postgres Ibiza event blog post by @Fashander in FerretDB#3210
- Add Civo Navigate event blog post by @Fashander in FerretDB#3201
- Configure repo settings with files by @AlekSi in FerretDB#3208
- Update
go-hdb
to v1.4.1 by @aenkya in FerretDB#3213 - Bump deps by @AlekSi in FerretDB#3215
- Add another stress test for SQLite by @noisersup in FerretDB#3195
- Improve building with test coverage information by @durgakiran in FerretDB#3059
- Fix concurrent SQLite tests by @AlekSi in FerretDB#3222
- Refactor aggregation operators by @noisersup in FerretDB#3188
- Add stubs for
renameCollection
by @AlekSi in FerretDB#3233 - Update issue links by @AlekSi in FerretDB#3234
- Add stubs for
explain
by @AlekSi in FerretDB#3236 - Bump deps by @AlekSi in FerretDB#3248
- Add linter for issue comments by @KrishnaSindhur in FerretDB#3154
- Simplify
commonerrors
package by @AlekSi in FerretDB#3227 - Publish Docker images on quay.io by @AlekSi in FerretDB#3250
- Refactor aggregation accumulators by @noisersup in FerretDB#3203
- Add new PostgreSQL backend stub by @AlekSi in FerretDB#3251
- Cleanup SQLite tests by @noisersup in FerretDB#3246
- @aenkya made their first contribution in FerretDB#3213
- @pratikmota made their first contribution in FerretDB#3217
- @durgakiran made their first contribution in FerretDB#3059
- @slavabobik made their first contribution in FerretDB#3230
All closed issues and pull requests. All commits.
v1.8.0 (2023-08-14)
- Implement
$group
stage_id
expression by @chilagrow in FerretDB#3138 - Implement
$expr
evaluation query operator by @chilagrow in FerretDB#3163
- Do not return immutable
_id
error fromfindAndModify
for upserting same_id
by @chilagrow in FerretDB#3171
- Cache SQLite tables metadata by @AlekSi in FerretDB#3124
- Use lock for SQLite metadata by @AlekSi in FerretDB#3146
- Bump deps by @AlekSi in FerretDB#3142
- Improve MongoDB/FerretDB error checking in tests by @AlekSi in FerretDB#3143
- Expect some
aggregate
andinsert
tests to fail for SQLite by @AlekSi in FerretDB#3147 - Make administration command integration tests pass for SQLite by @noisersup in FerretDB#3152
- Bump deps, including Go by @AlekSi in FerretDB#3160
- Make aggregate stats integration tests pass for SQLite by @noisersup in FerretDB#3151
- Simplify tests a bit by @AlekSi in FerretDB#3149
- Make
distinct
andexplain
command integration tests pass for SQLite by @noisersup in FerretDB#3159 - Use one implementation for finding path values by @chilagrow in FerretDB#3087
- Make aggregate documents compat tests pass for SQLite by @noisersup in FerretDB#3150
- Make
query
integration tests pass for SQLite by @noisersup in FerretDB#3182 - Make
findAndModify
integration tests pass for SQLite by @noisersup in FerretDB#3173 - Make index integration tests pass for SQLite by @noisersup in FerretDB#3185
- Add tests for
$$ROOT
aggregation expression variable by @chilagrow in FerretDB#3180 - Make
getMore
integration tests pass for SQLite by @noisersup in FerretDB#3174 - Make
update
integration tests pass for SQLite by @noisersup in FerretDB#3184 - Add tests for
$$ROOT
by @chilagrow in FerretDB#3187
All closed issues and pull requests. All commits.
v1.7.0 (2023-07-31)
- Implement
$sum
aggregation standard operator by @chilagrow in FerretDB#3063
- Fix
PLAIN
auth with C# driver by @b1ron in FerretDB#3012
- Add validating max nested document/array depth by @kropidlowsky in FerretDB#2882
- Validate database and collection names for SQLite handler by @noisersup in FerretDB#2868
- Add basic metrics, logging and tracing for SQLite by @AlekSi in FerretDB#3123
- Tweak and document SQLite URI parameters by @AlekSi in FerretDB#3128
- Add blog post for FerretDB v1.6.0 by @Fashander in FerretDB#3058
- Update changelog by @AlekSi in FerretDB#3072
- Update blog post for FerretDB v1.6.0 by @Fashander in FerretDB#3073
- Tweak documentation and blog by @Fashander in FerretDB#2992
- Add blog post on "Community matters: fireside chat with Artem Ervits, CockroachDB" by @Fashander in FerretDB#3066
- Update Blog Post by @Fashander in FerretDB#3086
- Update tags formatting in writing guide by @Fashander in FerretDB#3097
- Add blog post on "Using Mingo with FerretDB" by @Fashander in FerretDB#3074
- Simplify
checkdocs
linter by @AlekSi in FerretDB#3104 - Update MongoDB comparision blog post by @ptrfarkas in FerretDB#3117
- Update MongoDB comparision blog post by @ptrfarkas in FerretDB#3119
- Add blog post on Grafana Monitoring for FerretDB by @Fashander in FerretDB#3106
- Bump deps by @AlekSi in FerretDB#3064
- Mark some tests as failing for SQLite by @AlekSi in FerretDB#3051
- Improve sjson package fuzzing by @quasilyte in FerretDB#3071
- Merges fuzztool into envtool by @Aditya1404Sal in FerretDB#2645
- Do not import
commonerrors
in tests by @AlekSi in FerretDB#3081 - Remove dead code by @AlekSi in FerretDB#3093
- Allow to change SQLite URI in tests by @AlekSi in FerretDB#3092
- Replace test doubles with constants by @noisersup in FerretDB#3024
- Improve
checkdocs
linter by @KrishnaSindhur in FerretDB#3095 - Add daily progress principle to
PROCESS.md
by @rumyantseva in FerretDB#3098 - Support
_id
aggregation operators for$group
stage by @noisersup in FerretDB#3096 - Bump the tools group in /tools with 1 update by @dependabot in FerretDB#3109
- Backport v1.6.1 fixes by @AlekSi in FerretDB#3107
- Support recursive operator calls for
$sum
aggregation accumulator by @noisersup in FerretDB#3116
- @Aditya1404Sal made their first contribution in FerretDB#2645
- @KrishnaSindhur made their first contribution in FerretDB#3095
- @ptrfarkas made their first contribution in FerretDB#3117
All closed issues and pull requests. All commits.
v1.6.1 (2023-07-26)
- Fix pushdown for
find
withfilter
andlimit
by @AlekSi in FerretDB#3114
All closed issues and pull requests. All commits.
v1.6.0 (2023-07-17)
- Implement
killCursors
command by @AlekSi in FerretDB#2939 - Implement
ping
command for SQLite by @noisersup in FerretDB#2965 - Implement
getParameter
method for SQLite by @chilagrow in FerretDB#2985
- Ignore
lsid
field in all commands by @b1ron in FerretDB#3010 - Allow
$set
operator to update_id
by @chilagrow in FerretDB#3009 - Apply pushdown for
limit
by @chilagrow in FerretDB#2993 - Fix
update
with query operator forupsert
option by @chilagrow in FerretDB#3028
- Add integration tests for
maxTimeMS
infind
,aggregate
andgetMore
by @chilagrow in FerretDB#2953 - Remove double decoding in unmarshalSingleValue by @quasilyte in FerretDB#3018
- Ignore
count.fields
argument by @AlekSi in FerretDB#3048
- Add blog post on FerretDB release v1.5.0 by @Fashander in FerretDB#2958
- Mention SQLite in README.md by @AlekSi in FerretDB#2968
- Add blog post about using NoSQLBooster with FerretDB by @Fashander in FerretDB#2962
- Update blog post image by @Fashander in FerretDB#3029
- Add a note about setting the stable API version by @b1ron in FerretDB#3035
- Add blog post on "How to run FerretDB on top of StackGres" by @Fashander in FerretDB#2869
- Fix blog post formatting by @AlekSi in FerretDB#3047
- Update database naming restrictions by @b1ron in FerretDB#3042
- Move
find
andaggregation
cursor integration tests togetMore
by @chilagrow in FerretDB#2952 - Make a copy of the
testing.TB
interface by @AlekSi in FerretDB#2987 - Bump deps by @AlekSi in FerretDB#2998
- Remove Tigris from documentation and builds by @AlekSi in FerretDB#2999
- Remove Tigris code by @AlekSi in FerretDB#3001
- Remove Tigris from tests by @AlekSi in FerretDB#3002
- Crush PNG files to make them smaller by @AlekSi in FerretDB#3020
- Update issue URL by @AlekSi in FerretDB#3021
- Move
testutil.TB
totesttb.TB
by @AlekSi in FerretDB#3022 - Move
logout
tocommoncommands
by @AlekSi in FerretDB#3019 - Make
task all
run only unit tests by @AlekSi in FerretDB#3023 - Update closed issue links by @chilagrow in FerretDB#3027
- Unskip
findAndModify
$set
integration test for_id
by @chilagrow in FerretDB#3025 - Expect
renameCollection
tests failures by @AlekSi in FerretDB#3007 - Fix
killCursors
edge case by @AlekSi in FerretDB#3030 - Fix error checking in backend contracts by @AlekSi in FerretDB#3031
- Bump deps by @AlekSi in FerretDB#3034
- Remove
Type()
interface from aggregation stage by @chilagrow in FerretDB#3045 - Remove fixed issue link and clean up integration test provider setup by @chilagrow in FerretDB#3052
- Prepare v1.6.0 release by @AlekSi in FerretDB#3056
- @quasilyte made their first contribution in FerretDB#3018
All closed issues and pull requests. All commits.
v1.5.0 (2023-07-03)
This release provides beta-level support for the SQLite backend. There is some missing functionality, but it is ready for early adopters.
This release provides improved cursor support, enabling commands like find
and aggregate
to return large data sets much more effectively.
Tigris data users: Please note that this is the last release of FerretDB which includes support for the Tigris backend. Starting from FerretDB v1.6.0, Tigris will not be supported. If you wish to use Tigris, please do not update FerretDB beyond v1.5.0. This and earlier versions of FerretDB with Tigris support will still be available on GitHub.
- Implement
count
for SQLite by @AlekSi in FerretDB#2865 - Enable cursor support for PostgreSQL and SQLite by @AlekSi in FerretDB#2864
- Support
find
singleBatch
and validategetMore
parameters by @chilagrow in FerretDB#2855 - Support cursors for aggregation pipelines by @chilagrow in FerretDB#2861
- Fix collection name starting with dot validation by @noisersup in FerretDB#2912
- Improve validation for
createIndexes
anddropIndexes
by @chilagrow in FerretDB#2884 - Use cursors in
find
command by @AlekSi in FerretDB#2933
- Add blogpost on FerretDB v1.4.0 by @Fashander in FerretDB#2858
- Add blog post on "Meet FerretDB at Percona University in Casablanca and Belgrade" by @Fashander in FerretDB#2870
- Update supported commands by @chilagrow in FerretDB#2876
- Add blog post "FerretDB Demo: Launch and Test a Database in Minutes" by @Fashander in FerretDB#2851
- Fix Github link for Dance repository by @Matthieu68857 in FerretDB#2887
- Add blog post on "How to Configure FerretDB to work on Percona Distribution for PostgreSQL" by @Fashander in FerretDB#2911
- Update incorrect blog post image by @Fashander in FerretDB#2920
- Crush PNG images by @AlekSi in FerretDB#2931
- Add more validation and tests for
$unset
by @chilagrow in FerretDB#2853 - Make it easier to debug GitHub Actions by @AlekSi in FerretDB#2860
- Unify tests for indexes by @AlekSi in FerretDB#2866
- Bump deps by @AlekSi in FerretDB#2875
- Fix fuzzing corpus collection by @AlekSi in FerretDB#2879
- Add basic tests for iterators by @AlekSi in FerretDB#2880
- Implement basic
insert
support for SAP HANA by @polyal in FerretDB#2732 - Update contributing docs by @AlekSi in FerretDB#2828
- Improve
wire
andsjson
fuzzing by @AlekSi in FerretDB#2883 - Add operators support for
$addFields
by @noisersup in FerretDB#2850 - Unskip test that passes now by @AlekSi in FerretDB#2885
- Tweak contributing guidelines by @AlekSi in FerretDB#2886
- Add handler's metrics registration by @AlekSi in FerretDB#2895
- Clean-up some code and comments by @AlekSi in FerretDB#2904
- Fix cancellation signals propagation by @AlekSi in FerretDB#2908
- Bump deps, add permissions monitoring by @AlekSi in FerretDB#2930
- Fix integration tests after bumping deps by @noisersup in FerretDB#2934
- Update benchmark to use cursors by @AlekSi in FerretDB#2932
- Set
minWireVersion
to 0 by @AlekSi in FerretDB#2937 - Test
getMore
integration test using one connection pool by @chilagrow in FerretDB#2878 - Add better metrics for connections by @AlekSi in FerretDB#2938
- Use cursors with iterator in
aggregate
command by @chilagrow in FerretDB#2929 - Implement proper response for
createIndexes
by @rumyantseva in FerretDB#2936 - Re-implement
DELETE
for SQLite backend by @w84thesun in FerretDB#2907 - Validate database names for SQLite handler by @noisersup in FerretDB#2924
- Add
insert
documents type validation by @w84thesun in FerretDB#2946 - Convert SQLite directory to URI by @w84thesun in FerretDB#2922
- Do not break fuzzing initialization by @AlekSi in FerretDB#2951
- @Matthieu68857 made their first contribution in FerretDB#2887
All closed issues and pull requests. All commits.
v1.4.0 (2023-06-19)
- Implement
$type
aggregation operator by @noisersup in FerretDB#2789 - Implement
$unset
aggregation pipeline stage by @shibasisp in FerretDB#2676 - Implement simple
$addFields/$set
aggregation pipeline stages by @shibasisp in FerretDB#2783 - Implement
createIndexes
for unique indexes by @w84thesun in FerretDB#2814
- Add blog post for FerretDB v1.3.0 by @Fashander in FerretDB#2791
- Add
release
tag to release blog post by @AlekSi in FerretDB#2792 - Add textlint rules for en dashes and em dashes by @AlekSi in FerretDB#2823
- Add Blog Post on Document Databases by @Fashander in FerretDB#2204
- Add user documentation about unique index creation by @rumyantseva in FerretDB#2856
- Make
testutil.Logger
easier to use by @AlekSi in FerretDB#2790 - Bump deps by @AlekSi in FerretDB#2798
- Refactor SQLite handler by @AlekSi in FerretDB#2731
- Merge test workflows to fix coverage calculation by @AlekSi in FerretDB#2801
- Improve
testDistinctCompat
by @noisersup in FerretDB#2782 - Use iterator in
$sum
aggregation accumulator by @chilagrow in FerretDB#2799 - Bump Go to 1.20.5 by @AlekSi in FerretDB#2810
- Fix free monitoring tests for MongoDB 6.0.6 by @jeremyphua in FerretDB#2784
- Bump MongoDB to 6.0.6 by @AlekSi in FerretDB#2727
- Bump MongoDB Go driver by @AlekSi in FerretDB#2817
- Implement
envtool tests shard
command by @kropidlowsky in FerretDB#2773 - Check error message in non compat integration tests by @chilagrow in FerretDB#2806
- Shard integration tests by @AlekSi in FerretDB#2820
- Describe current test naming conventions in the contributing guidelines by @rumyantseva in FerretDB#2821
- Add tests for
find
/getMore
batchSize
by @chilagrow in FerretDB#2825 - Add more test cases for index validation by @rumyantseva in FerretDB#2752
- Fix running single test with
task
by @w84thesun in FerretDB#2832 - Refactor
getWholeParamStrict
andGetScaleParam
functions by @w84thesun in FerretDB#2831 - Prevent tests deadlock when backend is down by @AlekSi in FerretDB#2846
- Fix
unimplemented-non-default
tag usages by @w84thesun in FerretDB#2848 - Bump deps by @AlekSi in FerretDB#2849
- Add more tests for
$set
and$addFields
aggregation stages by @chilagrow in FerretDB#2844 - Improve benchmarks by @AlekSi in FerretDB#2833
- Handle
$type
aggregation operator errors properly by @noisersup in FerretDB#2829
- @shibasisp made their first contribution in FerretDB#2676
All closed issues and pull requests. All commits.
v1.3.0 (2023-06-05)
- Implement positional operator in projection by @chilagrow in FerretDB#2688
- Implement
logout
command by @kropidlowsky in FerretDB#2639
- Fix reporting of updates availability by @rumyantseva in FerretDB#2653
- Fix
.deb
and.rpm
package versions by @AlekSi in FerretDB#2725 - Allow query to be type null in
distinct
command by @b1ron in FerretDB#2658 - Fix path collisions for multiple update operators by @noisersup in FerretDB#2713
- Fix
_id
formatting in update error messages by @noisersup in FerretDB#2711
- Add release blog post for FerretDB version 1.2.0 by @Fashander in FerretDB#2686
- Update
$project
in Supported Commands by @Fashander in FerretDB#2710 - Add formatter for markdown tables by @rumyantseva in FerretDB#2693
- Reformat and lint more documentation files by @AlekSi in FerretDB#2740
- Document aggregation operations by @Fashander in FerretDB#2672
- Improve authentication documentation by @chilagrow in FerretDB#2737
- Refactor
gitBinaryMaskParam
function by @w84thesun in FerretDB#2634 - Add
distinct
command errors test by @w84thesun in FerretDB#2687 - Clarify what's left in handling OP_MSG checksum by @rumyantseva in FerretDB#2677
- Return a better error for authentication problems by @AlekSi in FerretDB#2703
- Aggregation operators refactor by @noisersup in FerretDB#2664
- Implement
envtool version
command by @jeremyphua in FerretDB#2714 - Make
go test -list=.
work by @AlekSi in FerretDB#2718 - Include Hana in integration tests by @polyal in FerretDB#2715
- Bump deps by @AlekSi in FerretDB#2702
- Add
logout
test for all backend by @chilagrow in FerretDB#2726 - Fix telemetry reporter logging by @AlekSi in FerretDB#2707
- Add supported aggregations to the
buildInfo
output by @kropidlowsky in FerretDB#2716 - Add aggregation operator tests by @chilagrow in FerretDB#2724
- Add more consistency to table tests' field names by @rumyantseva in FerretDB#2717
- Don't use
sjson.GetTypeOfValue
where it shouldn't be used by @noisersup in FerretDB#2728 - Unify test file names by @w84thesun in FerretDB#2709
- Make
testFindAndModifyCompat
work withcompatTestCaseResultType
by @rumyantseva in FerretDB#2739 - Bump deps by @AlekSi in FerretDB#2745
- Call
ListSpecifications
driver's method in tests to check indexes by @rumyantseva in FerretDB#2746 - Simplify
CountIterator
by @AlekSi in FerretDB#2759 - Check for
nil
values in iterators explicitly by @AlekSi in FerretDB#2758 - Trigger GC to run finalizers by @AlekSi in FerretDB#2771
- Update
golangci-lint
config by @AlekSi in FerretDB#2772 - Remove the need to call
DeepCopy
in some places by @AlekSi in FerretDB#2774 - Clean-up
lazyerrors
, use them in more places by @AlekSi in FerretDB#2770 - Replace document slices with iterators by @noisersup in FerretDB#2730
- Fix
findAndModify
tests for MongoDB 6.0.6 by @chilagrow in FerretDB#2779 - Implement a few command stubs by @AlekSi in FerretDB#2777
- Add more handler tests by @w84thesun in FerretDB#2769
- Remove
findAndModify
integration tests with$
prefixed key for MongoDB 6.0.6 compatibility by @chilagrow in FerretDB#2785
- @jeremyphua made their first contribution in FerretDB#2714
All closed issues and pull requests. All commits.
v1.2.1 (2023-05-24)
- Fix reporting of updates availability by @rumyantseva in FerretDB#2653
- Return a better error for authentication problems by @AlekSi in FerretDB#2703
All closed issues and pull requests. All commits.
v1.2.0 (2023-05-22)
This release includes a highly experimental and unsupported SQLite backend. It will be improved in future releases.
- Fix compatibility with C# driver by @b1ron in FerretDB#2613
- Fix a bug with unset field sorting by @rumyantseva in FerretDB#2638
- Return
int64
values fordbStats
andcollStats
by @AlekSi in FerretDB#2642 - Return command error from
findAndModify
by @chilagrow in FerretDB#2646 - Fix index creation on nested fields by @wqhhust in FerretDB#2637
- Perform
insertMany
in a single transaction by @raeidish in FerretDB#2532 - Relax PostgreSQL connection checks by @AlekSi in FerretDB#2602
- Cleanup
insert
command by @noisersup in FerretDB#2609 - Support dot notation in projection by @chilagrow in FerretDB#2536
- Add FerretDB v1.1.0 release blog post by @Fashander in FerretDB#2594
- Update blog post image for 1.1.0 by @AlekSi in FerretDB#2601
- Add documentation for
.rpm
packages by @AlekSi in FerretDB#2604 - Fix a typo in a blog post by @AlekSi in FerretDB#2611
- Fix typo on RPM package file name by @christiano in FerretDB#2628
- Update documentation formatting by @AlekSi in FerretDB#2640
- Add blog post on "Meteor and FerretDB" by @Fashander in FerretDB#2654
- Bump deps by @AlekSi in FerretDB#2592
- Remove
TODO
comment for closed issue by @adetunjii in FerretDB#2573 - Add experimental integration test flag for pushdown sorting by @noisersup in FerretDB#2595
- Extract handler parameters from corresponding structure by @w84thesun in FerretDB#2513
- Add
shell
subcommands (mkdir
,rmdir
) inenvtool
by @kropidlowsky in FerretDB#2596 - Add basic postcondition checker for errors by @AlekSi in FerretDB#2607
- Add
sqlite
handler stub by @AlekSi in FerretDB#2608 - Make protocol-level crashes easier to understand by @AlekSi in FerretDB#2610
- Simplify
envtool shell
subcommands by @AlekSi in FerretDB#2614 - Cleanup old Docker images by @wqhhust in FerretDB#2533
- Fix exponential backoff minimum duration by @noisersup in FerretDB#2578
- Fix
count
'squery
parameter by @w84thesun in FerretDB#2622 - Add a README.md file for assertions by @b1ron in FerretDB#2569
- Use
ExtractParameters
in handlers by @w84thesun in FerretDB#2620 - Verify
OP_MSG
message checksum by @adetunjii in FerretDB#2540 - Separate codebase for aggregation
$project
and queryprojection
by @chilagrow in FerretDB#2631 - Implement
envtool shell read
subcommand by @wqhhust in FerretDB#2626 - Cleanup projection by @chilagrow in FerretDB#2641
- Add common backend interface prototype by @AlekSi in FerretDB#2619
- Add SQLite handler flags by @AlekSi in FerretDB#2651
- Add tests for aggregation expressions with dots in
$group
aggregation stage by @rumyantseva in FerretDB#2636 - Implement some SQLite backend commands by @AlekSi in FerretDB#2655
- Fix tests to assert correct error by @chilagrow in FerretDB#2546
- Aggregation expression refactor by @noisersup in FerretDB#2644
- Move common commands to
commoncommands
by @AlekSi in FerretDB#2660 - Add basic observability into backend interfaces by @AlekSi in FerretDB#2661
- Implement metadata storage by @w84thesun in FerretDB#2656
- Add
Query
to the common backend interface by @AlekSi in FerretDB#2662 - Implement query request for SQLite backend by @w84thesun in FerretDB#2665
- Add test case for read in envtools by @wqhhust in FerretDB#2657
- Run integration tests for
sqlite
handler by @AlekSi in FerretDB#2666 - Bump deps by @AlekSi in FerretDB#2671
- Create SQLite directory if needed by @AlekSi in FerretDB#2673
- Implement SQLite
update
anddelete
commands by @w84thesun in FerretDB#2674
- @adetunjii made their first contribution in FerretDB#2573
- @christiano made their first contribution in FerretDB#2628
All closed issues and pull requests. All commits.
v1.1.0 (2023-05-09)
- Implement projection fields assignment by @w84thesun in FerretDB#2484
- Implement
$project
pipeline aggregation stage by @w84thesun in FerretDB#2383 - Handle
create
anddrop
commands in Hana handler by @polyal in FerretDB#2458 - Implement
renameCollection
command by @b1ron in FerretDB#2343
- Fix
findAndModify
for$exists
query operator by @chilagrow in FerretDB#2385 - Fix
SchemaStats
to return correct data by @rumyantseva in FerretDB#2426 - Fix
findAndModify
for$set
operator setting_id
by @chilagrow in FerretDB#2507 - Fix
update
for conflicting dot notation paths by @chilagrow in FerretDB#2521 - Fix
$
path errors for sort by @chilagrow in FerretDB#2534 - Fix empty projections panic by @w84thesun in FerretDB#2562
- Fix
runCommand
's inserts of documents without_id
s by @kropidlowsky in FerretDB#2574
- Validate
scale
param fordbStats
andcollStats
correctly by @rumyantseva in FerretDB#2418 - Allow database name contain uppercase characters by @syasyayas in FerretDB#2504
- Add identifying Arch Linux version in
hostInfo
command by @kropidlowsky in FerretDB#2525 - Handle absent
os-release
file by @kropidlowsky in FerretDB#2541 - Improve handling of
os-release
files by @kropidlowsky in FerretDB#2553
- Document test script by @chilagrow in FerretDB#2353
- Use
draft
instead ofunlisted
by @AlekSi in FerretDB#2372 - Make example docker compose file restart on failure by @noisersup in FerretDB#2376
- Document how to get logs by @chilagrow in FerretDB#2355
- Update writing guide by @Fashander in FerretDB#2373
- Add comments to our documentation workflow by @AlekSi in FerretDB#2390
- Add blogpost: Announcing FerretDB 1.0 GA - a truly Open Source MongoDB alternative by @AlekSi in FerretDB#2397
- Update documentation for index options by @AlekSi in FerretDB#2417
- Add query pushdown documentation by @noisersup in FerretDB#2339
- Update README.md to link to SSPL by @cooljeanius in FerretDB#2420
- Improve documentation for Docker by @AlekSi in FerretDB#2396
- Add more detailed PR guides in CONTRIBUTING.md by @AuruTus in FerretDB#2435
- Remove a few double spaces by @AlekSi in FerretDB#2431
- Add image for a future blog post by @AlekSi in FerretDB#2453
- Add blogpost - Using FerretDB with Studio 3T by @AlekSi in FerretDB#2454
- Fix YAML indentation by @AlekSi in FerretDB#2455
- Update blog post on Using FerretDB with Studio3T by @Fashander in FerretDB#2457
- Document
createIndexes
,listIndexes
, anddropIndexes
commands by @Fashander in FerretDB#2488
- Allow setting "package" variable with a testing flag by @AlekSi in FerretDB#2357
- Make it easier to use Docker-related Task targets by @AlekSi in FerretDB#2358
- Do not mark released binaries as dirty by @AlekSi in FerretDB#2371
- Make Docker Compose flags compatible by @AlekSi in FerretDB#2377
- Bump dependencies by @AlekSi in FerretDB#2367
- Fix version.txt generation for git tags by @AlekSi in FerretDB#2388
- Fix types order linter by @AlekSi in FerretDB#2391
- Cleanup deprecated errors by @chilagrow in FerretDB#2411
- Bump deps by @AlekSi in FerretDB#2408
- Use parallel tests consistently by @chilagrow in FerretDB#2409
- Compress CI artifacts by @noisersup in FerretDB#2424
- Use exponential backoff with jitter by @j0holo in FerretDB#2419
- Add Mergify rules for blog posts by @AlekSi in FerretDB#2434
- Migrate to
pgx/v5
by @craigpastro in FerretDB#2439 - Make it harder to misuse iterators by @AlekSi in FerretDB#2428
- Update PR template by @AlekSi in FerretDB#2441
- Rename testing flag by @AlekSi in FerretDB#2437
- Fix compilation on riscv64 by @afiskon in FerretDB#2456
- Cleanup exponential backoff with jitter by @chilagrow in FerretDB#2443
- Add workaround for CockroachDB issue by @AlekSi in FerretDB#2464
- Implement blog posts previews by @noisersup in FerretDB#2433
- Introduce integration benchmarks by @noisersup in FerretDB#2381
- Add tests to findAndModify on
$exists
operator by @chilagrow in FerretDB#2422 - Bump deps by @AlekSi in FerretDB#2479
- Refactor aggregation by @chilagrow in FerretDB#2463
- Tweak documentation by @AlekSi in FerretDB#2452
- Fix query projection for top level fields by @w84thesun in FerretDB#2386
- Handle
envtool
panic on timeout by @syasyayas in FerretDB#2499 - Enable debugging tracing of SQL queries by @craigpastro in FerretDB#2467
- Update blog file names to match with slug by @chilagrow in FerretDB#2497
- Add benchmark for replacing large document by @noisersup in FerretDB#2482
- Add more documentation-related items to definition of done by @rumyantseva in FerretDB#2494
- Return unsupported operator error for
$
projection operator by @w84thesun in FerretDB#2512 - Use
update_available
from Beacon by @chilagrow in FerretDB#2496 - Use iterator in aggregation stages by @chilagrow in FerretDB#2480
- Increase timeout for tests by @rumyantseva in FerretDB#2508
- Add
InsertMany
benchmark by @raeidish in FerretDB#2518 - Add coveralls.io integration by @noisersup in FerretDB#2483
- Add linter for checking blog posts by @raeidish in FerretDB#2459
- Add a YAML formatter by @wqhhust in FerretDB#2485
- Fix
collStats
for Tigris by @rumyantseva in FerretDB#2520 - Small addition to YAML formatter usage by @rumyantseva in FerretDB#2524
- Cleanup of blog post linter for slug by @chilagrow in FerretDB#2526
- Pushdown simplest sorting for
find
command by @noisersup in FerretDB#2506 - Move
handlers/pg/pjson
tohandlers/sjson
by @craigpastro in FerretDB#2531 - Check test database name length in compat test setup by @chilagrow in FerretDB#2527
- Document
not ready
issues label by @AlekSi in FerretDB#2544 - Remove version and name assertions in integration tests by @raeidish in FerretDB#2552
- Add helpers for iterators and generators by @AlekSi in FerretDB#2542
- Do various small cleanups by @AlekSi in FerretDB#2561
- Pushdown simplest sorting for
aggregate
command by @noisersup in FerretDB#2530 - Move handlers parameters to common by @w84thesun in FerretDB#2529
- Use our own Prettier Docker image by @AlekSi in FerretDB#2535
- Improve fuzzing with recorded seed data by @fenogentov in FerretDB#2392
- Add proper CLI to
envtool
-envtool setup
subcommand by @kropidlowsky in FerretDB#2570 - Recover from more errors, close connection less often by @AlekSi in FerretDB#2564
- Tweak issue templates and contributing docs by @AlekSi in FerretDB#2572
- Refactor integration benchmarks by @AlekSi in FerretDB#2537
- Do panic in integration tests if connection can't be established by @rumyantseva in FerretDB#2577
- Small refactoring by @AlekSi in FerretDB#2575
- Merge
no ci
label intonot ready
by @AlekSi in FerretDB#2580
- @cooljeanius made their first contribution in FerretDB#2420
- @j0holo made their first contribution in FerretDB#2419
- @AuruTus made their first contribution in FerretDB#2435
- @craigpastro made their first contribution in FerretDB#2439
- @afiskon made their first contribution in FerretDB#2456
- @syasyayas made their first contribution in FerretDB#2499
- @raeidish made their first contribution in FerretDB#2518
- @polyal made their first contribution in FerretDB#2458
- @wqhhust made their first contribution in FerretDB#2485
All closed issues and pull requests. All commits.
v1.0.0 (2023-04-03)
We are delighted to announce the release of FerretDB 1.0 GA!
- Support
$sum
accumulator of$group
aggregation by @chilagrow in FerretDB#2292 - Implement
createIndexes
command by @rumyantseva in FerretDB#2244 - Add basic
getMore
command by @AlekSi in FerretDB#2309 - Implement
dropIndexes
command by @chilagrow in FerretDB#2313 - Implement
$limit
aggregation pipeline stage by @noisersup in FerretDB#2270 - Add partial support for
collStats
,dbStats
anddataSize
by @AlekSi in FerretDB#2322 - Implement
$skip
aggregation pipeline stage by @w84thesun in FerretDB#2310 - Implement
$unwind
aggregation pipeline stage by @noisersup in FerretDB#2294 - Support
count
andstorageStats
fields in$collStats
aggregation pipeline stage by @rumyantseva in FerretDB#2338
- Fix dot notation negative index errors by @w84thesun in FerretDB#2246
- Apply
skip
beforelimit
by @AlekSi in FerretDB#2351
- Update supported command for
$sum
aggregation operator by @chilagrow in FerretDB#2318 - Add supported shells and GUIs images by @AlekSi in FerretDB#2323
- Publish FerretDB v0.9.4 blog post by @Fashander in FerretDB#2268
- Use dashes instead of underscores or spaces by @AlekSi in FerretDB#2329
- Update documentation sidebar by @Fashander in FerretDB#2347
- Update FerretDB descriptions by @AlekSi in FerretDB#2281
- Improve flags documentation by @AlekSi in FerretDB#2331
- Describe supported fields for
$collStats
aggregation stage by @rumyantseva in FerretDB#2352
- Use iterators for
sort
,limit
,skip
, andprojection
by @AlekSi in FerretDB#2254 - Bump dependencies by @AlekSi in FerretDB#2307
- Improve resource tracking by @AlekSi in FerretDB#2319
- Add tests for
find
's andcount
'sskip
argument by @w84thesun in FerretDB#2325 - Close iterator properly by @AlekSi in FerretDB#2333
- Improve large numbers initialization in test data by @noisersup in FerretDB#2324
- Ignore
unique
index option for now by @AlekSi in FerretDB#2350
All closed issues and pull requests. All commits.
See https://github.com/FerretDB/FerretDB/blob/v1.0.0/CHANGELOG.md.