- Rewrite the documentation's donate page
- Remove donation infos from individual team members
- Add all team members
- Fix GitHub username regex in Sphinx extension
- Rewrite the project README
- Use HTML for centered text, add logo, update badges
- Rephrase text sections
- Remove Open Collective and update support section
- Replace all links to Open Collective with a link to the latest docs
Examples haven't been updated in ages, and the last remaining example
only uses Streamlink's URL resolver, and not any of Streamlink's stream
implementations, so it's a rather useless example of third party code.
- Add `certifi` as a direct dependency (already defined by `requests`)
and don't set a version range
- Set the `ca_certs` SSL option in `WebsocketClient` which defaults to
the CA certs file bundled by `certifi`, similar to HTTPS requests
made by `requests`
Streamlink currently sets the version range of its `requests` dependency
to `>=2.26.0,<3.0`. `requests` however still defines its `urllib3`
dependency version range as `>=1.21.1,<1.27` in its `2.26.0`-`2.28.1`
releases, including its current state in git.
Recent fixes in Streamlink's HLS implementation unfortunately were made
with methods which are only supported by `urllib3 >=1.26.0`.
This obviously breaks installs with older versions of `urllib3`
installed which are still supported by the defined version range.
In order to avoid having to backport more `urllib3` stuff, moving it
from a transitive dependency and defining it as a direct dependency
with a specific version range set to `>=1.26.0` makes more sense when
fixing the issue. This doesn't conflict with the version range defined
by `requests` and forces a bump of old installs of `urllib3`.
`urllib3==1.26.0` was released on 2020-11-10, whereas
`requests==2.26.0`, was released on 2021-07-13, the lowest version
of the version range defined by Streamlink.
---
In addition to defining the direct `urllib3` dependency, also remove
old compatibility workarounds/bugfixes from `plugin.api.http_session`.
- Add typing information to `Plugin.session`
- Implement `http_session` stub file due to the `HTTPSession` subclass
of `requests.Session` which adds additional keywords to the
`request()` method, including all other HTTP-verb methods
- Add `flake8-pyi` and `typing_extensions` to dev-requirements.txt
(`typing_extensions` is not a runtime dependency)
- Require importlib-metadata as fallback on Python < 3.8
- Add importlib_metadata to streamlink_cli.compat
- List all dependencies in `log_current_versions`
- Update tests
- Completely rewrite GitHub release script
- Remove --dry-run and make it implicit when no API key is set
- Remove --api-key and read from RELEASES_API_KEY or GITHUB_TOKEN
- Add --template, --changelog, --no-contributors and --no-shortlog
- Refactor GitHub API stuff
- Update release template logic and use Jinja2
- Get list of contributors (with support for commit co-authors):
GitHub highlights usernames in releases, which this is meant for
- Generate git shortlog automatically
- Always close open file handles
- Update release template based on Jinja2 logic
- Update release CI job
- Install Jinja2
- Upgrade Python to 3.10 and setup-python to v2
- Fetch entire repo
- Don't upload wheels to GitHub releases
- Add basic pyproject.toml with build-system information
- Drop versioneer in favor of versioningit
- Delete versioneer install module and remove its setup.cfg config
- Replace `src/streamlink/_version.py` and load streamlink's version
string via versioningit. The module's `__version__` export will get
replaced by a static string on build-time when creating sdists/wheels,
which results in the old versioneer behavior with support for
editable installs.
- Make versioningit use the same version format as versioneer
- Update MANIFEST.in and .coveragerc
- drop iso-639 and iso3166 dependencies in favor of pycountry
- remove the `STREAMLINK_USE_PYCOUNTRY` env var switch from setup.py
- move dependencies list from setup.py to setup.cfg
- update utils.l10n and its tests
- update Windows installer config
- update docs
- drop HDS and AkamaiHD stream implementations
- drop HDS and AkamaiHD plugins
- drop streamlink.packages.flashmedia
- remove stream.flvconcat, stream.playlist and plugins.common_swf
- remove "hds" from default stream types list
- remove all `--hds-*` CLI arguments and `hds-*` session options
- remove unneeded flashmedia license text files
- update tests
- update docs and CLI argument help texts
- move static package metadata to setup.cfg
- rename deprecated license_file field to license_files
Remove setuptools arguments:
- test_suite:
Unneeded, as we disable the deprecated setuptools test command
Keep dynamic setuptools arguments:
- version/cmdclass:
For writing static version info via versioneer
- install_requires:
Some dependencies still depend on special environment variables
instead of package "extra" dependency fields
- entry_points:
The `gui_scripts` entry point should only be set when building wheels
for Windows via `--plat-name={win32,win-amd64,cygwin}`
- data_files:
All data files are optional and should not cause the build to fail if
they are missing, eg. when building from sdist
* build: fix for universal wheel on python 2.7
* release: fix build order for deploys
The script to build the sdist and wheel packages is run before the
script that uploads them to PyPI. The sdist script doesn't clean up
the environment, but extra prune options have been added to the
MANIFEST.in file (thanks @back-to).
* build: ensure twine/wheel up-to-date and upload sdist/whl separately
* build: use versioneer to set the build number
* build: update the deploy scripts to use versioneer
* release: update docs version and fix tarball version
* build: no need to install versioneer on travis, etc.