Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Very initial support for CY2023 / Rocky 8 containers #166

Merged
merged 37 commits into from
Jun 8, 2023
Merged
Show file tree
Hide file tree
Changes from 35 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
3c50a8a
Very initial support for CY2023 / Rocky 8 containers
jfpanisset Feb 5, 2023
2cf600d
- python/aswfdocker/data/versions.yaml
jfpanisset Feb 6, 2023
6071b53
More build fixes
jfpanisset Feb 6, 2023
e105e44
More build fixes
jfpanisset Feb 6, 2023
f318be7
More build fixes
jfpanisset Feb 6, 2023
d036d6a
Bump up CMake to latest 3.25.2
jfpanisset Feb 7, 2023
ab5c8d0
Dockerfile typo fix
jfpanisset Feb 7, 2023
335c9f7
Conan related fixes
jfpanisset Feb 7, 2023
3f91426
devtoolset now called gcc-toolset
jfpanisset Feb 8, 2023
4825eb6
Dockerfile and qt fixes
jfpanisset Feb 9, 2023
f5c2356
common and base now build
jfpanisset Feb 12, 2023
8160f2d
Most conan related fixes
jfpanisset Mar 14, 2023
a487b69
pipenv fixes
jfpanisset Mar 14, 2023
4150808
Roll back pipenv
jfpanisset Mar 14, 2023
9b4e098
OpenEXR and MaterialX version bump, conan install script
jfpanisset Apr 23, 2023
1ea443b
CI build fix
jfpanisset Apr 23, 2023
c448963
No more centos devel packages
jfpanisset Apr 24, 2023
889821f
Qt 5.15.9
jfpanisset Apr 24, 2023
0d009ef
PySide2 5.15.9 and Conan local cache
jfpanisset Apr 24, 2023
6edf9b2
Bump up USD to 23.05
jfpanisset Apr 24, 2023
3916808
Conan install script fix and build doc updates
jfpanisset Apr 25, 2023
5b7da0e
Read-Write conan_home, conan wrapper debugging
jfpanisset Apr 25, 2023
add3002
Explicit python versions for pybind11 and boost conan packages
jfpanisset Apr 26, 2023
2ec16de
Add OpenGL Layer on top of cuda container
jfpanisset May 14, 2023
b808392
Fix Python test case
jfpanisset May 14, 2023
3eb3f25
ASWF_BASEOS_DISTRO needed to test for opengl install
jfpanisset May 14, 2023
e42c5c6
Lock pylint to 2.17, 3.0 is alpha and has breaking changes
jfpanisset May 14, 2023
1aa06df
Fix conan packaging vis pyinstaller
jfpanisset May 15, 2023
25091ba
Conan recipe fixes for Qt 5.15.9
jfpanisset May 16, 2023
706a65d
Multi-year Conan fixes, imath 3.1.8
jfpanisset May 31, 2023
7e9f81f
Python patch library used by Conan ignores renames
jfpanisset May 31, 2023
f0de3cb
imath 3.1.9 and Qt Conan build
jfpanisset Jun 5, 2023
397e3f4
Conan recipe fix for PySide
jfpanisset Jun 5, 2023
1e2f6c3
Larger runners for releases
jfpanisset Jun 5, 2023
d5fd9d5
OpenEXR 3.1.8
jfpanisset Jun 6, 2023
91e60bc
Update ChangeLog
jfpanisset Jun 7, 2023
b636515
Changelog typo
jfpanisset Jun 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 22 additions & 17 deletions .github/workflows/docker-builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,41 +33,46 @@ jobs:
name: common
version: 2-clang10
test: common
- group: pkg-base-2018
- group: img-common-3
type: IMAGE
name: common
version: 3-clang14
test: common
- group: pkg-base-2022
type: PACKAGE
name: base1
common_version: 1-clang7
version: 2018
common_version: 2-clang10
version: 2021
test: ""
- group: pkg-base-2021
- group: pkg-base-2023
type: PACKAGE
name: base1
common_version: 2-clang10
version: 2021
common_version: 3-clang14
version: 2023
test: ""
- group: img-base-2021
- group: img-base-2023
type: IMAGE
name: base
common_version: 2-clang10
version: 2021
common_version: 3-clang14
version: 2023
test: base
- group: img-vfx1-2021
- group: img-vfx1-2022
type: IMAGE
name: vfx1
common_version: 2-clang10
version: 2022
test: openvdb
- group: img-vfx2-2022
- group: img-vfx2-2023
type: IMAGE
name: vfx2
common_version: 2-clang10
version: 2022
common_version: 3-clang14
version: 2023
test: ""
- group: img-vfx3-2022
- group: img-vfx3-2023
type: IMAGE
name: vfx3
common_version: 2-clang10
version: 2022
common_version: 3-clang14
version: 2023
test: ""

