Compare commits

..

19 Commits

Author SHA1 Message Date
dependabot[bot]
1058292e3f Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 19:54:13 +00:00
Bastian Venthur
41b0962ec0 Merge pull request #288 from venthur/no-requirements-txt
remove requirements.txt and requirements-dev.txt
2025-07-18 09:30:55 +02:00
Bastian Venthur
720a92d72d updated changelog 2025-07-18 09:30:38 +02:00
Bastian Venthur
9b11c67253 tiny improvement on github action 2025-07-18 09:24:29 +02:00
Bastian Venthur
ce0f9f6fa7 fixed makefile and readthedocs 2025-07-18 09:24:29 +02:00
Bastian Venthur
ba4bf8481c remove requirements.txt and requirements-dev.txt 2025-07-18 09:24:26 +02:00
Bastian Venthur
ae544e3d02 Merge pull request #294 from venthur/dependabot/pip/pip-512858e340
Bump requests from 2.32.3 to 2.32.4 in the pip group
2025-07-15 09:19:42 +02:00
dependabot[bot]
904f231754 Bump requests from 2.32.3 to 2.32.4 in the pip group
Bumps the pip group with 1 update: [requests](https://github.com/psf/requests).


Updates `requests` from 2.32.3 to 2.32.4
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.3...v2.32.4)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.32.4
  dependency-type: direct:development
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-10 11:52:25 +00:00
Bastian Venthur
87a6ff09d5 bumped changelogs 2025-04-27 11:49:08 +02:00
Bastian Venthur
419b0aea3a Merge pull request #285 from venthur/atom-utf8
Fixed atom feed encoding to utf-8
2025-04-24 14:06:18 +02:00
Bastian Venthur
b0139dad8d Fixed atom feed encoding to utf-8 2025-04-24 14:03:47 +02:00
Bastian Venthur
05af204254 add --skip-extras 2025-04-08 09:32:13 +02:00
Bastian Venthur
031e3f92cd update changelog 2025-04-08 09:17:24 +02:00
Bastian Venthur
729b1acf65 Merge pull request #277 from venthur/update_requirements
Added update-requirements target
2025-04-08 09:15:09 +02:00
Bastian Venthur
d8c41cc9fb Merge pull request #278 from venthur/update_license_file
Update license -> license-files to satisfy newer setuptools
2025-04-01 10:25:25 +02:00
Bastian Venthur
00e02f13dc Added update-requirements target
Manage requirements*.txt files by pip-tools
2025-04-01 10:07:07 +02:00
Bastian Venthur
5c7213eac0 Update license -> license-files to satisfy newer setuptools 2025-04-01 09:59:51 +02:00
Bastian Venthur
8a275c0923 Merge pull request #274 from venthur/dependabot/pip/all-fb8e73af51
Bump the all group across 1 directory with 8 updates
2025-03-11 14:19:21 +01:00
dependabot[bot]
abf7dc0485 Bump the all group across 1 directory with 8 updates
Bumps the all group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.5.49` | `9.6.7` |
| [mkdocstrings[python]](https://github.com/mkdocstrings/mkdocstrings) | `0.27.0` | `0.29.0` |
| [twine](https://github.com/pypa/twine) | `6.0.1` | `6.1.0` |
| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.3.5` |
| [ruff](https://github.com/astral-sh/ruff) | `0.8.4` | `0.9.10` |
| [mypy](https://github.com/python/mypy) | `1.14.0` | `1.15.0` |
| [jinja2](https://github.com/pallets/jinja) | `3.1.5` | `3.1.6` |
| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.19.1` |



Updates `mkdocs-material` from 9.5.49 to 9.6.7
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.49...9.6.7)

Updates `mkdocstrings[python]` from 0.27.0 to 0.29.0
- [Release notes](https://github.com/mkdocstrings/mkdocstrings/releases)
- [Changelog](https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mkdocstrings/mkdocstrings/compare/0.27.0...0.29.0)

Updates `twine` from 6.0.1 to 6.1.0
- [Release notes](https://github.com/pypa/twine/releases)
- [Changelog](https://github.com/pypa/twine/blob/main/docs/changelog.rst)
- [Commits](https://github.com/pypa/twine/compare/6.0.1...6.1.0)

Updates `pytest` from 8.3.4 to 8.3.5
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.3.4...8.3.5)

Updates `ruff` from 0.8.4 to 0.9.10
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.8.4...0.9.10)

Updates `mypy` from 1.14.0 to 1.15.0
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.14.0...v1.15.0)

Updates `jinja2` from 3.1.5 to 3.1.6
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.1.5...3.1.6)

Updates `pygments` from 2.18.0 to 2.19.1
- [Release notes](https://github.com/pygments/pygments/releases)
- [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES)
- [Commits](https://github.com/pygments/pygments/compare/2.18.0...2.19.1)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: mkdocstrings[python]
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: twine
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: jinja2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: pygments
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 15:34:18 +00:00
12 changed files with 45 additions and 91 deletions

View File

@@ -1,12 +1,9 @@
name: CI/CD Pipeline
on:
- push
- pull_request
jobs:
test:
name: Test Python ${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
@@ -23,7 +20,7 @@ jobs:
- "3.13"
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
@@ -37,7 +34,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: "3.x"
@@ -51,7 +48,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: "3.x"
@@ -66,7 +63,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: "3.x"

View File

@@ -3,13 +3,13 @@ version: 2
build:
os: ubuntu-22.04
tools:
python: "3.11"
python: "3.12"
mkdocs:
configuration: mkdocs.yml
python:
install:
- requirements: requirements.txt
- requirements: requirements-dev.txt
- path: .
- path: .
extra_requirements:
- dev

View File

@@ -1,8 +1,16 @@
# Changelog
## [unreleased]
## [unreleased] --
* Removed requirements.txt and requirements-dev.txt
## [2.3.3] -- 2025-04-27
* Fixed Atom feed encoding to 'utf-8'
* Added Python 3.13 to github actions
* `requirements*.txt` files are handled by pip-tools. Updates are handled by
make update-requirements based on the dependencies described in the
pyproject.toml
## [2.3.2] -- 2024-10-13

View File

@@ -16,11 +16,9 @@ endif
.PHONY: all
all: lint mypy test test-release
$(VENV): requirements.txt requirements-dev.txt pyproject.toml
$(VENV): pyproject.toml
$(PY) -m venv $(VENV)
$(BIN)/pip install --upgrade -r requirements.txt
$(BIN)/pip install --upgrade -r requirements-dev.txt
$(BIN)/pip install -e .['dev']
$(BIN)/pip install --upgrade -e .['dev']
touch $(VENV)
.PHONY: test
@@ -65,10 +63,6 @@ serve-docs: $(VENV)
manpage: $(VENV)
help2man $(BIN)/blag --no-info -n "blog-aware, static site generator" -o debian/blag.1
.PHONY: benchmark
benchmark: $(VENV)
$(BIN)/pytest --no-cov -capture=no -rA tests/benchmark.py
.PHONY: clean
clean:
rm -rf build dist *.egg-info

View File

@@ -323,18 +323,6 @@ def process_markdown(
for src, dst in convertibles:
logger.debug(f"Processing {src}")
# see first if the dst actually needs re-building. for that we compare
# the mtimes and assume mtime_dst > mtime_src means that it needs not
# to be rebuilt
if os.path.exists(f"{output_dir}/{dst}"):
mtime_src = os.stat(f"{input_dir}/{src}").st_mtime
mtime_dst = os.stat(f"{output_dir}/{dst}").st_mtime
if mtime_dst >= mtime_src:
logger.debug(
"Skipping, as target exists and is newer than source."
)
continue
with open(f"{input_dir}/{src}") as fh:
body = fh.read()
@@ -408,7 +396,7 @@ def generate_feed(
)
with open(f"{output_dir}/atom.xml", "w") as fh:
feed.write(fh, encoding="utf8")
feed.write(fh, encoding='utf-8')
def generate_index(

View File

@@ -1,3 +1,3 @@
"""Version information for the blag package."""
__VERSION__ = "2.3.2"
__VERSION__ = "2.3.3"

10
debian/changelog vendored
View File

@@ -1,3 +1,13 @@
blag (2.3.3) unstable; urgency=medium
* Fixed Atom feed encoding to 'utf-8'
* Added Python 3.13 to github actions
* `requirements*.txt` files are handled by pip-tools. Updates are handled by
make update-requirements based on the dependencies described in the
pyproject.toml
-- Bastian Venthur <venthur@debian.org> Sun, 27 Apr 2025 11:42:13 +0200
blag (2.3.2) unstable; urgency=medium
* Ignore FileNotFoundError when trying to get the last modified time of

View File

@@ -10,13 +10,13 @@ authors = [
description = "blog-aware, static site generator"
keywords = ["markdown", "blag", "blog", "static site generator", "cli"]
readme = "README.md"
license = { file="LICENSE" }
license-files = ["LICENSE"]
requires-python = ">=3.10"
dynamic = ["version"]
dependencies = [
"markdown",
"feedgenerator",
"jinja2",
"markdown",
"pygments",
]
@@ -34,13 +34,13 @@ dev = [
"mkdocs",
"mkdocs-material",
"mkdocstrings[python]",
"twine",
"wheel",
"mypy",
"pytest",
"pytest-cov",
"ruff",
"mypy",
"twine",
"types-markdown",
"wheel",
]
[tool.setuptools.dynamic]

View File

@@ -1,11 +0,0 @@
build==1.2.2.post1
mkdocs==1.6.1
mkdocs-material==9.5.49
mkdocstrings[python]==0.27.0
twine==6.0.1
wheel==0.45.1
pytest==8.3.4
pytest-cov==6.0.0
ruff==0.8.4
mypy==1.14.0
types-markdown==3.7.0.20241204

View File

@@ -1,4 +0,0 @@
markdown==3.7
feedgenerator==2.1.0
jinja2==3.1.5
pygments==2.18.0

View File

@@ -1,37 +0,0 @@
"""Benchmark the performance of the blag build command."""
import logging
import os
from argparse import Namespace
from pytest import LogCaptureFixture
import blag
from blag.blag import build
def test_performance(args: Namespace, caplog: LogCaptureFixture) -> None:
"""Test performance of the build command."""
caplog.set_level(logging.ERROR)
FILES = 10000
print(f"Generating {FILES} markdown files")
# create random markdown files in the content directory
with open(os.path.join(blag.__path__[0], "content", "testpage.md")) as fh:
markdown = fh.read()
for i in range(FILES):
with open(f"content/{i}.md", "w") as f:
f.write(markdown)
f.write(str(i))
from time import time
t = time()
build(args)
t_first = time() - t
t = time()
build(args)
t_second = time() - t
print(f"First run: {t_first:.2f}s, second run: {t_second:.2f}s")
print(f"Speedup: {t_first/t_second:.2f}")

View File

@@ -99,6 +99,15 @@ def test_generate_feed_with_description(cleandir: str) -> None:
assert '<content type="html">content' in feed
def test_feed_is_unicode(cleandir: str) -> None:
"""Test generate_feed."""
articles: list[tuple[str, dict[str, Any]]] = []
blag.generate_feed(articles, "build", " ", " ", " ", " ")
with open("build/atom.xml") as fh:
feed = fh.read()
assert 'encoding="utf-8"' in feed
def test_parse_args_build() -> None:
"""Test parse_args with build."""
# test default args