Skip to content

GitHub Actions Workflows#61

Draft
zetneteork wants to merge 13 commits intomeshcore-dev:mainfrom
opentreecz:develop
Draft

GitHub Actions Workflows#61
zetneteork wants to merge 13 commits intomeshcore-dev:mainfrom
opentreecz:develop

Conversation

@zetneteork
Copy link
Copy Markdown

GitHub Actions Workflows

I am adding a GitHub Actions workflow to create:

  • DEB packages
  • RPM packages
  • Docker container image

To follow best-practice principles, I created deb packages for each Python module to align with the current Debian packaging schema. And mainly to prevent potential library overlaps.

Releases

Debian packages

There are those packages:

  • meshcore-cli_1.5.7-1_all.deb
  • python3-bleak_0.22.3_all.deb
  • python3-meshcore_2.3.7_all.deb
  • python3-prompt-toolkit_3.0.52_all.deb
  • python3-pycayennelpp_2.4.0_all.deb
  • python3-serial-asyncio-fast_0.16_all.deb
  • python3-typing-extensions_4.13.2_all.deb

meshcore-cli package installation log

root@fa77bd7f3180:/app# gdebi meshcore-cli_1.5.7-1_all.deb 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Reading state information... Done
Requires the installation of the following packages: python3-certifi, python3-chardet, python3-idna, python3-requests, python3-urllib3 

CLI interface to MeshCore companion radios and repeaters
 meshcore-cli is a tool that connects to your companion radio node
 (meshcore client) over BLE, TCP or Serial and lets you interact with it
 from a terminal using a command line interface.
 .
 Features:
  - Interactive chat mode with mesh nodes
  - Support for BLE, TCP, and Serial connections
  - Message sending and receiving
  - Repeater login and command execution
  - Trace path visualization
  - Script execution support
Do you want to install the software package? [y/N]:y
Get:1 http://deb.debian.org/debian trixie/main amd64 python3-certifi all 2025.1.31+ds-1 [9652 B]                                                                                                                                                                                                                      
Get:2 http://deb.debian.org/debian trixie/main amd64 python3-chardet all 5.2.0+dfsg-2 [108 kB]                                                                                                                                                                                                                        
Get:3 http://deb.debian.org/debian trixie/main amd64 python3-idna all 3.10-1 [42.0 kB]                                                                                                                                                                                                                                
Get:4 http://deb.debian.org/debian trixie/main amd64 python3-urllib3 all 2.3.0-3+deb13u1 [115 kB]                                                                                                                                                                                                                     
Get:5 http://deb.debian.org/debian trixie/main amd64 python3-requests all 2.32.3+dfsg-5+deb13u1 [72.2 kB]                                                                                                                                                                                                             
Fetched 347 kB in 0s (0 B/s)                                                                                                                                                                                                                                                                                          
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 79, <STDIN> line 5.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC entries checked: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.40.1 /usr/local/share/perl/5.40.1 /usr/lib/x86_64-linux-gnu/perl5/5.40 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.40 /usr/share/perl/5.40 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 8, <STDIN> line 5.)
debconf: falling back to frontend: Teletype
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 79, <STDIN> line 5.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC entries checked: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.40.1 /usr/local/share/perl/5.40.1 /usr/lib/x86_64-linux-gnu/perl5/5.40 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.40 /usr/share/perl/5.40 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 8, <STDIN> line 5.)
debconf: falling back to frontend: Teletype
Selecting previously unselected package python3-certifi.
(Reading database ... 9158 files and directories currently installed.)
Preparing to unpack .../python3-certifi_2025.1.31+ds-1_all.deb ...
Unpacking python3-certifi (2025.1.31+ds-1) ...
Selecting previously unselected package python3-chardet.
Preparing to unpack .../python3-chardet_5.2.0+dfsg-2_all.deb ...
Unpacking python3-chardet (5.2.0+dfsg-2) ...
Selecting previously unselected package python3-idna.
Preparing to unpack .../python3-idna_3.10-1_all.deb ...
Unpacking python3-idna (3.10-1) ...
Selecting previously unselected package python3-urllib3.
Preparing to unpack .../python3-urllib3_2.3.0-3+deb13u1_all.deb ...
Unpacking python3-urllib3 (2.3.0-3+deb13u1) ...
Selecting previously unselected package python3-requests.
Preparing to unpack .../python3-requests_2.32.3+dfsg-5+deb13u1_all.deb ...
Unpacking python3-requests (2.32.3+dfsg-5+deb13u1) ...
Setting up python3-chardet (5.2.0+dfsg-2) ...
Setting up python3-certifi (2025.1.31+ds-1) ...
Setting up python3-idna (3.10-1) ...
Setting up python3-urllib3 (2.3.0-3+deb13u1) ...
Setting up python3-requests (2.32.3+dfsg-5+deb13u1) ...
Selecting previously unselected package meshcore-cli.
(Reading database ... 9337 files and directories currently installed.)
Preparing to unpack meshcore-cli_1.5.7-1_all.deb ...
Unpacking meshcore-cli (1.5.7-1) ...
Setting up meshcore-cli (1.5.7-1) ...

What needs to be fixed?

  • python3 does not find module_cli
    •     root@fa77bd7f3180:/app# meshcore-cli 
          Traceback (most recent call last):
            File "/usr/bin/meshcore-cli", line 5, in <module>
              from meshcore_cli.meshcore_cli import cli
          ModuleNotFoundError: No module named 'meshcore_cli'
  • RPM packages are failing to create because of the latest changes in the workflow to create separate packages.
  • Man pages generation.

Resume

I would be happy to create a branch in the main git repository to let others give help with this.

@zetneteork
Copy link
Copy Markdown
Author

Please feel free to contribute to this idea. Your help will be very appreciated.

In a case the branch cannot be created here, you can push directly to https://github.com/opentreecz/meshcore-cli/tree/develop

@fdlamotte
Copy link
Copy Markdown
Collaborator

Seems really nice,

Are you working with debian hamradio team ? Maybe some coordination is possible ? (or maybe you're part of the team)

@zetneteork
Copy link
Copy Markdown
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants