Shuttle Hq Synth Versions Save

The Declarative Data Generator

v0.6.5-r1

2 years ago

0.6.5 is here! This release has been focused primarily on improving Datasources integration with a special focus on Postgres as it has been our most popular database integration by far!

Datasource changes

  • Major refactor done around the Datasource traits to improve re-usability and simplicity of the code. Furthermore these changes will make it much easier to add new datasources to synth.
  • First-class support for Postgres arrays, json and jsonb types (See PR for caveats: https://github.com/getsynth/synth/pull/233)
  • Improved handling of integer types with Postgres

Other important things

  • Top-level collections no longer need to be arrays explicitly
  • CI automatically tests code examples in the docs.
  • begin and end mismatches on valid datetimes bug fixed
  • More communicative error messages for different failure modes
  • The process of running all tests via cargo has started - but this is quite a big change and is going to be executed in several stages.

Thank you contributors!

Thank you @chesedo & @WiredSound for your contributions :)

v0.6.4

2 years ago

This release is a hotfix for an intermittent panic that is caused by configuration not being saved properly.

Thanks @chesedo for the contribution!

v0.6.3

2 years ago

In this release we've been focusing on expanding on functionality as well as refactoring and removing some deprecated features.

Big changes

  • We now support the csv files as a data format!
  • You can now pull data directly from a datasource during generation! Currently JSON is supported but we'll have more datasources coming soon.

Other important things

  • We've migrated to Rust 2021 edition
  • We've refactored a bunch of the code to remove the Name struct and a deprecated API or daemon mode.
  • Removed some unnecessary calls for the version update suggestion.

There's more improvements waiting in several PRs which we're hoping to get reviewed and merged over the next couple of weeks so stay tuned :)

Thank you contributors!

Thank you @hbina, @juniorbassani, @WiredSound and @chesedo for making synth amazing!

v0.6.2

2 years ago

In this release, we've been focusing on incrementally improving the user experience.

Big changes

  • We now support the jsonl file format

Other important things

  • Added basic string slicing and constant string generators
  • Further improvements to the testing harness

There's quite a few PRs in the pipeline which we're going to be merging soon so stay tuned for updates!

Thank you contributors!

Thank you @vlushn , @WiredSound and @chesedo for your amazing contributions!

v0.6.1-r4

2 years ago

v0.6.1

2 years ago

In this release, we've been focusing on incremental improvements to the code base as well as improving telemetry.

Big changes

  • Telemetry is now much more insightful, collecting more details usage statistics to help us understand how to build a better tool.

Other important things

  • Fix the one_of generator to actually use the weight parameters.
  • Systematic refactor of the code base to improve readability. This includes consistently formatting macros which are not covered by rustfmt.
  • Improved testing by adding schema relations to the Postgres tests
  • Align the local testing harness with CI

Thank you contributors!

Thank you @hbina, @juniorbassani and @chesedo for your amazing contributions!

v0.6.0

2 years ago

In this release, we've been focusing on improving the user experience! We've gone to 0.6.0 as we're introducing some breaking changes to the schema.

Big changes

  • We now have a custom panic hook which will allow users to optionally phone home if synth panics for whatever reason. This will also send the backtrace helping us debug the underlying issue.
  • We now have a hidden flag for generators which do not generate to the sampler but which can be referenced by other generators.
  • Breaking: date_time is now its own type rather than a subtype of string

Other important things

  • Added a rustfmt check in CI and a pre-commit hook to enforce uniform formatting
  • The format generator is now longer constrained to string arguments and now supports numbers and dates.
  • Fixed behaviour of 0-weight single category categoricals
  • Better error messages all round

Thank you contributors!

Thank you @WiredSound @vlushn @chesedo , @juniorbassani @hbina for your hard work in making synth amazing!

v0.5.6

2 years ago

In this release, we wanted to increase our breadth of support and stabilize existing integrations.

Big changes

  • We now have an MSI installer for Windows. (Special thanks to @brokad for pushing it over the line!)
  • You can now specify the schema on Postgres import / export using the optional --schema parameter. Not specifying a schema defaults to public.
  • Synth import now has proper support for importing primary keys (not composite ones yet!)

Other important things

  • Added warnings for signedness conversions
  • General improvements to documentation
  • Started a video series with tutorials on how to get started with Synth.

Thank you contributors!

Thank you @eltociear, @mdx97 and @vlushn for your awesome contributions and ideas!

v0.5.5

2 years ago

In this release, we wanted to let you generate more complex data with simpler JSON schemas!

We also addressed important issues with generating into databases as we make progress towards stabilizing import/export, especially for postgres.

Big changes

  • You can now specify very complex - deeply nested - relational schemas, and they will "just work"!
  • The number generator got rewritten and became easier to use and lets you do more things out of the box (like including or excluding bounds, having reasonable defaults for each variant, etc). Head over to the docs to see what changed.
  • date_time generators: not specifying the begin or end values will default to current date and time to make life easier.
  • You can now specify a collection to import when importing from files.
  • number generators of the id (autoincrementing) variant can now be of type i32 or i64. This means you can now generate data for SERIAL columns in postgres for example with {"type": "number", "id" {}}.
  • Added a version subcommand to check the latest release and a notification in case your local version is out of date. It won't nag you though, it runs only once per release.

Other important things

  • Added documentation for generation into postgres.
  • Fixed search feature in docs.
  • Added an E2E tutorial for generating data for Prisma data models.
  • The progress bar now disappears after generation.
  • Added citext support.
  • Clean up some of the code around postgres export.

Thank you contributors!

Thank you @cakebaker and @juniorbassani for your awesome contributions!

v0.5.4

2 years ago

Here we are, v0.5.4! A ton has happened since last month. We and some amazing contributors have been hard at work stabilizing the internal of the code base, making the JSON schema easier to use, adding new export features and support for more databases.

What has been added...

Here is the condensed list of additions that have been made since the last release:

  • Export strategies now preserve database native types. For example, date_time nodes are now exported correctly as database native DateTime or Timestamp.
  • Allow for generation into relational database schemas with primary-key/foreign-key constraints.
  • Fixed many errors and panics and provide better outputs.
  • Many small JSON schema tweaks for better quality of life. For example, references can now be specified with "@collection.content.field"; the constant number node can be specified by using a literal (e.g. 42); and much more.
  • Lightning fast startup performance.
  • Added support for MariaDB

Installing the latest version

To install the latest version of synth on Linux and MacOS, simply run

curl -sSL https://getsynth.com/install | sh -s -- --force

from a terminal. Alternatively, head over to the Installation page of the docs.

Thank you, contributors!

We're very grateful to @fretz12, @OLUWAMUYIWA, @juniorbassani , @robert-monk, @JeyRathnam, @pickfire for awesome contributions and ideas!