sharkduino / Arduino_Animal_Tag

The main code that runs on the Sharkduinos
0 stars 0 forks source link

Versioning System #27

Open TheBen27 opened 7 years ago

TheBen27 commented 7 years ago

Sharkduino Software Versioning Scheme

Each non-backwards-compatible hardware version gets its own branch and set of releases. Bugs are patched retroactively; new functionality isn't. Versioning is hardware.functionality.patch.

As we discussed, my initial versioning system, which tried to follow the hardware's versioning as closely as possible, was inadequate for two reasons:

Add your questions or comments below.

Release Rules

Releases will occur when:

Each release will be versioned as hardware.functionality.patch. A hardware release will correspond to a major, i.e. not backwards-compatible, change in hardware configuration. Below is a table detailing which software versions support which tags:

A table matching the software versions to hardware tags can be found in the readme.

For a list of the hardware associated with each tag, see: https://github.com/WLaney/Arduino_Animal_Tag/issues/32

functionality releases are for major functionality additions, like buffering or interrupt support; they also apply to minor, backwards-compatible changes in hardware. patch releases are for bugfixes that seriously affect battery life (or affect data integrity to any degree).

Release Branches

New hardware releases will be given their own "release branch". The branch will solely contain all releases for that hardware as tagged commits.

Bugs will be patched retroactively on each supported hardware configuration through a new tagged commit to that branch. Barring exceptional circumstances, new functionality will only be added to the latest hardware configuration.

WLaney commented 7 years ago

Sounds good. Are you clear on what hardware versions have what sensors and functionality?

TheBen27 commented 7 years ago

Hardware Reference

Arduino 1.0

Arduino 2.0

Arduino 2.1

Arduino 2.2

WLaney commented 7 years ago

Yeah just a couple things: V2.2 FXAS21002 INT2 pin is wired to Arduino pin 2, not FXAS21002 INT1 V2.0 the MMA8452Q INT1 pin is wired to Arduino pin 3 RTC int is connected to Arduino pin 2 for all RTCs and versions The technical name of the uSD connector we used in V1.0 is push-push

All this stuff is in the documentation on the hardware repo, but if you want to update your list above, and add it as a quick reference that would be great. It is a little overwhelming to go through the documentation for everything at this point.