CHANGELOG

All notable changes to this project will be documented in this file.

The format follows Keep a Changelog, and the project versioning adheres to Semantic Versioning.

[2.0.0] - unreleased

Breaking Change

  • #246 (:extension) Remove KSP from kotest-property extension

  • #219 (:core) Extract faker’s providers into several submodules of their own

Added

  • #254 (:faker) Add Pictures faker

  • #245 (:extension) Add extension for testing with BLNS

  • #243 (:core) Add collection element and map k/v type gen for random class instance

  • #234 (:extension) Add extension module for kotest property testing

  • #232 (:core) Add support for alternative primary key when resolving values

  • #227 Add BOM to manage faker versions

  • #222 (:faker:databases) Create new Databases faker module

  • #218 (:core) Allow creating custom fakers / generators

Changed

  • #249 Publish all artifacts with the same version

Cleaned-up tags:

➜ git tag --list | grep -e 'faker-.*v2.0.0-rc.*' | xargs -I{} git tag --delete {}
Deleted tag 'faker-books-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-books-v2.0.0-rc.2' (was 5a1b993d)
Deleted tag 'faker-books-v2.0.0-rc.3' (was 306caa24)
Deleted tag 'faker-books-v2.0.0-rc.4' (was 2783626a)
Deleted tag 'faker-commerce-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-commerce-v2.0.0-rc.2' (was c29b243c)
Deleted tag 'faker-commerce-v2.0.0-rc.3' (was 036c2ccf)
Deleted tag 'faker-commerce-v2.0.0-rc.4' (was e0764054)
Deleted tag 'faker-creatures-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-creatures-v2.0.0-rc.2' (was 9d92cbca)
Deleted tag 'faker-creatures-v2.0.0-rc.3' (was 928a0a06)
Deleted tag 'faker-creatures-v2.0.0-rc.4' (was 2925c425)
Deleted tag 'faker-databases-v2.0.0-rc.1' (was 37c8f34e)
Deleted tag 'faker-databases-v2.0.0-rc.2' (was 7f01d507)
Deleted tag 'faker-databases-v2.0.0-rc.3' (was 3c9bd650)
Deleted tag 'faker-edu-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-edu-v2.0.0-rc.2' (was f5672634)
Deleted tag 'faker-edu-v2.0.0-rc.3' (was c7c889a8)
Deleted tag 'faker-edu-v2.0.0-rc.4' (was 96602cb8)
Deleted tag 'faker-games-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-games-v2.0.0-rc.2' (was da487701)
Deleted tag 'faker-games-v2.0.0-rc.3' (was 7ec46be9)
Deleted tag 'faker-games-v2.0.0-rc.4' (was 94233f02)
Deleted tag 'faker-humor-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-humor-v2.0.0-rc.2' (was 16431204)
Deleted tag 'faker-humor-v2.0.0-rc.3' (was a5c4f3fe)
Deleted tag 'faker-humor-v2.0.0-rc.4' (was 828b3579)
Deleted tag 'faker-japmedia-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-japmedia-v2.0.0-rc.2' (was a1d0f685)
Deleted tag 'faker-japmedia-v2.0.0-rc.3' (was 877bb934)
Deleted tag 'faker-japmedia-v2.0.0-rc.4' (was 2fece179)
Deleted tag 'faker-lorem-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-lorem-v2.0.0-rc.2' (was 8bade88d)
Deleted tag 'faker-lorem-v2.0.0-rc.3' (was 069835f9)
Deleted tag 'faker-lorem-v2.0.0-rc.4' (was d4b6a878)
Deleted tag 'faker-misc-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-misc-v2.0.0-rc.2' (was ccc4795d)
Deleted tag 'faker-misc-v2.0.0-rc.3' (was 68c43b3c)
Deleted tag 'faker-misc-v2.0.0-rc.4' (was a34edb67)
Deleted tag 'faker-movies-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-movies-v2.0.0-rc.2' (was c2089d94)
Deleted tag 'faker-movies-v2.0.0-rc.3' (was a4d5d663)
Deleted tag 'faker-movies-v2.0.0-rc.4' (was 8f0bbdd9)
Deleted tag 'faker-music-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-music-v2.0.0-rc.2' (was 4f080065)
Deleted tag 'faker-music-v2.0.0-rc.3' (was 02445b0c)
Deleted tag 'faker-music-v2.0.0-rc.4' (was c8c74405)
Deleted tag 'faker-sports-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-sports-v2.0.0-rc.2' (was 99f07075)
Deleted tag 'faker-sports-v2.0.0-rc.3' (was f83980e5)
Deleted tag 'faker-sports-v2.0.0-rc.4' (was 392c74c1)
Deleted tag 'faker-tech-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-tech-v2.0.0-rc.2' (was e2f8c5b1)
Deleted tag 'faker-tech-v2.0.0-rc.3' (was 1572e6f8)
Deleted tag 'faker-tech-v2.0.0-rc.4' (was 2bc3b63e)
Deleted tag 'faker-travel-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-travel-v2.0.0-rc.2' (was 7ef5850c)
Deleted tag 'faker-travel-v2.0.0-rc.3' (was 823b7e0b)
Deleted tag 'faker-travel-v2.0.0-rc.4' (was 58fc8567)
Deleted tag 'faker-tvshows-v2.0.0-rc.1' (was d7d01006)
Deleted tag 'faker-tvshows-v2.0.0-rc.2' (was c27508d8)
Deleted tag 'faker-tvshows-v2.0.0-rc.3' (was d016c24e)
Deleted tag 'faker-tvshows-v2.0.0-rc.4' (was 6e3c8743)

