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

Why use a lower version of Golang #792

Closed
helbing opened this issue Sep 23, 2022 · 15 comments
Closed

Why use a lower version of Golang #792

helbing opened this issue Sep 23, 2022 · 15 comments
Labels

Comments

@helbing
Copy link
Contributor

helbing commented Sep 23, 2022

Your question

Why use go1.14? Can I upgrade it to the latest version go1.19?

@seeflood
Copy link
Member

We can't upgrade because Layotto has a dependency on MOSN, and MOSN use go 1.14 :(
MOSN can't upgrade because of some incompatible issues which I don't know. @nejisama Do you know why?

@seeflood
Copy link
Member

MOSN can't upgrade because of some incompatible issues

Some MOSN production users use a modified version of go runtime, and they don't want to upgrade for now

@helbing
Copy link
Contributor Author

helbing commented Sep 23, 2022

MOSN can't upgrade because of some incompatible issues

Some MOSN production users use a modified version of go runtime, and they don't want to upgrade for now

It seems bad. It's not good for an open-source project that can't use the new features of Golang. So, does Layotto have any plans to reduce opaque dependencies?

@wenxuwan
Copy link
Member

MOSN can't upgrade because of some incompatible issues

Some MOSN production users use a modified version of go runtime, and they don't want to upgrade for now

It seems bad. It's not good for an open-source project that can't use the new features of Golang. So, does Layotto have any plans to reduce opaque dependencies?

Why upgrade the golang version? Do you need any new features?

@helbing
Copy link
Contributor Author

helbing commented Sep 24, 2022

MOSN can't upgrade because of some incompatible issues

Some MOSN production users use a modified version of go runtime, and they don't want to upgrade for now

It seems bad. It's not good for an open-source project that can't use the new features of Golang. So, does Layotto have any plans to reduce opaque dependencies?

Why upgrade the golang version? Do you need any new features?

Not for now. I want to contribute testing tools to Layotto to add more test cases for reliability. Maybe I will use Generics, Fuzzing, or not. They are unnecessary. On the other hand, I may use a package with new features of Golang that make me have to use this package with a low version. It may have bugs that fix in the high one. And I can't use the new features of this package too. It's not friendly for coding that has to pay attention to too many things. And this is why Dapr, Kubernetes, and other open-source projects always upgrade to the latest go version.

@helbing
Copy link
Contributor Author

helbing commented Sep 24, 2022

I see a To-do, Layotto without MOSN, in the project Deployment on multiple clouds. What it will do? How about it priority? @seeflood @wenxuwan

@seeflood
Copy link
Member

seeflood commented Sep 24, 2022

I see a To-do, Layotto without MOSN, in the project Deployment on multiple clouds. What it will do? How about it priority? @seeflood @wenxuwan

We found that legacy systems often have their own rpc framework and don't want to migrate to mosn. They just want to use Layotto apis without RPC feature. This "todo" aims to solve this problem.
This means we have to support two modes:
Layotto-on-mosn (default mode)
Layotto-without-mosn

It's just an idea and still up for discussion :)

@seeflood
Copy link
Member

seeflood commented Sep 24, 2022

MOSN can't upgrade because of some incompatible issues

Some MOSN production users use a modified version of go runtime, and they don't want to upgrade for now

It seems bad. It's not good for an open-source project that can't use the new features of Golang. So, does Layotto have any plans to reduce opaque dependencies?

Why upgrade the golang version? Do you need any new features?

Not for now. I want to contribute testing tools to Layotto to add more test cases for reliability. Maybe I will use Generics, Fuzzing, or not. They are unnecessary. On the other hand, I may use a package with new features of Golang that make me have to use this package with a low version. It may have bugs that fix in the high one. And I can't use the new features of this package too. It's not friendly for coding that has to pay attention to too many things. And this is why Dapr, Kubernetes, and other open-source projects always upgrade to the latest go version.

@helbing I agree that using a low version golang is bad 😢 But it takes time to push production users to upgrade.
Is there a short-term, compromise solution? How about we put the tools in a separate go module or a separate repository, and use a higher version of golang in it?
For example, I put the code generator in a seperate repo https://github.com/seeflood/protoc-gen-p6 and use golang 1.16 in it. I'll move it to the layotto organization when I'm sure the license is fine.

@helbing
Copy link
Contributor Author

helbing commented Sep 25, 2022

MOSN can't upgrade because of some incompatible issues

Some MOSN production users use a modified version of go runtime, and they don't want to upgrade for now

It seems bad. It's not good for an open-source project that can't use the new features of Golang. So, does Layotto have any plans to reduce opaque dependencies?

Why upgrade the golang version? Do you need any new features?

Not for now. I want to contribute testing tools to Layotto to add more test cases for reliability. Maybe I will use Generics, Fuzzing, or not. They are unnecessary. On the other hand, I may use a package with new features of Golang that make me have to use this package with a low version. It may have bugs that fix in the high one. And I can't use the new features of this package too. It's not friendly for coding that has to pay attention to too many things. And this is why Dapr, Kubernetes, and other open-source projects always upgrade to the latest go version.

@helbing I agree that using a low version golang is bad 😢 But it takes time to push production users to upgrade. Is there a short-term, compromise solution? How about we put the tools in a separate go module or a separate repository, and use a higher version of golang in it? For example, I put the code generator in a seperate repo https://github.com/seeflood/protoc-gen-p6 and use golang 1.16 in it. I'll move it to the layotto organization when I'm sure the license is fine.

Yeah, it’s a big thing to push production users to upgrade. Well, I will develop the testing tools first through the method you provide. 😁

@seeflood
Copy link
Member

@helbing Thanks!
By the way, I'm curious about the testing tools you mentioned. Do you mean to add more unit test cases, or write a standalone tool? Could u briefly introduce your design?

@helbing
Copy link
Contributor Author

helbing commented Sep 26, 2022

@helbing Thanks! By the way, I'm curious about the testing tools you mentioned. Do you mean to add more unit test cases, or write a standalone tool? Could u briefly introduce your design?

It's for integration testing. Is someone working on this now? I write a package to automatically up & down the environment through docker-compose when testing. But it still has some problems. #796

@seeflood
Copy link
Member

seeflood commented Sep 26, 2022

@helbing We have a very simple integration test script and you can run it with make integrate-runtime.
It's too simple and @bxiiiiii submitted a PR to improve it, see #795 and #415
Can we merge your tool and his improvement into one?

@helbing
Copy link
Contributor Author

helbing commented Sep 26, 2022

@seeflood Of course, but please give me a few days to improve the package. It still has some problems.

@github-actions
Copy link

This issue has been automatically marked as stale because it has not had recent activity in the last 30 days. It will be closed in the next 7 days unless it is tagged (pinned, good first issue or help wanted) or other activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale label Oct 27, 2022
@github-actions
Copy link

github-actions bot commented Nov 4, 2022

This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as pinned, good first issue or help wanted. Thank you for your contributions.

@github-actions github-actions bot closed this as completed Nov 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants