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

πŸŽ‰ Release VidGear Stable v0.3.2 #379

Merged
merged 41 commits into from
Sep 10, 2023
Merged

πŸŽ‰ Release VidGear Stable v0.3.2 #379

merged 41 commits into from
Sep 10, 2023

Conversation

abhiTronix
Copy link
Owner

Brief Description

New vidgear stable release is here that introduces several enhancements, updates, and bug fixes to the codebase.πŸŽ‰

Changes:

This PR includes a series of updates and improvements to different parts of the project:

New Features ✨

  • NetGear:
    • Added new kill parameter to close() method to forcefully kill ZMQ context instead of graceful exit only in the receive mode.
    • Added new subscriber_timeout integer optional parameter to support timeout with pattern=2 (or Publisher-Subscriber) pattern.
      • Receiver will exit safely if timeout defined(any value(in milliseconds) > 0), and timeout occurs in Receiver Mode with pattern=2.
      • πŸ’¬ Note: Default behavior still is to block the thread till infinite time.
  • WriteGear:
    • Added new -disable_ffmpeg_window optional Boolean flag to enable patch that prevents FFmpeg creation window from opening when building .exe files on Windows OS. (PR by @ibtsam3301)
      • πŸ’¬ Note: -disable_ffmpeg_window optional Boolean flag is only available on Windows OS with logging disabled(logging=False) in compression mode.
      • Use Case: This flag can be useful while creating an .exe file for a python script that uses WriteGear API. On windows even after creating the .exe file in windowed mode or no-console mode, the ffmpeg.exe command line window would pop up while its being used by WriteGear API.
  • Setup.py
    • Added official support for python 3.11.x legacies.
    • Bumped version to 0.3.1.
  • Docs
    • Added doc for subscriber_timeout optional Integer parameter in NetGear.
    • Added doc for disable_ffmpeg_window optional Boolean parameter in WriteGear.
    • Added new asset screengear_region.png.
  • CI
    • Added python 3.11 legacy support for MacOS, Windows and Linux environments.
    • Added kill argument to close() method in various NetGear tests.

Updates/Improvements ⚑️

  • Asyncio:
    • Formatted TemplateResponse class parameters w.r.t new changes in backend Starlette API.
  • Setup.py:
    • Readded latest patch to uvicorn, starlette, pyzmq dependencies.
    • Removed 3.7 legacy from Programming Language metadata.
  • Maintenance:
    • Added GitHub sponsors and dropped liberapay from Funding.yml.
    • Removed redundant code.
  • Docs:
    • Updated information related to Supported Dimensional Attributes in ScreenGear docs.
    • Updated minimum python to version 3.8 while installing vidgear in docs.
    • Updated API-specific dependencies in docs.
    • Updated changelog.md
  • CI:
    • Updated Azure Pipeline workflow.
    • Updated Appveyor Pipeline workflow.
    • Updated GitHub Actions Pipeline workflow.
    • Migrated python version to 3.9 in deploy_docs.yml workflow.
    • Removed deprecated python 3.7 legacy support.
    • Increased code coverage by updating tests.
    • Updated tests for subscriber_timeout optional Integer parameter in NetGear.
    • Updated tests for disable_ffmpeg_window optional Boolean parameter in WriteGear.

Breaking Updates/Changes πŸ’₯

  • Setup.py:
    • Removed support for python-3.7 legacies
      • Raised python_requires to >=3.8. Thereby python 3.7 and any before legacy are no longer supported.

Bug-fixes πŸ›

  • ScreenGear:
    • Fixed swapped region dimensions bug with dxcam backend.
    • Fixed "mss" backend disabled when monitor parameter is not defined.
  • Docs:
    • Fixed missing compression_mode flags in WriteGear API docs.
    • Fixed missing hyperlinks.
    • Fixed typos and context.
  • CI:

Requirements / Checklist

Related Issue

#369
#316
#359
#360
#362

Context

VidGear's next milestone release i.e. v0.3.2 with changes that are required to enhance the library's functionality, improve user experience, address issues and bugs, ensure compatibility with the latest Python version, and maintain the overall quality and reliability of the codebase. They make the library more robust and user-friendly, benefiting both current and future users of the software.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Screenshots (if available):

https://abhitronix.github.io/vidgear/v0.3.2-dev/

abhiTronix and others added 30 commits July 22, 2023 16:42
- πŸ“Œ Raised `python_requires` to `>=3.8`. Thereby python `3.7` and any before legacy are no longer supported.
- πŸ”₯ Removed `3.7` legacy from Programming Language metadata.
- 🩹 Readded latest patch to `uvicorn`, `starlette`, `mss`, `pyzmq` dependencies.

Docs:
- πŸ“ Updated minimum python to version `3.8` while installing vidgear.
- 🎨 Updated API-specific dependencies.
- ✏️ Fixed hyperlinks.
- ✨ Added python 3.11 legacy support for MacOS environments.
- πŸ”₯ Deprecated  python 3.7 legacy support.
- ✨ Added python 3.11 legacy support for Windows OS environments.
- πŸ”₯ Deprecated  python 3.7 legacy support.
- ✨ Added python 3.11 legacy support for Linux OS environments.
- πŸ”₯ Deprecated  python 3.7 legacy support.
- 🚚 Migrated python version to 3.9 in deploy_docs.yml workflow.
- Temporary fix for AST constructor depth mismatch in pytest on python 3.11.x, More information: pytest-dev/pytest#10874
- Temporary fix for AST constructor depth mismatch in pytest on python 3.11.x, More information: pytest-dev/pytest#10874
- Temporary fix for AST constructor depth mismatch in pytest on python 3.11.x, More information: pytest-dev/pytest#10874
- Temporary fix for AST constructor depth mismatch in pytest on python 3.11.x, More information: pytest-dev/pytest#10874
…ixed #369)  [#370]

🚧 Setup.py: 
- Removed support for python-3.7 legacies 
- πŸ“Œ Raised `python_requires` to `>=3.8`. Thereby python `3.7` and any before legacy are no longer supported.
- πŸ”₯ Removed `3.7` legacy from Programming Language metadata.
- 🩹 Readded latest patch to `uvicorn`, `starlette`, `pyzmq` dependencies.
- πŸ“Œ Pinned pyzmq==24.0.1.

Asyncio: 
- 🩹 Formatted TemplateResponse class parameters w.r.t new changes.

CI: 
- πŸ‘· Updated Azure Pipeline workflow. 
	- ✨ Added python 3.11 legacy support for MacOS environments.
	- πŸ”₯ Deprecated  python 3.7 legacy support.

- πŸ‘· Updated Appveyor Pipeline workflow.
	- ✨ Added python 3.11 legacy support for Windows OS environments.
	- πŸ”₯ Deprecated  python 3.7 legacy support.

-πŸ‘· Updated GitHub CI Pipeline workflow.
	- ✨ Added python 3.11 legacy support for Linux OS environments.
	- πŸ”₯ Deprecated  python 3.7 legacy support.
- 🚚 Migrated python version to 3.9 in deploy_docs.yml workflow.
- πŸ’š Temporary fix for AST constructor depth mismatch in pytest on python `3.11.x`, More information: pytest-dev/pytest#10874
	- Made temporary fix platform independent. 
	- Extended fix to all Webgear_RTC tests. 
- β˜‚οΈ Increased code coverage.
- πŸ’š Fixed condition logic bug.

Maintenance: 
- ⚑️ Added GitHub sponsors and dropped liberapay from Funding.yml.

Docs:
- πŸ“ Updated minimum python to version `3.8` while installing vidgear.
- 🎨 Updated API-specific dependencies.
- ✏️ Fixed hyperlinks.
- 🚩 Implemented new `kill` argument to `close()` method to forcefully kill ZMQ context instead of graceful exit only in the `receive` mode.
- πŸ”Š Updated logging.
…d. (Fixes #372)

- 🩹 Fixed "mss" backend disabled when `monitor` parameter is not defined.

Stabilizer Class:
- πŸ”₯ Removed redundant code
- ✏️ Fixed typos.
…ixes #372)

- πŸ“ Updated information related to Supported Dimensional Attributes in ScreenGear docs.
- ✏️ Fixed typos and context.
- 🍱 Added new asset `screengear_region.png`.
- πŸ“„ Fixed missing `compression_mode` flags in WriteGear API docs.
…Fixes #374)

- ✨ Added new `subscriber_timeout` integer optional parameter to support timeout with `pattern=2` or PUBLISHER-SUBSCRIBER pattern.
  - πŸ§‘β€πŸ’» Receiver will exit safely if timeout defined(any value(in milliseconds) > 0), and timeout occurs in Receiver Mode with `pattern=2`.
  - 🎨 Note: Default behavior still is to block the thread till infinite time.
- πŸ”Š Updated logging.
- ✨ Added a new feature to enable detached subprocess creation on Windows within the WriteGear API. 
  - πŸ§‘β€πŸ’» This enhancement enhances the process management capabilities of the module.
  - ♿️ Use Case: This can be useful while creating an exe file for a python script that uses WriteGear API. On windows even after creating the exe file in windowed mode or no-console mode, the ffmpeg.exe command line window would pop up while its being used by WriteGear API.
- 🚩 Added new `ffmpeg_subprocess_creation_window` Boolean flag to enable this feature.
- ⚑️This feature can be enabled both in logging and silent mode.
- ✨ Added new `-disable_ffmpeg_window` optional Boolean flag to enable patch that prevents FFmpeg creation window from opening when building .exe files on Windows OS.
  - ⚑️Note: Now `-disable_ffmpeg_window` optional Boolean flag is only available on Windows OS with logging disabled(`logging=False`) in compression mode.
- 🚩 Removed `ffmpeg_subprocess_creation_window` class parameter.
- πŸ₯… Disabled this patch for logging mode.
- πŸ”₯ Removed redundant code.
- πŸ”Š Updated logging.
**NetGear:**
- ✨ Added new `kill` parameter to `close()` method to forcefully kill ZMQ context instead of graceful exit only in the `receive` mode.
- ✨ Added new `subscriber_timeout` integer optional parameter to support timeout with `pattern=2` or PUBLISHER-SUBSCRIBER pattern.
    - πŸ§‘β€πŸ’» Receiver will exit safely if timeout defined(any value(in milliseconds) > 0), and timeout occurs in Receiver Mode with `pattern=2`.
    - 🎨 Note: Default behavior still is to block the thread till infinite time.
- πŸ”Š Updated logging.

**WriteGear:**
- ✨ Added new `-disable_ffmpeg_window` optional Boolean flag to enable patch that prevents FFmpeg creation window from opening when building .exe files on Windows OS.
  - ⚑️Note: `-disable_ffmpeg_window` optional Boolean flag is only available on Windows OS with logging disabled(`logging=False`) in compression mode.
  - πŸ§‘β€πŸ’» This enhancement enhances the process management capabilities of the module.
  - ♿️ Use Case: This can be useful while creating an exe file for a python script that uses WriteGear API. On windows even after creating the exe file in windowed mode or no-console mode, the ffmpeg.exe command line window would pop up while its being used by WriteGear API.
- πŸ₯… Disabled this patch for logging mode.
- πŸ”₯ Removed redundant code.
- πŸ”Š Updated logging.

**ScreenGear:** 
- πŸ› Fixed swapped region dimensions bug with dxcam backend.
  - 🩹 Fixed "mss" backend disabled when `monitor` parameter is not defined.

**Stabilizer Class:**
- πŸ”₯ Removed redundant code

**CI:**
- πŸ‘· Added kill argument to close() method in various NetGear tests.
- πŸ‘· Updated tests for subscriber_timeout optional Integer parameter in NetGear.
- πŸ‘· Updated tests for disable_ffmpeg_window optional Boolean parameter in WriteGear.
- πŸ’š Fixed NetGear tests bugs.

**Docs:**
- πŸ“ Updated information related to Supported Dimensional Attributes in ScreenGear docs.
  - 🍱 Added new asset `screengear_region.png`.
- πŸ“„ Fixed missing `compression_mode` flags in WriteGear API docs.
- πŸ“ Added doc for subscriber_timeout optional Integer parameter in NetGear.
- πŸ“ Added doc for disable_ffmpeg_window optional Boolean parameter in WriteGear.
- ✏️ Fixed typos and context.
@codecov
Copy link

codecov bot commented Sep 10, 2023

Codecov Report

Patch coverage is 97.61% of modified lines.

Files Changed Coverage
vidgear/gears/asyncio/webgear.py ΓΈ
vidgear/gears/camgear.py ΓΈ
vidgear/gears/streamgear.py ΓΈ
vidgear/gears/asyncio/webgear_rtc.py 66.66%
vidgear/gears/netgear.py 100.00%
vidgear/gears/screengear.py 100.00%
vidgear/gears/stabilizer.py 100.00%
vidgear/gears/writegear.py 100.00%
vidgear/version.py 100.00%

πŸ“’ Thoughts on this report? Let us know!.

@abhiTronix abhiTronix merged commit be6f3f0 into master Sep 10, 2023
14 checks passed
VidGear v0.3.2 automation moved this from In progress to Done Sep 10, 2023
@abhiTronix abhiTronix deleted the testing branch September 10, 2023 15:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BUG πŸ› Vidgear api's error, flaw or fault ENHANCEMENT ⚑ New Feature/Addition/Improvement MAINTENANCE πŸ—οΈ Just sorting things out! NEW RELEASE πŸ”₯ New Release. Yay! PENDING TESTS πŸ§ͺ Waiting for CI tests to complete successfully. WORK IN PROGRESS 🚧 currently been worked on.
Projects
No open projects
2 participants