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

Perform partial trimming in client releases #52

Open
1 task
alexrp opened this issue Aug 25, 2023 · 6 comments
Open
1 task

Perform partial trimming in client releases #52

alexrp opened this issue Aug 25, 2023 · 6 comments
Assignees
Labels
area: build Issues related to the build system. area: client Issues related to the launcher and client integration. area: core Issues related to shared client/server game code. area: gateway Issues related to the gateway client and service. area: module Issues related to the bridge module. state: approved Enhancements and tasks that have been approved.
Milestone

Comments

@alexrp
Copy link
Member

alexrp commented Aug 25, 2023

c9afc56 removed trimming from the build system. While full trimming is impractical for us, we could explore partial trimming. I think we only do reflection on our own assemblies, so there should be no issue with trimming any third-party assemblies that declare themselves trimmable.

Right now, a client release archive with maximum compression is around 171 MB, which seems rather excessive.

Depends on:

@alexrp alexrp added area: build Issues related to the build system. state: deliberation Issues that require design work and/or discussion. type: feature labels Aug 25, 2023
@alexrp alexrp added this to the v1.0 milestone Aug 25, 2023
@alexrp alexrp self-assigned this Aug 25, 2023
@alexrp
Copy link
Member Author

alexrp commented Aug 25, 2023

A few things:

  • Anything the bridge module needs from the BCL has to be preserved with a descriptor file.
  • We invoke Unsafe.As<T>(object) through reflection in a few places. This method needs to be preserved with a descriptor file.
  • Our reflection usage needs to be audited and warnings suppressed where we only reflect on our own code.
  • Our use of the Avalonia.ReactiveUI package seems to cause quite a lot of warnings. We might be able to do without it.

@alexrp alexrp modified the milestones: v1.0, v2.0 Aug 28, 2023
@alexrp alexrp modified the milestones: v2.0, Future Jan 1, 2024
@alexrp alexrp added area: client Issues related to the launcher and client integration. and removed area: switcher labels Jan 13, 2024
@alexrp
Copy link
Member Author

alexrp commented Jan 20, 2024

We'll try to switch to the MVVM Toolkit to make this happen.

https://learn.microsoft.com/en-us/dotnet/communitytoolkit/mvvm

@alexrp
Copy link
Member Author

alexrp commented Jan 21, 2024

bc0b499

@alexrp
Copy link
Member Author

alexrp commented Jan 27, 2024

We will have to switch away from Refit for the gateway client: reactiveui/refit#1389

🤷

There is this alternative... but where is the source code?

@alexrp
Copy link
Member Author

alexrp commented Jan 28, 2024

Current status:

@alexrp alexrp added state: approved Enhancements and tasks that have been approved. area: module Issues related to the bridge module. area: gateway Issues related to the gateway client and service. area: core Issues related to shared client/server game code. and removed state: deliberation Issues that require design work and/or discussion. labels Jan 28, 2024
@ghostnguyen
Copy link

We will have to switch away from Refit for the gateway client: reactiveui/refit#1389

🤷

There is this alternative... but where is the source code?

The source code/dll need to run your project are:

@alexrp alexrp modified the milestones: Future, v1.0 Jul 14, 2024
@alexrp alexrp changed the title Consider partial trimming in client releases Perform partial trimming in client releases Jul 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: build Issues related to the build system. area: client Issues related to the launcher and client integration. area: core Issues related to shared client/server game code. area: gateway Issues related to the gateway client and service. area: module Issues related to the bridge module. state: approved Enhancements and tasks that have been approved.
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants