diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 854f38a43..9a02f5990 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,7 +13,7 @@ include: /.gitlab/ci/common.yml workflow: rules: - - if: $CI_PROJECT_PATH != "omniverse/warp" # Prevent fork pipelines + - if: $CI_PROJECT_ROOT_NAMESPACE != "omniverse" # Prevent pipelines that can't access the runners when: never - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_COMMIT_TAG # Run for tagged releases @@ -26,7 +26,7 @@ workflow: auto_cancel: on_new_commit: none on_job_failure: none - - if: $CI_COMMIT_BRANCH =~ /release-.*/ + - if: $CI_COMMIT_BRANCH =~ /^release-.*/ - if: $CI_PIPELINE_SOURCE == "web" # Run if triggered from the UI variables: @@ -272,7 +272,7 @@ windows-x86_64 test mgpu: rules: - if: $CI_PIPELINE_SOURCE == "schedule" - if: $CI_COMMIT_TAG - - if: $CI_COMMIT_BRANCH =~ /release-.*/ + - if: $CI_COMMIT_BRANCH =~ /^release-.*/ - when: manual # Can be triggered in all other scenarios allow_failure: true before_script: @@ -340,7 +340,7 @@ trigger python 3.X test pipelines: rules: - if: $CI_PIPELINE_SOURCE == "schedule" - if: $CI_COMMIT_TAG - - if: $CI_COMMIT_BRANCH =~ /release-.*/ + - if: $CI_COMMIT_BRANCH =~ /^release-.*/ - when: manual # Can be triggered in all other scenarios allow_failure: true variables: @@ -380,7 +380,7 @@ trigger debug build and test pipeline: rules: - if: $CI_PIPELINE_SOURCE == "schedule" - if: $CI_COMMIT_TAG - - if: $CI_COMMIT_BRANCH =~ /release-.*/ + - if: $CI_COMMIT_BRANCH =~ /^release-.*/ - when: manual # Can be triggered in all other scenarios allow_failure: true variables: @@ -408,7 +408,7 @@ trigger cuda 11 pipeline: rules: - if: $CI_PIPELINE_SOURCE == "schedule" - if: $CI_COMMIT_TAG - - if: $CI_COMMIT_BRANCH =~ /release-.*/ + - if: $CI_COMMIT_BRANCH =~ /^release-.*/ - when: manual # Can be triggered in all other scenarios allow_failure: true variables: @@ -445,7 +445,7 @@ create pypi wheels: rules: - if: $CI_PIPELINE_SOURCE == "schedule" - if: $CI_COMMIT_TAG - - if: $CI_COMMIT_BRANCH =~ /release-.*/ + - if: $CI_COMMIT_BRANCH =~ /^release-.*/ - if: $CI_PIPELINE_SOURCE == 'merge_request_event' changes: - pyproject.toml @@ -470,6 +470,12 @@ create pypi wheels: - sed -i "s/^\(.*\)+cu12$/\1+cpu/" VERSION.md # Modify VERSION.md with +cu12 replaced by +cpu - python3 -m build --wheel -C--build-option=-Pmacos-universal - sed -i "s/^\(.*\)+cpu$/\1/" VERSION.md # Revert VERSION.md changes + - mv dist dist-github + # Now make the wheels meant for PyPI publishing + - python3 -m build --wheel -C--build-option=-Pwindows-x86_64 + - python3 -m build --wheel -C--build-option=-Plinux-x86_64 + - python3 -m build --wheel -C--build-option=-Plinux-aarch64 + - python3 -m build --wheel -C--build-option=-Pmacos-universal - find . -type f -exec chmod 664 {} + - find . -type d -exec chmod 775 {} + artifacts: @@ -477,6 +483,7 @@ create pypi wheels: expose_as: "Python Wheels" paths: - "dist/" + - "dist-github/" when: always # ============================================================================== @@ -486,6 +493,44 @@ create pypi wheels: # GitLab service. # ============================================================================== +publish wheels to testpypi registry: + stage: deploy + image: python:3.11-slim + needs: ["create pypi wheels"] + extends: + - .runner-utility-linux-x86_64 + rules: + - if: $PARENT_COMMIT_BRANCH =~ /release-.*/ + when: manual + allow_failure: true + environment: + name: staging + url: https://test.pypi.org/project/warp-lang/ + before_script: + - python3 -m pip install --upgrade pip + - python3 -m pip install --upgrade build twine + script: + - python3 -m twine upload --verbose --skip-existing --non-interactive --repository testpypi dist/* -u __token__ -p $TESTPYPI_DEPLOY_KEY + +publish wheels to pypi registry: + stage: deploy + image: python:3.11-slim + needs: ["create pypi wheels"] + extends: + - .runner-utility-linux-x86_64 + rules: + - if: $PARENT_COMMIT_BRANCH =~ /release-.*/ + when: manual + allow_failure: true + environment: + name: production + url: https://pypi.org/project/warp-lang/ + before_script: + - python3 -m pip install --upgrade pip + - python3 -m pip install --upgrade build twine + script: + - python3 -m twine upload --verbose --skip-existing --non-interactive dist/* -u __token__ -p $PYPI_DEPLOY_KEY + publish wheels to gitlab pypi registry: stage: deploy image: python:3.11-slim @@ -493,14 +538,14 @@ publish wheels to gitlab pypi registry: extends: - .runner-utility-linux-x86_64 rules: - - if: $CI_COMMIT_BRANCH =~ /release-.*/ + - if: $CI_COMMIT_BRANCH =~ /^release-.*/ when: manual allow_failure: true before_script: - python3 -m pip install --upgrade pip - python3 -m pip install --upgrade build twine script: - - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python3 -m twine upload --verbose --skip-existing --non-interactive --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/* + - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python3 -m twine upload --verbose --skip-existing --non-interactive --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist-github/* # Uploads the wheels to the internal GitLab package registry in the Warp project # Generated files will be in a branch/tag-specific folder @@ -510,7 +555,7 @@ publish wheels to gitlab package registry: extends: - .runner-utility-linux-x86_64 rules: - - if: $CI_COMMIT_BRANCH =~ /release-.*/ + - if: $CI_COMMIT_BRANCH =~ /^release-.*/ - when: manual # If not auto-triggered, allow any pipeline to run this job manually allow_failure: true before_script: diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 21d78d763..1c9fde7d5 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -70,7 +70,7 @@ ^[Native C++/CUDA] @mmacklin @lwawrzyniak @ncapens /warp/native/ -^[Volumes] @gklar +^[Volumes] @gdaviet @gklar /warp/native/nanovdb/ /warp/native/volume* /warp/tests/test_volume_write.py diff --git a/.gitlab/ci/cuda-11-build-and-test.yml b/.gitlab/ci/cuda-11-build-and-test.yml index 468c32e9e..d2e1827c1 100644 --- a/.gitlab/ci/cuda-11-build-and-test.yml +++ b/.gitlab/ci/cuda-11-build-and-test.yml @@ -205,13 +205,6 @@ create pypi wheels: - sed -i "s/^\(.*\)+cu11$/\1+cpu/" VERSION.md # Modify VERSION.md with +cu12 replaced by +cpu - python3 -m build --wheel -C--build-option=-Pmacos-universal - sed -i "s/^\(.*\)+cpu$/\1/" VERSION.md # Revert VERSION.md changes - - mkdir -p dist-github - - mv dist/* dist-github/ - # Now make the wheels meant for PyPI publishing - - python3 -m build --wheel -C--build-option=-Pwindows-x86_64 - - python3 -m build --wheel -C--build-option=-Plinux-x86_64 - - python3 -m build --wheel -C--build-option=-Plinux-aarch64 - - python3 -m build --wheel -C--build-option=-Pmacos-universal - find . -type f -exec chmod 664 {} + - find . -type d -exec chmod 775 {} + artifacts: @@ -219,7 +212,6 @@ create pypi wheels: expose_as: "Python Wheels" paths: - "dist/" - - "dist-github/" when: always # Creates an artifact suitable for publishing the Kit extensions @@ -257,44 +249,6 @@ create kit artifacts: # GitLab service. # ============================================================================== -publish wheels to testpypi registry: - stage: deploy - image: python:3.11-slim - needs: ["create pypi wheels"] - extends: - - .runner-utility-linux-x86_64 - rules: - - if: $PARENT_COMMIT_BRANCH =~ /release-.*/ - when: manual - allow_failure: true - environment: - name: staging - url: https://test.pypi.org/project/warp-lang/ - before_script: - - python3 -m pip install --upgrade pip - - python3 -m pip install --upgrade build twine - script: - - python3 -m twine upload --verbose --skip-existing --non-interactive --repository testpypi dist/* -u __token__ -p $TESTPYPI_DEPLOY_KEY - -publish wheels to pypi registry: - stage: deploy - image: python:3.11-slim - needs: ["create pypi wheels"] - extends: - - .runner-utility-linux-x86_64 - rules: - - if: $PARENT_COMMIT_BRANCH =~ /release-.*/ - when: manual - allow_failure: true - environment: - name: production - url: https://pypi.org/project/warp-lang/ - before_script: - - python3 -m pip install --upgrade pip - - python3 -m pip install --upgrade build twine - script: - - python3 -m twine upload --verbose --skip-existing --non-interactive dist/* -u __token__ -p $PYPI_DEPLOY_KEY - publish wheels to gitlab pypi registry: stage: deploy image: python:3.11-slim @@ -309,7 +263,7 @@ publish wheels to gitlab pypi registry: - python3 -m pip install --upgrade pip - python3 -m pip install --upgrade build twine script: - - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python3 -m twine upload --verbose --skip-existing --non-interactive --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist-github/* + - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python3 -m twine upload --verbose --skip-existing --non-interactive --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/* # Uploads the wheels to the internal GitLab package registry in the Warp project # Generated files will be in a branch/tag-specific folder @@ -331,7 +285,7 @@ publish wheels to gitlab package registry: curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file "$file" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/warp/${CI_COMMIT_REF_SLUG}/${filename}" done - | - if [ -f kit-extension.zip ]; then + if [ -f kit-extensions.zip ]; then curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file kit-extensions.zip "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/warp/${CI_COMMIT_REF_SLUG}/kit-extensions.zip" else echo "kit-extensions.zip not found, skipping upload." @@ -346,6 +300,8 @@ publish extensions to packman: extends: - .runner-utility-linux-x86_64 rules: + - if: $CI_PROJECT_PATH != "omniverse/warp" # Prevent fork pipelines from running this job + when: never - if: $PARENT_COMMIT_BRANCH =~ /release-.*/ when: manual allow_failure: true diff --git a/docs/index.rst b/docs/index.rst index 079569981..850056c83 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -21,8 +21,8 @@ The easiest way to install Warp is from `PyPI `_ page. -Copy the URL of the appropriate wheel file (``warp-lang-{ver}+cu12-py3-none-{platform}.whl``) and pass it to +The binaries hosted on PyPI are currently built with the CUDA 12.5 runtime. +We also provide binaries built with the CUDA 11.8 runtime on the `GitHub Releases `_ page. +Copy the URL of the appropriate wheel file (``warp-lang-{ver}+cu11-py3-none-{platform}.whl``) and pass it to the ``pip install`` command, e.g. .. code-block:: sh - pip install https://github.com/NVIDIA/warp/releases/download/v1.2.0/warp_lang-1.2.0+cu12-py3-none-manylinux2014_x86_64.whl + pip install https://github.com/NVIDIA/warp/releases/download/v1.3.0/warp_lang-1.3.0+cu11-py3-none-manylinux2014_x86_64.whl The ``--force-reinstall`` option may need to be used to overwrite a previous installation.