chameleon 4.4.44
Fixed
-
Python src-layout packages collapsed every layer into one archetype, the same
defect v4.4.39 fixed for RubyGems. PyPA'ssrc/<pkg>/<layer>/is the Python
twin oflib/<gem>/<layer>/:src/is the source root,<pkg>is the
distribution package, and its subdirectories are the layers. At the default
bucket depth the layer fell intosub_bucket, sohandlers,clients,
repositoriesandworkersall bucketed to a singlesrc/<pkg>cluster and
no per-role convention could clear its dominance floor --inheritancederived
to{}on a repo where 7/7 files in a layer share a base class, which in turn
leftinheritance-convention-violationunable to fire there at all.The package-root rule is now keyed by (root, extension) --
lib/+.rband
src/+.py-- rather than hardcoding Ruby. Still scoped by extension
deliberately:src/in a JS/TS repo is a feature-layout root, and bucketing
those at depth 3 would re-fragment their cohorts.Measured on the fixture: 4 archetypes -> 9,
inheritancefrom{}to four
derived bases (BaseRepository,Handler,BaseClient,BaseWorker) and
class_contractfrom 1 archetype to 5. Regression-isolated by re-bootstrapping
all TEN fixture repos with the change stashed: only py-plain moves; the other
nine (py-django, py-flask, py-fastapi, py-drf, rb-plain, rb-rails, ts-plain,
ts-nestjs, ts-nextjs) are byte-identical.