airbytehq / airbytehq/PyAirbyte

Extract pytest slow marker tuner into dedicated package

Open
#837 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
344
Forks
77
Avg merge
1d 11h
Merged PRs (30d)
35

Description

## Summary

The pytest slow marker tuner (`bin/tune_slow_markers.py`) should be extracted into its own dedicated package/repository. This tool is useful for any pytest project and could benefit the broader Python testing community.

## Current Implementation

The tool currently lives in PyAirbyte's `bin/` directory and provides:
- Automated detection of slow tests based on execution time
- AST-based marker addition/removal that preserves code formatting
- Configurable timeout threshold (default: 7.0s)
- Dry-run mode for preview
- Optional removal of slow markers from fast tests
- PEP 723 inline script metadata for standalone execution with `uv run`

## Proposed Changes

1. **Create a new repository** (e.g., `pytest-slow-marker-tuner`)
2. **Package structure**:
- Convert to a proper Python package with `pyproject.toml`
- Add comprehensive tests
- Add documentation (README, usage examples)
- Set up CI/CD for testing and publishing
3. **Publishing**:
- Publish to PyPI for easy installation
- Support installation via `pipx` or `uv tool install`
4. **Integration**:
- Update PyAirbyte to use the published package
- Provide GitHub Action for easy CI integration

## Benefits

- **Reusability**: Any pytest project can use this tool
- **Maintainability**: Dedicated repo with its own tests and CI
- **Discoverability**: PyPI listing makes it easy to find
- **Community**: Can accept contributions from broader community

## References

- Current implementation: https://github.com/airbytehq/PyAirbyte/pull/836
- Devin session: https://app.devin.ai/sessions/b2bd2fdac9314cf18270c81f81305c55

**Requested by:** AJ Steers (@aaronsteers)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.