Skip to content

Commit

Permalink
Update fork from upstream (#3)
Browse files Browse the repository at this point in the history
* Cleanup RichTextBlockWithFootnotes (#2)

* Cleanup RichTextBlockWithFootnotes

* Make sure we have a context to work from and add a comment

* Remove unnecessary step from readme

* Add footnotes as a feature when using RichTextBlockWithFootnotes

* Update changelog

* Fix replace_footnote_tags by passing 'value' through and correct features

* Footnote make Page and UUID unique together (torchbox#16)

* Make Footnotes unique on page-uuid

* Add migration

* Fix migration and Footnote.DoesNotExist exception

* Footnote.DoesNotExist is no longer needed

We no longer run .get(), instead we store a list of the page's footnotes, we will get a KeyError if there is an invalid footnote reference.

* Bump version to 0.7.0

* Only attempt to add footnotes if the context's 'page' is a Page object

* Update wagtail_footnotes/blocks.py

Co-authored-by: Dan Braghis <dan.braghis@torchbox.com>

* Cast ``Footnote.uuid`` to string so previews work

The keys in ``self.footnotes`` need to be strings in order for lookups to work, but before the ``Footnote`` is saved to the db, it is of type ``UUID``.

Refs torchbox#23

* update wagtail 3.0 code changes

* update package information

* update CHANGELOG

* Bump version and update changelog

* Fix typo

* Modify setup.py so package can be detected by GitHub (torchbox#31)

* Bump to version 0.8.0

* Drop Django constraint and let Wagtail dictate it

* Adds apps file to specifcy auto field

* Add GitHub Action to publish to PyPI on release

* Allow wagtail 4

* Alter footnotes admin css selector

* Adjust footnotes template to match the new style

* Wagtail 2.15,2.16 & 3.0 adjustments

They need an alternative template file and javascript file

* Fixed typo in template name (torchbox#44)

* Revise version to 0.9.0

* Update CHANGELOG.md

* Update CHANGELOG.md

* Updates to support Wagtail 5 (torchbox#49)

* Drop support for Wagtail <  4.1
* Drop support for Python 3.7
* Update pre-commit hooks
* Add tests
* Add support for Wagtail 5+

* Switch to using ruff

* Lint

* Remove unused template/JS

* Tidy up GitHub Actions

* Switch to tox 4

* Test against Wagtail 5.1 (and drop 4.2)

* Tidy up coverage configuration

* Build and use wheel in CI

* Add coverage report in CI

* Switch to using PyPI trusted publishing (torchbox#53)

* Switch to using flit for package build (torchbox#54)

* Drop the docs folder

these are draft notes and are not up ready yet

* Update the CHANGELOG

* Bump version to 0.10.0

* Added basic contributing notes (torchbox#56)

Refs torchbox#55

* Add formal Wagtail 5.2 support (torchbox#63)

* Add Wagtail 5.2 and Python 3.12 in test matrices, update CHANGELOG.md
* Wagtail 5.2 upgrade consideration: Block.get_template now accepts a value argument
* Remove instances of Wagtail 5.0 in the test matrix, Update README.md
---------

Co-authored-by: Katherine Domingo <katherine.domingo@torchbox.com>

* Adapt syntax for Wagtail 4

* Reorder migration

---------

Co-authored-by: Cameron Lamb <cameron.lamb@torchbox.com>
Co-authored-by: Alex Bridge <alex.bridge@torchbox.com>
Co-authored-by: Dan Braghis <dan.braghis@torchbox.com>
Co-authored-by: John-Scott Atlakson <24574+jsma@users.noreply.github.com>
Co-authored-by: Brian Xu <brian.xu@torchbox.com>
Co-authored-by: Kevin <kbhowbrook@gmail.com>
Co-authored-by: Kevin <2128707+kevinhowbrook@users.noreply.github.com>
Co-authored-by: Oliver Parker <oliver@dev.ngo>
Co-authored-by: Nick Moreton <nickmoreton@me.com>
Co-authored-by: nick.moreton <nick.moreton@torchbox.com>
Co-authored-by: zerolab <dan@zerolab.org>
Co-authored-by: Kat <katdom13@gmail.com>
Co-authored-by: Katherine Domingo <katherine.domingo@torchbox.com>
  • Loading branch information
14 people authored Jan 16, 2024
1 parent 0f1ce76 commit 6be714e
Show file tree
Hide file tree
Showing 42 changed files with 1,448 additions and 158 deletions.
56 changes: 56 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Publish to PyPI

on:
release:
types: [released, prereleased]

permissions:
contents: read # to fetch code (actions/checkout)

env:
PYTHON_LATEST: "3.11"

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- uses: actions/setup-python@v4
with:
python-version: ${{env.PYTHON_LATEST}}
cache: "pip"
cache-dependency-path: "pyproject.toml"

- name: ⬇️ Install dependencies
run: |
python -Im pip install flit
python -Im flit install --symlink
- name: 🏗️ Build
run: python -Im flit build

- uses: actions/upload-artifact@v3
with:
path: ./dist

# https://docs.pypi.org/trusted-publishers/using-a-publisher/
pypi-publish:
needs: build
environment: 'release'

name: ⬆️ Upload release to PyPI
runs-on: ubuntu-latest
permissions:
# Mandatory for trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v3

- name: 🚀 Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: artifact/
print-hash: true
101 changes: 101 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: CI

on:
push:
branches:
- main
- 'stable/**'

pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read # to fetch code (actions/checkout)

env:
FORCE_COLOR: "1" # Make tools pretty.
TOX_TESTENV_PASSENV: FORCE_COLOR
PIP_DISABLE_PIP_VERSION_CHECK: "1"
PIP_NO_PYTHON_VERSION_WARNING: "1"
PYTHON_LATEST: "3.11"


jobs:

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-python@v4
with:
python-version: ${{env.PYTHON_LATEST}}
- uses: pre-commit/action@v3.0.0

tests:
runs-on: ubuntu-latest
needs: lint
strategy:
matrix:
python: ["3.8", "3.9", "3.10", "3.11", "3.12"]

steps:
- uses: actions/checkout@v3
- name: 🐍 Setup Python ${{ matrix.python }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- name: 📦 Install dependencies
run: |
python -Im pip install tox tox-gh-actions flit
python -Im flit install --symlink
- name: 🏗️ Build wheel
run: python -Im flit build --format wheel

- name: 🧪 Run tox targets for Python ${{ matrix.python-version }}
run: tox --installpkg ./dist/*.whl

- name: ⬆️ Upload coverage data
uses: actions/upload-artifact@v3
with:
name: coverage-data
path: .coverage.*
if-no-files-found: ignore
retention-days: 1

coverage:
runs-on: ubuntu-latest
needs: tests
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-python@v4
with:
# Use latest Python, so it understands all syntax.
python-version: ${{env.PYTHON_LATEST}}

- run: python -Im pip install --upgrade "coverage[toml]>=7.2,<8.0"

- name: ⬇️ Download coverage data
uses: actions/download-artifact@v3
with:
name: coverage-data

- name: + Combine coverage
run: |
python -Im coverage combine
python -Im coverage html --skip-covered --skip-empty
python -Im coverage report
echo "## Coverage summary" >> $GITHUB_STEP_SUMMARY
python -Im coverage report --format=markdown >> $GITHUB_STEP_SUMMARY
- name: 📈 Upload HTML report if check failed.
uses: actions/upload-artifact@v3
with:
name: html-report
path: htmlcov
165 changes: 162 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,164 @@
__pycache__
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

dist/
# C extensions
*.so

# Distribution / packaging
.Python
build/
wagtail_footnotes.egg-info/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/


# local
test_wagtail_footnotes.db
46 changes: 46 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
ci:
autofix_prs: false

default_language_version:
python: python3.11

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-added-large-files
- id: check-case-conflict
- id: check-json
- id: check-merge-conflict
- id: check-symlinks
- id: check-toml
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/psf/black
rev: 23.7.0
hooks:
- id: black
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: 'v0.0.280'
hooks:
- id: ruff
- repo: https://github.com/adamchainz/blacken-docs
rev: 1.15.0
hooks:
- id: blacken-docs
additional_dependencies: [black==23.7.0]
- repo: https://github.com/adamchainz/blacken-docs
rev: v1.12.1
hooks:
- id: blacken-docs
additional_dependencies:
- black==23.7.0
- repo: https://github.com/jackdewinter/pymarkdown
rev: v0.9.12
hooks:
- id: pymarkdown
args:
- --disable-rules
- line-length
- scan
Loading

0 comments on commit 6be714e

Please sign in to comment.