treeform / pixie

Full-featured 2d graphics library for Nim.
MIT License
743 stars 28 forks source link

Repository too large #378

Closed iacore closed 2 years ago

iacore commented 2 years ago

So, Nim need to clone the git repository to install pixie. That includes:

20.9 MiB tests/fileformats 16.6 MiB tests/fonts 2.4 MiB docs/banner.png 1.3 MiB examples/data/*

Which I don't need if I don't want to run tests or use some examples. It's slow to download all these.

guzba commented 2 years ago

I'm confused:

Which I don't need if I don't want to run tests or use some examples.

So you want us to remove the tests and examples from the repo? Sorry but that is insane, Pixie without tests is never going to happen.

What exactly do you suggest we do (that does not involve not having any tests).

guzba commented 2 years ago

My guess is the actual issue is not using git clone --depth 1. Further, you can get the repo from https://github.com/treeform/pixie/releases tarballs or zips in 35MB.

iacore commented 2 years ago

I am not counting git history size. I think Nimble uses --depth 1. Even 35MB is huge for a library.

treeform commented 2 years ago

I don't see 35MB in my pixie install folder (its just 607.3 KB):

image

Please list files in your ~\.nimble\pkgs\pixie-3.1.4

If you have 35MB there its probably a nimble bug.

SolitudeSF commented 2 years ago

35mb is whats getting downloaded by nimble/git, nimble then installs only relevant files. But 35megs is nothing unless you are on heavily metered connection.

treeform commented 2 years ago

If nimble downloads 35mb to keep 600k that's feels like thing nimble should fix?

SolitudeSF commented 2 years ago

dont think thats possible with git

treeform commented 2 years ago

I think you can do this with git commands:

git archive --remote=ssh://host/pathto/repo.git HEAD README.md

But I think github blocks that method so one needs to use the non-git HTTP raw file interface:

wget https://raw.githubusercontent.com/treeform/pixie/master/src/pixie.nim

My point if nimble cared enough they would implement are more efficient download.

SolitudeSF commented 2 years ago

I think you can do this with git commands:

git archive --remote=ssh://host/pathto/repo.git HEAD README.md

But I think github blocks that method so one needs to use the non-git HTTP raw file interface:

wget https://raw.githubusercontent.com/treeform/pixie/master/src/pixie.nim

My point if nimble cared enough they would implement are more efficient download.

that wouldnt work, nimble needs to have directory listing to know which files to install, and that would mean that remote host needs some http interface for per file fetching. thats is some insane amount of care required.

guzba commented 2 years ago

I think Nimble using --depth 1 and removing unneeded files is a great middle-ground between download size, final space used and dev effort. Pixie is larger than many libraries to download via git specifically because it needs images for testing (it is a graphics library after all). So yeah, who cares about some data that downloaded in a few seconds.

No practical suggestions have been forthcoming so closing this.