Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make first 0.1.0 release as a baseline #17

Closed
flynneva opened this issue Feb 10, 2022 · 3 comments
Closed

make first 0.1.0 release as a baseline #17

flynneva opened this issue Feb 10, 2022 · 3 comments

Comments

@flynneva
Copy link
Contributor

flynneva commented Feb 10, 2022

In software development releases are everything and help you keep track of existing features, new features and even bugs (e.g. if a bug has existed in previous releases too).

The best way to do releases is with the basic git tag approach. Tagging code allows you to plant a flag in the ground and say "this is the features that exist at this point in time". Once you tag the code, you release the tag and let everyone (e.g. other teams, customers, etc.) use that release while you (the software team) continue working in the background on the next release.

Basic tagging workflow goes like this:

  1. Confirm the code you have at the current git commit works as expected at that moment in time
    1. unit tests / integration tests can automate this step (and give you logs to prove it 😄)
    2. We already have sort of done this manually in test code base on actual robot to confirm basic functionality #2
  2. Record what current features exist in a CHANGELOG file and commit it
    1. We will update this CHANGELOG just before each new release going forward to keep track of whats changed / whats been added
    2. Some people also call this file release-notes if you want, essentially its the same thing
  3. Once the CHANGELOG has been updated and committed, create the tag with git tag 0.0.1
    1. Semantic Versioning is generally the standard so it goes major.minor.patch
    2. Major: usually incrementing this means breaking changes were made to the code or lots of new features
    3. Minor: usually incrementing this means minor updates / fixes / enhancements were made since the last release
    4. Patch: usually incrementing this means just patches / fixes to existing code were made
    5. Example: 0.1.0 would be a good first release number, 0.1.1 would be a good patch number, 1.0.0 would be a good first stable / feature complete release
  4. After tag is created locally, push it to the remote repo with git push --tags
  5. After that, the tag should show up on the repo under releases / tags
  6. From there, you can use github in the browser to upgrade a tag to an official release
@flynneva
Copy link
Contributor Author

flynneva commented Feb 10, 2022

As a side note, you can also automate the release pipeline using Github Actions. Although this can get out of hand really quickly and needs to be done carefully as it is very hard to automate when a release is a major, minor or patch release.

In my experience this never really works out the way you want and it's better just to do the tagging / releasing manually.

You can however automate things after a release is made...for example to generate binary files you can directly download and upload then to the robot.

@flynneva flynneva changed the title make first release as a baseline make first 0.1.0 release as a baseline Feb 10, 2022
@flynneva
Copy link
Contributor Author

Having this first 0.1.0 should also let us track what features / functions were added during development this year, which will be cool to look back at and see what you guys did!

@An3Dev
Copy link
Member

An3Dev commented Mar 16, 2022

Finally added tags!

@An3Dev An3Dev closed this as completed Mar 16, 2022
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

No branches or pull requests

2 participants