Azure / Azure/azure-sdk-tools

Cleanup Emitter helper functions in language repos

Open
#9,417 0 comments 0 reactions 0 assignees View on GitHub
Automation Tool Central-EngSys
Dominant language
C#
Stars
135
Forks
260
Avg merge
3d 1h
Merged PRs (30d)
143

Description

The main 4 repos have the following common functions in the `Language-Settings.ps1` file. As part of cleaning previous tooling, we should delete these functions.

These are only used by the https://github.com/Azure/azure-sdk-tools/blob/main/eng/common/scripts/TypeSpec-Project-Generate.ps1

[.NET](https://github.com/Azure/azure-sdk-for-net/blob/main/eng/scripts/Language-Settings.ps1#L419C1-L425C2):
```
function Get-dotnet-EmitterName() {
return "@azure-tools/typespec-csharp"
}

function Get-dotnet-EmitterAdditionalOptions([string]$projectDirectory) {
return "--option @azure-tools/typespec-csharp.emitter-output-dir=$projectDirectory/src"
}
```

[Java](https://github.com/Azure/azure-sdk-for-java/blob/main/eng/scripts/Language-Settings.ps1#L515C1-L521C2):
```
function Get-java-EmitterName() {
return "@azure-tools/typespec-java"
}

function Get-java-EmitterAdditionalOptions([string]$projectDirectory) {
return "--option @azure-tools/typespec-java.emitter-output-dir=$projectDirectory/"
}
```

[Python](https://github.com/Azure/azure-sdk-for-python/blob/main/eng/scripts/Language-Settings.ps1#L443C1-L449C2)
```
function Get-python-EmitterName() {
return "@azure-tools/typespec-python"
}

function Get-python-EmitterAdditionalOptions([string]$projectDirectory) {
return "--option @azure-tools/typespec-python.emitter-output-dir=$projectDirectory/"
}
```

[JS](https://github.com/Azure/azure-sdk-for-js/blob/main/eng/scripts/Language-Settings.ps1#L25C1-L31C2)
```
function Get-javascript-EmitterName() {
return "@azure-tools/typespec-ts"
}

function Get-javascript-EmitterAdditionalOptions([string]$projectDirectory) {
return "--option @azure-tools/typespec-ts.emitter-output-dir=$projectDirectory/"
}
```

Contributor guide

Open the contributing guide

Research direction

Start with the four linked Language-Settings.ps1 files in the .NET, Java, Python, and JS repositories, and review their use by eng/common/scripts/TypeSpec-Project-Generate.ps1. Remove the listed Emitter helper functions from each file; the work is done when those functions are gone from all four repositories.

Written by the indexing model from the issue text.

Assessment

Tech stack
powershell
Domain
tooling
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.