Skip to content

Conversation

@SupulHeshan
Copy link
Collaborator

@SupulHeshan SupulHeshan commented Jan 21, 2026

Add jac pip-install command for pip-style editable installation

Implements a new jac pip-install command that provides pip-style editable installation for Jac projects, similar to pip install -e . but using jac.toml configuration instead of pyproject.toml

Key Features:

  • Editable installation with live source changes
  • Support for dev and optional dependencies (--dev, -e <group>)
  • Streams pip output in real-time
  • Auto-generates and cleans up temporary pyproject.toml
# Install project in editable mode
jac pip-install jac-byllm

# Install with dev dependencies
jac pip-install jac-byllm --dev

# Install with specific optional dependency groups
jac pip-install jac-byllm -e tools
jac pip-install jac-byllm -e tools, video

# Verbose output
jac pip-install jac-byllm --dev --verbose

Test cases

pending...

…guration and implement editable installation support
Copilot AI review requested due to automatic review settings January 21, 2026 09:39
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements a migration from pyproject.toml to jac.toml for Jac project configuration. It introduces a new pip-style editable installer that allows installing Jac projects in development mode using jac pip-install, similar to pip install -e .. The installer temporarily generates a pyproject.toml from the jac.toml configuration to work with pip's editable install mechanism.

Changes:

  • Added new JacPipInstaller class for editable project installation with support for extras and dev dependencies
  • Extended DependencyInstaller._run_pip() with parameters for working directory, verbose output, and streaming modes
  • Implemented new CLI command jac pip-install with support for path, dev dependencies, extras, and verbose output
  • Migrated jac-byllm package from pyproject.toml to jac.toml as a reference example

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
jac/jaclang/project/pip_installer.jac Interface definition for the new JacPipInstaller class and helper functions
jac/jaclang/project/impl/pip_installer.impl.jac Implementation of editable installer with pyproject.toml generation from jac.toml
jac/jaclang/project/dependencies.jac Extended _run_pip signature to support cwd, verbose, and stream_output parameters
jac/jaclang/project/impl/dependencies.impl.jac Updated _run_pip implementation to handle new parameters for streaming output
jac/jaclang/cli/commands/project.jac Added pip-install command declaration with arguments for path, dev, extras, no_deps, and verbose
jac/jaclang/cli/commands/impl/project.impl.jac Implemented pip_install command with project discovery, config loading, and installer invocation
jac-byllm/pyproject.toml Removed deprecated pyproject.toml configuration file
jac-byllm/jac.toml New jac.toml configuration file with all project metadata and dependencies

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement jac.toml instead of pyproject.toml for all plugins

1 participant