Releases: FerretDB/FerretDB
v0.5.1
New Features π
- Validate database names by @seeforschauer in #913
- Support
$all
array query operator by @rumyantseva in #724 - Support
getLog
diagnostic command by @fenogentov in #711 - Implement
MsgCount
for Tigris by @rumyantseva in #928 - Support
explain
diagnostic command by @seeforschauer in #909
Fixed Bugs π
- Fix edge cases in
drop
anddropDatabase
handlers by @AlekSi in #891 - Fix
ModifyCount
for update operators by @w84thesun in #939
Enhancements π
- Support
gt
lt
operator comparison for Array type by @ribaraka in #819 - Optimize documents fetching / filtering by @rumyantseva in #808
- Add test for a database name border case by @seeforschauer in #921
Documentation π
- Add a tip to limit concurrent tasks by @rumyantseva in #883
Other Changes π€
- Add a few testing helpers by @AlekSi in #874
- Add support for
no ci
label by @AlekSi in #876 - Bump deps by @AlekSi in #880
- Bump golang from 1.18.3 to 1.18.4 by @dependabot in #881
- Extract two more helpers by @AlekSi in #875
- Set pprof label for client connections by @AlekSi in #885
- Cancel request's context when request processed by @rumyantseva in #884
- Simplify
dbStats
tests a bit, add TODOs by @AlekSi in #886 - Disable logs during test setup by @AlekSi in #888
- Use
InsertMany
instead ofInsertOne
in tests by @AlekSi in #882 - Restart development containers faster by @AlekSi in #889
- Cover more logic in transactions by @rumyantseva in #887
- Disconnect client in embedded tests by @AlekSi in #890
- Stop tests on the first data race by @AlekSi in #893
- Wait for
Tigris
backend to be ready by @seeforschauer in #894 - Handle
42P07
PostgreSQL error to fix the tests by @rumyantseva in #895 - Build .rpm and .deb packages by @fenogentov in #739
- Add setup for compatibility tests by @AlekSi in #901
- Extract parameter list into one variable in
QueryDocuments
by @seeforschauer in #910 - Add first compatibility tests by @AlekSi in #863
- Use
v
instead ofvalue
in tests by @AlekSi in #916 - Tweak codecov settings by @AlekSi in #920
- Remove deprecated functions from
pgdb.Pool
by @seeforschauer in #922 - Extract integration tests setup to own package by @AlekSi in #923
- Bump deps by @AlekSi in #927
- comment
url.Values
to prevent test failing by @noisersup in #930 - Add a comment to the setup function about database and collection creation when provider list is empty by @seeforschauer in #929
- Bump
golangci-lint
, remove old hacks by @AlekSi in #932 - Fix tests for
$all
by @AlekSi in #934 - Add Path tests by @w84thesun in #936
- Build packages on CI by @AlekSi in #938
- Tweak linter settings by @AlekSi in #942
- Port and sync unit testing approach from
fjson
totjson
by @rumyantseva in #935 - Ensure that update operators are in sync by @AlekSi in #946
v0.5.0
What's Changed
This release enables the usage of FerretDB as a Go library. See this blog post.
New Features π
- Support embedded use-case by @seeforschauer in #754
- Validate collection names by @seeforschauer in #844
Fixed Bugs π
- Fix embedded usage by @AlekSi in #798
- Fix
whatsmyuri
command by @rumyantseva in #796 - Handle
null
value fornameOnly
inlistDatabases
handler by @DoodgeMatvey in #738 - pgdb: cover transactions with
inTransaction
function to simplify error handling by @rumyantseva in #833
Enhancements π
- Support all valid collection names by @w84thesun in #778
- Remove MongoDB driver "dependency" by @AlekSi in #853
Documentation π
- Update contributing docs and PR template according to our best practices by @rumyantseva in #779
- Update contributing documentation by @AlekSi in #843
- Document that NUL (
\0
) strings is not supported by @w84thesun in #865
Other Changes π€
- Tweak schedule of daily builds by @AlekSi in #794
- Do not import
pg
handler explicitly by @AlekSi in #799 - Add TODO item by @AlekSi in #804
- Fix
task env-pull
target by @AlekSi in #810 - Improve contributing documentation for Windows development by @w84thesun in #795
- Fix Docker image build by @AlekSi in #805
- Make it easier to trigger rebuilds by @AlekSi in #815
- Use
github.head_ref
instead ofgithub.ref
by @AlekSi in #814 - Bump deps by @AlekSi in #817
- Install QEMU for building Docker images by @AlekSi in #820
- Use multi-stage docker build by @AlphaB in #605
- Unify
update
tests by @seeforschauer in #809 - Add TODOs for all update operators by @AlekSi in #832
- Add
env-data
Taskfile target by @AlekSi in #834 - Tweak tests by @AlekSi in #837
- Export integration tests helpers by @AlekSi in #838
- Remove old style of
+build
tags where possible by @AlekSi in #839 - Export fields by @AlekSi in #840
- Update Tigris version by @AlekSi in #841
- Create Tigris databases by @AlekSi in #842
- Add basic CI for Tigris by @AlekSi in #784
- Test with the
main
version of Tigris too by @AlekSi in #846 - Wait for Tigris to be fully up by @AlekSi in #854
- Fill MongoDB on
task env-data
too by @AlekSi in #860 - Add CI job for short tests without environment by @AlekSi in #855
- Add TODOs by @AlekSi in #852
- Fix
task run
on Windows by @AlekSi in #867 - Fix invalid variable names by @AlekSi in #868
- Add
ferretdb_
prefix to our custom build tags by @AlekSi in #869
v0.4.0
What's Changed
This release adds preliminary support for the Tigris backend.
New Features π
- Support
$setOnInsert
field update operator by @seeforschauer in #644 - Support
$unset
field update operator by @seeforschauer in #691 - Support
$currentDate
field update operator by @seeforschauer in #662 - Support array querying by @w84thesun in #618
- Support
$elemMatch
array query operator by @w84thesun in #707 - Implement
getFreeMonitoringStatus
stub by @noisersup in #751 - Implement
setFreeMonitoring
stub by @noisersup in #759 - Implement
tigris
handler by @AlekSi in #690
Fixed Bugs π
- Handle both
buildinfo
andbuildInfo
commands by @AlekSi in #688 - Fix a bug with proxy response logs by @rumyantseva in #705
- Handle
find
,count
anddelete
correctly when collection doesn't exist by @rumyantseva in #710 - Fix default values for flags by @AlekSi in #743
- Fix embedded array query bug by @ribaraka in #736
Enhancements π
- Array comparison substitution by @ribaraka in #676
- Build
tigris
handler only if tag is present by @AlekSi in #681 - Support getParameter's showDetails, allParameters by @fenogentov in #606
- Make log level configurable by @fenogentov in #687
$currentDate
Timestamp fixDateTime
seconds and milliseconds bug by @seeforschauer in #701
Documentation π
Other Changes π€
- Use
"
instead of'
in all .yml files by @AlekSi in #675 - Add empty Tigris handler by @AlekSi in #671
- Do not test a global list of databases in parallel by @AlekSi in #678
- Enable
revive
linter by @seeforschauer in #672 - More tests for dot notation support by @w84thesun in #660
- Use circular buffer for zap logs by @fenogentov in #585
- Fix build by @AlekSi in #703
- Add
tjson
package by @AlekSi in #682 - Improve function comment by @AlekSi in #712
- Use separate encodings for ObjectID and binary by @AlekSi in #713
- Add the default Task target by @AlekSi in #716
- Add workaround for Dependabot by @AlekSi in #717
- Bump deps by @AlekSi in #723
- Always install Go and skip test cache by @AlekSi in #718
- Bump mongo from 5.0.8 to 5.0.9 in /build/deps by @dependabot in #719
- Better dummy handler errors by @AlekSi in #715
- Add
task run-proxy
command by @AlekSi in #725 - Add
Min
andMax
methods totypes.Array
by @ribaraka in #726 - Add arrays with
NaN
,double
and nested empty array to tests' shared data by @rumyantseva in #728 - Bump github.com/go-task/task/v3 from 3.12.1 to 3.13.0 in /tools by @dependabot in #741
- Disable "free monitoring" to simplify tests by @AlekSi in #748
- Re-enable
TestStatisticsCommands
tests by @seeforschauer in #704 - Fix
lint-golangci-lint
task for Windows systems by @w84thesun in #752 - Remove outdated comment by @AlekSi in #755
- Skip
-race
flag on Windows by @w84thesun in #753 - Fix fluky test by @AlekSi in #757
tjson
improvements by @AlekSi in #760- Unify similar code in
pg
handler by @AlekSi in #762 - Add Tigris environment by @AlekSi in #761
- Bump postgres from 14.3 to 14.4 in /build/deps by @dependabot in #768
- Use forked
golangci-lint
by @AlekSi in #758 - Update
conform-pr
action by @AlekSi in #783 - Drop
test_db
by @AlekSi in #788 - Add
task init-clean
target by @AlekSi in #756 - Add
godoc
to tools by @AlekSi in #789
New Contributors
- @noisersup made their first contribution in #751
v0.3.0
New Features π
- Support
findAndModify
by @w84thesun in #548 - Support
$inc
fieldupdate
operator by @w84thesun in #596 - Support
$set
field update operator by @seeforschauer in #634
Fixed Bugs π
Enhancements π
Other Changes π€
- Better
-0
handling in tests by @AlekSi in #616 - Bump github.com/golangci/golangci-lint from 1.46.1 to 1.46.2 in /tools by @dependabot in #617
- Bump PostgreSQL and MongoDB versions by @AlekSi in #599
- Rename
OP_*
constants toOpCode*
constants by @seeforschauer in #620 - Bump gopkg.in/yaml.v3 by @AlekSi in #646
- Bump gopkg.in/yaml.v3 in tools by @AlekSi in #648
- Make
Path
type by @w84thesun in #635 - Fix incorrect test for
$mod
operator by @fenogentov in #645 - Skip test on all ARM64 OSes by @AlekSi in #652
- Add more visibility for the router/proxy error log levels by @rumyantseva in #650
- Update CODEOWNERS by @AlekSi in #655
- Sync dummy and pg handlers by @AlekSi in #641
- Panic on unexpected order values by @AlekSi in #668
- Add some comments to the functions and variables by @seeforschauer in #619
- Remove dead code by @AlekSi in #669
v0.2.1
What's Changed
New Features π
- Support
$slice
projection query operator by @GinGin3203 in #518 - Support
$comment
query operator by @ribaraka in #563 - Support basic
connectionStatus
diagnostic command by @fenogentov in #572 - Support
$regex
evaluation query operator by @w84thesun in #588
Enhancements π
- Support querying documents by @w84thesun in #573
- Improve comparison of arrays and documents by @ribaraka in #589
- Support
getParameter
's parameters by @fenogentov in #535 - Add stubs to make VSCode plugin work by @AlekSi in #603
Documentation π
- Add conform CI workflow, improve docs by @AlekSi in #566
- Update CONTRIBUTING.md with typo fix and a tiny correction by @rumyantseva in #574
- Add note about forks by @AlekSi in #575
Other Changes π€
- Bump go.mongodb.org/mongo-driver from 1.9.0 to 1.9.1 in /integration by @dependabot in #555
- Add missing
//nolint
by @AlekSi in #556 - Set the handler to use via a command-line flag and remove debug handlers from interface by @seeforschauer in #534
- Add tests for
RemoveByPath
by @seeforschauer in #549 - Add
altMessage
toAssertEqualError
by @w84thesun in #550 - Add documentation for values comparision by @AlekSi in #559
- Add
debug
andpanic
msg handlers toCommand
map by @seeforschauer in #561 - Add
RemoveByPath
forArray
andCompositeTypeInterface
by @seeforschauer in #560 - Bump docker/login-action from 1 to 2 by @dependabot in #565
- Bump pgx version by @AlekSi in #570
- Use
float64(x)
forok
everywhere by @AlekSi in #577 - Improve
AssertEqualAltError
documentation by @AlekSi in #578 - Remove
types.MustNewDocument
in some places by @AlekSi in #579 - Remove
MustNewDocument
by @AlekSi in #581 - Remove
MustNewArray
by @AlekSi in #582 - Remove
MustConvertDocument
by @AlekSi in #583 - Enable
staticcheck
by @AlekSi in #580 - Enable
gosimple
by @AlekSi in #584 - Change the way linters work by @AlekSi in #586
- Merge
BigNumbersData
intoScalars
by @AlphaB in #595 - Set
GOLANGCI_LINT_CACHE
by @AlekSi in #597 - Increase
golangci-lint
timeout by @AlekSi in #598 - Bump deps by @AlekSi in #604
New Contributors
Full Changelog: v0.2.0...v0.2.1
v0.2.0
What's Changed
This release implements all required functionality to support CLA Assistant. More details will be available shortly in our blog.
New Features π
- Add support for
$nin
operator by @ribaraka in #459 - Support querying with dot notation for documents by @GinGin3203 in #483
- Add support for
$ne
operator by @ribaraka in #464 - Add basic
findAndModify
implementation by @AlekSi in #501 - Add support for
$in
operator by @ribaraka in #499
Fixed Bugs π
- Fix large numbers comparision by @DoodgeMatvey in #466
- Fix panic on receiving a filter query with unknown operator by @GinGin3203 in #517
- Fix bitwise operators by @w84thesun in #488
Enhancements π
- Return better errors for unimplemented operations by @AlekSi in #504
- Implement
nameOnly
forlistDatabases
by @AlekSi in #524 - Improve
hostInfo
command'sos
response by @DoodgeMatvey in #509
Documentation π
- Mention force pushes by @AlekSi in #500
- Update guidelines by @seeforschauer in #496
- Document
task env-pull
target by @AlekSi in #528
Other Changes π€
- Stabilize tests by always sorting results by @AlekSi in #490
- Skip one test for now by @AlekSi in #494
- Bump MongoDB version by @AlekSi in #495
- Use
goimports
to group imports ontask fmt
by @AlekSi in #498 - Make default Docker arguments a bit more useful by @AlekSi in #502
- Export helpers that will be used in other package by @AlekSi in #505
- Correctly override
FUZZTIME
on CI by @AlekSi in #506 - Pass context to PostgreSQL pool by @AlekSi in #507
- Bump dependencies by @AlekSi in #514
- Remove
Array.Subslice
method by @AlekSi in #515 - Remove
types.CString
by @AlekSi in #529 - Make test helpers harder to misuse by @AlekSi in #530
- Move existing comparision code to
types
by @AlekSi in #531 - Extract common interface for handlers by @seeforschauer in #521
- Move all handler test to integration tests by @w84thesun in #523
- Use
nil
errors instead of empty values by @fenogentov in #542 - Delete old tests by @AlekSi in #543
- Add tests for
sort
andfind
parameters type by @w84thesun in #544
New Contributors
- @DoodgeMatvey made their first contribution in #466
v0.1.1
New Features π
- Support
$gt
comparision operator by @ribaraka in #330 - Support
$exists
element query operator by @w84thesun in #446 - Add basic
upsert
support by @AlekSi in #473 - Add
$type
operator by @w84thesun in #453 - Support
$mod
evaluation query operator by @fenogentov in #440 - Support logical operators by @w84thesun in #465
Enhancements π
- Ping database in some commands by @AlekSi in #435
- Ensure that
_id
fields are always the first by @AlekSi in #476
Documentation π
Other Changes π€
- Integration tests improvements by @AlekSi in #441
- Add test stub for bitwise operators by @AlekSi in #443
- Add tests for collections
create
anddrop
by @AlekSi in #444 - Add tests for more diagnostic commands by @AlekSi in #448
- Transfer existing comparison tests by @ribaraka in #445
- Move
getParameter
tests by @AlekSi in #450 - Improve
envtool
diagnostics by @w84thesun in #426 - Fix Postgres port check for
envtool
by @w84thesun in #451 - Add support for
$gte
,$lt
,$lte
operators by @ribaraka in #452 - Add tests for
null
values by @w84thesun in #458 - Bump actions/upload-artifact from 2 to 3 by @dependabot in #460
- Update tests for the latest mongo-driver by @AlekSi in #463
- Rearrange tests by @AlekSi in #467
- Do not invoke Dance tests by @AlekSi in #468
- Minor unification of tests style by @AlekSi in #469
- Add helpers that generate ObjectID by @AlekSi in #474
- Add deep copy helpers by @AlekSi in #475
- Allow the usage of proxy/diff mode in tests by @AlekSi in #477
- Bump codecov/codecov-action from 2 to 3 by @dependabot in #461
- Composite data type find handling by @ribaraka in #471
- Fix failing tests by @w84thesun in #482
- Rename
q
tofilter
in tests by @seeforschauer in #484 - Supress linter warning by @AlekSi in #485
v0.1.0
What's Changed
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.
New Features π
- Implement
$bitsAllClear
by @w84thesun in #394 - Support
$elemMatch
projection query operator by @seeforschauer in #383 - Support all bitwise query operators by @w84thesun in #400
- Support
$eq
comparision operator by @ribaraka in #309
Fixed Bugs π
- Fix a few issues found by fuzzing by @AlekSi in #345
- More fixes for bugs found by fuzzing by @AlekSi in #346
- Commands are case-sensitive by @AlekSi in #369
- Make updates work by @AlekSi in #385
- Handle any number type for
limit
by @AlekSi in #399 - Fix numbers comparision by @ribaraka in #356
- Fix finding zero documents with
FindOne
by @AlekSi in #409 - Fix
sort
for arrays and documents by @AlekSi in #424 - Fix pgdb helpers by @AlekSi in #425
Enhancements π
- Update
insert
command's help by @narqo in #321 - Return correct error codes for projections by @seeforschauer in #384
- Add SortDocuments by @w84thesun in #378
Documentation π
Other Changes π€
- Remove Docker volumes on
make env-down
by @AlekSi in #315 - Update deps by @AlekSi in #320
- Build static binaries by @AlekSi in #322
- Integrate with dance PRs by @AlekSi in #324
- Bump Docker images by @AlekSi in #325
- Bump github.com/golangci/golangci-lint from 1.44.0 to 1.44.2 in /tools by @dependabot in #327
- Bump mvdan.cc/gofumpt from 0.2.1 to 0.3.0 in /tools by @dependabot in #329
- Bump actions/checkout from 2 to 3 by @dependabot in #333
- Various small cleanups by @AlekSi in #334
- Rewrite
generate.sh
in Go by @w84thesun in #338 - Add helper for getting required parameters by @AlekSi in #339
- Use safe type assertions for inputs by @AlekSi in #341
- Fix seed fuzz corpus collection by @AlekSi in #340
- Add fuzzing tests for handlers by @AlekSi in #328
- Add
bin/task
to tools by @AlekSi in #349 - Add more checks for Go versions by @AlekSi in #350
- Improve Windows tooling by @w84thesun in #348
- Add assertions for BSON values comparision by @AlekSi in #352
- Replace
Makefile
withTaskfile
by @w84thesun in #358 - Fix Taskfile by @w84thesun in #365
- Remove OS-specific Taskfiles, cleanup by @AlekSi in #366
- Remove SQL storage by @w84thesun in #367
- Use square brackets for nicer logs by @AlekSi in #373
- Fix build tags by @AlekSi in #374
- Add converter from types.Regex to regexp.Regexp by @AlekSi in #375
- Log test failures for updates and deletes by @AlekSi in #376
- Filter documents using Go code by @AlekSi in #370
- Projection:
<field>: <1 or true>
and<field>: <0 or false>
by @seeforschauer in #377 - Fix small issues after rewrite by @AlekSi in #380
- Projection:
<field>: <1 or true>
and<field>: <0 or false>
: error messages formatting by @seeforschauer in #382 - Bump dependecnies by @AlekSi in #387
- Fix some fluky tests by @AlekSi in #351
- Minor CI and build tweaks by @AlekSi in #390
- Add Markdown linter by @fenogentov in #386
- Do not cache modules by @AlekSi in #392
- Fix more fluky tests by @AlekSi in #391
- Fix the last fluky test by @AlekSi in #395
- Allow access to actual listener's address by @AlekSi in #397
- Add a new way to write integration tests by @AlekSi in #389
- Move
internal/pg
tointernal/handlers/pg/pgdb
by @AlekSi in #401 - Move
handlers/jsonb1
tohandlers/pg
by @AlekSi in #402 - Move handler to
pg
by @AlekSi in #403 - Move tests back for now by @AlekSi in #404
- Use
testutil.AssertEqual
helper by @AlekSi in #407 - Move
$size
tests to integration tests by @AlekSi in #410 - Improve logging in integration tests by @AlekSi in #412
- Tweak
hello
/ismaster
/isMaster
responses by @AlekSi in #418 - Fix named loggers by @AlekSi in #427
- Add tests for
getLog
by @AlekSi in #421 - Bump deps by @AlekSi in #430
New Contributors
- @narqo made their first contribution in #321
- @w84thesun made their first contribution in #338
- @seeforschauer made their first contribution in #377
- @fenogentov made their first contribution in #386
- @ribaraka made their first contribution in #356
v0.0.6
What's Changed
New Features π
- Support projections by @ekalinin in #212
- Support
dbStats
by @ekalinin in #232 - Support
dataSize
by @ekalinin in #246 - Implement
listCommands
by @OpenSauce in #203 - Support
serverStatus
by @ekalinin in #289 - Add more metrics by @AlekSi in #298
- Implement
$size
query operator by @taaraora in #296
Fixed Bugs π
- Forbid short document keys like
$k
by @AlekSi in #234 - Fix benchmarks by @AlekSi in #236
- Move handler tests by @AlekSi in #239
- Fix and enable fuzzing by @AlekSi in #240
- Make
db.collection.stats()
&.dataSize()
work frommongosh
by @ekalinin in #243 - fix: remove amd-v2 limit by @junnplus in #282
- Catch concurrent schema/table creation by @AlekSi in #283
- Ignore some parameters by @AlekSi in #310
Enhancements π
- Add
buildEnvironment
anddebug
tobuildInfo
command by @GinGin3203 in #218 - Add helper for checking for unimplemented fields by @AlekSi in #267
- Ignore
authorizedXXX
parameters for now by @AlekSi in #311
Documentation π
- Update documentation about
fjson
package by @AlekSi in #262 - Update tutorial ,add depends_on in docker-compose by @muyouming in #275
Other Changes π€
- Bump github.com/reviewdog/reviewdog from 0.13.0 to 0.13.1 in /tools by @dependabot in #222
- Fix Docker workflow by @AlekSi in #225
- Extract
fjson
package by @AlekSi in #207 - Fix test for
collstats
by @ekalinin in #233 - Bump go.uber.org/zap from 1.19.1 to 1.20.0 by @dependabot in #241
- Use generics for CompositeType by @AlekSi in #245
- Enable go-consistent by @AlekSi in #248
- Unexport
fjson
types by @AlekSi in #231 - Remove JSON methods from bson package by @AlekSi in #259
- Fix
make gen
by @AlekSi in #264 - Add fuzztool by @ferretdb-bot in #56
- Use FerretDB/github-actions/linters by @AlekSi in #265
- Make PRs from forks work by @AlekSi in #266
- Use
types.Null
instead ofnil
by @AlekSi in #268 - Add
make fuzz-corpus
target by @AlekSi in #279 - Pass Documents by pointer by @AlekSi in #272
- Unexport some
bson
types by @AlekSi in #280 - Rename receivers by @AlekSi in #284
- Bump github.com/prometheus/client_golang from 1.11.0 to 1.12.0 by @dependabot in #285
- Introduce generics for types by @AlekSi in #287
- Fix some typos and style by @ekalinin in #286
- Add Docker workflow stub by @AlekSi in #288
- Split Docker Build and Push by @AlekSi in #290
- Securely build and push Docker images by @AlekSi in #292
- Update golangci-lint by @AlekSi in #294
- Make fuzztool less verbose by @AlekSi in #295
- Fix compilation with the latest go tip by @AlekSi in #300
- Use
values
MongoDB database by @AlekSi in #299 - Spend less time fuzzing pull requests by @AlekSi in #302
- Detect matching PR by @AlekSi in #303
- Add detection action by @AlekSi in #304
- Remove extra allocation by @peakle in #307
- Micro fixes: type assert order, strings.Split -> strings.Cut by @peakle in #308
- Bump github.com/prometheus/client_golang from 1.12.0 to 1.12.1 by @dependabot in #306
New Contributors
v0.0.5
What's Changed
New Features π
- Add basic metrics by @AlekSi in #108
- Implement
serverStatus
command by @jyz0309 in #116 - Implement
dropDatabase
command by @radmirnovii in #117 - Support count function by @thuan1412 in #97
- Implement
getParameter
command by @jyz0309 in #142 - Support
limit
parameter in delete by @OpenSauce in #141 - Implement basic
create
command by @ekalinin in #184 - Build Docker image with GitHub Actions by @pboros in #189
- Automatically create databases by @AlekSi in #185
- Support
hello
command by @AlekSi in #195 - Add stub for
createindexes
command by @AlekSi in #196 - Support basic
hostInfo
command by @ekalinin in #188 - Support
collStats
command by @ekalinin in #206
Fixed Bugs π
- Accept $ and . in object field names by @AlekSi in #127
- Make
checkConnection
less strict for common UTF8 localizations by @klokar in #135 - Wait for PostgreSQL on
make env-up
by @agneum in #149 - Fix build info parsing by @AlekSi in #205
- Fix GetLog & add missed test for it by @ekalinin in #211
Enhancements π
- Return version in
serverStatus
command by @AlekSi in #121 - Improve output of buildInfo command by @GinGin3203 in #204
Documentation π
- CONTRIBUTING.md: fix typo & add clonning section by @ekalinin in #114
- CONTRIBUTING.md: fix "/user/.../" -> "/usr/.../" by @GinGin3203 in #137
- Add community links by @AlekSi in #180
Other Changes π€
- Add convention for Decimal128 by @AlekSi in #103
- Bump github.com/jackc/pgx/v4 from 4.14.0 to 4.14.1 by @dependabot in #99
- Build multi-arch Docker images by @AlekSi in #107
- Verify modules on
make init
by @AlekSi in #123 - Enable go-consistent linter by @AlekSi in #124
- Use composite GitHub Action for Go setup. (#122) by @klokar in #126
- Use shared setup-go action by @AlekSi in #131
- Add an option to use read-only user in tests by @AlekSi in #132
- Refactor handler tests by @AlekSi in #136
- Bump MongoDB and test_db versions by @AlekSi in #139
- Remove old hack by @AlekSi in #144
- Enable goheader linter by @AlekSi in #145
- Cleanups and fixes by @AlekSi in #146
- Use
any
instead ofinterface{}
by @AlekSi in #147 - Tweak storage by @AlekSi in #148
- Add helpers for accessing objects by paths by @AlekSi in #140
- Bump mvdan.cc/gofumpt from 0.2.0 to 0.2.1 in /tools by @dependabot in #186
- Add and use schema and table helpers by @AlekSi in #191
- Refactor / cleanup tests by @AlekSi in #192
- Add missed test for
buildInfo
command by @ekalinin in #187 - Refactor slice /
types.Array
type by @AlekSi in #202 - Bump golang.org/x/text from 0.3.6 to 0.3.7 by @dependabot in #208
- Setup changelog generation by @ekalinin in #209
- Build containers for branches as well by @pboros in #213
- Container builds for PRs and tags by @pboros in #215
- Use our own action for extracting Docker tag by @AlekSi in #219
New Contributors
- @AlekSi made their first contribution in #103
- @ekalinin made their first contribution in #114
- @jyz0309 made their first contribution in #116
- @radmirnovii made their first contribution in #117
- @klokar made their first contribution in #126
- @GinGin3203 made their first contribution in #137
- @agneum made their first contribution in #149
- @pboros made their first contribution in #189