Skip to content

Go Support #649

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

Closed
ctompkinson opened this issue Nov 30, 2018 · 28 comments
Closed

Go Support #649

ctompkinson opened this issue Nov 30, 2018 · 28 comments
Labels
feature-request New feature or enhancement. May require GitHub community feedback. new-language-support

Comments

@ctompkinson
Copy link

ctompkinson commented Nov 30, 2018

We're starting to use SAM and it would be useful to have a plugin like this to make development easier but we use primarily Golang for lambdas.

Would it be easy/possible to add support for Goland?

@abrooksv
Copy link
Contributor

We actually did prototype it. We will most likely wait for SAM build to add Go support, please request the feature for Go here: https://github.com/awslabs/aws-lambda-builders

@abrooksv abrooksv added the feature-request New feature or enhancement. May require GitHub community feedback. label Nov 30, 2018
@msummers
Copy link

msummers commented Apr 3, 2019

It looks like aws-lambda-builders supports both dep and modules at this point- any update?

@abrooksv
Copy link
Contributor

abrooksv commented Apr 3, 2019

If I understand go's debugging requirements correctly, it has to be compiled with certain flags to make the build debuggable.

aws-lambda-builders currently does not support "debug" artifacts.
aws/aws-sam-cli#1095 is a design doc for debug builds, but concentrates on .NET first.

@abrooksv
Copy link
Contributor

abrooksv commented Apr 4, 2019

@msummers
Copy link

msummers commented Apr 4, 2019

Thanks for the update

@rpoitras
Copy link

rpoitras commented May 6, 2019

As @abrooksv points out, Go debugging with 1.10 and up works best with these debug flags, -gcflags="all=-N -l". Debugging with no flags works, but not all data on the stack is available.

I would love to see GoLand support AWS toolkit.

@jackmcguire1
Copy link

bump

@jbeisser
Copy link

This seems like a no brainer. aws-sam-cli supports it with sam init -r go, and creates a starting template. From there, it has existing template.yaml ready to go. Just being able to define the runtime as go1.x or go would be a great start.

@wberrycdoor
Copy link

+1

@GeorgeGkinis
Copy link

Any update on this?

@AmudaPalani
Copy link

+1

@isereb
Copy link

isereb commented Feb 13, 2020

pleeeeease

@jackmcguire1
Copy link

jackmcguire1 commented Feb 15, 2020

AWS SAM now supports go build for modules

So what are we waiting for ;)

AWS SAM v0.41.0

@serverhorror
Copy link

Is there anything that keeps this from working in Goland?

@abrooksv
Copy link
Contributor

abrooksv commented Mar 6, 2020

Is there anything that keeps this from working in Goland?

Depends on what features you want. The S3 browser would work, but the Lambda debugging feature would not since the internal Lambda extension points have not been implemented for Go.

@serverhorror
Copy link

Browsing and "deploy this function" would be good enough to get started.

I'm not sure whether that's possible from your end but I'd rather have a few of the features than nothing at all. Since this "half-baked install" (sorry, I lack proper words) is quite possible in IntelliJ people are most likely already using this. It's just that Goland is excluded. I know nothing about JetBrains plugin development but I'd guess it's just some sort of descriptor that says whether this plugin is supposed to work.

Do you think it is possible to let Goland get this via normal plugin mechanisms soon-ish? I'd rather not have to wait another year because of external dependencies and enjoy better integration with the overall toolchain. Debugging, it seems, is not possible whether I have the plugin available to me or not (I hope I'm understanding this correctly).

@abrooksv
Copy link
Contributor

abrooksv commented Mar 6, 2020

@serverhorror What are you referring to when you say "half-baked install"?

@serverhorror
Copy link

Sorry that was bad wording on my side. I'm not a native speaker and that wasn't meant to come over negative!

(Let me try again ;) )
I think you can totally release this for GoLand. aws-sam-cli -- and the rest of the ecosystem -- support what it supports. I'm very much fine with that and would like to enjoy all the shortcuts the IDEs (like PyCharm) give me. Especially right clicking on on template.yaml and quickly being able to deploy or redeploy. Pretty please? (insert cute/funny/nice animated GIV here to make you release it)

Sorry again, my fingers were way faster than my brain. I promise to try and do better -- I live the toolkit in JetBrains and will definitely pay you a beverage of your choice if you ever come to Vienna. (Sorry can't offer any other sorts of bribes)

@abrooksv
Copy link
Contributor

abrooksv commented Mar 6, 2020

Sorry that was bad wording on my side. I'm not a native speaker and that wasn't meant to come over negative!

(Let me try again ;) )
I think you can totally release this for GoLand. aws-sam-cli -- and the rest of the ecosystem -- support what it supports. I'm very much fine with that and would like to enjoy all the shortcuts the IDEs (like PyCharm) give me. Especially right clicking on on template.yaml and quickly being able to deploy or redeploy. Pretty please? (insert cute/funny/nice animated GIV here to make you release it)

Sorry again, my fingers were way faster than my brain. I promise to try and do better -- I live the toolkit in JetBrains and will definitely pay you a beverage of your choice if you ever come to Vienna. (Sorry can't offer any other sorts of bribes)

No offense taken, was just asking for clarification.

@sliedig
Copy link

sliedig commented May 14, 2020

+1 to supporting Goland IDE

@abrooksv
Copy link
Contributor

We have enabled listing of the plugin in Goland.

To be clear, there are no Go specific features, but the features like S3 browser and CloudWatch logs are available.

@jbeisser
Copy link

@abrooksv, is there full Go support in the roadmap for the AWS Toolkit?

@hunterwerlla hunterwerlla changed the title Goland & Go Support Go Support Jun 25, 2020
@sidpat
Copy link

sidpat commented Oct 20, 2020

Any update on running/debugging golang lambda locally in goland?

@mousedownmike
Copy link

I have the AWS Toolkit installed in GoLand and it looks like it is getting closer to full support of Go. Is this the best issue to follow for tracking progress? I'm specifically hoping to be able to run my SAM Lambdas and API Gateways with IDEA Run Configs.

The "play" gutter icons appear in the SAM templates and they bring up the (pretty slick looking) run dialog. Unfortunately it shows "Error: The runtime 'go1.x' is unsupported.' in the bottom of the dialog.

@justinmk3
Copy link
Contributor

justinmk3 commented Nov 14, 2020

Is this the best issue to follow for tracking progress?

Yes. And we'll update this issue if/when we break out more granular steps.

Thanks for the feedback!

@abrooksv
Copy link
Contributor

The "play" gutter icons appear in the SAM templates and they bring up the (pretty slick looking) run dialog. Unfortunately it shows "Error: The runtime 'go1.x' is unsupported.' in the bottom of the dialog.

Hmmm, well that's a bad experience, we should show the gutter icon based on the presence of the aws.toolkit.lambda.builder extension point for that runtime so we don't give the false impression it is supported.

@abrooksv
Copy link
Contributor

Work started in https://github.com/aws/aws-toolkit-jetbrains/tree/feature/go

#2277
#2280
#2284

@abrooksv
Copy link
Contributor

abrooksv commented Apr 6, 2021

Our first release with Go support has reached our EAP channel. If anyone wants to give it a test drive and let us know of any issues, the link to download it for 2020.3 is https://plugins.jetbrains.com/plugin/11349-aws-toolkit/versions/EAP/115843

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request New feature or enhancement. May require GitHub community feedback. new-language-support
Projects
None yet
Development

No branches or pull requests