paritytech/substrate-api-sidecar

[Question] polkadot node version compatibility

paulvi opened this issue · 3 comments

This repository does great job of keeping track of polkadot-js @polkadot/api version and breaking changes.

I wonder if there is place currently (or take is documentation feature request)
to track polkadot node version compatibility

For example, thelatest polkadot node version is 0.9.9-1, it maybe not yet supported over blocking bug,
yet (let's say) the latest sidecar version 9.1.9 is known to work well with Polkadot v0.9.8

So resulted compatibility table would give what version range of sidecar is would work with specific polkadot node version

Table as an example

sidecar version polkadot-js version polkadot node version
not yet 0.9.9-1
9.1.9 v0.9.8
9.x v0.9.x
8.x v0.8
7.x
6.x

P.S. Yes, I know that RPC is defined by substrate version, but it would just add one more column
and should be internally managed by polkadot node repository https://github.com/paritytech/polkadot

Proposed Change or Idea

[docs] polkadot node version compatibility

Alternatives

Just learning the situation

Additional Information

Yea I think this is a great opportunity to explore ways to inform users what SAS versions work with what polkadot runtimes.

I would say and recommend that the best way moving forward is to inform the users in the release notes. Something like the following may work.

"v9.1.9 is tested and compatible with polkadot runtime up to v0.9.9"

As I do like the idea of having a table, we already put a lot of work in ensuring things are backwards compatible when using the most recent stable version. Because substrate and polkadot is constantly evolving as well it is very unlikely for users to use very old historic versions, as the amount of potential breaks could be very large, and difficult to debug.

For now I will put up a PR that updates the docs for releases, where we will mention in the release notes what most recent runtime Sidecar is tested against and compatible with.

It is OK to have breaking changes,
it just should be clear

I usually recall android example
https://sites.google.com/a/android.com/tools/tech-docs/new-build-system/version-compatibility
image

After some discussion, and thoughts instead of having a table as it would be a lot of work to keep up, in all the release notes moving forward I will write down the polkadot runtimes the current release was tested against, and the versions of polkadot-js that it is using. I like the idea of informing users what compatibility looks like. The reason for being opposed to the table is because sidecar is a quickly evolving library since its built on top of the polkadot ecosystem meaning its going to keep growing and changing fairly fast, and older versions are going to be completely obsolete, therefore keeping compatibility within the release notes I think is appropriate.

Going to close this issue as I have started to add compatibility to the release notes.