Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Release to PyPI

on:
push:
tags:
- 'v*'

jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine
pip install -e ".[dev]"

- name: Run linting
run: ruff check src/

- name: Run type checking
run: mypy src/

- name: Run tests
run: pytest --tb=short

- name: Build distribution packages
run: python -m build

- name: Verify build artifacts
run: |
ls -lh dist/
twine check dist/*

- name: Extract version from tag
id: get_version
run: |
echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT

- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
name: Release ${{ steps.get_version.outputs.VERSION }}
generate_release_notes: true
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Publish to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
run: twine upload dist/*

- name: Verify PyPI upload
run: |
echo "✓ Package published to PyPI"
echo "Install with: pip install logview"
echo "Package URL: https://pypi.org/project/logview/"
40 changes: 7 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +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/)

A testable, responsive log viewer TUI with pluggable log source contexts.

Expand All @@ -19,47 +21,19 @@ A testable, responsive log viewer TUI with pluggable log source contexts.

## Installation

> **⚠️ Not Yet Published**: LogView is not yet published to PyPI. The `pip` and `pipx` installation methods below will not work until the first release is published. For now, use the "From Source" method.
[![PyPI version](https://img.shields.io/pypi/v/logview.svg)](https://pypi.org/project/logview/)

### Quick Install (Recommended)

**One-line install** (after PyPI publication):

```bash
curl -fsSL https://raw.githubusercontent.com/agileguy/logview/main/install.sh | bash
```

**Two-step install** (for security-conscious users):

```bash
# Download and inspect the script first
curl -fsSL https://raw.githubusercontent.com/agileguy/logview/main/install.sh -o install.sh
less install.sh # Review the script
bash install.sh
```

This will:
- Check Python 3.11+ is installed
- Install LogView using pipx (isolated environment) or pip
- Create config directory at `~/.config/logview/`
- Verify the installation

### Alternative Methods

#### Using pipx (Isolated Environment)

> **Note**: Requires PyPI publication

```bash
# Using pipx (isolated environment - recommended)
pipx install logview

# With GCP/GKE support
pipx install logview[all]
# Or using pip
pip install logview
```

#### Using pip

> **Note**: Requires PyPI publication
### With Optional Dependencies

```bash
# Base installation (local logs only)
Expand Down