Wekan logo

Wekan

Open source kanban board application built with Meteor

Alternative to: trello


About Versions (218)

v10.70

2026-08-05

Binaries in these bundles

Each bundle carries a Node.js, a FerretDB and the MongoDB Database Tools. Which source has a given CPU varies from release to release - nodejs.org builds some architectures, unofficial-builds others, and the wekan/node fork the ones neither of them does - and not every source publishes a checksum. This is what went into this release, and which downloads were checked against a published SHA256.

BundleBinaryFromVersionCheckedSHA256
arm64FerretDBwekan/FerretDBlatestverified275ae50ac97e6a70…
arm64FerretDBwekan/FerretDBlatestverified275ae50ac97e6a70…
arm64Node.jsnodejs.orgv24.19.0verified01443c1e1a29e531…
arm64Node.jsnodejs.orgv24.19.0verified01443c1e1a29e531…
mac-arm64FerretDBwekan/FerretDBlatestverified639ed58b84820b3d…
mac-arm64FerretDBwekan/FerretDBlatestverified639ed58b84820b3d…
mac-arm64Node.jsnodejs.orgv24.19.0verified3f1cf157479c1480…
mac-arm64Node.jsnodejs.orgv24.19.0verified3f1cf157479c1480…
ppc64leFerretDBwekan/FerretDBv1.45.0verifiedde4518c7774d3025…
ppc64leFerretDBwekan/FerretDBv1.45.0verifiedde4518c7774d3025…
ppc64leNode.jsnodejs.orgv24.19.0verifiedc510c6ce12f07010…
ppc64leNode.jsnodejs.orgv24.19.0verifiedc510c6ce12f07010…
riscv64FerretDBwekan/FerretDBv1.45.0verified7dc2952f554e8800…
riscv64FerretDBwekan/FerretDBv1.45.0verified7dc2952f554e8800…
riscv64Node.jsunofficial-builds.nodejs.orgv24.19.0verifiedcd1f14af28121480…
riscv64Node.jsunofficial-builds.nodejs.orgv24.19.0verifiedcd1f14af28121480…
s390xFerretDBwekan/FerretDBv1.45.0verified0ae2e2f2cffdc5dd…
s390xFerretDBwekan/FerretDBv1.45.0verified0ae2e2f2cffdc5dd…
s390xNode.jsnodejs.orgv24.19.0verifieda4792e65962ffa0a…
s390xNode.jsnodejs.orgv24.19.0verifieda4792e65962ffa0a…
win64FerretDBwekan/FerretDBlatestverifiedf6337994368a52d0…
win64FerretDBwekan/FerretDBlatestverifiedf6337994368a52d0…
win64Node.jsnodejs.orgv24.19.0verified57f71ab3652e797d…
win64Node.jsnodejs.orgv24.19.0verified57f71ab3652e797d…

A row saying no checksum published is not a failed check - it is a source that publishes nothing to check against. Those are the ones worth fixing at the source.

v10.70 2026-08-05 WeKan ® release

In short: WeKan takes its Node.js from three sources, in order - official nodejs.org, then unofficial-builds.nodejs.org, then wekan/node-patches - instead of only from the retired wekan/node fork, and a platform that none of the three publishes a Node.js for is simply not built that release instead of failing it. The order lives in one new script that the bundle .zip jobs, the extra-architecture preflight and the Dockerfile all ask, so the image and the .zip of one CPU can never be built on Node.js from different places; the snap takes its node out of the bundle, so it follows without a change of its own, and Sandstorm (amd64 only) is untouched. Below that: the release notes now say which source actually served each platform instead of a hardcoded name, the 32-bit Windows import library moves with the runtime, and the guards that pinned the old fork-only rule are updated to the new one.

