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

Updating coretools to detect unsupported inproc6 sdk scenario #3825

Merged
merged 18 commits into from
Oct 3, 2024

Conversation

surgupta-msft
Copy link
Contributor

@surgupta-msft surgupta-msft commented Sep 17, 2024

Issue describing the changes in this PR

resolves #3816, #3854

Our goal is to detect if OOP host is getting inproc payload and log the message to update the sdk to the latest and exit. Discussion in comment - #3825 (comment)

File artifactsconfig.json - It's a new config file we are introducing with this PR - it may or may not be present in coretools. Any changes that should go to visual studio and not to cli/vscode can have this check - IsMinifiedVersion() = true. In BuildSteps.cs, we create minified version of coretools for Visual Studio case - link.

For now, artifactsconfig.json has only below content -

{
    "minifiedVersion" : true
}

Pull request checklist

@surgupta-msft surgupta-msft marked this pull request as ready for review September 18, 2024 18:33
@surgupta-msft surgupta-msft requested a review from a team as a code owner September 18, 2024 18:33
Copy link
Contributor

@mattchenderson mattchenderson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this PR be targeting the other PR branch? We should land this, as it will release ahead of the OOP Core Tools changes, right?

@fabiocav
Copy link
Member

Should this PR be targeting the other PR branch? We should land this, as it will release ahead of the OOP Core Tools changes, right?

Discussed this with @mattchenderson and we're good with the changes against the feature branch. This will give us the ability to update the SDK first while retaining support for in-proc with the default version of Core Tools.

@mattchenderson mattchenderson linked an issue Sep 19, 2024 that may be closed by this pull request
@Azure Azure deleted a comment from fabiocav Sep 24, 2024
Base automatically changed from aibhandari/core-tools-oop to feature/oop-host September 24, 2024 19:05
@aishwaryabh aishwaryabh requested a review from a team as a code owner September 24, 2024 19:05
@surgupta-msft surgupta-msft reopened this Sep 24, 2024
@fabiocav fabiocav requested a review from soninaren September 25, 2024 20:27
@surgupta-msft surgupta-msft force-pushed the surgupta/coretools-sdk-inproc branch from 2a6e3f8 to a3450b0 Compare September 25, 2024 22:07
Copy link
Contributor

@jviau jviau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Won't block this on the details of using IConfigurationBuilder here. Maybe we can revisit later.

src/Azure.Functions.Cli/ArtifactsConfigurationBuilder.cs Outdated Show resolved Hide resolved
@jviau
Copy link
Contributor

jviau commented Sep 30, 2024

I'd like to discuss why we are using a config file for something that I assume is constant for a given set of artifacts. Curious why this path was chosen over embedding constants into the assembly for the min versions?

@fabiocav @surgupta-msft

Update: discussed offline - we do not produce separate binaries for the minified versions, instead we repackage existing binaries. Using a compiler flag would be out of scope at this time.

Copy link
Contributor

@mattchenderson mattchenderson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is a separate issue and PR needed for generation of the new configuration file? Shouldn't that be a part of this PR as well?

@surgupta-msft
Copy link
Contributor Author

Why is a separate issue and PR needed for generation of the new configuration file? Shouldn't that be a part of this PR as well?

Thought the PR would be merged in the last sprint and did not want to increase the scope of it but since we are already halfway in the current sprint, it makes sense to include build side changes as well. I have updated the PR with changes in BuildSteps.cs

