def METHOD_NAME(self, path: str, factory: PackageFactory) -> Iterable[PackageMaker]:
    for pkgdir in os.listdir(os.path.join(path, 'ports')):
        with factory.begin(pkgdir) as pkg:
            package_path_abs = os.path.join(path, 'ports', pkgdir)
            manifestpath = os.path.join(package_path_abs, 'vcpkg.json')
            pkgdata = _read_manifest_file(manifestpath)
            if pkgdata['name'] != pkgdir:
                raise RuntimeError(f'sanity check failed: source {pkgdata["name"]} != directory {pkgdir}')
            pkg.add_name(pkgdata['name'], NameType.VCPKG_SOURCE)
            for key in ['version', 'version-string', 'version-semver', 'version-date']:
                if key in pkgdata:
                    version = pkgdata[key]
                    break
            else:
                raise RuntimeError('none of expected version schemes found')
            if re.match('[0-9]{4}[.-][0-9]{1,2}[.-][0-9]{1,2}', version):
                pkg.set_version(version)
                pkg.set_flags(PackageFlags.UNTRUSTED)
            else:
                pkg.set_version(version, _normalize_version)
            # handle description which may be either a string or a list of strings
            description = pkgdata.get('description')
            if isinstance(description, str):
                pkg.set_summary(description)
            elif isinstance(description, list):
                pkg.set_summary(description[0])
            pkg.add_homepages(pkgdata.get('homepage'))
            for maintainer in pkgdata.get('maintainers', []):
                pkg.add_maintainers(extract_maintainers(maintainer))
            # pretty much a hack to shut a bunch of fake versions up
            portfilepath = os.path.join(package_path_abs, 'portfile.cmake')
            if _grep_file(portfilepath, 'libimobiledevice-win32'):
                pkg.log('marking as untrusted, https://github.com/libimobiledevice-win32 accused of version faking', severity=Logger.WARNING)
                pkg.set_flags(PackageFlags.UNTRUSTED)
            add_patch_files(pkg, package_path_abs, '*.patch')
            yield pkg