➜ git tag --list | grep -e 'ext-.*v2.0.0-rc.*' | xargs -I{} git tag --delete {}
Deleted tag 'ext-blns-v2.0.0-rc.6' (was c6028cd1)
Deleted tag 'ext-kotest-property-ksp-v2.0.0-rc.1' (was 7e5fe034)
Deleted tag 'ext-kotest-property-v2.0.0-rc.1' (was 1464550b)
Deleted tag 'ext-kotest-property-v2.0.0-rc.2' (was 64d5125e)

  • #252 (:core) Get rid of reflection in FakerService

Fixed

  • #240 (:core) Fix NoSuchElementException in uk.company.name

    • Also fixes uk.name.first_name and uk.name.last_name to return both male and female names.

  • #207 (:core) Regexify generates invalid value

  • #208 (:core) Regexify fails with StackOverflowError

Other

  • #248 Update kotlin to 2.x, update and cleanup other dependencies

  • #247 Remove most logic from root build.gradle file

  • (:docs) Convert docs submodule to a standalone gradle project

[1.16.0] - 2024-02-12

Breaking Change

  • #214 (:core) Update Faker#internet#domain function which affects returned values

  • #213 (:core) Add support for unique data generation to Faker#random

Added

  • #215 (:core) Add IPv4, IPv6 and MAC address generation to Internet

    • iPv4Address()

    • publicIPv4Address()

    • privateIPv4Address()

    • iPv6Address()

    • macAddress()

  • #214 (:core) Update dictionary files, including:

    • Data and functions in existing data providers

    • Faker().internet.domain() now takes optional argument and produces a "safe-domain" (ending with .example or .test)

    • Updates to existing localized dictionaries + one new locale

  • #208 (:core) Allow StringProvider#regexify to take Regex as input

  • #202 (:core) Allow randomClassInstance to directly use predefined generators

New Data Providers

  • smashing_pumpkins

  • the_room

New Locales

  • en-KE

Fixed

  • #205 (:core) Fix Person.birthDate range error during leap year

  • #204 (:core) Fix RandomClassProvider handling "constructor-less" types in collections

[1.15.0] - 2023-10-06

Added

  • #195 (:core) Update dictionary files, including:

    • Data and functions in existing data providers, including new functions:

      • Faker().company.department()

      • Faker().dnd.name…​

      • Faker().internet.safeDomainSuffix()

      • Faker().southPark.episodes()

    • Updates to existing localized dictionaries

  • #197 (:cli-bot) Render sub-providers functions in cli output

  • #200 (:core) Add new data providers

New Data Providers

  • archer

  • final_fantasy_xiv

  • mitch_hedberg

  • train_station

Changed

  • #197 (:cli-bot) Change cli lookup command to return matching providers by name

Fixed

  • #188 (:core) Fix postcode for en-GB locale

  • #193 (:core) Fix localized postcodes with regex patterns

[1.14.0] - 2023-03-19

Added

  • #179 (:core) Add parameter info context to user defined generators

  • #176, #182, #183, (:core) Update dictionary files, including:

    • Data and functions in existing data providers

      • Faker().food.allergens()

    • Updates to existing localized dictionaries

New Data Providers

  • airport

  • avatar

  • chess

  • cowboy_bebop

  • spongebob

Other

  • #181 (:core) Add context to exception when randomClassInstance fails

[1.13.0] - 2022-12-18

Added

  • #164 Add possibility to configure RandomClassProvider on higher levels

  • #165 Add copy and new functions to RandomClassProvider

Changed

  • #159 Change format of dictionary files from yml to json

Fixed

  • #161 Fix empty lists as parameter values

  • #171 Fix locale fallback

  • #173 Fix phoneNumber generation for en-US locale

