microsoft / vscode-azurefunctions

Azure Functions extension for VS Code
https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurefunctions
MIT License
290 stars 131 forks source link

Make azureFunctions.javaBuildTool optional to support JVM based languages #3361

Open xlight05 opened 1 year ago

xlight05 commented 1 year ago

Hi all, I'm trying to implement tooling support for Azure functions for a JVM based language named Ballerina.

From by executing bal build I'm trying to generate .vscode folder in the project directory with necessary .jsons.

Following is my setting.json

{
  "azureFunctions.deploySubpath": "target/azure_functions",
  "azureFunctions.projectRuntime": "~3",
  "debug.internalConsoleOptions": "neverOpen",
  "azureFunctions.projectLanguage": "Java"
}

When I have this command, I'm getting an error in the local function explorer as I don't have a pom.xml in the project directory. I only have a .jar file.

image

image

Is there a way to make the build tool optional? I notched maven is the default.

To add few more details, I compiled .jar file with graalvm and set the projectLanguage to Custom and everything worked just smoothly. Do we have a workaround for this?

nturinski commented 1 year ago

@Flanker32 Could you please take a look at this issue? Specifically, is it possible to make the Maven build tool optional?

xlight05 commented 1 year ago

Hi @nturinski and @Flanker32 , Any update on this? If this is ok to be done, I also can work on this and contribute ;)

nturinski commented 1 year ago

@xlight05 I'm not super familiar with the Java part of our codebase, but I think Maven is a dependency to get the function templates. But I see why we have to enforce people use maven for the java build tool.

@Flanker32 Please let us know if you have any thoughts about this.

Flanker32 commented 1 year ago

@xlight05 Thanks a lot for your help and efforts! For java function project, we do need to package the project with maven or gradle plugin, as we need to generate the function.json for each trigger, which was done by maven/gradle functions plugin. For Ballerina, shall we make it a new language instead of Java?

xlight05 commented 1 year ago

@xlight05 Thanks a lot for your help and efforts! For java function project, we do need to package the project with maven or gradle plugin, as we need to generate the function.json for each trigger, which was done by maven/gradle functions plugin. For Ballerina, shall we make it a new language instead of Java?

@Flanker32 Alright then, Several things before i get started,

  1. Are there any contributing guides apart from wiki and build steps in Readme?
  2. Are there any samples for adding languages?
  3. Are there any slack/discord or any other IMs, where I can reach you guys to get the feedback for the implementation?
Flanker32 commented 1 year ago

@xlight05 Sorry for the late response

  1. Are there any contributing guides apart from wiki and build steps in Readme?

I'm not sure whether there are any other documents for it, my team only focus on the Functions Java support, @nturinski may have more knowledge

  1. Are there any samples for adding languages?

You may refer the implementation for Java, mostly including the following part

@nturinski Do we have any slack/discord or teams channel for VSCode extension?

xlight05 commented 1 year ago

@xlight05 Sorry for the late response

  1. Are there any contributing guides apart from wiki and build steps in Readme?

I'm not sure whether there are any other documents for it, my team only focus on the Functions Java support, @nturinski may have more knowledge

  1. Are there any samples for adding languages?

You may refer the implementation for Java, mostly including the following part

  1. Are there any slack/discord or any other IMs, where I can reach you guys to get the feedback for the implementation?

@nturinski Do we have any slack/discord or teams channel for VSCode extension?

Thanks, I'll have a look. Let me know if there is a IM channel for vscode extension :)

nturinski commented 1 year ago

@xlight05 Hi, we don't have any slack/discord channel for the Azure Tools for VS Code extension team, but please feel free to ask any questions either in the issue or as comments in a PR if you do contribute this code 😊

xlight05 commented 1 year ago

@nturinski Hii, Thanks.

Sorry, I couldn't find a time to allocate into this yet. However, I went through the codebase and I have some idea on the implementation now. Handling templates is kinda tricky. I'm planning to start the implementation in 1 or 2 weeks. I'll post here if I get any questions or issues. ;)

xlight05 commented 1 year ago

Hi @nturinski I've sent the PR for this. Can you please review/ or assign someone to review the PR when you can? https://github.com/microsoft/vscode-azurefunctions/pull/3584

xlight05 commented 1 year ago

Hi guys, Can we get someone to review the PR, please? Tagging some known team members to get some attention. @nturinski @Flanker32 @alexweininger @ejizba @MicroFish91

nturinski commented 1 year ago

I'm so sorry @xlight05, it's been a very busy couple of months for the team and we've been at max bandwidth. We really appreciate your contribution to the extension and I'll make reviewing my priority in early April.

xlight05 commented 1 year ago

Its okayy, take your time ;) Thanks a lot for the update :smile:

nturinski commented 1 year ago

I did a preliminary review though and it looks very good to me. I really appreciate how closely you followed our design patterns ☺️

xlight05 commented 1 year ago

I did a preliminary review though and it looks very good to me. I really appreciate how closely you followed our design patterns

Thankss, The existing codebase makes it extremely easy to introduce new features even for a first-time contributor like me. It made my life so muchh easier :smile: