Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <vs06po$14pc8$1@dont-email.me>
Deutsch   English   Français   Italiano  
<vs06po$14pc8$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Don Y <blockedofcourse@foo.invalid>
Newsgroups: sci.electronics.design
Subject: Re: PCB version control
Date: Tue, 25 Mar 2025 23:28:01 -0700
Organization: A noiseless patient Spider
Lines: 50
Message-ID: <vs06po$14pc8$1@dont-email.me>
References: <67e1a08c$0$3831$882e4bbb@reader.netnews.com>
 <vrsia0$1mccv$1@dont-email.me> <lmj3ujpg8eqannemaq74f8s9vqh2a5iooc@4ax.com>
 <vrsjna$1q7cg$1@dont-email.me> <15l3uj5eed6mbtlnas1cemu2cn5iukog6b@4ax.com>
 <vrsngv$1s889$1@dont-email.me> <vrsvfm$23j3t$1@dont-email.me>
 <67e2588f$0$2785$882e4bbb@reader.netnews.com> <vru1ed$341a4$1@dont-email.me>
 <vru201$341a4$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 26 Mar 2025 07:28:10 +0100 (CET)
Injection-Info: dont-email.me; posting-host="9c47ee535c5817b0cfac3f4f10dd8560";
	logging-data="1205640"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18m7AWtjbIaQsQhWRkKqODx"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.2
Cancel-Lock: sha1:mFKQf5CCFXBqz4eIIEGrx6scRWM=
In-Reply-To: <vru201$341a4$2@dont-email.me>
Content-Language: en-US
Bytes: 3953

On 3/25/2025 3:53 AM, Don Y wrote:
> On 3/25/2025 3:44 AM, Don Y wrote:
>>    "No.  I can replace a single page if necessary.  So, each EPROM
>>    /in the set/ can be at a different revision level.  It's up to
>>    Engineering to manage this (configuration management) so only
>>    valid "combinations" of those devices are incorporated into a
>>    released product."
> 
> This last is important.  If you want to force a production change,
> you have to change a part number, not a revision level.
> 
> E.g., I can revise an algorithm in a particular piece of code.
> Any revision will perform identically (if performance is
> defined by getting the correct "result"/return value).  A new
> revision may change some other aspect -- a faster algorithm,
> smaller, better documented, etc. -- but is same fit/form/function
> as the earlier revision.
> 
> If I *need* the product to use a newer version of that algorithm,
> then I have to give the function a new part number and update the
> BoM (makefile) to reflect that new part number.

To drive this home:
<https://www.product-lifecycle-management.com/plm-best-practice-revision.htm>
<https://cdn2.hubspot.net/hubfs/2568500/Content%20Offer%20PDFs/MCL_Revision_vs_New_Part_Number_Infographic.pdf>
<https://plmadvisors.com/plm-and-configuration-management-best-practices-part-numbers/>

Assuming you have assigned part numbers to each software module/file,
consider how you currently think of "version control".  Is a rev B
version of that file INTERCHANGEABLE with a rev A version (see above
criteria)?  Likely the new file would have an augmented set of
test cases to reflect the fact that it is now tested against the
condition(s) that the earlier version was found to be defective!

[So, *two* documents need to change before this is propagated]

Chances are, it is not!  Rev B likely came about to FIX something
that was broken in rev A.  So, using rev B in place of rev A would
lead to a different product (one that is more correct than the
predecessor).

As such, the part number for that file should change to reflect this
incompatibility.  This change would then propagate upward through the
assemblies to eventually reflect the fact that the finished product
with the "revised file" is, in fact, a different and not interchangeable
product with those that were built on the unrevised file.

You surely wouldn't build a copy of last year's code base and try to
pawn it off as identical with the most recent codebase!