mbox series

[bug#51314,00/29] Add Octoprint (web UI for 3d printers).

Message ID 20211021035100.241119-1-monego@posteo.net
Headers show
Series Add Octoprint (web UI for 3d printers). | expand

Message

Vinicius Monego Oct. 21, 2021, 3:51 a.m. UTC
This patchset adds the Octoprint web UI to control 3d printers.

Octoprint itself bundles font-awesome. I removed it in a snippet, don't know how much it would affect usability. I haven't found other bundles with license issues.

Some of the updates have newer versions but I'm updating to "older" versions to maintain compatibility with octoprint. See the comment in the octoprint package.

Vinicius Monego (29):
  gnu: Add python-filetype.
  gnu: Add python-immutabledict.
  gnu: Add python-emoji.
  gnu: Add python-cachelib.
  gnu: Add python-sarge.
  gnu: Add python-pylru.
  gnu: python-flask: Update to 1.1.4.
  gnu: python-flask: Respect #:tests?.
  gnu: Add python-pyscss.
  gnu: Add python-flask-assets.
  gnu: Add python-zipstream-new.
  gnu: Add python-executing.
  gnu: Add python-sentry-sdk.
  gnu: Add python-pytest-doctest-custom.
  gnu: Add python-sgmllib3k.
  gnu: python-feedparser: Update to 6.0.8.
  gnu: python-feedparser: Enable tests.
  gnu: python-netifaces: Update to 0.11.0.
  gnu: python-websocket-client: Update to 0.59.0.
  gnu: python-pkginfo: Update to 1.7.1.
  gnu: python-watchdog: Update to 0.10.7.
  gnu: python-colorlog: Update to 5.0.1.
  gnu: python-zeroconf: Update to 0.33.4.
  gnu: python-wrapt: Update to 1.12.1.
  gnu: python-wrapt: Enable tests.
  gnu: Add octoprint-pisupport.
  gnu: Add octoprint-firmwarecheck.
  gnu: Add octoprint-filecheck.
  gnu: Add octoprint.

 gnu/packages/printers.scm     | 181 +++++++++++++++-
 gnu/packages/python-check.scm |  29 +++
 gnu/packages/python-web.scm   |  96 ++++++++-
 gnu/packages/python-xyz.scm   | 381 ++++++++++++++++++++++++++++++----
 gnu/packages/web.scm          |  15 +-
 5 files changed, 645 insertions(+), 57 deletions(-)


base-commit: 2782cb38a3bc68c530d6e95f6834ae0cb7ed16aa
prerequisite-patch-id: 01467a57e2c7d6c0266979c26fc35408e886972b

Comments

Efraim Flashner Nov. 8, 2021, 8:38 p.m. UTC | #1
On Thu, Oct 21, 2021 at 03:51:00AM +0000, Vinicius Monego wrote:
> This patchset adds the Octoprint web UI to control 3d printers.
> 
> Octoprint itself bundles font-awesome. I removed it in a snippet, don't know how much it would affect usability. I haven't found other bundles with license issues.
> 
> Some of the updates have newer versions but I'm updating to "older" versions to maintain compatibility with octoprint. See the comment in the octoprint package.

Looking at some of the comments here¹ it looks like they're using old
versions mostly to retain python2 compatibility. On the other hand they
also have a comment about not having checked newer versions yet for for
breaking changes, which IMO is their job. Other than flask-login and
netaddr I don't see a reason to not try with some of the newer versions
of the packages. I would feel better if they only marked their own
dependencies and not transitive dependencies.

I think it makes sense to try newer versions and to add older versions
on an as-needed basis, especially since some of these packages are
likely to be upgraded again at some point before the next version of
octoprint.

¹ https://github.com/OctoPrint/OctoPrint/blob/1.7.0/setup.py#L17

> 
> Vinicius Monego (29):
>   gnu: Add python-filetype.
>   gnu: Add python-immutabledict.
>   gnu: Add python-emoji.
>   gnu: Add python-cachelib.
>   gnu: Add python-sarge.
>   gnu: Add python-pylru.
>   gnu: python-flask: Update to 1.1.4.
>   gnu: python-flask: Respect #:tests?.
>   gnu: Add python-pyscss.
>   gnu: Add python-flask-assets.
>   gnu: Add python-zipstream-new.
>   gnu: Add python-executing.
>   gnu: Add python-sentry-sdk.
>   gnu: Add python-pytest-doctest-custom.
>   gnu: Add python-sgmllib3k.
>   gnu: python-feedparser: Update to 6.0.8.
>   gnu: python-feedparser: Enable tests.
>   gnu: python-netifaces: Update to 0.11.0.
>   gnu: python-websocket-client: Update to 0.59.0.
>   gnu: python-pkginfo: Update to 1.7.1.
>   gnu: python-watchdog: Update to 0.10.7.
>   gnu: python-colorlog: Update to 5.0.1.
>   gnu: python-zeroconf: Update to 0.33.4.
>   gnu: python-wrapt: Update to 1.12.1.
>   gnu: python-wrapt: Enable tests.
>   gnu: Add octoprint-pisupport.
>   gnu: Add octoprint-firmwarecheck.
>   gnu: Add octoprint-filecheck.
>   gnu: Add octoprint.
> 
>  gnu/packages/printers.scm     | 181 +++++++++++++++-
>  gnu/packages/python-check.scm |  29 +++
>  gnu/packages/python-web.scm   |  96 ++++++++-
>  gnu/packages/python-xyz.scm   | 381 ++++++++++++++++++++++++++++++----
>  gnu/packages/web.scm          |  15 +-
>  5 files changed, 645 insertions(+), 57 deletions(-)
> 
> 
> base-commit: 2782cb38a3bc68c530d6e95f6834ae0cb7ed16aa
> prerequisite-patch-id: 01467a57e2c7d6c0266979c26fc35408e886972b
> -- 
> 2.30.2
> 
> 
> 
>
Vinicius Monego Nov. 13, 2021, 7:44 p.m. UTC | #2
Em seg, 2021-11-08 às 22:38 +0200, Efraim Flashner escreveu:
> On Thu, Oct 21, 2021 at 03:51:00AM +0000, Vinicius Monego wrote:
> > This patchset adds the Octoprint web UI to control 3d printers.
> > 
> > Octoprint itself bundles font-awesome. I removed it in a snippet,
> > don't know how much it would affect usability. I haven't found
> > other bundles with license issues.
> > 
> > Some of the updates have newer versions but I'm updating to "older"
> > versions to maintain compatibility with octoprint. See the comment
> > in the octoprint package.
> 
> Looking at some of the comments here¹ it looks like they're using old
> versions mostly to retain python2 compatibility. On the other hand
> they
> also have a comment about not having checked newer versions yet for
> for
> breaking changes, which IMO is their job. Other than flask-login and
> netaddr I don't see a reason to not try with some of the newer
> versions
> of the packages. I would feel better if they only marked their own
> dependencies and not transitive dependencies.
> 
> I think it makes sense to try newer versions and to add older
> versions
> on an as-needed basis, especially since some of these packages are
> likely to be upgraded again at some point before the next version of
> octoprint.
> 
> ¹ https://github.com/OctoPrint/OctoPrint/blob/1.7.0/setup.py#L17
> 

This is my report for the updates:

I updated python-colorlog, python-zeroconf, python-watchdog and python-
wrapt to latest versions.

The update on python-zeroconf will likely break pulseaudio-dlna which
depends on python2-zeroconf. Upstream also abandoned the project and it
now lives in a fork that can be found here¹. Packaging the fork will
require packaging python-pyroute2 which seems to lead to another chain
of new packages.

Updating Flask to version 2.0 will require updates on python-
itsdangerous, python-werkzeug and python-jinja2, which would have to
rebuild 600+ packages.

I tried to update python-websockets-client to latest version but the
tests hung and I couldn't figure out why.

I'll send a v2 soon.

¹ https://github.com/Cygn/pulseaudio-dlna/
Efraim Flashner Nov. 14, 2021, 8:44 a.m. UTC | #3
On Sat, Nov 13, 2021 at 07:44:53PM +0000, Vinicius Monego wrote:
> Em seg, 2021-11-08 às 22:38 +0200, Efraim Flashner escreveu:
> > On Thu, Oct 21, 2021 at 03:51:00AM +0000, Vinicius Monego wrote:
> > > This patchset adds the Octoprint web UI to control 3d printers.
> > > 
> > > Octoprint itself bundles font-awesome. I removed it in a snippet,
> > > don't know how much it would affect usability. I haven't found
> > > other bundles with license issues.
> > > 
> > > Some of the updates have newer versions but I'm updating to "older"
> > > versions to maintain compatibility with octoprint. See the comment
> > > in the octoprint package.
> > 
> > Looking at some of the comments here¹ it looks like they're using old
> > versions mostly to retain python2 compatibility. On the other hand
> > they
> > also have a comment about not having checked newer versions yet for
> > for
> > breaking changes, which IMO is their job. Other than flask-login and
> > netaddr I don't see a reason to not try with some of the newer
> > versions
> > of the packages. I would feel better if they only marked their own
> > dependencies and not transitive dependencies.
> > 
> > I think it makes sense to try newer versions and to add older
> > versions
> > on an as-needed basis, especially since some of these packages are
> > likely to be upgraded again at some point before the next version of
> > octoprint.
> > 
> > ¹ https://github.com/OctoPrint/OctoPrint/blob/1.7.0/setup.py#L17
> > 
> 
> This is my report for the updates:
> 
> I updated python-colorlog, python-zeroconf, python-watchdog and python-
> wrapt to latest versions.
> 
> The update on python-zeroconf will likely break pulseaudio-dlna which
> depends on python2-zeroconf. Upstream also abandoned the project and it
> now lives in a fork that can be found here¹. Packaging the fork will
> require packaging python-pyroute2 which seems to lead to another chain
> of new packages.
> 
> Updating Flask to version 2.0 will require updates on python-
> itsdangerous, python-werkzeug and python-jinja2, which would have to
> rebuild 600+ packages.

That's a pretty good reason to leave flask at 1.x. When we do add 2.x we
might also end up keeping a python-flask-1 for a while during a
transition.

> I tried to update python-websockets-client to latest version but the
> tests hung and I couldn't figure out why.
> 
> I'll send a v2 soon.
> 
> ¹ https://github.com/Cygn/pulseaudio-dlna/

My concern was more about if the newer versions of the python packages
would work with octoprint.
Vinicius Monego Nov. 14, 2021, 2:07 p.m. UTC | #4
Em dom, 2021-11-14 às 10:44 +0200, Efraim Flashner escreveu:
> On Sat, Nov 13, 2021 at 07:44:53PM +0000, Vinicius Monego wrote:
> > Em seg, 2021-11-08 às 22:38 +0200, Efraim Flashner escreveu:
> > > On Thu, Oct 21, 2021 at 03:51:00AM +0000, Vinicius Monego wrote:
> > > > This patchset adds the Octoprint web UI to control 3d printers.
> > > > 
> > > > Octoprint itself bundles font-awesome. I removed it in a
> > > > snippet,
> > > > don't know how much it would affect usability. I haven't found
> > > > other bundles with license issues.
> > > > 
> > > > Some of the updates have newer versions but I'm updating to
> > > > "older"
> > > > versions to maintain compatibility with octoprint. See the
> > > > comment
> > > > in the octoprint package.
> > > 
> > > Looking at some of the comments here¹ it looks like they're using
> > > old
> > > versions mostly to retain python2 compatibility. On the other
> > > hand
> > > they
> > > also have a comment about not having checked newer versions yet
> > > for
> > > for
> > > breaking changes, which IMO is their job. Other than flask-login
> > > and
> > > netaddr I don't see a reason to not try with some of the newer
> > > versions
> > > of the packages. I would feel better if they only marked their
> > > own
> > > dependencies and not transitive dependencies.
> > > 
> > > I think it makes sense to try newer versions and to add older
> > > versions
> > > on an as-needed basis, especially since some of these packages
> > > are
> > > likely to be upgraded again at some point before the next version
> > > of
> > > octoprint.
> > > 
> > > ¹ https://github.com/OctoPrint/OctoPrint/blob/1.7.0/setup.py#L17
> > > 
> > 
> > This is my report for the updates:
> > 
> > I updated python-colorlog, python-zeroconf, python-watchdog and
> > python-
> > wrapt to latest versions.
> > 
> > The update on python-zeroconf will likely break pulseaudio-dlna
> > which
> > depends on python2-zeroconf. Upstream also abandoned the project
> > and it
> > now lives in a fork that can be found here¹. Packaging the fork
> > will
> > require packaging python-pyroute2 which seems to lead to another
> > chain
> > of new packages.
> > 
> > Updating Flask to version 2.0 will require updates on python-
> > itsdangerous, python-werkzeug and python-jinja2, which would have
> > to
> > rebuild 600+ packages.
> 
> That's a pretty good reason to leave flask at 1.x. When we do add 2.x
> we
> might also end up keeping a python-flask-1 for a while during a
> transition.
> 
> > I tried to update python-websockets-client to latest version but
> > the
> > tests hung and I couldn't figure out why.
> > 
> > I'll send a v2 soon.
> > 
> > ¹ https://github.com/Cygn/pulseaudio-dlna/
> 
> My concern was more about if the newer versions of the python
> packages
> would work with octoprint.
> 

I don't have a printer to test but the unit tests are still passing and
the server log messages didn't accuse anything different. The only
update that may cause a problem is python-zeroconf, but I don't know
how to test that one.
Efraim Flashner Nov. 14, 2021, 2:30 p.m. UTC | #5
On Sun, Nov 14, 2021 at 02:07:04PM +0000, Vinicius Monego wrote:
> Em dom, 2021-11-14 às 10:44 +0200, Efraim Flashner escreveu:
> > On Sat, Nov 13, 2021 at 07:44:53PM +0000, Vinicius Monego wrote:
> > > Em seg, 2021-11-08 às 22:38 +0200, Efraim Flashner escreveu:
> > > > On Thu, Oct 21, 2021 at 03:51:00AM +0000, Vinicius Monego wrote:
> > > > > This patchset adds the Octoprint web UI to control 3d printers.
> > > > > 
> > > > > Octoprint itself bundles font-awesome. I removed it in a
> > > > > snippet,
> > > > > don't know how much it would affect usability. I haven't found
> > > > > other bundles with license issues.
> > > > > 
> > > > > Some of the updates have newer versions but I'm updating to
> > > > > "older"
> > > > > versions to maintain compatibility with octoprint. See the
> > > > > comment
> > > > > in the octoprint package.
> > > > 
> > > > Looking at some of the comments here¹ it looks like they're using
> > > > old
> > > > versions mostly to retain python2 compatibility. On the other
> > > > hand
> > > > they
> > > > also have a comment about not having checked newer versions yet
> > > > for
> > > > for
> > > > breaking changes, which IMO is their job. Other than flask-login
> > > > and
> > > > netaddr I don't see a reason to not try with some of the newer
> > > > versions
> > > > of the packages. I would feel better if they only marked their
> > > > own
> > > > dependencies and not transitive dependencies.
> > > > 
> > > > I think it makes sense to try newer versions and to add older
> > > > versions
> > > > on an as-needed basis, especially since some of these packages
> > > > are
> > > > likely to be upgraded again at some point before the next version
> > > > of
> > > > octoprint.
> > > > 
> > > > ¹ https://github.com/OctoPrint/OctoPrint/blob/1.7.0/setup.py#L17
> > > > 
> > > 
> > > This is my report for the updates:
> > > 
> > > I updated python-colorlog, python-zeroconf, python-watchdog and
> > > python-
> > > wrapt to latest versions.
> > > 
> > > The update on python-zeroconf will likely break pulseaudio-dlna
> > > which
> > > depends on python2-zeroconf. Upstream also abandoned the project
> > > and it
> > > now lives in a fork that can be found here¹. Packaging the fork
> > > will
> > > require packaging python-pyroute2 which seems to lead to another
> > > chain
> > > of new packages.
> > > 
> > > Updating Flask to version 2.0 will require updates on python-
> > > itsdangerous, python-werkzeug and python-jinja2, which would have
> > > to
> > > rebuild 600+ packages.
> > 
> > That's a pretty good reason to leave flask at 1.x. When we do add 2.x
> > we
> > might also end up keeping a python-flask-1 for a while during a
> > transition.
> > 
> > > I tried to update python-websockets-client to latest version but
> > > the
> > > tests hung and I couldn't figure out why.
> > > 
> > > I'll send a v2 soon.
> > > 
> > > ¹ https://github.com/Cygn/pulseaudio-dlna/
> > 
> > My concern was more about if the newer versions of the python
> > packages
> > would work with octoprint.
> > 
> 
> I don't have a printer to test but the unit tests are still passing and
> the server log messages didn't accuse anything different. The only
> update that may cause a problem is python-zeroconf, but I don't know
> how to test that one.

So it's probably fine to leave that one as-is for now.
Vinicius Monego Dec. 27, 2021, 11:30 p.m. UTC | #6
This is an update of the series after the core-updates-frozen merge. All packages are linted. The feedparser and flask updates were removed because they were pushed in other patches.

A few package versions were bumped. The server and UI seem to work, but still I can't test the full functionality of the program.

Vinicius Monego (21):
  gnu: Add python-sarge.
  gnu: Add python-pylru.
  gnu: Add python-pyscss.
  gnu: Add python-flask-assets.
  gnu: Add python-zipstream-new.
  gnu: Add python-executing.
  gnu: Add python-sentry-sdk.
  gnu: Add python-pytest-doctest-custom.
  gnu: python-feedparser: Enable tests.
  gnu: python-netifaces: Update to 0.11.0.
  gnu: python-websocket-client: Update to 0.59.0.
  gnu: python-pkginfo: Update to 1.8.2.
  gnu: python-watchdog: Update to 2.1.6.
  gnu: python-colorlog: Update to 6.6.0.
  gnu: python-zeroconf: Update to 0.38.1.
  gnu: python-wrapt: Update to 1.13.3.
  gnu: python-wrapt: Enable tests.
  gnu: Add octoprint-pisupport.
  gnu: Add octoprint-firmwarecheck.
  gnu: Add octoprint-filecheck.
  gnu: Add octoprint.

 gnu/packages/printers.scm     | 194 +++++++++++++++++++++-
 gnu/packages/python-check.scm |  29 ++++
 gnu/packages/python-web.scm   |  76 ++++++++-
 gnu/packages/python-xyz.scm   | 304 ++++++++++++++++++++++++++--------
 gnu/packages/web.scm          |  17 +-
 5 files changed, 542 insertions(+), 78 deletions(-)


base-commit: 28b477cb2e5d9185da16f305caff15809dfa06f3