Major release featuring a migration from docopt-ng to Typer for the CLI framework, Arcanist-compatible configuration, and numerous new features including shell completion, JSON output, parent/subtask support, and search metadata embedding.
- Breaking change: Configuration now uses Arcanist-compatible
.arcrcformat. Existing~/.config/phabfive.yamlconfigurations need to be migrated. Runphabfive user setupfor guided setup. - CLI framework migrated from docopt-ng to Typer - Command syntax is unchanged, but help output and error messages may differ.
--format=strictrenamed to--format=yaml- Thestrictalias is still accepted for backwards compatibility.
- Typer-based CLI - Migrated from docopt-ng to Typer for better argument parsing, type safety, and help output
- Smart shell completion - Tab completion for
--priority,--status,--columnvalues, and all other option values - JSON output format - New
--format=jsonoption for machine-readable output
- Multi-task show -
maniphest shownow accepts multiple task IDs (e.g.,phabfive maniphest show T123 T456) - Parents and subtasks - New
maniphest parentsandmaniphest subtaskscommands, plus Parents/Subtasks fields in task output - Search metadata Query embedding -
--show-metadatanow includes aQuerysection with original search parameters, enabling downstream tools to access search context without duplicate arguments
- Arcanist-compatible configuration - Reads credentials from
.arcrcfiles, compatible with Arcanist/Phorge tooling - Interactive server selector - When multiple hosts are configured in
.arcrc, presents an interactive selection prompt
- Passphrase structured output -
passphrase shownow outputs structured data - Optional ptpython REPL - Enhanced REPL experience when ptpython is installed
- Fix JSON output producing invalid JSON array for multiple tasks
- Fix monogram shortcuts not working with global options
- Improve error handling and standardize error format
- Fix passphrase show subcommand for monogram shortcuts
- Fix PyInstaller entry point for Typer CLI package structure
- Fix insecure temp file reuse vulnerability in requests (upgrade to 2.33.0)
- Replaced flake8 with ruff for linting
- Updated license to SPDX identifier format
- Removed unused MANIFEST.in
- Updated pre-commit hooks
- Cleaned up constants.py
- Added
exclude-newerto[tool.uv]for supply chain protection
- Fix standalone executables exiting silently without output
This release adds interactive first-run configuration, standalone executables for all major platforms, and improved developer experience with Sigstore-signed releases.
- First-run configuration - New
phabfive user setupcommand guides users through initial configuration with interactive prompts - Secure token input - API token input is masked with dots for security
- Smart reconfiguration - Warns before overwriting existing working configuration
- Standalone executables - Pre-built binaries for Linux, macOS, and Windows (AMD64 and ARM64)
- Sigstore signing - All executables are cryptographically signed for verification
- RC tag support - Release candidates skip PyPI for testing the release process
- Fix Rich markup escaping for square brackets in user content
- Fix project lookup failing when more than 100 projects exist
- Version now sourced solely from
pyproject.tomlusingimportlib.metadata - Added
AGENTS.mdfor AI coding agent guidance - Removed unused
__author__,__email__,__url__module attributes
This release brings significant internal refactoring, new search filters, and automated release infrastructure. The codebase has been restructured with maniphest, diffusion, and transitions modules converted to package structure for better maintainability.
- Breaking change: Closed tasks are now hidden by default in
maniphest search. Use--allto include closed tasks.
- Space filtering - New
--spaceflag for filtering tasks by Phabricator Space - Assignee filtering - New
--assignedfilter with@meshortcut and OR logic support (comma-separated values) - Date range filters - New
--created-beforeand--updated-beforefilters - Time unit support - Date filters now accept time units (h, d, w, m, y) e.g.,
--created-after 2d - Auto-detect strict format -
--format=strictis automatically enabled when output is piped (#131)
- Arcanist support - Added support for reading configuration from
.arcrcfiles - IPv6 and port support -
PHAB_URLvalidation now accepts IPv6 addresses and port numbers
- Syntax hints - Helpful hints displayed for invalid
--status,--priority, and--columnvalues
- Fix project lookup failing when more than 100 projects exist (#140)
- Fix Rich markup issues with square brackets in user content
- Handle deleted working directory gracefully
- Handle KeyboardInterrupt gracefully in CLI
- Improve Conduit access denied error message for passphrase
- Fix formatting issues on readthedocs.io
- Skip permission checks on Windows
- Convert maniphest module to package structure
- Convert diffusion module to package structure
- Consolidate transition modules into package
- Move display logic from library to CLI layer
- Improve method naming across modules
- Rename TransitionPattern to ColumnPattern for consistency
- Added GitHub Actions workflow for automated PyPI releases using trusted publishing (OIDC)
- Applied ruff formatting across codebase
Feature release focused on improved output formatting, enhanced task management, and better user experience. This release introduces multiple output formats, clickable hyperlinks, CLI-based task creation, and search templates.
- New dependency:
rich>=13.0.0added for enhanced terminal output formatting
- Multiple output formats - New
--formatoption supportingrich(default),tree, andstrictmodes - Clickable hyperlinks - Terminal hyperlinks for task IDs, column names, assignees, and board names with
--hyperlinkoption - ASCII mode - Use
--asciiflag for terminals without Unicode support (uses hyphens instead of bullets)
- CLI-based task creation - Create tasks directly from command line with
maniphest create - Show task comments - New
--show-commentsflag to display comments when viewing tasks - Comment shorthand - Simplified syntax for adding comments to tasks
- Assignee display - Task views now show assignee information and history
- YAML search templates - Define reusable search queries with multi-document YAML support
- Enhanced free-text search - More flexible filtering options for task searches
- Modernized Phorge environment - Updated Docker development setup with configurable environment variables
- Improved Makefile - Added
lockandupgradetargets for dependency management
- Fixed comments not displaying in task show output
- Fixed ASCII bullet character (now uses hyphen instead of asterisk)
- Fixed input validation and logging configuration issues
- Improved UX and logging for maniphest search command
- Enhanced error handling and code clarity
- Normalized error message format to use "ERROR - " prefix consistently
- Updated CLI option style from
--option=<style>to--option=STYLEfor consistency with docopt conventions - Improved test coverage for maniphest task search functionality
Major feature release focused on significantly expanding Maniphest capabilities and modernizing the project infrastructure. This release introduces advanced task filtering, search patterns, template v2 system, and comprehensive developer tooling with Phorge Docker setup.
- Python support bumped to minimum version 3.10 (adds support for 3.13 and 3.14)
- Project management migrated to modern
pyproject.toml- replacedsetup.pywith PEP 621 compliant configuration - Switched to
uvfor dependency management - faster, more reliable package management - Dependency updates:
docopt→docopt-ngfor improved Python 3 support- Added
ruamel-yaml>=0.18.16 - Updated
mkdocs>=1.6.1
- Advanced filtering system - Filter tasks by status, priority, and projects with complex logic
- Wildcard project search - Search and resolve projects using pattern matching
- Search negation support - Exclude items from search results with negation patterns
- Pagination for large result sets - Automatically handles API pagination for projects and tasks
- Template v2 system - Complete rewrite with variable dependency resolution and improved structure
- Task transition management - Advanced filtering for status, priority, and project transitions
- Project column inspection - Query project boards to see columns and associated tasks
- Monogram support - View tasks using T123 format directly from CLI
- YAML output improvements - Proper formatting using yaml libraries
- Phorge Docker environment - Automated local Phorge setup for testing and development
- Enhanced Makefile - Dependency checks, Phorge management commands, improved build targets
- REPL tab completion - Navigate commands more efficiently in interactive mode
- Comprehensive documentation:
- Detailed maniphest CLI guide (
docs/maniphest-cli.md) - Phorge setup instructions (
docs/phorge-setup.md) - Release process documentation (
docs/releasing.md)
- Detailed maniphest CLI guide (
- ReadTheDocs integration - Hosted documentation at readthedocs.org
- Windows CI support - Cross-platform testing in CI matrix
- Fixed logging output to use stderr instead of stdout
- Improved URL validation and parsing logic
- Corrected YAML output formatting issues
- Added
.editorconfigfor consistent code style - Enhanced
.flake8configuration - Added
dependabotsupport for automated dependency updates
Maintenance release where we focus more on updating the current code and less on new features
The main new features to look for is the updated docker-compose.yml solution
Second major feature is the new maniphest app where we can query, add comment and create a batch of tasks from config file
- Python support bumped up to minimum version of python 3.9
- Add in dependabot support to check for new python packages
- #51 - Add support for rendering a batch of tickets and bulk create tickets at one time
- Update support and logging feature to be more modern and better configurable from CLI
- Added new dependency jinja2
Update to accommodate new Python versions and updated dependencies.
- Python 2.7 support has been dropped. The minimum version of Python now supported by Phabfive is version 3.8.
- #40 - Update to anyconfig API >= 0.10.0
Initial release of Phabfive.
Supported Phabricator app endpoints:
- passphrase
- diffusion
- paste
- user
- #23 - Function to get clone uri(s) from repo
- #22 - Functionality to create Paste
- #21 - Raise exception when Conduit access is not accepted for Passphrase
- #20 - Add functionality to edit URI
- #19 - Feature/edit uri
- #16 - Feature/observe repositories
- #14 - Print data from user.whoami
- #12 - Errors now print to stderr
- #11 - Default to only listing active repositories
- #10 - Adding shortName
- #9 - Feature/get specified paste
- #8 - Repositories can now be created
- #6 - Avoid string default
- #5 - Pastes can now be listed, sort based on title
- #3 - Added Paste app