Noesis / Managed

NoesisGUI Managed SDK
Other
94 stars 14 forks source link

Include runtimes into repository #1

Open aienabled opened 5 years ago

aienabled commented 5 years ago

Hi guys,

downloading runtimes from the NuGet package is not really convenient, especially when we will need to be able to quickly switch between versions in the current repository.

I understand that most users are expected to use NuGet packages and avoid using this source code unless they're really need to customize NoesisGUI Managed SDK (fork it), however the whole idea of providing the source code is flawed if we also need to always manually manage runtimes to ensure they're matching the current Managed SDK version.

I think runtimes are not too large to include with every major update right into the current repository - 60 Mb when extracted, about 20 Mb when compressed with Zip. Or you can create a special repository containing the runtimes only and include it here as Git submodule (for example MonoGame repo uses https://github.com/MonoGame/MonoGame/tree/develop/ThirdParty to link https://github.com/MonoGame/MonoGame.Dependencies).

I'm working on an update for MonoGame NoesisGUI Wrapper and I want to provide both ways for users of getting the latest NoesisGUI - as a NuGet and as a source code (downloaded as this git repository (or my fork which addresses float->double WPF compatibility issue) and placed in a neighbor folder).

Regards!

jesusdesantos commented 5 years ago

Problem is, there is a size limit for repositories in Github. So, if we add the binaries we are going to reach that limit faster. I think we could add a script that fetches binaries from NuGet. What do you think? There is also the option of adding sourcecode to NuGet, but I didn't investigate it, probably far from ideal as everything in NuGet :)

aienabled commented 5 years ago

The script to fetch the binaries from NuGet might be useful but I still would prefer to have binaries right here as it allows instant switching between the commits and branches.

I thought the size limit does not actually apply to the source repositories and mainly used to prevent the abuse of Github for file sharing. According to https://help.github.com/en/articles/what-is-my-disk-quota there is no actual restriction but only a recommendation. Github also suggesting to use Git LFS for large files - something to consider but I think it's not convenient and doesn't worth the hassle as long as you can simply bloat the repository with the actual binaries :-) .