Skip to content

Commit f80fc97

Browse files
authored
Implement a new plugin manager from scratch to replace Yapsy and add Python 3.12 support (Fix #3719, Fix #3725) (#3728)
1 parent b28c2bc commit f80fc97

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+733
-201
lines changed

.github/workflows/ci.yml

+5-4
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ jobs:
1515
strategy:
1616
fail-fast: false
1717
matrix:
18-
python: ['3.7', '3.8', '3.9', '3.10', '3.11']
18+
python: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
1919
image:
2020
- ubuntu-latest
2121
include:
22-
- python: '3.11'
22+
- python: '3.12'
2323
image: macos-latest
24-
- python: '3.11'
24+
- python: '3.12'
2525
image: windows-latest
2626
runs-on: '${{ matrix.image }}'
2727
steps:
@@ -84,7 +84,7 @@ jobs:
8484
strategy:
8585
matrix:
8686
python:
87-
- '3.11'
87+
- '3.12'
8888
runs-on: ubuntu-latest
8989
steps:
9090
- name: Check out code
@@ -112,6 +112,7 @@ jobs:
112112
matrix:
113113
python:
114114
- '3.11'
115+
- '3.12'
115116
runs-on: ubuntu-latest
116117
steps:
117118
- name: Check out code

CHANGES.txt

+13
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,31 @@ New in master
44
Features
55
--------
66

7+
* Implement a new plugin manager from scratch to replace Yapsy,
8+
which does not work on Python 3.12 due to Python 3.12 carelessly
9+
removing parts of the standard library (Issue #3719)
710
* Support for Discourse as comment system (Issue #3689)
811

912
Bugfixes
1013
--------
1114

15+
* Fix loading of templates from plugins with ``__init__.py`` files
16+
(Issue #3725)
1217
* Fix margins of paragraphs at the end of sections (Issue #3704)
1318
* Ignore ``.DS_Store`` files in listing indexes (Issue #3698)
1419
* Fix baguetteBox.js invoking in the base theme (Issue #3687)
1520
* Fix development (preview) server `nikola auto`
1621
for non-root SITE_URL, in particular when URL_TYPE is full_path.
1722
(Issue #3715)
1823

24+
For plugin developers
25+
---------------------
26+
27+
Nikola now requires the ``.plugin`` file to contain a ``[Nikola]``
28+
section with a ``PluginCategory`` entry set to the name of the plugin
29+
category class. This was already required by ``plugins.getnikola.com``,
30+
but you may have custom plugins that don’t have this set.
31+
1932
New in v8.2.4
2033
=============
2134

docs/internals.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ So, this is a short document explaining what each piece of Nikola does and
1515
how it all fits together.
1616

1717
Nikola is a Pile of Plugins
18-
Most of Nikola is implemented as plugins using `Yapsy <http://yapsy.sourceforge.net/>`_.
18+
Most of Nikola is implemented as plugins (using a custom plugin manager inspired by Yapsy).
1919
You can ignore that they are plugins and just think of them as regular python
2020
modules and packages with a funny little ``.plugin`` file next to them.
2121

@@ -65,7 +65,7 @@ basename:name
6565

6666
If you ever want to do your own tasks, you really should read the doit
6767
`documentation on tasks <https://pydoit.org/tasks.html>`_.
68-
68+
6969
Notably, by default doit redirects ``stdout`` and ``stderr``. To get a
7070
proper PDB debugging shell, you need to use doit's own
7171
`set_trace <https://pydoit.org/tools.html#set-trace>`_ function.

0 commit comments

Comments
 (0)