Migrate to Poetry packaging and restructure codebase #21

Merged
Sudo-Ivan merged 23 commits from codebase-improvements into master 2025-12-01 18:24:25 +00:00
3 changed files with 52 additions and 11 deletions
Showing only changes of commit 0beaaaf4b1 - Show all commits

48
cx_setup.py Normal file
View File

@@ -0,0 +1,48 @@
from pathlib import Path
from cx_Freeze import Executable, setup
from meshchatx.src.version import __version__
ROOT = Path(__file__).resolve().parent
PUBLIC_DIR = ROOT / "meshchatx" / "public"
include_files = [
(str(PUBLIC_DIR), "public"),
("logo", "logo"),
]
setup(
name="ReticulumMeshChatX",
version=__version__,
description="A simple mesh network communications app powered by the Reticulum Network Stack",
executables=[
Executable(
script="meshchatx/meshchat.py",
base=None,
target_name="ReticulumMeshChatX",
shortcut_name="ReticulumMeshChatX",
shortcut_dir="ProgramMenuFolder",
icon="logo/icon.ico",
),
],
options={
"build_exe": {
"packages": [
"RNS",
"RNS.Interfaces",
"LXMF",
],
"include_files": include_files,
"excludes": [
"PIL",
],
"optimize": 2,
"build_exe": "build/exe",
"replace_paths": [
("*", ""),
],
},
},
)

View File

@@ -1,5 +1,6 @@
"""Auto-generated helper so Python tooling and the Electron build
"""
Auto-generated helper so Python tooling and the Electron build
share the same version string.
"""
__version__ = "2.41.0"
__version__ = '2.41.0'

View File

@@ -1,16 +1,8 @@
#!/usr/bin/env node
const { execSync } = require('child_process');
const path = require('path');
const os = require('os');
const platform = os.platform();
const venvPython = platform === 'win32'
? path.join('venv', 'Scripts', 'python.exe')
: path.join('venv', 'bin', 'python');
try {
execSync(`${venvPython} setup.py build`, { stdio: 'inherit' });
execSync(`poetry run python cx_setup.py build`, { stdio: 'inherit' });
} catch (error) {
console.error('Build failed:', error.message);
process.exit(1);