PlatformBinaryFromVersionSHA256
amd64Node.jsnodejs.orgv24.19.014b342e71204f811bde6153be8e04b62aef63c236fef92b55f9c83154b409647
amd64FerretDBwekan/FerretDBv1.45.094713f605167abb45a3717482d35de4824cb4a8f199c1400e826a8a2b04f3893
arm64Node.jsnodejs.orgv24.19.001443c1e1a29e531ccad5a46fefa6df490d2189c49f7955904aecdbb0fe86fdc
arm64FerretDBwekan/FerretDBv1.45.0275ae50ac97e6a70eee72e6de37766c458775c5997c896352db5189c6cf1f04b
loong64Node.jsunofficial-builds.nodejs.orgv24.19.0c24f224726f2d785bd18a1fd09f5e6d1fecf0269928451a60c5da9eac8e92e68
loong64FerretDBwekan/FerretDBv1.45.028bf67981168dfc4bd67698b41dd62628aafe347a77f2b1e6ffcadf009d575e0
mac-arm64Node.jsnodejs.orgv24.19.03f1cf157479c1480352083105e13faf9d008ede98e7e157746b6df940d197b94
mac-arm64FerretDBwekan/FerretDBv1.45.0639ed58b84820b3d588f4161c64d0ab940d0cc6e7d022088d60c2b0b97f99f8e
mac-x64Node.jsnodejs.orgv24.19.0d35e95230f46f6f0751df497c56622c6735e05d5e1fb1630996a005b9d328fe4
mac-x64FerretDBwekan/FerretDBv1.45.0fd519903f5630e881e38e7c5814f00c0e89ad26f6785f1ddcbab4058356fc9f3
ppc64leNode.jsnodejs.orgv24.19.0c510c6ce12f07010f771e6edb22a3fe23f4f2e6f40b1ffd4941aed0646a0d8b3
ppc64leFerretDBwekan/FerretDBv1.45.0de4518c7774d302533369c477759ddd866785d6741d98d399388eb8de3df175a
riscv64Node.jsunofficial-builds.nodejs.orgv24.19.0cd1f14af2812148002f58b58a5f9af512a50e3b8e8c148e0db44019dcb68edfd
riscv64FerretDBwekan/FerretDBv1.45.07dc2952f554e8800c4029577901999e06e10272da686f7e402177080067028f9
s390xNode.jsnodejs.orgv24.19.0a4792e65962ffa0af42627aacf1122a60c3c88dbf4e4184f06820d66f9da8ba4
s390xFerretDBwekan/FerretDBv1.45.00ae2e2f2cffdc5dd2ea4f125281a5e12eea216fbe49b5561d9c001700c3fc0c1
win64Node.jsnodejs.orgv24.19.057f71ab3652e797d84acddc79c81cc9ff1c6ddb2a1974cdb83f00fee9bff4c73
win64FerretDBwekan/FerretDBv1.45.0f6337994368a52d011d438c82b914b0cedb3178fd030acac8db3dab8017cee85

i386, armhf, armv7 and win32 have no rows because they are not built this release: nodejs.org publishes no 32-bit x86 or ARMv7 Node 24 and no 32-bit Windows one at all, unofficial-builds has none of them either, and wekan/node-patches has not published its first release yet. Each returns by itself on the first run after a Node.js for it appears - nothing has to be edited for that to happen.

This release changes where the bundled Node.js comes from:

Bundled Node.js - the runtime inside every bundle, image and snap.

Node.js comes from official, then unofficial, then patched builds, and one script decides. Thanks to xet7.

WeKan took its Node.js only from the wekan/node fork, for every platform. That fork is retired in favour of wekan/node-patches, which carries patches rather than a whole Node.js source tree - so the question “where does this platform’s Node.js come from” had to be answered again, and the answer is now three sources tried in order: nodejs.org, then unofficial-builds.nodejs.org, then wekan/node-patches.

