diff --git a/README.md b/README.md index 57f9271..2ff135a 100644 --- a/README.md +++ b/README.md @@ -177,22 +177,24 @@ LOGAR/ │ ├── ci.yml # Continuous Integration automated test suite (runs on every push) │ ├── release-linux.yml # Linux release workflow (compiles Server.bin, Linux_Client.bin, checksums) │ └── release-windows.yml # Windows release workflow (compiles Server.exe, Win_Client.exe, checksums) -├── .gitignore # Ignore venv, caches, DBs, and private keys -├── requirements.txt # Unified dependencies -├── README.md # Comprehensive documentation +├── compilation/ # Build, packaging, and release automation tools +│ ├── package_dist.py # Multi-platform standalone binary packaging script +│ ├── requirements.txt # Unified project dependencies +│ └── upload_release.py # Direct Gitea REST API release asset publisher ├── src/ # Core application source modules │ ├── __init__.py │ ├── Server.py # Central TCP server and Hermes API │ ├── Win_Client.py # Windows edge forwarder │ └── Linux_Client.py # Linux edge forwarder -├── server_config.sample.json # Central server sample configuration -├── package_dist.py # Multi-platform standalone binary packaging script -├── upload_release.py # Direct Gitea REST API release asset publisher -├── test_pipeline.py # End-to-end integration test -├── tests/ # Unified unit test suites +├── tests/ # Automated test suites +│ ├── test_linux_client.py # Linux client unit tests +│ ├── test_pipeline.py # End-to-end integration test │ ├── test_server.py # Server unit tests -│ ├── test_win_client.py # Windows client unit tests -│ └── test_linux_client.py # Linux client unit tests +│ └── test_win_client.py # Windows client unit tests +├── .gitignore # Ignore venv, caches, DBs, and private keys +├── README.md # Comprehensive documentation +├── RELEASE_NOTES.md # Release history and changelog +├── server_config.sample.json # Central server sample configuration └── out/ # Edge forwarder deployment packages ├── win_client/ │ ├── client_config.sample.json # Reference client configuration @@ -210,7 +212,7 @@ LOGAR/ 1. **Install dependencies**: ```bash - pip install -r requirements.txt + pip install -r compilation/requirements.txt ``` 2. **Start the server** (generates `server_config.json` and keypair on first run): ```bash @@ -297,15 +299,15 @@ The pipeline test exercises invalid token rejection, encrypted socket streaming, ``` 3. **Execute the integration test** in Shell 2: ```bash - python test_pipeline.py + python tests/test_pipeline.py ``` ## Continuous Integration via Gitea Actions Continuous integration is automated via [`.gitea/workflows/ci.yml`](.gitea/workflows/ci.yml) and triggers automatically on **every push** and pull request: -1. **Syntax Compilation**: Validates all Python scripts (`src/Server.py`, `src/Win_Client.py`, `src/Linux_Client.py`, `package_dist.py`, `upload_release.py`, `test_pipeline.py`, and test suites). +1. **Syntax Compilation**: Validates all Python scripts (`src/Server.py`, `src/Win_Client.py`, `src/Linux_Client.py`, `compilation/package_dist.py`, `compilation/upload_release.py`, `tests/test_pipeline.py`, and test suites). 2. **Component Unit Tests**: Discovers and runs all unit tests in `tests/` (`test_server.py`, `test_win_client.py`, `test_linux_client.py`). -3. **End-to-End Pipeline Verification**: Automatically spins up the LOGAR server hub, generates test configs, runs `test_pipeline.py` (testing socket authentication, 4-run rule persistence, Hermes API report, and client integrations), and shuts down the test instance. +3. **End-to-End Pipeline Verification**: Automatically spins up the LOGAR server hub, generates test configs, runs `tests/test_pipeline.py` (testing socket authentication, 4-run rule persistence, Hermes API report, and client integrations), and shuts down the test instance. --- @@ -362,13 +364,13 @@ git push origin v1.0.1 You can also compile and package binaries locally anytime: ```bash # Windows -py -3.12 package_dist.py --target windows +py -3.12 compilation/package_dist.py --target windows # Linux -python3 package_dist.py --target linux +python3 compilation/package_dist.py --target linux ``` To upload local builds directly to Gitea: ```powershell -python upload_release.py --tag v1.0.1 --token +python compilation/upload_release.py --tag v1.0.1 --token ``` *(Environment variables `GITEA_TOKEN`, `GITEA_SERVER_URL`, `GITEA_REPOSITORY`, and `GITEA_REF_NAME` are also supported automatically).*