steps:
Expand All @@ -76,7 +81,7 @@ jobs:
- name: Activate Docker buildx
run: |
mkdir -p ~/.docker/cli-plugins
curl --location https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 -o ~/.docker/cli-plugins/docker-buildx
curl --location https://github.com/docker/buildx/releases/download/v0.10.2/buildx-v0.10.2.linux-amd64 -o ~/.docker/cli-plugins/docker-buildx
chmod a+x ~/.docker/cli-plugins/docker-buildx

- name: Set up Python
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:

jobs:
release:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04-16c-64g-600h
env:
DOCKER_CLI_EXPERIMENTAL: enabled
DOCKER_BUILDKIT: '1'
Expand Down Expand Up @@ -46,7 +46,7 @@ jobs:
if: ${{ matrix.build }}
run: |
mkdir -p ~/.docker/cli-plugins
curl --location https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 -o ~/.docker/cli-plugins/docker-buildx
curl --location https://github.com/docker/buildx/releases/download/v0.10.2/buildx-v0.10.2.linux-amd64 -o ~/.docker/cli-plugins/docker-buildx
chmod a+x ~/.docker/cli-plugins/docker-buildx
docker buildx create --name forpushing --use
docker buildx inspect --bootstrap
Expand Down
52 changes: 52 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,58 @@

All notable changes to this project will be documented in this file.

## 2023-03-07

* New ci-common-v3 for VFX Platform 2023 based on:
* C++17 (unchanged)
* Ccache 4.7.4 (from 4.0)
* Clang 14.0.6 (from 14.0.0)
jfpanisset marked this conversation as resolved.
Show resolved Hide resolved
* Conan 1.58.0 (from 1.47.0)
* CUDA 11.8 (from 11.4.0)
* gcc-toolset 11 / gcc 11.2.1 (from DTS 9 / gcc 9.3.1)
* glibc 2.28 (from 2.17)
* libstdc++11 new ABI
* Ninja 1.11.1 (from 1.11.0)
* Rocky Linux 8.7 (from CentOS 7.9)
* SonarScan 4.8.0.2856 (from 4.7.0.2747)
* Updated 2023 Packages
* Alembic 1.8.4 (from 1.8.2)
* Boost 1.80.0 (from 1.76.0)
* CMake 3.25.2 (from 3.22.0)
* Imath 3.1.7
* MaterialX 1.38.6 (from 1.38.5)
* NumPy 1.23.5 (from 1.20)
* OpenColorIO 2.2.1 (from 2.1.1)
* OpenEXR 3.1.7
* OpenImageIO 2.4.9.0 (from 2.4.5.0)
* OpenSubdiv 3.5.0 (from 3.4.4)
* OpenVDB 10.0.1 (from 9.1.0)
* OpenShadingLanguage 1.12.10.0 (from 1.12.7.0)
* OpenTimelineIO 0.15 (from 0.14.1)
* Partio 1.14.6 (from 1.14.0)
* Ptex 2.4.2 (from 2.4.0)
* PySide 5.15.8 (from 5.15.2)
* Python 3.10.9 (from 3.9.15)
* Qt 5.15.8 (from 5.15.2)
* USD 23.02 (from 22.11)
* Unchanged 2023 Packages
* TBB 2020u3

### New CI Images

* `aswf/ci-common:3-clang14.0`, `aswf/ci-common:3-clang15.0` : A base Rocky 8 image with GCC 11.2.1 (DTS 11), Clang 14.1/15.0 and CUDA 11.8.
* `aswf/ci-base:2023.0`
* `aswf/ci-baseqt:2023.0`
* `aswf/ci-opencue:2023.0`
* `aswf/ci-openexr:2023.0`
* `aswf/ci-ocio:2023.0`
* `aswf/ci-otio:2023.0`
* `aswf/ci-materialx:2023.0`
* `aswf/ci-usd:2023.0`
* `aswf/ci-osl:2023-clang14.0`,`aswf/ci-osl:2023-clang15.0`
* `aswf/ci-openvdb:2023-clang14.0`, `aswf/ci-openvdb:2023-clang15.0`
* `aswf/ci-vfxall:2023-clang14.0`, `aswf/ci-vfxall:2023-clang15.0'

## 2023-01-21

* Added missing MaterialX to `ci-vfxall`
Expand Down
46 changes: 24 additions & 22 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -324,9 +324,9 @@ Example use: just build a single package for testing:

```bash
# Build and push USD package to aswftesting
aswfdocker --verbose build -t PACKAGE --group vfx --version 2019 --target usd --push
aswfdocker --verbose build -t PACKAGE --group vfx --version 2019 --target usd --push YES
# Build and push ci-vfxall image to aswftesting
aswfdocker --verbose build -t IMAGE --group vfx --version 2019 --target vfxall --push
aswfdocker --verbose build -t IMAGE --group vfx --version 2019 --target vfxall --push YES
```

### Migrate
Expand All @@ -352,9 +352,9 @@ E.g. to build and push a new `ninja` package these commands can be run to push t

```bash
# push to aswftesting
aswfdocker --verbose --repo-uri https://github.com/AcademySoftwareFoundation/aswf-docker --source-branch refs/heads/testing build -t PACKAGE --group common --version 1 --target ninja --push
aswfdocker --verbose --repo-uri https://github.com/AcademySoftwareFoundation/aswf-docker --source-branch refs/heads/testing build -t PACKAGE --group common --version 1 --target ninja --push YES
# push to aswf
aswfdocker --verbose --repo-uri https://github.com/AcademySoftwareFoundation/aswf-docker --source-branch refs/heads/master build -t PACKAGE --group common --version 1 --target ninja --push
aswfdocker --verbose --repo-uri https://github.com/AcademySoftwareFoundation/aswf-docker --source-branch refs/heads/master build -t PACKAGE --group common --version 1 --target ninja --push YES
```

### Manual GitHub release creation
Expand All @@ -364,7 +364,7 @@ aswfdocker --verbose --repo-uri https://github.com/AcademySoftwareFoundation/asw
* Use the following release name format: `aswf/ci-NAME:X.Y` (e.g. `aswf/ci-common:1.4`)
* Enter the release notes for that particular image
* Click Create
* Run a manual build in Azure on the specific tagged commit created before
* Run a manual build in GitHub Actions on the specific tagged commit created before

### Automatic GitHub release creation

Expand All @@ -383,6 +383,9 @@ aswfdocker --verbose --repo-uri https://github.com/AcademySoftwareFoundation/asw
aswfdocker release -t PACKAGE -g base1 -v 2018 --docker-org aswftesting -m "Testing release"
```