Other

  • #168 Reduce faker’s shadowed jar size

[1.12.0] - 2022-10-16

Added

  • #134 Overload RandomService#randomSublist and RandomService#randomSubset with sizeRange parameter

  • #144 Add index and punctuation chars support to RandomService#randomString

  • #154 New CryptographyProvider for generating random sha sums

  • #155 (:core) Update dictionary files, including:

    • Data and functions in existing data providers

    • Updates to existing localized dictionaries

New Data Providers

  • hackers

  • mountaineering

  • sport

  • tarkov

Changed

  • #135 Initialize Faker data providers lazily

Fixed

  • #136 Parameter 'streets' not found in 'ADDRESS' category

  • #137 Parameter 'category' not found in 'COMPANY' category for 'ja' locale

  • #138 Parameter 'zip_code' not found in 'ADDRESS' category for 'fr' locale

  • #140 Fix NPE when generating CurrencySymbol with non 'en' locale

  • #142 Fix unique localized category keys missing from dictionary

  • #146 Fix RandomService#randomString for some eng-lang locales

  • #148 Fix StarWars quotes by character

Docs

  • #130 Document how to add new data providers

[1.11.0] - 2022-05-22

Added

  • #122 (:core) Add (unique) numerify, letterify, bothify and regexify functions through StringProvider

  • #129 (:core) Update dictionary files, including:

  • New data and functions in existing data providers

  • Updates to existing localized dictionaries

    • Especially notable for fr and ja locales as they now, similarly to en locale, contain multiple dict files per locale

  • New localized dictionaries for es-AR, lt and mi-NZ locales

New Data Providers

  • adjective

  • australia

  • bible

  • bird

  • brooklynNineNine

  • camera

  • clashOfClans

  • conan

  • doraemon

  • emotion

  • finalSpace

  • fmaBrotherhood

  • hobby

  • howToTrainYourDragon

  • jackHandey

  • kamenRIder

  • mountain

  • naruto

  • room

  • studioGhibli

  • superMario

  • supernatural

  • tea

  • theKingkillerChronicle

  • theOffice

  • tolkien

  • touhou

  • tron

  • volleyball

Changed

  • Some functions will now accept enum-typed parameters instead of strings

  • Add deprecation warnings to some functions due to upstream changes in yml dict files

Fixed

  • #125 (:core) Generating postcode with locale "nl" gives back expression rather than result

[1.10.0] - 2022-02-20

Added

  • #115 (:core) Add Crossfit® provider to Faker

  • #117 (:core) Add namedParameterGenerator for RandomProvider#randomClassInstance

  • #118 (:core) Add support for chained parameter expressions in yml dicts

  • #55 (:core) Add missing 'Educator' functionality

  • #53 (:core) Implement 'Finance' functions

Fixed

  • #54 (:core) Incorrect return values for Vehicle#licence_plate(_by_state)

[1.9.0] - 2021-11-19

Added

  • #103 (:core) Add support for Collection types in RandomProvider#randomClassInstance

  • #96 (:core) Add randomSubset and randomSublist to RandomService

  • #92 (:core) Add randomString function to RandomService

  • #86 (:core) Generate birth-date based on the age

Changed

  • #108 Update kotlin to 1.6.0

  • #100 (:core) Add deprecation warning for RandomService#nextString since it’s going to be replaced with RandomService#randomString

  • #97 (:core) Change RandomService#nextString to generate strings only within given locale

Fixed

  • #104 (:core) RandomProvider#randomClassInstance : 'No suitable constructor found' for primitive classes

[1.8.0] - 2021-10-03

Added

  • #67 (:core) Access to RandomService through Faker for generating random Int, Double, Float, etc.

  • #77 (:core) Extra functionality to RandomService - nextEnum(), nextUUID(), nextLong(bound) functions.

  • #69 (:core) Passing seed directly to FakerConfig instead of through java.util.Random instance

  • #71 (:core) DSL for creating and configuring Faker

  • #78 (:core) Support sealed classes in RandomProvider#randomClassInstance fun

  • #88 (:core) Postpone initialization of FakerConfig through the Builder

Changed

  • Configurable length of the string generated with RandomService#nextString

Fixed

  • #65 (:core) Could not initialize class io.github.serpro69.kfaker.Mapper with SpringBoot 2.4.x

  • #60 (:core) Move out of Bintray/Jcenter

  • #79 (:core) java.lang.NoClassDefFoundError: org/yaml/snakeyaml/error/YAMLException

  • #81 (:core) RandomProvider#randomClassInstance fails for object types

  • #90 (:core) Android java.lang.NoClassDefFoundError: FakerService$$ExternalSyntheticLambda1

  • #87 (:core) Parameter 'city_root' not found in 'address' category

  • #89 (:core) Parameter 'male_last_name' not found in 'name' category for "ru" locale

