-
Notifications
You must be signed in to change notification settings - Fork 160
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1256224
commit 11634d0
Showing
9 changed files
with
221 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
name: Check Release | ||
on: | ||
push: | ||
branches: ["master", "*"] | ||
pull_request: | ||
branches: ["*"] | ||
|
||
jobs: | ||
check_release: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
- name: Base Setup | ||
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | ||
- name: Check Release | ||
uses: jupyter-server/jupyter_releaser/.github/actions/check-release@v2 | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Upload Distributions | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: nbdime-releaser-dist-${{ '{{ github.run_number }}' }} | ||
path: .jupyter_releaser_checkout/dist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
name: Enforce PR label | ||
|
||
on: | ||
pull_request: | ||
types: [labeled, unlabeled, opened, edited, synchronize] | ||
jobs: | ||
enforce-label: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
pull-requests: write | ||
steps: | ||
- name: enforce-triage-label | ||
uses: jupyterlab/maintainer-tools/.github/actions/enforce-label@v1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
name: "Step 1: Prep Release" | ||
on: | ||
workflow_dispatch: | ||
inputs: | ||
version_spec: | ||
description: "New Version Specifier" | ||
default: "next" | ||
required: false | ||
branch: | ||
description: "The branch to target" | ||
required: false | ||
post_version_spec: | ||
description: "Post Version Specifier" | ||
required: false | ||
since: | ||
description: "Use PRs with activity since this date or git reference" | ||
required: false | ||
since_last_stable: | ||
description: "Use PRs with activity since the last stable git tag" | ||
required: false | ||
type: boolean | ||
jobs: | ||
prep_release: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | ||
|
||
- name: Prep Release | ||
id: prep-release | ||
uses: jupyter-server/jupyter_releaser/.github/actions/prep-release@v2 | ||
with: | ||
token: ${{ secrets.ADMIN_GITHUB_TOKEN }} | ||
version_spec: ${{ github.event.inputs.version_spec }} | ||
post_version_spec: ${{ github.event.inputs.post_version_spec }} | ||
branch: ${{ github.event.inputs.branch }} | ||
since: ${{ github.event.inputs.since }} | ||
since_last_stable: ${{ github.event.inputs.since_last_stable }} | ||
|
||
- name: "** Next Step **" | ||
run: | | ||
echo "Optional): Review Draft Release: ${{ steps.prep-release.outputs.release_url }}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
name: "Step 2: Publish Release" | ||
on: | ||
workflow_dispatch: | ||
inputs: | ||
branch: | ||
description: "The target branch" | ||
required: false | ||
release_url: | ||
description: "The URL of the draft GitHub release" | ||
required: false | ||
steps_to_skip: | ||
description: "Comma separated list of steps to skip" | ||
required: false | ||
|
||
jobs: | ||
publish_release: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
# This is useful if you want to use PyPI trusted publisher | ||
# and NPM provenance | ||
id-token: write | ||
steps: | ||
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | ||
|
||
- name: Populate Release | ||
id: populate-release | ||
uses: jupyter-server/jupyter_releaser/.github/actions/populate-release@v2 | ||
with: | ||
token: ${{ secrets.ADMIN_GITHUB_TOKEN }} | ||
branch: ${{ github.event.inputs.branch }} | ||
release_url: ${{ github.event.inputs.release_url }} | ||
steps_to_skip: ${{ github.event.inputs.steps_to_skip }} | ||
|
||
- name: Finalize Release | ||
id: finalize-release | ||
env: | ||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | ||
uses: jupyter-server/jupyter_releaser/.github/actions/finalize-release@v2 | ||
with: | ||
token: ${{ secrets.ADMIN_GITHUB_TOKEN }} | ||
release_url: ${{ steps.populate-release.outputs.release_url }} | ||
|
||
- name: "** Next Step **" | ||
if: ${{ success() }} | ||
run: | | ||
echo "Verify the final release" | ||
echo ${{ steps.finalize-release.outputs.release_url }} | ||
- name: "** Failure Message **" | ||
if: ${{ failure() }} | ||
run: | | ||
echo "Failed to Publish the Draft Release Url:" | ||
echo ${{ steps.populate-release.outputs.release_url }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,11 @@ | ||
[build-system] | ||
requires = ["jupyterlab~=4.0", "setuptools>=40.8.0", "wheel"] | ||
build-backend = "setuptools.build_meta" | ||
|
||
[tool.jupyter-releaser.options] | ||
version-cmd = "python scripts/bump_version.py --force" | ||
|
||
[tool.jupyter-releaser.hooks] | ||
before-bump-version = [ | ||
"npm install" | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
# Copyright (c) Jupyter Development Team. | ||
# Distributed under the terms of the Modified BSD License. | ||
|
||
import argparse | ||
import json | ||
import shlex | ||
import sys | ||
from pathlib import Path | ||
from subprocess import check_output, run | ||
|
||
from packaging.version import parse | ||
|
||
LERNA_CMD = "npm run lerna version --no-push --force-publish --no-git-tag-version" | ||
|
||
|
||
def install_dependencies() -> None: | ||
pkgs = [] | ||
try: | ||
import hatch | ||
except ImportError: | ||
pkgs.append("hatch") | ||
|
||
if pkgs: | ||
run([sys.executable, "-m", "pip", "install"] + pkgs) | ||
|
||
|
||
def bump(force: bool, spec: str) -> None: | ||
install_dependencies() | ||
|
||
HERE = Path(__file__).parent.parent.resolve() | ||
output = check_output( | ||
shlex.split("git status --porcelain"), cwd=HERE, encoding="utf-8" | ||
) | ||
if len(output) > 0: | ||
raise Exception("Must be in a clean git state with no untracked files") | ||
|
||
run( | ||
[sys.executable, "-m", "hatch", "version", spec], cwd=HERE, encoding="utf-8", check=True | ||
) | ||
|
||
version = parse( | ||
# Output maybe multi-lines if build dependencies needs to be installed. | ||
check_output( | ||
[sys.executable, "-m", "hatch", "version"], cwd=HERE, encoding="utf-8" | ||
).strip("\n").split("\n")[-1] | ||
) | ||
|
||
# convert the Python version | ||
js_spec = "prerelease" if spec in ["alpha", "a", "beta", "b", "rc"] else spec | ||
|
||
# bump the JS packages | ||
lerna_cmd = f"{LERNA_CMD} {js_spec}" | ||
if force: | ||
lerna_cmd += " --yes" | ||
run(shlex.split(lerna_cmd), cwd=HERE, check=True) | ||
|
||
path = HERE.joinpath("package.json") | ||
if path.exists(): | ||
with path.open(mode="r") as f: | ||
data = json.load(f) | ||
|
||
data["version"] = js_version | ||
|
||
with path.open(mode="w") as f: | ||
json.dump(data, f, indent=2) | ||
|
||
else: | ||
raise FileNotFoundError(f"Could not find package.json under dir {path!s}") | ||
|
||
|
||
if __name__ == "__main__": | ||
parser = argparse.ArgumentParser("bump_version", "Bump package version") | ||
parser.add_argument("--force", action="store_true") | ||
parser.add_argument("spec") | ||
|
||
args = parser.parse_args() | ||
bump(args.force, args.spec) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters