Skip to content

Tags and Releases: create tags and releases page for github games repo#45

Merged
brianamarie merged 4 commits intomasterfrom
tags-and-releases
Aug 28, 2017
Merged

Tags and Releases: create tags and releases page for github games repo#45
brianamarie merged 4 commits intomasterfrom
tags-and-releases

Conversation

@brianamarie
Copy link
Copy Markdown
Contributor

This pull request resolves #15 by adding a page where users will add a release to their github-games repository.

@githubtraining/trainers This still needs some hefty review, but it's a start! 👍

@brianamarie brianamarie self-assigned this Aug 21, 2017
Copy link
Copy Markdown
Contributor

@crichID crichID left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@brianamarie and @hollenberry thank you for kicking this off. It will be so nice to finally see this ✔️ on the to-do list - I made a few notes below.

Comment thread book/17_tags_and_releases.md Outdated

### Tags

A tag is a pointer that points to a specific commit. Unlike commits, tags are _not_ immutable. They can be moved and changed. Before we get into Releases, let's practice a bit with tags.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we haven't really talked about tags yet, I think we could remove "Before we get into Releases," here.

Comment thread book/17_tags_and_releases.md Outdated

To see all tags, type `git tag --list`.

Another caveat with tags is that they are not automatically pushed up with commits. To push tags, type `git push <remote> --tags`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't technically need the remote here. You can just do git push --tags. You can also set this as a default with configs using git config push.followTags true which will automatically push tags when their associated commits will be pushed. See more.

Comment thread book/17_tags_and_releases.md Outdated

A tag is a pointer that points to a specific commit. Unlike commits, tags are _not_ immutable. They can be moved and changed. Before we get into Releases, let's practice a bit with tags.

When creating a tag from the command line, you can make a "lightweight" or an "annotated" tag. The following example creates an annotated tag with the `-a` flag, names the tag `v1.0`, and connects it to whichever commit SHA is included.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's remove "lightweight" here since we aren't covering them and don't recommend them 😉

Comment thread book/17_tags_and_releases.md Outdated

### Releases

Releases are similar to tags, because they point to a specific commit and can be named like any other tag. However, releases can also include attached binaries. This means you can upload and store the compiled program for others to download, and have that compiled version be attached to the exact source code that composes it. We recommend using GitHub Releases in place of tags; a tag will still be created, but it will have a GitHub linked history that cannot be changed.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might also be important to note that Releases are a GitHub only thing where tags are both Git and GitHub. I usually say something like "Tags can be created locally with Git, or on GitHub. However, releases are a GitHub feature that allow you to add an executable to the tag for easier access by visitors who just want to download and install your software."

We recommend using GitHub Releases in place of tags; a tag will still be created, but it will have a GitHub linked history that cannot be changed.

I may be reading this wrong, but this is not technically true. You can do the following:

  1. Create a tag locally and push it to GitHub
  2. Add a release binary to the tag on GitHub
  3. Delete the tag locally and recreate a tag with the same name pointing to a different commit
  4. Use push --force to overwrite the tag on GitHub with the new commit ID.

From what I can see, the earlier commit ID that v1.0 pointed to is not stored.

Comment thread book/17_tags_and_releases.md Outdated
1. On GitHub, navigate to the main page of the repository.
1. Under your repository name, click Releases.
1. Click Draft a new release.
1. Type a version number for your release. Versions are based on Git tags. We recommend naming tags that fit within semantic versioning.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Versions are based on Git tags. We recommend naming tags that fit within semantic versioning.

Type a name for the tag. We recommend you use semantic versioning.

Comment thread book/17_tags_and_releases.md Outdated
1. Under your repository name, click Releases.
1. Click Draft a new release.
1. Type a version number for your release. Versions are based on Git tags. We recommend naming tags that fit within semantic versioning.
1. Select a branch that contains the project you want to release. Usually, you'll want to release against your master branch, unless you're releasing beta software.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can also select a recent commit by clicking the drop down and choosing recent commits.

@crichID
Copy link
Copy Markdown
Contributor

crichID commented Aug 21, 2017

Sorry about leaving you off @brianamarie --- that's what I get for not looking at the discussion page before starting my review ☹️

@brianamarie
Copy link
Copy Markdown
Contributor Author

@crichID ✨ Updates made. Does this look better to 🚢 now?

@crichID
Copy link
Copy Markdown
Contributor

crichID commented Aug 28, 2017

@brianamarie I think this looks great. Thank you for finally adding this section to the manual, it has been a long time in the works.

@brianamarie brianamarie merged commit 9e69fef into master Aug 28, 2017
@brianamarie brianamarie deleted the tags-and-releases branch August 28, 2017 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tags and releases to the training manual

3 participants