From b7cd53c75bf46cf7e7d35e36a415722bdb432b08 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Sun, 08 Feb 2026 00:33:02 +0000
Subject: [PATCH] Rename everything to archrepobuild

---
 scripts/build_binary.py            |    8 +-
 config/config.example.yaml         |    4 
 src/archrepobuild/resolver.py      |    4 
 src/archrepobuild/cli.py           |   36 ++++++------
 src/archrepobuild/notifications.py |    8 +-
 tests/integration_test.py          |   22 +++---
 src/archrepobuild/repo.py          |    6 +-
 tests/test_resolver.py             |    4 
 src/archrepobuild/builder.py       |    8 +-
 src/archrepobuild/logging.py       |    4 
 README.md                          |   24 ++++----
 src/archrepobuild/config.py        |    0 
 src/archrepobuild/__init__.py      |    0 
 src/archrepobuild/aur.py           |    2 
 tests/test_aur.py                  |    8 +-
 pyproject.toml                     |    6 +-
 tests/test_config.py               |    2 
 17 files changed, 73 insertions(+), 73 deletions(-)

diff --git a/README.md b/README.md
index dd87bde..f3f0922 100644
--- a/README.md
+++ b/README.md
@@ -19,8 +19,8 @@
 ### From Source
 ```bash
 # Clone the repository
-git clone https://github.com/joelgrun/archbuild
-cd archbuild
+git clone https://github.com/joelgrun/archrepobuild
+cd archrepobuild
 
 # Set up virtual environment and install
 python -m venv .venv
@@ -39,7 +39,7 @@
 ```bash
 python scripts/build_binary.py
 ```
-The binary will be available at `dist/archbuild-bin`.
+The binary will be available at `dist/archrepobuild-bin`.
 
 ## Quick Start
 
@@ -51,22 +51,22 @@
 
 2. **Initialize repository**:
    ```bash
-   archbuild -c config.yaml init
+   archrepobuild -c config.yaml init
    ```
 
 3. **Add packages**:
    ```bash
-   archbuild add yay paru
+   archrepobuild add yay paru
    ```
 
 4. **Build all packages**:
    ```bash
-   archbuild build-all
+   archrepobuild build-all
    ```
 
 5. **Build a specific package**:
    ```bash
-   archbuild build <package>
+   archrepobuild build <package>
    ```
 
 ## Commands
@@ -112,26 +112,26 @@
 ## Migration from Bash Version
 
 ```bash
-archbuild migrate-config vars.sh -o config.yaml
+archrepobuild migrate-config vars.sh -o config.yaml
 ```
 
 ## Systemd Timer
 
-Create `/etc/systemd/system/archbuild.service`:
+Create `/etc/systemd/system/archrepobuild.service`:
 ```ini
 [Unit]
 Description=Build AUR packages
 
 [Service]
 Type=oneshot
-ExecStart=/usr/bin/archbuild -c /etc/archbuild/config.yaml build-all
+ExecStart=/usr/bin/archrepobuild -c /etc/archrepobuild/config.yaml build-all
 User=builduser
 ```
 
-Create `/etc/systemd/system/archbuild.timer`:
+Create `/etc/systemd/system/archrepobuild.timer`:
 ```ini
 [Unit]
-Description=Run archbuild daily
+Description=Run archrepobuild daily
 
 [Timer]
 OnCalendar=daily
diff --git a/config/config.example.yaml b/config/config.example.yaml
index 29ea299..dc17822 100644
--- a/config/config.example.yaml
+++ b/config/config.example.yaml
@@ -44,7 +44,7 @@
     # Recipient email address
     to: ""
     # Sender email address
-    from: "archbuild@localhost"
+    from: "archrepobuild@localhost"
     # SMTP server settings
     smtp_host: "localhost"
     smtp_port: 25
@@ -84,4 +84,4 @@
 # Logging configuration
 log_level: "INFO"  # DEBUG, INFO, WARNING, ERROR, CRITICAL
 # Uncomment to also log to file:
-# log_file: "/var/log/archbuild.log"
+# log_file: "/var/log/archrepobuild.log"
diff --git a/pyproject.toml b/pyproject.toml
index c92fcfc..39b4899 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -3,7 +3,7 @@
 build-backend = "hatchling.build"
 
 [project]
-name = "archbuild"
+name = "archrepobuild"
 version = "2.0.0"
 description = "Automatic AUR package building and repository management for Arch Linux"
 readme = "README.md"
@@ -41,10 +41,10 @@
 ]
 
 [project.scripts]
-archrepobuild = "archbuild.cli:main"
+archrepobuild = "archrepobuild.cli:main"
 
 [tool.hatch.build.targets.wheel]
-packages = ["src/archbuild"]
+packages = ["src/archrepobuild"]
 
 [tool.ruff]
 target-version = "py311"
diff --git a/scripts/build_binary.py b/scripts/build_binary.py
index f075635..567992b 100644
--- a/scripts/build_binary.py
+++ b/scripts/build_binary.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 """
-Script to build a standalone executable for archbuild using PyInstaller.
+Script to build a standalone executable for archrepobuild using PyInstaller.
 """
 
 import subprocess
@@ -24,8 +24,8 @@
     src = root / "src"
     
     # Create a temporary entry script
-    entry_script = root / "archbuild_entry.py"
-    entry_script.write_text("from archbuild.cli import main\nif __name__ == '__main__':\n    main()\n")
+    entry_script = root / "archrepobuild_entry.py"
+    entry_script.write_text("from archrepobuild.cli import main\nif __name__ == '__main__':\n    main()\n")
 
     # PyInstaller command
     pyinstaller_exe = shutil.which("pyinstaller")
@@ -39,7 +39,7 @@
         "--name", "archrepobuild",
         "--paths", str(src),
         "--clean",
-        "--collect-all", "archbuild",
+        "--collect-all", "archrepobuild",
         "--collect-all", "rich",
         str(entry_script)
     ]
diff --git a/src/archbuild/__init__.py b/src/archrepobuild/__init__.py
similarity index 100%
rename from src/archbuild/__init__.py
rename to src/archrepobuild/__init__.py
diff --git a/src/archbuild/aur.py b/src/archrepobuild/aur.py
similarity index 99%
rename from src/archbuild/aur.py
rename to src/archrepobuild/aur.py
index 5984e00..a2ca289 100644
--- a/src/archbuild/aur.py
+++ b/src/archrepobuild/aur.py
@@ -8,7 +8,7 @@
 
 import aiohttp
 
-from archbuild.logging import get_logger
+from archrepobuild.logging import get_logger
 
 logger = get_logger("aur")
 
diff --git a/src/archbuild/builder.py b/src/archrepobuild/builder.py
similarity index 98%
rename from src/archbuild/builder.py
rename to src/archrepobuild/builder.py
index 2a478ae..a99af5d 100644
--- a/src/archbuild/builder.py
+++ b/src/archrepobuild/builder.py
@@ -12,10 +12,10 @@
 from concurrent.futures import ProcessPoolExecutor
 from typing import Any
 
-from archbuild.aur import AURClient
-from archbuild.config import Config, PackageOverride
-from archbuild.logging import get_logger
-from archbuild.resolver import DependencyResolver
+from archrepobuild.aur import AURClient
+from archrepobuild.config import Config, PackageOverride
+from archrepobuild.logging import get_logger
+from archrepobuild.resolver import DependencyResolver
 
 logger = get_logger("builder")
 
diff --git a/src/archbuild/cli.py b/src/archrepobuild/cli.py
similarity index 94%
rename from src/archbuild/cli.py
rename to src/archrepobuild/cli.py
index 0640974..79d98f2 100644
--- a/src/archbuild/cli.py
+++ b/src/archrepobuild/cli.py
@@ -9,13 +9,13 @@
 from rich.console import Console
 from rich.table import Table
 
-from archbuild import __version__
-from archbuild.aur import AURClient
-from archbuild.builder import Builder, BuildStatus
-from archbuild.config import Config, load_config, migrate_vars_sh, save_config
-from archbuild.logging import console as log_console, setup_logging
-from archbuild.notifications import NotificationManager
-from archbuild.repo import RepoManager
+from archrepobuild import __version__
+from archrepobuild.aur import AURClient
+from archrepobuild.builder import Builder, BuildStatus
+from archrepobuild.config import Config, load_config, migrate_vars_sh, save_config
+from archrepobuild.logging import console as log_console, setup_logging
+from archrepobuild.notifications import NotificationManager
+from archrepobuild.repo import RepoManager
 
 console = Console()
 