@surgupta-msft surgupta-msft merged commit 141d259 into feature/oop-host Oct 3, 2024
4 checks passed
@surgupta-msft surgupta-msft deleted the surgupta/coretools-sdk-inproc branch October 3, 2024 05:07
aishwaryabh added a commit that referenced this pull request Jan 28, 2025
* Core Tools OOP Host (#3802)

* this doesn't work

* this finally works now

* default should be oop host

* added edge cases

* fixing formatting

* using determineTargetFramework

* saving tests

* adding copy step for OOP

* fixing the webhost reference

* removing test

* setting host version in ps script

* update to validate worker versions script

* update versions for worker packages

* adding ToString

* validating worker version

* validate worker versions

* updating csproj to compile

* addressing pr feedback

* updating build steps

* adding build step

* fixing build step

* trying to get this working

* reverrting target runtimes

* updating tests

* adding dotnet info step

* adding changes

* removing extra test

* trying to specify architecture

* modifying tests to see if they work

* narrowing down to tests that are failing

* trying to see if it works with nobuild flag

* addressing pr feedback

* updating tests with latest logging

* addressing comments and marking flaky tests

* updating so that we are only using net8 framework

* pushing change for branch build

* adding single quotes

* reverting quotes

* adding code mirror fiile

* updating build step

* updatinng build steps

* updating build step

* adding step for dotnet publish

* set inprochost compilation system to diff value and skip flaky test

* updating public build pipeline to trigger

* adding extra changes for pipeline

* public build yml

* updating official build

* readd net8 build artifact step

* readding space back

* addressing initial comments

* adding explicit openTelemetry dlls

* simplifying logic of startHostAction

* addressing PR feedback

* start tests

* changing some of the tests back

* reverting test back to normal

* fixing spacing for csproj

* addressing PR feedback

* adding extra variable

* adding logic for edge case scenarios

* added edge cases tests

* removing extra line in node

* addressing comments

* moving validate host runtime to its own method

* forgot to add return statement

* Custom host changes for VS Scenario (#3831)

* this doesn't work

* this finally works now

* default should be oop host

* added edge cases

* fixing formatting

* using determineTargetFramework

* saving tests

* adding copy step for OOP

* fixing the webhost reference

* removing test

* setting host version in ps script

* update to validate worker versions script

* update versions for worker packages

* adding ToString

* validating worker version

* validate worker versions

* updating csproj to compile

* addressing pr feedback

* updating build steps

* adding build step

* fixing build step

* trying to get this working

* reverrting target runtimes

* updating tests

* adding dotnet info step

* adding changes

* removing extra test

* trying to specify architecture

* modifying tests to see if they work

* narrowing down to tests that are failing

* trying to see if it works with nobuild flag

* addressing pr feedback

* updating tests with latest logging

* addressing comments and marking flaky tests

* updating so that we are only using net8 framework

* pushing change for branch build

* adding single quotes

* reverting quotes

* adding code mirror fiile

* updating build step

* updatinng build steps

* updating build step

* adding step for dotnet publish

* set inprochost compilation system to diff value and skip flaky test

* updating public build pipeline to trigger

* adding extra changes for pipeline

* public build yml

* updating official build

* readd net8 build artifact step

* readding space back

* addressing initial comments

* adding explicit openTelemetry dlls

* simplifying logic of startHostAction

* addressing PR feedback

* start tests

* changing some of the tests back

* reverting test back to normal

* fixing spacing for csproj

* addressing PR feedback

* adding extra variable

* adding logic for edge case scenarios

* added edge cases tests

* initial changes

* removing extra line in node

* removing files not needed for custom host

* adding build steps

* addressing comments

* moving validate host runtime to its own method

* forgot to add return statement

* trying out creating directory

* remove skip artifact gen

* updating build step

* updating build to include in official pipeline

* updating publishing custom host step

* code mirror

* trying to get official build working

* program cs update

* updating custom host to work with parsing local.settings.json

* console read line for stalling process

* removing changes not needed for custom host

* only including inproc6 and inproc8 changes

* addressing initial comments

* removing skip artifact gen flag

* verbose logging

* tryna add release pipeline

* windows yaml changes

* addressing comments about yml

* updating log message

* fixing spacing

* fixing spacing again

* trying spacing again

* spacing change

* tryan fix spacing this way

* spacing

* spacing

* new line

* regular indentation

* super indent

* changing spacing back to normal

* addressing comments

* fixing pipeline

* Fix build to remove uploadToStorage (#3839)

* build steps

* trying to parallelize build steps

* Revert "build steps"

This reverts commit 9aa82fa.

* Reapply "build steps"

This reverts commit a7b7d46.

* Revert "trying to parallelize build steps"

This reverts commit d10ef5c.

* Adding artifact assembler tool which consolidates the artifacts and produce the package (#3843)

* Adding artifact assembler program which collects artifacts from different sources and assemble the final package for core tools.

* Adding README

* Remove downloaded artifact directories. Minor language update to README

* Updating the artifact name to include "_inproc" suffix (#3849)

* Small refactor and new tests (#3835)

* Updating coretools to detect unsupported inproc6 sdk scenario (#3825)

* Restructuring custom host to improve error handling (#3861)

* Create Artifacts for releasing OOP core tools (#3848)

* assemble artifacts

* adding code mirror to test

* try awaiting tasks to save space

* removing --net8 dependency

* trying to delete directory one at a time

* trying again with extracting

* diff build steps for vs and cli

* forgot to include other step for var

* trying out new changes

* clean up each zip file after extracting

* trying another approach

* try to delete each directory after copying

* removing logic for creating zips rn

* including e2e test changes and add powershell file

* removing multi targeting

* pass in staging directory

* adding param

* adding logging

* printing out paths

* adding isolated e2e tests and changing verbosity for logger

* adding a new label

* comments

* adding more clarifying comments

* removing extra test and types

* adding logging statement for failing task if we fail tests

* updating tests to only run in winx64 and winx86

* target directory

* target directory

* changes to msi file

* print out directory

* resolving path

* reorg files and try to set env variable

* dont delete artifacts

* update generate msi files

* add doller sign for variable name and fix e2e test

* changing runtime version

* updating to get correct cli version

* lol forgot to have content in zip ps script

* Update src/Azure.Functions.ArtifactAssembler/ArtifactAssembler.cs

Co-authored-by: Lilian Kasem <[email protected]>

* Update src/Azure.Functions.ArtifactAssembler/ArtifactAssembler.cs

Co-authored-by: Lilian Kasem <[email protected]>

* Update src/Azure.Functions.ArtifactAssembler/ArtifactAssembler.cs

Co-authored-by: Lilian Kasem <[email protected]>

* Update src/Azure.Functions.ArtifactAssembler/ArtifactAssembler.cs

Co-authored-by: Lilian Kasem <[email protected]>

* Update src/Azure.Functions.ArtifactAssembler/ArtifactAssembler.cs

Co-authored-by: Lilian Kasem <[email protected]>

* addressing comments

* reverting programcs back to the way it was

* staging directory not correct

* merging

* Revert "merging"

This reverts commit 89cc110.

* fixing spacing

* wrong directory

* trying to free up disk space

* removing custom code mirror

* removing dollar signs

* updating build number

* adding variables back

* fix build number

* fixing candle

* fixing msi files

* reverting files back to normal

---------

Co-authored-by: Lilian Kasem <[email protected]>

* Adding package reference (#3872)

* adding system.text.json

* update patch

* move to 8.0.10

* fixing indentation

* trying to change version

* Templates version update (#3883)

* Create metadata.json file in conslidated artifacts intermediate pipeline (#3884)

* adding generate metadata file

* remove code mirror

* get correct inproc version

* print out metadata file

* fixing zip issue

* fixing release number

* fixing release number again

* removing zip artifact script and fixing code mirror

* template update (#4151)

* Update templates for dotnet isolated worker 2.x (#4189)

* adding tests for custom host

* removing zipping for now

* trying to print out value

* update artifact assembler

* removing extra delete file lol

* adding env variables

* add language

* trying to see if this works for e2e tests

* this should work

* setting language

* trying out new change

* trying to set env variable

* updating start tests

* setting env variable

* updating cli tester

* trying to set testVsArtifacts

* setting paths back to normal

* local settings json parser print current directory

* adding local.settings.json

* tests should fail now if they actually fail

* adding net6 inproc tests

* updating path

* start tests net6 update

* updating zipping to happen

* updating test project

* fixing e2e test project

* add trailing comma and test comment

* updating tests to not exit with expected error

* adding tests for custom host

* removing zipping for now

* trying to print out value

* update artifact assembler

* removing extra delete file lol

* adding env variables

* add language

* trying to see if this works for e2e tests

* this should work

* setting language

* trying out new change

* trying to set env variable

* updating start tests

* setting env variable

* updating cli tester

* trying to set testVsArtifacts

* setting paths back to normal

* local settings json parser print current directory

* adding local.settings.json

* tests should fail now if they actually fail

* adding net6 inproc tests

* updating path

* start tests net6 update

* updating zipping to happen

* updating test project

* fixing e2e test project

* add trailing comma and test comment

* updating tests to not exit with expected error

* updating artifact assembler

* forgot to update assembler

* changing environment variable  back to normal

* addressing comments

* addressing comments

* deleting extra test csproj folder entry and adding comments to pipeline helpers

* adding osx support (#4213)

* removing duplicate code

* using net8 binaries instead of net6 for custom host osx

* addressing feedback for method name

---------

Co-authored-by: Shyju Krishnankutty <[email protected]>
Co-authored-by: Fabio Cavalcante <[email protected]>
Co-authored-by: Surbhi Gupta <[email protected]>
Co-authored-by: Matthew Henderson <[email protected]>
Co-authored-by: Lilian Kasem <[email protected]>
Co-authored-by: Jacob Viau <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
6 participants