Page 1 of 1

Hardware Versioning Semantics

Posted: Wed Oct 24, 2012 10:20 am
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.

Re: Hardware Versioning Semantics

Posted: Wed Oct 24, 2012 11:10 am
by Fred
Project specific notes, still applicable to this thread: viewtopic.php?f=58&t=1936

Re: Hardware Versioning Semantics

Posted: Thu Oct 25, 2012 3:01 am
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?

Re: Hardware Versioning Semantics

Posted: Thu Oct 25, 2012 11:36 am
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.