How to find releases on some project on Github - github

Following page page points to Github's page where pre-build binaries are contained. If I have not found first mentioned page first then I would have not an idea that such page (with pre-build binaries) exists on Github. Is it usual to put some pre-build binaries under releases on GitHub (I've seen it also other times e.g. with gns3)? Is there any link on project's Github page which will point me to releases (maybe I can add releases to corresponding URL but I guess there must be some link which points to it)

The "release" pages is available on any GitHub project. You can access it quickly using the link on top of project (between branches and contributors):
GitHub release page is computed from Git repository tags. The maintainer of the project is free to use it or not, but it's a common practice to transform a git tag into a release, attaching a description (changelog, release note, etc) and/or some files (pre-build packages, setups, DMGs, etc.)
GitHub team wrote a blog post a few years ago to explain this feature.

Related

Deploy project created with foundation-cli?

I'm trying to figure out if there's any way to deploy this project https://github.com/nataliecardot/zeus-hosting-setup, preferably to GitHub Pages. No dist folder is created when I run foundation build, which apparently is an old issue. Is it possible for my to deploy this in any way? Or if not, any other way to get it online?
You need to generate the static pages that will be published online, and do so in the appropriate branch.
Since master includes what is necessary to generate the pages, said pages need to be stored in a gh_pages branch.
See "Types of GitHub Pages sites" and its next section "Publishing sources for GitHub Pages sites".
The point remains: that repository as it is, with only its master branch, would not make any page visible on its own.

Github Pages - Maintaining Multiple versions

I need to host the documentation of multiple versions of my project (say 1.0, 2.0 and 3.0) and all are active (documentation)branches and we shall keep on adding improvements to all of these.
Is it possible to use GitHub pages for this purpose?
Appreciate any help on this.
This is feasible using Github Actions along with a static site generator (SSG) of your choice such as VuePress, Gatsby, Jekyll etc.
In its simplest form, create a GH action to generate the static site folder of the branch/release, then push the folder to corresponding folder in the branch pointed to by GH pages, say gh-pages. One of the branches/releases should be pushed to root. GitHub Pages Deploy Action can be helpful. Lastly add a dropdown list of versions to your static website pointing to the matching folder. The list of items can be statically maintained or dynamically populated using GitHub API. The selected item depends on the current URL path.
Example:
To provide multi-version docs for software product NotifyBC,
input - docs folder of the product created by VuePress
output - gh-pages branch
GitHub action, with main branch pushed to root of gh-pages branch and releases pushed to version folder
dynamically populated dropdown list implemented in Vue component
rendered site powered by GH pages
You can have a look at gh-pages-multi.
It is a small nodejs tool I wrote to push different versions of docs to subdirectories in a gh-pages branch. It also generates a index.html file listing those subdirectories.
It is fairly easy to integrate in a CI workflow if you want to automate building and pushing the docs.
Also note the "--no-history" option that will prevent bloating the git repo if your docs contain some built files or binary assets.
These other answers over-complicate things. As #jhpratt suggests in the comment, you can just copy the code corresponding to a version of your site you want to deploy to a dir (labelled e.g. v1.0) within the dir that you deploy to gh-pages. You then access the version with https://your-name.github.io/your-repo/v1.0/.
Of course, depending on the type of site you're building you may have to worry about the content of <base href="..."> tag, etc., for each version, but you need to worry about this tag in any case since github pages do not deploy to the url root.

Simplest way to get (jekyll-scholar) plugins on gh-pages

GitHub pages does not support plugins, but plugins are clearly very useful (e.g. jekyll-scholar).
Nitrous.io supports adding plugins to your GH pages site, but this seems a little involved. Is there any simply way to get plugins working on my github site, or should I just make _site/ the root, as the jekyll-scholar dev. recommends?
The method described in the Nitrous.io blog post can actually be used with a local Ruby/Rails environment, which removes some of the complexity. There's an even more convenient Rakefile setup from David Ensinger that implements the deployment steps proposed by Randy Morris.
Essentially, these Rakefiles are just conveniences to batch the deployment of both your Jekyll source (with plugins) and compiled _site to GitHub Pages as the jekyll-scholar dev recommends. Since your site is a User Pages (username.github.io), then you'll want your compiled _site to end up in Master, and your Jekyll source with plugins in a separate Source branch. If you want to first experiment with a Project Page, then you'll want your _site to end up in the gh-pages branch (which can be accomplished with this Rakefile)

What is the best way to distribute a binary of my project on GitHub?

I have a small github repo to convert MS Word Documents, but most people will just want the binary.
Should I
Reorganise my repo to have a src/ and bin/ directories with the most up to
date .exe in with the code and expect people to download the whole lot?
Compile and place my binary somewhere else on the web and link to it?
Include my binary in my repo but link to it seperately?
To host that binary for your application, you now can, since 2nd July 2013, define a release.
Releases, a workflow for shipping software to end users.
Releases are first-class objects with changelogs and binary assets that present a full project history beyond Git artifacts. They're accessible from a repository's homepage:
Releases are accompanied by release notes and links to download the software or source code.
Following the conventions of many Git projects, releases are tied to Git tags. You can use an existing tag, or let releases create the tag when it's published.
You can also attach binary assets (such as compiled executables, minified scripts, documentation) to a release. Once published, the release details and assets are available to anyone that can view the repository.
That replaces the old binary upload service, which was removed in December 2012 (as you mention in your question).
Probably not what you want to hear, but in your case this is mostly personal preference.
You don't have to store the binary in the repo, because it is no important dependency.
It is the other way around: everything you need to recreate the file should be in your repository (including Makefiles/project files).
You can store the binary in the repo because it is fairly small.
You should not store it in the repository when the overall size in the repository (base size + diffs, depending how big the diffs are) is overwhelming, but this does not seem to be the case (500 KiB according to your repo).
My personal preference is to never store generated files (binaries, but also generated text files) in the repo.
Possibly because I have experience with 2 GiB csv repositories that take ages to pull. (to be fair: it also takes ages to compile)
For my github project I created a subdomain on some webspace where I put all my downloads and the index page of that subdomain forwards to my github-pages.
The github pages link to the downloads on my webspace subdomain.
Just because I like my github subdomain a bit more for this project.
My tool works for different platforms though, so not every user needs every binary file.
The binaries actually are backends (therefore dependencies), but interchangeable/optional
You can have a look at my setup.
You can try this:
http://sourceforge.net/publish/?source=github
It looks promising to be able to "create on Github but distribute on Sourceforge".

Getting a link to a Compiled Binary on Github

How do you include a link to a compiled binary on Github?
You can link to a specific file in a GitHub repo using the URL http://github.com/<username>/<project>/blob/<branch>/<path/to/file>. So if you track your compiled binary, you can link to it that way.
Otherwise, you can upload the compiled binary to your project's download page, and distribute that URL.
Since 2d July 2013, you now can define a release.
Releases, a workflow for shipping software to end users.
Releases are first-class objects with changelogs and binary assets that present a full project history beyond Git artifacts. They're accessible from a repository's homepage:
Releases are accompanied by release notes and links to download the software or source code.
Following the conventions of many Git projects, releases are tied to Git tags. You can use an existing tag, or let releases create the tag when it's published.
You can also attach binary assets (such as compiled executables, minified scripts, documentation) to a release. Once published, the release details and assets are available to anyone that can view the repository.
That is what replaces the old binary upload service, which was removed in December 2012!