nwg-piotr / nwg-drawer

Application drawer for wlroots-based Wayland compositors
MIT License
240 stars 25 forks source link

Do not include binaries in the repo #40

Closed nightly-brew closed 2 years ago

nightly-brew commented 2 years ago

Unless they are needed for some reason, build files should not be checked in the git repo so the .gitignore file should include a directive to ignore the bin folder.

After that, the already tracked bin directory shoud be removed from the repo, by using git rm.

I already added the changes in https://github.com/nightly-brew/nwg-drawer/commit/7f18eeed02bbb77821e2b5f59b40add9d85eec5c, if you would like to take a look.

nwg-piotr commented 2 years ago

They are useful. Building gotk3 library on my laptop takes 15 minutes. It's easy to skip building, just by removing this step from PKGBUILD.

nightly-brew commented 2 years ago

I get it, and as a matter of facts it's useful when building locally, but the repo shouldn't track it.

In theory that ELF is intended for x86_64 systems, so what happens if I clone the repo as it is and try to build on an arm system? Will go discard the already built binary or will it throw out errors and stop the build process? I was taught that's one reason it's uncommon to maintain built binaries in the repo, but I may have been taught wrong.

For binary distribution, wouldn't it be better if the PKGBUILD pointed to binaries uploaded on the release page?

nwg-piotr commented 2 years ago

Probably. This was just a handy shortcut. Plus I didn't want to maintain separate -bin packages.

WhyNotHugo commented 2 years ago

Committing the binary into version control is highly discouraged and unsustainable. The repository is over 140 megabytes, and will continue to grow at a huge pace indefinitely. It also took me 14 minutes to clone it, so the build-time benefits are arguable.

They are useful. Building gotk3 library on my laptop takes 15 minutes.

Running go build re-builds gotk3 (and everything else) again upon the next build anyway, so this really only helps someone cloning the repository with no intention of making any code changes. Sounds like what you want is to just publish artefacts.

It's easy to skip building, just by removing this step from PKGBUILD.

If your intent is to use the binaries for packages, you'd probably be better off using something like GitHub actions to build them and downloading those artefacts. I don't think you don't need to version-control each build and retain them indefinitely. Each build is 7MiB, so each time you commit a build the repository will grow by the amount each time (git doesn't really handle diffing binaries).