Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Latex: Figures with no size defined get overscaled #8253

Closed
Blendify opened this issue Sep 29, 2020 · 6 comments
Closed

Latex: Figures with no size defined get overscaled #8253

Blendify opened this issue Sep 29, 2020 · 6 comments
Assignees
Milestone

Comments

@Blendify
Copy link
Contributor

Describe the bug
When generating a latex/pdf output figures get scaled up too much if the they have no size defined. Instead the image should only be scaled to its natural size (the size in px from the image file) or scaled to the page width if the image file size is too big.

To Reproduce
Rst file

.. figure:: /some/image.png

   Caption.

.. figure:: /some/image.png
  :width: 200px

   Caption.

image.png is 200px wide.

Expected behavior
The results should be the same for the two images

Your project
https://svn.blender.org/svnroot/bf-manual/trunk/blender_docs/

Screenshots
If applicable, add screenshots to help explain your problem.
image

Environment info

  • OS: Ubuntu
  • Python version: 3.8
  • Sphinx version: 3.2.1
  • Sphinx extensions: none
  • Extra tools: texlive-xetex latexmk
@jfbu jfbu self-assigned this Jan 24, 2021
@jfbu
Copy link
Contributor

jfbu commented Jan 24, 2021

Sorry for late, will look into it.

@jfbu
Copy link
Contributor

jfbu commented Jan 24, 2021

This is at any rate inherited from LaTeX behaviour. I downloaded your sample image and tried it out in direct latex document this way

\documentclass{article}
\usepackage{graphicx}
\begin{document}

\noindent\includegraphics{render_shader-nodes_input_volume-info_node.png}

\end{document}

this renders exactly at same size as using figure directive as in your index.rst. The latex log file contains

<render_shader-nodes_input_volume-info_node.png, id=1, 223.83624pt x 199.74625p
t>
File: render_shader-nodes_input_volume-info_node.png Graphic file (type png)
<use render_shader-nodes_input_volume-info_node.png>
Package pdftex.def Info: render_shader-nodes_input_volume-info_node.png  used o
n input line 5.
(pdftex.def)             Requested size: 223.8357pt x 199.74576pt.

If I open this image file in Preview.app on my mac it tells me the dimensions are 223 x 199 pixels, with dpi of 72px/inch.

Latex pt unit is 72.27pt per inch, so (it matches the above as 199.74576/72.27 * 72 gives about 199. LaTeX does computation only with at most 4 or 5 decimal digits precision). And fwiw, Preview.app actually shows me by default a slightly wider image than in the pdf viewed in Skim.app.

Does the png file actually contain what the image target dimensions are supposed to be on screen? does it contain a precise ppi spec ?

@jfbu
Copy link
Contributor

jfbu commented Jan 24, 2021

And fwiw, Preview.app actually shows me by default a slightly wider image than in the pdf viewed in Skim.app.

