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

[core/release] Implement automated releases #6220

Closed
wants to merge 65 commits into from

Conversation

Grub4K
Copy link
Member

@Grub4K Grub4K commented Feb 12, 2023

IMPORTANT: PRs without the template will be CLOSED

Description of your pull request and other information

This PR implements automated pre-releases, update channels and simplifies releases.

Automatic builds will be generated at each push, and listed as pre-release.
Only the last such release will be kept under /releases - all pre-releases will be archived in a separate repo.
The update mechanism is changed so that releases/pre-releases will only update to their respective channel.
You can override the update target using --update-to.

Changes

  • Add devscripts/make_changelog.py for automated changelog generation
  • Add release.yml, the equivalent to the old build.yml
  • Add release-nightly.yml, running and releasing for each commit
  • Add publish.yml, a helper workflow for publishing releases
  • Rework build.yml to allow generation of artifacts without triggering a full release
  • Add signing for the checksum files, using detached signature files
  • Some updater additions and fixes
  • Updated documentation to reflect those changes

Before merging, the following should be set:

vars.PUSH_VERSION_COMMIT: Push a version update commit to master during release workflow
vars.BUILD_NIGHTLY: Create a nightly release on every push to master branch
secrets.GPG_SIGNING_KEY: Private GPG key used for signing SHA files

# Both need to be set to push build to archive repo as release:
vars.ARCHIVE_REPO: Repository for archiving pre-releases, e.g. `yt-dlp/yt-dlp-nightly-builds`
secrets.ARCHIVE_REPO_TOKEN: Personal Access Token with contents:write permission for archive repo

# Publish to PyPI and BREW
secrets.PYPI_TOKEN: Token for PyPI
secrets.BREW_TOKEN: Private deploy key for Homebrew taps repo
Template

Before submitting a pull request make sure you have:

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check one of the following options:

  • I am the original author of this code and I am willing to release it under Unlicense
  • I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

@pukkandan pukkandan linked an issue Feb 12, 2023 that may be closed by this pull request
4 tasks
devscripts/make_changelog.py Outdated Show resolved Hide resolved
devscripts/make_changelog.py Outdated Show resolved Hide resolved
yt_dlp/update.py Outdated Show resolved Hide resolved
@dirkf dirkf mentioned this pull request Feb 19, 2023
3 tasks
yt_dlp/update.py Outdated Show resolved Hide resolved
yt_dlp/options.py Outdated Show resolved Hide resolved
yt_dlp/update.py Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
pukkandan pushed a commit that referenced this pull request Mar 3, 2023
pukkandan pushed a commit that referenced this pull request Mar 3, 2023
Closes #1839
Authored by: Grub4K, bashonly

Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
pukkandan pushed a commit that referenced this pull request Mar 3, 2023
* By default, stable will only update to stable, and nightly to nightly

Authored by: Grub4K, bashonly, pukkandan

Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
@pukkandan
Copy link
Member

Merged in multiple commits

@pukkandan pukkandan closed this Mar 3, 2023
@Kissaki
Copy link

Kissaki commented Mar 4, 2023

Only the last such release will be kept under /releases - all pre-releases will be archived in a separate repo.

For GitHub release notifications this still leads to a daily notification though, right?
(I'd like to receive stable release notifications but not frequent pre-release notifications - but GitHub does not differentiate.)

@pukkandan
Copy link
Member

pukkandan commented Mar 4, 2023

There isn't really anything we can do about that

Edit: Other than not releasing it in main repo at all?

@Grub4K Grub4K deleted the feat/automated-release branch April 30, 2023 15:07
aalsuwaidi pushed a commit to aalsuwaidi/yt-dlp that referenced this pull request Apr 21, 2024
aalsuwaidi pushed a commit to aalsuwaidi/yt-dlp that referenced this pull request Apr 21, 2024
Closes yt-dlp#1839
Authored by: Grub4K, bashonly

Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
aalsuwaidi pushed a commit to aalsuwaidi/yt-dlp that referenced this pull request Apr 21, 2024
* By default, stable will only update to stable, and nightly to nightly

Authored by: Grub4K, bashonly, pukkandan

Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants