Skip to content

Commit ef9b24d

Browse files
kiukchungfacebook-github-bot
authored andcommitted
(torchx/pipelines) Retire support for OSS pipelines; kfp and airflow (#1119)
Summary: Pull Request resolved: #1119 Virtually no usages on github (https://github.com/search?q=torchx.pipelines.kfp&type=code) other than references from forks of torchx. Retiring support to reduce maintainer burden and quicker/lighter CI. Reviewed By: ethanbwaite Differential Revision: D82579476
1 parent c534e45 commit ef9b24d

32 files changed

+4
-1585
lines changed

.github/workflows/kfp-integration-tests.yaml

Lines changed: 0 additions & 34 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,6 @@ lintrunner init
3939
lintrunner -a
4040
```
4141

42-
## Integration Tests
43-
44-
See the [KFP integration test](scripts/kfpint.py) file for more details on setup
45-
and running them.
46-
4742
## License
4843
By contributing to TorchX, you agree that your contributions will be licensed
4944
under the LICENSE file in the root directory of this source tree.

README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,6 @@ pip install torchx
5555
# install torchx sdk and CLI -- all dependencies
5656
pip install "torchx[dev]"
5757

58-
# install torchx kubeflow pipelines (kfp) support
59-
pip install "torchx[kfp]"
60-
6158
# install torchx Kubernetes / Volcano support
6259
pip install "torchx[kubernetes]"
6360

dev-requirements.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ google-cloud-logging==3.10.0
1212
google-cloud-runtimeconfig==0.34.0
1313
hydra-core
1414
ipython
15-
kfp==1.8.22
16-
# pin protobuf to the version that is required by kfp
17-
protobuf==3.20.3
1815
mlflow-skinny
1916
moto~=5.0.8
2017
pyre-extensions
@@ -45,4 +42,3 @@ grpcio==1.62.1
4542
grpcio-status==1.48.1
4643
googleapis-common-protos==1.63.0
4744
google-api-core==2.18.0
48-
protobuf==3.20.3 # kfp==1.8.22 needs protobuf < 4

docs/source/basics.rst

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ The top level modules in TorchX are:
1414
4. :mod:`torchx.cli`: CLI tool
1515
5. :mod:`torchx.runner`: given an app spec, submits the app as a job on a scheduler
1616
6. :mod:`torchx.schedulers`: backend job schedulers that the runner supports
17-
7. :mod:`torchx.pipelines`: adapters that convert the given app spec to a "stage" in an ML pipeline platform
18-
8. :mod:`torchx.runtime`: util and abstraction libraries you can use in authoring apps (not app spec)
17+
7. :mod:`torchx.runtime`: util and abstraction libraries you can use in authoring apps (not app spec)
1918

2019
Below is a UML diagram
2120

@@ -32,8 +31,7 @@ the actual application. In scheduler lingo, this is a ``JobDefinition`` and a
3231
similar concept in Kubernetes is the ``spec.yaml``. To disambiguate between the
3332
application binary (logic) and the spec, we typically refer to a TorchX
3433
``AppDef`` as an "app spec" or ``specs.AppDef``. It
35-
is the common interface understood by ``torchx.runner``
36-
and ``torchx.pipelines`` allowing you to run your app as a standalone job
34+
is the common interface understood by ``torchx.runner`` allowing you to run your app as a standalone job
3735
or as a stage in an ML pipeline.
3836

3937
Below is a simple example of an ``specs.AppDef`` that echos "hello world"
@@ -119,10 +117,6 @@ can be achieved through python function composition rather than object compositi
119117
However **we do not recommend component composition** for maintainability
120118
purposes.
121119

122-
**PROTIP 2:** To define dependencies between components, use a pipelining DSL.
123-
See :ref:`basics:Pipeline Adapters` section below to understand how TorchX components
124-
are used in the context of pipelines.
125-
126120
Before authoring your own component, browse through the library of
127121
:ref:`Components` that are included with TorchX
128122
to see if one fits your needs.
@@ -141,34 +135,11 @@ There are two ways to access runners in TorchX:
141135
See :ref:`Schedulers` for a list of schedulers that the runner can
142136
launch apps to.
143137

144-
Pipeline Adapters
145-
~~~~~~~~~~~~~~~~~~~~~~
146-
While runners launch components as standalone jobs, ``torchx.pipelines``
147-
makes it possible to plug components into an ML pipeline/workflow. For a
148-
specific target pipeline platform (e.g. kubeflow pipelines), TorchX
149-
defines an adapter that converts a TorchX app spec to whatever the
150-
"stage" representation is in the target platform. For instance,
151-
``torchx.pipelines.kfp`` adapter for kubeflow pipelines converts an
152-
app spec to a ``kfp.ContainerOp`` (or more accurately, a kfp "component spec" yaml).
153-
154-
155-
In most cases an app spec would map to a "stage" (or node) in a pipeline.
156-
However advanced components, especially those that have a mini control flow
157-
of its own (e.g. HPO), may map to a "sub-pipeline" or an "inline-pipeline".
158-
The exact semantics of how these advanced components map to the pipeline
159-
is dependent on the target pipeline platform. For example, if the
160-
pipeline DSL allows dynamically adding stages to a pipeline from an upstream
161-
stage, then TorchX may take advantage of such feature to "inline" the
162-
sub-pipeline to the main pipeline. TorchX generally tries its best to adapt
163-
app specs to the **most canonical** representation in the target pipeline platform.
164-
165-
See :ref:`Pipelines` for a list of supported pipeline platforms.
166-
167138
Runtime
168139
~~~~~~~~
169140
.. important:: ``torchx.runtime`` is by no means is a requirement to use TorchX.
170141
If your infrastructure is fixed and you don't need your application
171-
to be portable across different types of schedulers and pipelines,
142+
to be portable across different types of schedulers,
172143
you can skip this section.
173144

174145
Your application (not the app spec, but the actual app binary) has **ZERO** dependencies

docs/source/conf.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ def handle_item(fieldarg, content):
341341
code_url = f"https://github.com/pytorch/torchx/archive/refs/heads/{notebook_version}.tar.gz"
342342

343343
first_notebook_cell = f"""
344-
!pip install torchx[kfp]
344+
!pip install torchx
345345
!wget --no-clobber {code_url}
346346
!tar xf {notebook_version}.tar.gz --strip-components=1
347347
@@ -351,7 +351,6 @@ def handle_item(fieldarg, content):
351351
sphinx_gallery_conf = {
352352
"examples_dirs": [
353353
"../../torchx/examples/apps",
354-
"../../torchx/examples/pipelines",
355354
],
356355
"gallery_dirs": [
357356
"examples_apps",

docs/source/index.rst

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ TorchX
44
==================
55

66
TorchX is a universal job launcher for PyTorch applications.
7-
TorchX is designed to have fast iteration time for training/research and support
8-
for E2E production ML pipelines when you're ready.
97

108
**GETTING STARTED?** Follow the :ref:`quickstart guide<quickstart:Quickstart>`.
119

@@ -91,14 +89,6 @@ Works With
9189

9290
schedulers/fb/*
9391

94-
.. _Pipelines:
95-
.. toctree::
96-
:maxdepth: 1
97-
:caption: Pipelines
98-
99-
pipelines/kfp
100-
pipelines/airflow.md
101-
10292
.. fbcode::
10393

10494
.. toctree::
@@ -116,7 +106,6 @@ Examples
116106
:caption: Examples
117107

118108
examples_apps/index
119-
examples_pipelines/index
120109

121110

122111
Components Library
@@ -165,7 +154,6 @@ Reference
165154
runner
166155
schedulers
167156
workspace
168-
pipelines
169157

170158
.. toctree::
171159
:maxdepth: 1

docs/source/pipelines.rst

Lines changed: 0 additions & 15 deletions
This file was deleted.

docs/source/pipelines/airflow.md

Lines changed: 0 additions & 104 deletions
This file was deleted.

docs/source/pipelines/kfp.rst

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)