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

Using local slicec-cs to build tools/IceRpc/BuildTelemetry #4025

Closed
bernardnormier opened this issue Jul 30, 2024 · 4 comments · Fixed by #4040
Closed

Using local slicec-cs to build tools/IceRpc/BuildTelemetry #4025

bernardnormier opened this issue Jul 30, 2024 · 4 comments · Fixed by #4040
Assignees
Labels
bug Something isn't working
Milestone

Comments

@bernardnormier
Copy link
Member

bernardnormier commented Jul 30, 2024

It appears the build system is currently using some other slicec-cs, not the one you've just built from sources.

@bernardnormier bernardnormier added the bug Something isn't working label Jul 30, 2024
@bernardnormier bernardnormier added this to the 0.4.0 milestone Jul 30, 2024
@bernardnormier bernardnormier changed the title Using local slicec-cs build to build tools/IceRpc/BuildTelementy Using local slicec-cs build to build tools/IceRpc/BuildTelemetry Jul 30, 2024
@bernardnormier bernardnormier changed the title Using local slicec-cs build to build tools/IceRpc/BuildTelemetry Using local slicec-cs to build tools/IceRpc/BuildTelemetry Jul 30, 2024
@InsertCreativityHere
Copy link
Member

Yes, the IceRpc.BuildTelemetry.Reporter.csproj seems to be pulling the IceRpc.Slice.Tools NuGet package:

<PackageReference Include="IceRpc.Slice.Tools" Version="0.3.*" PrivateAssets="All" />

instead of using the locally built one:

<Import Project="../../tools/IceRpc.Slice.Tools/IceRpc.Slice.Tools.targets" />

@InsertCreativityHere InsertCreativityHere self-assigned this Jul 30, 2024
@InsertCreativityHere
Copy link
Member

Unfortunately, it's not as simple as updating these lines...
IceRpc.Slice.Tools requires the IceRpc.BuildTelemetry.Reporter package (so it can report telemetry for compiled Slice)...
So IceRpc.BuildTelemetry.Reporter can't depend on IceRpc.Slice.Tools (since that would be circular then).

The next easiest solution I see is to copy the core pieces of IceRpc.Slice.Tools into the Reporter, so it can run slicec-cs on it's own, with no dependency on IceRpc.Slice.Tools at all.

Do we even want to collect build telemetry for people building the telemetry task itself?
I'm not sure we care about that.

@pepone
Copy link
Member

pepone commented Jul 30, 2024

There is a circular dependency at the package level.

IceRpc.BuildTelemetry.Reporter needs to include the IceRpc assemblies and we need IceRpc.Slice.Tools to build them. But we also want to distribute IceRpc.BuildTelemetry.Reporter as part of the IceRpc.Slice.Tools package.

@pepone
Copy link
Member

pepone commented Jul 30, 2024

I think we have to restructure things to:

  • Build IceRpc.Slice.Tools -> IceRpc -> IceRpc.BuildTelemetry.Reporter

IceRpc.Slice.Tools should have no dependencies on the build telemetry

  • For packaging, repackage IceRpc.Slice.Tools to include the telemetry reporter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants