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

USAM - remove signpost files #3365

Open
cdhanna opened this issue May 3, 2024 · 2 comments
Open

USAM - remove signpost files #3365

cdhanna opened this issue May 3, 2024 · 2 comments
Milestone

Comments

@cdhanna
Copy link
Collaborator

cdhanna commented May 3, 2024

after we have removed the beamo-local-manifest.json file from the CLI, the CLI will be able to tell Unity where all the USAM projects are. That gives us 90% of what the signpost files were doing in the first place.

The remaining issue is that the signpost files contained an assembly definition data point for each USAM. Instead, we should shift the sole responsibility for those assembly references into the USAM csproj file, using the existing ProjectReference node,

<!-- Reference an assembly definition, "myreference", using the file path helper property -->
<ProjectReference Include="$(UnityAssemblyDefintions)/myreference.csproj" BeamProjectType="UnityAsm"/>

<!-- Reference an assembly definition, "myreference2", using a fully qualified path -->
<ProjectReference Include="Library/asdflkj/Beamable/myreference2.csproj" BeamProjectType="UnityAsm"/>

Of note,

  1. the $(UnityAssemblyDefintions) property should be provided by the Directory.Build.Props file, and point to the location where Unity generates csproj files from assembly definitions. This means we'll need to modify the beam project generate-props command.
  2. the BeamProjectType attribute is a custom addition to the csproj spec, and it is our hint that the ProjectReference is an assembly definition reference.

Then, when Unity uses the CLI to scan for the local manifest, a new section should be included that has project specific sections,

{
 "beamoId": "tuna",
 "unity": {
    "assemblyReferences": [
"Library/asdflkj/Beamable/myreference.csproj",
"Library/asdflkj/Beamable/myreference2.csproj"
]
  }
}

it is important that if the $(UnityAssemblyDefintions) property is used in the definition of a reference, it should be fully evaluated in the response from the CLI.
Unity will then take that list, identify the assemblies that map to myreference and myreference2, and generate the corresponding csproj files.

@cdhanna cdhanna added this to the Unity 2.0.0 milestone May 7, 2024
@cdhanna
Copy link
Collaborator Author

cdhanna commented May 7, 2024

how will we read the XML? XML parsing, or MSBUILD?

@cdhanna
Copy link
Collaborator Author

cdhanna commented May 7, 2024

Also, we need the assembly definition UX as a UI step in the Microservice Manager window, as per this ticket, #3173

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant