chiark / gitweb /
blog.git
3 years agodocumentation/doxygen: silence a warning.
Vladimír Vondruš [Sun, 9 Jan 2022 22:46:57 +0000 (23:46 +0100)]
documentation/doxygen: silence a warning.

Hopefully this wasn't omitted there for some testing purpose.

3 years agodocumentation/doxygen: ah so that's why the warning is uncovered.
Vladimír Vondruš [Sun, 9 Jan 2022 22:45:36 +0000 (23:45 +0100)]
documentation/doxygen: ah so that's why the warning is uncovered.

Because 1.8.16+ just directly drops the whole <dotfile> tag if the
source doesn't exist. What a marvellous idea!!!

3 years agodocumentation/doxygen: fix Doxygen warning.
Vladimír Vondruš [Sun, 9 Jan 2022 20:40:40 +0000 (21:40 +0100)]
documentation/doxygen: fix Doxygen warning.

Funnily enough this doesn't make the multiline brief bug go away. So
what's even the point of checking those, Doxygen?!

3 years agodocumentation/doxygen: explicitly check for warning logs.
Vladimír Vondruš [Sun, 9 Jan 2022 18:32:30 +0000 (19:32 +0100)]
documentation/doxygen: explicitly check for warning logs.

The output was quite a mess already, and that's just because I didn't
know about assertLogs() until now.

3 years agodocumentation/doxygen: Doxygen 1.9.3 warns about \return for void.
Vladimír Vondruš [Sun, 9 Jan 2022 18:25:46 +0000 (19:25 +0100)]
documentation/doxygen: Doxygen 1.9.3 warns about \return for void.

And quite intensely. Don't do that, then.

3 years agodocumentation/doxygen: since 1.9.2, HAVE_DOT has to be explicitly set.
Vladimír Vondruš [Sun, 9 Jan 2022 18:14:14 +0000 (19:14 +0100)]
documentation/doxygen: since 1.9.2, HAVE_DOT has to be explicitly set.

Kinda silly to require that even for the XML output, where Graphviz
doesn't actually need to be used at all -- the content/files are pasted
verbatim.

3 years agodocumentation/doxygen: robustly skip unexpected XML files.
Vladimír Vondruš [Sun, 9 Jan 2022 18:01:59 +0000 (19:01 +0100)]
documentation/doxygen: robustly skip unexpected XML files.

This skips the Doxyfile.xml from 1.8.19 (without a warning, to avoid
polluting the output for everyone running newer Doxygen), and
additionally also all other files that don't have the expected root or
immediately following tags (with a warning, because that's likely
something to act on).

These checks used to be inconsistent between extract_metadata() and
parse_xml() (resulting extract_metadata() to continuing further and
dying on some other exception, sigh) and also was an assert instead of a
graceful handling.

A new test case is added to verify that all expected messages are
printed, all unexpected files are skipped but also the expected files
are not skipped. The warnings/errors are also printed just once, not
once during metadata extraction and once during actual page generation.

Co-authored-by: crf8472 <crf8472@web.de>
Co-authored-by: SRGDamia1 <sdamiano@stroudcenter.org>
3 years agodocumentation/doxygen: adapt test output for silly 1.8.18 differences.
Vladimír Vondruš [Sun, 9 Jan 2022 21:43:13 +0000 (22:43 +0100)]
documentation/doxygen: adapt test output for silly 1.8.18 differences.

Is this a random order? FFS.

3 years agodocumentation/doxygen: all strikethroughs are supported only in 1.8.17.
Vladimír Vondruš [Sun, 9 Jan 2022 21:20:06 +0000 (22:20 +0100)]
documentation/doxygen: all strikethroughs are supported only in 1.8.17.

3 years agodocumentation/doxygen: don't set a config value twice in the test.
Vladimír Vondruš [Sun, 9 Jan 2022 21:19:38 +0000 (22:19 +0100)]
documentation/doxygen: don't set a config value twice in the test.

3 years agodocumentation/doxygen: 1.8.16 doesn't support subpages of index.
Vladimír Vondruš [Sun, 9 Jan 2022 21:18:27 +0000 (22:18 +0100)]
documentation/doxygen: 1.8.16 doesn't support subpages of index.

These just aren't marked as such. So skip the direct test and rewrite
the other to not accidentally use this functionality.

3 years agopackage/ci: test against Doxygen 1.8.16 and 1.8.18 as well.
Vladimír Vondruš [Sun, 9 Jan 2022 20:45:46 +0000 (21:45 +0100)]
package/ci: test against Doxygen 1.8.16 and 1.8.18 as well.

Preparing for the final boss which is 1.9, but!

 * 1.8.13 downloads and runs fine, but there's way too many test
   failures and I'm not ready for these. Probably will just drop the
   support eventually.
 * 1.8.14 to 1.8.15 links to libclang.so.6, which is not a thing on
   Ubuntu 18.14. I suppose this is because SOMEBODY built the damn
   release binary on their own PC, instead of in an old enough sandboxed
   environment, HA?!
 * 1.8.16 and 1.8.17 work, just a bunch of fixes needed to make test
   pass on .16.
 * 1.8.18 works, except it relies on some silly libtinfo.so.5 that I had
   to install.

3 years agoUpdate copyright year.
Vladimír Vondruš [Sun, 9 Jan 2022 16:23:16 +0000 (17:23 +0100)]
Update copyright year.

Pro Tip: if you update only once every two years, you save 50% of the
work! 50%!!!!

3 years agodocumentation: expose search data packing options.
Vladimír Vondruš [Sun, 9 Jan 2022 15:52:26 +0000 (16:52 +0100)]
documentation: expose search data packing options.

There are new SEARCH_RESULT_ID_BYTES, SEARCH_FILE_OFFSET_BYTES and
SEARCH_NAME_SIZE_BYTES options exposed in both Doxygen and Python doc
generator. Because they affect some internals that the regular user
shouldn't need to care about and don't reflect anything tangible like
project symbol count, they're not really documented.

On the other hand, they can't really be estimated beforehand The
estimator would either overestimate, leading to files larger than they
could be, or it underestimates, leading to random corner cases that
would be impossible to track down. Thus the project just starts with the
small sizes and if they're not enough, an exception with a (hopefully
helpful-enough) message is raised, suggesting users to adjust their
config.

3 years agodocumentation: parametrize the search binary data type sizes.
Vladimír Vondruš [Sat, 8 Jan 2022 19:49:26 +0000 (20:49 +0100)]
documentation: parametrize the search binary data type sizes.

Needed in order to support more than 65k symbols or files larger than 16
MB. What I thought was "more than enough" during the initial design was
quickly stepped over by various projects, including my own Magnum Python
bindings.

To avoid having to either maintain two separate formats and two separate
en/decoders or needlessly inflate the format for everyone, certain data
types are parametrized based on how large the data is:

 * RESULT_ID_BYTES describes how many bytes is needed to store result
   IDs. By default it's 2 (so 65536 results) but can be also 3 (16M
   results) or 4.
 * FILE_OFFSET_BYTES describes how many bytes is needed to store file
   offsets. By default it's 3 (so 16 MB), but can be also 4.
 * NAME_SIZE_BYTES describes how many bytes is needed to store various
   name lengths (prefix, suffix lengths etc). By default it's 1 (so 256
   bytes at most), but can be also 2.

At first I tried to preserve 32-bit alignment as much as possible, but
eventually realized this is completely unimportant in the browser
environment -- there's other much worse performance pitfalls than
reading an unaligned value. This is also why there are 24-bit integer
types, even though they're quite annoying to pack from Python.

Furthermore, the original hack to reserve 11 bits for result count at
the cost of having only 4 bits for child count was changed to instead
expand the result count to a 15-bit value if there's > 127 results. Some
endianness tricks involved, but much cleaner than before. I briefly
considered having a global RESULT_COUNT_BYTES parameter as well, but
considering >90% of result counts fit into 8 bits and this is only for
weird outliers like Python __init__(), it would be a giant waste of
precious bytes.

The minor differences in the test file sizes are due to:

 * The header expanding symbol count from 16 to 32 bits (+2B)
 * The header containing type description and associated padding (+4B)
 * The result map no longer packing flags and offsets together, thus
   saving one byte from flags (-1B)

To ensure there's no hardcoded type size assumptions anymore, the tests
now go through all type size combinations.

3 years agom.htmlsanity: fix an exception raised for .. contents:: with a title.
Vladimír Vondruš [Sun, 9 Jan 2022 11:50:50 +0000 (12:50 +0100)]
m.htmlsanity: fix an exception raised for .. contents:: with a title.

I have a hunch I was looking at this corner case, but of course forgot
to actually try it out. Extending the test to prevent this from
regressing again in the future.

3 years agodocumentation: doc++
Vladimír Vondruš [Sat, 8 Jan 2022 21:34:11 +0000 (22:34 +0100)]
documentation: doc++

3 years agodocumentation: properly calculate child offset for 11bit result counts.
Vladimír Vondruš [Sat, 8 Jan 2022 20:51:24 +0000 (21:51 +0100)]
documentation: properly calculate child offset for 11bit result counts.

Instead of fetching the exact same value twice and then forgetting to
patch it in one case, let's just reuse the patched value.

Hmmmm, this was a bug! And no tests caught it! Though, it was rather
unlikely to be hit in practice as the 100+th result would be cut away,
thus not even giving the user a hint to type futther.

3 years agodocumentation: trie pretty printing didn't handle the 11bit special case.
Vladimír Vondruš [Sat, 8 Jan 2022 18:20:29 +0000 (19:20 +0100)]
documentation: trie pretty printing didn't handle the 11bit special case.

Better to have it tested directly, and not only through the JS
decoder part.

3 years agodocumentation: refresh search binary data layout docs a bit.
Vladimír Vondruš [Thu, 6 Jan 2022 16:06:23 +0000 (17:06 +0100)]
documentation: refresh search binary data layout docs a bit.

3 years agoUpdated CREDITS.rst.
Vladimír Vondruš [Thu, 6 Jan 2022 11:53:02 +0000 (12:53 +0100)]
Updated CREDITS.rst.

3 years agocss: consistently use pseudo-elements `::before` and `::after`
Josh [Fri, 12 Nov 2021 21:47:35 +0000 (14:47 -0700)]
css: consistently use pseudo-elements `::before` and `::after`

3 years agocss, m.htmlsanity: use a <div> for .m-figure-description.
Vladimír Vondruš [Thu, 6 Jan 2022 11:04:30 +0000 (12:04 +0100)]
css, m.htmlsanity: use a <div> for .m-figure-description.

I can't read, apparently. Thought that the "flow content" on MDN doesn't
allow any block elements, only inline, but it does. So there's no need
to put a stupid <span> there and then try to make a block element out of
it via CSS again.

3 years agodocumentation: disable autocompletion with Android virtual keyboards.
Vladimír Vondruš [Wed, 5 Jan 2022 14:58:57 +0000 (15:58 +0100)]
documentation: disable autocompletion with Android virtual keyboards.

Amazing, eh... wouldn't have thought that the virtual keyboard and the
mobile flavors of common browsers are SO CURSED that it's plain
impossible to achieve anything remotely usable in there. FFS.

3 years agodocumentation/python: improve pybind docstring parsing robustness.
Vladimír Vondruš [Wed, 5 Jan 2022 21:54:46 +0000 (22:54 +0100)]
documentation/python: improve pybind docstring parsing robustness.

It can't be ever made ideal since the output is not really meant to be
machine-readable, but expecting overload headers to be always at the
start of a new paragraph should hopefully rule out most accidental
matches.

3 years agodocumentation/python: try breaking the pybind11 docstring parser.
Vladimír Vondruš [Wed, 5 Jan 2022 21:43:06 +0000 (22:43 +0100)]
documentation/python: try breaking the pybind11 docstring parser.

Yeah, not really great.

3 years agodocumentation/python: use full pybind11 docstrings.
Sergei Izmailov [Tue, 30 Jun 2020 12:44:00 +0000 (15:44 +0300)]
documentation/python: use full pybind11 docstrings.

3 years agodocumentation/python: add a test with full pybind11 docstrings.
Vladimír Vondruš [Wed, 5 Jan 2022 21:26:44 +0000 (22:26 +0100)]
documentation/python: add a test with full pybind11 docstrings.

Those get currently ignored.

3 years agom.htmlsanity: render TOC as a <nav> instead of <aside>.
Vladimír Vondruš [Wed, 5 Jan 2022 20:51:15 +0000 (21:51 +0100)]
m.htmlsanity: render TOC as a <nav> instead of <aside>.

3 years agodocumentation/python: use <nav> instead of <div> for the TOC.
Vladimír Vondruš [Wed, 5 Jan 2022 19:09:04 +0000 (20:09 +0100)]
documentation/python: use <nav> instead of <div> for the TOC.

3 years agodocumentation/doxygen: use <nav> instead of <div> for the TOC.
Vladimír Vondruš [Wed, 5 Jan 2022 19:00:17 +0000 (20:00 +0100)]
documentation/doxygen: use <nav> instead of <div> for the TOC.

3 years agodocumentation/python: ignore enum values when checking for duplicates.
Vladimír Vondruš [Wed, 5 Jan 2022 18:18:36 +0000 (19:18 +0100)]
documentation/python: ignore enum values when checking for duplicates.

The test now passes again.

3 years agodocumentation/python: test checking for duplicates with enums present.
Vladimír Vondruš [Wed, 5 Jan 2022 18:17:42 +0000 (19:17 +0100)]
documentation/python: test checking for duplicates with enums present.

This asserts because the enum entries don't have the .object property.
Fix in the next commit.

3 years agodocumentation: minor cleanup.
Vladimír Vondruš [Wed, 5 Jan 2022 14:45:47 +0000 (15:45 +0100)]
documentation: minor cleanup.

3 years agodocumentation/doxygen: test that direct HTML embedding works.
Vladimír Vondruš [Tue, 4 Jan 2022 20:17:22 +0000 (21:17 +0100)]
documentation/doxygen: test that direct HTML embedding works.

It should since 1.8.18.

3 years agom.htmlsanity: work around FF misbehavior in <figure> printing.
Vladimír Vondruš [Tue, 4 Jan 2022 19:14:12 +0000 (20:14 +0100)]
m.htmlsanity: work around FF misbehavior in <figure> printing.

Counterpart to the previous commit. Done only if the figure has a
.m-figure CSS class, as that's where the Firefox bug is triggered due to
the `display: table-caption` -- code figures and console figures are
unaffected.

There's still a bit of potential future work where the figure
description shouldn't have any block-level elements. But that doesn't
trigger any rendering bugs so not so important.

3 years agocss: work around Firefox-specific behavior with .m-figure.
Vladimír Vondruš [Tue, 4 Jan 2022 18:54:09 +0000 (19:54 +0100)]
css: work around Firefox-specific behavior with .m-figure.

The `.m-figure > *` has `display: table-caption;` to make overlong
content wrap to width of the image, instead of pushing out the figure
border. However, this makes Firefox render just the first element and
ignore everything after, thus the original figure descriptions weren't
visible in Firefox, only in Chrome.

Because HTML5 says <figcaption> has to be right inside <figure>, I can't
wrap the caption together with other content in a <span>, although that
would make Firefox render things properly. Instead I'm nesting all
description inside <figcaption> in a .m-figure-description, which then
reverts all styling applied for <figcaption>. Kinda ew, but works.

Originally this was reported for just image figures, but the same
problem applies to math and graph figures as well. Not for code/console
figure though, as those don't have `display: table-caption;` and instead
span the whole width always.

This has to be fixed in m.htmlsanity as well, doing that in a separate
commit as it's a bit involved as well.

3 years agoDrop support for Graphviz < 2.40.
Vladimír Vondruš [Tue, 4 Jan 2022 19:25:24 +0000 (20:25 +0100)]
Drop support for Graphviz < 2.40.

Mostly an inheritance of the old Travis CI images. CircleCI has Graphviz
2.42.2 which has the output consistent with 2.44, and Ubuntu 18.04 has
Graphviz 2.40.1, so that's the oldest reasonable minimum to care about.

3 years agom.htmlsanity: don't rely on .m-transition, again.
Vladimír Vondruš [Tue, 4 Jan 2022 19:00:56 +0000 (20:00 +0100)]
m.htmlsanity: don't rely on .m-transition, again.

Followup to 3f7b8501c98bfead4047f397a527e096ac75e26a. Was fixed in one
place but not in the other. Also add a clarifying comment.

3 years agodocumentation/python: drop pybind11 2.2 support.
Vladimír Vondruš [Tue, 4 Jan 2022 15:14:34 +0000 (16:14 +0100)]
documentation/python: drop pybind11 2.2 support.

Version 2.3 is the oldest supported now. It got released in Oct 2019 and
there were a bunch of extra hacks needed for 2.2. Ubuntu 18.04 has 2.0.1
which isn't feasible to be supported either, but 20.04 already has 2.4,
so staying at 2.3 at a minimum is good enough I'd say.

3 years agom.htmlsanity: adapt to changes in docutils 0.18+.
Vladimír Vondruš [Tue, 4 Jan 2022 15:08:15 +0000 (16:08 +0100)]
m.htmlsanity: adapt to changes in docutils 0.18+.

And explicitly test for 0.14, 0,17.1 and 0.18.0 on the CI.

3 years agoUpdated CREDITS.md.
Vladimír Vondruš [Tue, 4 Jan 2022 13:11:37 +0000 (14:11 +0100)]
Updated CREDITS.md.

3 years agom.htmlsanity: change transitions into Docutils transition nodes.
William JCM [Tue, 13 Apr 2021 13:36:30 +0000 (15:36 +0200)]
m.htmlsanity: change transitions into Docutils transition nodes.

3 years agom.htmlsanity, m.components: expand transition tests.
Vladimír Vondruš [Tue, 4 Jan 2022 13:06:08 +0000 (14:06 +0100)]
m.htmlsanity, m.components: expand transition tests.

The m.css .. transition:: directive should behave the same as builtin
transitions, but it doesn't. Fix in the next commit.

