ipfs / helia

An implementation of IPFS in JavaScript
https://helia.io
Other
878 stars 91 forks source link

Document what runtime environments Helia is tested and supported on #113

Open BigLep opened 1 year ago

BigLep commented 1 year ago

Done Criteria

It is self-service for a user to understand what runtimes the maintainers test Helia with and commit to spending time maintaining (e.g., troubleshooting issues).

Why Important

Sets clear expectations for users as they decide whether to adopt the project. Make clear for maintainers with what level support they need to maintain as they make changes.

Notes

  1. We should be clear about what the is around versinos.
  2. Where we don't support something, let's be clear that we aren't supporting it.
  3. I assume this is largely dependent on js-libp2p's support policy. We can link to that (or if we need to use this as a forcing function to document it, let's create it.)
  4. I assume we're going to say something like:
    • Node JS: current and active LTS versions
    • Browsers
      • Desktop (last two major versions)
        • Chromium
        • Firefox
        • Safari
      • Mobile/Tablet (last two OS releases)
        • Android Chromium
        • iOS/iPadOS Safari
achingbrain commented 1 year ago

Historically supported versions have been covered by the IPFS contributing doc though to be fair, it's looking a bit out of date - still talks about webpack and ES2015 doesn't mention browsers or mobile. It could use updating and linking to from here.

To be able to say we support mobile/tablet we need to be able to run the test suite on those platforms in CI.

The various test runners for each environment are found here in aegir so a mobile-browser.js runner could be added there that would then integrate nicely with UCI.

The structure of all the tests in our stack is that they are written using the mocha testing framework which we execute directly in Node.js, on Electron using electron-mocha, and headlessly in browsers via playwright-test which uses playwright under the hood.

There's an issue open against playwright for supporting mobile browsers that's a few years old now so not sure it they're still working towards that, but it looks like browserstack have made progress in testing on devices using playwright so using an external service might be an option, though debugging becomes a lot harder since you aren't running tests locally at that point.

Some further investigation is needed.