@@ -50,7 +50,7 @@
     default=Path("config.yaml"),
     help="Path to configuration file",
 )
-@click.version_option(__version__, prog_name="archbuild")
+@click.version_option(__version__, prog_name="archrepobuild")
 @click.pass_context
 def cli(ctx: click.Context, config: Path) -> None:
     """Archbuild - Automatic AUR package building and repository management.
@@ -161,7 +161,7 @@
 
                 if all_official:
                     # Find packages now in official repos
-                    from archbuild.resolver import DependencyResolver
+                    from archrepobuild.resolver import DependencyResolver
                     resolver = DependencyResolver(aur)
 
                     for pkg in repo.list_packages():
@@ -186,7 +186,7 @@
 
     async def _check() -> None:
         async with AURClient() as aur:
-            from archbuild.resolver import DependencyResolver
+            from archrepobuild.resolver import DependencyResolver
             resolver = DependencyResolver(aur)
             repo = RepoManager(config)
 
@@ -364,12 +364,12 @@
     
     interval = click.prompt("How often should builds run? (systemd Calendar spec, e.g., 12h, daily)", default="12h")
     
-    # Get absolute path to archbuild executable
+    # Get absolute path to archrepobuild executable
     import shutil
-    archbuild_path = shutil.which("archbuild")
-    if not archbuild_path:
+    archrepobuild_path = shutil.which("archrepobuild")
+    if not archrepobuild_path:
         # Fallback to current sys.executable if running as module or in venv
-        archbuild_path = f"{sys.executable} -m archbuild.cli"
+        archrepobuild_path = f"{sys.executable} -m archrepobuild.cli"
     
     user_systemd_dir = Path.home() / ".config" / "systemd" / "user"
     user_systemd_dir.mkdir(parents=True, exist_ok=True)
@@ -380,7 +380,7 @@
 
 [Service]
 Type=oneshot
-ExecStart={archbuild_path} build-all
+ExecStart={archrepobuild_path} build-all
 Environment="PATH={Path.home()}/.local/bin:/usr/bin:/bin"
 """
     
@@ -395,15 +395,15 @@
 WantedBy=timers.target
 """
     
-    service_file = user_systemd_dir / "archbuild.service"
-    timer_file = user_systemd_dir / "archbuild.timer"
+    service_file = user_systemd_dir / "archrepobuild.service"
+    timer_file = user_systemd_dir / "archrepobuild.timer"
     
     service_file.write_text(service_content)
     timer_file.write_text(timer_content)
     
     try:
         subprocess.run(["systemctl", "--user", "daemon-reload"], check=True)
-        subprocess.run(["systemctl", "--user", "enable", "--now", "archbuild.timer"], check=True)
+        subprocess.run(["systemctl", "--user", "enable", "--now", "archrepobuild.timer"], check=True)
         console.print(f"[green]✓[/] Systemd timer enabled (running every {interval})")
     except subprocess.CalledProcessError as e:
         console.print(f"[red]✗[/] Failed to enable systemd timer: {e}")
diff --git a/src/archbuild/config.py b/src/archrepobuild/config.py
similarity index 100%
rename from src/archbuild/config.py
rename to src/archrepobuild/config.py
diff --git a/src/archbuild/logging.py b/src/archrepobuild/logging.py
similarity index 93%
rename from src/archbuild/logging.py
rename to src/archrepobuild/logging.py
index 1b40804..0969fcf 100644
--- a/src/archbuild/logging.py
+++ b/src/archrepobuild/logging.py
@@ -47,7 +47,7 @@
         handlers=handlers,
     )
 
-    return logging.getLogger("archbuild")
+    return logging.getLogger("archrepobuild")
 
 
 def get_logger(name: str) -> logging.Logger:
@@ -59,4 +59,4 @@
     Returns:
         Logger instance
     """
