js-ipfs Running OrbitDB tests in js-ipfs CI - JavaScript

This is an idea that's been discussed between me and a few of the js-ipfs devs, as well as @autonome.

Context OrbitDB is a popular library that builds on top of IPFS. It is a distributed database system that uses the IPFS DAG to store its operations log in a data structure called a CRDT. It interfaces with IPFS via either an in-process js-ipfs node or via the IPFS HTTP API via js-ipfs-http-client. Right now, the OrbitDB devs must pay "catch up" when a new js-ipfs release comes out, and as such we are not able to immediately use the latest and greatest features of IPFS.

Proposal What I'd like to propose is to write a GitHub action that runs the battery of OrbitDB tests on the pull requests this repository. Ideally, it would only respond to changes in code to either packages/ipfs and packages/ipfs-http-client.

I don't expect that these checks would necessarily block any merges to code, since there may be changes required in OrbitDB's code itself, but it will be extremely useful to learn about such things far sooner, so that the OrbitDB devs can move much faster. In a perfect world, we could release OrbitDB versions in lock-step with IPFS versions.

Asked Feb 09 '23 06:02
avatar aphelionz

5 Answer:

We already have something like this - see the external - orbit-db job in .travis.yml.

The external project tests run after an RC has been published, which happens with every commit to master. They work by checking out the target repo & running their tests, if they pass, it switches any ipfs or ipfs-http-client dependencies for the latest RC and runs the tests again.


  1. They've been allowed to fail since the async/await API refactor in v0.41.0 while people make the upgrade, I just need to go through them all and re-enable the ones who have upgraded
  2. It looks like you pulled ipfs out of the dev deps a while ago so this won't work any more as is

All you need to do is add ipfs back to the dev deps of orbit-db and use it in your tests or create another repo that runs the orbit-db tests with ipfs as a dependency and I can re-enable this.

It won't run on PRs, but the intention is that it should block js-ipfs releases. It can run against the target repo's master or arbitrary branches or tags in case there's an unreleased fix for whatever's breaking things.

Answered Jul 30 '20 at 07:56
avatar  of achingbrain

Assuming stale. See https://github.com/ipfs/js-ipfs/pull/3479#issuecomment-817860890, feel free to reopen if still something you want to do.

Answered Apr 12 '21 at 14:31
avatar  of lidel

I've made branches for orbit-db and ipfs-log that use the newer version of our test utility and have the ipfs packages as local dev dependencies.

What is the next step we need to handle? Getting the changes merged into their respective master branches?

Answered Apr 14 '21 at 22:37
avatar  of tabcat

i was trying to implement this on my end but the problem is we are not in a same page. i created events on michael jackson outfit and its going good. you can check as well.

Answered Jan 05 '23 at 08:01
avatar  of John Tin
John Tin

Unable to embed the code of js can you please help me with the source file because I have to use in my web professional essay writers uk my students are waiting for getting their assignment back.

Answered Feb 09 '23 at 06:02
avatar  of Marie Willie
Marie Willie