aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-22 16:37:49 +0900
committernsfisis <nsfisis@gmail.com>2026-02-22 16:37:49 +0900
commitb696eb7608d921ae0e14a4296e412c33340ceee8 (patch)
tree9a6937bed42ee550553fdb118b9281d00cdce4d9 /crates/mozart/src/commands
parent6490fe43676919bc1dcc8659ec4e52da225f92e6 (diff)
downloadphp-mozart-b696eb7608d921ae0e14a4296e412c33340ceee8.tar.gz
php-mozart-b696eb7608d921ae0e14a4296e412c33340ceee8.tar.zst
php-mozart-b696eb7608d921ae0e14a4296e412c33340ceee8.zip
refactor: reorganize crates to match Composer subpackage structure
Rename mozart-constraint to mozart-semver (mirrors composer/semver) and extract mozart-class-map-generator from mozart-autoload (mirrors composer/class-map-generator). No logic changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'crates/mozart/src/commands')
-rw-r--r--crates/mozart/src/commands/audit.rs6
-rw-r--r--crates/mozart/src/commands/check_platform_reqs.rs14
-rw-r--r--crates/mozart/src/commands/dependency.rs30
-rw-r--r--crates/mozart/src/commands/outdated.rs4
-rw-r--r--crates/mozart/src/commands/prohibits.rs2
5 files changed, 27 insertions, 29 deletions
diff --git a/crates/mozart/src/commands/audit.rs b/crates/mozart/src/commands/audit.rs
index 8f15ef0..2faec19 100644
--- a/crates/mozart/src/commands/audit.rs
+++ b/crates/mozart/src/commands/audit.rs
@@ -273,7 +273,7 @@ fn filter_advisories(
.as_deref()
.unwrap_or(pkg.version.as_str());
- let installed_ver = match mozart_constraint::Version::parse(version_str) {
+ let installed_ver = match mozart_semver::Version::parse(version_str) {
Ok(v) => v,
Err(_) => {
eprintln!(
@@ -298,9 +298,7 @@ fn filter_advisories(
// Normalize single-pipe OR separators (`|`) to double-pipe (`||`)
// since the Packagist API may use either form.
let normalized_constraint = normalize_or_separator(&advisory.affected_versions);
- let constraint = match mozart_constraint::VersionConstraint::parse(
- &normalized_constraint,
- ) {
+ let constraint = match mozart_semver::VersionConstraint::parse(&normalized_constraint) {
Ok(c) => c,
Err(_) => {
eprintln!(
diff --git a/crates/mozart/src/commands/check_platform_reqs.rs b/crates/mozart/src/commands/check_platform_reqs.rs
index 295f9b7..79a1da7 100644
--- a/crates/mozart/src/commands/check_platform_reqs.rs
+++ b/crates/mozart/src/commands/check_platform_reqs.rs
@@ -279,21 +279,21 @@ fn check_requirements(
}
Some(detected) => {
// Check all constraints
- let detected_version = match mozart_constraint::Version::parse(&detected.version) {
+ let detected_version = match mozart_semver::Version::parse(&detected.version) {
Ok(v) => v,
Err(_) => {
// Unparseable version → treat as 0.0.0
- mozart_constraint::Version::parse("0.0.0").unwrap()
+ mozart_semver::Version::parse("0.0.0").unwrap()
}
};
let mut failed_req: Option<(String, String)> = None;
for req in reqs {
- let constraint =
- match mozart_constraint::VersionConstraint::parse(&req.constraint) {
- Ok(c) => c,
- Err(_) => continue, // skip unparseable constraints
- };
+ let constraint = match mozart_semver::VersionConstraint::parse(&req.constraint)
+ {
+ Ok(c) => c,
+ Err(_) => continue, // skip unparseable constraints
+ };
if !constraint.matches(&detected_version) {
failed_req = Some((req.constraint.clone(), req.provider.clone()));
break;
diff --git a/crates/mozart/src/commands/dependency.rs b/crates/mozart/src/commands/dependency.rs
index 4714de2..5073be0 100644
--- a/crates/mozart/src/commands/dependency.rs
+++ b/crates/mozart/src/commands/dependency.rs
@@ -192,7 +192,7 @@ fn load_from_installed(working_dir: &Path) -> Result<Vec<PackageInfo>> {
pub fn get_dependents(
packages: &[PackageInfo],
needles: &[String],
- constraint: Option<&mozart_constraint::VersionConstraint>,
+ constraint: Option<&mozart_semver::VersionConstraint>,
inverted: bool,
recursive: bool,
) -> Result<Vec<DependencyResult>> {
@@ -317,7 +317,7 @@ fn recurse_dependents(
fn get_prohibitors(
packages: &[PackageInfo],
needles: &[String],
- constraint: Option<&mozart_constraint::VersionConstraint>,
+ constraint: Option<&mozart_semver::VersionConstraint>,
_recursive: bool,
) -> Result<Vec<DependencyResult>> {
let mut results: Vec<DependencyResult> = Vec::new();
@@ -333,7 +333,7 @@ fn get_prohibitors(
.find(|(k, _)| k.to_lowercase() == needle_lower)
&& let Some(requested_version) = constraint
&& let Ok(pkg_constraint) =
- mozart_constraint::VersionConstraint::parse(req_constraint_str)
+ mozart_semver::VersionConstraint::parse(req_constraint_str)
{
// The package requires `needle` but with a different
// (incompatible) constraint — it blocks the requested version.
@@ -359,7 +359,7 @@ fn get_prohibitors(
.find(|(k, _)| k.to_lowercase() == needle_lower)
&& let Some(requested_version) = constraint
&& let Ok(pkg_constraint) =
- mozart_constraint::VersionConstraint::parse(req_constraint_str)
+ mozart_semver::VersionConstraint::parse(req_constraint_str)
&& constraint_prohibits(requested_version, &pkg_constraint)
{
results.push(DependencyResult {
@@ -380,7 +380,7 @@ fn get_prohibitors(
.find(|(k, _)| k.to_lowercase() == needle_lower)
&& let Some(requested_version) = constraint
&& let Ok(conflict_constraint) =
- mozart_constraint::VersionConstraint::parse(conflict_constraint_str)
+ mozart_semver::VersionConstraint::parse(conflict_constraint_str)
{
// If the conflict constraint overlaps with (matches) the
// requested version range, this package conflicts with it.
@@ -408,8 +408,8 @@ fn get_prohibitors(
/// We sample a set of "representative versions" from the requested constraint
/// and check whether none of them satisfy the package's constraint.
fn constraint_prohibits(
- requested: &mozart_constraint::VersionConstraint,
- pkg_constraint: &mozart_constraint::VersionConstraint,
+ requested: &mozart_semver::VersionConstraint,
+ pkg_constraint: &mozart_semver::VersionConstraint,
) -> bool {
// We try to determine if there is any version satisfying *requested* that
// does NOT satisfy *pkg_constraint*.
@@ -430,8 +430,8 @@ fn constraint_prohibits(
/// That is, if the conflict constraint matches at least one version that the
/// requested constraint also matches.
fn constraint_overlaps(
- requested: &mozart_constraint::VersionConstraint,
- conflict_constraint: &mozart_constraint::VersionConstraint,
+ requested: &mozart_semver::VersionConstraint,
+ conflict_constraint: &mozart_semver::VersionConstraint,
) -> bool {
let probes = sample_versions_from_constraint(requested);
if probes.is_empty() {
@@ -446,9 +446,9 @@ fn constraint_overlaps(
/// constraint. These are used for the "does this constraint overlap/prohibit
/// that constraint?" heuristic.
fn sample_versions_from_constraint(
- constraint: &mozart_constraint::VersionConstraint,
-) -> Vec<mozart_constraint::Version> {
- use mozart_constraint::Version;
+ constraint: &mozart_semver::VersionConstraint,
+) -> Vec<mozart_semver::Version> {
+ use mozart_semver::Version;
// Broad grid of versions to probe
let candidates: &[&str] = &[
@@ -685,7 +685,7 @@ mod tests {
make_pkg("root/project", "ROOT", &[("vendor/a", "^1.0")], &[], true),
make_pkg("vendor/a", "1.0.0", &[], &[], false),
];
- let constraint = mozart_constraint::VersionConstraint::parse("2.0.0").unwrap();
+ let constraint = mozart_semver::VersionConstraint::parse("2.0.0").unwrap();
let needles = vec!["vendor/a".to_string()];
let results = get_dependents(&packages, &needles, Some(&constraint), true, false).unwrap();
assert!(!results.is_empty(), "root should prohibit vendor/a 2.0");
@@ -713,7 +713,7 @@ mod tests {
false,
),
];
- let constraint = mozart_constraint::VersionConstraint::parse("2.0.0").unwrap();
+ let constraint = mozart_semver::VersionConstraint::parse("2.0.0").unwrap();
let needles = vec!["vendor/a".to_string()];
let results = get_dependents(&packages, &needles, Some(&constraint), true, false).unwrap();
// vendor/b conflicts with vendor/a ^2.0 which covers 2.0.0
@@ -733,7 +733,7 @@ mod tests {
make_pkg("root/project", "ROOT", &[("vendor/a", "^2.0")], &[], true),
make_pkg("vendor/a", "2.0.0", &[], &[], false),
];
- let constraint = mozart_constraint::VersionConstraint::parse("2.5.0").unwrap();
+ let constraint = mozart_semver::VersionConstraint::parse("2.5.0").unwrap();
let needles = vec!["vendor/a".to_string()];
let results = get_dependents(&packages, &needles, Some(&constraint), true, false).unwrap();
assert!(
diff --git a/crates/mozart/src/commands/outdated.rs b/crates/mozart/src/commands/outdated.rs
index eba0d52..1807435 100644
--- a/crates/mozart/src/commands/outdated.rs
+++ b/crates/mozart/src/commands/outdated.rs
@@ -371,8 +371,8 @@ fn classify_update(
// We have an update available — classify it
if let Some(constraint_str) = root_constraint
- && let Ok(constraint) = mozart_constraint::VersionConstraint::parse(constraint_str)
- && let Ok(latest_ver) = mozart_constraint::Version::parse(latest_normalized)
+ && let Ok(constraint) = mozart_semver::VersionConstraint::parse(constraint_str)
+ && let Ok(latest_ver) = mozart_semver::Version::parse(latest_normalized)
{
if constraint.matches(&latest_ver) {
return UpdateCategory::SemverCompatible;
diff --git a/crates/mozart/src/commands/prohibits.rs b/crates/mozart/src/commands/prohibits.rs
index 1f45b27..ca3bc35 100644
--- a/crates/mozart/src/commands/prohibits.rs
+++ b/crates/mozart/src/commands/prohibits.rs
@@ -43,7 +43,7 @@ pub async fn execute(
}
// Parse the version constraint the user is asking about
- let version_constraint = mozart_constraint::VersionConstraint::parse(&args.version)
+ let version_constraint = mozart_semver::VersionConstraint::parse(&args.version)
.map_err(|e| anyhow::anyhow!("Invalid version constraint '{}': {}", args.version, e))?;
let recursive = args.tree || args.recursive;