v0.8.1 (2023-01-16)
- Report availability of newer versions in mongosh by @noisersup in FerretDB#1738
- Implement
distinct
command by @rumyantseva in FerretDB#1739 - Validate client's TLS certificate when root CA certificate is provided by @w84thesun in FerretDB#1740
- Support
$rename
field update operator by @noisersup in FerretDB#1753 - Enable support for arrays in Tigris by @rumyantseva in FerretDB#1778
- Fix filterering in
distinct
for Tigris handler by @rumyantseva in FerretDB#1766
- Add
findandmodify
to thecommon.Commands
map by @b1ron in FerretDB#1730
- Add documentation about CLI flags and environment variables by @noisersup in FerretDB#1737
- Prepare configuration and data for docusaurus-based blog by @Fashander in FerretDB#1756
- Fix links from docs to blog by @rumyantseva in FerretDB#1794
- Reformat documentation by @AlekSi in FerretDB#1792
- Add comments about Git LFS and
lfs-warning
by @AlekSi in FerretDB#1798
- Support arrays in
tjson
by @rumyantseva in FerretDB#1721 - Move $mod to compat test by @chilagrow in FerretDB#1748
- Skip incompatible tests on
arm64
by @rumyantseva in FerretDB#1770 - Minor cleanups by @AlekSi in FerretDB#1786
- Bump deps by @AlekSi in FerretDB#1785
- Build Docker images for tags by @AlekSi in FerretDB#1788
All closed issues and pull requests. All commits.
v0.8.0 (2023-01-02)
We are pleased to announce our first Beta release!
We made a few backward-incompatible changes in the way we store data in PostgreSQL to improve FerretDB performance. In the future, those changes will allow us to use indexes and query collections faster.
To keep your data:
- backup FerretDB databases using
mongodump
ormongoexport
; - backup PostgreSQL database using
pg_dump
or other tool (just in case); - stop FerretDB;
- drop PostgreSQL views for FerretDB databases;
- start FerretDB 0.8;
- restore databases using
mongorestore
ormongoimport
.
It is now possible to use the backend's authentication mechanisms in FerretDB. See documentation.
- Support
$min
field update operator by @chilagrow in FerretDB#1652 - Support
ordered
argument forinsert
command by @noisersup in FerretDB#1673 - Implement authentication for PostgreSQL by @AlekSi in FerretDB#1725
- Fix unset document being updated by invalid value of
$inc
by @chilagrow in FerretDB#1685
- Update building documentation by @AlekSi in FerretDB#1713
- Add section for comparison and logical query operators by @Fashander in FerretDB#1647
- Add documentation for element query operators by @Fashander in FerretDB#1675
- Add documentation for array query operator by @Fashander in FerretDB#1695
- Enable blog post section by @Fashander in FerretDB#1700
- Simplify release procedure by @AlekSi in FerretDB#1657
- Modify
pjson
format by @rumyantseva in FerretDB#1620 - Bump deps by @AlekSi in FerretDB#1664
- Remove leading space from
SELECT
queries by @noisersup in FerretDB#1665 - Add
InTransactionRetry
helper by @rumyantseva in FerretDB#1670 - Add
mongo
test script example by @AlekSi in FerretDB#1600 - Use faster runner instances by @AlekSi in FerretDB#1678
- Update issue templates by @w84thesun in FerretDB#1671
- Bump Tigris version by @AlekSi in FerretDB#1680
- Move update tests to compat tests by @chilagrow in FerretDB#1659
- Add TODO comments by @AlekSi in FerretDB#1687
- Add
saslStart
stub by @w84thesun in FerretDB#1649 - Improve the way of storing data about collections by @rumyantseva in FerretDB#1650
- Implement
iterator.Interface
fortypes.Document
andtypes.Array
by @w84thesun in FerretDB#1683 - Improve issue template by @AlekSi in FerretDB#1692
- Remove
$elemMatch
and$slice
projection operators by @chilagrow in FerretDB#1698 - Add
currentOp
stub by @chilagrow in FerretDB#1708 - Add basic benchmark for query pushdowns by @noisersup in FerretDB#1689
- Enable authentication in PostgreSQL by @AlekSi in FerretDB#1716
- Fix Docker build by @AlekSi in FerretDB#1715
- Minor refactorings of iterators by @AlekSi in FerretDB#1718
- Test
ordered
argument validation by @rumyantseva in FerretDB#1719 - Add stub for getting client-specific connection by @AlekSi in FerretDB#1723
- Add compat tests for
InsertOne
in addition toInsertMany
by @rumyantseva in FerretDB#1726 - Run
govulncheck
on CI by @noisersup in FerretDB#1729
All closed issues and pull requests. All commits.
v0.7.1 (2022-12-19)
- Add basic TLS support by @w84thesun in FerretDB#1586
- Add
validate
command stub by @AlekSi in FerretDB#1645
- Fix parsing of
OP_MSG
packets with multiple sections by @b1ron in FerretDB#1611 - Fix parsing of
OP_MSG
packets with multiple sections by @AlekSi in FerretDB#1633 - Fix comparison with unset fields by @chilagrow in FerretDB#1634
- Compare documents by @chilagrow in FerretDB#1597
- Infinity values are not allowed in documents by @rumyantseva in FerretDB#1622
- Bump deps by @AlekSi in FerretDB#1609
- Update release checklist by @AlekSi in FerretDB#1621
- Compare unit tests for edge cases by @chilagrow in FerretDB#1624
- Bump Go and other deps by @AlekSi in FerretDB#1629
- Refactor integration tests setup functions by @w84thesun in FerretDB#1625
- Fix
.deb
/.rpm
package testing by @AlekSi in FerretDB#1631 - Bump
golang.org/x/net
by @AlekSi in FerretDB#1640 - Introduce schema for
pjson
format by @rumyantseva in FerretDB#1635 - Use TLS for MongoDB in integration tests by @w84thesun in FerretDB#1623
- Bump deps by @AlekSi in FerretDB#1644
- Bump Tigris deps by @AlekSi in FerretDB#1651
- Remove Incomparable by @chilagrow in FerretDB#1646
All closed issues and pull requests. All commits.
v0.7.0 (2022-12-05)
- Add
msg_explain
implementation for Tigris by @w84thesun in FerretDB#1574 - Add
filter
support tolistCollections
by @AlekSi in FerretDB#1567
- Fix parallel collection inserts for PostgreSQL by @noisersup in FerretDB#1513
- Fix validation for documents with duplicate keys by @rumyantseva in FerretDB#1602
- Fix greater and less operators on array value comparison by @chilagrow in FerretDB#1585
- Downgrade min wire protocol version to 13 / 5.0 by @AlekSi in FerretDB#1571
- Make default telemetry state a bit more clear by @AlekSi in FerretDB#1561
- Add documents validation to
wire
package by @w84thesun in FerretDB#1401 - Allow
-
in database names by @w84thesun in FerretDB#1582 - Support more default
find
parameters by @AlekSi in FerretDB#1588
- Add authentication and role management commands to the docs by @b1ron in FerretDB#1527
- Add section for diagnostic command
buildInfo
andcollStats
by @Fashander in FerretDB#1480 - Add session and free monitoring commands to the docs by @b1ron in FerretDB#1546
- Add Mastodon links by @AlekSi in FerretDB#1555
- Add glossary section to documentation by @Fashander in FerretDB#1583
- Simplify array comparison, remove
[]CompareResult
by @chilagrow in FerretDB#1499 - Disable CockroachDB on GitHub Actions by @rumyantseva in FerretDB#1524
- Add placeholder for testing scripts by @AlekSi in FerretDB#1525
- Add path to record loading error message by @AlekSi in FerretDB#1543
- Move array query tests to compat tests by @chilagrow in FerretDB#1526
- Move
_id
field check to separate function by @w84thesun in FerretDB#1544 - Bump deps by @AlekSi in FerretDB#1562
- Implement
listIndexes
command stub by @noisersup in FerretDB#1565 - Do not record partial files by @AlekSi in FerretDB#1566
- Sync label descriptions and issue templates by @AlekSi in FerretDB#1573
- Auto-merge is required now by @AlekSi in FerretDB#1563
- Move more query tests to compat and change filter bad value check order by @chilagrow in FerretDB#1560
- Move more tests to compat query tests by @chilagrow in FerretDB#1570
- Fix test names to make them more consistent by @noisersup in FerretDB#1575
- Update documentation for types, add aliases by @AlekSi in FerretDB#1580
- Simplify documents fetching for the
count
operator by @rumyantseva in FerretDB#1487 - Simplify documents fetching for
delete
by @rumyantseva in FerretDB#1584 - Fix
listIndexes
stub by @noisersup in FerretDB#1591 - Move query tests to compat by comparing the error code instead of the error message by @chilagrow in FerretDB#1579
- Add TODOs by @AlekSi in FerretDB#1595
- Simplify documents fetching for
find
,findAndModify
, andupdate
by @rumyantseva in FerretDB#1538 - Improve
iterator.Interface
implementation inpgdb.queryIterator
by @rumyantseva in FerretDB#1592 - Refactor
pg
'sMsgListDatabases
andpgdb
by @rumyantseva in FerretDB#1596 - Fix
Conform PR
workflow by @AlekSi in FerretDB#1599 - Improve
envtool
by @AlekSi in FerretDB#1598 - Replace
docker-compose
withdocker compose
by @AlekSi in FerretDB#1606 - Add test certificates by @AlekSi in FerretDB#1612
All closed issues and pull requests. All commits.
v0.6.2 (2022-11-21)
- Provide builds for
linux/arm/v7
by @AlekSi in FerretDB#1377 - Implement
enableFreeMonitoring
,disableFreeMonitoring
andgetFreeMonitoringStatus
commands by @noisersup in FerretDB#1380
- Fix
SchemaStats
to return empty stats by @w84thesun in FerretDB#1359 - Fix issues for the Unix listener by @chilagrow in FerretDB#1397
- Tweak supported wire protocol versions by @AlekSi in FerretDB#1261
- Add more
NewCommandErrorMsgWithArgument
calls by @noisersup in FerretDB#1358 - Use environment variables for configuration by @AlekSi in FerretDB#1383
- Add missing locks when update settings table by @rumyantseva in FerretDB#1381
- Make telemetry page visible in documentation sidebar by @Fashander in FerretDB#1393
- Add documentation for dot notation in arrays, objects, and embedded documents by @Fashander in FerretDB#1382
- Start supported commands table by @AlekSi in FerretDB#1406
- Add aggregation section (collection stages) to the docs by @rumyantseva in FerretDB#1411
- Add query and write operation commands to the docs by @b1ron in FerretDB#1409
- Add aggregation section (database stages, operators) to the docs by @rumyantseva in FerretDB#1448
- Use colored emoji by @AlekSi in FerretDB#1485
- Add update operators to the docs by @b1ron in FerretDB#1481
- Reorganize a list of supported commands by @AlekSi in FerretDB#1490
- Add changelog draft by @AlekSi in FerretDB#1479
- Add user management commands to the docs by @b1ron in FerretDB#1489
- Fix information about
delete
'scomment
argument inside "supported commands" reference by @noisersup in FerretDB#1498 - Add query plan cache commands to the docs by @b1ron in FerretDB#1501
- Add documentation for embedded/nested documents query by @Fashander in FerretDB#1478
- Do not cancel in-progress CI runs by @AlekSi in FerretDB#1378
- Sync and update golangci-lint configurations by @AlekSi in FerretDB#1205
- Bump deps by @AlekSi in FerretDB#1400
- Restructure text, add unestimated tasks by @AlekSi in FerretDB#1374
- Ignore website problems for now by @AlekSi in FerretDB#1404
- Use lowercase directory names by @AlekSi in FerretDB#1408
- Minor telemetry cleanup by @AlekSi in FerretDB#1446
- Bump deps by @AlekSi in FerretDB#1477
- Allow duplicates in
bson
documents by @rumyantseva in FerretDB#1391 - Implement
debugError
command by @noisersup in FerretDB#1402 - Update some TODOs by @AlekSi in FerretDB#1452
- Record integration tests connections by @AlekSi in FerretDB#1482
- Enable more
textlint
rules by @AlekSi in FerretDB#1484 - Use
primitive.Regex
to test that regex_id
is not allowed by @rumyantseva in FerretDB#1486 - Bump Tigris version by @AlekSi in FerretDB#1379
- Use
-
in test collection names by @AlekSi in FerretDB#1325
- @b1ron made their first contribution in FerretDB#1409
All closed issues and pull requests. All commits.
v0.6.1 (2022-11-07)
- Deprecate dotted fields in data documents by @w84thesun in FerretDB#1313
- Forbid regex types and arrays in document's
_id
field by @noisersup in FerretDB#1326 - Make users know about telemetry via
startupWarnings
by @rumyantseva in FerretDB#1336 - Deprecate nested arrays by @w84thesun in FerretDB#1334
- Fix syntax highlighting by @AlekSi in FerretDB#1340
- Add text for empty pages by @Fashander in FerretDB#1338
- Update dark and light theme logo for documentation by @Fashander in FerretDB#1368
- Add documentation for configuring telemetry service by @Fashander in FerretDB#1342
- Bump deps by @AlekSi in FerretDB#1337
- Switch from
markdownlint-cli
tomarkdownlint-cli2
by @codingmickey in FerretDB#1319 - A minor clarification about diff tests by @AlekSi in FerretDB#1339
- Add stress tests for
SchemaStats
by @rumyantseva in FerretDB#1318 - Do not compare error strings by @AlekSi in FerretDB#1344
- Add stress tests for settings table and fix simple issues with transactions by @rumyantseva in FerretDB#1316
- Cleanup compat tests by @AlekSi in FerretDB#1345
- Fix ignore patterns for tools by @AlekSi in FerretDB#1349
- Use pre-built textlint image by @AlekSi in FerretDB#1366
- Use pre-built Docusaurus image by @AlekSi in FerretDB#1365
- Bump deps by @AlekSi in FerretDB#1367
- Add "_id" string to linter exceptions by @w84thesun in FerretDB#1364
- Remove extra
nolint
directives by @AlekSi in FerretDB#1348 - Setup
lfs-warning
GitHub Action check by @ndkhangvl in FerretDB#1371 - Bump Tigris by @AlekSi in FerretDB#1372
- Remove unsupported NaN and Inf from pjson package documentation by @chilagrow in FerretDB#1373
- @codingmickey made their first contribution in FerretDB#1319
- @ndkhangvl made their first contribution in FerretDB#1371
All closed issues and pull requests. All commits.
v0.6.0 (2022-10-27)
We are pleased to announce our first Alpha release!
- Support
$max
field update operator by @noisersup in FerretDB#1124 - Migrate FerretDB to Kong by @noisersup in FerretDB#1184
- Make embedded FerretDB's address configurable by @AlekSi in FerretDB#1199
tjson
: Supportnull
by @rumyantseva in FerretDB#1005- Add simple query pushdown for PostgreSQL by @w84thesun in FerretDB#1207
- Run tests on CockroachDB by @noisersup in FerretDB#1260
- Add support for Unix domain sockets by @zhiburt in FerretDB#1214
- Add basic telemetry by @AlekSi in FerretDB#1299
- Deprecate infinity values in data documents by @noisersup in FerretDB#1296
- Explicitly disallow duplicate keys in data documents by @rumyantseva in FerretDB#1293
- Allow empty document field names by @AlekSi in FerretDB#1196
- Fix test helpers for the
nil
case by @rumyantseva in FerretDB#1241 - Fix error messages for invalid
$and
/$or
/$nor
arguments by @ronaudinho in FerretDB#1234 - Fix
explain
command by @w84thesun in FerretDB#1294 - Fix
tjson
schema unmarshalling by @AlekSi in FerretDB#1304
- Add support for Tigris auth parameters by @AlekSi in FerretDB#1177
- Use single transaction per
msg_insert
request by @rumyantseva in FerretDB#1213 - Improve
buildInfo
andserverStatus
commands by @AlekSi in FerretDB#1197 - Add UUID to log messages by @AlekSi in FerretDB#1208
- Add update operators data document fields order test by @w84thesun in FerretDB#1238
- Add UUID to Prometheus metrics if requested by @AlekSi in FerretDB#1240
- Add simplest validation to check data documents by @rumyantseva in FerretDB#1246
- Add βmetricsβ section to
serverStatus
response by @noisersup in FerretDB#1231 - Call data document validation when insert or update documents in Tigris by @rumyantseva in FerretDB#1290
- Add support for empty command documents by @w84thesun in FerretDB#1277
- Make
_id
field required in data documents by @noisersup in FerretDB#1278 - Add more ways to disable telemetry by @AlekSi in FerretDB#1311
- Allow dashes (
-
) in collection names by @noisersup in FerretDB#1312 - Collect command metrics in telemetry by @AlekSi in FerretDB#1327
- Include info about unimplemented arguments by @AlekSi in FerretDB#1330
- Update introduction documentation by @Fashander in FerretDB#1174
- Add local search plugin by @AlekSi in FerretDB#1178
- Setup documentation search by @Fashander in FerretDB#1180
- DRY known differences documentation by @AlekSi in FerretDB#1181
- Documentation website tweaks by @AlekSi in FerretDB#1183
- Documentation for contributors by @Fashander in FerretDB#1194
- Add "CRUD operations" and "Understanding FerretDB" sections by @Fashander in FerretDB#1232
- Add documentation for the
.deb
package usage by @Fashander in FerretDB#1267
- Use transactions in more
pgdb
functions by @AlekSi in FerretDB#1157 - Add
task
targets for offline work by @AlekSi in FerretDB#1171 - Bump deps by @AlekSi in FerretDB#1175
- Fuzz
wire
package with recorded data by @noisersup in FerretDB#1168 - Fix fluky test, refactor it by @AlekSi in FerretDB#1185
- Simplify / unify similar cases by @AlekSi in FerretDB#1187
- Setup Tigris test cases with explicit schemas by @rumyantseva in FerretDB#1167
- Migrate envtool to Kong by @noisersup in FerretDB#1190
- Replace
pgxtype.Querier
withpgx.Tx
by @w84thesun in FerretDB#1188 - Bump deps by @AlekSi in FerretDB#1195
- Cleanup
pgdb
SQL statements by @w84thesun in FerretDB#1193 - Run linters on integration tests folder by @ravilushqa in FerretDB#1200
- Use codecov upload token by @AlekSi in FerretDB#1204
- Add security scan by @AlekSi in FerretDB#1142
- Use single transaction per
msg_update
request by @rumyantseva in FerretDB#1212 - Use Go 1.19.2 by @AlekSi in FerretDB#1211
- Fix running
pg
andtigris
tests in parallel by @AlekSi in FerretDB#1218 - Bump deps by @AlekSi in FerretDB#1230
- Use single transaction per
msg_findandmodify
request by @rumyantseva in FerretDB#1217 - Improve
task env-data
by @AlekSi in FerretDB#1220 - Split
fjson
intopjson
andtypes/fjson
by @w84thesun in FerretDB#1219 - Use single transaction for
listDatabases
command by @rumyantseva in FerretDB#1237 - Cleanup old validation by @rumyantseva in FerretDB#1179
- Bump deps by @AlekSi in FerretDB#1245
- Update internal process docs by @AlekSi in FerretDB#1249
- Fix flag name by @AlekSi in FerretDB#1255
- Fix CLI flags for Tigris by @AlekSi in FerretDB#1256
- Remove forked
golangci-lint
by @AlekSi in FerretDB#1258 - Cleanup types/fjson package by @chilagrow in FerretDB#1254
- Minor handlers refactoring by @AlekSi in FerretDB#1264
fjson
and fuzzing cleanup by @AlekSi in FerretDB#1262- Skip
pjson
fuzzing of invalid documents for now by @AlekSi in FerretDB#1274 - Add schema-related test cases to
tjson
package by @w84thesun in FerretDB#1247 - Bump deps by @AlekSi in FerretDB#1275
- Update docs for the
dummy
handler by @AlekSi in FerretDB#1276 - Fix documentation for linking PRs and issues by @AlekSi in FerretDB#1268
- Add experimental mergify configuration by @AlekSi in FerretDB#1281
- Improve tests cleanup by @AlekSi in FerretDB#1287
- Remove implicit mergify rules by @AlekSi in FerretDB#1288
- Run CockroachDB tests on CI by @AlekSi in FerretDB#1289
- Bump cockroachdb/cockroach from v22.1.8 to v22.1.9 in /build/deps by @dependabot in FerretDB#1285
- Migrate to a newer Tigris version and fix relevant tests by @rumyantseva in FerretDB#1239
- Add ability to subscribe to state changes by @AlekSi in FerretDB#1265
- Move tjson into internal/handlers/tigris/tjson by @chilagrow in FerretDB#1291
- Fix a typo in the
types
package docs by @rumyantseva in FerretDB#1297 - Disallow usage of old context package by @AlekSi in FerretDB#1292
- Disable Unix sockets in tests for now by @AlekSi in FerretDB#1298
- Bump deps by @AlekSi in FerretDB#1309
- Expand
debugError
stub by @AlekSi in FerretDB#1303 - Add comment about
diff
tests by @AlekSi in FerretDB#1302 - Refactor handler errors by @AlekSi in FerretDB#1322
- @chilagrow made their first contribution in FerretDB#1254
- @ronaudinho made their first contribution in FerretDB#1234
- @zhiburt made their first contribution in FerretDB#1214
All closed issues and pull requests. All commits.
v0.5.4 (2022-09-22)
- Add missing
$k
to the schema when creating collection in Tigris by @rumyantseva in FerretDB#1136
- Remove docusaurus references and update documentation by @Fashander in FerretDB#1130
- Deploy documentation PRs to Vercel by @AlekSi in FerretDB#1131
- Add transaction to
msg_drop
by @w84thesun in FerretDB#1129 - Add transaction to
pg
'smsg_listcollections
by @w84thesun in FerretDB#1135 - Fix tests for Tigris by @AlekSi in FerretDB#1134
- Use fixed
-test-record
directory in Task targets by @AlekSi in FerretDB#1139 - Fix a typo in Readme by @rumyantseva in FerretDB#1141
- Use transaction in more
pgdb
functions by @AlekSi in FerretDB#1143 - Bump deps by @AlekSi in FerretDB#1158
- Use transaction in more
pgdb
functions by @AlekSi in FerretDB#1144 - Refactor
msg_delete
handlers by @w84thesun in FerretDB#1152 - Improve contributing guidelines by @AlekSi in FerretDB#1146
- Update process documentation by @AlekSi in FerretDB#1153
- Update issues and PR templates by @AlekSi in FerretDB#1155
- Fix typo by @si3nloong in FerretDB#1165
- Migrate fuzztool to Kong by @noisersup in FerretDB#1159
- @si3nloong made their first contribution in FerretDB#1165
All closed issues and pull requests. All commits.
v0.5.3 (2022-09-08)
- Add support for updates with replacement objects by @fcoury in FerretDB#791
- Add support for
$update
's$set
and$setOnInsert
operators dot notation by @w84thesun in FerretDB#1008 - Support
$pop
array update operator by @w84thesun in FerretDB#1020 - Add support for
$update
's$unset
operators dot notation by @w84thesun in FerretDB#1028 tjson
: Implementregex
by @noisersup in FerretDB#1050- Implement
MsgDataSize
for Tigris by @polldo in FerretDB#1060 - Support
ordered
argument fordelete
command by @noisersup in FerretDB#1004 - Implement simple query pushdown for Tigris by @AlekSi in FerretDB#1091
- Implement
MsgFindAndModify
for Tigris by @rumyantseva in FerretDB#1065 - implement
timestamp
type for tigris by @noisersup in FerretDB#1117
- Improve
TestCommandsAdministrationServerStatus
by @rumyantseva in FerretDB#1062 - Fix
ModifiedCount
for updates with an empty replacement document by @nicolascb in FerretDB#1067 - Fix
$inc
update
operator int64-max issue by @w84thesun in FerretDB#1071 - Handle
findAndModify
andupdate
correctly when collection doesn't exist by @noisersup in FerretDB#1087 - Require
limit
parameter indelete
command by @noisersup in FerretDB#1066
- Fix
update
operation for Tigris handler by @w84thesun in FerretDB#1041 - Collect sizes in
MsgListDatabases
for Tigris by @w84thesun in FerretDB#1043
- Add GitHub Pages with documentation by @AlekSi in FerretDB#1100
- Improve contribution guidelines and documentation website by @Fashander in FerretDB#1114
- Fix macOS spelling by @AlekSi in FerretDB#1127
- Bump deps by @AlekSi in FerretDB#1014
- Fix
Run linters
job in Taskfile.yml by @w84thesun in FerretDB#1022 - Improve and document integration tests by @AlekSi in FerretDB#1021
- Add missing
MaxTimeMS
support for Tigris by @rumyantseva in FerretDB#1026 - Expose
delete
problem by @AlekSi in FerretDB#1030 - Bump Tigris version to 1.0.0-alpha.27 by @rumyantseva in FerretDB#1032
- Bump postgres from 14.4 to 14.5 in /build/deps by @dependabot in FerretDB#1033
tjson
: Implementdatetime
by @noisersup in FerretDB#1027tjson
: Add package documentation for types mapping by @rumyantseva in FerretDB#1031- Rework database and collection creation for Tigris by @rumyantseva in FerretDB#1038
- Add a few more tests for logical query operators by @AlekSi in FerretDB#1049
- Ensure that database and collection names are unique by @AlekSi in FerretDB#1046
- Implement
MsgDBStats
for Tigris by @rumyantseva in FerretDB#1047 - Bump Tigris version to 1.0.0-alpha.29 by @rumyantseva in FerretDB#1054
- Add tests for update with replacement by @AlekSi in FerretDB#1044
- Small
pgdb
cleanup by @AlekSi in FerretDB#1055 - Bump deps by @AlekSi in FerretDB#1059
- Less strict delta for
dataSize
in tests by @rumyantseva in FerretDB#1053 - Add
collMod
command stub by @ravilushqa in FerretDB#1037 - Add a linter for Semantic Line Breaks in Markdown files by @GrandShow in FerretDB#998
- Fix data race in test by @AlekSi in FerretDB#1072
- Use
CODECOV_TOKEN
if available by @AlekSi in FerretDB#1073 - Bump dependencies by @AlekSi in FerretDB#1084
- Add integration tests for logical operators by @AlekSi in FerretDB#1085
- Implement
MsgCollStats
for Tigris by @rumyantseva in FerretDB#1063 - Implement
MsgCreate
for Tigris by @rumyantseva in FerretDB#1048 - Use npm lock files for tools by @folex in FerretDB#1093
- Bump deps by @AlekSi in FerretDB#1099
- Simplify/sync
delete
a bit by @AlekSi in FerretDB#1104 - Enable
errorlint
for new code by @AlekSi in FerretDB#1105 - Add missing TODO by @AlekSi in FerretDB#1108
- Migrate to MongoDB 6 by @AlekSi in FerretDB#1074
- Switch to Go 1.19, bump dependencies by @AlekSi in FerretDB#1123
- Record incoming data for fuzzing by @noisersup in FerretDB#1107
- Add transaction to
msg_drop_database
by @w84thesun in FerretDB#1126
- @polldo made their first contribution in FerretDB#1060
- @ravilushqa made their first contribution in FerretDB#1037
- @GrandShow made their first contribution in FerretDB#998
- @nicolascb made their first contribution in FerretDB#1067
- @folex made their first contribution in FerretDB#1093
- @Fashander made their first contribution in FerretDB#1114
All closed issues and pull requests. All commits.
v0.5.2 (2022-08-09)
- Support
comment
and$comment
update
's arguments by @noisersup in FerretDB#937 - Support
multi
update
's argument by @fcoury in FerretDB#790 - Support
comment
and$comment
findAndModify
's argument by @noisersup in FerretDB#958 - Support
comment
and$comment
delete
's arguments by @noisersup in FerretDB#954 - Support
maxTimeMS
argument forfind
andfindAndModify
methods by @DoodgeMatvey in FerretDB#608 - Add support for
update
's$inc
operator dot notation by @w84thesun in FerretDB#915
- Fix
nModified
count forupdate
's$set
operator with the same value by @w84thesun in FerretDB#949
tjson
: Fix schema comparison by @rumyantseva in FerretDB#944- Make compat error messages better by @AlekSi in FerretDB#950
- Enable
wsl
linter for new and changed code by @AlekSi in FerretDB#856 - Fix some collection names breaking
listDatabases
by @AlekSi in FerretDB#953 - Remove some tests to make next PRs smaller by @AlekSi in FerretDB#959
- Add
SkipForTigris
helper, use it by @AlekSi in FerretDB#960 - Add setup for compatibility tests by @AlekSi in FerretDB#961
- Add compatibility tests for
$and
by @AlekSi in FerretDB#963 - Bump igorshubovych/markdownlint-cli from v0.32.0 to v0.32.1 in /build/deps by @dependabot in FerretDB#955
tjson
: Check how we supportbinary
by @rumyantseva in FerretDB#967- Move logic operators tests to compatibility tests by @AlekSi in FerretDB#965
- Add compatibility tests for
$inc
by @AlekSi in FerretDB#964 - Add test case for an empty update path by @AlekSi in FerretDB#976
- Bump golang from 1.18.4 to 1.18.5 by @dependabot in FerretDB#977
- Improve Document's Path API by @w84thesun in FerretDB#973
tjson
: Add unit tests forObjectID
by @rumyantseva in FerretDB#971- Make linter to enforce our preferred types order in type switch by @fenogentov in FerretDB#654
- Add back
task env-data
by @AlekSi in FerretDB#983 - Insert test data in random order by @AlekSi in FerretDB#862
tjson
: Improve ObjectID test by @rumyantseva in FerretDB#992- Bump deps by @AlekSi in FerretDB#995
- Bump Tigris Docker image to alpha.26 by @AlekSi in FerretDB#997
- Tigris: simplify
ObjectID
and filter usage by @rumyantseva in FerretDB#968 - Add more scalar values to tests by @AlekSi in FerretDB#984
- Implement
aggregate
command stub by @AlekSi in FerretDB#981 - Reformat with Go 1.19 by @AlekSi in FerretDB#1003
tjson
: Coverdocument
(object
) type with tests by @rumyantseva in FerretDB#957- Add compatibility
delete
test for Tigris by @AlekSi in FerretDB#1002
- @fcoury made their first contribution in FerretDB#790
All closed issues and pull requests. All commits.
v0.5.1 (2022-07-26)
- Validate database names by @seeforschauer in FerretDB#913
- Support
$all
array query operator by @rumyantseva in FerretDB#724 - Support
getLog
diagnostic command by @fenogentov in FerretDB#711 - Implement
MsgCount
for Tigris by @rumyantseva in FerretDB#928 - Support
explain
diagnostic command by @seeforschauer in FerretDB#909
- Fix edge cases in
drop
anddropDatabase
handlers by @AlekSi in FerretDB#891 - Fix
ModifyCount
for update operators by @w84thesun in FerretDB#939
- Support
gt
lt
operator comparison for Array type by @ribaraka in FerretDB#819 - Optimize documents fetching / filtering by @rumyantseva in FerretDB#808
- Add test for a database name border case by @seeforschauer in FerretDB#921
- Add a tip to limit concurrent tasks by @rumyantseva in FerretDB#883
- Add a few testing helpers by @AlekSi in FerretDB#874
- Add support for
no ci
label by @AlekSi in FerretDB#876 - Bump deps by @AlekSi in FerretDB#880
- Bump golang from 1.18.3 to 1.18.4 by @dependabot in FerretDB#881
- Extract two more helpers by @AlekSi in FerretDB#875
- Set pprof label for client connections by @AlekSi in FerretDB#885
- Cancel request's context when request processed by @rumyantseva in FerretDB#884
- Simplify
dbStats
tests a bit, add TODOs by @AlekSi in FerretDB#886 - Disable logs during test setup by @AlekSi in FerretDB#888
- Use
InsertMany
instead ofInsertOne
in tests by @AlekSi in FerretDB#882 - Restart development containers faster by @AlekSi in FerretDB#889
- Cover more logic in transactions by @rumyantseva in FerretDB#887
- Disconnect client in embedded tests by @AlekSi in FerretDB#890
- Stop tests on the first data race by @AlekSi in FerretDB#893
- Wait for
Tigris
backend to be ready by @seeforschauer in FerretDB#894 - Handle
42P07
PostgreSQL error to fix the tests by @rumyantseva in FerretDB#895 - Build .rpm and .deb packages by @fenogentov in FerretDB#739
- Add setup for compatibility tests by @AlekSi in FerretDB#901
- Extract parameter list into one variable in
QueryDocuments
by @seeforschauer in FerretDB#910 - Add first compatibility tests by @AlekSi in FerretDB#863
- Use
v
instead ofvalue
in tests by @AlekSi in FerretDB#916 - Tweak codecov settings by @AlekSi in FerretDB#920
- Remove deprecated functions from
pgdb.Pool
by @seeforschauer in FerretDB#922 - Extract integration tests setup to own package by @AlekSi in FerretDB#923
- Bump deps by @AlekSi in FerretDB#927
- comment
url.Values
to prevent test failing by @noisersup in FerretDB#930 - Add a comment to the setup function about database and collection creation when provider list is empty by @seeforschauer in FerretDB#929
- Bump
golangci-lint
, remove old hacks by @AlekSi in FerretDB#932 - Fix tests for
$all
by @AlekSi in FerretDB#934 - Add Path tests by @w84thesun in FerretDB#936
- Build packages on CI by @AlekSi in FerretDB#938
- Tweak linter settings by @AlekSi in FerretDB#942
- Port and sync unit testing approach from
fjson
totjson
by @rumyantseva in FerretDB#935 - Ensure that update operators are in sync by @AlekSi in FerretDB#946
All closed issues and pull requests. All commits.
v0.5.0 (2022-07-11)
This release enables the usage of FerretDB as a Go library. See this blog post.
- Support embedded use-case by @seeforschauer in FerretDB#754
- Validate collection names by @seeforschauer in FerretDB#844
- Fix embedded usage by @AlekSi in FerretDB#798
- Fix
whatsmyuri
command by @rumyantseva in FerretDB#796 - Handle
null
value fornameOnly
inlistDatabases
handler by @DoodgeMatvey in FerretDB#738 - pgdb: cover transactions with
inTransaction
function to simplify error handling by @rumyantseva in FerretDB#833
- Support all valid collection names by @w84thesun in FerretDB#778
- Remove MongoDB driver "dependency" by @AlekSi in FerretDB#853
- Update contributing docs and PR template according to our best practices by @rumyantseva in FerretDB#779
- Update contributing documentation by @AlekSi in FerretDB#843
- Document that NUL (
\0
) strings is not supported by @w84thesun in FerretDB#865
- Tweak schedule of daily builds by @AlekSi in FerretDB#794
- Do not import
pg
handler explicitly by @AlekSi in FerretDB#799 - Add TODO item by @AlekSi in FerretDB#804
- Fix
task env-pull
target by @AlekSi in FerretDB#810 - Improve contributing documentation for Windows development by @w84thesun in FerretDB#795
- Fix Docker image build by @AlekSi in FerretDB#805
- Make it easier to trigger rebuilds by @AlekSi in FerretDB#815
- Use
github.head_ref
instead ofgithub.ref
by @AlekSi in FerretDB#814 - Bump deps by @AlekSi in FerretDB#817
- Install QEMU for building Docker images by @AlekSi in FerretDB#820
- Use multi-stage docker build by @AlphaB in FerretDB#605
- Unify
update
tests by @seeforschauer in FerretDB#809 - Add TODOs for all update operators by @AlekSi in FerretDB#832
- Add
env-data
Taskfile target by @AlekSi in FerretDB#834 - Tweak tests by @AlekSi in FerretDB#837
- Export integration tests helpers by @AlekSi in FerretDB#838
- Remove old style of
+build
tags where possible by @AlekSi in FerretDB#839 - Export fields by @AlekSi in FerretDB#840
- Update Tigris version by @AlekSi in FerretDB#841
- Create Tigris databases by @AlekSi in FerretDB#842
- Add basic CI for Tigris by @AlekSi in FerretDB#784
- Test with the
main
version of Tigris too by @AlekSi in FerretDB#846 - Wait for Tigris to be fully up by @AlekSi in FerretDB#854
- Fill MongoDB on
task env-data
too by @AlekSi in FerretDB#860 - Add CI job for short tests without environment by @AlekSi in FerretDB#855
- Add TODOs by @AlekSi in FerretDB#852
- Fix
task run
on Windows by @AlekSi in FerretDB#867 - Fix invalid variable names by @AlekSi in FerretDB#868
- Add
ferretdb_
prefix to our custom build tags by @AlekSi in FerretDB#869
All closed issues and pull requests. All commits.
v0.4.0 (2022-06-27)
This release adds preliminary support for the Tigris backend. We plan to reach parity with our PostgreSQL backend in the next release.
- Support
$setOnInsert
field update operator by @seeforschauer in FerretDB#644 - Support
$unset
field update operator by @seeforschauer in FerretDB#691 - Support
$currentDate
field update operator by @seeforschauer in FerretDB#662 - Support array querying by @w84thesun in FerretDB#618
- Support
$elemMatch
array query operator by @w84thesun in FerretDB#707 - Implement
getFreeMonitoringStatus
stub by @noisersup in FerretDB#751 - Implement
setFreeMonitoring
stub by @noisersup in FerretDB#759 - Implement
tigris
handler by @AlekSi in FerretDB#690
- Handle both
buildinfo
andbuildInfo
commands by @AlekSi in FerretDB#688 - Fix a bug with proxy response logs by @rumyantseva in FerretDB#705
- Handle
find
,count
anddelete
correctly when collection doesn't exist by @rumyantseva in FerretDB#710 - Fix default values for flags by @AlekSi in FerretDB#743
- Fix embedded array query bug by @ribaraka in FerretDB#736
- Array comparison substitution by @ribaraka in FerretDB#676
- Build
tigris
handler only if tag is present by @AlekSi in FerretDB#681 - Support getParameter's showDetails, allParameters by @fenogentov in FerretDB#606
- Make log level configurable by @fenogentov in FerretDB#687
$currentDate
Timestamp fixDateTime
seconds and milliseconds bug by @seeforschauer in FerretDB#701
- Be explicit about MongoDB version by @AlekSi in FerretDB#679
- Fix pull request template by @AlekSi in FerretDB#746
- Use
"
instead of'
in all .yml files by @AlekSi in FerretDB#675 - Add empty Tigris handler by @AlekSi in FerretDB#671
- Do not test a global list of databases in parallel by @AlekSi in FerretDB#678
- Enable
revive
linter by @seeforschauer in FerretDB#672 - More tests for dot notation support by @w84thesun in FerretDB#660
- Use circular buffer for zap logs by @fenogentov in FerretDB#585
- Fix build by @AlekSi in FerretDB#703
- Add
tjson
package by @AlekSi in FerretDB#682 - Improve function comment by @AlekSi in FerretDB#712
- Use separate encodings for ObjectID and binary by @AlekSi in FerretDB#713
- Add the default Task target by @AlekSi in FerretDB#716
- Add workaround for Dependabot by @AlekSi in FerretDB#717
- Bump deps by @AlekSi in FerretDB#723
- Always install Go and skip test cache by @AlekSi in FerretDB#718
- Bump mongo from 5.0.8 to 5.0.9 in /build/deps by @dependabot in FerretDB#719
- Better dummy handler errors by @AlekSi in FerretDB#715
- Add
task run-proxy
command by @AlekSi in FerretDB#725 - Add
Min
andMax
methods totypes.Array
by @ribaraka in FerretDB#726 - Add arrays with
NaN
,double
and nested empty array to tests' shared data by @rumyantseva in FerretDB#728 - Bump github.com/go-task/task/v3 from 3.12.1 to 3.13.0 in /tools by @dependabot in FerretDB#741
- Disable "free monitoring" to simplify tests by @AlekSi in FerretDB#748
- Re-enable
TestStatisticsCommands
tests by @seeforschauer in FerretDB#704 - Fix
lint-golangci-lint
task for Windows systems by @w84thesun in FerretDB#752 - Remove outdated comment by @AlekSi in FerretDB#755
- Skip
-race
flag on Windows by @w84thesun in FerretDB#753 - Fix fluky test by @AlekSi in FerretDB#757
tjson
improvements by @AlekSi in FerretDB#760- Unify similar code in
pg
handler by @AlekSi in FerretDB#762 - Add Tigris environment by @AlekSi in FerretDB#761
- Bump postgres from 14.3 to 14.4 in /build/deps by @dependabot in FerretDB#768
- Use forked
golangci-lint
by @AlekSi in FerretDB#758 - Update
conform-pr
action by @AlekSi in FerretDB#783 - Drop
test_db
by @AlekSi in FerretDB#788 - Add
task init-clean
target by @AlekSi in FerretDB#756 - Add
godoc
to tools by @AlekSi in FerretDB#789
- @noisersup made their first contribution in FerretDB#751
All closed issues and pull requests. All commits.
v0.3.0 (2022-06-01)
- Support
findAndModify
by @w84thesun in FerretDB#548 - Support
$inc
fieldupdate
operator by @w84thesun in FerretDB#596 - Support
$set
field update operator by @seeforschauer in FerretDB#634
- Improve negative zero handling by @AlekSi in FerretDB#613
- Added support for sorting scalar data types by @ribaraka in FerretDB#607
- Better
-0
handling in tests by @AlekSi in FerretDB#616 - Bump github.com/golangci/golangci-lint from 1.46.1 to 1.46.2 in /tools by @dependabot in FerretDB#617
- Bump PostgreSQL and MongoDB versions by @AlekSi in FerretDB#599
- Rename
OP_*
constants toOpCode*
constants by @seeforschauer in FerretDB#620 - Bump gopkg.in/yaml.v3 by @AlekSi in FerretDB#646
- Bump gopkg.in/yaml.v3 in tools by @AlekSi in FerretDB#648
- Make
Path
type by @w84thesun in FerretDB#635 - Fix incorrect test for
$mod
operator by @fenogentov in FerretDB#645 - Skip test on all ARM64 OSes by @AlekSi in FerretDB#652
- Add more visibility for the router/proxy error log levels by @rumyantseva in FerretDB#650
- Update CODEOWNERS by @AlekSi in FerretDB#655
- Sync dummy and pg handlers by @AlekSi in FerretDB#641
- Panic on unexpected order values by @AlekSi in FerretDB#668
- Add some comments to the functions and variables by @seeforschauer in FerretDB#619
- Remove dead code by @AlekSi in FerretDB#669
All closed issues and pull requests. All commits.
v0.2.1 (2022-05-17)
- Support
$slice
projection query operator by @GinGin3203 in FerretDB#518 - Support
$comment
query operator by @ribaraka in FerretDB#563 - Support basic
connectionStatus
diagnostic command by @fenogentov in FerretDB#572 - Support
$regex
evaluation query operator by @w84thesun in FerretDB#588
- Support querying documents by @w84thesun in FerretDB#573
- Improve comparison of arrays and documents by @ribaraka in FerretDB#589
- Support
getParameter
's parameters by @fenogentov in FerretDB#535 - Add stubs to make VSCode plugin work by @AlekSi in FerretDB#603
- Add conform CI workflow, improve docs by @AlekSi in FerretDB#566
- Update CONTRIBUTING.md with typo fix and a tiny correction by @rumyantseva in FerretDB#574
- Add note about forks by @AlekSi in FerretDB#575
- Bump go.mongodb.org/mongo-driver from 1.9.0 to 1.9.1 in /integration by @dependabot in FerretDB#555
- Add missing
//nolint
by @AlekSi in FerretDB#556 - Set the handler to use via a command-line flag and remove debug handlers from interface by @seeforschauer in FerretDB#534
- Add tests for
RemoveByPath
by @seeforschauer in FerretDB#549 - Add
altMessage
toAssertEqualError
by @w84thesun in FerretDB#550 - Add documentation for values comparision by @AlekSi in FerretDB#559
- Add
debug
andpanic
msg handlers toCommand
map by @seeforschauer in FerretDB#561 - Add
RemoveByPath
forArray
andCompositeTypeInterface
by @seeforschauer in FerretDB#560 - Bump docker/login-action from 1 to 2 by @dependabot in FerretDB#565
- Bump pgx version by @AlekSi in FerretDB#570
- Use
float64(x)
forok
everywhere by @AlekSi in FerretDB#577 - Improve
AssertEqualAltError
documentation by @AlekSi in FerretDB#578 - Remove
types.MustNewDocument
in some places by @AlekSi in FerretDB#579 - Remove
MustNewDocument
by @AlekSi in FerretDB#581 - Remove
MustNewArray
by @AlekSi in FerretDB#582 - Remove
MustConvertDocument
by @AlekSi in FerretDB#583 - Enable
staticcheck
by @AlekSi in FerretDB#580 - Enable
gosimple
by @AlekSi in FerretDB#584 - Change the way linters work by @AlekSi in FerretDB#586
- Merge
BigNumbersData
intoScalars
by @AlphaB in FerretDB#595 - Set
GOLANGCI_LINT_CACHE
by @AlekSi in FerretDB#597 - Increase
golangci-lint
timeout by @AlekSi in FerretDB#598 - Bump deps by @AlekSi in FerretDB#604
- @rumyantseva made their first contribution in FerretDB#574
- @AlphaB made their first contribution in FerretDB#595
All closed issues and pull requests. All commits.
v0.2.0 (2022-05-04)
This release implements all required functionality to support CLA Assistant. More details will be available shortly in our blog.
- Add support for
$nin
operator by @ribaraka in FerretDB#459 - Support querying with dot notation for documents by @GinGin3203 in FerretDB#483
- Add support for
$ne
operator by @ribaraka in FerretDB#464 - Add basic
findAndModify
implementation by @AlekSi in FerretDB#501 - Add support for
$in
operator by @ribaraka in FerretDB#499
- Fix large numbers comparision by @DoodgeMatvey in FerretDB#466
- Fix panic on receiving a filter query with unknown operator by @GinGin3203 in FerretDB#517
- Fix bitwise operators by @w84thesun in FerretDB#488
- Return better errors for unimplemented operations by @AlekSi in FerretDB#504
- Implement
nameOnly
forlistDatabases
by @AlekSi in FerretDB#524 - Improve
hostInfo
command'sos
response by @DoodgeMatvey in FerretDB#509
- Mention force pushes by @AlekSi in FerretDB#500
- Update guidelines by @seeforschauer in FerretDB#496
- Document
task env-pull
target by @AlekSi in FerretDB#528
- Stabilize tests by always sorting results by @AlekSi in FerretDB#490
- Skip one test for now by @AlekSi in FerretDB#494
- Bump MongoDB version by @AlekSi in FerretDB#495
- Use
goimports
to group imports ontask fmt
by @AlekSi in FerretDB#498 - Make default Docker arguments a bit more useful by @AlekSi in FerretDB#502
- Export helpers that will be used in other package by @AlekSi in FerretDB#505
- Correctly override
FUZZTIME
on CI by @AlekSi in FerretDB#506 - Pass context to PostgreSQL pool by @AlekSi in FerretDB#507
- Bump dependencies by @AlekSi in FerretDB#514
- Remove
Array.Subslice
method by @AlekSi in FerretDB#515 - Remove
types.CString
by @AlekSi in FerretDB#529 - Make test helpers harder to misuse by @AlekSi in FerretDB#530
- Move existing comparision code to
types
by @AlekSi in FerretDB#531 - Extract common interface for handlers by @seeforschauer in FerretDB#521
- Move all handler test to integration tests by @w84thesun in FerretDB#523
- Use
nil
errors instead of empty values by @fenogentov in FerretDB#542 - Delete old tests by @AlekSi in FerretDB#543
- Add tests for
sort
andfind
parameters type by @w84thesun in FerretDB#544
- @DoodgeMatvey made their first contribution in FerretDB#466
All closed issues and pull requests. All commits.
v0.1.1 (2022-04-19)
- Support
$gt
comparision operator by @ribaraka in FerretDB#330 - Support
$exists
element query operator by @w84thesun in FerretDB#446 - Add basic
upsert
support by @AlekSi in FerretDB#473 - Add
$type
operator by @w84thesun in FerretDB#453 - Support
$mod
evaluation query operator by @fenogentov in FerretDB#440 - Support logical operators by @w84thesun in FerretDB#465
- Ping database in some commands by @AlekSi in FerretDB#435
- Ensure that
_id
fields are always the first by @AlekSi in FerretDB#476
- Improve contributing guidelines by @AlekSi in FerretDB#480
- Integration tests improvements by @AlekSi in FerretDB#441
- Add test stub for bitwise operators by @AlekSi in FerretDB#443
- Add tests for collections
create
anddrop
by @AlekSi in FerretDB#444 - Add tests for more diagnostic commands by @AlekSi in FerretDB#448
- Transfer existing comparison tests by @ribaraka in FerretDB#445
- Move
getParameter
tests by @AlekSi in FerretDB#450 - Improve
envtool
diagnostics by @w84thesun in FerretDB#426 - Fix Postgres port check for
envtool
by @w84thesun in FerretDB#451 - Add support for
$gte
,$lt
,$lte
operators by @ribaraka in FerretDB#452 - Add tests for
null
values by @w84thesun in FerretDB#458 - Bump actions/upload-artifact from 2 to 3 by @dependabot in FerretDB#460
- Update tests for the latest mongo-driver by @AlekSi in FerretDB#463
- Rearrange tests by @AlekSi in FerretDB#467
- Do not invoke Dance tests by @AlekSi in FerretDB#468
- Minor unification of tests style by @AlekSi in FerretDB#469
- Add helpers that generate ObjectID by @AlekSi in FerretDB#474
- Add deep copy helpers by @AlekSi in FerretDB#475
- Allow the usage of proxy/diff mode in tests by @AlekSi in FerretDB#477
- Bump codecov/codecov-action from 2 to 3 by @dependabot in FerretDB#461
- Composite data type find handling by @ribaraka in FerretDB#471
- Fix failing tests by @w84thesun in FerretDB#482
- Rename
q
tofilter
in tests by @seeforschauer in FerretDB#484 - Supress linter warning by @AlekSi in FerretDB#485
All closed issues and pull requests. All commits.
v0.1.0 (2022-04-04)
In this release, we made a big change in the way FerretDB fetches data from PostgreSQL.
Previously, we generated a single SQL query that extensively used json/jsonb PostgreSQL functions for each incoming MongoDB request, then converted fetched data. All the filtering was performed by PostgreSQL. Unfortunately, the semantics of those functions do not match MongoDB behavior in edge cases like comparison or sorting of different types. That resulted in a difference in behavior between FerretDB and MongoDB, and that is a problem we wanted to fix.
So starting from this release we fetch more data from PostgreSQL and perform filtering on the FerretDB side.
This allows us to match MongoDB behavior in all cases.
Of course, that also greatly reduces performance.
We plan to address it in future releases by pushing down parts of filtering queries that can be made fully compatible with MongoDB.
For example, a simple query like db.collection.find({_id: 'some-id-value'})
can be converted to SQL WHERE
condition relatively easy and be compatible even with weird values like IEEE 754 NaNs, infinities, etc.
In short, we want FerretDB to be compatible with MongoDB first and fast second, and we are still working towards the first goal.
- Implement
$bitsAllClear
by @w84thesun in FerretDB#394 - Support
$elemMatch
projection query operator by @seeforschauer in FerretDB#383 - Support all bitwise query operators by @w84thesun in FerretDB#400
- Support
$eq
comparision operator by @ribaraka in FerretDB#309
- Fix a few issues found by fuzzing by @AlekSi in FerretDB#345
- More fixes for bugs found by fuzzing by @AlekSi in FerretDB#346
- Commands are case-sensitive by @AlekSi in FerretDB#369
- Make updates work by @AlekSi in FerretDB#385
- Handle any number type for
limit
by @AlekSi in FerretDB#399 - Fix numbers comparision by @ribaraka in FerretDB#356
- Fix finding zero documents with
FindOne
by @AlekSi in FerretDB#409 - Fix
sort
for arrays and documents by @AlekSi in FerretDB#424 - Fix pgdb helpers by @AlekSi in FerretDB#425
- Update
insert
command's help by @narqo in FerretDB#321 - Return correct error codes for projections by @seeforschauer in FerretDB#384
- Add SortDocuments by @w84thesun in FerretDB#378
- Add Docker badge by @AlekSi in FerretDB#305
- Tweak Markdown linter a bit by @AlekSi in FerretDB#393
- Remove Docker volumes on
make env-down
by @AlekSi in FerretDB#315 - Update deps by @AlekSi in FerretDB#320
- Build static binaries by @AlekSi in FerretDB#322
- Integrate with dance PRs by @AlekSi in FerretDB#324
- Bump Docker images by @AlekSi in FerretDB#325
- Bump github.com/golangci/golangci-lint from 1.44.0 to 1.44.2 in /tools by @dependabot in FerretDB#327
- Bump mvdan.cc/gofumpt from 0.2.1 to 0.3.0 in /tools by @dependabot in FerretDB#329
- Bump actions/checkout from 2 to 3 by @dependabot in FerretDB#333
- Various small cleanups by @AlekSi in FerretDB#334
- Rewrite
generate.sh
in Go by @w84thesun in FerretDB#338 - Add helper for getting required parameters by @AlekSi in FerretDB#339
- Use safe type assertions for inputs by @AlekSi in FerretDB#341
- Fix seed fuzz corpus collection by @AlekSi in FerretDB#340
- Add fuzzing tests for handlers by @AlekSi in FerretDB#328
- Add
bin/task
to tools by @AlekSi in FerretDB#349 - Add more checks for Go versions by @AlekSi in FerretDB#350
- Improve Windows tooling by @w84thesun in FerretDB#348
- Add assertions for BSON values comparision by @AlekSi in FerretDB#352
- Replace
Makefile
withTaskfile
by @w84thesun in FerretDB#358 - Fix Taskfile by @w84thesun in FerretDB#365
- Remove OS-specific Taskfiles, cleanup by @AlekSi in FerretDB#366
- Remove SQL storage by @w84thesun in FerretDB#367
- Use square brackets for nicer logs by @AlekSi in FerretDB#373
- Fix build tags by @AlekSi in FerretDB#374
- Add converter from types.Regex to regexp.Regexp by @AlekSi in FerretDB#375
- Log test failures for updates and deletes by @AlekSi in FerretDB#376
- Filter documents using Go code by @AlekSi in FerretDB#370
- Projection:
<field>: <1 or true>
and<field>: <0 or false>
by @seeforschauer in FerretDB#377 - Fix small issues after rewrite by @AlekSi in FerretDB#380
- Projection:
<field>: <1 or true>
and<field>: <0 or false>
: error messages formatting by @seeforschauer in FerretDB#382 - Bump dependecnies by @AlekSi in FerretDB#387
- Fix some fluky tests by @AlekSi in FerretDB#351
- Minor CI and build tweaks by @AlekSi in FerretDB#390
- Add Markdown linter by @fenogentov in FerretDB#386
- Do not cache modules by @AlekSi in FerretDB#392
- Fix more fluky tests by @AlekSi in FerretDB#391
- Fix the last fluky test by @AlekSi in FerretDB#395
- Allow access to actual listener's address by @AlekSi in FerretDB#397
- Add a new way to write integration tests by @AlekSi in FerretDB#389
- Move
internal/pg
tointernal/handlers/pg/pgdb
by @AlekSi in FerretDB#401 - Move
handlers/jsonb1
tohandlers/pg
by @AlekSi in FerretDB#402 - Move handler to
pg
by @AlekSi in FerretDB#403 - Move tests back for now by @AlekSi in FerretDB#404
- Use
testutil.AssertEqual
helper by @AlekSi in FerretDB#407 - Move
$size
tests to integration tests by @AlekSi in FerretDB#410 - Improve logging in integration tests by @AlekSi in FerretDB#412
- Tweak
hello
/ismaster
/isMaster
responses by @AlekSi in FerretDB#418 - Fix named loggers by @AlekSi in FerretDB#427
- Add tests for
getLog
by @AlekSi in FerretDB#421 - Bump deps by @AlekSi in FerretDB#430
- @narqo made their first contribution in FerretDB#321
- @w84thesun made their first contribution in FerretDB#338
- @seeforschauer made their first contribution in FerretDB#377
- @fenogentov made their first contribution in FerretDB#386
- @ribaraka made their first contribution in FerretDB#356
All closed issues and pull requests. All commits.
v0.0.6 (2022-02-10)
- Support projections by @ekalinin in FerretDB#212
- Support
dbStats
by @ekalinin in FerretDB#232 - Support
dataSize
by @ekalinin in FerretDB#246 - Implement
listCommands
by @OpenSauce in FerretDB#203 - Support
serverStatus
by @ekalinin in FerretDB#289 - Add more metrics by @AlekSi in FerretDB#298
- Implement
$size
query operator by @taaraora in FerretDB#296
- Forbid short document keys like
$k
by @AlekSi in FerretDB#234 - Fix benchmarks by @AlekSi in FerretDB#236
- Move handler tests by @AlekSi in FerretDB#239
- Fix and enable fuzzing by @AlekSi in FerretDB#240
- Make
db.collection.stats()
&.dataSize()
work frommongosh
by @ekalinin in FerretDB#243 - fix: remove amd-v2 limit by @Junnplus in FerretDB#282
- Catch concurrent schema/table creation by @AlekSi in FerretDB#283
- Ignore some parameters by @AlekSi in FerretDB#310
- Add
buildEnvironment
anddebug
tobuildInfo
command by @GinGin3203 in FerretDB#218 - Add helper for checking for unimplemented fields by @AlekSi in FerretDB#267
- Ignore
authorizedXXX
parameters for now by @AlekSi in FerretDB#311
- Update documentation about
fjson
package by @AlekSi in FerretDB#262 - Update tutorial ,add depends_on in docker-compose by @muyouming in FerretDB#275
- Bump github.com/reviewdog/reviewdog from 0.13.0 to 0.13.1 in /tools by @dependabot in FerretDB#222
- Fix Docker workflow by @AlekSi in FerretDB#225
- Extract
fjson
package by @AlekSi in FerretDB#207 - Fix test for
collstats
by @ekalinin in FerretDB#233 - Bump go.uber.org/zap from 1.19.1 to 1.20.0 by @dependabot in FerretDB#241
- Use generics for CompositeType by @AlekSi in FerretDB#245
- Enable go-consistent by @AlekSi in FerretDB#248
- Unexport
fjson
types by @AlekSi in FerretDB#231 - Remove JSON methods from bson package by @AlekSi in FerretDB#259
- Fix
make gen
by @AlekSi in FerretDB#264 - Add fuzztool by @ferretdb-bot in FerretDB#56
- Use FerretDB/github-actions/linters by @AlekSi in FerretDB#265
- Make PRs from forks work by @AlekSi in FerretDB#266
- Use
types.Null
instead ofnil
by @AlekSi in FerretDB#268 - Add
make fuzz-corpus
target by @AlekSi in FerretDB#279 - Pass Documents by pointer by @AlekSi in FerretDB#272
- Unexport some
bson
types by @AlekSi in FerretDB#280 - Rename receivers by @AlekSi in FerretDB#284
- Bump github.com/prometheus/client_golang from 1.11.0 to 1.12.0 by @dependabot in FerretDB#285
- Introduce generics for types by @AlekSi in FerretDB#287
- Fix some typos and style by @ekalinin in FerretDB#286
- Add Docker workflow stub by @AlekSi in FerretDB#288
- Split Docker Build and Push by @AlekSi in FerretDB#290
- Securely build and push Docker images by @AlekSi in FerretDB#292
- Update golangci-lint by @AlekSi in FerretDB#294
- Make fuzztool less verbose by @AlekSi in FerretDB#295
- Fix compilation with the latest go tip by @AlekSi in FerretDB#300
- Use
values
MongoDB database by @AlekSi in FerretDB#299 - Spend less time fuzzing pull requests by @AlekSi in FerretDB#302
- Detect matching PR by @AlekSi in FerretDB#303
- Add detection action by @AlekSi in FerretDB#304
- Remove extra allocation by @peakle in FerretDB#307
- Micro fixes: type assert order, strings.Split -> strings.Cut by @peakle in FerretDB#308
- Bump github.com/prometheus/client_golang from 1.12.0 to 1.12.1 by @dependabot in FerretDB#306
- @Junnplus made their first contribution in FerretDB#282
- @muyouming made their first contribution in FerretDB#275
- @peakle made their first contribution in FerretDB#307
- @taaraora made their first contribution in FerretDB#296
All closed issues and pull requests. All commits.
v0.0.5 (2022-01-04)
- Add basic metrics by @AlekSi in FerretDB#108
- Implement
serverStatus
command by @jyz0309 in FerretDB#116 - Implement
dropDatabase
command by @radmirnovii in FerretDB#117 - Support count function by @thuan1412 in FerretDB#97
- Implement
getParameter
command by @jyz0309 in FerretDB#142 - Support
limit
parameter in delete by @OpenSauce in FerretDB#141 - Implement basic
create
command by @ekalinin in FerretDB#184 - Build Docker image with GitHub Actions by @pboros in FerretDB#189
- Automatically create databases by @AlekSi in FerretDB#185
- Support
hello
command by @AlekSi in FerretDB#195 - Add stub for
createindexes
command by @AlekSi in FerretDB#196 - Support basic
hostInfo
command by @ekalinin in FerretDB#188 - Support
collStats
command by @ekalinin in FerretDB#206
- Accept $ and
.
in object field names by @AlekSi in FerretDB#127 - Make
checkConnection
less strict for common UTF8 localizations by @klokar in FerretDB#135 - Wait for PostgreSQL on
make env-up
by @agneum in FerretDB#149 - Fix build info parsing by @AlekSi in FerretDB#205
- Fix GetLog & add missed test for it by @ekalinin in FerretDB#211
- Return version in
serverStatus
command by @AlekSi in FerretDB#121 - Improve output of buildInfo command by @GinGin3203 in FerretDB#204
- CONTRIBUTING.md: fix typo & add clonning section by @ekalinin in FerretDB#114
- CONTRIBUTING.md: fix "/user/.../" -> "/usr/.../" by @GinGin3203 in FerretDB#137
- Add community links by @AlekSi in FerretDB#180
- Add convention for Decimal128 by @AlekSi in FerretDB#103
- Bump github.com/jackc/pgx/v4 from 4.14.0 to 4.14.1 by @dependabot in FerretDB#99
- Build multi-arch Docker images by @AlekSi in FerretDB#107
- Verify modules on
make init
by @AlekSi in FerretDB#123 - Enable go-consistent linter by @AlekSi in FerretDB#124
- Use composite GitHub Action for Go setup in FerretDB#126
- Use shared setup-go action by @AlekSi in FerretDB#131
- Add an option to use read-only user in tests by @AlekSi in FerretDB#132
- Refactor handler tests by @AlekSi in FerretDB#136
- Bump MongoDB and test_db versions by @AlekSi in FerretDB#139
- Remove old hack by @AlekSi in FerretDB#144
- Enable goheader linter by @AlekSi in FerretDB#145
- Cleanups and fixes by @AlekSi in FerretDB#146
- Use
any
instead ofinterface{}
by @AlekSi in FerretDB#147 - Tweak storage by @AlekSi in FerretDB#148
- Add helpers for accessing objects by paths by @AlekSi in FerretDB#140
- Bump mvdan.cc/gofumpt from 0.2.0 to 0.2.1 in /tools by @dependabot in FerretDB#186
- Add and use schema and table helpers by @AlekSi in FerretDB#191
- Refactor / cleanup tests by @AlekSi in FerretDB#192
- Add missed test for
buildInfo
command by @ekalinin in FerretDB#187 - Refactor slice /
types.Array
type by @AlekSi in FerretDB#202 - Bump golang.org/x/text from 0.3.6 to 0.3.7 by @dependabot in FerretDB#208
- Setup changelog generation by @ekalinin in FerretDB#209
- Build containers for branches as well by @pboros in FerretDB#213
- Container builds for PRs and tags by @pboros in FerretDB#215
- Use our own action for extracting Docker tag by @AlekSi in FerretDB#219
- @AlekSi made their first contribution in FerretDB#103
- @ekalinin made their first contribution in FerretDB#114
- @jyz0309 made their first contribution in FerretDB#116
- @radmirnovii made their first contribution in FerretDB#117
- @klokar made their first contribution in FerretDB#126
- @GinGin3203 made their first contribution in FerretDB#137
- @agneum made their first contribution in FerretDB#149
- @pboros made their first contribution in FerretDB#189
All closed issues and pull requests. All commits.
v0.0.4 (2021-12-01)
- A new name in FerretDB#100
- Added support for databases sizes in
listDatabases
command (#61, thanks to Leigh).
All closed issues and pull requests. All commits.
v0.0.3 (2021-11-19)
- Added support for
$regex
evaluation query operator in FerretDB#28 - Fixed handling of Infinity, -Infinity, NaN BSON Double values in FerretDB#29
- Improved documentation for contributors (thanks to Leigh).
All closed issues and pull requests. All commits.
v0.0.2 (2021-11-13)
- Added support for comparison query operators:
$eq
,$gt
,$gte
,$in
,$lt
,$lte
,$ne
,$nin
in FerretDB#26 - Added support for logical query operators:
$and
,$not
,$nor
,$or
in FerretDB#27
All closed issues and pull requests. All commits.
v0.0.1 (2021-11-01)
- Initial public release!