Publ: Development Blog

News and updates about Publ

Publ v0.7.5

Posted Sunday, November 14 at 1:01 PM (2 months ago)

Releasing v0.7.5 of Publ just to get some bugfixes out. Namely:

  • Update Flask to v2.0 and refactor around typing issues
  • Add missing test for path_alias_regex
  • Handle normalization collisions better
  • Don’t erroneously pre-strip markup from autosummary
  • Improve handling of pre-paragraph block tags in paragraph extractor

Publ v0.7.4, Authl v0.6.0

Posted Thursday, October 14 at 10:02 PM (3 months ago)

Released new versions of Publ and Authl today.

First, the Authl changes:

  • Fixed some test coverage
  • Changed Twitter user URLs to be stable (but less readable)
  • Added profile_url field to user profiles to make up for the Twitter URL thing

And the Publ changes:

  • Fixed image cache stale directory removal
  • Fix ETag output
  • Full-text search now properly excludes future articles
  • Added a filename normalization tool
  • Fixed an Internal Server Error that occurred from a malformed or expired bearer token (AutoAuth et al)
  • Updated to Authl 0.6.0 and made use of the new profile_url field

Publ v0.7.3

Posted Wednesday, October 6 at 1:40 AM (3 months ago)

Publ v0.7.3 is now out, with the following changes:

  • Properly handles markdown and HTML stripping in summary text
  • Improves first-paragraph extraction for OpenGraph cards
  • Reduces unnecessary image renditions for OpenGraph cards
  • Finally deprecates the AUTHL_FORCE_SSL configuration setting
  • Adds group display to the user information on the admin panel
  • Fix the PyPI listing
  • Make the image rendition cache purge mechanism actually, you know, work

Note that entry.summary now takes an optional parameter, markup, which defaults to True, for the sake of consistency with the rest of the Publ templating API. If you are using entry.summary to provide descriptive text for things (e.g. <a title="{{entry.summary}}"> or <meta name="description" content="{{entry.summary}}">) this will have to change to {{entry.summary(markup=False)}}.

Pushl v0.3.3

Posted Wednesday, September 1 at 9:08 PM (4 months ago)

Pushl has been updated, specifically to rewrite the way that feeds are parsed to avoid a problem due to feedparser internals changing in a way that made the caching mechanism stop working.

Authl v0.5.2

Posted Monday, August 30 at 10:51 PM (5 months ago)

Authl v0.5.2 is now out.


  • Fixed some caching-related issues on IndieAuth profiles
  • The IndieAuth handler now supports PKCE
  • IndieAuth takes detection priority over Fediverse
  • Authl is now compatible with Flask 2.0

Authl v0.5.1 released

Posted Sunday, August 29 at 1:24 AM (5 months ago)

I’ve just released v0.5.1 of Authl. The only functional change is adding support for actually parsing IndieAuth server response profiles (rather than just requesting one and only using the h-card), now that there’s implementations in the wild, meaning that egg has hatched into a chicken.

There were also some minor documentation cleanups since v0.5.0.

Publ v0.7.2, Authl v0.5.0

Posted Thursday, July 8 at 8:56 PM (6 months ago)

Big new releases for Publ and Authl!

Publ changes:

Authl changes:

  • Improve the meta robots rules on the login form
  • Add IndieWeb endpoint discovery to the profile

SQLite vs. Postgres, at a glance

Posted Wednesday, May 5 at 11:28 AM (8 months ago)

There’s a general belief that SQLite is a “slow” database and Postgres is “fast,” and many software packages (including FOSS) insist that SQLite is only suitable for testing and doesn’t scale. However, this doesn’t make much sense when you think about it; SQLite is an in-process database so there’s no communications overhead between the service and the database, and because it’s only designed to be accessed from a single process it can make use of optimistic locking to speed up transactions.

Since I was installing postgres for another purpose on my webserver, I decided to quickly see if Publ performs better on Postgres vs SQLite. To test the performance I compared the timing for my website on both doing a full site reindex, and rendering the Atom feed several times (using the debug Flask server and caching disabled).

v0.7.0 finally released

Posted Saturday, January 9 at 9:43 PM (a year ago)

It took me way longer than I should have, but I finally decided to bump the minor version of Publ to 0.7.0.

My original intention was to only do that after getting the unit test coverage up to 90%, then to 80%, then to 50%… but it’s at 45% and that’s Good Enough I guess. I’d still like to get some proper automated testing in place for the bits that are tricky to test but with a system as complex as Publ it’s not particularly clear how to do a lot of that. The main issue is a fundamental mismatch between how the underlying ORM works vs. how unit testing is supposed to work, and I’ve so far been unable to square that circle. But maybe someday I’ll get the test coverage number up where I want it to be.

In any case, the only actual code change since 0.6.14 was some fixes to how page redirection works, especially around private entries.