v0.7.40
I just released v0.7.40, which allows easily overriding the image used on an entry card.
News and updates about Publ
I just released v0.7.40, which allows easily overriding the image used on an entry card.
There’s been several minor releases of Publ, and it’s up to v0.7.39 now. Here’s what’s changed since v0.7.35:
entry.archive()
now elides the template-name if it’s the category default (matching view.link()
)Status: ATTACHMENT
The only user-facing change is the Status: ATTACHMENT
thing.
I’ve updated Authl to make it support the new-ish profile
scope in Mastodon 4.3, which provides better login-flow UX.
If profile
is unsupported it tries to fall back to the old read:accounts
scope, which should keep it working on older Mastodon versions as well.
In theory it should also work with Pleroma/Akkoma (and anything else that speaks the Mastodon client API), although that functionality hasn’t been verified in quite some time. If someone else wants to take on the work of verifying that and fixing whatever’s broken, that would be greatly appreciated!
There’s been a few releases of both Publ (now on 0.7.35) and Pushl (now on 0.4.0). A pretty decent amount has changed!
Publ changes since 0.7.31:
Accept:
, properly allowing multiple templates with the same name and providing reasonable fallback behaviorContent-Type
handling in generalNote that in order to upgrade to 0.7.35 you’ll also need to restrict your Python environment to use a Python version < 3.13; more on that in a bit.
Pushl changes since v0.3.5:
Accept:
headerSo, let’s talk about these projects and some other related stuff.
There’s a new release of Publ. There’s no new features, but there’s a huge performance improvement.
I’d been having some performance issues where on my larger sites, the main Atom feed was taking a long time to render. It didn’t really bother me too much because thanks to aggressive caching it would only cause an occasional slow page load (on the order of a few seconds) every now and then, but I thought there was probably something wrong with the I/O characteristics of how pages render.
Boy howdy was I wrong about that.
It’s been a while since I’ve worked on Publ but I got an itch for some new features, so here we are.
Specifically, there are two super-useful changes:
entry
, category
, or template
object you can retrieve an image relative to their context, using entry.image
, category.image
and template.image
, respectivelyJust a couple of bugfixes in this one:
view.deleted
works on paginated views againHere’s some new bugfixes and features!
view.link(template=template if template.name != 'index')
index
template will now work correctly if the category’s default template is not index
There is a known XSS exploit in webmention.js 0.5.4 and earlier. If you are running webmention.js on your site, please update to the latest version!
Many thanks to @tyage for reporting this vulnerability (and @psmoros for facilitating the report, as well as running huntr.dev which looks like a great security research and reporting platform).
What’s this, another Publ release? Why, yes! While revamping my personal website I came across some additional things that needed some Publ fixes to really work well.
The changes since 0.7.24 are:
entry.body
and entry.more
) to be False
Latest version of Publ includes:
first_paragraph
HTML filterThere was also a minor fix released as 0.7.23 which was to unpin the version of watchdog
, which allows Publ to run in debug/hot-reload mode once again.
Here’s a new release of Publ.
Actually it looks like I’ve been remiss in announcing the last several releases, because each of them just had minor changes! So here’s a bit of a catchup:
LA
pixel format)At present there appears to be an occasional issue with how watchdog works (or doesn’t), and I haven’t figured out the rhyme or reason. A pending Publ release will hopefully fix this. My apologies for the inconvenience.
Pushl has been updated to be compatible with an API change made in Python 3.11, specifically fixing some functionality which was deprecated in Python 3.8 and which I somehow failed to notice the deprecation warning of.
Thanks to @seirdy for bringing this to my attention.
0.7.17 had a critical bug in view.deleted
where it wasn’t properly filtering query parameters, so that version has been yanked and 0.7.18 has been released in order to fix said bug.
Today marks the release of Publ v0.7.17. Aside from the usual upstream-dependency changes and progressive delinting, this release fixes a subtle but annoying issue with how View.link
works. There’s a longer description of the issue on GitHub but the upshot of this is that now the parameters passed into a View
object get properly validated, meaning that if you’re doing something like:
<a href="{{view.previous(template='bob')}}>">
this will fail, as the correct syntax is (and always has been)
<a href="{{view.previous.link(template='bob')}}>">
Minor release for Publ, wherein I fixed a single bug; namely, loading a category without the trailing /
was causing an erroneous redirect, due to an apparent change in the depths of Flask.
This is one of those things where I really need to refactor Publ to make it properly unit-testable, gosh darnit.
I haven’t been working on this stuff in a while, but there were reasons to make some updates and releases for both Publ and Authl.
Publ changes:
Authl changes:
mastodon.py
Some of the dependency changes necessitated updating the minimum Python version; in particular, Publ and Authl now require Python 3.7.2 or greater. But if you’re still running Python 3.6 for some reason you’re used to things being broken or outdated.
Also, due to an impending change in Flask, the Publ API is going to have to change somewhat; the short version is that app.secret_key
will no longer be the means of configuring authentication. Most likely the config will change to get a secret_key
key within the auth
section instead. This actually makes the configuration a lot easier to deal with anyway, and I was never happy about this inconsistency. (In fact, I’m pretty sure that’s how it used to be configured until I changed it to be more Flask-like in the first place!)
It’s also possible that publ.Publ
will revert to being a function that constructs a Flask
application object, rather than being a subclass of Flask
, but I haven’t yet investigated what the implications of this change would be. I believe there are a few places in the Publ codebase which rely directly on the subclass relationship (which would be difficult to change, such as the way that the Authl instance is associated with the application), and prior to that there’s a reason I switched it from a factory to a subclass in the first place, although I can’t quite remember what it was (it was probably either something to do with the ORM’s startup behavior or something to do with Authl’s lifetime). Either way, it’ll take significant investigation, and this will be necessary before Flask 2.3 is released. (In retrospect I meant to pin Publ’s Flask requirement to <2.3.0
before I did this release, but I forgot. Oops.)
Publ v0.7.14 is now released. Changes:
Version 0.7.10 0.7.11 of Publ has been released. Not much different from 0.7.9:
whoosh
and authl
optional, to cut down on installation bloat for sites that don’t need themThe dependency changes have the potential for breaking functionality in existing sites. In order to restore full-text search and federated authentication, you’ll need to add whoosh
and authl
to your deployment options, respectively. If you’re using Poetry or another dependency manager which understands extras, you can specify the search
and auth
extras in your pyproject.toml
; for example:
[tool.poetry.dependencies] python = "^3.8" gunicorn = "^20.0.4" publ = {version = "^0.7.9", extras = ["search","auth"]} pushl = "^0.3.3" python-memcached = "^1.59"
Hopefully this is a helpful change for some people, and not too annoying for others.
Update: Until I tried to roll out a site without Authl enabled, I had failed to realize one spot where Authl was still being unconditionally imported. If you actually want to run without Authl, update to v0.7.11.
Publ v0.7.9 is out. The only change from 0.7.8 is a bugfix to fenced code blocks, which were broken by an excruciatingly subtle change to the pygments API. Oops.