An email address must be publicly visible in your GitHub profile in order for the [PyGithub module](https://github.com/PyGithub/PyGithub) used
by `aswfdocker` to work. For pre-releases you can use the `--sha` option to build from a specific commit.

### Adding a new `ci` image

Let's consider the addition of a new `ci-xyz` Docker image to help the maintainers of the `xyz` library. The `ci-xyz` Docker image
Expand Down Expand Up @@ -421,37 +424,36 @@ Check [#66](https://github.com/AcademySoftwareFoundation/aswf-docker/pull/66) fo

```bash
# Common packages
aswfdocker release -t PACKAGE -g common -v 1 -v 2 --target ninja --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t PACKAGE -g common -v 1-clang6 -v 1-clang7 -v 1-clang8 -v 1-clang9 -v 1-clang10 -v 2-clang10 -v 2-clang11 --target clang --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t PACKAGE -g common -v 1 -v 2 -v 3 --target ninja --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t PACKAGE -g common -v 1-clang6 -v 1-clang7 -v 1-clang8 -v 1-clang9 -v 1-clang10 -v 2-clang10 -v 2-clang11 -v 3-clang14 -v 3-clang15 --target clang --docker-org aswf -m "RELEASE_NOTES!"
# Wait for clang builds to finish (from 2 to 3 hours!)

# ci-common needs to be built before base packages can be built
aswfdocker release -t IMAGE -g common -v 1-clang6 -v 1-clang7 -v 1-clang8 -v 1-clang9 -v 1-clang10 -v 2-clang10 -v 2-clang11 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t IMAGE -g common -v 1-clang6 -v 1-clang7 -v 1-clang8 -v 1-clang9 -v 1-clang10 -v 2-clang10 -v 2-clang11 -v 2-clang12 -v 2-clang13-v 2-clang14 -v 3-clang14 -v 3-clang15 --docker-org aswf -m "RELEASE_NOTES!"

# Base packages
aswfdocker release -t PACKAGE -g base1 -v 2018 -v 2019 -v 2020 -v 2021 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t PACKAGE -g base2 -v 2018 -v 2019 -v 2020 -v 2021 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t PACKAGE -g base1 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t PACKAGE -g base2 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 --docker-org aswf -m "RELEASE_NOTES!"
# Wait for Qt builds to finish (2-6 hours!)

# Usually some Qt build will fail as too big and too slow for free GitHub actions... So here's how to build qt locally:
aswfdocker --repo-uri https://github.com/AcademySoftwareFoundation/aswf-docker --source-branch refs/heads/master --verbose build -n aswf/ci-package-qt
:2021
docker push aswf/ci-package-qt:2021
docker push aswf/ci-package-qt:2021-5.15.2
aswfdocker --repo-uri https://github.com/AcademySoftwareFoundation/aswf-docker --source-branch refs/heads/master --verbose build -n aswf/ci-package-qt:2023
docker push aswf/ci-package-qt:2023
docker push aswf/ci-package-qt:2023-5.15.9
docker push aswf/ci-package-qt:preview
docker push aswf/ci-package-qt:2021.1
docker push aswf/ci-package-qt:2023.0

# Once all Qt are out, release PySide packages
aswfdocker release -t PACKAGE -g base3 -v 2018 -v 2019 -v 2020 -v 2021 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t PACKAGE -g base3 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 --docker-org aswf -m "RELEASE_NOTES!"

# Wait for all Qt and Pyside builds to finish, then build downstream packages:
# VFX packages
aswfdocker release -t PACKAGE -g vfx1 -v 2018 -v 2019 -v 2020 -v 2021 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t PACKAGE -g vfx2 -v 2018 -v 2019 -v 2020 -v 2021 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t PACKAGE -g vfx1 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t PACKAGE -g vfx2 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 --docker-org aswf -m "RELEASE_NOTES!"

# Finally build the CI images
aswfdocker release -t IMAGE -g base -v 2018 -v 2019 -v 2020 -v 2021 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t IMAGE -g vfx1 -v 2018 -v 2019 -v 2020 -v 2021 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t IMAGE -g vfx2 -v 2018 -v 2019 -v 2020 -v 2021 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t IMAGE -g vfx3 -v 2018-clang7 -v 2019-clang6 -v 2019-clang7 -v 2019-clang8 -v 2019-clang9 -v 2020-clang7 -v 2021-clang10 -v 2021-clang11 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t IMAGE -g base -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t IMAGE -g vfx1 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t IMAGE -g vfx2 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 --docker-org aswf -m "RELEASE_NOTES!"
aswfdocker release -t IMAGE -g vfx3 -v 2018-clang7 -v 2019-clang6 -v 2019-clang7 -v 2019-clang8 -v 2019-clang9 -v 2020-clang7 -v 2021-clang10 -v 2021-clang11 -v 2022-clang10 -v 2022-clang11 -v 2022-clang12 -v 2022-clang13 -v 2022-clang14 -v 2023-clang14 -v 2023-clang15 --docker-org aswf -m "RELEASE_NOTES!"
```
4 changes: 3 additions & 1 deletion Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ verify_ssl = true
pytest = "*"
atomicwrites = {version = "*", markers = "platform_system == 'Windows'"}
pytest-cov = "*"
pylint = "*"
pylint = "==2.17.4"
black = "==22.3"
mypy = "*"
pre-commit = "*"
Expand All @@ -29,6 +29,8 @@ jinja2 = "*"
requests = "*"
importlib-resources = "*"
conan = "==1.47"
pytest = "*"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pytest and mypy are already listed in the dev-packages section, I don't think we need them here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have to admit I'm not super clear on how Pipfile works, all I know is that at some point I ran pipenv lock which updated Pipfile and Pipfile.lock. I'll go back and revisit. I'm also not clear on how conan==1.47 in the (global?) Pipfile interacts with the VFX-year specific version (currently at 1.58).

mypy = "*"

[requires]
python_version = "3.9"
Expand Down
Loading