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

Sickchill 6 7 rebuild with Py3.8.12-6 #4920

Merged
merged 26 commits into from
Nov 5, 2021
Merged

Sickchill 6 7 rebuild with Py3.8.12-6 #4920

merged 26 commits into from
Nov 5, 2021

Conversation

BKSteve
Copy link
Contributor

@BKSteve BKSteve commented Oct 17, 2021

Continuation of #4901 after Py 38.12 #4902

All 11/11 packages built on first pass. Errors remain in the logs pertaining to cffi and setuptools_rust during the cross/poetry build part of the process for 88f6281-6.1, armv7-6.1 and 7.0, hi3535-6.1, qoriq-6.1
With evansport giving libz.so: cannot open shared object file: No such file or directory error during the Py3.8.12 build process.

PS. This is labelled as version 18 as that was my test, probably should be 2 or 3.

@BKSteve
Copy link
Contributor Author

BKSteve commented Oct 17, 2021

Tried to get this to function with 3.8.11 and it threw the following on my DS412+ x64 based machine.

Traceback (most recent call last):
  File "/volume1/@appstore/sickchill/share/SickChill/SickChill.py", line 14, in <module>
    import sickchill.start
  File "/volume1/@appstore/sickchill/share/SickChill/sickchill/__init__.py", line 6, in <module>
    from .show.indexers import indexer, ShowIndexer
  File "/volume1/@appstore/sickchill/share/SickChill/sickchill/show/indexers/__init__.py", line 1, in <module>
    from .handler import ShowIndexer
  File "/volume1/@appstore/sickchill/share/SickChill/sickchill/show/indexers/handler.py", line 3, in <module>
    from sickchill import logger, settings
  File "/volume1/@appstore/sickchill/share/SickChill/sickchill/logger.py", line 12, in <module>
    from github import InputFileContent
  File "/volume1/@appstore/sickchill/env/lib/python3.8/site-packages/github/__init__.py", line 56, in <module>
    from github.MainClass import Github, GithubIntegration
  File "/volume1/@appstore/sickchill/env/lib/python3.8/site-packages/github/MainClass.py", line 59, in <module>
    import github.Event
  File "/volume1/@appstore/sickchill/env/lib/python3.8/site-packages/github/Event.py", line 32, in <module>
    import github.NamedUser
  File "/volume1/@appstore/sickchill/env/lib/python3.8/site-packages/github/NamedUser.py", line 44, in <module>
    import github.Organization
  File "/volume1/@appstore/sickchill/env/lib/python3.8/site-packages/github/Organization.py", line 50, in <module>
    import github.Repository
  File "/volume1/@appstore/sickchill/env/lib/python3.8/site-packages/github/Repository.py", line 125, in <module>
    import github.PublicKey
  File "/volume1/@appstore/sickchill/env/lib/python3.8/site-packages/github/PublicKey.py", line 34, in <module>
    from nacl import encoding, public
  File "/volume1/@appstore/sickchill/env/lib/python3.8/site-packages/nacl/public.py", line 17, in <module>
    import nacl.bindings
  File "/volume1/@appstore/sickchill/env/lib/python3.8/site-packages/nacl/bindings/__init__.py", line 17, in <module>
    from nacl.bindings.crypto_aead import (
  File "/volume1/@appstore/sickchill/env/lib/python3.8/site-packages/nacl/bindings/crypto_aead.py", line 18, in <module>
    from nacl._sodium import ffi, lib
ImportError: libsodium.so.23: cannot open shared object file: No such file or directory

Which is more likely because I moved PyNaCl from Depends to Build_depends

Will now wait for 3.8.12 official release and update my DSM before further testing.

@th0ma7
Copy link
Contributor

th0ma7 commented Oct 17, 2021

Will now wait for 3.8.12 official release and update my DSM before further testing.

Now available https://synocommunity.com/package/python38

@BKSteve
Copy link
Contributor Author

BKSteve commented Oct 17, 2021

Alas same error
ImportError: libsodium.so.23: cannot open shared object file: No such file or directory

I did a pip install of pynacl just to see and it gave me aWARNING: You are using pip version 21.1.1 which is odd too as should it not be 21.2.4 from Py3.8.12 install or 21.2.4 only use for the build?

@th0ma7
Copy link
Contributor

th0ma7 commented Oct 18, 2021

@BKSteve I'll try to have a look at it later this week. I have a really busy week ahead with limited cycles, worst case I should find some time over the next week-end.

@BKSteve
Copy link
Contributor Author

BKSteve commented Oct 18, 2021

OK, so going through the logs it's actually in the cross/poetry build where it pulls some requirements from somewhere with cryptography>=2.0 as a requirement. It then starts at the top and goes from 35.0.0 to 3.3.2 before it's happy.
This although creating errors in the build process doesn't mean a failed build.
I tried a couple of things to load a newer version of cryptography but surrender to a lack of knowledge and just accepted it as is and stuck with it builds and works, it's sufficient.
So adjusting the build depends now and will update the code sometime once successful with getting them to work in some DSM.

@BKSteve
Copy link
Contributor Author

BKSteve commented Oct 19, 2021

For information on the installation and upgraded python 3.8.12
Sickchill install log on my x64 DSM is giving

2021/10/19 15:24:34	ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
2021/10/19 15:24:34	virtualenv 0.0.0 requires backports.entry-points-selectable>=1.0.4, which is not installed.
2021/10/19 15:24:34	virtualenv 0.0.0 requires platformdirs<3,>=2, which is not installed.
2021/10/19 15:24:34	virtualenv 0.0.0 requires filelock<4,>=3.0.0, but you have filelock 0.0.0 which is incompatible.

Similarly when building Sickchill it did similar with zipp==3.6.0 which is what's in my requirements.txt file but it made a wheel with 0.0.0 which kicked a dependency error as it was less than 0.5.0

Looking at the Python 3.8.12 install log section

2021/10/17 23:37:04	Begin service_postinst
2021/10/17 23:37:11	Looking in links: /volume1/@appstore/python38/share/wheelhouse
2021/10/17 23:37:11	Processing /volume1/@appstore/python38/share/wheelhouse/MarkupSafe-2.0.1-cp38-none-any.whl
2021/10/17 23:37:12	Processing /volume1/@appstore/python38/share/wheelhouse/PyYAML-5.4.1-cp38-none-any.whl
2021/10/17 23:37:12	Processing /volume1/@appstore/python38/share/wheelhouse/SQLAlchemy-1.4.25-cp38-none-any.whl
2021/10/17 23:37:12	Processing /volume1/@appstore/python38/share/wheelhouse/appdirs-1.4.4-py2.py3-none-any.whl
2021/10/17 23:37:12	Processing /volume1/@appstore/python38/share/wheelhouse/distlib-0.3.3-py3-none-any.whl
2021/10/17 23:37:12	Processing /volume1/@appstore/python38/share/wheelhouse/filelock-0.0.0-py3-none-any.whl
2021/10/17 23:37:12	Processing /volume1/@appstore/python38/share/wheelhouse/idna-3.2-py3-none-any.whl
2021/10/17 23:37:12	Processing /volume1/@appstore/python38/share/wheelhouse/immutables-0.16-cp38-none-any.whl
2021/10/17 23:37:12	Processing /volume1/@appstore/python38/share/wheelhouse/importlib_metadata-0.0.0-py3-none-any.whl
2021/10/17 23:37:12	Processing /volume1/@appstore/python38/share/wheelhouse/importlib_resources-0.0.0-py3-none-any.whl
...
2021/10/17 23:37:12	Processing /volume1/@appstore/python38/share/wheelhouse/virtualenv-0.0.0-py2.py3-none-any.whl
2021/10/17 23:37:12	Processing /volume1/@appstore/python38/share/wheelhouse/zipp-0.0.0-py3-none-any.whl
2021/10/17 23:37:13	Processing /volume1/@appstore/python38/share/wheelhouse/zope.interface-5.4.0-cp38-none-any.whl

I don't know when this 0.0.0 started happening but the old 3.8.11 didn't have 0.0.0

2021/09/02 20:11:35	Processing /volume1/@appstore/python38/share/wheelhouse/filelock-3.0.12-py3-none-any.whl
2021/09/02 20:11:36	Processing /volume1/@appstore/python38/share/wheelhouse/importlib_metadata-4.0.1-py3-none-any.whl
2021/09/02 20:11:36	Processing /volume1/@appstore/python38/share/wheelhouse/importlib_resources-5.1.2-py3-none-any.whl
2021/09/02 20:11:36	Processing /volume1/@appstore/python38/share/wheelhouse/virtualenv-20.4.6-py2.py3-none-any.whl
2021/09/02 20:11:36	Processing /volume1/@appstore/python38/share/wheelhouse/zipp-3.4.1-py3-none-any.whl

EDIT: Sorry should have look at issues first as already in #4925

@th0ma7
Copy link
Contributor

th0ma7 commented Oct 19, 2021

Not entirely sure that the old 3.8.11 didn't have 0.0.0 but it was broken on cffi on all non-x64 arches and may have been hiding other build issues...

I was able to create a workaroud where I manage pure-python vs cross-compiled python wheels slightly differently. I think solution looks promising as I was able to solve all my issues related to python38 3.8.12 using tvheadend as target sub-package. Tentative solution currently is in PR #4921

@BKSteve
Copy link
Contributor Author

BKSteve commented Oct 20, 2021

Not entirely sure that the old 3.8.11 didn't have 0.0.0
That's why I posted my log section for 3.8.11 install which didn't have an 0.0.0

But yes much better to fix the cffi and move forward.

@BKSteve
Copy link
Contributor Author

BKSteve commented Oct 23, 2021

My testing shows working on x64 6.1, 7.0
Waiting for testers using other hardware to report back.

@th0ma7
Copy link
Contributor

th0ma7 commented Oct 23, 2021

Good! And heads-up, I just released the updated python3 + python38 packages online.

@BKSteve BKSteve changed the title Sickchill 6 7 rebuild with Py3.8.12 Sickchill 6 7 rebuild with Py3.8.12-6 Oct 23, 2021
Revert to v3 from test 21.
@BKSteve
Copy link
Contributor Author

BKSteve commented Oct 23, 2021

Changed the version from my testing 21 number to 3 for release.

Edit: Yes, 3.8.12-6 is what the latest edits are based on.
Edit 2: Armv7 issues with lxml

@BKSteve
Copy link
Contributor Author

BKSteve commented Oct 26, 2021

With SickChill 6 7 with Py3.8.12-6 tested working! and the team testing in SickChill issue 7504 we've tested x64, evansport, armv7 on both DSM 6 and DSM 7 with all reporting back they are able to install and get running.

I think it's ready for release 3.

@BKSteve
Copy link
Contributor Author

BKSteve commented Oct 30, 2021

Any chance this can get rolled out?

Edit: tag for somebody to release. 20211102
@publicarray @th0ma7 @hgy59

@th0ma7
Copy link
Contributor

th0ma7 commented Nov 4, 2021

The poetry failure is indeed odd. I was able to easily add it to python310 under #4951
I'll look into it once I have a few more spare cycles... because as-is I don't understand why it fails.
In the meantime, feel free to give it a quick shot against my PR, perhaps moving to it could resolve your issue?

. $(CROSSENV) && $(RUN) _PYTHON_HOST_PLATFORM="$(TC_TARGET)" CFLAGS="$(CFLAGS) -I$(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR) $(WHEELS_CFLAGS)" LDFLAGS="$(LDFLAGS) $(WHEELS_LDFLAGS)" $(PIP_WHEEL) --no-build-isolation --requirement $(WHEELHOUSE)/$(WHEELS_CROSS_COMPILE) ; \
. $(CROSSENV) && $(RUN) _PYTHON_HOST_PLATFORM="$(TC_TARGET)" CFLAGS="$(CFLAGS) -I$(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR) $(WHEELS_CFLAGS)" LDFLAGS="$(LDFLAGS) $(WHEELS_LDFLAGS)" pip $(PIP_WHEEL_ARGS) --no-build-isolation --requirement $(WHEELHOUSE)/$(WHEELS_CROSS_COMPILE) ; \
Copy link
Member

@publicarray publicarray Nov 5, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@th0ma7 Ah found it! pip and $(PIP) are not the same. Or at least pip works and $(PIP) doesn't

# dosn't work
. $(CROSSENV) && $(RUN) _PYTHON_HOST_PLATFORM="$(TC_TARGET)" CFLAGS="$(CFLAGS) -I$(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR) $(WHEELS_CFLAGS)" LDFLAGS="$(LDFLAGS) $(WHEELS_LDFLAGS)" $(PIP) wheel $(PIP_ARGS) --wheel-dir $(WHEELHOUSE) --no-build-isolation --requirement $(WHEELHOUSE)/$(WHEELS_CROSS_COMPILE) ; \

# works
. $(CROSSENV) && $(RUN) _PYTHON_HOST_PLATFORM="$(TC_TARGET)" CFLAGS="$(CFLAGS) -I$(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR) $(WHEELS_CFLAGS)" LDFLAGS="$(LDFLAGS) $(WHEELS_LDFLAGS)" pip wheel $(PIP_ARGS) --wheel-dir $(WHEELHOUSE) --no-build-isolation --requirement $(WHEELHOUSE)/$(WHEELS_CROSS_COMPILE) ; \

Copy link
Member

@publicarray publicarray Nov 5, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we in a virtual environment? aka CROSSENV

Copy link
Member

@publicarray publicarray Nov 5, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @th0ma7 I'm going to revert the 2 files (mk/spksrc.common.mk, mk/spksrc.wheel.mk) from 98dc6b4#diff-b2c976fb01fa035ca37be782346b9773732c78d931102770d1a305d9cfdc6a06

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll have to go over the various changes you did (any left or not?) so my other PR doesn't get too funky neither.
I'm glad you have sorted it out, good job!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reading it I don't understand:

  1. why would it work using pip instead of $(PIP) when really it's the same thing? If not we need to find out what's the difference and why (and probably add a comment on top of PIP ?= pip to explain it)
  2. Otherwise my "guess" is that the re-ordering in PIP_WHEEL_ARGS is what fixed the issue. On the other hand, if it was only pip then why changing that?
  3. Currently PIP_DONWLOAD calls PIP_ARGS which is now existent (probably easy to fix)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before I rebase against master my PR, can you double-check this and confirm a few things? Otherwise I fear I may break things back for sickchill while fixing PIP_DOWNLOAD?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow, just wow!
@publicarray I've been double-checking and I just don't get it... it does solves the issue no matter why?

I've checked the following:

                which $(PIP) ;\
                which pip ;\
                $(MSG) $(PIP_WHEEL) ;\
                $(MSG) $(PIP) $(PIP_WHEEL_ARGS) ;\
                $(MSG) pip $(PIP_WHEEL_ARGS) ;\

Which gives this:

/usr/local/bin/pip
/usr/local/bin/pip
===>  pip wheel --no-binary :all: --cache-dir /home/spksrc/python310-fixes/spksrc/spk/sickchill/../../distrib/pip --no-deps --wheel-dir /home/spksrc/python310-fixes/spksrc/spk/sickchill/work-x64-7.0/wheelhouse
===>  pip wheel --no-binary :all: --cache-dir /home/spksrc/python310-fixes/spksrc/spk/sickchill/../../distrib/pip --no-deps --wheel-dir /home/spksrc/python310-fixes/spksrc/spk/sickchill/work-x64-7.0/wheelhouse
===>  pip wheel --no-binary :all: --cache-dir /home/spksrc/python310-fixes/spksrc/spk/sickchill/../../distrib/pip --no-deps --wheel-dir /home/spksrc/python310-fixes/spksrc/spk/sickchill/work-x64-7.0/wheelhouse

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found it!!!!! 😄

  • The defined $(PIP) in spksrc.common.mk points to the native binary.
  • When direct pip is called with . $(CROSSENV) && $(RUN) ... it points to cross-environment as the path gets changed such as:
$ cat work-x64-7.0/crossenv/bin/activate
. /home/spksrc/python310-fixes/spksrc/spk/sickchill/work-x64-7.0/crossenv/cross/bin/activate
export PATH=/home/spksrc/python310-fixes/spksrc/spk/sickchill/work-x64-7.0/crossenv/bin:$PATH

Resulting in:

::::::::::::::
work-x64-7.0/pip.1
::::::::::::::
pip 21.3 from /home/spksrc/python310-fixes/spksrc/native/python38/work-native/install/usr/local/lib/python3.8/site-packages/pip (python 3.8)
::::::::::::::
work-x64-7.0/pip.2
::::::::::::::
pip 21.3 from /home/spksrc/python310-fixes/spksrc/spk/sickchill/work-x64-7.0/crossenv/build/lib/python3.8/site-packages/pip (python 3.8)

@BKSteve
Copy link
Contributor Author

BKSteve commented Nov 5, 2021

Thanks for sorting out the poetry wheel build issue.
So updated makefile to match more with the HowTo and updated requirement versions.

@publicarray
Copy link
Member

Thanks @BKSteve, Thanks for hanging in there.
I might not understand fully, but why is poetry in both the requirements.txt and in the Makefile?

@publicarray
Copy link
Member

Anyway once this build is done I think it's time to publish.

@BKSteve
Copy link
Contributor Author

BKSteve commented Nov 5, 2021

kodipydent-alt will not build to a wheel without it in the build_depends or depends as it's in the toml of the package.
The version of poetry loaded to wheelhouse is for the latest alpha version so deploying in quicker than having to download during it's already slow startup time. I'm not 100% sure but my understanding is the alpha changes are need for operation.
Edit: I'm the bunny doing the spk building and still learning the coding side.

@publicarray publicarray merged commit 5ace92b into SynoCommunity:master Nov 5, 2021
@publicarray
Copy link
Member

Thanks. haha, you did good 🐰 I'm also still learning more coding (rust and react)

@publicarray
Copy link
Member

publicarray commented Nov 5, 2021

@BKSteve did you have the following error when installing sickchill? cat /var/log/packages/sickchill.log

2021/11/05 10:17:28	ERROR: Cannot install cachecontrol 0.12.6 (from /volume1/@appstore/sickchill/share/wheelhouse/CacheControl-0.12.6-py2.py3-none-any.whl) and cachecontrol 0.12.9 (from /volume1/@appstore/sickchill/share/wheelhouse/CacheControl-0.12.9-py2.py3-none-any.whl) because these package versions have conflicting dependencies.
2021/11/05 10:17:28	The conflict is caused by:
2021/11/05 10:17:28	    The user requested cachecontrol 0.12.6 (from /volume1/@appstore/sickchill/share/wheelhouse/CacheControl-0.12.6-py2.py3-none-any.whl)
2021/11/05 10:17:28	    The user requested cachecontrol 0.12.9 (from /volume1/@appstore/sickchill/share/wheelhouse/CacheControl-0.12.9-py2.py3-none-any.whl)
2021/11/05 10:17:28	To fix this you could try to:
2021/11/05 10:17:28	1. loosen the range of package versions you've specified
2021/11/05 10:17:28	2. remove package versions to allow pip attempt to solve the dependency conflict
2021/11/05 10:17:28	ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
2021/11/05 10:17:28	End service_postinst

It's easily fixed by using an older version: cachecontrol==0.12.6 Edit: using an older version did not fix it
The package still works regardless

@BKSteve
Copy link
Contributor Author

BKSteve commented Nov 5, 2021

No, I just updated those numbers and it loaded and worked.
I didn't look in the log, as it ran. Assumed everything ok.

@publicarray
Copy link
Member

I don't think my build environment was clean... 🙈

@BKSteve
Copy link
Contributor Author

BKSteve commented Nov 5, 2021

my new clean install threw something else at me

2021/11/05 17:45:12	ERROR: Cannot install cloudscraper==1.2.58, httplib2==0.20.2, packaging==21.2 and pyparsing 3.0.4 (from /volume1/@appstore/sickchill/share/wheelhouse/pyparsing-3.0.4-py3-none-any.whl) because these package versions have conflicting dependencies.
2021/11/05 17:45:12	The conflict is caused by:
2021/11/05 17:45:12	    The user requested pyparsing 3.0.4 (from /volume1/@appstore/sickchill/share/wheelhouse/pyparsing-3.0.4-py3-none-any.whl)
2021/11/05 17:45:12	    cloudscraper 1.2.58 depends on pyparsing>=2.4.7
2021/11/05 17:45:12	    httplib2 0.20.2 depends on pyparsing!=3.0.0, !=3.0.1, !=3.0.2, !=3.0.3, <4 and >=2.4.2; python_version > "3.0"
2021/11/05 17:45:12	    packaging 21.2 depends on pyparsing<3 and >=2.0.2
2021/11/05 17:45:12	To fix this you could try to:
2021/11/05 17:45:12	1. loosen the range of package versions you've specified
2021/11/05 17:45:12	2. remove package versions to allow pip attempt to solve the dependency conflict
2021/11/05 17:45:12	ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies

But also loaded and running.

Perhaps I should push the two requirements*.txt files back to how they were?
Rolling just the one item pyparsing back to 2.4.7 and building again. The 2.4.7 was installed by SickChill in it's startup checks and that's what's in the /volume1/@appstore/sickchill/env/lib/python3.8/site-packages/ folder

@publicarray
Copy link
Member

Before you do that I'm waiting for my build with just changing pyparsing==2.4.7 and see if that works. All other version changes don't bump the major version number (except timezone...)

@BKSteve
Copy link
Contributor Author

BKSteve commented Nov 5, 2021

Yes, I'm just building with 2.4.7 too, just the one change.

@BKSteve
Copy link
Contributor Author

BKSteve commented Nov 5, 2021

packaging==20.9 too. Not packaging==21.2

2021/11/05 18:10:07	ERROR: Cannot install packaging 21.2 (from /volume1/@appstore/sickchill/share/wheelhouse/packaging-21.2-py3-none-any.whl) and poetry==1.2.0a2 because these package versions have conflicting dependencies.
2021/11/05 18:10:07	The conflict is caused by:
2021/11/05 18:10:07	    The user requested packaging 21.2 (from /volume1/@appstore/sickchill/share/wheelhouse/packaging-21.2-py3-none-any.whl)
2021/11/05 18:10:07	    poetry 1.2.0a2 depends on packaging<21.0 and >=20.4

@publicarray
Copy link
Member

Thanks, I just finished compiling this one too.

@BKSteve
Copy link
Contributor Author

BKSteve commented Nov 5, 2021

The next build worked without error. Can you make these 2 changes to the master I must go cook for the fam.

@publicarray
Copy link
Member

Yea will do 👍

@publicarray publicarray mentioned this pull request Nov 5, 2021
@BKSteve BKSteve deleted the Sickchill-6-7 branch November 5, 2021 11:44
@publicarray
Copy link
Member

Thanks for help!
Enjoy your food 🌮!

@BKSteve
Copy link
Contributor Author

BKSteve commented Nov 5, 2021

Think you can close #4856 too.

@publicarray
Copy link
Member

Thanks, I'll wait until the builds are done.

@publicarray publicarray added status/published Published and activated (may take up to 48h until visible in DSM package manager) and removed status/ready-to-merge labels Nov 5, 2021
@publicarray publicarray mentioned this pull request Nov 5, 2021
37 tasks
@th0ma7 th0ma7 mentioned this pull request Nov 6, 2021
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status/published Published and activated (may take up to 48h until visible in DSM package manager)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants