Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Support Policy, update tests and release a new tag #66

Open
inliquid opened this issue Oct 1, 2024 · 3 comments
Open

Add Support Policy, update tests and release a new tag #66

inliquid opened this issue Oct 1, 2024 · 3 comments

Comments

@inliquid
Copy link
Contributor

inliquid commented Oct 1, 2024

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
@evacchi
Copy link
Contributor

evacchi commented Oct 2, 2024

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.

@inliquid
Copy link
Contributor Author

inliquid commented Oct 2, 2024

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
Copy link
Contributor Author

inliquid commented Oct 2, 2024

Updated issue according to comment above by Edoardo.

inliquid added a commit to inliquid/go-plugin that referenced this issue Nov 7, 2024
- Update tests

Closes knqyf263#66

Signed-off-by: Alex In <[email protected]>
inliquid added a commit to inliquid/go-plugin that referenced this issue Nov 7, 2024
- Update tests

Closes knqyf263#66

Signed-off-by: Alex In <[email protected]>
inliquid added a commit to inliquid/go-plugin that referenced this issue Nov 7, 2024
- Update tests

Closes knqyf263#66

Signed-off-by: Alex In <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants