dan-fritchman / Hdl21

Hardware Description Library
BSD 3-Clause "New" or "Revised" License
56 stars 10 forks source link

Python 3.7-3.8 and Pydantic v2 #217

Open dan-fritchman opened 2 months ago

dan-fritchman commented 2 months ago

Originally noted in: https://github.com/dan-fritchman/Hdl21/issues/157#issuecomment-2023271671

Python 3.7 and 3.8 continue to work, if you use Pydantic v1. E.g.: https://github.com/dan-fritchman/Hdl21/actions/runs/8455642769

If there's some dependency specification mechanism to state that, great.
If not we may just be Python 3.9+ from here on.

dan-fritchman commented 2 months ago

Further noting:

dan-fritchman commented 1 month ago

Courtesy @daquintero:

Ahh this is great for the next release, thanks! The diagram is from here https://devguide.python.org/versions/ and it's really helps managing the target support for releases imo

That is quite helpful to know.

I am nonetheless quite reticent to leave Python versions behind. This is a package for chip designers, a bunch who is absolutely horrendous at upgrading any piece of software ever. Case in point: many such orgs have just managed to upgrade to their "new" OS of choice - RedHat Linux v7, just in time for it to go EOL next month. Maybe python itself has gotten easier in this sense, since the meta-managers (e.g. conda) have made it easier for each user to install their own version. But I expect plenty of noobs (our audience) will be pegged to what their CAD group allows, and that will perennially be old as dirt.

So, if we can keep Python 3.7-3.8 working we should.
Again given Hdl21's design (particularly the pervasive dataclasses), there's no hope of supporting any earlier than 3.7. So it's really those two sub-versions in question.