API Docs#
Library Functions#
Library functions for Jupyter Releaser.
- jupyter_releaser.lib.bump_version(version_spec, version_cmd, changelog_path)#
Bump the version and verify new version
- jupyter_releaser.lib.delete_release(auth, release_url, dry_run=False)#
Delete a draft GitHub release by url to the release page
- jupyter_releaser.lib.draft_changelog(version_spec, ref, branch, repo, since, since_last_stable, auth, changelog_path, dry_run, post_version_spec, post_version_message)#
Create a changelog entry PR
- jupyter_releaser.lib.extract_changelog(dry_run, auth, changelog_path, release_url)#
Extract the changelog from the draft GH release body and update it.
- jupyter_releaser.lib.extract_release(auth, dist_dir, dry_run, release_url)#
Download and verify assets from a draft GitHub release
- jupyter_releaser.lib.forwardport_changelog(auth, ref, branch, repo, username, changelog_path, dry_run, release_url)#
Forwardport Changelog Entries to the Default Branch
- jupyter_releaser.lib.make_changelog_pr(auth, branch, repo, title, commit_message, body, dry_run=False)#
Make a changelog PR.
- jupyter_releaser.lib.populate_release(ref, branch, repo, version_cmd, auth, changelog_path, dist_dir, dry_run, release_url, post_version_spec, post_version_message, assets)#
Populate release assets and push tags and commits
- jupyter_releaser.lib.prep_git(ref, branch, repo, auth, username, url)#
Set up git
- jupyter_releaser.lib.publish_assets(dist_dir, npm_token, npm_cmd, twine_cmd, npm_registry, twine_repository_url, dry_run, release_url, python_package)#
Publish release asset(s)
- jupyter_releaser.lib.publish_release(auth, dry_run, release_url)#
Publish GitHub release
- jupyter_releaser.lib.tag_release(dist_dir, release_message, tag_format, tag_message, no_git_tag_workspace)#
Create release commit and tag
Python Utility Functions#
Python-related utilities.
- jupyter_releaser.python.build_dist(dist_dir, clean=True)#
Build the python dist files into a dist folder
- jupyter_releaser.python.check_dist(dist_file, test_cmd='', python_imports=None, check_cmd='pipx run twine check --strict {dist_file}', extra_check_cmds=None, resource_paths=None)#
Check a Python package locally (not as a cli)
- jupyter_releaser.python.get_pypi_token(release_url, python_package)#
Get the PyPI token
Note: Do not print the token in CI since it will not be sanitized if it comes from the PYPI_TOKEN_MAP
- jupyter_releaser.python.start_local_pypi()#
Start a local PyPI server
NPM Utility Functions#
npm-related utilities.
- jupyter_releaser.npm.build_dist(package, dist_dir)#
Build npm dist file(s) from a package
- jupyter_releaser.npm.check_dist(dist_dir, install_options)#
Check npm dist file(s) in a dist dir
- jupyter_releaser.npm.extract_dist(dist_dir, target)#
Extract dist files from a dist_dir into a target dir
- jupyter_releaser.npm.extract_package(path)#
Get the package json info from the tarball
- jupyter_releaser.npm.get_package_versions(version)#
Get the formatted list of npm package names and versions
- jupyter_releaser.npm.handle_npm_config(npm_token)#
Handle npm_config
- jupyter_releaser.npm.tag_workspace_packages()#
Generate tags for npm workspace packages
Changelog Utility Functions#
Changelog utilities for Jupyter Releaser.
- jupyter_releaser.changelog.build_entry(ref, branch, repo, auth, changelog_path, since, since_last_stable, resolve_backports)#
Build a python version entry
- jupyter_releaser.changelog.check_entry(ref, branch, repo, auth, changelog_path, since, since_last_stable, resolve_backports, output)#
Check changelog entry
- jupyter_releaser.changelog.extract_current(changelog_path)#
Extract the current changelog entry
- jupyter_releaser.changelog.extract_current_version(changelog_path)#
Extract the current released version from the changelog
- jupyter_releaser.changelog.format(changelog)#
Clean up changelog formatting
- jupyter_releaser.changelog.format_pr_entry(target, number, auth=None, dry_run=False)#
Format a PR entry in the style used by our changelogs.
- Parameters:
target (str) – The GitHub owner/repo
number (int) – The PR number to resolve
auth (str, optional) – The GitHub authorization token
dry_run (bool, optional) – Whether this is a dry run.
- Returns:
A formatted PR entry
- Return type:
str
- jupyter_releaser.changelog.get_version_entry(ref, branch, repo, version, *, since=None, since_last_stable=None, until=None, auth=None, resolve_backports=False, dry_run=False)#
Get a changelog for the changes since the last tag on the given branch.
- Parameters:
branch (str) – The target branch
ref (str) – The source reference
repo (str) – The GitHub owner/repo
version (str) – The new version
since (str) – Use PRs with activity since this date or git reference
since_last_stable – Use PRs with activity since the last stable git tag
until (str, optional) – Use PRs until this date or git reference
auth (str, optional) – The GitHub authorization token
resolve_backports (bool, optional) – Whether to resolve backports to the original PR
dry_run (bool, optional) – Whether this is a dry run.
- Returns:
A formatted changelog entry with markers
- Return type:
str
- jupyter_releaser.changelog.insert_entry(changelog, entry, version=None)#
Insert the entry into the existing changelog.
- jupyter_releaser.changelog.splice_github_entry(orig_entry, github_entry)#
Splice an entry created on GitHub into one created by build_entry
- jupyter_releaser.changelog.update_changelog(changelog_path, entry)#
Update a changelog with a new entry.
Global Utility Functions#
Jupyter Releaser Utils.
- jupyter_releaser.util.actions_output(name, value)#
Handle setting an action output on GitHub
- jupyter_releaser.util.bump_version(version_spec, *, changelog_path='', version_cmd='')#
Bump the version
- jupyter_releaser.util.compute_sha256(path)#
Compute the sha256 of a file
- jupyter_releaser.util.create_release_commit(version, release_message=None, dist_dir='dist')#
Generate a release commit that has the sha256 digests for the release files
- jupyter_releaser.util.ensure_mock_github()#
Check for or start a mock github server.
- jupyter_releaser.util.ensure_sha(dry_run, expected_sha, branch)#
Ensure the sha of the remote branch matches the expected sha
- jupyter_releaser.util.extract_metadata_from_release_url(gh, release_url, auth)#
Extract the metadata for a release given a url.
- jupyter_releaser.util.fetch_release_asset(target_dir, asset, auth)#
Fetch a release asset into a target directory.
- jupyter_releaser.util.fetch_release_asset_data(asset, auth)#
Fetch the data for a release asset.
- jupyter_releaser.util.get_branch()#
Get the appropriate git branch
- jupyter_releaser.util.get_default_branch()#
Get the default remote branch
- jupyter_releaser.util.get_first_commit(source)#
Get the default ‘since’ value for a branch
- jupyter_releaser.util.get_gh_object(dry_run=False, **kwargs)#
Get a properly configured GhAPi object
- jupyter_releaser.util.get_latest_tag(source, since_last_stable=False)#
Get the default ‘since’ value for a branch
- jupyter_releaser.util.get_mock_github_url()#
Get the mock github url.
- jupyter_releaser.util.get_remote_name(dry_run)#
Get the appropriate remote git name.
- jupyter_releaser.util.get_repo()#
Get the remote repo owner and name
- jupyter_releaser.util.get_version()#
Get the current package version
- jupyter_releaser.util.handle_since() str #
Capture the “since” argument in case we add tags before checking changelog.
- jupyter_releaser.util.is_prerelease(version)#
Test whether a version is a prerelease version
- jupyter_releaser.util.latest_draft_release(gh, branch=None)#
Get the latest draft release for a given repo
- jupyter_releaser.util.log(*outputs, **kwargs)#
Log an output to stderr
- jupyter_releaser.util.normalize_path(path)#
Normalize a path to use backslashes
- jupyter_releaser.util.parse_release_url(release_url)#
Parse a release url into a regex match
- jupyter_releaser.util.prepare_environment(fetch_draft_release=True)#
Prepare the environment variables, for use when running one of the action scripts.
- jupyter_releaser.util.read_config()#
Read the jupyter-releaser config data
- jupyter_releaser.util.release_for_url(gh, url)#
Get release response data given a release url
- jupyter_releaser.util.retry(cmd, **kwargs)#
Run a command with retries
- jupyter_releaser.util.run(cmd, **kwargs)#
Run a command as a subprocess and get the output as a string
- jupyter_releaser.util.upload_assets(gh, assets, release, auth)#
Upload assets to a release.