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

Consider partial trimming in client releases #52

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

Consider 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 Feature requests and housekeeping tasks that have been approved. type: feature Issues that are classified as feature requests.
Milestone

Comments

@alexrp
Copy link
Sponsor 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 considerable deliberation and/or discussion before a resolution can be found. type: feature Issues that are classified as feature requests. area: switcher 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
Sponsor 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
Sponsor 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
Sponsor Member Author

alexrp commented Jan 21, 2024

bc0b499

@alexrp
Copy link
Sponsor 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
Sponsor Member Author

alexrp commented Jan 28, 2024

Current status:

@alexrp alexrp added state: approved Feature requests and housekeeping 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 considerable deliberation and/or discussion before a resolution can be found. 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:

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 Feature requests and housekeeping tasks that have been approved. type: feature Issues that are classified as feature requests.
Projects
None yet
Development

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

2 participants