yaplon

Python 3-based commandline converter YAML ↔ JSON ↔ PLIST

View the Project on GitHub twardoch/yaplon

Usage Guide

Quick reference for common yaplon development and release tasks.

Development Setup

# Clone and setup
git clone https://github.com/twardoch/yaplon.git
cd yaplon
make install-dev

# Verify installation
python -c "import yaplon; print(yaplon.__version__)"

Daily Development

# Format code
make format

# Run linting  
make lint

# Run fast tests
make test-fast

# Complete dev workflow
make dev

Building

# Build Python package
make build

# Build binary for current platform
make build-binary

# Build with custom script
python scripts/build.py --all

Testing

# Run all tests
make test

# Run tests with coverage
make test-coverage

# Run specific test
pytest tests/test_version.py

Releasing

Patch Release (1.2.3 → 1.2.4)

python scripts/release.py --bump patch --message "Bug fixes"

Minor Release (1.2.3 → 1.3.0)

python scripts/release.py --bump minor --message "New features"

Major Release (1.2.3 → 2.0.0)

python scripts/release.py --bump major --message "Breaking changes"

Custom Version

python scripts/release.py --version 1.5.0 --message "Special release"

Test Release

python scripts/release.py --bump patch --test-pypi --message "Test"

Binary Distribution

# Build binary for current platform
python scripts/build_binaries.py

# Build with testing
python scripts/build_binaries.py --test

# Build with installer script
python scripts/build_binaries.py --installer

CI/CD

GitHub Actions Setup

# Quick setup
./activate-workflows.sh

# Manual setup
mkdir -p .github/workflows
cp workflows-templates/*.yml .github/workflows/

Local CI Simulation

make ci

GitHub Actions

See GITHUB_SETUP.md for detailed setup instructions.

Troubleshooting

Version Issues

make version-check

Build Issues

make clean
make install-dev

Test Issues

pytest -v --tb=short

Quick Commands

Task Command
Setup make install-dev
Format make format
Lint make lint
Test make test
Build make build
Binary make build-binary
Release python scripts/release.py --bump patch --message "msg"
Clean make clean
Dev workflow make dev
CI workflow make ci
Activate workflows ./activate-workflows.sh