Releases: SFDO-Tooling/Snowfakery
Snowfakery 2.0
Recipes can now merge in data from Salesforce orgs as records, IDs or datasets. (#395 and #401)
Output streams can now be specified as 3rd party libraries. Any Python class name can be passed to --output-format as long as it adheres to the OutputStream protocol as shown in examples/YamlOutputStream.py (#351)
Snowfakery is thread-safe/multi-processor-ready and available for parallel usage in CumulusCI. (CumulusCI Repo)
Snowfakery now supports a --reps option as an easier way to repeat a recipe (#416)
Snowfakery now accepts LeadingCaps syntax for all fakers, as well as underscore_separated and everythinglowercase. (#403)
Salesforce.ContentVersion and Salesforce.ProfileId convenience functions were added (#421)
Snowfakery now has voluminous documentation about Fakes in many languages and locales (#409)
v1.12
Snowfakery 1.12
Fix a regression: In some contexts it was impossible to call Faker with either positional arguments or keyword arguments. It is now possible to call with keyword arguments again. Positional arguments are still disallowed and older recipes may need to be updated to use keyword arguments. (#388)
e.g. ${{fake.sentence(nb_words=4)}}
instead of ${{fake.sentence(4)}}
Snowfakery now informs you that it is not possible to use just_once in a nested context. Previously, the results of doing so were unpredictable. (#333)
V1.11
v1.10 Fake Data Improvements
Snowfakery now has some of its own built-in "Fake data types". For example "FirstName"
(instead of first_name) and "Username" (which is like a Salesforce Username).
These new names should be more intuitive for Salesforce users. PR #343
Fake "emails" now use domains based on "example.com" and similar domains specified in
RFC 2606. This ensure that they are never real email addresses. Broader domain
email addressses are still available as described in th documentation. PR #343
Fake names are now case agnostic. FIRSTname, firstNAME, firstname, FIRSTNAME,
etc. are all identical. PR #343
v.1.9 : Text or Binary Files and new API
1.8.1: Fixed packaging issue.
Fixed packaging issue.
1.8: CumulusCI mapping file replacement features
1.7: Person Accounts
Adds support for Salesforce Person Accounts.
Snowfakery 1.6
Record types can now be specified with random_choice. #273
Plugins are now searched for in relative directories called "plugins" as well as a directory under the user's home directory. See the docs for more information. #229
Snowfakery can now generate SQL text as an output format. The specific schema is compatible with CCI's data loader, but can be used in other contexts. #162
Add a snowfakery_filename variable to allow injecting the recipe filename into recipe output. #249
Add NULL to Snowfakery formulas #239
Allow references to be indirect and include dots in them. Consequently, dots and other punctuation are now disallowed in nicknames and discouraged in object/table names. #186
Snowfakery's default branch is now main, so references to master should be updated.
Snowfakery 1.5: random_reference, variables, snowfakery_locale and graphviz
Adds a "random_reference" feature to allow randomized
connections between objects as described in the documentation.
(PR #184)
Adds a notion of "variables" as described in the documentation. These allow computed values to be easily shared between object templates.
(PR #231)
Adds a "snowfakery_locale" variable which determines what locale drives fake data creation (person nammes, state/province name etc.)
(PR #231)
Does not depend upon pygraphviz library which can be difficult to install. One will still generally want to install
graphviz, but not both graphviz AND pygraphviz. (PR #171)
Calls to "fake" are optimized. Recipes that are heavily reliant on faked fields may be 10-15% faster. One tradeoff is that e.g. person names or state names do not follow a real-world statistical distribution. Rare names (in en_US locale) like "Mathias" are now as common as real-world common names like "Matthew". (PR #214)