diff --git a/build_differ.py b/build_differ.py index added50..0c6ab53 100644 --- a/build_differ.py +++ b/build_differ.py @@ -1,4 +1,3 @@ -import re import subprocess import os import tarfile @@ -50,35 +49,56 @@ def cleanup_old_builds(dist_dir, current_version): os.remove(file_path) print(f"Deleted old build file: {file}") + def main(): version = get_version() print(f"Version: {version}") dist_dir = "./src/python_redlines/dist/" - # Build for Linux - print("Building for Linux...") + # Build for Linux x64 + print("Building for Linux x64...") run_command('dotnet publish ./csproj -c Release -r linux-x64 --self-contained') - # Build for Windows - print("Building for Windows...") + # Build for Linux ARM64 + print("Building for Linux ARM64...") + run_command('dotnet publish ./csproj -c Release -r linux-arm64 --self-contained') + + # Build for Windows x64 + print("Building for Windows x64...") run_command('dotnet publish ./csproj -c Release -r win-x64 --self-contained') - # Build for macOS - print("Building for macOS...") + # Build for Windows ARM64 + print("Building for Windows ARM64...") + run_command('dotnet publish ./csproj -c Release -r win-arm64 --self-contained') + + # Build for macOS x64 + print("Building for macOS x64...") run_command('dotnet publish ./csproj -c Release -r osx-x64 --self-contained') - # Compress the Linux build - linux_build_dir = './csproj/bin/Release/net8.0/linux-x64' - compress_files(linux_build_dir, f"{dist_dir}/linux-x64-{version}.tar.gz") + # Build for macOS ARM64 + print("Building for macOS ARM64...") + run_command('dotnet publish ./csproj -c Release -r osx-arm64 --self-contained') - # Compress the Windows build + # Compress the Linux x64 build + linux_x64_build_dir = './csproj/bin/Release/net8.0/linux-x64' + compress_files(linux_x64_build_dir, f"{dist_dir}/linux-x64-{version}.tar.gz") + + # Compress the Linux ARM64 build + linux_arm64_build_dir = './csproj/bin/Release/net8.0/linux-arm64' + compress_files(linux_arm64_build_dir, f"{dist_dir}/linux-arm64-{version}.tar.gz") + + # Compress the Windows x64 build windows_build_dir = './csproj/bin/Release/net8.0/win-x64' compress_files(windows_build_dir, f"{dist_dir}/win-x64-{version}.zip") - # Compress the macOS build - macos_build_dir = './csproj/bin/Release/net8.0/osx-x64' - compress_files(macos_build_dir, f"{dist_dir}/osx-x64-{version}.tar.gz") + # Compress the macOS x64 build + macos_x64_build_dir = './csproj/bin/Release/net8.0/osx-x64' + compress_files(macos_x64_build_dir, f"{dist_dir}/osx-x64-{version}.tar.gz") + + # Compress the macOS ARM64 build + macos_arm64_build_dir = './csproj/bin/Release/net8.0/osx-arm64' + compress_files(macos_arm64_build_dir, f"{dist_dir}/osx-arm64-{version}.tar.gz") cleanup_old_builds(dist_dir, version) diff --git a/docs/developer-guide.md b/docs/developer-guide.md index eff56aa..3dee299 100644 --- a/docs/developer-guide.md +++ b/docs/developer-guide.md @@ -90,17 +90,6 @@ dotnet publish -c Release -r osx-x64 --self-contained ## Running Tests To ensure everything is set up correctly and working as expected, run the tests included in the `tests/` directory. - -### Step 1: Navigate to the Test Directory - -Change to the `tests/` directory in your project: - -```bash -cd path/to/tests -``` - -### Step 2: Run the Tests - Execute the tests using pytest: ```bash diff --git a/docs/quickstart.md b/docs/quickstart.md index c99ad7b..2c74b80 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -28,7 +28,7 @@ with open('/path/to/modified.docx', 'rb') as f: modified_bytes = f.read() # This is a tuple, bytes @ element 0 -output = wrapper.run_redlines('AuthorTag', original_bytes, modified_bytes) +output = wrapper.run_redline('AuthorTag', original_bytes, modified_bytes) ``` In both cases, `output` will contain the byte content of the resulting redline - a .docx with changes in tracked diff --git a/src/python_redlines/engines.py b/src/python_redlines/engines.py index e8d8fcf..4c3f3a0 100644 --- a/src/python_redlines/engines.py +++ b/src/python_redlines/engines.py @@ -64,19 +64,26 @@ def __get_binaries_info(self): zip_name: str - The name of the zip file """ os_name = platform.system().lower() - arch = 'x64' # Assuming x64 architecture + arch = platform.machine().lower() + + if arch in ('x86_64', 'amd64'): + arch = 'x64' + elif arch in ('arm64', 'aarch64'): + arch = 'arm64' + else: + raise EnvironmentError(f"Unsupported architecture: {arch}") if os_name == 'linux': zip_name = f"linux-{arch}-{__version__}.tar.gz" - binary_name = 'linux-x64/redlines' + binary_name = f'linux-{arch}/redlines' elif os_name == 'windows': zip_name = f"win-{arch}-{__version__}.zip" - binary_name = 'win-x64/redlines.exe' + binary_name = f'win-{arch}/redlines.exe' elif os_name == 'darwin': zip_name = f"osx-{arch}-{__version__}.tar.gz" - binary_name = 'osx-x64/redlines' + binary_name = f'osx-{arch}/redlines' else: raise EnvironmentError("Unsupported OS")