Improve First Contributor Docs / Experience
I first checked the README.md and CONTRIBUTUNG.md files. As a contributor I am missing some documentation around what the initial developer workflow should be and I experience some bugs (might be Mac OS X specific). Some observations:
- I ran the build.sh file and it came up with the warning about not have dotnet 6 installed (I had dotnet 7 installed via Homebrew)
- So I installed dotnet6 via
brew isntall dotnet@6 - I then ran
./build.shagain but of course it just references thedotnetcommand so it still used my default of 7 - I changed each of the calls to
dotnetto be the fullPATHto the dotnet 6 executable e.g.
...
# Release config triggers also "dotnet format"
/opt/homebrew/Cellar/dotnet@6/6.0.114/bin/dotnet build --configuration Release --interactive
/opt/homebrew/Cellar/dotnet@6/6.0.114/bin/dotnet test --configuration Release --no-build --no-restore --interactive
...
- Although the build swapped back to dotnet 7 from time to time (I assume there are other places in the build toolchain that call
dotnetwith out a prefix path it got further but then it failed a test:
Failed SemanticKernel.IntegrationTests.CoreSkills.PlannerSkillTests.CreatePlanShouldHaveIfElseConditionalStatementsAndBeAbleToExecuteAsync(prompt: "If is morning tell me a joke about coffee", expectedAnswerContainsAtLeast: ["function.FunSkill.Joke", 1, "<if condition=\"", 1, "</if>", ...]) [127 ms]
Error Message:
Microsoft.SemanticKernel.Diagnostics.ValidationException : EmptyValue: The Azure endpoint cannot be empty
Stack Trace:
at Microsoft.SemanticKernel.Connectors.AI.OpenAI.AzureSdk.AzureOpenAIClientBase..ctor(String modelId, String endpoint, String apiKey, IDelegatingHandlerFactory handlerFactory, ILogger log) in /Users/martijnverburg/Documents/workspace/microsoft/semantic-kernel/dotnet/src/Connectors/Connectors.AI.OpenAI/AzureSdk/AzureOpenAIClientBase.cs:line 47
at Microsoft.SemanticKernel.Connectors.AI.OpenAI.TextCompletion.AzureTextCompletion..ctor(String modelId, String endpoint, String apiKey, IDelegatingHandlerFactory handlerFactory, ILogger log) in /Users/martijnverburg/Documents/workspace/microsoft/semantic-kernel/dotnet/src/Connectors/Connectors.AI.OpenAI/TextCompletion/AzureTextCompletion.cs:line 32
at Microsoft.SemanticKernel.KernelConfigOpenAIExtensions.<>c__DisplayClass0_0.<AddAzureTextCompletionService>g__Factory|0(IKernel kernel) in /Users/martijnverburg/Documents/workspace/microsoft/semantic-kernel/dotnet/src/Connectors/Connectors.AI.OpenAI/KernelConfigOpenAIExtensions.cs:line 36
at Microsoft.SemanticKernel.Kernel.GetService[T](String name) in /Users/martijnverburg/Documents/workspace/microsoft/semantic-kernel/dotnet/src/SemanticKernel/Kernel.cs:line 246
at Microsoft.SemanticKernel.Kernel.<CreateSemanticFunction>b__33_0() in /Users/martijnverburg/Documents/workspace/microsoft/semantic-kernel/dotnet/src/SemanticKernel/Kernel.cs:line 330
at Microsoft.SemanticKernel.Orchestration.SKFunction.SetAIService(Func`1 serviceFactory) in /Users/martijnverburg/Documents/workspace/microsoft/semantic-kernel/dotnet/src/SemanticKernel/Orchestration/SKFunction.cs:line 206
at Microsoft.SemanticKernel.Kernel.CreateSemanticFunction(String skillName, String functionName, SemanticFunctionConfig functionConfig) in /Users/martijnverburg/Documents/workspace/microsoft/semantic-kernel/dotnet/src/SemanticKernel/Kernel.cs:line 330
at Microsoft.SemanticKernel.Kernel.RegisterSemanticFunction(String skillName, String functionName, SemanticFunctionConfig functionConfig) in /Users/martijnverburg/Documents/workspace/microsoft/semantic-kernel/dotnet/src/SemanticKernel/Kernel.cs:line 94
at Microsoft.SemanticKernel.KernelExtensions.ImportSemanticSkillFromDirectoryExtension.ImportSemanticSkillFromDirectory(IKernel kernel, String parentDirectory, String skillDirectoryName) in /Users/martijnverburg/Documents/workspace/microsoft/semantic-kernel/dotnet/src/SemanticKernel/KernelExtensions/ImportSemanticSkillFromDirectory.cs:line 97
at SemanticKernel.IntegrationTests.TestHelpers.GetSkill(String skillName, IKernel target) in /Users/martijnverburg/Documents/workspace/microsoft/semantic-kernel/dotnet/src/SemanticKernel.IntegrationTests/TestHelpers.cs:line 40
at SemanticKernel.IntegrationTests.CoreSkills.PlannerSkillTests.CreatePlanShouldHaveIfElseConditionalStatementsAndBeAbleToExecuteAsync(String prompt, Object[] expectedAnswerContainsAtLeast) in /Users/martijnverburg/Documents/workspace/microsoft/semantic-kernel/dotnet/src/SemanticKernel.IntegrationTests/CoreSkills/PlannerSkillTests.cs:line 128
--- End of stack trace from previous location ---
I suspect that makes sense as it wants an OpenAI or Azure OpenAI key, but overall the developer experience isn't a smooth run the build and it works experience. So some extra docs / prompts in the build scripts are likely needed
@karianna thanks for bringing this up, we will take a look
@matthewbolanos can you see if we are missing mac steps here?
I am not able to repo this. Closing this with the assumption that the problem has now been fixed since this issue is fairly old. Please reopen if there are still issues.