<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def rows_for_firmwares(self, firmwares):
        '''provide user-readable text for a firmware entry'''
        rows = []
        i = 0
        for firmware in firmwares:
            frame = self.frame_from_firmware(firmware)
            row = {
                "seq": i,
                "platform": firmware["platform"],
                "frame": frame,
#                "type": firmware["mav-type"],
                "releasetype": firmware["mav-firmware-version-type"],
                "latest": firmware["latest"],
                "git-sha": firmware["git-sha"][0:7],
                "format": firmware["format"],
                "_firmware": firmware,
            }
            (major,minor,patch) = self.semver_from_firmware(firmware)
            if major is None:
                row["version"] = ""
                row["major"] = ""
                row["minor"] = ""
                row["patch"] = ""
            else:
                row["version"] = firmware["mav-firmware-version"]
                row["major"] = major
                row["minor"] = minor
                row["patch"] = patch

            i += 1
            rows.append(row)

        return rows