-    return logging.getLogger(f"archbuild.{name}")
+    return logging.getLogger(f"archrepobuild.{name}")
diff --git a/src/archbuild/notifications.py b/src/archrepobuild/notifications.py
similarity index 97%
rename from src/archbuild/notifications.py
rename to src/archrepobuild/notifications.py
index be00edc..51cfd18 100644
--- a/src/archbuild/notifications.py
+++ b/src/archrepobuild/notifications.py
@@ -12,9 +12,9 @@
 
 import aiohttp
 
-from archbuild.builder import BuildResult, BuildStatus
-from archbuild.config import Config, EmailConfig, WebhookConfig
-from archbuild.logging import get_logger
+from archrepobuild.builder import BuildResult, BuildStatus
+from archrepobuild.config import Config, EmailConfig, WebhookConfig
+from archrepobuild.logging import get_logger
 
 logger = get_logger("notifications")
 
@@ -120,7 +120,7 @@
 
         try:
             msg = MIMEMultipart()
-            msg["From"] = self.config.from_addr or f"archbuild@localhost"
+            msg["From"] = self.config.from_addr or f"archrepobuild@localhost"
             msg["To"] = self.config.to
             msg["Subject"] = f"Build Errors - {config.repository.name}"
 
diff --git a/src/archbuild/repo.py b/src/archrepobuild/repo.py
similarity index 98%
rename from src/archbuild/repo.py
rename to src/archrepobuild/repo.py
index d8d0960..d6f342b 100644
--- a/src/archbuild/repo.py
+++ b/src/archrepobuild/repo.py
@@ -7,9 +7,9 @@
 from pathlib import Path
 from typing import Any
 
-from archbuild.builder import BuildResult, BuildStatus, FileLock
-from archbuild.config import Config
-from archbuild.logging import get_logger
+from archrepobuild.builder import BuildResult, BuildStatus, FileLock
+from archrepobuild.config import Config
+from archrepobuild.logging import get_logger
 
 logger = get_logger("repo")
 
diff --git a/src/archbuild/resolver.py b/src/archrepobuild/resolver.py
similarity index 98%
rename from src/archbuild/resolver.py
rename to src/archrepobuild/resolver.py
index 0a11e63..55d0f11 100644
--- a/src/archbuild/resolver.py
+++ b/src/archrepobuild/resolver.py
@@ -5,8 +5,8 @@
 from dataclasses import dataclass, field
 from enum import Enum
 
-from archbuild.aur import AURClient, Package
-from archbuild.logging import get_logger
+from archrepobuild.aur import AURClient, Package
+from archrepobuild.logging import get_logger
 
 logger = get_logger("resolver")
 
