go-plugin icon indicating copy to clipboard operation
go-plugin copied to clipboard

Add Support Policy, update tests and release a new tag

Open inliquid opened this issue 1 year ago • 3 comments

Hi @knqyf263

I finally had time to look into issue mentioned in this thread.

I can't reproduce this problem on my systems. Have tried Ubuntu 22.04 and older Ubuntu 20.04. Installed go1.20.14 + tinygo-v0.29.0 (same as in failing tests), and all passed when running make test.

And there is also at least one example when test on tinygo-v0.29.0 did PASS on github runner -> here.

At the moment there is one example of failing test with tinygo-v0.29.0 -> here.

I think it could be sort of flaky test related to particular version of tinygo, or maybe related to environment (github runner). No evidence of failing tests on modern tinygo versions so far.

Since go-plugin itself is built on top of Wazero, I think first of all it makes sense to clarify its compatibility policy. For instance, Wazero says following:

wazero follows the same version policy as Go's Release Policy: two versions. wazero will ensure these versions work and bugs are valid if there's an issue with a current Go version.

So for the current version of Go (go1.23), it's go1.23 and go1.22. What I don't quite get is next sentence:

Additionally, wazero intentionally delays usage of language or standard library features one additional version. For example, when Go 1.29 is released, wazero can use language features or standard libraries added in 1.27. This is a convenience for embedders who have a slower version policy than Go. However, only supported Go versions may be used to raise support issues.

Does that mean that currently Wazero also supports go1.21? Maybe @evacchi could clarify this point.

Update: answered in comment:

no, it means that the team might decide not to use any feature of go1.22 and instead consider only the subset of features that were already present in go1.21. I don't think this policy is followed strictly these days.

It still means that we start at 1.22.

So I think that go-plugin compatibility policy needs to be in line with Wazero. If go1.21 is least supported version, then same should go for go-plugin.

There is also good document which describes mapping between big Go and tinygo versions, but unfortunately, outdated. Opened an issue about it.

According to tinygo releases page tinygo-v0.29.0 supports Go up to 1.21. ~~If above correct, then taking in account Wazero support policy, this version still needs to be supported,~~ however once go1.24 is released it should be dropped and tests for tinygo-v0.29.0 removed.

I would like to propose following (updated):

  1. Add go-plugin support policy explaining that it goes in line with Wazero
  2. Update current tests to support modern tinygo versions (0.32.0 and 0.33.0), since minimal Go version supported by Wazero at the moment is 1.22, drop support for tinygo-v0.29.0 and remove corresponding test
  3. Release a new tag with already merged fix for 0.32.0 and 0.33.0

inliquid avatar Oct 01 '24 16:10 inliquid

Does that mean that currently Wazero also supports go1.21? Maybe @evacchi could clarify this point.

no, it means that the team might decide not to use any feature of go1.22 and instead consider only the subset of features that were already present in go1.21. I don't think this policy is followed strictly these days.

It still means that we start at 1.22.

evacchi avatar Oct 02 '24 08:10 evacchi

no, it means that the team might decide not to use any feature of go1.22 and instead consider only the subset of features that were already present in go1.21. I don't think this policy is followed strictly these days.

It still means that we start at 1.22.

Thanks! That makes sense. In such case we do not need to support tinygo-v0.29.0, because it works only with Go versions up to 1.21. Test for v0.29.0 should just be replaced with tests for v0.32.0 and v0.33.0.

inliquid avatar Oct 02 '24 11:10 inliquid

Updated issue according to comment above by Edoardo.

inliquid avatar Oct 02 '24 11:10 inliquid

I think we can close this already.

inliquid avatar Mar 19 '25 12:03 inliquid