Skip to content
This repository has been archived by the owner on Oct 23, 2023. It is now read-only.
/ flyteidl Public archive

Specification of the IR for Flyte workflows and tasks. Also Interfaces for all backend services. https://docs.flyte.org/projects/flyteidl/en/stable/

License

Notifications You must be signed in to change notification settings

flyteorg/flyteidl

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

972f9eb · Oct 21, 2022
Jul 3, 2022
Mar 30, 2021
Aug 6, 2022
Oct 14, 2022
Jul 6, 2021
Oct 21, 2022
Apr 7, 2022
Oct 21, 2022
May 24, 2021
May 6, 2021
Apr 22, 2022
Jun 27, 2022
May 31, 2021
Mar 15, 2021
Feb 7, 2021
Sep 29, 2022
Jul 30, 2021
Aug 5, 2019
Apr 27, 2022
Aug 5, 2019
Apr 1, 2022
Jun 3, 2022
Jan 13, 2022
Jan 13, 2022
Jan 13, 2022
Apr 30, 2021
Sep 20, 2022
Oct 6, 2022
Oct 6, 2022
Apr 1, 2022
Apr 27, 2022
Jun 28, 2021
Aug 5, 2019
Apr 27, 2022

Repository files navigation

Flyteidl

This is one of the core repositories of Flyte. It contains the Specification of the Flyte Language using protobuf messages, the Backend API specification in gRPC, and Swagger REST. The repo contains the generated clients and protocol message structures in multiple languages. Along with the generated code, the repository also contains the Golang clients for Flyte's backend APIs (the services grouped under FlyteAdmin).

Slack

Contributing to Flyteidl

Tooling for Flyteidl

  1. Run make download_tooling to install generator dependencies.
   make download_tooling
  1. Ensure Docker is installed locally.
  2. Run make generate to generate all the code, mock client, and docs for FlyteAdmin Service.
    make generate
  1. To add new dependencies for documentation generation, modify doc-requirements.in and run
   make doc-requirements.txt

Docs structure

The index.rst files for protos are arranged in parallel under the docs folder. All the proto definitions are within protos/flyteidl and their corresponding docs are in protos/docs.

docs
├── admin
│   ├── admin.rst
│   └── index.rst
├── core
│   ├── core.rst
│   └── index.rst
├── datacatalog
│   ├── datacatalog.rst
│   └── index.rst
├── event
│   ├── event.rst
│   └── index.rst
├── plugins
│   ├── index.rst
│   └── plugins.rst
├── service
│   ├── index.rst
│   └── service.rst

Each module in protos has a module in docs with the same name. For example: protos/flyteidl/core has a module protos/docs/core under the docs folder which has the corresponding index and documentation files.

Generating Documentation

  • If a new module is to be introduced, follow the structure for core files in generate_protos.sh file which helps generate the core documentation from its proto files.
     core_proto_files=`ls protos/flyteidl/core/*.proto |xargs`
     # Remove any currently generated file
     ls -d protos/docs/core/* | grep -v index.rst | xargs rm
     protoc --doc_out=protos/docs/core --doc_opt=restructuredtext,core.rst -I=protos `echo $core_proto_files`
  • make generate generates the modified rst files.

  • make html generates the Sphinx documentation from the docs folder that uses the modified rst files.