From 160fc86a613560a7bb47b2870d266cb28a28f1ac Mon Sep 17 00:00:00 2001 From: rsanchez Date: Wed, 8 Jan 2025 10:14:37 +0100 Subject: [PATCH 1/7] COM-12663-add changes in 0.2.0 release, and adapt release.yml to new CHANGELOG.md --- .github/workflows/release.yml | 13 +++------- CHANGELOG.md | 46 +++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 CHANGELOG.md diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 55d5d29..011669b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,9 +9,8 @@ on: description: 'Release version (e.g., 0.1.0)' required: true notes: - description: 'Release notes (e.g., changelog)' + description: 'Release notes (CHANGELOG.md is referenced at the end of the release process)' required: false - default: 'Changelog: \n- Added feature 1\n- Added feature 2\n- Fixed issue 2' push: tags: - 'v*.*.*' @@ -40,6 +39,7 @@ jobs: gstreamer1.0-plugins-bad \ ffmpeg \ vpx-tools \ + aom-tools \ wget \ unzip - name: Check @@ -77,6 +77,7 @@ jobs: gstreamer1.0-plugins-bad \ ffmpeg \ vpx-tools \ + aom-tools \ wget \ unzip - name: Check @@ -127,18 +128,12 @@ jobs: git config user.email "github-actions@github.com" git tag v${{ github.event.inputs.version }} git push origin v${{ github.event.inputs.version }} - - name: Create temporary notes file - run: | - echo -e "${{ github.event.inputs.notes }}" > notes.txt - name: Create GitHub Release run: | VERSION=${{ github.event.inputs.version }} git archive --format=zip HEAD gh release create v$VERSION \ --title "Release v$VERSION" \ - --notes "$(cat notes.txt)" + --notes "Refer to the [CHANGELOG.md](https://github.com/fluendo/fluster/blob/master/CHANGELOG.md) for detailed changes in this release." env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Clean up notes file - run: rm notes.txt - continue-on-error: true diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..4b20e36 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,46 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.2.0] - Unreleased +### Added +- Generate a test suite in fluster for H265 3D-HEVC functionality set. +- Generate a test suite in fluster for H265 SHVC functionality set. +- Create a test suite for H264 SVC group. +- Create a test suite in fluster for H264 professional profiles. +- Create test_suite for AV1 based on the Argon Streams. +- Create a new test suite for MPEG-4 AAC adif files. +- Create a new test suite for MPEG-4 AAC mp4 files. +- Add H264 FRExt test suite generator to fluster. +- Add H264 MVC test suite to fluster. +- Add MPEG-2 AAC adif test suite to fluster. +- Add and test the MPEG4-AAC-ADTS generator in fluster. +- Add basic AV1 tests for Makefile check target. +- Adapt AV1 AOM decoder so that it works correctly with some Argon test vectors. +- Add md5 checksum read/write feature to H266 test suite generator script. +- Create a test suite generator script for AAC in fluster. +- Create CI workflow for automated fluster releases. + +### Changed +- Split test suites for H265 and H266. +- Adapt AAC test suite generator to omit md5 checksums of wav reference. +- Rename some AAC and H264 test suites to be more precise. +- Replace pylint and black with ruff linter and code formatter. +- Update README.md +- Update REPORT.md + +### Fixed +- Fix bug #218: Argon AV1 test resource path don't match the downloaded resources path. +- Check out and fix av1 argon vector path issues. +- Issue in JSON generation scripts (Some test suites are badly generated). + +## [0.1.0] - 2022-12-20 +### Added + +### Fixed + +## Notes +- For detailed usage and fluster modes, refer to the [README.md](README.md). From ac068001d61f483b1ae7df4f65075b11cec0479d Mon Sep 17 00:00:00 2001 From: rsanchez Date: Wed, 8 Jan 2025 11:22:36 +0100 Subject: [PATCH 2/7] COM-12663-add tasks in 0.1.0 release --- CHANGELOG.md | 75 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 72 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b20e36..aeb33a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,9 +11,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Generate a test suite in fluster for H265 SHVC functionality set. - Create a test suite for H264 SVC group. - Create a test suite in fluster for H264 professional profiles. -- Create test_suite for AV1 based on the Argon Streams. -- Create a new test suite for MPEG-4 AAC adif files. -- Create a new test suite for MPEG-4 AAC mp4 files. +- Create a test suite for AV1 based on the Argon Streams. +- Create a test suite for MPEG-4 AAC adif files. +- Create a test suite for MPEG-4 AAC mp4 files. - Add H264 FRExt test suite generator to fluster. - Add H264 MVC test suite to fluster. - Add MPEG-2 AAC adif test suite to fluster. @@ -39,8 +39,77 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.1.0] - 2022-12-20 ### Added +- Refactor list as a subcommand. +- Consolidate test suites and decoder arg into list. +- Add copyright to every source file. +- Add decoder argument. +- Add running given test suites and decoders. +- Add script use autopep8 and pylint. +- Add a command to download test suites. +- Add a new script that generates test suites from JCT-VT. +- Add the JCT-VC-HEVC-V1 test suite. +- Use md5 checksums instead of sha256. +- Store raw decoder outputs from tests. +- Add the JCT-VT decoder implementation. +- gen_jct_vc: generate the H264 conformance test suite. +- Add the H.264 reference decoder implementation. +- Add the H264 decoder conformance test suite. +- decoders: add Fluendo's H264 software decoders. +- Run smoke tests with the dummy decoder. +- Add run check for decoders. +- Register vaapih265dec H265 decoder. +- Remove community VA-API decoder for GStreamer 0.10. +- Add AVC/HEVC decoder from the new VA plugin. +- Add avdec_h264 decoder. +- Add fluvah265dec decoder. +- Add hev1 and hvc1 decoder. +- Add FFmpeg vdpau decoder. +- Add fluvah264dec decoder. +- Add V4L2 stateless decoder support. +- Add VP8-TEST-VECTORS. +- Add libvpx-VP8 reference decoder. +- Add VP9 reference decoder and test vectors. +- Add VP9 FFmpeg decoder. +- Add v4l2slvp8dec decoder. +- gstreamer: Add vavp8dec support. +- ffmpeg: Add VAAPI VP9 decoder. +- gstreamer: Add VP9 decoders. +- gstreamer: Add D3D11 and Libav VP8/VP9 decoders. +- Upgrade to Python 3.7 after adding annotations. +- Add AAC reference decoder. +- Add support in Fluster for Windows. +- CI: Run CI in linux and Windows. +- Add minimal tests for GStreamer, FFmpeg and libvpx. +- gstreamer: Add Nvidia hevc VDPAU decoder. +- Add GStreamer NVDEC decoders to fluster. +- Add H.266 (VTT) test suite and VVdeC reference decoder. +- Add AV1 reference decoder and test vectors. +- gstreamer: Add H264, H265 and VP8 V4L2 stateful decoder. +- Add support for V4L2Codecs AV1 decoder. +- Add support for vaapi based AV1 decoders. +- Add AV1 gstreamer-vaapi decoder as well. +- gstreamer: Add D3D11 AV1 decoder. +- Add support for generating JUnit XML summary. +- av1: add chromium 8bit and 10bit test vectors. +- Update AV1 10bits test suites. +- Add support for generating CSV summaries. +- Add FFMPEG V4L2 stateful M2M decoder for VP8, VP9 and H264. +- Add JVT Fidelity Range Extensions tests. +- Add pyproject.toml. +- Add 422 10bit support. +- Add VP9 libvpx high bit depth test vectors. +- Add VP9 libvpx 422 and 444 leftovers. +- Create README.md. +- Create REPORT.md. ### Fixed +- Fix test suites to pass tests. +- Fix filtering of test suites and decoders to run. +- Fix deserialization of the codec field. +- Fix exit code in case no tests are run. +- Fix summary file when running multiple suites. +- Fix JVT-FR-EXT output formats. +- Fix GA CI failures due to distro upgrade from Ubuntu 20.04 to 22.04. ## Notes - For detailed usage and fluster modes, refer to the [README.md](README.md). From 747d953caaab8f4bff290d7299493c8daf32cfb2 Mon Sep 17 00:00:00 2001 From: rsanchez Date: Thu, 9 Jan 2025 09:37:06 +0100 Subject: [PATCH 3/7] fixup! resolve comments --- .github/workflows/release.yml | 36 +++++++++--- CHANGELOG.md | 108 +++++++++------------------------- 2 files changed, 57 insertions(+), 87 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 011669b..c3523f6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,9 +8,6 @@ on: version: description: 'Release version (e.g., 0.1.0)' required: true - notes: - description: 'Release notes (CHANGELOG.md is referenced at the end of the release process)' - required: false push: tags: - 'v*.*.*' @@ -122,18 +119,41 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Determine version + id: get_version + run: | + if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then + VERSION=${{ github.event.inputs.version }} + else + VERSION=${{ github.ref_name }} + VERSION=${VERSION#v} + fi + echo "version=$VERSION" >> $GITHUB_ENV - name: Create Git Tag + if: ${{ github.event_name == 'workflow_dispatch' }} run: | git config user.name "github-actions" git config user.email "github-actions@github.com" - git tag v${{ github.event.inputs.version }} - git push origin v${{ github.event.inputs.version }} + git tag v$VERSION + git push origin v$VERSION + - name: Extract release notes from CHANGELOG.md + id: extract_notes + run: | + VERSION=$VERSION + if ! grep -q "## \\[$VERSION\\]" CHANGELOG.md; then + echo "Release notes for version $VERSION not found in CHANGELOG.md" + exit 1 + fi + NOTES=$(awk "/## \\[$VERSION\\]/ {flag=1; next} /^## \\[/ {flag=0} flag" CHANGELOG.md | sed '/^$/d') + + echo "NOTES<> $GITHUB_ENV + echo "$NOTES" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV - name: Create GitHub Release run: | - VERSION=${{ github.event.inputs.version }} - git archive --format=zip HEAD + VERSION=$VERSION gh release create v$VERSION \ --title "Release v$VERSION" \ - --notes "Refer to the [CHANGELOG.md](https://github.com/fluendo/fluster/blob/master/CHANGELOG.md) for detailed changes in this release." + --notes "$NOTES" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index aeb33a6..593b45f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,109 +7,59 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.2.0] - Unreleased ### Added -- Generate a test suite in fluster for H265 3D-HEVC functionality set. -- Generate a test suite in fluster for H265 SHVC functionality set. +- Generate a test suite for H265 3D-HEVC functionality set. +- Generate a test suite for H265 SHVC functionality set. - Create a test suite for H264 SVC group. -- Create a test suite in fluster for H264 professional profiles. +- Create a test suite for H264 professional profiles. - Create a test suite for AV1 based on the Argon Streams. - Create a test suite for MPEG-4 AAC adif files. - Create a test suite for MPEG-4 AAC mp4 files. -- Add H264 FRExt test suite generator to fluster. -- Add H264 MVC test suite to fluster. -- Add MPEG-2 AAC adif test suite to fluster. -- Add and test the MPEG4-AAC-ADTS generator in fluster. +- Add H264 FRExt test suite. +- Add H264 MVC test suite. +- Add MPEG-2 AAC adif test suite. +- Add MPEG4-AAC-ADTS test suite. - Add basic AV1 tests for Makefile check target. - Adapt AV1 AOM decoder so that it works correctly with some Argon test vectors. +- Add VVCSoftware_VTM H.266/VVC reference decoder. - Add md5 checksum read/write feature to H266 test suite generator script. -- Create a test suite generator script for AAC in fluster. -- Create CI workflow for automated fluster releases. +- Create a test suite generator script for AAC. +- Create CI workflow for automated releases. ### Changed - Split test suites for H265 and H266. - Adapt AAC test suite generator to omit md5 checksums of wav reference. - Rename some AAC and H264 test suites to be more precise. - Replace pylint and black with ruff linter and code formatter. -- Update README.md -- Update REPORT.md +- Update README.md. +- Update REPORT.md. ### Fixed - Fix bug #218: Argon AV1 test resource path don't match the downloaded resources path. -- Check out and fix av1 argon vector path issues. - Issue in JSON generation scripts (Some test suites are badly generated). ## [0.1.0] - 2022-12-20 ### Added -- Refactor list as a subcommand. -- Consolidate test suites and decoder arg into list. -- Add copyright to every source file. -- Add decoder argument. -- Add running given test suites and decoders. -- Add script use autopep8 and pylint. -- Add a command to download test suites. -- Add a new script that generates test suites from JCT-VT. -- Add the JCT-VC-HEVC-V1 test suite. -- Use md5 checksums instead of sha256. -- Store raw decoder outputs from tests. -- Add the JCT-VT decoder implementation. -- gen_jct_vc: generate the H264 conformance test suite. -- Add the H.264 reference decoder implementation. -- Add the H264 decoder conformance test suite. -- decoders: add Fluendo's H264 software decoders. -- Run smoke tests with the dummy decoder. -- Add run check for decoders. -- Register vaapih265dec H265 decoder. -- Remove community VA-API decoder for GStreamer 0.10. -- Add AVC/HEVC decoder from the new VA plugin. -- Add avdec_h264 decoder. -- Add fluvah265dec decoder. -- Add hev1 and hvc1 decoder. -- Add FFmpeg vdpau decoder. -- Add fluvah264dec decoder. -- Add V4L2 stateless decoder support. -- Add VP8-TEST-VECTORS. +- Add the H.264 reference decoder. - Add libvpx-VP8 reference decoder. -- Add VP9 reference decoder and test vectors. -- Add VP9 FFmpeg decoder. -- Add v4l2slvp8dec decoder. -- gstreamer: Add vavp8dec support. -- ffmpeg: Add VAAPI VP9 decoder. -- gstreamer: Add VP9 decoders. -- gstreamer: Add D3D11 and Libav VP8/VP9 decoders. -- Upgrade to Python 3.7 after adding annotations. +- Add VP9 reference decoder. - Add AAC reference decoder. -- Add support in Fluster for Windows. -- CI: Run CI in linux and Windows. -- Add minimal tests for GStreamer, FFmpeg and libvpx. -- gstreamer: Add Nvidia hevc VDPAU decoder. -- Add GStreamer NVDEC decoders to fluster. -- Add H.266 (VTT) test suite and VVdeC reference decoder. -- Add AV1 reference decoder and test vectors. -- gstreamer: Add H264, H265 and VP8 V4L2 stateful decoder. -- Add support for V4L2Codecs AV1 decoder. -- Add support for vaapi based AV1 decoders. -- Add AV1 gstreamer-vaapi decoder as well. -- gstreamer: Add D3D11 AV1 decoder. -- Add support for generating JUnit XML summary. -- av1: add chromium 8bit and 10bit test vectors. -- Update AV1 10bits test suites. -- Add support for generating CSV summaries. -- Add FFMPEG V4L2 stateful M2M decoder for VP8, VP9 and H264. -- Add JVT Fidelity Range Extensions tests. -- Add pyproject.toml. -- Add 422 10bit support. -- Add VP9 libvpx high bit depth test vectors. -- Add VP9 libvpx 422 and 444 leftovers. +- Add AV1 reference decoder. +- Add VVdeC reference decoder. +- Create a test suite for H264 AVC-V1. +- Create a test suite for H264 RExt. +- Create a test suite for H265 HEVC_V1. +- Create a test suite for H265 MV-HEVC. +- Create a test suite for H265 SCC. +- Create a test suite for AV1 functionality set. +- Create a test suite for AV1 CHROMIUM-8bit. +- Create a test suite for AV1 CHROMIUM-10bit. +- Create a test suite for VP8-TEST-VECTORS. +- Create a test suite for VP9-TEST-VECTORS. +- Create a test suite for VP9-TEST-VECTORS-HIGH. +- Create a test suite for MPEG-2 AAC. +- Create a test suite for H.266 (VTT). - Create README.md. - Create REPORT.md. -### Fixed -- Fix test suites to pass tests. -- Fix filtering of test suites and decoders to run. -- Fix deserialization of the codec field. -- Fix exit code in case no tests are run. -- Fix summary file when running multiple suites. -- Fix JVT-FR-EXT output formats. -- Fix GA CI failures due to distro upgrade from Ubuntu 20.04 to 22.04. - ## Notes - For detailed usage and fluster modes, refer to the [README.md](README.md). From 23efab4d20cdc41e889313f9aa8622cb31729334 Mon Sep 17 00:00:00 2001 From: rsanchez Date: Thu, 9 Jan 2025 10:20:02 +0100 Subject: [PATCH 4/7] fixup! fixup! fix in release.yml to read version in CHANGELOG --- .github/workflows/release.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c3523f6..27bb30d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -128,18 +128,18 @@ jobs: VERSION=${{ github.ref_name }} VERSION=${VERSION#v} fi - echo "version=$VERSION" >> $GITHUB_ENV + echo "VERSION=$VERSION" >> $GITHUB_ENV - name: Create Git Tag if: ${{ github.event_name == 'workflow_dispatch' }} run: | git config user.name "github-actions" git config user.email "github-actions@github.com" - git tag v$VERSION - git push origin v$VERSION + git tag v${{ env.VERSION }} + git push origin v${{ env.VERSION }} - name: Extract release notes from CHANGELOG.md id: extract_notes run: | - VERSION=$VERSION + VERSION=${{ env.VERSION }} if ! grep -q "## \\[$VERSION\\]" CHANGELOG.md; then echo "Release notes for version $VERSION not found in CHANGELOG.md" exit 1 @@ -151,7 +151,7 @@ jobs: echo "EOF" >> $GITHUB_ENV - name: Create GitHub Release run: | - VERSION=$VERSION + VERSION=${{ env.VERSION }} gh release create v$VERSION \ --title "Release v$VERSION" \ --notes "$NOTES" From d53d6bddf50aa7a3dcf3494a5f425346a987a154 Mon Sep 17 00:00:00 2001 From: rsanchez Date: Thu, 9 Jan 2025 10:36:43 +0100 Subject: [PATCH 5/7] fixup! fixup! fixup! remove aditional spaces --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 593b45f..242224f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,8 +56,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Create a test suite for VP8-TEST-VECTORS. - Create a test suite for VP9-TEST-VECTORS. - Create a test suite for VP9-TEST-VECTORS-HIGH. -- Create a test suite for MPEG-2 AAC. -- Create a test suite for H.266 (VTT). +- Create a test suite for MPEG-2 AAC. +- Create a test suite for H.266 (VTT). - Create README.md. - Create REPORT.md. From dba5ce372d55e40d70e19f203717d387a5b61841 Mon Sep 17 00:00:00 2001 From: rsanchez Date: Thu, 9 Jan 2025 12:03:33 +0100 Subject: [PATCH 6/7] fixup! fixup! fixup! fixup! change order git tag step in release.yml --- .github/workflows/release.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 27bb30d..1cdfcd9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -129,13 +129,6 @@ jobs: VERSION=${VERSION#v} fi echo "VERSION=$VERSION" >> $GITHUB_ENV - - name: Create Git Tag - if: ${{ github.event_name == 'workflow_dispatch' }} - run: | - git config user.name "github-actions" - git config user.email "github-actions@github.com" - git tag v${{ env.VERSION }} - git push origin v${{ env.VERSION }} - name: Extract release notes from CHANGELOG.md id: extract_notes run: | @@ -145,10 +138,17 @@ jobs: exit 1 fi NOTES=$(awk "/## \\[$VERSION\\]/ {flag=1; next} /^## \\[/ {flag=0} flag" CHANGELOG.md | sed '/^$/d') - + echo "NOTES<> $GITHUB_ENV echo "$NOTES" >> $GITHUB_ENV echo "EOF" >> $GITHUB_ENV + - name: Create Git Tag + if: ${{ github.event_name == 'workflow_dispatch' }} + run: | + git config user.name "github-actions" + git config user.email "github-actions@github.com" + git tag v${{ env.VERSION }} + git push origin v${{ env.VERSION }} - name: Create GitHub Release run: | VERSION=${{ env.VERSION }} From 2b08775893f562af576fabe64f0ec54363d1b511 Mon Sep 17 00:00:00 2001 From: rsanchez Date: Thu, 9 Jan 2025 13:21:29 +0100 Subject: [PATCH 7/7] fixup! fixup! fixup! fixup! fixup! remove the tab at the beginning of the line 141 in release.yml --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1cdfcd9..e0abd48 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -138,7 +138,7 @@ jobs: exit 1 fi NOTES=$(awk "/## \\[$VERSION\\]/ {flag=1; next} /^## \\[/ {flag=0} flag" CHANGELOG.md | sed '/^$/d') - + echo "NOTES<> $GITHUB_ENV echo "$NOTES" >> $GITHUB_ENV echo "EOF" >> $GITHUB_ENV