Skip to content

Commit

Permalink
Prepare v1.18.0 release (#3947)
Browse files Browse the repository at this point in the history
  • Loading branch information
AlekSi committed Jan 8, 2024
1 parent 0b08b30 commit e3f6c3a
Show file tree
Hide file tree
Showing 56 changed files with 116 additions and 27 deletions.
82 changes: 82 additions & 0 deletions CHANGELOG.md
Expand Up @@ -2,6 +2,88 @@

<!-- markdownlint-disable MD024 MD034 -->

## [v1.18.0](https://github.com/FerretDB/FerretDB/releases/tag/v1.18.0) (2024-01-08)

### What's Changed

#### Capped collections

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.

#### Tailable cursors

This release adds support for tailable cursors.
Both `tailable` and `awaitData` parameters are supported.

#### OpLog tailing

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](https://docs.ferretdb.io/configuration/flags/#general)
might also be needed.

### New Features 🎉

- Add support for tailable cursors by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3799
- Implement `awaitData` tailable cursors by @noisersup in https://github.com/FerretDB/FerretDB/pull/3900
- Implement and test OpLog for update operations by @rumyantseva in https://github.com/FerretDB/FerretDB/pull/3899
- Enable OpLog and tailable cursors by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3887
- Implement `createUser` command by @henvic in https://github.com/FerretDB/FerretDB/pull/3848
- Implement `dropUser` command by @henvic in https://github.com/FerretDB/FerretDB/pull/3866
- Implement `dropAllUsersFromDatabase` command by @henvic in https://github.com/FerretDB/FerretDB/pull/3867
- Implement `usersInfo` command by @henvic in https://github.com/FerretDB/FerretDB/pull/3897

### Enhancements 🛠

- Don't cleanup capped collections if there is nothing to cleanup by @rumyantseva in https://github.com/FerretDB/FerretDB/pull/3909
- Disallow `maxTimeMS` for non-awaitData cursors in `getMore` command by @noisersup in https://github.com/FerretDB/FerretDB/pull/3917
- Add the necessary for replica set fields to `ismaster` response by @rumyantseva in https://github.com/FerretDB/FerretDB/pull/3925

### Other Changes 🤖

- Add CI configuration for Citus by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3865
- Bump deps by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3880
- Fix tests by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3871
- Add MySQL backend registry by @adetunjii in https://github.com/FerretDB/FerretDB/pull/3850
- Fix local MySQL setup by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3886
- Fix clean-up on `aggregate` errors by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3892
- Use `dropAllUsersFromDatabase` in tests by @henvic in https://github.com/FerretDB/FerretDB/pull/3891
- Add `awaitData` tests by @noisersup in https://github.com/FerretDB/FerretDB/pull/3872
- Add utilities for working with passwords by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3890
- Add support for `--skip` in `envtool tests run` by @KrishnaSindhur in https://github.com/FerretDB/FerretDB/pull/3805
- Small clean-ups by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3896
- Add basic SAP HANA backend by @yonarw in https://github.com/FerretDB/FerretDB/pull/3719
- Add integration tests for OpLog entries of insert and delete operations by @rumyantseva in https://github.com/FerretDB/FerretDB/pull/3862
- Add more cursor tests by @noisersup in https://github.com/FerretDB/FerretDB/pull/3893
- Refactor `ConnInfo` in preparation for new auth by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3901
- Add some small improvements to the linter that checks open issues by @rumyantseva in https://github.com/FerretDB/FerretDB/pull/3756
- Forbid `bson.E/D/M/A`, except integration tests by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3908
- Bump deps by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3912
- Make `AssertEqual` helper handle duplicate keys by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3911
- Drop test users on cleanup by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3914
- Cleanup `awaitData` tailable cursor by @noisersup in https://github.com/FerretDB/FerretDB/pull/3915
- Cleanup a closed issue by @rumyantseva in https://github.com/FerretDB/FerretDB/pull/3924
- Ignore `sparse` index parameter for now by @AlekSi in https://github.com/FerretDB/FerretDB/pull/3934
- Allow filtering by name in `ListDatabases` and `ListCollections` by @sachinpuranik in https://github.com/FerretDB/FerretDB/pull/3851
- Disallow native passwords for MySQL by @adetunjii in https://github.com/FerretDB/FerretDB/pull/3937
- Fix `awaitData` cursor panic by @noisersup in https://github.com/FerretDB/FerretDB/pull/3935
- Use `usersInfo` in `dropAllUsersFromDatabase` tests by @henvic in https://github.com/FerretDB/FerretDB/pull/3932
- Allow Native Passwords for testcase by @adetunjii in https://github.com/FerretDB/FerretDB/pull/3941

### New Contributors

- @yonarw made their first contribution in https://github.com/FerretDB/FerretDB/pull/3719
- @sachinpuranik made their first contribution in https://github.com/FerretDB/FerretDB/pull/3851

[All closed issues and pull requests](https://github.com/FerretDB/FerretDB/milestone/60?closed=1).
[All commits](https://github.com/FerretDB/FerretDB/compare/v1.17.0...v1.18.0).

## [v1.17.0](https://github.com/FerretDB/FerretDB/releases/tag/v1.17.0) (2023-12-18)

### New Features 🎉
Expand Down
4 changes: 2 additions & 2 deletions cmd/ferretdb/main.go
Expand Up @@ -95,8 +95,8 @@ var cli struct {
DisablePushdown bool `default:"false" help:"Experimental: disable pushdown."`

CappedCleanup struct {
Interval time.Duration `default:"1m" help:"Experimental: capped collections cleanup interval." hidden:""`
Percentage uint8 `default:"10" help:"Experimental: percentage of documents to cleanup." hidden:""`
Interval time.Duration `default:"1m" help:"Experimental: capped collections cleanup interval."`
Percentage uint8 `default:"10" help:"Experimental: percentage of documents to cleanup."`
} `embed:"" prefix:"capped-cleanup-"`

EnableNewAuth bool `default:"false" help:"Experimental: enable new authentication." hidden:""`
Expand Down
8 changes: 4 additions & 4 deletions website/docs/reference/supported-commands.md
Expand Up @@ -44,7 +44,7 @@ Use ❌ for commands and arguments that are not implemented at all.
| | `tailable` || |
| | `oplogReplay` | ⚠️ | Ignored |
| | `noCursorTimeout` || Unimplemented |
| | `awaitData` | | [Issue](https://github.com/FerretDB/FerretDB/issues/2283) |
| | `awaitData` | | |
| | `allowPartialResults` || Unimplemented |
| | `collation` || Unimplemented |
| | `allowDiskUse` | ⚠️ | Ignored |
Expand Down Expand Up @@ -171,7 +171,7 @@ Related [issue](https://github.com/FerretDB/FerretDB/issues/78).

| Command | Argument | Status | Comments |
| -------------------------- | -------------------------------- | ------ | --------------------------------------------------------- |
| `createUser` | | | [Issue](https://github.com/FerretDB/FerretDB/issues/1491) |
| `createUser` | | | |
| | `pwd` | ⚠️ | |
| | `customData` | ⚠️ | |
| | `roles` | ⚠️ | |
Expand All @@ -181,10 +181,10 @@ Related [issue](https://github.com/FerretDB/FerretDB/issues/78).
| | `mechanisms` | ⚠️ | |
| | `digestPassword` | ⚠️ | |
| | `comment` | ⚠️ | |
| `dropAllUsersFromDatabase` | | | [Issue](https://github.com/FerretDB/FerretDB/issues/1492) |
| `dropAllUsersFromDatabase` | | | |
| | `writeConcern` | ⚠️ | |
| | `comment` | ⚠️ | |
| `dropUser` | | | [Issue](https://github.com/FerretDB/FerretDB/issues/1493) |
| `dropUser` | | | |
| | `writeConcern` | ⚠️ | |
| | `comment` | ⚠️ | |
| `grantRolesToUser` | || [Issue](https://github.com/FerretDB/FerretDB/issues/1494) |
Expand Down
2 changes: 1 addition & 1 deletion website/docusaurus.config.js
Expand Up @@ -46,7 +46,7 @@ const config = {

versions: {
// the latest minus one minor
'v1.16': {
'v1.17': {
banner: 'none',
},
},
Expand Down
Expand Up @@ -41,10 +41,10 @@ Use ❌ for commands and arguments that are not implemented at all.
| | `min` | ⚠️ | Ignored |
| | `returnKey` || Unimplemented |
| | `showRecordId` || |
| | `tailable` | | |
| | `tailable` | | [Issue](https://github.com/FerretDB/FerretDB/issues/2283) |
| | `oplogReplay` || Unimplemented |
| | `noCursorTimeout` || Unimplemented |
| | `awaitData` | | |
| | `awaitData` | | [Issue](https://github.com/FerretDB/FerretDB/issues/2283) |
| | `allowPartialResults` || Unimplemented |
| | `collation` || Unimplemented |
| | `allowDiskUse` | ⚠️ | Ignored |
Expand Down
Expand Up @@ -21,13 +21,14 @@ Some default values are overridden in [our Docker image](../quickstart-guide/doc

## General

| Flag | Description | Environment Variable | Default Value |
| -------------- | ----------------------------------------------------------------- | -------------------- | ------------------------------ |
| `-h`, `--help` | Show context-sensitive help | | false |
| `--version` | Print version to stdout and exit | | false |
| `--handler` | Backend handler | `FERRETDB_HANDLER` | `pg` (PostgreSQL) |
| `--mode` | [Operation mode](operation-modes.md) | `FERRETDB_MODE` | `normal` |
| `--state-dir` | Path to the FerretDB state directory<br />(set to `-` to disable) | `FERRETDB_STATE_DIR` | `.`<br />(`/state` for Docker) |
| Flag | Description | Environment Variable | Default Value |
| ----------------- | ----------------------------------------------------------------- | ------------------------ | ------------------------------ |
| `-h`, `--help` | Show context-sensitive help | | false |
| `--version` | Print version to stdout and exit | | false |
| `--handler` | Backend handler | `FERRETDB_HANDLER` | `pg` (PostgreSQL) |
| `--mode` | [Operation mode](operation-modes.md) | `FERRETDB_MODE` | `normal` |
| `--state-dir` | Path to the FerretDB state directory<br />(set to `-` to disable) | `FERRETDB_STATE_DIR` | `.`<br />(`/state` for Docker) |
| `--repl-set-name` | Replica set name<br />(should be set for OpLog to work correctly) | `FERRETDB_REPL_SET_NAME` | empty |

## Interfaces

Expand Down

0 comments on commit e3f6c3a

Please sign in to comment.