The order is a preference, not a last resort. Where nodejs.org publishes a build, that is the one WeKan ships: it is the build the rest of the world runs and its checksums are the ones everyone else verifies against. unofficial-builds covers the CPUs nodejs.org does not release - riscv64 and loong64 - and node-patches covers what neither publishes at all: 32-bit x86, 32-bit ARM and 32-bit Windows.

releases/resolve-node-source.sh is the one place that order and the platform-name mapping live. The bundle jobs (through releases/embed-verified-node.sh), the extra-architecture preflight (releases/check-arch-binaries.sh) and the Dockerfile all ask it, so the image and the .zip of one CPU cannot be built on Node.js from different places - which is exactly what happened when each of them carried its own copy of the walk. The snap copies its node out of the bundle, so it follows with no change of its own, and Sandstorm is amd64-only and untouched.

It answers with the exact file, what shape that file is - nodejs.org and unofficial-builds publish a tarball or a .zip, node-patches a bare binary - and the SHA256 that source published for it. Because it only returns a build it found a published checksum for, the “shipped unverified” path that a missing .sha256sum used to open is gone.

A platform no source has a Node.js for is not built, instead of failing the release. Thanks to xet7.

There is nothing a release run can do about a CPU nobody publishes a runtime for, so it no longer tries: the resolver answers “not found”, the preflight in each bundle job turns that into a skip, and every step after it is gated on that. A red job every release for such a CPU is noise, and when it was an error it took the whole extra-architecture matrix with it - and, through that, the Docker image and the jobs that need it.

Nothing has to be edited when that changes. The next run resolves again, and the platform builds the moment a Node.js for it is published at any of the three sources. That is what the four missing rows in the table above are: i386, armhf, armv7 and win32 are waiting for wekan/node-patches to publish its first release, and they come back by themselves when it does.

A lookup that could not be MADE is kept apart from an answer of “nobody publishes it”: an unreachable nodejs.org is an error, not a reason to skip every platform and call an empty release normal.

The release notes name the source that actually served, not a hardcoded one. Thanks to xet7.

Every bundle job recorded its Node.js provenance row with the literal source wekan/node, whatever had actually served, so the provenance table at the top of the release notes could not answer the one question it exists for. The rows now carry what the embed step reported - nodejs.org, unofficial-builds.nodejs.org or wekan/node-patches - together with the exact URL and the verified SHA256.

The same table is now part of the CHANGELOG too, at the top of each release section under the summary, so which binaries a release carries can be read without a build log that expires. CLAUDE.md describes its shape.

The 32-bit Windows import library moves with the runtime it belongs to. Thanks to xet7.

A 32-bit Windows native addon must link against an ia32 node.lib, and nodejs.org stopped publishing one in Node 23, so node-gyp is pointed at a nodedir built by hand: headers from nodejs.org plus a node-win32.lib. That library came from the retired fork; it now comes from wekan/node-patches, which is also where the node-win32.exe in the bundle comes from. The addons and the runtime they run on are then from the same build.

and has the following developer-facing changes:

The guards pin the three-source order, and no longer pin the fork-only rule they replaced. Thanks to xet7.

tests/releaseNodeSources.test.cjs is new and pins what the change above is worth: that the three sources are tried in that order, that version is the outer loop and source the inner one - so a current patched build beats an ancient official one rather than the other way round - that every consumer asks the one resolver instead of carrying its own walk, that a platform with no Node.js is a skip rather than a failure, and that no file downloads from the retired fork any more.

releaseNodeVerified and releaseArchSkipAndBaseAttach pinned the fork-only rule, which was the correct rule until this release. They are updated to the new one and say in the test why, so the next reader can see it was a decision. Each keeps the assertion that made it valuable: a named version, a verified download, and no path that ships an unverified Node.js.

releaseSnapArches read release: out of ordinary English in a run: block and took the following word for a snap channel; it now keeps only the matches that name one. node-patches, checked out beside WeKan, is added to .meteorignore for the same reason the other sibling repositories are there.

Thanks to above GitHub users for their contributions and translators for their translations.