Skip to content

Commit 1e81b07

Browse files
committed
Merge branch 'develop'
2 parents 71d34a7 + 24847f9 commit 1e81b07

116 files changed

Lines changed: 25941 additions & 5005 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# PyCompiler ARK++ Professional Edition - Environment Configuration
2+
# Copy this file to .env and customize for your environment
3+
4+
# Application Configuration
5+
PYCOMPILER_EDITION=professional
6+
PYCOMPILER_VERSION=3.2.3
7+
PYCOMPILER_DEBUG=false
8+
PYCOMPILER_LOG_LEVEL=INFO
9+
10+
# Development Settings
11+
DEVELOPMENT_MODE=false
12+
ENABLE_DEBUG_LOGGING=false
13+
SKIP_SECURITY_CHECKS=false
14+
15+
# UI Configuration
16+
DEFAULT_THEME=dark
17+
ENABLE_ANIMATIONS=true
18+
WINDOW_GEOMETRY=1200x800
19+
REMEMBER_WINDOW_STATE=true
20+
21+
# Build Configuration
22+
DEFAULT_ENGINE=pyinstaller
23+
ENABLE_AUTO_PLUGINS=true
24+
BUILD_TIMEOUT=3600
25+
PARALLEL_BUILDS=true
26+
27+
# Security Configuration
28+
ENABLE_CODE_SIGNING=false
29+
SIGNING_CERTIFICATE_PATH=
30+
SIGNING_CERTIFICATE_PASSWORD=
31+
ENABLE_SBOM_GENERATION=true
32+
33+
# Code Signing - Windows
34+
WINDOWS_CERT_PATH=
35+
WINDOWS_CERT_PASSWORD=
36+
WINDOWS_TIMESTAMP_URL=http://timestamp.digicert.com
37+
38+
# Code Signing - macOS
39+
MACOS_SIGNING_IDENTITY=
40+
MACOS_KEYCHAIN_PATH=
41+
MACOS_NOTARIZE=false
42+
MACOS_NOTARYTOOL_PROFILE=
43+
44+
# Code Signing - Linux
45+
LINUX_GPG_KEY_ID=
46+
47+
# CI/CD Configuration
48+
CI_ENVIRONMENT=false
49+
SKIP_INTERACTIVE_PROMPTS=false
50+
ENABLE_TELEMETRY=false
51+
52+
# Plugin Configuration
53+
PLUGIN_DISCOVERY_PATHS=API,acasl
54+
PLUGIN_TIMEOUT=300
55+
ENABLE_PLUGIN_SANDBOXING=true
56+
57+
# Logging Configuration
58+
LOG_FILE_PATH=logs/pycompiler.log
59+
LOG_ROTATION_SIZE=10MB
60+
LOG_RETENTION_DAYS=30
61+
ENABLE_CRASH_REPORTING=true
62+
63+
# Performance Configuration
64+
MEMORY_LIMIT_MB=2048
65+
CPU_CORES=auto
66+
ENABLE_PERFORMANCE_MONITORING=false
67+
68+
# Network Configuration
69+
HTTP_TIMEOUT=30
70+
ENABLE_UPDATE_CHECKS=true
71+
UPDATE_CHECK_INTERVAL=24h
72+
73+
# Workspace Configuration
74+
DEFAULT_WORKSPACE_PATH=
75+
AUTO_SAVE_INTERVAL=300
76+
BACKUP_COUNT=5
77+
78+
# Advanced Configuration
79+
ENABLE_EXPERIMENTAL_FEATURES=false
80+
STRICT_MODE=true
81+
COMPATIBILITY_MODE=false

.github/workflows/ci.yml

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ jobs:
4141
run: ruff format --check .
4242

4343
- name: Mypy (type check)
44-
run: mypy --config-file pyproject.toml utils Plugins_SDK engine_sdk bcasl
44+
run: mypy --config-file pyproject.toml utils API_SDK engine_sdk bcasl acasl
4545

