<@U06RKAMK0UC> is there a way to use SemVer for ve...
# ask-ai
b
@ancient-wolf-19325 is there a way to use SemVer for versions in flyte
a
Yes, Flyte supports using Semantic Versioning (SemVer) for versions. Flyte recommends and uses SemVer for versioning its components and registered entities, such as tasks and workflows. Version strings should be valid SemVer, and Flyte's release process and tooling (e.g., for flyteidl and flytectl) expect SemVer-compliant versions (e.g., v1.2.3, v1.3.0b0) during registration and release. However, some restrictions apply: version IDs must be URL-safe (alphanumeric, ., -, _, %) and certain characters (like /) are not allowed, and there have been issues with build metadata (the + character) in the UI and API, so it's best to avoid using + in version strings for now. For Flyte platform releases, the core components are aligned and released quarterly with incremented minor versions, following SemVer principles. Not all repositories are strictly aligned, but user-facing components (Propeller, Admin, Console, datacatalog, flytectl, flytesnacks, Flytekit) follow this scheme. For registration of user code, you can specify SemVer-compliant version strings using the --version flag in CLI tools, as long as they are URL-safe. See the linked sources for more details. Would you like a step-by-step guide or more detail on how to specify versions during registration? Sources: - Flyte Versioning &amp; Planning Updates - flyteidl Release Process - Semver build metadata breaks the Flyte UI 👍 0 button 👎 0 button 💡 Hint: Mention @runllm in the thread for followups.
b
@ancient-wolf-19325 when fetching workflows/launch plans, can I specify the major version of a workflow/launch plan omitting the minor versioning
a
No, Flyte does not support fetching workflows or launch plans by specifying only the major version and omitting the minor/patch version. You must provide the full version string (e.g., v1.2.3) to fetch a specific version, or use the --latest flag to fetch the most recent version. There is no built-in support for partial version matching or fetching by major version only in the CLI or API, and this limitation is noted in user discussions and issues. If you want to fetch all versions, you can list them and then filter manually, but Flyte does not natively interpret version ranges or partial SemVer queries. Would you like more detail or example commands for listing and filtering versions? Sources: - Flytectl launch plan fetching commands 👍 0 button 👎 0 button 💡 Hint: Mention @runllm in the thread for followups.
b
@ancient-wolf-19325 how do you specify the latest flag
a
To specify the latest flag when fetching workflows or launch plans with flytectl, use the --latest option in your command. For example: flytectl get workflow -p project -d domain workflow_name --latest or flytectl get launchplan -p project -d domain launchplan_name --latest. This will retrieve the latest version based on creation time. The --latest flag is documented and supported for both workflows and launch plans in flytectl. Would you like more detail or example output? Sources: - flytectl get workflow usage - flytectl get launchplan usage 👍 0 button 👎 0 button 💡 Hint: Mention @runllm in the thread for followups.
b
@ancient-wolf-19325 is there a way to fetch latest workflow or launch plan programatically?
a
Yes, you can fetch the latest workflow or launch plan programmatically using the FlyteRemote Python SDK or the FlyteAdmin gRPC/REST API. With FlyteRemote, use the fetch_launch_plan or fetch_workflow methods and specify the name (without version); the latest version will be returned by default. For example: remote.fetch_launch_plan(name="my_workflow") or remote.fetch_workflow(name="my_workflow"). Alternatively, in Go or via the API, you can use the FetchWorkflowLatestVersion or FetchLPLatestVersion methods, which sort by created_at and return the most recent version. Would you like a code example for Python or Go? Sources: - flytekit.remote FlyteRemote.fetch_launch_plan - FetchWorkflowLatestVersion Go method - FetchLPLatestVersion Go method 👍 0 button 👎 0 button 💡 Hint: Mention @runllm in the thread for followups.