How does your company treat the end-of-life state? For example, if a part is matured to the Obsolete state that means that this part should no longer be used in designs. Assuming that the latest version is matured to Obsolete, what does that mean for previously Released versions?
Are previously Released versions still able to be used in designs? Do you have to mature ALL previously Released versions to the end-of-life Obsolete state as well? Or, does your company interpret the Obsolete latest version as applying to ALL previously Released versions?
I've played with this a bit but by no means is my site mature in this concept. By default, all versions will show Released. Does it have to be this way? What if I wanted to ensure that a group only could access the latest Released version to prevent someone from viewing old data? ACLs are dictated by state so no way to do this without changing states. We played with when a new version goes to Release, moving the previous versions to Superseded. This and the ACLs would allow users to view the version but not download the content.
With parts, say you have A to D all Released. We then wish to move D to Obsolete to indicate that Part is obsolete. If I asked for a BOM that was latest-Released, it would return C and be 100% correct and 100% wrong at the same time. It would take a business process change and possibly some workflow robots, but I would prefer older revisions move to a non-released state. Change my mind.
We do the same as @avillanueva. If something needs to be set to 'Obsolete', then ALL versions (last iteration of each revision) are changed to 'Obsolete'. Failure to do so will allow earlier 'Released' versions to appear in any 'Latest Released' search (which is the default for most of our non-engineering personnel.)