On Tue, Apr 25, 2017 at 12:21 AM Globe Trotter <itsme_410@yahoo.com> wrote:

Ideally, of course, it appears that the best course would be to version the software in github itself. I have to figure out how to do this, and would appreciate any pointers in this regard. I only know very basic commands in git. 


Here's some git tips for creating release tags to help you get started:

# list current (local) tags
git tag
# create a tag with a message
git tag mySoftware-1.0.0 origin/master -m "Official release of mySoftware 1.0.0"
# list tags and see newest tag
git tag
# view tag's message
git show mySoftware-1.0.0
# delete tag
git tag -d mySoftware-1.0.0
# notice tag was deleted
git tag
# see what would happen if you tried to push your tags to the remote
git push --tags origin --dry-run
# see more information in the docs
git help tag

Consider always using `-m` to provide a message describing what the tag is for.

Consider always using the `-s` option to GPG sign your tags, and upload your public key to GitHub profile so others know the tag was created by you (GitHub will show a nice green "Verified" button next to GPG-signed releases meeting certain criteria).

Once you've created your tag to your liking (notice --dry-run was omitted this time):
git push --tags origin

Just keep in mind that the tags listed locally can be different than what's in your remotes, and git is kinda terrible at showing these differences. git assumes tags are always treated immutably, and globally unique across all remotes, which are bad assumptions IMO, but it is what it is. This is why GPG-signing your tags might be helpful. It's also why I regularly delete all my local tags and resync them from my remotes:
git tag -d $(git tag) && git remote update
That way I don't accidentally push temporary tags I may have created locally up to a remote, unless I'm really sure I want to.

Another suggestion, consider adopting a rigorous naming convention for all your release tags, so they can be easily identified. Keep in mind that the forward-slash character is a valid character in a tag name. So, you may wish to name your tags something like this:
release/myProject-x.y.z

If you're still deciding how often to bump the version numbers, consider following something like: http://semver.org/spec/v2.0.0.html