4646
- name: Bandit (security)
47-
run: bandit -r utils Plugins_SDK engine_sdk bcasl -f json -o bandit-report.json
47+
run: bandit -r utils API_SDK engine_sdk bcasl acasl -f json -o bandit-report.json
4848

4949
- name: pip-audit (dependencies)
5050
if: hashFiles('requirements.txt') != ''
@@ -109,13 +109,11 @@ jobs:
109109
pip install mypy
110110
111111
- name: MyPy type check
112-
run: mypy --config-file pyproject.toml utils Plugins_SDK engine_sdk bcasl
112+
run: mypy --config-file pyproject.toml utils API_SDK engine_sdk bcasl acasl
113113

114114
tests:
115115
name: Tests
116116
runs-on: ubuntu-latest
117-
env:
118-
QT_QPA_PLATFORM: offscreen
119117
strategy:
120118
matrix:
121119
python-version: ['3.10', '3.11', '3.12']
@@ -137,7 +135,7 @@ jobs:
137135
- name: Run tests with pytest
138136
run: |
139137
if [ -d tests ]; then
140-
python -m pytest tests/ -v --tb=short --cov=utils --cov=Plugins_SDK --cov=engine_sdk --cov=bcasl --cov-report=xml --cov-report=term-missing
138+
python -m pytest tests/ -v --tb=short --cov=utils --cov=API_SDK --cov=engine_sdk --cov=bcasl --cov=acasl --cov-report=xml --cov-report=term-missing
141139
else
142140
echo "No tests directory found, skipping tests"
143141
fi
@@ -155,8 +153,6 @@ jobs:
155153
name: Build and test (${{ matrix.os }}, py${{ matrix.python-version }})
156154
runs-on: ${{ matrix.os }}
157155
needs: lint
158-
env:
159-
QT_QPA_PLATFORM: offscreen
160156
strategy:
161157
fail-fast: false
162158
matrix:
@@ -201,5 +197,16 @@ jobs:
201197
path: coverage.xml
202198
if-no-files-found: ignore
203199

204-
# Packaging (sdist/wheel) intentionally disabled.
205-
# This project is distributed as a standalone binary, not a PyPI package.
200+
- name: Build distributions (sdist+wheel) if packaging configured
201+
if: >-
202+
hashFiles('pyproject.toml') != '' ||
203+
hashFiles('setup.cfg') != '' ||
204+
hashFiles('setup.py') != ''
205+
run: python -m build --sdist --wheel
206+
207+
- name: Upload dist artifacts (if any)
208+
uses: actions/upload-artifact@v4
209+
with:
210+
name: dist-${{ matrix.os }}-py${{ matrix.python-version }}
211+
path: dist/*
212+
if-no-files-found: warn

.github/workflows/release.yml

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ on:
66
- 'v*.*.*'
77
workflow_dispatch:
88

9-
env:
10-
PYCOMPILER_BINARY_BUILD_CMD: ''
11-
129
jobs:
1310
build:
1411
name: Build release artifacts (${{ matrix.os }})
@@ -36,17 +33,14 @@ jobs:
3633
run: python -m pip install -r requirements.txt
3734

3835
- name: Install build tooling
39-
run: python -m pip install pip-licenses
40-
41-
- name: Build binary (optional)
42-
shell: bash
43-
run: |
44-
if [ -n "${PYCOMPILER_BINARY_BUILD_CMD:-}" ]; then
45-
echo "Running binary build command: $PYCOMPILER_BINARY_BUILD_CMD"
46-
bash -lc "$PYCOMPILER_BINARY_BUILD_CMD"
47-
else
48-
echo "No binary build command configured."
49-
fi
36+
run: python -m pip install build pip-licenses
37+
38+
- name: Build distributions (sdist+wheel) if packaging configured
39+
if: >-
40+
hashFiles('pyproject.toml') != '' ||
41+
hashFiles('setup.cfg') != '' ||
42+
hashFiles('setup.py') != ''
43+
run: python -m build --sdist --wheel
5044

5145
- name: Generate third-party licenses (if requirements)
5246
if: hashFiles('requirements.txt') != ''

0 commit comments

Comments
 (0)