Skip to content

Releases: helpers4/rust

v0.0.6

Choose a tag to compare

@github-actions github-actions released this 23 Sep 20:07

πŸš€ Features

  • ansi: add the ansi module: strip, contains, visible_len, Style, Color
  • bytes: add the bytes module: read_u16/32/64, find, xor, constant_time_eq, format_size, parse_size
  • ci: add the ci module: Provider, detect, is_ci, is_pull_request, Status, overall, render_report
  • color: add the color module: Rgb, Hsl, ParseColorError, mix, contrast_ratio, best_text_color
  • commit: add the commit module: Commit, Bump, ParseCommitError, bump_for, is_valid, emoji_for
  • date: add the date module: Date, Weekday, DateError, is_leap_year, days_in_month
  • fs: add the fs module: write_atomic, read_to_string_opt, walk, normalize, is_within
  • function: add the function module: compose, pipe, Memoize, retry, backoff, TokenBucket
  • future: add the future module: block_on, now_or_never, yield_now, join, join_all
  • license: add the license module: lookup, normalize, Expression, Category, LicenseInfo, header
  • markdown: add the markdown module: escape, link, inline_code, code_block, blockquote, table, heading_slug
  • secret: add the secret module: Secret, redact, mask, detect, scan, TokenKind
  • set: add the set module: union_all, intersection_all, toggle, to_sorted_vec, jaccard, subsets
  • url: add the url module: Url, percent_encode/decode, parse_query, build_query, join_path
  • version: add the version module: Version, VersionReq, ParseVersionError, compare, satisfies

πŸ”§ Miscellaneous

  • coherency: exclude two mutants no test can catch
  • coherency: tell typos about the test data that looks like typos

♻️ Refactoring

  • bytes: replace hand-rolled index loops so mutants cannot hang

πŸ“ Documentation

  • agents: list the new modules in llms.txt
  • list the new modules in the README

βœ… Tests

  • bytes: cover multi-digit fractions and drop the redundant unit guards
  • commit: cover type characters, ordinary footers and 400-year cycles
  • secret: fix a property that did not hold

πŸ‘· CI/CD

  • skip the PR mutation run when the diff is too big for the job
  • cap the weekly feature powerset at depth 3
  • stop the feature powerset check from growing unbounded on every PR

v0.0.5

Choose a tag to compare

@github-actions github-actions released this 22 Sep 20:44

πŸš€ Features

  • iter: add the iter module: chunk, min_max and first_duplicate
  • validate: add the validate module: is_valid_email, is_uuid and is_slug

πŸ“ Documentation

  • agents: list the iter and validate modules in llms.txt
  • add the Scorecard badge and the iter/validate modules to the README
  • add # Arguments and # Returns to every helper's rustdoc

βœ… Tests

  • iter: exclude two equivalent mutants in min_max

v0.0.4

Choose a tag to compare

@github-actions github-actions released this 21 Sep 23:41

πŸš€ Features

  • duration: add the duration module: parse, format and ParseDurationError
  • map: add the map module: pick, omit and map_values

πŸ“ Documentation

  • agents: list the duration and map modules in llms.txt

v0.0.3

Choose a tag to compare

@github-actions github-actions released this 21 Sep 22:46

πŸš€ Features

  • array: add key_by, duplicates and interleave
  • number: add the number module: lerp, round_to, mean, median, percentage, gcd, lcm
  • string: add title_case, constant_case, squish, indent and unescape_html

πŸ“ Documentation

  • agents: list the new helpers in llms.txt
  • add the Codecov badge to the README
  • rewrite the README and point the homepage to helpers4.dev/rust
  • add the pre-1.0 notice to the README and fix its install section

βœ… Tests

  • number: cover lcm(0, 0)

πŸ‘· CI/CD

  • add the OpenSSF Scorecard workflow
  • notify the website when a release is published

v0.0.2

Choose a tag to compare

@github-actions github-actions released this 21 Sep 14:00

πŸš€ Features

  • cache: add ExpiringMap
  • http: add bearer_token
  • net: add is_valid_hostname and HostnameError
  • net: add is_public_ip
  • time: add unix_now_millis
  • time: add unix_now and ClockError

πŸ› Bug Fixes

  • net: reject hostnames whose last label is a number

πŸ”§ Miscellaneous

  • ignore the VS Code local history

♻️ Refactoring

  • hex: name the hex parameter hex instead of s
  • net: make the CIDR prefix precondition explicit

πŸ“ Documentation

  • net: spell out what is_public_ip guarantees and what it cannot know
  • document the ExpiringMap capacity bound and the unix_now_millis saturation

βœ… Tests

  • cache: check that a non-empty map is not empty
  • benchmark is_public_ip and ExpiringMap

πŸ‘· CI/CD

  • exclude the equivalent ExpiringMap sweep-guard mutant
  • publish with trusted publishing only

v0.0.1

Choose a tag to compare

@github-actions github-actions released this 19 Sep 21:51

πŸš€ Features

  • array: add cartesian_product
  • array: add group_by
  • array: add count_by
  • array: add equals_unordered
  • array: add intersects
  • array: add symmetric_difference
  • array: add intersection
  • array: add difference
  • array: add unique_by
  • array: add unique
  • env: add remove
  • env: add set and InvalidKeyError
  • env: add get
  • env: add parse
  • hex: add decode_array
  • hex: add decode_to_slice
  • hex: add decode and DecodeError
  • hex: add encode_upper
  • hex: add encode
  • string: add escape_html
  • string: add dedent
  • string: add truncate
  • string: add slugify
  • string: add kebab_case
  • string: add snake_case
  • string: add pascal_case
  • string: add camel_case
  • scaffold crate with string::capitalize

πŸ”§ Miscellaneous

  • drop the redundant helpers4 scope

♻️ Refactoring

  • string: colocate tests, property tests and benches with each helper
  • adopt a strict lint table

πŸ“ Documentation

  • agents: describe the CI checks and the reusable workflows
  • agents: note that coverage counts each generic instantiation
  • string: drop the Since marker in favor of a computed api-since.json
  • string: list the string helpers in llms.txt

βœ… Tests

  • array: benchmark unique, difference, group_by and equals_unordered
  • hex: benchmark encode and decode
  • string: benchmark the case, slug, escape and dedent helpers

πŸ“¦ Build

  • publish only sources, benchmarks and entry-point docs

πŸ‘· CI/CD

  • confirm suspected benchmark regressions before reporting them
  • say so when a diff generates no mutant
  • raise the benchmark noise threshold to avoid false regressions
  • add benchmark and mutation-testing jobs
  • configure cargo-mutants
  • run the minimal-versions job on nightly despite rust-toolchain.toml
  • split CI into reusable jobs with PR and main validation