Hardware Versioning Semantics

From DIY contraptions to sophisticated FreeEMS-specific designs! Plus general hardware development!
Post Reply
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Hardware Versioning Semantics

Post by Fred »

Because semantics are FUCKING IMPORTANT, despite what some people think.

I know you hardware guys have a fairly low tech approach to versioning, and there are reasons for that, which need to be observed and respected. However I think we can do better than common practice.

I'd like to come up with a standard to be applied to projects wishing to be endorsed by me.

I don't have a solid idea of what it will be, yet, and perhaps standard software versioning is acceptable?

This is a fairly good guide (2.0.0-rc1 variant, ONLY) : http://semver.org

So is this: http://docs.codehaus.org/display/MAVEN/ ... sionRanges

Normal hardware designers like to do this:

Marcos did "spin 1", "spin 2" etc. No, wait, he only ever did spin 1.

Andy is using implicit Revision AX for current Jags, A1, A2, A3, and soon to be A4, perhaps.

Another REALLY good thing that Andy is doing is putting a piece of git hash from the previous revision on the PCB at all times. This is AWESOME and really helpful when combined with git commit message history.

My concern about the A3 etc or spin X etc thing is that "revision" is implicit, and easily misunderstood for "version". Which it is not.

The thing with hardware iterations is that they're slower and more deliberate than software. I mean, it's normal to have 87485 versions of lib X, but it's certainly not normal to have 3989 versions of board Y.

So perhaps, to keep me happy, and not be ridiculous, a two point version is required?

0.X up until considered stable/released, then 1.0, then 1.X with minor tweaks/fixes to the 1.0 design.

Major redesign could use later 1.X numbers up until it went stable, and then jump to 2.0 and 2.X for tweaks.

Major change in core values, principals and goals (TH -> SMD, etc) should be matched with a new name, not the old name with no common functionality/style/form.

X doesn't have to denote a number, and to keep confusion to a minimum, perhaps Jag could move to 0.A4 for the next revision, to keep the A labeling?

Thoughts?

All I know is that current "spin X" and "AX" is not really good enough and misleading/confusing to "consumers" (users). Eg:
Today I received my copy of Jaguar A3, which is version 3 (still alpha) of a FreeEMS compatible ECU.
Today I received my copy of Jaguar A3, which is revision 3 (still alpha) of a FreeEMS compatible ECU.
Initial version is how it did read. I asked for the change. Note "still alpha" in brackets in a valiant attempt to make it clear. Additional clarification shouldn't be needed.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Hardware Versioning Semantics

Post by Fred »

Project specific notes, still applicable to this thread: viewtopic.php?f=58&t=1936
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
DeuceEFI
LQFP144 - On Top Of The Game
Posts: 578
Joined: Thu Feb 25, 2010 3:57 am
Location: Gosport, IN USA
Contact:

Re: Hardware Versioning Semantics

Post by DeuceEFI »

Fred wrote: 0.X-alpha can be variants of the simple version that's coming soon
0.X-beta can be variants of the full but small version that comes after the simple one is validated
1.0-RCX are final cuts, heavily reviewed, few/no flaws found
1.0 is time to get drunk, very very drunk.
I like this idea for hardware version identification.
I also think that all boards should have the 10 digit git hash in the silkscreen in addition to the version numbering system above.

I propose that future Jaguar schematics and PCBs should have "0.x-alpha" as well as the git hash, starting with "0.4-alpha" to replace the "Revision A4" marking, this way there is no confusion.

Thoughts?
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Hardware Versioning Semantics

Post by Fred »

DeuceEFI wrote:I propose that future Jaguar schematics and PCBs should have "0.x-alpha" as well as the git hash, starting with "0.4-alpha" to replace the "Revision A4" marking, this way there is no confusion.

Thoughts?
Can I have your babies? <3

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
Post Reply