3 years agodocumentation: this import isn't needed.
Vladimír Vondruš [Mon, 3 Jan 2022 19:18:41 +0000 (20:18 +0100)]
documentation: this import isn't needed.

3 years agodocumentation/*: add a SEARCH_FILENAME_PREFIX option.
Vladimír Vondruš [Mon, 3 Jan 2022 19:13:20 +0000 (20:13 +0100)]
documentation/*: add a SEARCH_FILENAME_PREFIX option.

Allows to override the search data filename, which is useful when both
Python and C++ documentation shares the same directory. Otherwise both
would use the same search data filename and overwrite each other's data.

3 years agom.plots: update to work with matplotlib 3.5 as well.
Vladimír Vondruš [Mon, 3 Jan 2022 18:21:22 +0000 (19:21 +0100)]
m.plots: update to work with matplotlib 3.5 as well.

The major change in 3.5 is that the attributes have a different order
and styles have more whitespace and less semicolons. To avoid explosion
of find/replace patterns, the search strings were converted to regexps
-- which on the other hand allowed me to drop some duplicates, and
discard the font name replacement altogether.

On the CI I'm now using the latest version on Python 3.8+, 3.7 stays on
3.4 to avoid regressions on that versions, and 3.6 on 3.3 which is also
a bit different.

3 years agodocumentation/python: don't try to parse pybind objects as enums.
Vladimír Vondruš [Mon, 3 Jan 2022 16:42:57 +0000 (17:42 +0100)]
documentation/python: don't try to parse pybind objects as enums.

Followup to c6707e1c85a46e8848ebca077ec60eeb27eb5aab, forgot to test on
a real-world codebase early enough. And then of course forgot to handle
a corner case when accounting for that real-world scenario.

3 years agopackage/ci: doc++
Vladimír Vondruš [Mon, 3 Jan 2022 12:40:22 +0000 (13:40 +0100)]
package/ci: doc++

3 years agopackage/ci: test for Pelican 4.2 on the Py3.6 image.
Vladimír Vondruš [Mon, 3 Jan 2022 12:30:24 +0000 (13:30 +0100)]
package/ci: test for Pelican 4.2 on the Py3.6 image.

3 years agodocumentation/python: adapt for attrs 20.1+.
Vladimír Vondruš [Mon, 3 Jan 2022 12:22:45 +0000 (13:22 +0100)]
documentation/python: adapt for attrs 20.1+.

Also starting to use the 3.6 CI job to test hacks for older packages.

3 years agom.plots: adapt to changes in matplotlib 3.4.
Vladimír Vondruš [Mon, 3 Jan 2022 11:39:59 +0000 (12:39 +0100)]
m.plots: adapt to changes in matplotlib 3.4.

Version 3.5 is a whole other beast (different order of XML attributes
altogether), will need to be handled in a separate step.

3 years agopackage/ci: now that attrs are needed always, handle them in one place.
Vladimír Vondruš [Mon, 3 Jan 2022 11:20:42 +0000 (12:20 +0100)]
package/ci: now that attrs are needed always, handle them in one place.

It was done this way because Python doc generator wasn't working on
Python 3.5. But 3.5 is no longer tested for.

3 years agoFix minor typo in doxygen.rst
Luke Peterson [Sat, 29 May 2021 21:53:41 +0000 (14:53 -0700)]
Fix minor typo in doxygen.rst

3 years agom.htmlsanity: update tests for Pyphen 0.10+.
Vladimír Vondruš [Mon, 3 Jan 2022 00:45:51 +0000 (01:45 +0100)]
m.htmlsanity: update tests for Pyphen 0.10+.

I like the output less, but what can I do. Not in my power to change.
The only relevant difference in the changelog from Pyphen 0.9.5 to 0.10
is a dictionary update, so I guess that's what did it. Shrug.

3 years agom.images: properly close images opened with PIL.
Vladimír Vondruš [Mon, 3 Jan 2022 00:39:35 +0000 (01:39 +0100)]
m.images: properly close images opened with PIL.

Python 3.10 yells at me if I don't. Useful warning. (Ahah, C++ and your
sane scoping rules, I miss you.)

3 years agom.qr: update test files for qrcode >= 7.1.
Vladimír Vondruš [Sun, 2 Jan 2022 23:59:02 +0000 (00:59 +0100)]
m.qr: update test files for qrcode >= 7.1.

It changed from an inline style to separate attributes. Luckily all
platforms I test on have pip with 7.1 available, so I don't need to
branch out even further with the test files.

3 years agodocumentation/python: support insane pybind 2.6 enum printing.
Vladimír Vondruš [Sun, 2 Jan 2022 23:46:59 +0000 (00:46 +0100)]
documentation/python: support insane pybind 2.6 enum printing.

What the hell, why.

3 years agodocumentation/python: improve error reporting in pybind signature parser.
Vladimír Vondruš [Sun, 2 Jan 2022 23:45:36 +0000 (00:45 +0100)]
documentation/python: improve error reporting in pybind signature parser.

The exceptions were mostly there, but the text got lost at the end!
Silly.

3 years agodocumentation/python: expand pybind default enum argument tests.
Vladimír Vondruš [Sun, 2 Jan 2022 23:06:27 +0000 (00:06 +0100)]
documentation/python: expand pybind default enum argument tests.

To verify also a case with an enum nested in a pair (which won't get
linked to because we're not *that* advanced yet).

3 years agodocumentation/python: typing.Generic.__new__() is gone in 3.9.
Vladimír Vondruš [Sun, 2 Jan 2022 21:21:50 +0000 (22:21 +0100)]
documentation/python: typing.Generic.__new__() is gone in 3.9.

3 years agodocumentation/python: implicit TypeVar for typing.List was only in 3.7/8.
Vladimír Vondruš [Sun, 2 Jan 2022 20:53:34 +0000 (21:53 +0100)]
documentation/python: implicit TypeVar for typing.List was only in 3.7/8.

If I say typing.List, only Python 3.7 and 3.8 converted that to
typing.List[T], 3.6, 3.9 and 3.10 keep typing.List.

3 years agom.qr: actually, the difference is *also* due to Python versions.
Vladimír Vondruš [Sun, 2 Jan 2022 20:18:34 +0000 (21:18 +0100)]
m.qr: actually, the difference is *also* due to Python versions.

Somehow the attributes have different order, generating a MONSTROUS
difference.

Heh! Why! Why do I have to suffer this much all the time.

3 years agopackage/ci: haaaaaaaaaaaahhhh docutils also.
Vladimír Vondruš [Sun, 2 Jan 2022 19:51:26 +0000 (20:51 +0100)]
package/ci: haaaaaaaaaaaahhhh docutils also.

Just half a day and I already miss the stability of C++ development.
FFS.

3 years agom.dot, documentation/*: use graphviz 2.44 output for 2.42.2 also.
Vladimír Vondruš [Sun, 2 Jan 2022 19:16:50 +0000 (20:16 +0100)]
m.dot, documentation/*: use graphviz 2.44 output for 2.42.2 also.

Hope this finally makes the CI pass.

3 years agopackage/ci: use older Pygments until I update the test files.
Vladimír Vondruš [Sun, 2 Jan 2022 19:08:03 +0000 (20:08 +0100)]
package/ci: use older Pygments until I update the test files.

3 years agopackage/ci: use older qrcode package until I update the regexes.
Vladimír Vondruš [Sun, 2 Jan 2022 18:52:07 +0000 (19:52 +0100)]
package/ci: use older qrcode package until I update the regexes.

3 years agopackage/ci: drop Python 3.5 testing, add 3.8 to 3.10.
Vladimír Vondruš [Sun, 2 Jan 2022 17:53:10 +0000 (18:53 +0100)]
package/ci: drop Python 3.5 testing, add 3.8 to 3.10.

Python 3.5 was EOL'd in September 2020 and support for it is being
removed from major packages like pybind. It was also the only version
on which neither the Doxygen nor Python doc generator worked due to lack
of typing annotations, and since those two are the major use cases, I
don't think there's many users relying still on 3.5.

Python 3.6 was EOL'd in December 2021 so *technically* I could drop it
as well, however Ubuntu 18.04 LTS still has it as the default version so
it's good to keep it. I don't really need to use any 3.7-specific
features yet either, so this isn't a problem.

3 years agopelican-theme, m.code, m.dot: make stuff finally work on Pelican 4.5.1+.
Vladimír Vondruš [Sun, 2 Jan 2022 16:29:27 +0000 (17:29 +0100)]
pelican-theme, m.code, m.dot: make stuff finally work on Pelican 4.5.1+.

Since Pelican 4.5 moved to "namespace plugins", the way plugins are
loaded is different and thus the root plugins/ directory is not in PATH
anymore, leading to errors like

    No module named 'ansilexer'
    No module named 'latex2svg'

After spending a bit of time looking into how "namespace plugins" are, I
decided to stay with what they say "legacy plugins" because that doesn't
require me to move everything into a pelican.plugins namespace and thus
allows me to reuse the exact same file for plugins to other m.css tools
like the Python doc generator.

Version 4.5.0 had loading of namespaced plugins (the `m.` here) broken
completely, which is why the CI got pinned to 4.2. With 4.5.1 it started
working again and due to how the tests were executed the PATH issues
weren't hit either, leading me to a false sense of security that
everything works again on 4.5.1, while it wasn't. This fix is the final
piece to make everything work again. Sorry that it took over a year to
get in.

Co-authored-by: Lukas Pirl <git@lukas-pirl.de>
3 years agom.plots: fix a deprecation warning with matplotlib 3.5.
Vladimír Vondruš [Sun, 2 Jan 2022 12:15:58 +0000 (13:15 +0100)]
m.plots: fix a deprecation warning with matplotlib 3.5.

It complains that "Support for setting an rcParam that expects a str
value to a non-str value is deprecated since 3.5 and support will be
removed two minor releases later."

3 years agodocumentation/python: minor.
Vladimír Vondruš [Sun, 2 Jan 2022 12:09:48 +0000 (13:09 +0100)]
documentation/python: minor.

Those values are already available, so don't calculate them again.

3 years agodoc: clarify the same for m.images default options.
Vladimír Vondruš [Sun, 2 Jan 2022 12:08:47 +0000 (13:08 +0100)]
doc: clarify the same for m.images default options.

3 years agodoc: not everyone may like hyphenation or smart quotes.
Vladimír Vondruš [Sun, 2 Jan 2022 12:07:19 +0000 (13:07 +0100)]
doc: not everyone may like hyphenation or smart quotes.

Plus hyphenation requires extra packages, so don't suggest it by default
-- but clarify that those actually *are* the defaults and so the user
can omit them.

3 years agodocumentation/python: ensure all plugin hooks are always tested.
Vladimír Vondruš [Sun, 2 Jan 2022 12:06:08 +0000 (13:06 +0100)]
documentation/python: ensure all plugin hooks are always tested.

3 years agodocumentation/doxygen: recognize also <s> and <del> tags.
Vladimír Vondruš [Sun, 2 Jan 2022 11:49:13 +0000 (12:49 +0100)]
documentation/doxygen: recognize also <s> and <del> tags.

Followup to 12e0081a093ecf5e9dc287c549b4b521d45a2b6b.

3 years agodocumentation/doxygen: allow \xrefitem with numbers in the middle.
Vladimír Vondruš [Sun, 2 Jan 2022 11:39:16 +0000 (12:39 +0100)]
documentation/doxygen: allow \xrefitem with numbers in the middle.

In Magnum I used to have \xrefitem aliases such as \requires_gles20 so
the current regex worked, but when adding \requires_gles20_only it
didn't work anymore. Such a stupid oversight, sorry to whoever else
tripped up on that as well.

Not updating any test case because regexes are write only anyway.

4 years agodoc: mention m-clearfix also for floating elements.
Vladimír Vondruš [Mon, 10 May 2021 13:06:04 +0000 (15:06 +0200)]
doc: mention m-clearfix also for floating elements.

That's where people will use it the most. Funnily enough the clearfix
already had to be used in the markup, so that's one more reason to
just put it directly in the snippet.

4 years agodoc: clarify naming for such an important option.
Vladimír Vondruš [Mon, 12 Apr 2021 13:47:04 +0000 (15:47 +0200)]
doc: clarify naming for such an important option.

Even I don't remember how it's meant to be named anymore, sigh.

4 years agopackage/ci: NOTHING IS EVER SIMPLE.
Vladimír Vondruš [Tue, 6 Apr 2021 18:51:58 +0000 (20:51 +0200)]
package/ci: NOTHING IS EVER SIMPLE.

G'damit, can I just make the test run first *and only then* go on with
upgrading all the shit that broke in the few months while I was not
looking?!

4 years agopackage/ci: run tests verbose so it's clear what got skipped.
Vladimír Vondruš [Tue, 6 Apr 2021 18:40:32 +0000 (20:40 +0200)]
package/ci: run tests verbose so it's clear what got skipped.

4 years agopackage/ci: install attrs as well.
Vladimír Vondruš [Tue, 6 Apr 2021 18:40:13 +0000 (20:40 +0200)]
package/ci: install attrs as well.

Got a slight drop in coverage due to that.

4 years agom.dot: update graphviz 2.40 ground truth file.
Vladimír Vondruš [Tue, 6 Apr 2021 17:26:58 +0000 (19:26 +0200)]
m.dot: update graphviz 2.40 ground truth file.

I'll just assume it's correct.

4 years agopackage/ci: eugh everything is an unstable pool of mud.
Vladimír Vondruš [Tue, 6 Apr 2021 18:27:13 +0000 (20:27 +0200)]
package/ci: eugh everything is an unstable pool of mud.

4 years agopackage/ci: migrate to CircleCI.
Vladimír Vondruš [Tue, 6 Apr 2021 16:37:19 +0000 (18:37 +0200)]
package/ci: migrate to CircleCI.

Thanks, Travis, for being silent for three months straight. Fuck that
"service".

4 years agoAdd .yml files to .editorconfig.
Vladimír Vondruš [Tue, 6 Apr 2021 16:36:56 +0000 (18:36 +0200)]
Add .yml files to .editorconfig.

4 years agom.htmlsanity: drop Flash-related code and fix compat with docutils 0.17.
Vladimír Vondruš [Tue, 6 Apr 2021 15:28:45 +0000 (17:28 +0200)]
m.htmlsanity: drop Flash-related code and fix compat with docutils 0.17.

That thing is DEAD so there's no reason to bother. This changed in
docutils 0.17, making the current version fail there. Funnily enough,
https://github.com/live-clones/docutils/commit/659c3f1e46f0c86609936c987b7e2a7a6ef89cb2
looks like they still seem to preserve that somehow. I won't, so all the
related code isn't needed.

The code here was originally taken from docutils but diverged
significantly and given that they still use the deprecated width/height
attribute I see no reason to even attempt cherry-picking their changes.

4 years agom.dot: support subgraphs.
Vladimír Vondruš [Sun, 8 Nov 2020 15:26:37 +0000 (16:26 +0100)]
m.dot: support subgraphs.

4 years agodocumentation/doxygen: add a human-readable assert here.
Vladimír Vondruš [Sat, 7 Nov 2020 17:28:22 +0000 (18:28 +0100)]
documentation/doxygen: add a human-readable assert here.

4 years agoUpdate CREDITS.rst.
Vladimír Vondruš [Sat, 7 Nov 2020 17:27:04 +0000 (18:27 +0100)]
Update CREDITS.rst.

4 years agoSimplify formatting of ANSI-highlighted code
Blair Conrad [Wed, 10 Jun 2020 11:31:33 +0000 (07:31 -0400)]
Simplify formatting of ANSI-highlighted code

4 years agoOmit superfluous g-AnsiDefault, g-AnsiBackgroundDefault classes
Blair Conrad [Wed, 10 Jun 2020 11:31:33 +0000 (07:31 -0400)]
Omit superfluous g-AnsiDefault, g-AnsiBackgroundDefault classes

4 years agoAdd missing background styles
Blair Conrad [Wed, 10 Jun 2020 11:31:33 +0000 (07:31 -0400)]
Add missing background styles

4 years agoCorrect comment regarding bright background colors
Blair Conrad [Wed, 10 Jun 2020 11:31:33 +0000 (07:31 -0400)]
Correct comment regarding bright background colors

4 years agodoc: update outdated Doxygen version requirement notices.
Vladimír Vondruš [Sat, 7 Nov 2020 16:52:56 +0000 (17:52 +0100)]
doc: update outdated Doxygen version requirement notices.

4 years agopackage/ci: go back to Pyphen 0.9.5.
Vladimír Vondruš [Sat, 7 Nov 2020 16:38:01 +0000 (17:38 +0100)]
package/ci: go back to Pyphen 0.9.5.

As usual, every upgrade of every package breaks something.

4 years agoUpdated CREDITS.rst.
Vladimír Vondruš [Sat, 7 Nov 2020 16:33:03 +0000 (17:33 +0100)]
Updated CREDITS.rst.

4 years agoUpdate pagination Pelican template.
Guillaume Jacquemin [Sun, 5 Jul 2020 11:12:05 +0000 (13:12 +0200)]
Update pagination Pelican template.

The template was hardcoded for the default reversed date ordering of
articles.

4 years agoFix doxygen base path resolution.
Marin [Tue, 15 Sep 2020 14:30:26 +0000 (16:30 +0200)]
Fix doxygen base path resolution.

Use top-level doxygen path as base path. In case of recursive descent,
don't allow base path to be overriden.

4 years agodoc: cross-link the Doxygen Show Undocumented option from more places.
Vladimír Vondruš [Sat, 7 Nov 2020 15:59:38 +0000 (16:59 +0100)]
doc: cross-link the Doxygen Show Undocumented option from more places.

4 years agodoc: document what to do in Doxyfile for nice graphviz look.
Vladimír Vondruš [Sat, 7 Nov 2020 15:59:11 +0000 (16:59 +0100)]
doc: document what to do in Doxyfile for nice graphviz look.