Opened 22 months ago

Last modified 13 months ago

#66787 assigned defect

buildbot: installation now requires installing rust, due to monolithic py-twisted

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: rajdeepbharati (Rajdeep Bharati), mojca (Mojca Miklavec), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), olv.bonnet@…, stromnov (Andrey Stromnov), chrisminett (Chris Minett)
Port: buildbot buildbot-worker py-twisted py-bcrypt rust

Description

buildbot and buildbot-worker depend on py310-twisted which depends on py310-bcrypt which depends on rust.

It's undesirable for an automated build tool like buildbot to have such a heavy dependency as rust. rust is huge (our buildbot machines have limited disk space) and takes hours to compile (our buildbot machines have to build all of their ports from source). We don't use this version of buildbot yet though we might like to one day.

py-bcrypt added the rust dependency when it was updated to 4.0.1 in November 2022.

What's the best solution—make py-twisted not use py-bcrypt anymore or make py-bcrypt not use rust anymore?

Change History (6)

comment:1 Changed 21 months ago by chrisminett (Chris Minett)

Cc: chrisminett added

comment:2 Changed 18 months ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:3 Changed 18 months ago by mascguy (Christopher Nielsen)

Perusing upstream's repo, it looks like py-twisted is quite modular, and provides plenty of flexibility relative to which component(s) are included:

  • twisted.conch: SSHv2 and Telnet clients and servers and terminal emulators
  • twisted.mail: IMAPv4, POP3, SMTP clients and servers
  • twisted.names: DNS client and tools for making your own DNS servers
  • twisted.positioning: Tools for communicating with NMEA-compatible GPS receivers
  • twisted.trial: A unit testing framework that integrates well with Twisted-based code.
  • twisted.web: HTTP clients and servers, HTML templating, and a WSGI server
  • twisted.words: Clients and servers for IRC, XMPP, and other IM protocols

So we could modularize the port as well, via variants.

And it appears that module twisted.conch is the one that requires py-bcrypt:

https://github.com/twisted/twisted/blob/trunk/pyproject.toml#L91

Do you know whether buildbot requires that module?

Last edited 15 months ago by mascguy (Christopher Nielsen) (previous) (diff)

comment:4 Changed 15 months ago by mascguy (Christopher Nielsen)

Ryan, it looks like you just updated our ports for buildbot. Did you see my previous comment, re: modularization options for py-twisted?

comment:5 Changed 15 months ago by mascguy (Christopher Nielsen)

Cc: mascguy removed
Owner: set to mascguy
Status: newassigned
Summary: Installing buildbot now requires installing rustbuildbot: installation now requires installing rust, due to monolithic py-twisted

comment:6 Changed 13 months ago by ryandesign (Ryan Carsten Schmidt)

I update ports when I see a new version is available.

I don't know if buildbot uses twisted.conch.

Note: See TracTickets for help on using tickets.