APPENDIX — The Death of Classic OpenLane (v0.23)

This document exists for one reason:

To permanently close the discussion about “reviving Classic OpenLane”.

Classic OpenLane is not deprecated. It is not unsupported. It is irrecoverable.

This is not opinion. This is a postmortem.


What “Classic OpenLane” Refers To

In this document, Classic OpenLane means:

This environment was once stable. It is no longer reconstructible.


How Classic OpenLane Actually Died

Classic OpenLane did not die from bugs. It died from ecosystem erasure.

1. Docker Images Were Removed or Mutated

Result:
You cannot pull a historically correct Classic container anymore.


2. sky130A PDK Tarballs Were Deleted

Classic OpenLane depended on exact PDK snapshots. Those snapshots no longer exist.

Result:
Even if you had the flow, you cannot recreate the inputs.


3. open_pdks Became Unbuildable for Classic

Classic OpenLane expected:

“Build PDK from open_pdks when needed”

That path is now broken.


4. Infrastructure Assumptions Changed

Classic OpenLane assumed immutability. The ecosystem moved to continuous change.


Why “Just Rebuild It” Is Impossible

Attempts that do not work:

These produce:

A design that “runs” is not a design that is equivalent.


Responsibility Clarification

This Is NOT User Error

The loss of Classic OpenLane is due to:

No amount of care by an end user could prevent this, unless they had offline full backups of:

That is not a reasonable expectation.


Why This Repository Exists Because of This

This repository is a direct response to this failure.

Lessons learned:


The Only Valid Replacement Strategy

Classic OpenLane cannot be restored.

What can be done:

This reproduces functionality, not history.

That is sufficient. And that is the only realistic goal.


Final Verdict

Classic OpenLane is dead.

Not deprecated.
Not broken.
Not unsupported.

Gone.

Any guide suggesting otherwise is misleading you.

This repository exists so you never have to learn this the hard way again.