Skip to content

Latest commit

 

History

History
853 lines (643 loc) · 54.7 KB

CHANGELOG.md

File metadata and controls

853 lines (643 loc) · 54.7 KB

3.18.0

New options for floating point arbitraries [Code][Diff]

Features

  • (PR#4917) Add option to produce non-integer on double
  • (PR#4923) Add option to produce non-integer on float
  • (PR#4935) Produce "//" in web paths

Fixes

  • (PR#4924) CI: Enable more advanced TS flags
  • (PR#4925) CI: Explicitly test against Node 22
  • (PR#4926) CI: Stabilize tests of double on small ranges
  • (PR#4921) Performance: More optimal noInteger on double
  • (PR#4933) Script: Switch on more eslint rules
  • (PR#4922) Test: Cover noInteger on double via integration layers

3.17.2

Directly reference the official documentation from NPM [Code][Diff]

Fixes

  • (PR#4853) CI: Build doc with full git history
  • (PR#4872) CI: Stop caching Jest on CI
  • (PR#4852) Doc: Show last update time on doc
  • (PR#4851) Doc: Add last modified date to sitemap
  • (PR#4868) Doc: Enhance SEO for homepage
  • (PR#4888) Doc: Add tutorial for PBT with Jest
  • (PR#4901) Doc: Use official doc for npm homepage
  • (PR#4866) Test: Safer rewrite of Poisoning E2E
  • (PR#4871) Test: Move tests to Vitest
  • (PR#4863) Test: Explicitely import from Vitest
  • (PR#4873) Test: Move to v8 for coverage
  • (PR#4875) Test: Better mock/spy cleaning

3.17.1

Better interrupt CJS/MJS regarding types [Code][Diff]

Fixes

  • (PR#4842) Bug: Fix dual-packages hazard and types incompatibility
  • (PR#4836) Doc: Release note for 3.17.0
  • (PR#4844) Doc: Add new contributor patroza

3.17.0

Allow access to some internals details linked to the underlying random generator [Code][Diff]

Features

  • (PR#4817) Expose internal state of the PRNG from Random

Fixes

  • (PR#4781) Doc: Official release note of 3.16.0
  • (PR#4799) Doc: Add more links in the footer
  • (PR#4800) Doc: Better colors for footer and dark mode

3.16.0

Type assert on assertions linked to fc.pre [Code][Diff]

Features

  • (PR#4709) Make fc.pre an assertion function

Fixes

  • (PR#4736) Bug: Wrong logo ratio on small screen
  • (PR#4747) CI: Deploy website on Netlify
  • (PR#4751) CI: Drop configuration of GitHub Pages
  • (PR#4756) CI: Make CI fail on invalid deploy
  • (PR#4776) CI: Drop Google Analytics
  • (PR#4769) Clean: Drop legacy patch on React 17
  • (PR#4677) Doc: Add jsonwebtoken to track record
  • (PR#4712) Doc: Fix console errors of website
  • (PR#4713) Doc: Add extra spacing on top of CTA
  • (PR#4730) Doc: Optimize image assets on homepage
  • (PR#4732) Doc: Optimize SVG assets
  • (PR#4735) Doc: Less layout shift with proper sizes
  • (PR#4750) Doc: Add link to Netlify
  • (PR#4754) Doc: Better assets on the homepage of the website
  • (PR#4768) Doc: Add new contributors ej-shafran and gruhn
  • (PR#4771) Doc: Blog post for 3.15.0
  • (PR#4753) Security: Configure CSP for fast-check.dev
  • (PR#4761) Security: Enforce Content-Security-Policy on our website
  • (PR#4772) Security: Relax CSP policy to support Algolia

3.15.1

Prepare the monorepo for ESM build-chain [Code][Diff]

Fixes

  • (PR#4591) CI: Move build chain to ESM for root of monorepo
  • (PR#4598) CI: Add onBrokenAnchors'check on Docusaurus
  • (PR#4606) CI: Configuration files for VSCode
  • (PR#4650) CI: Move examples build chain to ESM
  • (PR#4554) Doc: Add idonttrustlikethat-fast-check in ecosystem.md
  • (PR#4563) Doc: Add new contributor nielk
  • (PR#4669) Doc: Add @effect/schema in ecosystem
  • (PR#4665) Test: Fix isCorrect check on double
  • (PR#4666) Test: Stabilize flaky URL-related test

3.15.0

Add support for depthIdentifier to dictionary [Code][Diff]

Features

  • (PR#4548) Add support for depthIdentifier to dictionary

Fixes

  • (PR#4502) Bug: Also produce null-prototype at root level of generated object when requested to
  • (PR#4481) CI: Migrate configuration of Docusaurus to TS
  • (PR#4463) Doc: Blog post for 3.14.0
  • (PR#4464) Doc: Prefer import notation over require for README
  • (PR#4482) Doc: Rework section on waitAll in the tutorial
  • (PR#4477) Doc: Fix typo in date.md
  • (PR#4494) Doc: Add new contributor bennettp123
  • (PR#4541) Refactor: Rely on dictionary for object instead of inlined reimplementation
  • (PR#4469) Test: More stable snapshot tests on stack traces
  • (PR#4470) Test: Add cause flag onto snapshot tests checking stack traces
  • (PR#4478) Test: Better snapshots tests implying stacktraces
  • (PR#4483) Test: Wrap async no-regression snapshots within a sanitizer for stacktraces

3.14.0

Lighter import with less internals to load [Code][Diff]

Features

  • (PR#4426) Prefer "import type" over raw "import"

Fixes

  • (PR#4364) CI: Toggle more immutable on yarn
  • (PR#4369) CI: Do not override existing on untar
  • (PR#4372) CI: REVERT Do not override existing on untar
  • (PR#4371) CI: Mark final check as failed and not skipped
  • (PR#4375) CI: Attempt to patch untar step
  • (PR#4378) CI: Attempt to patch untar step
  • (PR#4380) CI: Add missing but directly called dependencies
  • (PR#4384) CI: Attempt to patch untar step
  • (PR#4368) CI: Attempt to switch to pnp linker
  • (PR#4407) CI: No parallel "git" command
  • (PR#4419) CI: Prefer "import type" via linter
  • (PR#4428) CI: Default to Node 20 for CI
  • (PR#4441) CI: Add support for PnP on VSCode
  • (PR#4345) Performance: Faster replay: drop loose compare
  • (PR#4381) Test: Import buffer via aliased name

3.13.2

Better reporting for invalid paths [Code][Diff]

Fixes

  • (PR#4344) Bug: Path wrongly reported when invalid
  • (PR#4279) CI: Better caching for yarn
  • (PR#4346) CI: Better yarn caching in CI
  • (PR#4347) CI: Avoid yarn install on "cache hit"
  • (PR#4348) CI: Create job to confirm all passed
  • (PR#4352) CI: Skip install on hot cache (win/mac)
  • (PR#4299) Doc: Article around Zod vulnerability
  • (PR#4306) Doc: Fixing a typos in Zod article
  • (PR#4307) Doc: Add missing robots.txt
  • (PR#4356) Doc: Better document limitations of gen
  • (PR#4338) Script: Faster tests execution with babel
  • (PR#4270) Test: Check tsc import and types of bundled package
  • (PR#4271) Test: Typecheck ESM bundle correctly
  • (PR#4269) Test: Rework checks against legacy node

3.13.1

Fix typings for node native esm [Code][Diff]

Fixes

  • (PR#4261) Bug: Fix typings for node native esm
  • (PR#4230) Doc: Release note for 3.13.0
  • (PR#4240) Doc: Some tips on prototype pollution
  • (PR#4246) Doc: Fix typo in "Detect prototype pollution automatically"

3.13.0

New options for date, record and dictionary [Code][Diff]

Features

  • (PR#4197) Add support for "Invalid Date" in date
  • (PR#4203) Deprecate withDeletedKeys on record
  • (PR#4204) Support null-proto in dictionary
  • (PR#4205) Support null-proto in record

Fixes

  • (PR#4207) Bug: Better poisoning resiliency for dictionary
  • (PR#4194) CI: Add some more details onto the PWA
  • (PR#4211) CI: Rework broken test on date
  • (PR#4212) CI: Rework broken test on date (retry)
  • (PR#4214) CI: Rework another broken test on date
  • (PR#4186) Doc: Document our approach to dual package
  • (PR#4187) Doc: Expose website as PWA too
  • (PR#4190) Move: Move the manifest in /static
  • (PR#4206) Refactor: Re-use null-proto helpers of dictionary on anything
  • (PR#4189) Test: Drop Node 14.x from the test-chain

3.12.1

Better support for types on ESM targets [Code][Diff]

Fixes

  • (PR#4172) Bug: Better declare ESM's types
  • (PR#4177) Bug: Replace macros in published esm types
  • (PR#4156) CI: Stop formatting built website
  • (PR#4155) CI: Add TypeScript checks on website
  • (PR#4171) CI: Update Devcontainer settings
  • (PR#4181) CI: Add exempted labels for stale bot
  • (PR#4136) Clean: Drop dependency @testing-library/jest-dom
  • (PR#4107) Doc: What's new article for fast-check 3.12.0
  • (PR#4118) Doc: Drop raw bench results from release note
  • (PR#4117) Test: Stabilize test related to NaN in exclusive mode
  • (PR#4033) Tooling: Update formatting

3.12.0

Faster float, double and ulid and excluded min/max [Code][Diff]

Features

  • (PR#4100) Support excluded min/max in double
  • (PR#4105) Support excluded min/max in float

Fixes

  • (PR#4094) Bug: Stop unwrapping ulid we cannot build
  • (PR#4095) Bug: Be resilient to poisoning with ulid
  • (PR#4041) CI: Ensure we use latest node in range
  • (PR#4062) CI: Update devcontainer configuration
  • (PR#4065) CI: Better configuration for renovate
  • (PR#4068) CI: Refine configuration of renovate
  • (PR#4073) CI: New attempt to configure renovate
  • (PR#4075) CI: Configure renovate to bump non-package
  • (PR#4078) CI: Disable nodenv bumps on renovate
  • (PR#4080) CI: Stop bumping node via renovate
  • (PR#4040) Doc: Prepare release note for 3.11.0
  • (PR#4087) Doc: Add new contributor zbjornson
  • (PR#4059) Performance: Faster decomposeFloat/Double
  • (PR#4088) Performance: Drop some unneeded allocs in ulid
  • (PR#4091) Performance: Faster unmap for ulid
  • (PR#4092) Performance: Faster generation of ulid
  • (PR#4098) Performance: Faster ulid mapper function
  • (PR#4039) Script: Add support for more gitmojis

3.11.0

New arbitrary for ulid [Code][Diff]

Features

  • (PR#4020) Implement arbitrary for ulid

Fixes

  • (PR#3956) CI: Define code owners
  • (PR#3961) CI: Fix configuration of CodeQL
  • (PR#3973) CI: Make changelog workflow able to push
  • (PR#3975) CI: Add scorecard security workflow
  • (PR#3991) CI: Properly reference tags in GH Actions
  • (PR#3993) CI: Configure renovate for security bumps
  • (PR#3994) CI: Stop ignoring examples in renovate
  • (PR#3995) CI: Enable some more Scorecard's checks
  • (PR#4007) CI: Fix CI tests for types against next
  • (PR#4008) CI: Show vulnerabilities in renovate
  • (PR#3976) Doc: Add some OpenSSF badges
  • (PR#4034) Doc: Add new contributor vecerek
  • (PR#4010) Security: Move dockerfile content to devcontainer
  • (PR#4000) Security: Drop raw install of npm
  • (PR#3987) Security: Pin npm version for publish
  • (PR#3985) Security: Pin image in Dockerfile of devcontainer
  • (PR#3983) Security: Safer workflows' permissions
  • (PR#3957) Security: Lock GH-Actions dependencies

3.10.0

New arbitrary generating strings matching the provided regex: stringMatching [Code][Diff]

Features

  • (PR#3920) Prepare tokenizers for stringMatching
  • (PR#3921) Introduce stringMatching
  • (PR#3924) Add support for negate regex
  • (PR#3925) Explicit ban of unsupported regex flags in stringMatching
  • (PR#3926) Add support for capturing regexes
  • (PR#3927) Add support for disjunctions in regexes
  • (PR#3928) Correctly parse ^ and $ in regex
  • (PR#3929) Correctly parse numeric backreference
  • (PR#3930) Correctly parse look{ahead,behind} in regexes
  • (PR#3932) Support empty disjunctions in regexes
  • (PR#3933) Add parsing support for \p and \k
  • (PR#3935) Support generation of strings not constrained by ^ or $
  • (PR#3938) Support regex flags: d, m and s
  • (PR#3939) Support unicode regexes

Fixes

  • (PR#3909) Clean: Drop bundle centric tests
  • (PR#3902) Doc: Release note page for 3.9.0
  • (PR#3904) Doc: Fix typo in What's new 3.9.0
  • (PR#3910) Doc: Lazy load image of sponsors
  • (PR#3911) Doc: Add alt labels on feature badges
  • (PR#3912) Doc: Stop lazy images in critical viewport
  • (PR#3913) Doc: Better a11y on feature badges
  • (PR#3898) Script: Run publint in strict mode
  • (PR#3903) Test: Rework race conditions specs in tutorial
  • (PR#3931) Test: Add some more checks on stringMatching
  • (PR#3936) Test: Test against more regexes in stringMatching
  • (PR#3940) Test: Add some more known regexes in our test suite

3.9.0

Finer definition of act to detect race conditions [Code][Diff]

Features

  • (PR#3889) Add ability to customize act per call
  • (PR#3890) Add ability to customize act per wait

Fixes

  • (PR#3892) Bug: Cap timeout values to 0x7fff_ffff

3.8.3

Ensure scheduled models can wait everything needed [Code][Diff]

Fixes

  • (PR#3887) Bug: Always schedule models until the end
  • (PR#3880) CI: Stabilize tests on jsonValue
  • (PR#3876) Clean: Drop legacy documentation
  • (PR#3875) Doc: First blog post on docusaurus switch

3.8.2

Rework documentation [Code][Diff]

Fixes

  • (PR#3780) CI: Do not relaunch build on new tag
  • (PR#3792) CI: Remove parse5 when checking types
  • (PR#3804) CI: Build documentation with LFS enabled
  • (PR#3800) Doc: Add "advanced" part of the documentation
  • (PR#3803) Doc: Update our-first-property-based-test.md: typo, punctuation
  • (PR#3828) Doc: Fix typos in docs
  • (PR#3820) Doc: First iteration on race conditions tutorial
  • (PR#3834) Doc: Rework intro of race condition tutorial
  • (PR#3836) Doc: Merge category and intro for race condition
  • (PR#3837) Doc: Replace categories by real pages
  • (PR#3838) Doc: Add video explaining race condition in UI
  • (PR#3842) Doc: Note about solving race conditions
  • (PR#3843) Doc: Better colors for dark theme
  • (PR#3850) Doc: Points to projects in our ecosystem
  • (PR#3852) Doc: List some bugs found thanks to fast-check
  • (PR#3860) Doc: Use GitHub logo instead of label
  • (PR#3858) Doc: Rework homepage page of fast-check.dev
  • (PR#3863) Doc: Rework display of the homepage for small screens
  • (PR#3864) Doc: Properly display the quick nav buttons
  • (PR#3871) Doc: Update all links to new documentation
  • (PR#3867) Doc: Create proper images in website/
  • (PR#3872) Doc: Reference image from LFS in README
  • (PR#3835) Test: Add tests for snippets in the website

3.8.1

New website for the documentation [Code][Diff]

Fixes

  • (PR#3723) CI: Switch to docusaurus for the documentation
  • (PR#3729) CI: Pre-setup devcontainer with GH Actions
  • (PR#3728) CI: Change gh-pages deploy process
  • (PR#3732) CI: Move back to github-pages-deploy-action
  • (PR#3735) CI: Add gtag for analytics
  • (PR#3744) CI: Drop website build on build:all
  • (PR#3751) CI: Update baseUrl on the ain documentation
  • (PR#3754) CI: Drop version from website
  • (PR#3754) CI: Drop version from website
  • (PR#3759) CI: Drop the need for a branch on doc
  • (PR#3775) CI: Publish all packages in one workflow
  • (PR#3724) Doc: Add fuzz keywords
  • (PR#3734) Doc: Add search capability to the doc
  • (PR#3738) Doc: Fix broken links to api-reference
  • (PR#3745) Doc: Document core building blocks in new documentation
  • (PR#3750) Doc: More details into tips/larger-entries...
  • (PR#3753) Doc: Add some more configuration tips in the documentation
  • (PR#3755) Doc: Update all links to target fast-check.dev
  • (PR#3757) Doc: Quick a11y pass on the documentation
  • (PR#3758) Doc: Move missing configuration parts to new doc
  • (PR#3760) Doc: Link directly to the target page not to 30x ones
  • (PR#3761) Doc: Fix broken links in new doc
  • (PR#3774) Security: Attach provenance to the packages
  • (PR#3719) Script: Ensure proper package definition

3.8.0

Introduce new gen arbitrary [Code][Diff]

Features

  • (PR#3395) Introduce new gen arbitrary

Fixes

  • (PR#3706) Doc: Document newly added fc.gen()

3.7.1

Safer declaration of types in package.json [Code][Diff]

Fixes

  • (PR#3671) Bug: Declare types field first in exports
  • (PR#3646) Doc: Fix a typo in Runners.md

3.7.0

Better error reports without duplicated messages [Code][Diff]

Features

  • (PR#3638) Stop repeating the error twice in reports

Fixes

  • (PR#3637) CI: Update ts-jest configuration files

3.6.3

Fix broken replay based on path [Code][Diff]

Fixes

  • (PR#3617) Bug: Fix broken replay based on path
  • (PR#3583) CI: Do not run publish workflow of fast-check for vitest
  • (PR#3616) CI: Always build against latest node

3.6.2

Still work in fake timer contexts [Code][Diff]

Fixes

  • (PR#3571) Bug: Resist to fake timers in interruptAfterTimeLimit
  • (PR#3572) Bug: Resist to fake timers in timeout
  • (PR#3564) Performance: Drop bailout linked to toss

3.6.1

Some more performance improvements [Code][Diff]

Fixes

  • (PR#3563) Performance: Mutate rng inplace in tosser

3.6.0

Slightly faster execution of properties [Code][Diff]

Features

  • (PR#3547) Slightly faster thanks to pure-rand v6
  • (PR#3552) Do not wrap stream when dropping 0 items
  • (PR#3551) Faster implementation of internal function runIdToFrequency
  • (PR#3553) Drop useless internal stream conversions
  • (PR#3554) Tosser must immediately produce values

Fixes

  • (PR#3556) CI: Enable sourceMap in unpublished for coverage
  • (PR#3512) Script: Add --cache option to Prettier
  • (PR#3523) Script: Initialize default devcontainer
  • (PR#3524) Script: Install and setup nvs inside Dockerfile

3.5.1

Still work in fake timer contexts [Code][Diff]

Fixes

  • (PR#3571) Bug: Resist to fake timers in interruptAfterTimeLimit
  • (PR#3572) Bug: Resist to fake timers in timeout

3.5.0

Interrupt running tasks when interruptAfterTimeLimit exceeded [Code][Diff]

Features

  • (PR#3507) Interrupt predicates when interruptAfterTimeLimit
  • (PR#3508) Mark interrupted runs without any success as failures

3.4.0

Better handling of timeout with beforeEach and afterEach [Code][Diff]

Features

  • (PR#3464) No timeout for beforeEach or afterEach

Fixes

  • (PR#3428) Bug: Avoid stack overflow during shrinking of tuples
  • (PR#3432) Bug: Avoid stack overflow during shrinking of arrays
  • (PR#3354) CI: Ignore version bump checks on publish
  • (PR#3379) CI: Fix configuration for rollup esm tests
  • (PR#3394) CI: Limit scope of "All ...bump declared"
  • (PR#3393) CI: Run tests against Node 18.x
  • (PR#3446) CI: Drop circular deps for dev topo builds
  • (PR#3417) Clean: Drop v2 to v3 codemods from the repository
  • (PR#3351) Doc: Update changelogs following backports
  • (PR#3458) Doc: Document how to use context in examples
  • (PR#3476) Doc: Revamp sponsoring section to show GitHub Sponsors
  • (PR#3473) Funding: Re-order links in funding section
  • (PR#3427) Refactor: Expose shrinker of tuples internally
  • (PR#3468) Script: Ensure we don't release workspace-based packages

3.3.0

Expose webPath arbitrary [Code][Diff]

Features

  • (PR#3299) Explicitly declare typings for constraints on date
  • (PR#3300) Expose an url path builder called webPath

Fixes

  • (PR#3328) CI: Drop netlify related code and "please " actions
  • (PR#3298) Doc: Document default values in the JSDoc
  • (PR#3316) Funding: Add link to GitHub sponsors in funding
  • (PR#3301) Test: Poisoning checks compatible with watch mode
  • (PR#3330) Test: Make sure poisoning spec never forget one global

3.2.0

Stop copying the Error into the thrown one but use cause when asked too [Code][Diff]

Features

  • (PR#2965) Attach the original Error as a cause of thrown one
  • (PR#3224) Attach real errors to internal failures

Fixes

  • (PR#3225) CI: Publish @fast-check/poisoning on CodeSandbox's builds
  • (PR#3260) Doc: Sync with current path
  • (PR#3264) Doc: Improve grammar in HowItWorks
  • (PR#3292) Test: Stabilize tests of SlicedBasedGenerator

3.1.4

Increased resiliency to poisoned globals [Code][Diff]

Fixes

  • (PR#3172) Bug: Fix some remaining accesses to global properties
  • (PR#3165) Bug: Resist to poisoning of top-level types
  • (PR#3184) CI: Require renovate to always try to dedupe
  • (PR#3186) CI: Adapt configuration for new ts-jest
  • (PR#3194) CI: Attempt to fix "please deploy"
  • (PR#3196) CI: Build every package for "please deploy"
  • (PR#3208) CI: Better PRs for changelogs cross packages
  • (PR#3156) Doc: Add missing changesets in changelog of 2.21.0
  • (PR#3185) Refactor: Attach a depth onto globals internally
  • (PR#3157) Script: Less verbose description for PRs of CHANGELOG
  • (PR#3174) Test: Add tests dropping all globals
  • (PR#3183) Test: Add some more type related tests for oneof
  • (PR#3076) Test: Check arbitraries do not cause any poisoning
  • (PR#3205) Test: Add missing "typecheck" scripts on packages

3.1.3

More resilient to external poisoning on all arbitraries [Code][Diff]

Fixes

  • (PR#3094) Bug: Make numeric arbitraries resistant to poisoning
  • (PR#3096) Bug: Make single char arbitraries resistant to poisoning
  • (PR#3097) Bug: Make simple combinators arbitraries resistant to poisoning
  • (PR#3098) Bug: Make array combinators arbitraries resistant to poisoning
  • (PR#3099) Bug: Make multi chars arbitraries resistant to poisoning
  • (PR#3102) Bug: Fix safeApply never calling original apply
  • (PR#3103) Bug: Make object arbitraries resistant to poisoning
  • (PR#3104) Bug: Make typed arrays arbitraries resistant to poisoning
  • (PR#3106) Bug: Make recursive arbitraries resistant to poisoning
  • (PR#3107) Bug: Make function arbitraries resistant to poisoning
  • (PR#3108) Bug: Make complex strings arbitraries resistant to poisoning
  • (PR#3143) Bug: Make webFragments/Segment/QueryParameters resistant to poisoning
  • (PR#3152) Bug: Protect string generators against poisoning
  • (PR#3101) CI: Do not suggest private packages during version bumps
  • (PR#3113) CI: Consider ⚡️ aka zap PRs as fixes for changelog
  • (PR#3111) CI: Try to configure renovate to open more PRs
  • (PR#3150) CI: Change update strategy for renovate
  • (PR#3151) CI: Update bump strategy of renovate
  • (PR#3141) Clean: Drop unused dependencies
  • (PR#3100) Performance: Drop unneeded copy for full custom uniqueArray
  • (PR#3105) Performance: Faster implementation for safeApply
  • (PR#3112) Performance: Speed-up all safe versions built-in methods
  • (PR#3109) Refactor: Extract and share code computing safe versions for built-ins
  • (PR#3154) Script: More verbose CHANGELOG script and continue on failure

3.1.2

More resilient to external poisoning on assert and property [Code][Diff]

Fixes

  • (PR#3082) Bug: Protect assert from poisoned Math or Date
  • (PR#3086) Bug: Resist to poisoning of Object
  • (PR#3087) Bug: Resist to poisoning of Function/Array/String
  • (PR#3089) Bug: Clear poisoning instability in filter, map, chain
  • (PR#3079) CI: Auto-cancel previous runs on new commits
  • (PR#3088) Script: Add script to run e2e tests in debug mode
  • (PR#3092) Script: Better handle new projects in changelog generator
  • (PR#3081) Test: Add some poisoning e2e for fast-check
  • (PR#3085) Test: Check poisoning against noop arbitrary (for now)

3.1.1

Better package.json definition and __proto__ related fixes [Code][Diff]

Fixes

  • (PR#3066) Bug: Export package.json
  • (PR#3070) Bug: Support __proto__ as key in record
  • (PR#3068) Test: Fix test comparing stringify and JSON.stringify
  • (PR#3069) Test: Fix tests on record wrongly manipulating __proto__

3.1.0

Generate more dangerous strings by default [Code][Diff]

Features

  • (PR#2975) Sanitize constraints used internally by "oneof" as much as possible
  • (PR#3048) Add experimental "custom slices" constraint on array
  • (PR#3043) Generate dangerous strings by default

Fixes

  • (PR#3049) Bug: Fix out-of-range in SlicedBasedGenerator
  • (PR#3050) Bug: Allow strange keys as keys of dictionary
  • (PR#3051) Bug: Better rounding in statistics
  • (PR#3052) CI: Add missing Ubuntu env for e2e
  • (PR#3047) Refactor: Implement sliced based generator for arrays
  • (PR#3059) Script: Add links to buggy PRs in changelog PR
  • (PR#3060) Script: Only commit package.json corresponding to impacted CHANGELOGs

3.0.1

Basic setup for monorepo [Code][Diff]

Fixes

  • (PR#2986) CI: Switch to Yarn 3 and simple monorepo
  • (PR#2987) CI: Simplify test-bundle script following merge of Yarn 3
  • (PR#2988) CI: Switch to yarn workspace * instead of cd packages/*
  • (PR#2990) CI: Replace npx by yarn dlx
  • (PR#2991) CI: Setup prettier at the root of the project
  • (PR#2992) CI: Drop unneeded benchmarks
  • (PR#2993) CI: Fix script not using the right path
  • (PR#2994) CI: Fix gh-pages publication follwoing move to monorepo
  • (PR#2995) CI: Clean-up .gitignore
  • (PR#2996) CI: Move eslint at top level
  • (PR#2989) CI: Make fast-check self reference itself as a dev dependency
  • (PR#2997) CI: Define top-level script to simplify build and test
  • (PR#2999) CI: Setup for yarn version check
  • (PR#3001) CI: Make use of yarn version for generate changelog
  • (PR#3003) CI: Fix usages of yarn version when generating changelog
  • (PR#3005) CI: Move anything package related next to its package
  • (PR#3008) CI: Check the need for dedupe for each run
  • (PR#3010) CI: Cross-jobs caching for yarn
  • (PR#3011) CI: Enhance and document version related rules for PRs
  • (PR#3014) CI: Run tests against trimmed versions of the packages
  • (PR#3015) CI: Make fast-check's tests rely on its own build
  • (PR#3017) CI: Faster workflow of GH Actions
  • (PR#3023) CI: Factorize test jobs via matrix of GH Actions
  • (PR#3024) CI: Drop es-check related jobs
  • (PR#3032) CI: Handle monorepo in generate changelog
  • (PR#3034) CI: Better links in PR generating changelog
  • (PR#3037) CI: Adapt build script to publish any package
  • (PR#3039) CI: Also commit .yarn/versions with changelogs
  • (PR#3000) Doc: Default to readme from packages/fast-check
  • (PR#3006) Doc: Start following all-contributors specification
  • (PR#3007) Doc: Rework the "bug discovered with fast-check" section of the README
  • (PR#3031) Doc: Add missing README files on bundle related tests
  • (PR#2982) Move: Move example/ to examples/
  • (PR#2983) Move: Move part of test/ into packages/test-bundle-*
  • (PR#2984) Move: Move part of source code into packages/fast-check
  • (PR#2977) Refactor: Simplify logic to read constraints for commands
  • (PR#3016) Test: Check SHA1 of produced bundle in E2E tests

3.0.0

Easier and more expressive thanks to the full support of size and a new and extensible API for custom arbitraries [Code][Diff]

This new major of fast-check is:

  • extensible: extending the framework with custom arbitraries made easy
  • expressive properties: write properties corresponding to specs without dealing with internals of the library (more)
  • recursive structures: better native handling of recursive structures without any tweaks around internals
  • unified signatures: unify signatures cross-arbitraries (more)

Breaking changes

  • (PR#2927) Remove deprecated signatures of fc.array
  • (PR#2929) Remove deprecated signatures of fc.string
  • (PR#2930) Remove deprecated signatures of fc.*subarray
  • (PR#2931) Remove deprecated signatures of fc.commands
  • (PR#2932) Remove deprecated signatures of fc.option
  • (PR#2933) Remove deprecated signatures of fc.json
  • (PR#2934) Remove deprecated signatures of fc.lorem
  • (PR#2935) Drop support for TypeScript 3.2 (min ≥4.1)
  • (PR#2928) Rely on new implementations and APIs for fc.float/fc.double
  • (PR#2938) Remove fully deprecated arbitraries
  • (PR#2939) Remove deprecated signatures of fc.integer
  • (PR#2940) Get rid off genericTuple (replaced by tuple)
  • (PR#2941) Remove forked typings for pure-rand
  • (PR#2942) Change the API of a property to rely on the modern one
  • (PR#2944) Switch to the new API of Arbitrary and remove old variants
  • (PR#2945) Rename NextValue into Value
  • (PR#2949) No depthFactor specified means: use defaulted configuration
  • (PR#2951) Stop defaulting maxKeys and maxDepth on object arbitraries
  • (PR#2952) Stop defaulting maxCount on lorem
  • (PR#2954) Stop defaulting defaultSizeToMaxWhenMaxSpecified to true
  • (PR#2959) Change the output of Property::run to return the original error
  • (PR#2960) Remove frequency now replaced by oneof
  • (PR#2970) Rename depthFactor into depthSize and invert numeric

You may refer to our migration guide in case of issue: https://github.com/dubzzz/fast-check/blob/main/MIGRATION_2.X_TO_3.X.md

Features

  • (PR#2937) Adopt variadic tuples for signatures of clone
  • (PR#2936) Adopt variadic tuples for signatures of property
  • (PR#2950) Add the ability to define use max as depth factor
  • (PR#2953) Extend usage of defaultSizeToMaxWhenMaxSpecified to depth
  • (PR#2955) Add support for weighted arbitraries in oneof
  • (PR#2962) Forward the original Error into RunDetails
  • (PR#2956) Add big int typed arrays arbitraries
  • (PR#2968) Better typings for letrec

Fixes

  • (PR#2963) Bug: Allow property to intercept thrown symbols
  • (PR#2925) CI: Add type-checking only step and script
  • (PR#2923) CI: Format all the files not only TS ones
  • (PR#2964) CI: Check the generated lib against ES standard
  • (PR#2918) Doc: Update "Question" template to request users to prefer "Discussions"
  • (PR#2920) Doc: Add some statistics for jsonValue in the documentation
  • (PR#2966) Doc: Fix link to timeout section in tips doc
  • (PR#2919) Refactor: Replace usages of set by uniqueArray
  • (PR#2921) Refactor: Replace deprecated usages of integer by constraint-based ones
  • (PR#2924) Refactor: Move ts-jest types related helpers internally
  • (PR#2946) Refactor: Clean src thanks to NextArbitrary
  • (PR#2948) Refactor: Adapting some code in anything thanks to TODO
  • (PR#2971) Script: Support breaking changes in generated CHANGELOG
  • (PR#2973) Script: Support typing related PRs in CHANGELOG
  • (PR#2943) Test: Rewrite tests on commands based on NextArbitrary
  • (PR#2947) Test: Remove "Next" from test helpers
  • (PR#2961) Test: Ensure fc.sample can run against properties and arbitraries