Search code examples
githubreleaseversioninggithub-actionssemantic-versioning

GitHub releases, multiple files and versioning


If I have a GitHub repo github.com/@product/template with the following file/folder structure:

/build
  /fileA
  /fileB
/src
  /generator.sh

GitHub doesn't seem to be opinionated how to group file releases. There are multiple options:

Releases with multiple files

github.com/@product/template
  v1.0.0
    /fileA
    /fileB
  v1.1.0
    /fileA
    /fileB
  v1.2.0
    /fileA
    /fileB

Release each file separately

github.com/@product/template
  fileA-v1.0.0
    /fileA
  fileA-v1.1.0
    /fileA
  fileA-v1.2.0
    /fileA
  fileB-v1.0.0
    /fileB
  fileB-v1.1.0
    /fileB
  fileB-v1.2.0
    /fileB

Wondering what the advantages/disadvantages of each pattern are? Considering that files could be updated independently? fileA is updated, would that release a new version of fileB too?

Users would need to search through a longer list of releases to find the file they want to download?


Solution

  • GitHub doesn't seem to be opinionated how to group file releases

    True, it has no opinion: you are building your release assets as you see fit.

    But: a release (for a file or multiple files) is associated to a tag (see "creating a release")
    And that tag applies to the all source repository (to all its files in it)

    That is why generally a new release includes all new deliveries.