diff --git a/Makefile b/Makefile index fcefc234e..839a07076 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,7 @@ PYTHON_VERSION?=3.11 CONDA_ACTIVATE = source $$(conda info --base)/etc/profile.d/conda.sh ; conda activate ELYRA_VERSION:=$$(grep __version__ elyra/_version.py | cut -d"\"" -f2) -TAG:=4.0.0rc0 +TAG:=dev IMAGE_IS_LATEST=False ELYRA_IMAGE=elyra/elyra:$(TAG) ELYRA_IMAGE_LATEST=elyra/elyra:latest diff --git a/README.md b/README.md index b6f8cf125..a6a72cb26 100644 --- a/README.md +++ b/README.md @@ -59,14 +59,14 @@ Note: You can also [build a container image from the `main` branch ("dev build") To run one of the container images, issue the following command, specifying a tag of your choice. ``` -docker run -it -p 8888:8888 elyra/elyra:4.0.0rc0 jupyter lab --debug +docker run -it -p 8888:8888 elyra/elyra:dev jupyter lab --debug ``` To make a local directory containing your Notebooks (e.g. ${HOME}/opensource/jupyter-notebooks/) available in your docker container, you can use a mount command similar to the following: ``` -docker run -it -p 8888:8888 -v ${HOME}/opensource/jupyter-notebooks/:/home/jovyan/work -w /home/jovyan/work elyra/elyra:4.0.0rc0 jupyter lab --debug +docker run -it -p 8888:8888 -v ${HOME}/opensource/jupyter-notebooks/:/home/jovyan/work -w /home/jovyan/work elyra/elyra:dev jupyter lab --debug ``` These should produce output similar to that below, where you can then find the URL to be used to access Elyra in your local browser. diff --git a/docs/source/recipes/configure-airflow-as-a-runtime.md b/docs/source/recipes/configure-airflow-as-a-runtime.md index acd9d38b3..1b6b91d10 100644 --- a/docs/source/recipes/configure-airflow-as-a-runtime.md +++ b/docs/source/recipes/configure-airflow-as-a-runtime.md @@ -39,7 +39,7 @@ AND - A Kubernetes Cluster without Apache Airflow installed - Ensure Kubernetes is at least v1.18. Earlier versions might work but have not been tested. - Helm v3.0 or later - - Use the [Helm chart](https://github.com/airflow-helm/charts/tree/v4.0.0rc0/charts/airflow) available in the Airflow source distribution with the [Elyra sample configuration](https://raw.githubusercontent.com/elyra-ai/elyra/v4.0.0rc0/etc/kubernetes/airflow/helm/values.yaml). + - Use the [Helm chart](https://github.com/airflow-helm/charts/tree/main/charts/airflow) available in the Airflow source distribution with the [Elyra sample configuration](https://raw.githubusercontent.com/elyra-ai/elyra/main/etc/kubernetes/airflow/helm/values.yaml). OR @@ -54,7 +54,7 @@ OR In order to use Apache Airflow with Elyra, it must be configured to use a Git repository to store DAGs. -- Create a private repository on github.com, GitHub Enterprise, gitlab.com, or GitLab Enterprise. (Elyra produces DAGs that contain credentials, which are not encrypted. Therefore you should not use a public repository.) Next, create a branch (e.g `v4.0.0rc0`) in your repository. This will be referenced later for storing the DAGs. +- Create a private repository on github.com, GitHub Enterprise, gitlab.com, or GitLab Enterprise. (Elyra produces DAGs that contain credentials, which are not encrypted. Therefore you should not use a public repository.) Next, create a branch (e.g `main`) in your repository. This will be referenced later for storing the DAGs. - Generate a personal access token with push access to the repository. This token is used by Elyra to upload DAGs. - [Instructions for GitHub](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token) - [Instructions for GitLab](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html) @@ -65,7 +65,7 @@ In order to use Apache Airflow with Elyra, it must be configured to use a Git re Take note of the following information: - Git API endpoint (e.g. `https://api.github.com` for github.com or `https://gitlab.com` for gitlab.com) - Repository name (e.g. `your-git-org/your-dag-repo`) - - Repository branch name (e.g. `v4.0.0rc0`) + - Repository branch name (e.g. `main`) - Personal access token (e.g. `4d79206e616d6520697320426f6e642e204a616d657320426f6e64`) You need to provide this information in addition to your cloud object storage credentials when you [create a runtime configuration](../user_guide/runtime-conf) in Elyra for the Apache Airflow deployment. @@ -83,9 +83,9 @@ To deploy Apache Airflow on a new Kubernetes cluster: kubectl create secret generic airflow-secret --from-file=id_rsa=.ssh/id_rsa --from-file=known_hosts=.ssh/known_hosts --from-file=id_rsa.pub=.ssh/id_rsa.pub -n airflow ``` -2. Download, review, and customize the [sample `helm` configuration](https://raw.githubusercontent.com/elyra-ai/elyra/v4.0.0rc0/etc/kubernetes/airflow/helm/values.yaml) (or customize an existing configuration). This sample configuration will use the `KubernetesExecutor` by default. +2. Download, review, and customize the [sample `helm` configuration](https://raw.githubusercontent.com/elyra-ai/elyra/main/etc/kubernetes/airflow/helm/values.yaml) (or customize an existing configuration). This sample configuration will use the `KubernetesExecutor` by default. - Set `git.url` to the URL of the private repository you created earlier, e.g. `ssh://git@github.com/your-git-org/your-dag-repo`. **Note: Make sure your ssh URL contains only forward slashes.** - - Set `git.ref` to the DAG branch, e.g. `v4.0.0rc0` you created earlier. + - Set `git.ref` to the DAG branch, e.g. `main` you created earlier. - Set `git.secret` to the name of the secret you created, e.g. `airflow-secret`. - Adjust the `git.gitSync.refreshTime` as desired. @@ -107,7 +107,7 @@ To deploy Apache Airflow on a new Kubernetes cluster: ## the branch/tag/sha1 which we clone ## - ref: "v4.0.0rc0" + ref: "main" ## the name of a pre-created secret containing files for ~/.ssh/ ## @@ -131,7 +131,7 @@ To deploy Apache Airflow on a new Kubernetes cluster: repository: elyra/airflow ``` - The container image is created using [this `Dockerfile`](https://github.com/elyra-ai/elyra/tree/v4.0.0rc0/etc/docker/airflow) and published on [Docker Hub](https://hub.docker.com/r/elyra/airflow) and [quay.io](https://quay.io/repository/elyra/airflow). + The container image is created using [this `Dockerfile`](https://github.com/elyra-ai/elyra/tree/main/etc/docker/airflow) and published on [Docker Hub](https://hub.docker.com/r/elyra/airflow) and [quay.io](https://quay.io/repository/elyra/airflow). 3. Install Apache Airflow using the customized configuration. diff --git a/docs/source/recipes/deploying-elyra-in-a-jupyterhub-environment.md b/docs/source/recipes/deploying-elyra-in-a-jupyterhub-environment.md index 0247cd295..5ef305f10 100644 --- a/docs/source/recipes/deploying-elyra-in-a-jupyterhub-environment.md +++ b/docs/source/recipes/deploying-elyra-in-a-jupyterhub-environment.md @@ -42,7 +42,7 @@ singleuser: image: name: elyra/elyra # change to a specific release version as appropriate - tag: 4.0.0rc0 + tag: dev # disable this in a production environment pullPolicy: "Always" storage: @@ -94,7 +94,7 @@ singleuser: image: name: elyra/elyra # change to a specific release version as appropriated - tag: 4.0.0rc0 + tag: dev # disable this in a production environment pullPolicy: "Always" storage: @@ -112,7 +112,7 @@ required to run elyra, and that could be used to customize your environment with packages required by your workloads, or any other customizations needed. ```dockerfile -FROM elyra/elyra:4.0.0rc0 +FROM elyra/elyra:dev ... diff --git a/docs/source/recipes/running-elyra-in-air-gapped-environment.md b/docs/source/recipes/running-elyra-in-air-gapped-environment.md index 1d8ea104c..9135c3e4f 100644 --- a/docs/source/recipes/running-elyra-in-air-gapped-environment.md +++ b/docs/source/recipes/running-elyra-in-air-gapped-environment.md @@ -50,10 +50,10 @@ During pipeline execution in the Kubeflow Pipelines or Apache Airflow environmen - **Container registry**: All pipeline nodes are executed in containers. The runtime environment must be configured to have read access to the registries (e.g. Docker Hub) where the container images are stored that the generic and custom components are referencing. - **Elyra runtime artifacts**: When processing pipeline nodes that are implemented using [generic components](../user_guide/pipeline-components.html#generic-components), Elyra downloads a few dependencies to the container. By default these dependencies are located in a _release-specific branch_ in the [Elyra GitHub repository](https://github.com/elyra-ai/elyra): ``` - https://raw.githubusercontent.com/elyra-ai/elyra/v4.0.0rc0/etc/kfp/pip.conf - https://raw.githubusercontent.com/elyra-ai/elyra/v4.0.0rc0/elyra/kfp/bootstrapper.py - https://raw.githubusercontent.com/elyra-ai/elyra/v4.0.0rc0/elyra/airflow/bootstrapper.py - https://raw.githubusercontent.com/elyra-ai/elyra/v4.0.0rc0/etc/generic/requirements-elyra.txt + https://raw.githubusercontent.com/elyra-ai/elyra/main/etc/kfp/pip.conf + https://raw.githubusercontent.com/elyra-ai/elyra/main/elyra/kfp/bootstrapper.py + https://raw.githubusercontent.com/elyra-ai/elyra/main/elyra/airflow/bootstrapper.py + https://raw.githubusercontent.com/elyra-ai/elyra/main/etc/generic/requirements-elyra.txt ``` In air-gapped environments you must store a copy of these files in a location that is accessible via an anonymous HTTP `GET` request and configure the following environment variables _in the environment where JupyterLab is running_: - For Kubeflow Pipelines: diff --git a/docs/source/recipes/using-elyra-with-kubeflow-notebook-server.md b/docs/source/recipes/using-elyra-with-kubeflow-notebook-server.md index 90952557c..6d497595d 100644 --- a/docs/source/recipes/using-elyra-with-kubeflow-notebook-server.md +++ b/docs/source/recipes/using-elyra-with-kubeflow-notebook-server.md @@ -29,7 +29,7 @@ In this example we will show how to launch Elyra using [Kubeflow's Notebook Serv OR - Create a custom Elyra container image following the [instructions in this directory](https://github.com/elyra-ai/elyra/tree/4.0.0rc0/etc/docker/kubeflow). + Create a custom Elyra container image following the [instructions in this directory](https://github.com/elyra-ai/elyra/tree/main/etc/docker/kubeflow). ## Launching Elyra in the Kubeflow Notebook Server 1. In the default Kubeflow welcome page, in the left side menu, click on `Notebook Servers` diff --git a/docs/source/user_guide/jupyterlab-interface.md b/docs/source/user_guide/jupyterlab-interface.md index dc3f6c22e..060e65911 100644 --- a/docs/source/user_guide/jupyterlab-interface.md +++ b/docs/source/user_guide/jupyterlab-interface.md @@ -24,7 +24,7 @@ Many of these tasks can also be accomplished using the [Elyra command line inter ### Launcher -Elyra adds a new category to the JupyterLab launcher, providing access to the [Visual Pipeline Editor](#visual-pipeline-editor), the [Python editor](enhanced-script-support.html#python-script-execution-support), the [R editor](enhanced-script-support.html#r-script-execution-support), and the [Elyra documentation](https://elyra.readthedocs.io/en/v4.0.0rc0/). +Elyra adds a new category to the JupyterLab launcher, providing access to the [Visual Pipeline Editor](#visual-pipeline-editor), the [Python editor](enhanced-script-support.html#python-script-execution-support), the [R editor](enhanced-script-support.html#r-script-execution-support), and the [Elyra documentation](https://elyra.readthedocs.io/en/latest/). ![Elyra category in JupyterLab launcher](../images/user_guide/jupyterlab-interface/launcher.png) diff --git a/elyra/_version.py b/elyra/_version.py index a8989a545..87d8a6dfb 100644 --- a/elyra/_version.py +++ b/elyra/_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "4.0.0rc0" +__version__ = "4.0.0.dev0" diff --git a/elyra/cli/pipeline_app.py b/elyra/cli/pipeline_app.py index 832fc95b5..68ffa0365 100644 --- a/elyra/cli/pipeline_app.py +++ b/elyra/cli/pipeline_app.py @@ -271,7 +271,7 @@ def pipeline(): Run Elyra pipelines in your local environment or submit them to an external service, such as Kubeflow Pipelines or Apache Airflow. - Find more information at: https://elyra.readthedocs.io/en/v4.0.0rc0/ + Find more information at: https://elyra.readthedocs.io/en/latest/ """ pass diff --git a/elyra/metadata/metadata_app_utils.py b/elyra/metadata/metadata_app_utils.py index 7e6a8f5bd..4556b0468 100644 --- a/elyra/metadata/metadata_app_utils.py +++ b/elyra/metadata/metadata_app_utils.py @@ -640,7 +640,7 @@ def print_subcommands(self): print("-----------") print("Subcommands are launched as `elyra-metadata cmd [args]`. For information on") print("using subcommand 'cmd', run: `elyra-metadata cmd -h` or `elyra-metadata cmd --help`.") - print("\nFind more information at https://elyra.readthedocs.io/en/v4.0.0rc0/") + print("\nFind more information at https://elyra.readthedocs.io/en/latest/") print() for subcommand, desc in self.subcommands.items(): print(f"{subcommand:<10}{desc[1]:>10}") diff --git a/elyra/metadata/schemas/airflow.json b/elyra/metadata/schemas/airflow.json index 6acfa5eea..8ae7f329c 100644 --- a/elyra/metadata/schemas/airflow.json +++ b/elyra/metadata/schemas/airflow.json @@ -10,7 +10,7 @@ "uihints": { "title": "Apache Airflow runtimes", "icon": "elyra:runtimes", - "reference_url": "https://elyra.readthedocs.io/en/v4.0.0rc0/user_guide/runtime-conf.html" + "reference_url": "https://elyra.readthedocs.io/en/latest/user_guide/runtime-conf.html" }, "properties": { "schema_name": { diff --git a/elyra/metadata/schemas/code-snippet.json b/elyra/metadata/schemas/code-snippet.json index 93c037540..c43e64caa 100644 --- a/elyra/metadata/schemas/code-snippet.json +++ b/elyra/metadata/schemas/code-snippet.json @@ -8,7 +8,7 @@ "uihints": { "title": "Code Snippets", "icon": "elyra:code-snippet", - "reference_url": "https://elyra.readthedocs.io/en/v4.0.0rc0/user_guide/code-snippets.html" + "reference_url": "https://elyra.readthedocs.io/en/latest/user_guide/code-snippets.html" }, "properties": { "schema_name": { diff --git a/elyra/metadata/schemas/kfp.json b/elyra/metadata/schemas/kfp.json index fdb1af4ef..701549b44 100644 --- a/elyra/metadata/schemas/kfp.json +++ b/elyra/metadata/schemas/kfp.json @@ -10,7 +10,7 @@ "uihints": { "title": "Kubeflow Pipelines runtimes", "icon": "elyra:runtimes", - "reference_url": "https://elyra.readthedocs.io/en/v4.0.0rc0/user_guide/runtime-conf.html" + "reference_url": "https://elyra.readthedocs.io/en/latest/user_guide/runtime-conf.html" }, "properties": { "schema_name": { diff --git a/elyra/metadata/schemas/local-directory-catalog.json b/elyra/metadata/schemas/local-directory-catalog.json index 53f1fea69..18471a16f 100644 --- a/elyra/metadata/schemas/local-directory-catalog.json +++ b/elyra/metadata/schemas/local-directory-catalog.json @@ -9,7 +9,7 @@ "metadata_class_name": "elyra.pipeline.component_metadata.DirectoryCatalogMetadata", "uihints": { "icon": "", - "reference_url": "https://elyra.readthedocs.io/en/v4.0.0rc0/user_guide/pipeline-components.html#directory-component-catalog" + "reference_url": "https://elyra.readthedocs.io/en/latest/user_guide/pipeline-components.html#directory-component-catalog" }, "properties": { "schema_name": { diff --git a/elyra/metadata/schemas/local-file-catalog.json b/elyra/metadata/schemas/local-file-catalog.json index 9ed99ba92..ea419dc76 100644 --- a/elyra/metadata/schemas/local-file-catalog.json +++ b/elyra/metadata/schemas/local-file-catalog.json @@ -9,7 +9,7 @@ "metadata_class_name": "elyra.pipeline.component_metadata.FilenameCatalogMetadata", "uihints": { "icon": "", - "reference_url": "https://elyra.readthedocs.io/en/v4.0.0rc0/user_guide/pipeline-components.html#filesystem-component-catalog" + "reference_url": "https://elyra.readthedocs.io/en/latest/user_guide/pipeline-components.html#filesystem-component-catalog" }, "properties": { "schema_name": { diff --git a/elyra/metadata/schemas/runtime-image.json b/elyra/metadata/schemas/runtime-image.json index faf9cf633..93b997dcd 100644 --- a/elyra/metadata/schemas/runtime-image.json +++ b/elyra/metadata/schemas/runtime-image.json @@ -8,7 +8,7 @@ "uihints": { "icon": "elyra:container", "title": "Runtime Images", - "reference_url": "https://elyra.readthedocs.io/en/v4.0.0rc0/user_guide/runtime-image-conf.html" + "reference_url": "https://elyra.readthedocs.io/en/latest/user_guide/runtime-image-conf.html" }, "properties": { "schema_name": { diff --git a/elyra/metadata/schemas/url-catalog.json b/elyra/metadata/schemas/url-catalog.json index 3de3fa03a..dcdd4d93c 100644 --- a/elyra/metadata/schemas/url-catalog.json +++ b/elyra/metadata/schemas/url-catalog.json @@ -9,7 +9,7 @@ "metadata_class_name": "elyra.pipeline.component_metadata.UrlCatalogMetadata", "uihints": { "icon": "", - "reference_url": "https://elyra.readthedocs.io/en/v4.0.0rc0/user_guide/pipeline-components.html#url-component-catalog" + "reference_url": "https://elyra.readthedocs.io/en/latest/user_guide/pipeline-components.html#url-component-catalog" }, "properties": { "schema_name": { diff --git a/lerna.json b/lerna.json index 8e98a591c..6756b570e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "4.0.0-rc.0", + "version": "4.0.0-dev", "npmClient": "yarn", "command": { "publish": { diff --git a/package.json b/package.json index 14b3cb6a7..a26501779 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "elyra", - "version": "4.0.0-rc.0", + "version": "4.0.0-dev", "private": true, "workspaces": { "packages": [ diff --git a/packages/code-snippet/package.json b/packages/code-snippet/package.json index af01d4d5c..eebcf1bc5 100644 --- a/packages/code-snippet/package.json +++ b/packages/code-snippet/package.json @@ -1,6 +1,6 @@ { "name": "@elyra/code-snippet-extension", - "version": "4.0.0-rc.0", + "version": "4.0.0-dev", "description": "JupyterLab extension - Reusable code snippets for your Notebook and Python Scripts", "keywords": [ "jupyter", @@ -52,9 +52,9 @@ "watch:labextension": "jupyter labextension watch ." }, "dependencies": { - "@elyra/metadata-common": "4.0.0-rc.0", - "@elyra/services": "4.0.0-rc.0", - "@elyra/ui-components": "4.0.0-rc.0", + "@elyra/metadata-common": "4.0.0-dev", + "@elyra/services": "4.0.0-dev", + "@elyra/ui-components": "4.0.0-dev", "@jupyterlab/application": "^4.2.5", "@jupyterlab/apputils": "^4.2.5", "@jupyterlab/builder": "^4.2.5", diff --git a/packages/code-viewer/package.json b/packages/code-viewer/package.json index f5de790d0..1ab40f782 100644 --- a/packages/code-viewer/package.json +++ b/packages/code-viewer/package.json @@ -1,6 +1,6 @@ { "name": "@elyra/code-viewer-extension", - "version": "4.0.0-rc.0", + "version": "4.0.0-dev", "description": "JupyterLab extension - Display code without a file", "keywords": [ "jupyter", diff --git a/packages/metadata-common/package.json b/packages/metadata-common/package.json index 4e89f4ed3..04148d435 100644 --- a/packages/metadata-common/package.json +++ b/packages/metadata-common/package.json @@ -1,6 +1,6 @@ { "name": "@elyra/metadata-common", - "version": "4.0.0-rc.0", + "version": "4.0.0-dev", "description": "JupyterLab - Widgets for interacting with metadata", "keywords": [ "jupyter", @@ -51,8 +51,8 @@ "watch:labextension": "jupyter labextension watch ." }, "dependencies": { - "@elyra/services": "4.0.0-rc.0", - "@elyra/ui-components": "4.0.0-rc.0", + "@elyra/services": "4.0.0-dev", + "@elyra/ui-components": "4.0.0-dev", "@jupyterlab/application": "^4.2.5", "@jupyterlab/apputils": "^4.2.5", "@jupyterlab/codeeditor": "^4.2.5", diff --git a/packages/metadata/package.json b/packages/metadata/package.json index 1320a9252..5ad318f51 100644 --- a/packages/metadata/package.json +++ b/packages/metadata/package.json @@ -1,6 +1,6 @@ { "name": "@elyra/metadata-extension", - "version": "4.0.0-rc.0", + "version": "4.0.0-dev", "description": "JupyterLab extension - View and edit metadata", "keywords": [ "jupyter", @@ -52,8 +52,8 @@ "watch:labextension": "jupyter labextension watch ." }, "dependencies": { - "@elyra/metadata-common": "4.0.0-rc.0", - "@elyra/services": "4.0.0-rc.0", + "@elyra/metadata-common": "4.0.0-dev", + "@elyra/services": "4.0.0-dev", "@jupyterlab/application": "^4.2.5", "@jupyterlab/apputils": "^4.2.5", "@jupyterlab/builder": "^4.2.5", diff --git a/packages/pipeline-editor/package.json b/packages/pipeline-editor/package.json index 1cb5e374e..36242ab67 100644 --- a/packages/pipeline-editor/package.json +++ b/packages/pipeline-editor/package.json @@ -1,6 +1,6 @@ { "name": "@elyra/pipeline-editor-extension", - "version": "4.0.0-rc.0", + "version": "4.0.0-dev", "description": "JupyterLab extension - Visual editor to build Notebook pipelines", "keywords": [ "jupyter", @@ -53,11 +53,11 @@ "watch:labextension": "jupyter labextension watch ." }, "dependencies": { - "@elyra/metadata-common": "4.0.0-rc.0", + "@elyra/metadata-common": "4.0.0-dev", "@elyra/pipeline-editor": "1.12.1", "@elyra/pipeline-services": "1.12.1", - "@elyra/services": "4.0.0-rc.0", - "@elyra/ui-components": "4.0.0-rc.0", + "@elyra/services": "4.0.0-dev", + "@elyra/ui-components": "4.0.0-dev", "@jupyterlab/application": "^4.2.5", "@jupyterlab/apputils": "^4.2.5", "@jupyterlab/builder": "^4.2.5", diff --git a/packages/pipeline-editor/src/EmptyPipelineContent.tsx b/packages/pipeline-editor/src/EmptyPipelineContent.tsx index b3d38b396..65a57f09d 100644 --- a/packages/pipeline-editor/src/EmptyPipelineContent.tsx +++ b/packages/pipeline-editor/src/EmptyPipelineContent.tsx @@ -69,7 +69,7 @@ export const EmptyPlatformSpecificPipeline: React.FC< // Note: the URL is rewritten by the release script by replacing `latest` with a // specific version number, e.g. https://.../en/v3.6.0/user_guide/pi... const customComponentsHelpTopicURL = - 'https://elyra.readthedocs.io/en/v4.0.0rc0/user_guide/pipeline-components.html'; + 'https://elyra.readthedocs.io/en/latest/user_guide/pipeline-components.html'; return (