diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a3310db..f80fe61 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -68,5 +68,5 @@ jobs: - name: Verify PyPI upload run: | echo "✓ Package published to PyPI" - echo "Install with: pip install logview" - echo "Package URL: https://pypi.org/project/logview/" + echo "Install with: pip install logview-ag" + echo "Package URL: https://pypi.org/project/logview-ag/" diff --git a/CHANGELOG.md b/CHANGELOG.md index 2793203..8dc3336 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - **Docker Container Log Support**: View logs from Docker containers - New `DockerLogSource` adapter implementing LogSource protocol - - Optional dependency: `pip install logview[docker]` + - Optional dependency: `pip install logview-ag[docker]` - Supports both JSON and plain text Docker log formats - Automatic severity inference from log messages - Rich container metadata extraction (image, labels, status) diff --git a/DOCKER.md b/DOCKER.md index 056478c..15d2b23 100644 --- a/DOCKER.md +++ b/DOCKER.md @@ -74,7 +74,7 @@ This follows the same pattern as `LoggingClientProtocol` in the GCP adapter, mak 1. **Optional Docker SDK dependency**: - Check if `docker` package is available - Raise `DockerNotInstalledError` with helpful message if missing - - Support installation via `pip install logview[docker]` + - Support installation via `pip install logview-ag[docker]` 2. **Container resolution**: - Accept container name or ID @@ -281,7 +281,7 @@ Add to `pyproject.toml`: docker = ["docker>=7.0.0"] ``` -Install with: `pip install logview[docker]` +Install with: `pip install logview-ag[docker]` ### Why Optional? @@ -303,7 +303,7 @@ class DockerNotInstalledError(DockerError): def __init__(self): super().__init__( "Docker support requires the docker package. " - "Install with: pip install logview[docker]" + "Install with: pip install logview-ag[docker]" ) class DockerDaemonError(DockerError): diff --git a/PLAN.md b/PLAN.md index 935482c..d5a4006 100644 --- a/PLAN.md +++ b/PLAN.md @@ -892,7 +892,7 @@ pipx install logview ```bash pip install logview # With GCP/GKE support -pip install logview[all] +pip install logview-ag[all] ``` **Method 4: From Source** diff --git a/README.md b/README.md index 557e44c..097d00b 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # LogView [![CI](https://github.com/agileguy/logview/actions/workflows/ci.yml/badge.svg)](https://github.com/agileguy/logview/actions/workflows/ci.yml) -[![PyPI version](https://img.shields.io/pypi/v/logview.svg)](https://pypi.org/project/logview/) -[![Python](https://img.shields.io/pypi/pyversions/logview.svg)](https://pypi.org/project/logview/) +[![PyPI version](https://img.shields.io/pypi/v/logview-ag.svg)](https://pypi.org/project/logview-ag/) +[![Python](https://img.shields.io/pypi/pyversions/logview-ag.svg)](https://pypi.org/project/logview-ag/) A testable, responsive log viewer TUI with pluggable log source contexts. @@ -21,38 +21,38 @@ A testable, responsive log viewer TUI with pluggable log source contexts. ## Installation -[![PyPI version](https://img.shields.io/pypi/v/logview.svg)](https://pypi.org/project/logview/) +[![PyPI version](https://img.shields.io/pypi/v/logview-ag.svg)](https://pypi.org/project/logview-ag/) ### Quick Install (Recommended) ```bash # Using pipx (isolated environment - recommended) -pipx install logview +pipx install logview-ag # Or using pip -pip install logview +pip install logview-ag ``` ### With Optional Dependencies ```bash # Base installation (local logs only) -pip install logview +pip install logview-ag # With GCP Cloud Logging support -pip install logview[gcp] +pip install logview-ag[gcp] # With GKE support -pip install logview[gke] +pip install logview-ag[gke] # With Docker support -pip install logview[docker] +pip install logview-ag[docker] # With context detection (auto-discover GCP/GKE) -pip install logview[detection] +pip install logview-ag[detection] # With everything -pip install logview[all] +pip install logview-ag[all] ``` #### From Source (Development) @@ -82,7 +82,7 @@ curl -fsSL https://github.com/agileguy/logview/releases/download/vX.Y.Z/SHA256SU sha256sum -c SHA256SUMS --ignore-missing ``` -Expected output: `logview-X.Y.Z-py3-none-any.whl: OK` +Expected output: `logview_ag-X.Y.Z-py3-none-any.whl: OK` ### Uninstall @@ -91,8 +91,8 @@ Expected output: `logview-X.Y.Z-py3-none-any.whl: OK` curl -fsSL https://raw.githubusercontent.com/agileguy/logview/main/install.sh | bash -s -- --uninstall # Or manually -pipx uninstall logview # if installed with pipx -pip uninstall logview # if installed with pip +pipx uninstall logview-ag # if installed with pipx +pip uninstall logview-ag # if installed with pip # Remove configuration (optional) rm -rf ~/.config/logview @@ -224,7 +224,7 @@ To view logs from Docker containers: 1. **Install with Docker support**: ```bash - pipx install logview[docker] # or pip install logview[docker] + pipx install logview-ag[docker] # or pip install logview-ag[docker] ``` 2. **Ensure Docker is running**: @@ -271,7 +271,7 @@ To use GCP Cloud Logging as a log source: 1. **Install with GCP support**: ```bash - pipx install logview[all] # or pip install logview[all] + pipx install logview-ag[all] # or pip install logview-ag[all] ``` 2. **Authenticate with GCP**: @@ -305,7 +305,7 @@ with Kubernetes-specific resource filters. 1. **Install with GCP support** (same as GCP Cloud Logging): ```bash - pipx install logview[all] # or pip install logview[all] + pipx install logview-ag[all] # or pip install logview-ag[all] ``` 2. **Authenticate with GCP**: diff --git a/pyproject.toml b/pyproject.toml index 149c976..87d89c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [project] -name = "logview" +name = "logview-ag" dynamic = ["version"] description = "A testable, responsive log viewer TUI with pluggable log source contexts" readme = "README.md" diff --git a/src/logview/adapters/context_detector.py b/src/logview/adapters/context_detector.py index 99a80dc..b0cdc41 100644 --- a/src/logview/adapters/context_detector.py +++ b/src/logview/adapters/context_detector.py @@ -4,7 +4,7 @@ Application Default Credentials (ADC). Requires optional dependencies: - pip install logview[detection] + pip install logview-ag[detection] """ from __future__ import annotations @@ -55,7 +55,7 @@ class DetectionNotInstalledError(ContextDetectionError): def __init__(self) -> None: super().__init__( "Context detection requires additional dependencies. " - "Install with: pip install logview[detection]" + "Install with: pip install logview-ag[detection]" ) diff --git a/src/logview/adapters/docker.py b/src/logview/adapters/docker.py index 3492e34..33f2a7c 100644 --- a/src/logview/adapters/docker.py +++ b/src/logview/adapters/docker.py @@ -1,7 +1,7 @@ """Docker container log adapter. Requires the docker package: - pip install logview[docker] + pip install logview-ag[docker] """ from __future__ import annotations @@ -48,7 +48,7 @@ class DockerNotInstalledError(DockerError): def __init__(self) -> None: super().__init__( "Docker support requires the docker package. " - "Install with: pip install logview[docker]" + "Install with: pip install logview-ag[docker]" ) diff --git a/src/logview/adapters/gcp.py b/src/logview/adapters/gcp.py index 18f2966..fea5bb5 100644 --- a/src/logview/adapters/gcp.py +++ b/src/logview/adapters/gcp.py @@ -1,7 +1,7 @@ """GCP Cloud Logging adapter. Requires the google-cloud-logging package: - pip install logview[gcp] + pip install logview-ag[gcp] """ from __future__ import annotations @@ -52,7 +52,7 @@ class GCPNotInstalledError(GCPError): def __init__(self) -> None: super().__init__( "GCP support requires the google-cloud-logging package. " - "Install with: pip install logview[gcp]" + "Install with: pip install logview-ag[gcp]" ) diff --git a/src/logview/adapters/gke.py b/src/logview/adapters/gke.py index ffe23bd..9ce204f 100644 --- a/src/logview/adapters/gke.py +++ b/src/logview/adapters/gke.py @@ -4,7 +4,7 @@ This adapter queries Cloud Logging with k8s-specific resource filters. Requires the google-cloud-logging package: - pip install logview[gcp] + pip install logview-ag[gcp] """ from __future__ import annotations diff --git a/src/logview/app.py b/src/logview/app.py index e4841c5..f816e28 100644 --- a/src/logview/app.py +++ b/src/logview/app.py @@ -365,7 +365,7 @@ def _create_source_from_context( elif isinstance(context, GCPContext): if not GCP_AVAILABLE: self.notify( - "GCP support requires: pip install logview[gcp]", + "GCP support requires: pip install logview-ag[gcp]", severity="warning", ) return None @@ -378,7 +378,7 @@ def _create_source_from_context( elif isinstance(context, GKEContext): if not GCP_AVAILABLE: self.notify( - "GKE support requires: pip install logview[gcp]", + "GKE support requires: pip install logview-ag[gcp]", severity="warning", ) return None @@ -392,7 +392,7 @@ def _create_source_from_context( elif isinstance(context, DockerContext): if not DOCKER_AVAILABLE: self.notify( - "Docker support requires: pip install logview[docker]", + "Docker support requires: pip install logview-ag[docker]", severity="warning", ) return None @@ -747,7 +747,7 @@ def action_discover_contexts(self) -> None: if not DETECTION_AVAILABLE: self.notify( "Context detection requires additional dependencies.\n" - "Install with: pip install logview[detection]", + "Install with: pip install logview-ag[detection]", severity="error", timeout=10, ) diff --git a/src/logview/ui/screens/discovery.py b/src/logview/ui/screens/discovery.py index 0177bf4..e85e2aa 100644 --- a/src/logview/ui/screens/discovery.py +++ b/src/logview/ui/screens/discovery.py @@ -127,7 +127,7 @@ def compose(self) -> ComposeResult: "Ensure you have:\n" "1. Run: gcloud auth application-default login\n" "2. Access to at least one GCP project\n" - "3. Installed detection libraries: pip install logview[detection]", + "3. Installed detection libraries: pip install logview-ag[detection]", classes="discovery-empty", ) else: diff --git a/tests/integration/test_gcp.py b/tests/integration/test_gcp.py index a9b595b..a6776ed 100644 --- a/tests/integration/test_gcp.py +++ b/tests/integration/test_gcp.py @@ -1,7 +1,7 @@ """Integration tests for GCP Cloud Logging adapter. These tests require: -1. google-cloud-logging package installed: pip install logview[gcp] +1. google-cloud-logging package installed: pip install logview-ag[gcp] 2. GCP authentication configured: gcloud auth application-default login 3. A valid GCP project with Cloud Logging API enabled @@ -167,7 +167,7 @@ class TestGCPWithoutCredentials: def test_gcp_not_installed_error_message(self) -> None: """Test GCPNotInstalledError has helpful message.""" error = GCPNotInstalledError() - assert "pip install logview[gcp]" in str(error) + assert "pip install logview-ag[gcp]" in str(error) def test_gcp_authentication_error_message(self) -> None: """Test GCPAuthenticationError has helpful message.""" diff --git a/tests/integration/test_gke.py b/tests/integration/test_gke.py index 8b87972..c7d58a4 100644 --- a/tests/integration/test_gke.py +++ b/tests/integration/test_gke.py @@ -1,7 +1,7 @@ """Integration tests for GKE Kubernetes log adapter. These tests require: -1. google-cloud-logging package installed: pip install logview[gcp] +1. google-cloud-logging package installed: pip install logview-ag[gcp] 2. GCP authentication configured: gcloud auth application-default login 3. A valid GKE cluster with workloads generating logs @@ -277,7 +277,7 @@ def test_gke_error_message(self) -> None: def test_gcp_not_installed_error_message(self) -> None: """Test GCPNotInstalledError has helpful message for GKE users.""" error = GCPNotInstalledError() - assert "pip install logview[gcp]" in str(error) + assert "pip install logview-ag[gcp]" in str(error) def test_gcp_authentication_error_message(self) -> None: """Test GCPAuthenticationError has helpful message.""" diff --git a/tests/unit/test_docker_adapter.py b/tests/unit/test_docker_adapter.py index f7066cb..5d2d039 100644 --- a/tests/unit/test_docker_adapter.py +++ b/tests/unit/test_docker_adapter.py @@ -296,7 +296,7 @@ def test_docker_not_installed(): with pytest.raises(DockerNotInstalledError) as exc_info: DockerLogSource(container="test") - assert "pip install logview[docker]" in str(exc_info.value) + assert "pip install logview-ag[docker]" in str(exc_info.value) def test_docker_log_source_init(): diff --git a/tests/unit/test_gcp_adapter.py b/tests/unit/test_gcp_adapter.py index 0113778..66eb099 100644 --- a/tests/unit/test_gcp_adapter.py +++ b/tests/unit/test_gcp_adapter.py @@ -537,7 +537,7 @@ def test_not_installed_error_message(self) -> None: """Test GCPNotInstalledError message.""" error = GCPNotInstalledError() assert "google-cloud-logging" in str(error) - assert "pip install logview[gcp]" in str(error) + assert "pip install logview-ag[gcp]" in str(error) def test_authentication_error_default_message(self) -> None: """Test GCPAuthenticationError default message."""