Use Jupyter Releaser (#6048)

* Use Jupyter Releaser

* Automated Changelog Entry for 6.4.0a0 on notebook-releaser

* Publish 6.4.0a0

SHA256 hashes:

dist/notebook-6.4.0a0-py3-none-any.whl: abbbbb02504cedb85c2d5eeac39ea11615360b9b0075126bf180d6011eac14a5

dist/notebook-6.4.0a0.tar.gz: 2984630a020a9396c61b2c3b98f43b1957dd0121b162a926b3d6136fafa7ca16

* Bump to 6.5.0.dev0

* Remove jupyter_packaging as a runtime requirement

* Automated Changelog Entry for 6.4.0a1 on notebook-releaser

* Publish 6.4.0a1

SHA256 hashes:

dist/notebook-6.4.0a1-py3-none-any.whl: 4b0ae5cb972b5b16b18b942810b85859185ef2081017dd495e5f57099ce06ef4

dist/notebook-6.4.0a1.tar.gz: c48e10d34afa35e304e3b7deca1882508195960f35c4661dec044bb8da344ae5

* Bump to 6.5.0.dev0

* Update notebook/_version.py

Co-authored-by: Kevin Bates <kbates4@gmail.com>

* Update pyproject.toml

Co-authored-by: Kevin Bates <kbates4@gmail.com>

Co-authored-by: GitHub Action <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Steven Silvester <steven.silvester@ieee.org>
Co-authored-by: Kevin Bates <kbates4@gmail.com>
This commit is contained in:
Afshin Taylor Darian 2021-05-12 17:04:31 +01:00 committed by GitHub
parent 008a6c0450
commit c19323de9a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 147 additions and 33 deletions

57
.github/workflows/check-release.yml vendored Normal file
View File

@ -0,0 +1,57 @@
name: Check Release
on:
push:
branches: ["master"]
pull_request:
branches: ["*"]
permissions:
contents:
write
jobs:
check_release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: 3.9
architecture: "x64"
- name: Install node
uses: actions/setup-node@v2
with:
node-version: '14.x'
- name: Get pip cache dir
id: pip-cache
run: |
echo "::set-output name=dir::$(pip cache dir)"
- name: Cache pip
uses: actions/cache@v1
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('setup.cfg') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-pip-
- name: Cache checked links
uses: actions/cache@v2
with:
path: ~/.cache/pytest-link-check
key: ${{ runner.os }}-linkcheck-${{ hashFiles('**/.md') }}-md-links
restore-keys: |
${{ runner.os }}-linkcheck-
- name: Upgrade packaging dependencies
run: |
pip install --upgrade pip setuptools wheel --user
- name: Install Dependencies
run: |
pip install -e .
- name: Check Release
env:
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_TOKEN }}
uses: jupyter-server/jupyter_releaser/.github/actions/check-release@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}

2
.gitignore vendored
View File

@ -54,3 +54,5 @@ geckodriver.log
# copied changelog
docs/source/changelog.md
.jupyter_releaser_checkout

File diff suppressed because one or more lines are too long

View File

@ -5,9 +5,12 @@ include CHANGELOG.md
include package.json
include bower.json
include .bowerrc
include pyproject.toml
include setup.py
include setupbase.py
include Dockerfile
graft tools
graft notebook/tests
# Translations
graft notebook/i18n

View File

@ -1,14 +1,20 @@
# Making a Release of Notebook
## Start from a fresh git checkout and conda environment
## Using `jupyter_releaser`
### Set the release branch
The recommended way to make a release is to use [`jupyter_releaser`](https://github.com/jupyter-server/jupyter_releaser#checklist-for-adoption).
## Manual Release Process
### Start from a fresh git checkout and conda environment
#### Set the release branch
```bash
export release_branch=master
```
### Create the git checkout
#### Create the git checkout
```bash
git clone git@github.com:jupyter/notebook.git
@ -16,27 +22,27 @@ cd notebook
git checkout ${release_banch}
```
### Create and activate the conda environment
#### Create and activate the conda environment
```bash
conda create -n notebook-release -c conda-forge jupyter
conda activate notebook-release
```
## Perform a local dev install
### Perform a local dev install
```bash
pip install -ve .
```
## Install release dependencies
### Install release dependencies
```bash
conda install -c conda-forge nodejs babel twine
conda install -c conda-forge nodejs babel twine build
npm install -g po2json
```
## Update the version
### Update the version
```bash
vim notebook/_version.py
@ -45,21 +51,20 @@ git commit -am "Release $(python setup.py --version)"
git tag $(python setup.py --version)
```
## Create the artifacts
### Create the artifacts
```bash
rm -rf dist
python setup.py sdist
python setup.py bdist_wheel
python -m build .
```
## Upload the artifacts
### Upload the artifacts
```bash
twine check dist/* && twine upload dist/*
```
## Change back to dev version
### Change back to dev version
```bash
vim notebook/_version.py # Add the .dev suffix
@ -67,7 +72,7 @@ python setup.py jsversion
git commit -am "Back to dev version"
```
## Push the commits and tags
### Push the commits and tags
```bash
git push origin ${release_branch} --tags

View File

@ -47,7 +47,7 @@ front-end Notebook client (i.e. the familiar notebook interface).
documented in the configuration file and the user documentation.
- :ref:`Running a Notebook server <working_remotely>`
- Related: `Configuring a language kernel <https://jupyter.readthedocs.io/en/latest/install-kernel.html>`_
- Related: `Configuring a language kernel <https://ipython.readthedocs.io/en/latest/install/kernel_install.html>`_
to run in the Notebook server enables your server to run other languages, like R or Julia.
.. _configure_nbclient:

View File

@ -134,7 +134,7 @@
"\n",
"> Of course, in addition to the files listed, there are number of other files one needs to build a proper package. Here are some good resources:\n",
"- [The Hitchhiker's Guide to Packaging](https://the-hitchhikers-guide-to-packaging.readthedocs.io/en/latest/quickstart.html)\n",
"- [Repository Structure and Python](https://www.kennethreitz.org/essays/repository-structure-and-python) by Kenneth Reitz\n",
"- [Repository Structure and Python](https://kenreitz.org/essays/2013/01/27/repository-structure-and-python) by Kenneth Reitz\n",
"\n",
"> How you distribute them, too, is important:\n",
"- [Packaging and Distributing Projects](https://python-packaging-user-guide.readthedocs.io/tutorials/distributing-packages/)\n",
@ -507,4 +507,4 @@
},
"nbformat": 4,
"nbformat_minor": 1
}
}

View File

@ -1,4 +1,4 @@
# Notebook Examples
The pages in this section are all converted notebook files. You can also
[view these notebooks on nbviewer](http://nbviewer.jupyter.org/github/jupyter/notebook/blob/master/)
[view these notebooks on nbviewer](http://nbviewer.jupyter.org/github/jupyter/notebook/tree/master/)

View File

@ -68,11 +68,11 @@ example, for blog posts), reStructuredText, LaTeX, PDF, and slide shows, via
the nbconvert_ command.
Furthermore, any ``.ipynb`` notebook document available from a public
URL can be shared via the `Jupyter Notebook Viewer <nbviewer>`_ (nbviewer_).
URL can be shared via the Jupyter Notebook Viewer <nbviewer>.
This service loads the notebook document from the URL and renders it as a
static web page. The results may thus be shared with a colleague, or as a
public blog post, without other users needing to install the Jupyter notebook
themselves. In effect, nbviewer_ is simply nbconvert_ as
themselves. In effect, nbviewer is simply nbconvert_ as
a web service, so you can do your own static conversions with nbconvert,
without relying on nbviewer.
@ -278,9 +278,7 @@ way, using standard LaTeX notation: ``$...$`` for inline mathematics and
``$$...$$`` for displayed mathematics. When the Markdown cell is executed,
the LaTeX portions are automatically rendered in the HTML output as equations
with high quality typography. This is made possible by MathJax_, which
supports a `large subset <mathjax_tex>`_ of LaTeX functionality
.. _mathjax_tex: https://docs.mathjax.org/en/latest/tex.html
supports a `large subset <https://docs.mathjax.org/en/latest/input/tex/index.html>`__ of LaTeX functionality
Standard mathematics environments defined by LaTeX and AMS-LaTeX (the
``amsmath`` package) also work, such as

View File

@ -2,12 +2,19 @@
store the current version info of the notebook.
"""
import re
# Version string must appear intact for tbump versioning
__version__ = '6.4.0a1'
# Build up version_info tuple for backwards compatibility
pattern = r'(?P<major>\d+).(?P<minor>\d+).(?P<patch>\d+)(?P<rest>.*)'
match = re.match(pattern, __version__)
parts = [int(match[part]) for part in ['major', 'minor', 'patch']]
if match['rest']:
parts.append(match['rest'])
version_info = tuple(parts)
# Downstream maintainer, when running `python.setup.py jsversion`,
# the version string is propagated to the JavaScript files, do not forget to
# patch the JavaScript files in `.postN` release done by distributions.
# Next beta/alpha/rc release: The version number for beta is X.Y.ZbN **without dots**.
version_info = (6, 4, 0, '.dev0')
__version__ = '.'.join(map(str, version_info[:3])) + ''.join(version_info[3:])

View File

@ -73,7 +73,7 @@ define(function(){
// tree
jglobal('SessionList','tree/js/sessionlist');
Jupyter.version = "6.4.0.dev0";
Jupyter.version = "6.4.0a1";
Jupyter._target = '_blank';
return Jupyter;

View File

@ -1,5 +1,6 @@
{
"name": "jupyter-notebook-deps",
"private": true,
"version": "4.0.0",
"description": "Jupyter Notebook nodejs dependencies",
"author": "Jupyter Developers",

28
pyproject.toml Normal file
View File

@ -0,0 +1,28 @@
[build-system]
requires=["jupyter_packaging~=0.9,<2"]
build-backend = "setuptools.build_meta"
[tool.check-manifest]
ignore = ["docs-translations/**", ".*", "*.yml", "*.less", "git-hooks/**", "MANIFEST.in", "RELEASE.md", "jupyter.svg", "notebook/static/**", "notebook/i18n/**/*.json", "docs/source/*.*"]
ignore-bad-ideas = ["notebook/i18n/**/*.mo"]
[tool.jupyter-releaser.hooks]
after-bump-version = "python setup.py jsversion"
before-build-python = ["pip install babel", "npm install -g po2json"]
[tool.jupyter-releaser.options]
ignore-glob = ["docs/source/examples/Notebook/Working With Markdown Cells.ipynb", "docs-translations/**/README.md", "docs/source/contributing.rst", "docs/source/examples/Notebook/JavaScript Notebook Extensions.ipynb", "CHANGELOG.md"]
[tool.tbump.version]
current = "6.4.0a1"
regex = '''
(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)
((?P<channel>a|b|rc|.dev)(?P<release>\d+))?
'''
[tool.tbump.git]
message_template = "Bump to {new_version}"
tag_template = "v{new_version}"
[[tool.tbump.file]]
src = "notebook/_version.py"

View File

@ -50,6 +50,9 @@ if os.path.exists('MANIFEST'): os.remove('MANIFEST')
from setuptools import setup
# Needed to support building with `setuptools.build_meta`
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
from setupbase import (
version,
find_packages,

View File

@ -272,7 +272,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"See my [About](/about/) page for details. "
"See my [Confined Output](./Confined Output.ipynb/) sibling page. "
]
},
{
@ -8203,4 +8203,4 @@
},
"nbformat": 4,
"nbformat_minor": 0
}
}