this was silly because there was some scaling in the pdf viewer. I opened in Adobe Reader and chose "natural size" (or "real size" don't know the English mine is localized), and the display is a bit wider than the one in Preview.app.

What do you mean by "overscaled"?

@jfbu
Copy link
Contributor

jfbu commented Jan 24, 2021

ah I get it, sorry. The precise issue seems rather to be that images with width given in px units are underscaled. For strange reason I had not used your test file comparing two image inclusions. Originally TeX had no px unit. But pdftex engine introduced px as a configurable dimension. Its defautl setting is 72px=1in and this can be configured. For some reason, Sphinx has default 96px=1in. This is decided by the 'pxunit'.

Your test image has a width of 223px (and a height of 199px; maybe there was confusion here? but this does not explain the issue).
As Sphinx by default tells latex that 96px=1in, this is rendered in the pdf as an object of width 2.323in. This is how it will look like when the pdf viewer shows the pdf at its "real size" (and assuming the pdf viewer understands correctly the device resolution).

If you don't specify a width in px, the job of recovering it is done from the pdftex graphicx driver and it handles the px has meaning 72 px to one inch. So you end in pdf with an object of width 223/72in=3.097in which looks overscaled. But it is in fact the correct dimension for 223 pixels at 72 pixels per inch.

I am not competent enough in image format files to know if the 72ppi used both by pdftex graphics inclusion and the Preview app on mac os x is actually hard-coded in the image file or is a default of them.

latex_elements = {
    'pxunit': '1bp',
}

will resolve the discrepancy but then the px width specification too will give you a larger image. Still not as wide, because you use 200px but this image natural width is 223px. So at 223px you get same result. That is the large width result. I will investigate more is there is something at the level of latex graphicx inclusion at odd with the setting done of the pdftex configuration \pdfpxdimen. We set it to 1/96th of an inch (\pdfpxdimen=0.75bp) , but the driver handles for this image 1px as 1/72th of an inch. Either the 72ppi is in the image file as png, or it is default from driver.

@jfbu
Copy link
Contributor

jfbu commented Jan 24, 2021

Ok, there is another parameter in pdftex engine (texdoc pdftex on texlive based installations).

\pdfimageresolution (integer)
The integer \pdfimageresolution parameter (unit: dots per inch, dpi) is a last resort value, used only for bitmap (jpeg, png, jbig2) images, but not for pdfs. The priorities are as follows: Often one image dimension (width or height) is stated explicitly in the TEX file. Then the image is properly scaled so that the aspect ratio is kept. If both image dimensions are given, the image will be stretched accordingly, whereby the aspect ratio might get distorted. Only if no image dimension is given in the TEX file, the image size will be calculated from its width and height in pixels, using the x and y resolution values normally contained in the image file. If one of these resolution values is missing or weird (either < 0 or > 65535), the \pdfimageresolution value will be used for both x and y resolution, when calculating the image size. And if the \pdfimageresolution is zero, finally a default resolution of 72 dpi would be taken. The \pdfimageresolution is read when pdfTEX creates an image via \pdfximage. The given value is clipped to the range 0..65535 (dpi).

Now I tested adding \pdfimageresolution=96 and then the two images (the one with no width spec, the other with 223px width) render the same i.e. both handle the image resolution at 96 pixels per inch.

If the documentation above is correct, then this means that this png file has no correct x-resolution and y-resolution data, else my setting of \pdfimageresolution would not have been obeyed.

But in the end it does mean there is a bug of Sphinx here of not setting \pdfimageresolution. I must now investigate if a similar parameter exists in platex and xetex and luatex engines.

The default Sphinx setting says to handle explicitly given px unit as 96 pixels per inch. But Sphinx forgets to inform the pdftex that in case an image does not have x-resolution/y-resolution data that it too should use 96 pixels per inch. We must do that in order for images with un specified or garbage resolution data (or unreadable by pdftex) to give same result when included without width specification or when included with width specification equal to what an image viewer would say is the actual width in pixel.

jfbu added a commit to jfbu/sphinx that referenced this issue Jan 24, 2021
Closes: sphinx-doc#8253

The 'pxunit' key from latex_elements tell how to handle image dimensions
specified in px units.

pdftex has another setting \pdfimageresolution which is used when an
image file does not provide readable or legit values for the x and/or y
resolution.

This commit syncs them: this way if an image will behave the same if
loaded with no explicit size set, or with one such size is set using px
unit, _and_ the graphics file does not have readable image resolution
data (or that data matches the 'pxunit' setting).

Works also with 'lualatex' as latex_engine.

Does not work with 'xelatex' and 'uplatex'.
jfbu added a commit to jfbu/sphinx that referenced this issue Jan 24, 2021
Closes: sphinx-doc#8253

The 'pxunit' key from latex_elements instructs how to handle image
dimensions specified in px units.

But pdftex has \pdfimageresolution which is used when an image file does
not provide readable or legit values for the x and/or y resolution.

This commit syncs them: from 'pxunit' the default image resolution in
pixels per inch (an integer) is computed.

This way an image will behave the same if:

- it is loaded with no explicit size set, _and_ no readable image
  resolution data is readable from the file (or that data matches the
  'pxunit' setting)

- or a size is set in figure directive using px units and equal to the
  natural pixel size of the image,

This also with 'lualatex' but is ignored by with 'xelatex' and
'uplatex'.
jfbu added a commit to jfbu/sphinx that referenced this issue Jan 25, 2021
Closes: sphinx-doc#8253

The 'pxunit' key from latex_elements instructs how to handle image
dimensions specified in px units.

But pdftex has \pdfimageresolution which is used when an image file does
not provide readable or legit values for the x and/or y resolution.

This commit syncs them: from 'pxunit' the default image resolution in
pixels per inch (an integer) is computed.

This way an image will behave the same if:

- it is loaded with no explicit size set, _and_ no readable image
  resolution data is readable from the file (or that data matches the
  'pxunit' setting)

- or a size is set in figure directive using px units and equal to the
  natural pixel size of the image,

This also with 'lualatex' but is ignored by with 'xelatex' and
'uplatex'.
@jfbu jfbu removed the help wanted label Jan 25, 2021
@jfbu jfbu added this to the 4.0.0 milestone Jan 26, 2021
@jfbu
Copy link
Contributor

jfbu commented Jan 26, 2021

Fixed for 4.0.0 release at 77fad1e (#8760) but only for pdflatex and lualatex. Closing nevertheless.

@jfbu jfbu closed this as completed Jan 26, 2021
KunKaxx pushed a commit to KunKaxx/sphinx that referenced this issue Mar 11, 2021
* Fix missing module: warnings

* Update CHANGES for PR sphinx-doc#8070

* Makefiles: Include clean in help message

The make clean help command was missing from all make files.

* Update make.bat_t

* Update Makefile_t

* Reword section on Third Party Themes

- No longer attempt to be the location for listing themes -- only Sphinx-RTD-Theme was listed here.
- Mention the classifier used when searching on PyPI.
- Emphasize sphinx-themes.org as a gallery of themes.

* Fix mypy violations

* Fix sphinx-doc#8342: Emit a warning if a unknown domain is given for directive or role

Currently, Sphinx mention nothing if users use unknown domain in their
documents (ex. `.. unknown:directive::`, `:unknown:role` and so on).
This starts to warn them to be clear non acceptable mark-ups.

refs: sphinx-doc#8342

* Close sphinx-doc#7996: manpage: Make a section directory on build manpage by default

* Test and document support for Python 3.9 release

* Drop code for supporting py35

* Remove additional mentions of Python 3.5

* Fix flake8 issue

* Fix sphinx-doc#8380: html search: search results are wrapped with <p> instead of <div>

* Drop code for py35

* Do test with Ubuntu 18.04

Sphinx-4.0 will drop support for Ubuntu 16.04.  So CI Platform should be
also updated to Ubuntu 18.04.

* Do isort

* Fix flake8 violation

* Remove config variable: source_parsers

It was already deprecated at 1.8.0 and removed at 3.0.0.  So the
definition is no longer used.

refs: dc45877

* Fix flake8 violations

* Remove code for python3.5

* Fix importing error

* Fix flake8 warnings

* Change html_logo & favicon config value process to handle url as values

* Fix sphinx-doc#8508: LaTeX: uplatex becomes a default setting of latex_engine for Japanese

Since v2.3, Sphinx supports uplatex as an alternative of latex_engine for Japanese
docs (refs: sphinx-doc#4186, sphinx-doc#6841). uplatex is able to build a document without conversion
character encoding internally. It allows using unicode characters in documents.
Additionally, uplatex is compatible with platex (current default latex_engine for
Japanese docs).

This changes the default latex_engine for Japanese document to uplatex.

* Fix basic layout and html_logo & favicon config value process to support url as values

* Update layouts to reference logo & favicon without static

* Fix style check errors

* Prevent page brake in the middle of a `seealso` 

* Fold long line

* Fix a flake8 violation

* Remove deprecated function: sphinx.ext.autodoc.importer:_getmro()

* Update the sphinx core events in appappi.rst

I'm very happy to see that the events in Sphinx have been laid out in order as they have been in this doc.

With that being said the notation I noticed was a bit odd. Some of the items in the list refer to events and as a result,
parenthesis are used to indicate the beginning and end of the parameters that the event takes.

In other items in the list, parenthesis are used for additional context for an event. The combination of some particularly very long lines,
the intermixing of comments, pseudo-code, indentation of items following a `for` or an `if` made this very difficult to read on a mobile device.

As a result, I've added whitespace, fixed a typo, reduced the length of some lines by moving them to a new line, and removed all `()` that were not
present to indicate parameters fed to a function.

* Fix mypy violations

* test: py domain: Add a testcase for :var: field

* Close sphinx-doc#5977: :var: field do not create a cross-reference

Since its beginning, `:var:` field has created a cross-reference to the
attribute having the same name.  It is meaningful only if the attribute
is documented by `py:attribute` directive.  It means the `:var:` field
and `:attr:` role are almost the same and conflicted.  Additionally,
the cross-reference points incorrect variable if the target is not
documented.

Thus, the cross-reference feature of `:var:` field is disabled.

* refactor: Move CSS tags in basic/layout.html to ``css_files`` variable

To make CSS customizable, all CSS files in basic/layout.html has their
priority: 200.  Therefore, extensions and users can insert their own
custom CSS files before or just after them.

As a side effect, the CSS tags in basic/layout.html are removed.  These
CSS files will be rendered via `css_files` template variable.

refs: sphinx-doc#8634, c5f0398

* refactor: Do not import sphinx.util.smartypants because of deprecated

* Fix sphinx-doc#4550: The align attribute of figure nodes becomes None by default

To keep compatibility with the standard doctree model of docutils,
this stops to use 'default' value as a default value of the align
attribute for figure and table nodes.

* refactor: test: Do not use deprecated function: execfile_()

* Close sphinx-doc#5560: napoleon_use_param also affect "other parameters" section

* LaTeX: update default font configuration

This replaces times package with tgtermes and tgheros (clones of Times and
Helvetica with better LaTeX support) and the monospace font from txfonts
package (txtt). This font is better matched with Times-like fonts than
Courier clones.

The changes applies to pdflatex/platex/uplatex.

Fixes: sphinx-doc#8711

* pour tester token

	new file:   dummy

* test

* test

* Cleaning up accidental mess

My apologies.  I was testing authentication token, pushing master to my
forked repo.  But I ended up accidentally pushing to sphinx-doc/sphinx,
and force pushing afterwards to clean up then was rejected.

	deleted:    dummy

* refactor: html theme: Insert documentation_options.js via script_files

* refactor: Index class becomes subclasses of abc.ABC

The `Index` class becomes subclasses of `abc.ABC` to indicate
methods that must be overrided in the concrete classes.

* Update the link to the new sphinx-contrib organization

This should be backported to at least 3.x, too.

* refactor: Add sphinx.util:isurl()

* html theme: Add `favicon_url` and `logo_url`

To embed the external favicon and logo image, this adds new template
variable `favicon_url` and `logo_url` that point the external URL or
relative path for the favicon/logo file from current file.  It helps to
use it on template files.

* Update CHANGES

* doc: html_favicon and html_logo accept URL now

* Update CHANGES for PR sphinx-doc#8510

* refactor: Remove unused method

* Fix sphinx-doc#6550: Emit a deprecation warning for html_add_permalinks

Let's start to emit a deprecation warning for html_add_permalinks since
the major release v4.0.

* Fix sphinx-doc#8737: html: broken img tag is appeared when html_logo not set

* LaTeX: sync pdftex engine default imageresolution with pxunit

Closes: sphinx-doc#8253

The 'pxunit' key from latex_elements instructs how to handle image
dimensions specified in px units.

But pdftex has \pdfimageresolution which is used when an image file does
not provide readable or legit values for the x and/or y resolution.

This commit syncs them: from 'pxunit' the default image resolution in
pixels per inch (an integer) is computed.

This way an image will behave the same if:

- it is loaded with no explicit size set, _and_ no readable image
  resolution data is readable from the file (or that data matches the
  'pxunit' setting)

- or a size is set in figure directive using px units and equal to the
  natural pixel size of the image,

This also with 'lualatex' but is ignored by with 'xelatex' and
'uplatex'.

* html: html_codeblock_linenos_style defaults to 'inline' (refs: sphinx-doc#7849)

As discussed in sphinx-doc#7879, the default style of line numbers for code
blocks in HTML output becames 'inline' by default.  And 'table' style
is now deprecated and will be removed in Sphinx-6.0.

* Refactor LaTeX [1/2]: split sphinx.sty into separate components

The latex macros from sphinx.sty were already partitioned into
successive sections.  The file sphinx.sty is split into multiple
files in concordance with this pre-existing sectioning.

The files are loaded via \input. File extension is .sty not .tex
to not confuse the Makefile.

* Refactor LaTeX [2/2]: renamings of auxiliary Sphinx LaTeX packages

sphinxcyrillic -> sphinxpackagecyrillic
sphinxmulticell -> sphinxpackagemulticell
footnotehyper-sphinx -> sphinxpackagefootnote

* Update CHANGES for PR sphinx-doc#8769

* Refactor LaTeX [3/2]: Add all missing .sty in the \ProvidesFile

Sorry for oversight

* Refactor LaTeX [4/2]: suppress extra bracket from bad latex merge :(

* Revert alteration at c9480f9 merge of 3.x of doc/conf.py

Compare doc/conf.py after merge at c9480f9 to what it was at 2ee0338.

It loses the modification from sphinx-doc#8716 (merged at 38c6143) and thus
reverts doc/conf.py to former font config using mathpazo.

* Refactor LaTeX style files

This is a (continuation and) re-work of sphinx-doc#8769 (e6bf914)

I have reintegrated option handling and most package loading into the
original file sphinx.sty and reorganized completely the filenames of
secondary style files.

sphinx.sty had become too big and first sphinx-doc#8769 now this more definitive
refactoring is necessary to clarify structure, dependencies, and ease up
future maintenance.

Unfortunately this means a lot of moving around hunks of latex code with
some alterations.  I tried to carefully check everything is defined in
right order (as LaTeX being a macro expansion language, often one can
manipulate things before them being defined, nevertheless I checked
things are done in order).

Only simple thing is to review is that I added missing EOLs at last
lines of the extracted files...

* Fix markup in docs (from d6e11b8)

* LaTeX: document what the style files provide and require

* Fix accidental revert of f937fac (sphinx-doc#8767) by sphinx-doc#8790 merge

Due to file renaming

* Fix lost LaTeX in merge

* Re-insert if isinstance(node, ast.Constant): into py _parse_annotation

As master drop python 3.5 support, conditional

    if sys.version_info >= (3, 6):

not needed anymore.  This hunk had got lost in merge.

	modified:   sphinx/domains/python.py

* refactor: py domain: Put if-block for ast.Constant to the root level

* Make code block types more visible

* Update type annotations

* Update latex comment

* fix potential getitem error in resolve_anyref

* refactor: Remove meaningless type annotations

* migrate html_add_permalinks=None and html_add_permalinks=""

The docs list: Set it to None or the empty string to disable permalinks.

* C++, cpp_index_common_prefix remove longest

Fixes sphinx-doc#8911

* Fix sphinx-doc#8915: html theme: The translation of sphinx_rtd_theme does not work

Since sphinx_rtd_theme-0.5.0, it supports translations.  But Sphinx core
disallows to enable it because theming framework gives special treatment
for the theme for a long time.

This goes to load it via setuptools at first to enable the translations.

Note: The special treatment for sphinx_rtd_theme (< 0.2.5) is not
removed yet.  But it will be removed in the future release.

* Close sphinx-doc#8924: autodoc: Support `bound` argument for TypeVar

* C, properly error on keywords as function parameters

* C, remove dead code

* C, remove more dead code

* C, simplify tests

* C, test namespace revamp

* LaTeX: let underfull calculation in wrapped code lines ignore last line

Closes: sphinx-doc#8925

* Update CHANGES

* Gather LaTeX items in CHANGES for 4.0.0

* Fix sphinx-doc#8917: autodoc: Raises a warning if function has wrong __globals__ value

`sphinx.util.inspect:signature()` crashes with AttributeError when
subject has wrong `__globals__` value.  This ignores the error on
building.

* Fix sphinx-doc#8933: viewcode: Failed to create back-links on parallel build

On parallel build mode, viewcode losts the back-links information on
gathering results from each process.  As a result, some back-links are
missing in the generated viewcode pages.

This fixes the merging back-links process for parallel builds.

* refactor: LaTeX: Use raw strings for LaTeX macros

* Use explicit title for titlenode, when no title is provided

Signed-off-by: Joaquin Anton <[email protected]>

* Fix sphinx-doc#8938: imgconverter: Show the error of the command availability check

imgconverter extension suppresses an OSError like "Cannot allocate
memory" unexpectedly.  So the error should be shown with the warning.

* autodoc: an imported TypeVar is not resolved (refs: sphinx-doc#8415)

So far, a TypeVar is rendered without module name. As a result, it
could not be resolved if it is imported from other modules.  This
prepends its module name and make it resolvable.  This is available
only in Python 3.7 or above.

As a side effect, all of TypeVars are displayed with module name. It
should be fixed in latter step (refs: sphinx-doc#7119)

* Close sphinx-doc#8326: Rename master_doc to root_doc

To describe the purpose more accurately, the `master_doc` is now renamed
to `root_doc`.  The old name is still available.  But it is recommeneded
to use new one from now on.

* Update sphinx/builders/html/__init__.py

* Update sphinx/builders/html/__init__.py

* Update CHANGES for PR sphinx-doc#8905

* Apply code review suggestions

Signed-off-by: Joaquin Anton <[email protected]>

* Deprecate SphinxComponentRegistry.get_source_input()

The source_input system was deprecated at v2.0.  So no client uses it
longer now.  Therefore this deprecate the getter interface and its
usage.

* Update CHANGES for PR sphinx-doc#8937

* C++, support spaceship operator

Fixes sphinx-doc#8942

* format translatable strings in one go.  This enables translation tools like msgfmt to verify that an incorrect translation cannot crash sphinx-build.  This will fix current crashes for Hungarian and Greek (Spanish was fixed in sphinx-doc#8941)

* BUG: Fix rebuild regression

* C and C++, fix nested paramter lists

* Fix py.typed file not being included in source archive

* Add pending_xref_condition node

To choose appropriate content for pending_xref node on resolving,
this introduces a new custom node `pending_xref_condition`.  It only
has a condition for the filtering and contents of the reference.

* Filter pending_xref_condition node on failed resolution

* Fix sphinx-doc#7199: py domain: Add a new confval: python_use_unqualified_type_names

Add a new config variable: python_use_unqualified_type_names.  If enabled,
it goes to suppress the module name of the python reference if it can be
resolved.

* intersphinx: Support pending_xref_condition

* Fix sphinx-doc#759: autodoc: Add sphinx.ext.autodoc.preserve_defaults extension

Add a new extension `sphinx.ext.autodoc.preserve_defaults`.

It preserves the default argument values of function signatures in source code
and keep them not evaluated for readability.  This is an experimental
extension and it will be integrated into autodoc core in Sphinx-4.0.

* doc: Update document for autodoc :members: option

* doc: Update document for autodoc :undoc-members: option

* doc: Update document for autodoc :private-members: option

* doc: Update document for autodoc :special-members: option

* doc: Fix indentation

* Fix wrong directive name in warning messages

* Sphinx is available on Chocolatey

* lint

* Close sphinx-doc#8487: csv-table now considers abspath as relpath from srcdir

To make directives' behavior consistent, the :file: option for
csv-table directive now recognizes an absolute path as a relative
path from source directory.

* doc: Create autodoc extension tutorial

* doc: Added autodoc extension tutorial to tutorials index

* doc: Link autodoc tutorial in add_autodocumenter docstring

Uses :ref: link because :doc: does not work.

* doc: Added reflink to autodoc tutorial

Used in add_autodocumenter docstring

* Close sphinx-doc#7549: autosummary: Enable autosummary_generate by default

Co-authored-by: Takeshi KOMIYA <[email protected]>
Co-authored-by: Aaron Carlisle <[email protected]>
Co-authored-by: Aaron Carlisle <[email protected]>
Co-authored-by: Pradyun Gedam <[email protected]>
Co-authored-by: Jon Dufresne <[email protected]>
Co-authored-by: François Freitag <[email protected]>
Co-authored-by: Mardelor <[email protected]>
Co-authored-by: Toni Ruža <[email protected]>
Co-authored-by: Faris A Chugthai <[email protected]>
Co-authored-by: jfbu <[email protected]>
Co-authored-by: Steve Piercy <[email protected]>
Co-authored-by: Harrissou Sant-anna <[email protected]>
Co-authored-by: Matthias C. M. Troffaes <[email protected]>
Co-authored-by: Thomas Grainger <[email protected]>
Co-authored-by: Jakob Lykke Andersen <[email protected]>
Co-authored-by: Jakob Lykke Andersen <[email protected]>
Co-authored-by: Joaquin Anton <[email protected]>
Co-authored-by: Ask Hjorth Larsen <[email protected]>
Co-authored-by: Eric Larson <[email protected]>
Co-authored-by: igo95862 <[email protected]>
Co-authored-by: Naveen M K <[email protected]>
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 14, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants