diff --git a/.github/actions/setup-python/action.yaml b/.github/actions/setup-python/action.yaml new file mode 100644 index 000000000..923755939 --- /dev/null +++ b/.github/actions/setup-python/action.yaml @@ -0,0 +1,55 @@ +name: Setup python + +description: Setup python using either actions/setup-pythono or conda + +inputs: + python-version: + description: Python version to setup + required: true + os: + description: os + required: true + +runs: + using: "composite" + steps: + - name: Set up Python ${{ inputs.python-version }} with actions/setup-python + if: ${{ inputs.python-version != '2.7' }} + uses: actions/setup-python@v4 + with: + python-version: ${{ inputs.python-version }} + + # Conda comes pre-installed with the GitHub hosted runners. + - name: Create conda environment + if: ${{ inputs.python-version == '2.7' }} + shell: bash + run: | + if [[ "${OSTYPE}" == "msys" ]]; then + eval "$(/c/Miniconda/condabin/conda.bat shell.bash hook)" + else + eval "$(conda shell.bash hook)" + fi + conda create -n python python=2.7 setuptools wheel + + - name: Fix conda installed python + if: inputs.python-version == '2.7' && (startsWith(inputs.os, 'ubuntu') || startsWith(inputs.os, 'macos')) + shell: bash -el {0} + run: | + set -ex + + eval "$(conda shell.bash hook)" + conda activate python + conda info + + if [[ "${{ inputs.os }}" = macos* ]]; then + install_name_tool -change @rpath/libpython2.7.dylib $(dirname $(which python))/../lib/libpython2.7.dylib $(which python) + else + sudo apt-get install patchelf + + # This will allow virtualenv to work correctly. + # Basically, Python provided by conda is "fully portable". Its default + # RPATH is "$ORIGIN/../lib". The problem is that once the virtualenv + # is created, the copied/symlinked interpreter in the venv won't be + # able to load lib since the lib folder isn't copied in the venv. + patchelf --set-rpath $(dirname $(which python))/../lib $(which python) + fi diff --git a/.github/workflows/benchmark.yaml b/.github/workflows/benchmark.yaml index 0e341d4ed..ddf14a454 100644 --- a/.github/workflows/benchmark.yaml +++ b/.github/workflows/benchmark.yaml @@ -25,16 +25,23 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + - name: Setup python ${{ matrix.python-version }} + uses: ./.github/actions/setup-python with: python-version: ${{ matrix.python-version }} + os: ubuntu-latest - name: Install Rez run: | mkdir ./installdir + + if [[ "${{ matrix.python-version }}" == "2.7" ]]; then + eval "$(conda shell.bash hook)" + conda activate python + fi + python ./install.py ./installdir - name: Run Benchmark @@ -46,9 +53,13 @@ jobs: - name: Validate Result run: | + if [[ "${{ matrix.python-version }}" == "2.7" ]]; then + eval "$(conda shell.bash hook)" + conda activate python + fi python ./.github/scripts/validate_benchmark.py - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v3 with: name: "benchmark-result-${{ matrix.python-version }}" path: ./out @@ -68,18 +79,19 @@ jobs: max-parallel: 1 steps: - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + - name: Setup python ${{ matrix.python-version }} + uses: ./.github/actions/setup-python with: python-version: ${{ matrix.python-version }} + os: ubuntu - - uses: actions/download-artifact@v2 + - uses: actions/download-artifact@v3 with: name: "benchmark-result-${{ matrix.python-version }}" path: . - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: master path: src @@ -102,6 +114,10 @@ jobs: - name: Store Benchmark Result run: | + if [[ "${{ matrix.python-version }}" == "2.7" ]]; then + eval "$(conda shell.bash hook)" + conda activate python + fi python ./.github/scripts/store_benchmark.py working-directory: src diff --git a/.github/workflows/copyright.yaml b/.github/workflows/copyright.yaml index 7a8979ace..cbff3535f 100644 --- a/.github/workflows/copyright.yaml +++ b/.github/workflows/copyright.yaml @@ -17,12 +17,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: - python-version: 2.7 + python-version: 3 - name: Run copyright checker run: | diff --git a/.github/workflows/core.yaml b/.github/workflows/core.yaml index 8d19627f2..f3a4719ea 100644 --- a/.github/workflows/core.yaml +++ b/.github/workflows/core.yaml @@ -37,16 +37,26 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + - name: Setup python ${{ matrix.python-version }} + uses: ./.github/actions/setup-python with: python-version: ${{ matrix.python-version }} + os: ubuntu-latest - name: Install Rez + shell: bash run: | + set -ex mkdir ./installdir + + if [[ "${{ matrix.python-version }}" == "2.7" ]]; then + eval "$(conda shell.bash hook)" + conda activate python + fi + + python --version python ./install.py ./installdir - name: Install Rez test dependencies diff --git a/.github/workflows/flake8.yaml b/.github/workflows/flake8.yaml index 99bab985a..ccf04c336 100644 --- a/.github/workflows/flake8.yaml +++ b/.github/workflows/flake8.yaml @@ -26,10 +26,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: 3.7 diff --git a/.github/workflows/installation.yaml b/.github/workflows/installation.yaml index dc68e402f..567a28355 100644 --- a/.github/workflows/installation.yaml +++ b/.github/workflows/installation.yaml @@ -19,10 +19,11 @@ jobs: name: ${{ matrix.os }} - ${{ matrix.python-version }} - ${{ matrix.method }} runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: - ubuntu-latest - - macOS-latest + - macos-latest - windows-2019 python-version: - '2.7' @@ -34,48 +35,98 @@ jobs: include: # ubuntu - os: ubuntu-latest - method: install + method: install REZ_SET_PATH_COMMAND: 'export PATH=${PATH}:/opt/rez/bin/rez' - REZ_INSTALL_COMMAND: 'python ./install.py /opt/rez' + REZ_INSTALL_COMMAND: | + set -ex + if [[ "${MATRIX_PYTHON_VERSION}" == "2.7" ]]; then + eval "$(conda shell.bash hook)" + conda activate python + fi + python ./install.py /opt/rez + - os: ubuntu-latest method: pip REZ_SET_PATH_COMMAND: 'export PATH=${PATH}:/opt/rez/bin PYTHONPATH=${PYTHONPATH}:/opt/rez' - REZ_INSTALL_COMMAND: 'pip install --target /opt/rez .' + REZ_INSTALL_COMMAND: | + set -ex + if [[ "${MATRIX_PYTHON_VERSION}" == "2.7" ]]; then + eval "$(conda shell.bash hook)" + conda activate python + fi + pip install --target /opt/rez . # macOS - - os: macOS-latest + - os: macos-latest method: install REZ_SET_PATH_COMMAND: 'export PATH=${PATH}:~/rez/bin/rez' - REZ_INSTALL_COMMAND: 'python ./install.py ~/rez' - - os: macOS-latest + REZ_INSTALL_COMMAND: | + set -e + if [[ "${MATRIX_PYTHON_VERSION}" == "2.7" ]]; then + eval "$(conda shell.bash hook)" + conda activate python + + echo "otool -L $(dirname $(which python))/../lib/libpython2.7.dylib" + otool -L $(dirname $(which python))/../lib/libpython2.7.dylib + echo "otool -l $(dirname $(which python))/../lib/libpython2.7.dylib" + otool -l $(dirname $(which python))/../lib/libpython2.7.dylib + fi + + python ./install.py ~/rez + - os: macos-latest method: pip REZ_SET_PATH_COMMAND: 'export PATH="$PATH:~/rez/bin" PYTHONPATH=$PYTHONPATH:$HOME/rez' - REZ_INSTALL_COMMAND: 'pip install --target ~/rez .' + REZ_INSTALL_COMMAND: | + set -ex + if [[ "${MATRIX_PYTHON_VERSION}" == "2.7" ]]; then + eval "$(conda shell.bash hook)" + conda activate python + fi + pip install --target ~/rez . # windows - os: windows-2019 method: install REZ_SET_PATH_COMMAND: '$env:PATH="$env:PATH;C:\ProgramData\rez\Scripts\rez"' - REZ_INSTALL_COMMAND: 'python ./install.py C:\ProgramData\rez' + REZ_INSTALL_COMMAND: | + if ($env:MATRIX_PYTHON_VERSION -eq "2.7") { + & 'C:\Miniconda\shell\condabin\conda-hook.ps1' + conda activate python + } + python ./install.py C:\ProgramData\rez - os: windows-2019 method: pip REZ_SET_PATH_COMMAND: '[System.Environment]::SetEnvironmentVariable("PATH","$env:PATH;C:\ProgramData\rez\bin"); $env:PYTHONPATH="$env:PYTHONPATH;C:\ProgramData\rez"' - REZ_INSTALL_COMMAND: 'pip install --target C:\ProgramData\rez .' - + REZ_INSTALL_COMMAND: | + if ($env:MATRIX_PYTHON_VERSION -eq "2.7") { + & 'C:\Miniconda\shell\condabin\conda-hook.ps1' + conda activate python + } + pip install --target C:\ProgramData\rez . + steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 + - uses: actions/checkout@v3 + + - name: Setup python ${{ matrix.python-version }} + uses: ./.github/actions/setup-python with: python-version: ${{ matrix.python-version }} + os: ${{ matrix.os }} - name: Install + env: + MATRIX_PYTHON_VERSION: ${{ matrix.python-version }} run: | ${{ matrix.REZ_INSTALL_COMMAND }} - name: Run rez-status + env: + MATRIX_PYTHON_VERSION: ${{ matrix.python-version }} run: | ${{ matrix.REZ_SET_PATH_COMMAND }} rez-status - name: Install rez with rez-pip + env: + MATRIX_PYTHON_VERSION: ${{ matrix.python-version }} run: | ${{ matrix.REZ_SET_PATH_COMMAND }} - rez-pip --install . \ No newline at end of file + rez-pip --install . diff --git a/.github/workflows/mac.yaml b/.github/workflows/mac.yaml index 74590e5bc..97b2442d6 100644 --- a/.github/workflows/mac.yaml +++ b/.github/workflows/mac.yaml @@ -21,7 +21,7 @@ concurrency: jobs: main: name: main - runs-on: macOS-${{ matrix.os-version }} + runs-on: macos-${{ matrix.os-version }} strategy: matrix: @@ -36,10 +36,11 @@ jobs: - name: Checkout uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + - name: Setup python ${{ matrix.python-version }} + uses: ./.github/actions/setup-python with: python-version: ${{ matrix.python-version }} + os: macos-latest - name: Verify cmake run: | @@ -51,7 +52,12 @@ jobs: - name: Install Rez run: | + if [[ "${{ matrix.python-version }}" == "2.7" ]]; then + eval "$(conda shell.bash hook)" + conda activate python + fi mkdir ./installdir + python --version python ./install.py ./installdir - name: Install Rez test dependencies diff --git a/.github/workflows/pypi.yaml b/.github/workflows/pypi.yaml index c064b646c..fdae3bca5 100644 --- a/.github/workflows/pypi.yaml +++ b/.github/workflows/pypi.yaml @@ -10,12 +10,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: - python-version: 2.7 + python-version: 3 - name: Install Dependencies run: | diff --git a/.github/workflows/sphinx.yaml b/.github/workflows/sphinx.yaml index 056841713..eec1775ad 100644 --- a/.github/workflows/sphinx.yaml +++ b/.github/workflows/sphinx.yaml @@ -10,17 +10,17 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: - python-version: 2.7 + python-version: 3.7 - name: Sphinx Build run: python docs/build.py --no-docker - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v3 with: name: html-docs path: docs/_build @@ -31,7 +31,7 @@ jobs: needs: build steps: - - uses: actions/download-artifact@v2 + - uses: actions/download-artifact@v3 with: name: html-docs path: . diff --git a/.github/workflows/ubuntu.yaml b/.github/workflows/ubuntu.yaml index 718bd8e34..266059510 100644 --- a/.github/workflows/ubuntu.yaml +++ b/.github/workflows/ubuntu.yaml @@ -35,12 +35,13 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + - name: Setup python ${{ matrix.python-version }} + uses: ./.github/actions/setup-python with: python-version: ${{ matrix.python-version }} + os: ubuntu - name: apt-get update run: | @@ -68,7 +69,12 @@ jobs: - name: Install Rez run: | + if [[ "${{ matrix.python-version }}" == "2.7" ]]; then + eval "$(conda shell.bash hook)" + conda activate python + fi mkdir ./installdir + python --version python ./install.py ./installdir - name: Install Rez test dependencies diff --git a/.github/workflows/wiki.yaml b/.github/workflows/wiki.yaml index f2a0106ca..112ee38a7 100644 --- a/.github/workflows/wiki.yaml +++ b/.github/workflows/wiki.yaml @@ -14,11 +14,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 # required to generate credits list - - uses: actions/setup-python@v2 + - uses: actions/setup-python@v4 with: python-version: 3.7 @@ -29,7 +29,7 @@ jobs: --github-repo="${{ github.repository }}" \ --out="${{ github.workspace }}/out" - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v3 with: name: wiki-markdown path: out @@ -50,7 +50,7 @@ jobs: run: | git clone https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.wiki.git . - - uses: actions/download-artifact@v2 + - uses: actions/download-artifact@v3 with: name: wiki-markdown path: . diff --git a/ASWF/TSC/meeting-notes/2023-07-20.md b/ASWF/TSC/meeting-notes/2023-07-20.md new file mode 100644 index 000000000..4d56ef50c --- /dev/null +++ b/ASWF/TSC/meeting-notes/2023-07-20.md @@ -0,0 +1,147 @@ +# Rez TSC Meeting Notes - 2023-07-20 + +:movie_camera::scroll: Recording: https://zoom.us/rec/share/Culqby6gmanuJdxIlOOdwN6ajT0EC66-4R33N-WkV6gZZpPcbfMtOlliDKE_cj7r.DLfjjVpSLMapRrdl + +## Attendance + +* Host: Stephen Mackenzie +* Secretary: Stephen Mackenzie +* TSC Attendees: + * [ ] Allan Johns - NVIDIA (resigned) + * [x] Brendan Abel - Walt-Disney Imagineering + * [x] Jean-Christophe Morin - Freelance + * [x] Stephen Mackenzie - NVIDIA + * [x] Thorsten Kaufmann - Mackevision / Accenture +* Other Attendees: + * [x] John Mertic - ASWF + * [x] Rob Bridger-Woods + * [x] Blazej Floch + * [x] Jeff Bradley - Dreamworks + * [x] Joel Pollack + * [x] Thorsten Kaufmann + * [x] Matthew Low + * [x] Jonas Avrin + * [x] Jason Scott + * [x] Erwan Leroy + * [x] Ibrahim Sani Kache + * [x] Dhruv Govil + * [x] Paolo Audiberti + +## Agenda +* Agenda Issue: https://github.com/AcademySoftwareFoundation/rez/issues/1512 +* [x] TSC Items + * [x] Some big news + * [x] Virtual Town Hall style/announce/prep. +* [x] Dreamworks! + * [x] Short (approximately 10-min) demo produced out of interest in their OpenMoonray release which included package.py's and some interesting usage details. +* [ ] Windows Shell PR + * [ ] Some followups and urgency +* [ ] Hopefully a release soon + +## Short Version / Decisions / Action Items / Important Links + +* Decisions: + * Jean-Christophe Morin & Stephen Mackenzie will co-chair for rez + * Engage with LFX to help shutter googlegroup + * Double check that rez-talk slack is gone +* Discussions: + * Virtual Town Hall prep + * Dreamworks Demo +* Actions Items: + * Update repo in response to Allan resignation + * Try to check for anything that is still connected to Allan + * Slack + * google-group + * codeowners + * repo settings + * any CI related things + +## Details + +### TSC Items + +#### Allan resigns & Chair + +* (SM): + * Allan has tendered his Chair & TSC resignation + * Won't have time for any significant project effort in the near-term + * Might come back in the future, but we shouldn't count on that + * We'll need to go through the process of selecting a new chair + * Community has relied a lot on Allan's maintainership so it's going to be important for the rest of us to step up and fill his shoes to a degree. + * John, anything you want to jump in with? +* (JM): + * Echo Stephens statements, hard being a lone wolf maintainer for so long. + * Him bringing the project to the ASWF showed he was looking down the road and making sure rez would be in good hands + * Can be hard for a maintainer to see that far down the road but it's clear he thought so much about this community and industry. + * Two halves of things to take care of, + * One is just an inventory the project should do to make sure there are no other accounts or resources that Allan is directly attached to that others don't have access to. + * Two is moving forward for a new chairperson. + * Really it's up to this group to decide what that looks like. + * Doesn't even have to long, you can just try it for a couple months and pass it along if you like. +* (SM): + * I'll jump in one thing about the accounts stuff. + * Vast majority of that is handled, as part of the incubation process + * Only thing we probably need to look at is the legacy google group that maybe the LF can help us archive or preserve in some way. +* (JM): + * Yeah, we'll have to figure that one out +* (TK): + * I'm not currently 100% sure we completely dismantled the old slack. We did take a backup and remove access, but we should double-check. +* (SM): + * Some homework for us TSC people to figure out. + * As for chairperson stuff, I figured I would leave it to each person to say they are too busy or whatever, and from there figure out what the best option is. + * Spoke with JCM so even though he's not here, I know where his opinion is, but I figured I'd let Thorsten and Brenden speaks up if they want to. +* (TK): + * Not really an option for me due to time constraints + * Taking a new role in the company currently and little under load + * Definitely still interested in contributing however, but for the time being I just can't put as much time into the project as will be needed +* (BA): + * Yeah, pretty much same as Thorsten. +* (SM): + * So I did speak to JCM and he and I basically said, we were guessing that would be the case, + * And while neither of us has all the time required befitting a chair position, we seem similarly active and present in the ASWF meetings, + * So between the two of us, we might make one functional unit, so splitting the position might be an option for us if everyone is comfortable with it. + * Of course I'm happy to let him show up later hopefully if he can, but that was kind of where we were standing. + * Any issue with that? +* (JM): + * Yeah, however you all want, up to you all and if the TSC is good with that approach, we can make that happen. +* (SM): + * One thing we might want to take care of sooner than later would be backfilling Allan's spot. + * We should discuss in more detail. + * If anyone is interested in stepping up, they should let us know. + * Will put out an announce more generally in the slack later on that, including what that amounts to. + * Prcoedurally, we should just vote on this? + * Vote occurred, TK & BA vote yes +* (TK): + * Want to say thanks for stepping in even if you share it, it's very appreciated, you two have been filling in a lot. +* (JM): + * We'll make sure you're on the tac invites and things of that nature. + +#### Virtual Town Hall prep + +* (SM): + * I did sign up rez to do a virtual town hall and not a BoF. + * It's next week, Wednesday + * I will be assembling an announcement with all the details such as here's what it will be, here's how to register, etc. + * rez being a little different, we rely more on community discussion and feedback so beyond the usual intros and such, we'll be focusing on community discussions and voting on things to get the pulse of the community. + * Looking to use a pollev.com style system where people can anonymously submit whatever they want and upvote. + * That'll be an hour long next week. + * I'll be doing most of the announcement and prep work stuff. + +### Dreamworks + +* (SM): + * Next item is a bit more exciting + * Several people got interested by the openmoonray rez package and some of what it had inside it, so dreamworks graciously agreed to talk about some of what they do, how they do it, etc. +* (JB): + * I have some slides, manage our team, and we have a few people here to answer questions and so forth. + * (Demo) + * (Q&A with Joel Pollock, Matthew Low, Ibrahim Sani Kache) + +### Ending remarks +* (SM): + * Will be sure to post the recording out. +* (JCM): + * Crafty apes will present some work next week as well, just to not forget about it. +* (SM): + * Mike Owen in slack asking for feedback on Deadline integration stuff, please check it out if it pertains to you. + * Thanks so much to Jeff and the rest of the Dreamworks team \ No newline at end of file diff --git a/ASWF/TSC/meeting-notes/_YYYY-MM-DD.md b/ASWF/TSC/meeting-notes/_YYYY-MM-DD.md index 4972c3819..12391f383 100644 --- a/ASWF/TSC/meeting-notes/_YYYY-MM-DD.md +++ b/ASWF/TSC/meeting-notes/_YYYY-MM-DD.md @@ -7,7 +7,6 @@ * Host: TBD * Secretary: TBD * TSC Attendees: - * [ ] Allan Johns - NVIDIA * [ ] Brendan Abel - Walt-Disney Imagineering * [ ] Jean-Christophe Morin - Freelance * [ ] Stephen Mackenzie - NVIDIA diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 9eb6ba7ad..9a957fe86 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -105,12 +105,16 @@ from other TSC members on a short or long-term basis. Members of the TSC contribute to rez independent of their employer and their employer is listed purely for transparency purposes. -* Allan Johns (chair, author) - NVIDIA * Brendan Abel - Walt Disney Imagineering -* Jean-Christophe Morin - Anaconda -* Stephen Mackenzie - NVIDIA +* Jean-Christophe Morin (co-chair) - Anaconda +* Stephen Mackenzie (co-chair) - NVIDIA * Thorsten Kaufmann - Accenture Song Content + +### Former TSC Members + +* Allan Johns (author and initial chair) + ### TSC Meetings All meetings of the TSC are open to participation by any member of the