The repositories under .tools/ are now grouped by their GitHub owner: github.com/wekan/* in .tools/w/, github.com/xet7/* in .tools/xet7/ and github.com/Secretchronicles/* in .tools/Secretchronicles/. build.sh, build.bat, the release and debug scripts, the tests and the docs looked for .tools/FerretDB, .tools/wekan.fi, .tools/charts, .tools/node-patches, .tools/mongo-tools-patches and .tools/TSC, and now use the new places. ensure_tool_repo takes the owner from the clone URL through a new tool_repo_dir, so a missing companion repository is cloned into the same place the scripts read it from. tests/toolsDirectoryRepos.test.cjs runs the mapping and checks that nothing lands flat in .tools/ any more. Finding the website checkout again let securityRegressionCoverage compare the Hall of Fame, which it had been skipping: CreateBleed is published and is now in the inventory with its unit and UI tests. The exceljs fork test reads npm-packages/exceljs, the copy WeKan builds with, instead of a clone under .tools that is not part of the build. Thanks to xet7 !
FerretDB
FerretDB speaks the MongoDB wire protocol and stores the data in something else,
so WeKan runs unchanged on top of it — WeKan only ever connects to
mongodb://ferretdb:27017/wekan?directConnection=true and knows nothing about
what is behind it. The directConnection=true is required, not decoration:
without it the driver follows FerretDB's replica-set handshake to the wildcard
address FerretDB listens on and the stack cannot start
(#6582, explained in
1/README.md).
There are two versions, and they are different products:
| Directory | Version | Stores into |
|---|---|---|
| 1 | FerretDB v1, the wekan/FerretDB fork — WeKan's default database | SQLite (embedded), PostgreSQL, MySQL, MariaDB, SAP HANA |
| 2 | FerretDB 2, upstream | PostgreSQL with the DocumentDB extension, only |
Upstream dropped every backend except PostgreSQL in v2. The fork keeps v1 alive because the embedded SQLite backend is what makes a WeKan install self-contained — no database server at all — and because it is the database WeKan ships for the platforms MongoDB has no server build for: ppc64le, s390x and riscv64.
See also
- ../MongoDB — the classic database, if you prefer MongoDB itself
- wekan/FerretDB — the fork, its releases and its CHANGELOG