diff --git a/tests/integration_test.py b/tests/integration_test.py
index b5f98cd..2f141ed 100644
--- a/tests/integration_test.py
+++ b/tests/integration_test.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 """
-Integration test script for archbuild.
+Integration test script for archrepobuild.
 
 This script creates a temporary repository, initializes it with a basic config,
 adds test packages, and verifies they build and are added correctly.
@@ -23,11 +23,11 @@
 # Add src to path for development
 sys.path.insert(0, str(Path(__file__).parent.parent / "src"))
 
-from archbuild.aur import AURClient
-from archbuild.builder import Builder, BuildStatus
-from archbuild.config import Config, RepositoryConfig, BuildingConfig, SigningConfig, PackageOverride
-from archbuild.logging import setup_logging, console
-from archbuild.repo import RepoManager
+from archrepobuild.aur import AURClient
+from archrepobuild.builder import Builder, BuildStatus
+from archrepobuild.config import Config, RepositoryConfig, BuildingConfig, SigningConfig, PackageOverride
+from archrepobuild.logging import setup_logging, console
+from archrepobuild.repo import RepoManager
 
 
 # Test packages - real packages that exist in the AUR
@@ -58,7 +58,7 @@
         self.failed = 0
 
     def _run_cli(self, command: str, *args: str) -> subprocess.CompletedProcess:
-        """Run archbuild CLI command via subprocess."""
+        """Run archrepobuild CLI command via subprocess."""
         if not self.config_path:
             raise RuntimeError("Config path not set")
 
@@ -74,7 +74,7 @@
         else:
             # Add src to PYTHONPATH so the CLI can find the package
             env["PYTHONPATH"] = str(Path(__file__).parent.parent / "src")
-            cmd = [sys.executable, "-m", "archbuild.cli", "-c", str(self.config_path), command] + list(args)
+            cmd = [sys.executable, "-m", "archrepobuild.cli", "-c", str(self.config_path), command] + list(args)
             
         return subprocess.run(cmd, capture_output=True, text=True, env=env)
 
@@ -83,7 +83,7 @@
         console.print("\n[bold blue]═══ Setting up test environment ═══[/]")
         
         # Create temp directory
-        self.temp_dir = Path(tempfile.mkdtemp(prefix="archbuild_test_"))
+        self.temp_dir = Path(tempfile.mkdtemp(prefix="archrepobuild_test_"))
         console.print(f"  Created temp directory: {self.temp_dir}")
 
         # Create subdirectories
@@ -147,7 +147,7 @@
         )
 
         # Save config to disk for CLI to use
-        from archbuild.config import save_config
+        from archrepobuild.config import save_config
         self.config_path = self.temp_dir / "config.yaml"
         save_config(self.config, self.config_path)
 
@@ -290,7 +290,7 @@
 
                         if artifacts:
                             # Create a mock build result for add_packages
-                            from archbuild.builder import BuildResult
+                            from archrepobuild.builder import BuildResult
                             mock_result = BuildResult(
                                 package=pkg_name,
                                 status=BuildStatus.SUCCESS,
diff --git a/tests/test_aur.py b/tests/test_aur.py
index 93975ce..fb9bd24 100644
--- a/tests/test_aur.py
+++ b/tests/test_aur.py
@@ -4,7 +4,7 @@
 from unittest.mock import AsyncMock, patch, MagicMock
 from datetime import datetime
 
-from archbuild.aur import AURClient, Package
+from archrepobuild.aur import AURClient, Package
 
 
 @pytest.fixture
@@ -107,21 +107,21 @@
 
     def test_parse_simple(self):
         """Test parsing simple dependency."""
-        from archbuild.resolver import Dependency
+        from archrepobuild.resolver import Dependency
         dep = Dependency.parse("package")
         assert dep.name == "package"
         assert dep.version_constraint is None
 
     def test_parse_with_version(self):
         """Test parsing dependency with version."""
-        from archbuild.resolver import Dependency
+        from archrepobuild.resolver import Dependency
         dep = Dependency.parse("package>=1.0")
         assert dep.name == "package"
         assert dep.version_constraint == ">=1.0"
 
     def test_parse_exact_version(self):
         """Test parsing dependency with exact version."""
-        from archbuild.resolver import Dependency
+        from archrepobuild.resolver import Dependency
         dep = Dependency.parse("package=2.0")
         assert dep.name == "package"
         assert dep.version_constraint == "=2.0"
diff --git a/tests/test_config.py b/tests/test_config.py
index 55194af..cbff5d0 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -4,7 +4,7 @@
 from pathlib import Path
 from tempfile import NamedTemporaryFile
 
-from archbuild.config import (
+from archrepobuild.config import (
     Config,
     load_config,
     migrate_vars_sh,
diff --git a/tests/test_resolver.py b/tests/test_resolver.py
index f2e089b..775b51d 100644
--- a/tests/test_resolver.py
+++ b/tests/test_resolver.py
@@ -3,7 +3,7 @@
 import pytest
 from unittest.mock import AsyncMock, patch
 
-from archbuild.resolver import DependencyResolver, Dependency, DependencyType, BuildOrder
+from archrepobuild.resolver import DependencyResolver, Dependency, DependencyType, BuildOrder
 
 
 class TestDependency:
@@ -118,7 +118,7 @@
         cycles = resolver.detect_cycles(graph)
         assert len(cycles) > 0
 
-    @patch("archbuild.resolver.subprocess.run")
+    @patch("archrepobuild.resolver.subprocess.run")
     def test_is_in_official_repos(self, mock_run, mock_aur_client):
         """Test checking official repos."""
         mock_run.return_value.returncode = 0

--
Gitblit v1.10.0