denoland / deno_std

The Deno Standard Library
https://jsr.io/@std
MIT License
2.83k stars 581 forks source link

BREAKING(semver): remove deprecated `rangeMax()`, `rangeMin()` and `testRange()` APIs #5160

Closed iuioiua closed 5 days ago

iuioiua commented 5 days ago

What's changed

The following APIs have been removed from @std/semver:

  1. rangeMax() and rangeMin() in favor of greaterThanRange() or lessThanRange().
  2. testRange() in favor of satisfies().

Why these changes were made

rangeMax() and rangeMin() were deprecated due to design flaws. See #4365 for more details.

satisfies() replaced testRange() because it provided a clearer name and more intuitive argument order. See #4364 for more details.

Migration guide

To migrate:

  1. Use greaterThanRange() or lessThanRange() instead of rangeMax() and rangeMin().
    
    -import { rangeMax, rangeMin, greaterThan, lessThan } from "@std/semver";
    +import { greaterThanRange, lessThanRange } from "@std/semver";

-lessThan(version, rangeMax(range)); +lessThanRange(version, range);

-greaterThan(version, rangeMin(range)); +greaterThanRange(version, range);


2. Use `satisfies()` instead of `testRange()`.
```diff
- import { parse, parseRange, testRange } from "@std/semver";
+ import { parse, parseRange, satisfies } from "@std/semver";
  import { assert } from "@std/assert";

  const version = parse("1.2.3");
  const range0 = parseRange(">=1.0.0 <2.0.0");
  const range1 = parseRange(">=1.0.0 <1.3.0");
  const range2 = parseRange(">=1.0.0 <1.2.3");

- assert(testRange(version, range0));
+ assert(satisfies(version, range0));
- assert(testRange(version, range1));
+ assert(satisfies(version, range1));
- assert(!testRange(version, range2));
+ assert(!satisfies(version, range2));
codecov[bot] commented 5 days ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 93.21%. Comparing base (ba256e3) to head (c8bac43).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #5160 +/- ## ========================================== - Coverage 93.23% 93.21% -0.02% ========================================== Files 473 470 -3 Lines 38056 37946 -110 Branches 5423 5388 -35 ========================================== - Hits 35480 35372 -108 + Misses 2532 2530 -2 Partials 44 44 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.