I don’t immediately see any plausible way in which version 3.0.8 could yield that result without some form of user intervention.
Either:
You are in fact not invoking version 3.0.8 of the software as you believe you are
(check output of which 5ttgen and 5ttgen -version)
5ttgen from version 3.0.8 is checking for source code files in a location other than where the source code from version 3.0.8 is stored
(check eg. whether you have set PYTHONPATH to point to an older version of MRtrix3)
You have compiled from source but have local modifications that include the deletion of file lib/mrtrix3/_5ttgen/hsvs.py
If those don’t identify the issue, could you please also let us know the environment that you are using (eg. OS, compiled from source vs. something like Conda)