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