[1.7.1] - 2021-04-28

Fixed

  • #45 (:core) Parameter 'city_name' not found in 'address'

[1.7.0] - 2021-04-16

Added

  • #59 (:core) Random money amount

  • #62 (:core) Add nullable types to random provider type generator

[1.6.0] - 2020-12-30

Added

  • #44 (:core) Add support for random instance configuration.

  • #47 (:core) Publish release candidates to bintray

  • #49 (:core) Unique values exclusions with wildcards

  • #46 (:core) Support deterministic constructor selection for randomClassInstance

Fixed

  • #26 (:core) Parameter '4' not found in 'vehicle' category

  • #48 (:core) streetFighter#moves: class java.util.LinkedHashMap cannot be cast to class java.lang.String

  • #50 (:core) Horseman spelt wrong

  • #56 (:core) Values with single '?' char are not always letterified

Changed

[1.5.0] - 2020-08-30

Added

  • #40 (:core) Add enum support for RandomProvider

  • #39 (:core) Update dict files.

  • Including new functions in existing providers:

  • aquaTeenHungerForce.quote()

  • dnd.cities()

  • dnd.languages()

  • dnd.meleeWeapons()

  • dnd.monsters()

  • dnd.races() - replaces deprecated species() function.

  • dnd.rangedWeapons()

  • heroesOfTheStorm.classNames() - replaces deprecated classes() function

  • movie.title()

  • name.neutralFirstName()

  • phish.albums()

  • phish.musicians()

  • phish.songs() - replaces deprecated song() function

  • simpsons.episodeTitles()

  • Including new faker providers:

  • barcode

  • bigBangTheory

  • drivingLicense

  • drone

  • futurama

  • minecraft

  • prince

  • rush

  • streetFighter

Changed

  • #32 Upgrade kotlin to 1.4.0

[1.4.1] - 2020-08-22

Added

  • #41 publish to maven central

[1.4.0] - 2020-07-09

Fixed

  • #36 Build native-image before uploading to bintray

Changed

  • #37 Revisit automated builds for patches

Added

  • #34 (:core) 8 new providers:

  • warhammerFantasy

  • suits

  • show

  • pearlJam

  • departed

  • control

  • dnd

  • blood

  • #33 (:cli-bot) partial matching for provider names

[1.3.1] - 2020-06-07

Fixed

  • #27 Resolving partially-localized provider functions with secondary_key

[1.3.0] - 2020-06-03

Added

  • #24 faker-bot cli application

  • Automated releases to github

Changed

  • #29 Remove classgraph dependency

  • Split core faker functionality and cli bot application into sub-projects.

[1.2.0] - 2020-05-17

Added

  • 3 new providers: chiquito, computer, and rajnikanth

  • New functions to existing providers:

  • address.cityWithState()

  • address.mailbox()

  • gender.shortBinaryTypes()

  • educator provider changed completely due to new dict file structure

  • Upgrades to existing dict files

  • Automated versioning (patches only) and deploys

Fixed

  • #18 Visibility of randomClassInstance() function in [RandomProvider](core/src/main/kotlin/io/github/serpro69/kfaker/provider/RandomProvider.kt) class

  • #20 Issues with FasterXML Jackson 2.10.1

[1.1.0] - 2019-11-30

Added

  • 3 new providers: game, horse, and opera

  • 2 new locales: th and en-TH

  • New functions to existing providers:

  • cannabis.brands()

  • company.sicCode()

  • internet.email(name)

  • internet.safeEmail(name)

Changed

  • Rename functions as per changes in the dictionary files:

  • drWho.villians()drWho.villains()

  • space.launchVehicule()space.launchVehicle()

  • Updated all dictionary files incl. localizations

Fixed

  • #15 Sources artifact is empty

[1.0.0] - 2019-10-30

Added

  • FakerConfig for configuration of Faker instance

  • #7 Generation of unique values through Faker instance and separate providers

  • #8 Exclusion of generated values for global unique generator

  • #12 Generation of email addresses to Internet provider

Changed

  • Make Faker a class instead of singleton object

  • #13 Rename Internet.safeEmail to Internet.domain

[0.2.0] - 2019-09-30

Added

  • #1 Random class instance generator

  • #2 Support for deterministic random

[0.1.0] - 2019-04-16

Added

  • Generator of fake data for the majority of .yml files

  • Readme containing installation and usage examples

  • This changelog file

  • CI through travis

  • Publishing to bintray

Fixed

  • #3 Initializing faker with invalid locale

  • #4 Resolving "separator" category

  • #5 Reading .yml files from compiled .jar