aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe
AgeCommit message (Collapse)Author
7 daysrefactor(composer): represent composer via trait-based handlesrefactor/composer-handlesnsfisis
Replace the PartialComposer/Composer structs and the single Rc<RefCell<PartialOrFullComposer>> enum with PartialComposer and Composer traits (Composer: PartialComposer), InnerPartialComposer / InnerFullComposer data structs, and the handle types FullComposerHandle (impl Composer) and AnyComposerHandle (polymorphic enum, impl PartialComposer), plus their weak variants. Factory builds the full and partial graphs via separate Rc::new_cyclic branches that share a build_composer_base helper. Call sites now use trait methods that encapsulate borrowing instead of borrow_partial() / composer_full*(). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
8 daysrefactor(package): pass package handles by value throughoutnsfisis
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
8 daysfeat(factory): construct PluginManager after Rc::new_cyclicnsfisis
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
8 daysrefactor(io): share IOInterface via Rc<RefCell<dyn _>> handlensfisis
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
10 daysrefactor(package): introduce Rc<RefCell<_>> handles for packagesnsfisis
PHP packages have reference semantics, so introduce shared-ownership handles over an AnyPackage enum (PackageInterfaceHandle and friends) and replace Box<dyn PackageInterface> throughout. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
11 daysrefactor(semver): change ConstraintInterface to a closed enumnsfisis
Replace the dyn ConstraintInterface trait objects with an AnyConstraint enum closing over its four implementors (Simple, Multi, MatchAll, MatchNone), mirroring the earlier Rule enum conversion. Rename constraint.rs to simple_constraint.rs to match the renamed Constraint type. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
12 daysrefactor(resolver): change Rule to a closed enumnsfisis
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
12 daysrefactor(promise): drop \React\Promisensfisis
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
12 daysrefactor(promise): rewrite promise bodies to async/awaitnsfisis
Mechanically convert promise-returning function bodies to async/await: resolve() returns the value directly, forwarding calls get .await, and simple .then chains become await sequences. Also collapse the installer double-Option (Result<Option<Option<PhpMixed>>> -> Result<Option<PhpMixed>>). Hard spots that depend on the Loop::wait / job-machine boundary (accept/reject orchestration, closures capturing &mut self, batch waits) are left intact and marked with TODO(phase-c-promise) for manual porting. The crate does not compile yet; traits still need #[async_trait]. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
12 daysfeat(deps): add tokio, async-traitnsfisis
12 daysrefactor(promise): change functions returning PromiseInterface to async fnnsfisis
13 daysrefactor: share Pool via Rc<RefCell>nsfisis
Convert Pool to Rc<RefCell<Pool>> so Solver, Decisions, and RuleSetGenerator share it, resolving the todo!() placeholders that blocked the dependency resolver (Phase C shared ownership). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
13 daysrefactor(php-shim): remove unnecessary methodsnsfisis
13 daysrefactor(composer): unify Composer/PartialComposer via Rc handlesnsfisis
Model PHP's `Composer extends PartialComposer` as a PartialOrFullComposer enum and merge partial_composer.rs into composer.rs. Introduce ComposerHandle / PartialComposerHandle (plus their Weak variants) so the graph can be shared, and build it at once with Rc::new_cyclic in the factory to resolve the back-reference cycles. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20refactor: re-export module items to shorten import pathsnsfisis
2026-05-20chore: allow unused codensfisis
2026-05-20fix(compile): fix all remaining compile errorsnsfisis
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19fix(compile): fix more random compile errorsnsfisis
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19fix(compile): fix various compile errorsnsfisis
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18fix(compile): extract static methods from BasePackage traitnsfisis
2026-05-18fix(compile): impl std::error::Error for custom error typesnsfisis
2026-05-17fix(compile): use std::sync::LazyLock for global cachensfisis
2026-05-17fix(compile): convert Command struct to traitnsfisis
Symfony Command was a struct but used as dyn Trait (Box<dyn Command>) in console/application.rs. Convert it to a trait with CommandBase as the concrete stub, and add impl Command for all Composer commands.
2026-05-17fix(compile): make Rule trait dyn-compatible by extracting RuleBasensfisis
Removed the static fn new() from the Rule trait (which prevented dyn compatibility) and moved it into a new RuleBase struct.
2026-05-17fix(compile): extract constants from traits to make them dyn-compatiblensfisis
2026-05-17fix(compile): add missing PackageInterface and RepositoryInterface implsnsfisis
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17fix(compile): remove to_string from impl Rule blocks (E0407)nsfisis
2026-05-17fix(compile): add dyn keyword to all trait object usages (E0782)nsfisis
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17fix(compile): fix IOInterface method signature mismatchesnsfisis
- Change write/write_error/write_raw/write_error_raw/overwrite/ overwrite_error/ask/ask_confirmation/ask_and_validate/ ask_and_hide_answer/select to &mut self in trait and NullIO - Change ask-family question params from PhpMixed to String in ConsoleIO, converting to PhpMixed::String internally - Change ConsoleIO::select choices param from PhpMixed to Vec<String> - Fix NullIO::load_configuration to use &mut Config and return Result
2026-05-17fix(compile): align ChangeReportInterface::get_local_changes return typensfisis
2026-05-17fix(compile): add stubs for missing trait implementationsnsfisis
2026-05-17fix(compile): add Display impls and fix trait signaturesnsfisis
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17fix(compile): add missing use declarations for Command, Composer, ↵nsfisis
IOInterface, etc.
2026-05-17fix(compile): correct module pathsnsfisis
2026-05-17fix(compile): remove duplicate impl BaseCommand blocks with wrong signaturesnsfisis
2026-05-17fix(compile): box PluginManager in Composer to resolve recursive typensfisis
2026-05-17fix(compile): add stubs for missing trait implementationsnsfisis
2026-05-17fix(compile): implement IOInterface and LoggerInterface for ConsoleIOnsfisis
- Move standalone pub fn methods into impl IOInterface for ConsoleIO - Add impl LoggerInterface for ConsoleIO delegating to BaseIO - Fix load_configuration signature to take &mut Config and return Result - Fix index::IndexMap import paths to indexmap::IndexMap in ConsoleIO and NullIO
2026-05-17fix(compile): extract constants from traits to make them dyn-compatiblensfisis
2026-05-17fix(compile): fix trait signature errorsnsfisis
2026-05-17fix(compile): fix infinite size typesnsfisis
2026-05-17fix(compile): implement abstract class traits across all typesnsfisis
Implement BaseCommand trait and other abstract class traits across all command, downloader, io, package, and VCS driver types. Also fix trait method signatures for composer_mut and io_mut to return mutable references to Option rather than Option of mutable references.
2026-05-17fix(compile): remove visibility from trait methodsnsfisis
2026-05-17refactor(shirabe): convert PHP abstract classes to Rust traitsnsfisis
PHP abstract classes are represented as traits to better align with Rust's type system.
2026-05-17fix(shirabe): correct invalid import paths and add missing dependencynsfisis
2026-05-17fix(php-shim): add missing stub functions, constants, and typesnsfisis
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17chore(style): cargo fmtnsfisis
2026-05-17feat(port): add stub implementations of shirabe-external-packagesnsfisis
2026-05-17feat(port): port ClassMapGenerator.phpnsfisis
2026-05-16feat(port): port Problem.phpnsfisis