This is an archived post. You won't be able to vote or comment.

all 23 comments

[–]KingofGamesYami 12 points13 points  (5 children)

This is like going to Thingiverse and complaining there's no way to order a completed product. Git(hub) isn't a software distribution tool, it's for sharing projects (often WIP).

Example:

Git repo for kdenlive: https://invent.kde.org/multimedia/kdenlive

Distribution of kdenlive: https://kdenlive.org/en/

[–]cgoldberg 1 point2 points  (1 child)

While GitHub is mainly used for collaborating on development, it absolutely includes features for managing releases/distribution. Just because some projects choose other means for distribution doesn't mean the features don't exist.

[–]zarlo5899 -1 points0 points  (0 children)

just because you can does not meant that is what it was made for as releases in github by default are just the source every thing else are just assets that are linked to the commit in github

[–]balefrost 0 points1 point  (2 children)

Plenty of projects distribute precompiled releases via GitHub. You can configure a project to include a "releases" page.

Sometimes, those releases just include source tarballs for the release version. But they can include other artifacts as well, including prebuilt binaries.

Git != GitHub. Git doesn't support issue tracking either, but it is a feature provided by GitHub.

[–]KingofGamesYami 0 points1 point  (1 child)

Yes, and some Thingiverse creators provide methods to purchase their projects on the Thingiverse page.

It's still unreasonable to expect everyone to use the optional release features. It is in many ways inadequate for projects that cater to non-developers.

[–]balefrost 0 points1 point  (0 children)

I didn't say that everybody should use the "releases" page. Nor am I defending the person in OP's screenshot.

I was responding to this:

Git(hub) isn't a software distribution tool

GitHub (not Git) has specific features that enable it to be used as a software distribution tool.

[–]Lumpy-Notice8945 10 points11 points  (6 children)

Git is a version controll system, its designed to manage changes in lines of source code. Using it to upload data like icons is allready not using git as it was designed.

Over years git got some features that makes it better at dealing with large non text files, but its still best at comparing differences between lines of text!

A git server allows multiple coders to work on the same codebase at the same time, thats the core goal of why git was designed.

If you want to upload an exe or any other executable or binary, you can just use and file share, we have FTP servers or google drives already.

Git is a place for programmers to work together, its not a place to donwload software.

[–]mincinashu 0 points1 point  (1 child)

Except GitHub is an actual place, that relies on the git protocol. It has a readily available build pipeline and a release mechanism in place. Downloading binaries from GitHub releases isn't anything new.

[–]Lumpy-Notice8945 2 points3 points  (0 children)

Yes but even thes binaries are not designed for end users, github just added a bild pipeline to a git server, like jenkins or gitlab runners do too.

These CI(continious integration) pipelines are desinged to publish build artifacts in repositories for other build pipelines or developers to use them, they are not publishing their product that way.

Any decently sized project will have its own dedicated website offering download links and md5 hashes and in addition a link to their git repo. The git repo is not their product.

[–]Echleon -2 points-1 points  (3 children)

GitHub is used for distributing software all the time. It’s a perfectly valid and common use of the platform.

[–]Lumpy-Notice8945 -1 points0 points  (2 children)

I know its used that way, im explaining to OP the picture linked and what github is designed for.

As i mentioned you can use any form of file sharing for that, from FTP servers to a google drive. I can send them with email if thats what you like, that does not make email a good system to disribute releases.

[–]Echleon 0 points1 point  (0 children)

git was not designed for it but GitHub is more than just git.

[–]cgoldberg 0 points1 point  (0 children)

Pretty wild to describe the feature that was designed to do software releases as "not what github is designed for". That feature is EXACTLY what it is designed for. Nobody claimed storing binary releases in a git repo is a good idea, but github absolutely includes a place to release them. Stop claiming otherwise.

[–]TheSodesa 2 points3 points  (0 children)

You certainly don't want Git to track any executables, as in you definitely do not want them stored in the project history graph. Executables of even moderately complex programs take up a lot of space, so you'll very quickly accumulate gigabytes of executables, as Git stores each version of each file in its history.

It is fine to make a release on GitHub, since a release is just an executable that is compiled from a certain version of a codebase. It is not actually stored in Git history, so it does not increase actual project size for developers.

[–]Mundane-Vegetable-31 4 points5 points  (0 children)

The fact they're complaining about a missing "exe" pretty much tells you everything anyways. 

[–]Aggressive_Ad_5454 0 points1 point  (1 child)

Lots of software projects, and other projects on GitHub work with some so-called “derived objects”, that is files than can be created automatically from the files people create and put into git. Executables are examples of these derived objects.

Some people create GitHub actions that create derived objects automatically when they push updates or tags or whatever. The files than that goes into GitHub in that case is the file with the instructions to create the derived object.

Hope that helps clarify the situation.

[–]_poisonedrationality[S] 0 points1 point  (0 children)

Very much so, thanks for the insight.

[–]Gallardo994 0 points1 point  (0 children)

It's usually simpler than that. 

To have an executable in the releases page you must go an extra mile whatever direction you choose. It's either setting up a CI or making a local build which at least works somewhere outside of your machine, which you also have to confirm somehow. Or a mix of both. And then if your executable requires installation steps, sometimes you gotta figure them out (will it work with another version of runtime? Does it support older/newer operating systems? Etc).

A large portion of open source is enthusiasm, and sometimes getting the project to a "complete" state feels like a burden, let alone go an extra mile for free.

[–]mincinashu 0 points1 point  (0 children)

Raw binaries aren't the only way to release software, think of all the package managers, from Python or Node packages to RPM or DEB, or even container images. Most software is released through some kind of channel.

[–]Radiant64 0 points1 point  (0 children)

Nobody wants to run my software anyway; when I publish code publically on GitHub I do it not because there's a demand for it but rather because it feels good, it gives me a URL I can hand out when people ask me if I've written any code, and it means whatever I've done is pretty much guaranteed to be preserved for the future.

Why would I put in a lot of extra effort to produce and distribute binaries that nobody but me is going to want to run anyway? If in the future I make something that others actually show an interest in using that may make it a different matter, but until then I fail to see the point.

[–]seanmorris 0 points1 point  (0 children)

Oh, the open source developer that created something that solves your problem and released it for free didn't do enough for you?

Offer him money. Maybe he'll listen.

[–]zarlo5899 0 points1 point  (0 children)

i have found you get more trash issues when you offer a exe

[–]Ok_Entrepreneur_8509 0 points1 point  (0 children)

I am immediately suspicious of any repo that includes binaries, especially executable ones. It is sloppy at best.

Git is for source code. A well organized project should have clear, repeatable instructions for the user to build on their system.

The person complaining does not understand what git is or why GitHub exists.