All Versions
33
Latest Version
Avg Release Cycle
40 days
Latest Release
877 days ago

Changelog History
Page 1

  • v0.29 Changes

    November 30, 2021
    • ๐Ÿ›  Fixed: the binary name generated for the gen.secret_key task. #1556
    • Updated: the html_with_status to allow Numbers, Symbols, and HTTP::Status. #1568
    • โšก๏ธ Updated: the lucky routes task to print within a table (again). Added a new flag option to print params. #1569
    • Added: new path_without_query_params Action method. #1572
    • โž• Added: option to set a different manifest filename when not using laravel-mix. #1578
    • ๐Ÿ›  Fixed: an issue when passing optional params that were not a String. #1582
    • ๐Ÿ›  Fixed: Ameba always being installed even when your app doesn't depend on it. #1589, #736 in Avram, #62 in Carbon
    • โž• Added: support for using namespaces when generating resources from the CLI. #1588
    • โž• Added: DeleteOperation when generating a model from the CLI. #1594
    • ๐Ÿ›  Fixed: verifying secret messages that may contain "--". #1596
    • โœ‚ Removed: route and nested_route macro helpers. #1597
    • ๐Ÿ›  Fixed: the use of boolean attributes rendering invalid values in HTML. #1598
    • โž• Added: new Pulsar event to fire when an HTTP request is fully completed. #1601
    • โšก๏ธ Updated: the lucky watch task to be less greedy on recompiles. #1604
    • โž• Added: the ajax desired client format option for actions. #1603
    • โž• Added: a better help message for lucky exec to include options. #1602
    • Added: new previous_page, and next_page Paginator helper methods. #1611
    • ๐Ÿ›  Fixed: writing to the response body when making a HEAD call. #1609
    • ๐Ÿ’ฅ Breaking change Removed: the lucky build.release task. #1612
    • โšก๏ธ Updated: Avram is no longer required for parsing params. #1616
    • ๐Ÿ’ฅ Breaking change Removed: support for Crystal versions below 1.0.0. #1618
    • ๐Ÿ’ฅ Breaking change Updated: the Lucky::BaseAppServer#listen method to be abstract. #1622
    • โž• Added: new HTTP context.request_id and RequestIdHandler. #1610
    • โž• Added: documentation clarity for the route style checking. #668 in Lucky CLI
    • โšก๏ธ Updated: require position for the config directory to be higher in the stack. #676 in Lucky CLI
    • 0๏ธโƒฃ Updated: the load_manifest to use "public/mix-manifest.json" by default. #679 in Lucky CLI
    • ๐Ÿ›  Fixed: issue when booting a Lucky app would clash with Elixir's mix. #682 in Lucky CLI
    • ๐Ÿ›  Fixed: the error page returning a 200 response. #684 in Lucky CLI
    • โšก๏ธ Updated: the GithubActions CI for generated apps to allow for testing multiple versions of Crystal. #685 in Lucky CLI
    • โž• Added: a max limit for password sized in Authentic password validations. #692 in Lucky CLI
    • โž• Added: special "flow" tags to a generated app's specs. #693 in Lucky CLI
    • โž• Added: new sample "app config" file for generated apps. #694 in Lucky CLI
    • โšก๏ธ Updated: the AppServer#listen code to be a bit more concise. #699 in Lucky CLI
    • โž• Added: new Lucky::RequestIdHandler to generated apps. #700 in Lucky CLI
    • ๐Ÿ›  Fixed: issue when select_count was called before an update causing a failure. #715 in Avram
    • ๐Ÿ›  Fixed: issue when inheritng from a SaveOperation that had attributes. #718 in Avram
    • ๐Ÿ›  Fixed: issue when passing an enum number as a String. #720 in Avram
    • ๐Ÿ’ฅ Breaking change Removed: UUID generation on the Crystal side for the id column. #725 in Avram
    • โšก๏ธ Updated: the error message for unpermitted columns to be a little clearer where they come from. #723 in Avram
    • โž• Added: new includes() query method for Array columns. #733 in Avram
    • โž• Added: compile-time catches for common mistakes with attribute usage. #738 in Avram
    • โšก๏ธ Updated: the pending migration notice to be a lot more clear in development. #737 in Avram
    • Updated: add_belongs_to to require the references option when using a namespace. #742 in Avram
    • โšก๏ธ Updated: all validation methods to now return a Bool based on if they passed or not. #744 in Avram
    • โšก๏ธ Updated: the lucky db.schema.dump task to include the migrations table data. #743 in Avram
    • ๐Ÿ›  Fixed: missing low level DB methods. #750 in Avram
    • โž• Added: new escape hatch to skip default validations, and allow blank strings to be saved. #746
    • โž• Added: new default_validations block macro. #751 in Avram
    • Added: new validate_format_of validation method. #752 in Avram
    • ๐Ÿ›  Fixed: sort order of migrations. #756 in Avram
    • โž• Added: new Avram::I18nBackend for setting language translations. #757 in Avram
    • ๐Ÿ’ฅ Breaking change Renamed: Operation::Status enums to Operation::OperationStatus. #759 in Avram
    • โž• Added: new query cache mechanism. #763 in Avram
    • โž• Added: brand new LuckyCache shard.
    • Added: Dynamic Email templates with Carbon SendGrid adapter. #5 in Carbon SendGrid
    • โž• Added: new int32 and float64 task args. #3 in LuckyTask
    • Added: faster routing! #54 in LuckyRouter, #55 in LuckyRouter
    • Updated: ENV["LUCKY_TASK"] to be nilable. #21 in LuckyTask
  • v0.28.0 Changes

    July 22, 2021
    • โšก๏ธ Updated: The exception page to use new backtrace shard. #1465
    • โšก๏ธ Updated: some Lucky internals with "Spring Cleaning". #1478, #1481, #1483, #1489, #1496, #1511, #1513, #1514, #1521, #1522, #1529, #1532, #1535, #1540, #1542, #1544, #1543
    • โšก๏ธ Updated: components so they no longer require context to be passed in. #1488
    • Added: new time_from_now_in_words text helper. #1493
    • โž• Added: new multipart? action request helper. #1495
    • โšก๏ธ Updated: the generated delete action resource to use DeleteOperation. #1497
    • โž• Added: new raw_json Action response method. #1492
    • โšก๏ธ Updated: form_for to allow passing boolean attributes. #1506
    • โž• Added: new module to disable FLoC. #1508
    • ๐Ÿ—„ Deprecated: route and nested_route from actions. #1510
    • ๐ŸŽ Updated: performance with params. It's now attached to context. #1509
    • โšก๏ธ Updated: api actions generated will always be in the api/ namespace. #1512
    • โšก๏ธ Updated: Lucky::Serializer with abstract render method. #1516
    • Added: new html_with_status method to render HTML pages with non-200 status. #1507
    • ๐Ÿ’ฅ Breaking change: HTML fields that require an Operation Array attribute will now generate a param name appended with []. #1523
    • Added: new multi_select_input. #1518
    • โž• Added: the ability to define Array query params in actions. #1527
    • โž• Added: standardized route style checked. #1536
    • โž• Added: native subdomain support for actions. #1537
    • โž• Added: new unique route enforcer. #1538
    • โšก๏ธ Updated: Carbon sendgrid is now a separate adapter. #624 in Lucky CLI
    • โšก๏ธ Updated: default components no longer need context. #641 in Lucky CLI
    • โšก๏ธ Updated: some LuckyCli internals with "Spring Cleaning". #646, #647, #648, #651, #649, #666 (in Lucky CLI)
    • โšก๏ธ Updated: generated apps will use LuckyEnv now. #650 in Lucky CLI
    • โœ‚ Removed: deprecated normalize-css package and replaced with modern-normalize. #652 in Lucky CLI
    • โž• Added: new generated apps will enforce route styles by default. #653 in Lucky CLI
    • โšก๏ธ Updated: new generated apps will use case-insensitive email columns for the User model. #657 in Lucky CLI
    • ๐Ÿ›  Fixed: support for Crystal 1.1.0 when generating a new app. #644 in Lucky CLI
    • โœ‚ Removed: the Lucky::Env module and replaced with the LuckyEnv shard. #655 in Lucky CLI
    • ๐Ÿ›  Fixed: passing special args to precompiled tasks. #656 in Lucky CLI
    • โšก๏ธ Updated: some Avram internals with "Spring Cleaning". #669, #681, #683, #704, #705, #708 (in Avram)
    • Updated: validate_numeric and validate_size_of methods to allow for a custom error message. #670 in Avram
    • โšก๏ธ Updated: db.drop and db.reset tasks with a "quiet" option. #675 in Avram
    • Fixed: edge case with migrations using fill_existing_with: false. #676 in Avram
    • โž• Added: new Appdatabase.listen method to listen for pg_notify() calls to any number of channels. #677 in Avram
    • ๐Ÿ’พ Added: before_save and after_save callbacks to Avram::Factory. #678 in Avram
    • Fixed: add_belongs_to to support namespaced types. #685 in Avram
    • Updated: how select_count works to allow counting with distinct_on. #687 in Avram
    • ๐Ÿ›  Fixed: datetime parsing from form inputs. #693 in Avram
    • ๐Ÿ›  Fixed: compile-time error when you have a typo in your constant name (i.e. Boolean instead of Bool). #700 in Avram
    • Updated: the validate_uniqueness_of method to take a full query object. #701 in Avram
    • โž• Added: new any? and none? query methods to return a Bool value based on records existing. #703 in Avram
    • ๐Ÿ’ฅ Breaking change: removed avram_enum. You can now just use the native Crystal enum type. #698 in Avram
    • โž• Added: ability to use CASCADE when calling truncate. #702 in Avram
    • โž• Added: new SaveOperation.upsert methods. #334 in Avram
    • ๐Ÿ’ฅ Breaking change: renamed DeleteOperation.destroy to DeleteOperation.delete. #707 in Avram
    • ๐Ÿ›  Fixed: compile-time error when no columns are defined in a model. #706 in Avram
    • โž• Added: new JSON serializable object columns. #695 in Avram
    • ๐ŸŽ Updated: the current_user? method to be memoized for performance. #64 in Authentic
    • โšก๏ธ Updated: Authentic to catch potential development issues when setting the secret_key. #65 in Authentic
    • ๐Ÿ›  Fixed: minor performance issue when setting a slug in AvramSlugify. #10 in AvramSlugify
    • โšก๏ธ Updated: irregular inflects with human -> humans. #14 in Wordsmith
    • ๐Ÿ›  Fixed: customizing inflections with Wordsmith. #18 in Wordsmith
    • ๐Ÿ›  Fixed: URI decoding path parts in the Lucky Router, also a small performance gain. #51 in Lucky Router
    • โž• Added: the environment predicate methods from Lucky::Env in to LuckyEnv. #13 in LuckyEnv
    • โšก๏ธ Updated: Email Previews in Breeze are easier to add in. #41 in Breeze
    • ๐Ÿ›  Fixed: using file uploads with Breeze requests. #43 in Breeze
    • โž• Added: storing before/after pipes in Breeze. #36 in Breeze
    • ๐Ÿ›  Fixed: issue when running specs on an app using Breeze. #42 in Breeze
  • v0.27.2 Changes

    April 12, 2021
    • โœ‚ Removed: legacy ecrypted cookies handling. #1470
    • โšก๏ธ Updated: Cookies resulting in encryption failure are ignored. #1470
  • v0.27.1 Changes

    April 09, 2021
    • ๐Ÿ›  Fixed: support for previous versions (<= 0.26.0) of encrypted cookies. #1467
  • v0.27.0 Changes

    April 09, 2021
    • โž• Added: support for Crystal 1.0 ๐Ÿฅณ #1445
    • โž• Added: Pulsar events for tracking before/after action pipes. #1423
    • โšก๏ธ Updated: link to raise an exception when passing both to and href. #1428
    • โž• Added: support for more HTML standard tags. #1433
    • โž• Added: new mount_instance method to mount an instance of a Component. #1446
    • ๐Ÿ›  Fixed: bug when using VueJS type attributes on HTML tags. #1452
    • โšก๏ธ Updated: the exception page to look like it belongs in Lucky. #1451
    • โšก๏ธ Updated: HTML tags to allow passing in a raw hash of attributes. #1453
    • ๐Ÿš€ Updated: the lucky build.release task to build in to the bin directory. #1454
    • ๐Ÿ›  Fixed: error message when passing wrong type values to HTML tags. #1456
    • Updated: lucky_cli dependency with new lucky_task shard. #1459
    • โšก๏ธ Updated: generated apps so LuckyFlow is only a development dependency. #608 in Lucky CLI
    • โšก๏ธ Updated: Auth modules in generated apps to be in an auth/ directory. #618 in Lucky CLI
    • โœ‚ Removed: LuckyCli::Task in to a separate shard. #622 in Lucky CLI
    • โž• Added: new LuckyTask shard to the ecosystem. View LuckyTask
    • โšก๏ธ Updated: avram_enum to allow parsing a String value. #639 in Avram
    • ๐Ÿ›  Fixed: bug when a column is defined as a DOUBLE, and using Float64. #637 in Avram
    • โšก๏ธ Updated: migrations to use Int64 by default allowing for better CockroachDB support. #641 in Avram
    • ๐Ÿ›  Fixed: database transactions to not require a Bool return type. #626 in Avram
    • โœ‚ Removed: deprecated raw_where methods. #653 in Avram
    • โž• Added: new where(&) method for wrapping queries in parenthesis. #652 in Avram
    • Added: new drop_foreign_key method. #654 in Avram
    • โšก๏ธ Updated: how table names are stored internally paving the way for faster compilation. #660 in Avram
    • โž• Added: new parameterize method for string helpers. #9 in Wordsmith
    • โž• Added: new Habitat.extend macro for extending existing configuration settings. #59 in Habitat
    • โž• Added: new development dashboard shard Breeze. View Breeze
    • โž• Added: new .env parsing shard LuckyEnv. View LuckyEnv
  • v0.26.0 Changes

    February 06, 2021
    • โšก๏ธ Updated: the compile-error for missing Page args. #1373
    • ๐Ÿ›  Fixed: flash messages to be discarded unless specifically kept. #1374
    • โž• Added: generating JSON::Any columns from lucky gen.model task. #1375
    • โž• Added: creating empty HTML tags passing in a Hash for options. #1377
    • โšก๏ธ Updated: action generators to use actual route instead of the route or nested_route methods. #1378
    • โšก๏ธ Updated: the compile-error for incorrect route helper usage. #1372
    • โšก๏ธ Updated: lucky gen.*.resource task to not shadow outer local variable. #1379
    • ๐Ÿ›  Fixed: uploaded files now have access to the tempfile before it's closed. #1381
    • โž• Added: new lucky gen.task task for generating a new Cli Task. #1322
    • โž• Added: new params.get_all method to get an Array of values from params. #1389
    • โœ‚ Removed: broken tag() overloads. #1394
    • โž• Added: support for Crystal 0.36. #1398
    • ๐Ÿ›  Fixed: empty HTML tags adding an extra space when generated. #1400
    • ๐Ÿ›  Fixed: issue with wrong types for form HTML methods when passing in an Operation Attribute. #1405
    • โšก๏ธ Updated: DB logging to be a little less excited. #589 in Lucky CLI
    • Removed: usage of the route and nested_route methods in generated apps. #594 in Lucky CLI
    • Added: some inline docs to using ENV["LUCKY_TASK"]. #595 in Lucky CLI
    • โž• Added: ability to pass --error-trace flag to precompiled lucky tasks. #596 in Lucky CLI
    • โšก๏ธ Updated: to Laravel Mix 6 for generated apps. #592 in Lucky CLI
    • ๐Ÿ›  Fixed: issue with generated apps Github Actions CI failing. #600 in Lucky CLI
    • โšก๏ธ Updated: Procfile for generated apps to call a binary named by the project instead of "app". #601 in Lucky CLI
    • โž• Added: a new Heroku Buildpack to build all proper targets. Accompanies #601 in Lucky CLI. view Heroku Buildpack
    • โž• Added: equality operators (==, ===) to avram_enum. #566 in Avram
    • ๐Ÿ›  Fixed: bug in associations that returned more records than they should have. #574 in Avram
    • โšก๏ธ Updated: error messages during migrations that were obscured. #577 in Avram
    • โž• Added: UUID primary keys are now generated in the database with a fallback using Crystal. #578 in Avram
    • Updated: validate_size_of to only take a String attribute. #579 in Avram
    • โž• Added: new validate_numeric validation for validating numbers. #580 in Avram
    • ๐Ÿ›  Fixed: issue with has_one preloads not loading the correct records. #581 in Avram
    • โšก๏ธ Updated: compile-error for attempting to use nilable attributes. #583 in Avram
    • โž• Added: new Avram::DeleteOperation objects for handling complex delete logic. #573 in Avram
    • โšก๏ธ Updated: how generics work in Avram::Attribute. #586 in Avram
    • โšก๏ธ Updated: custom type support to allow for better 3rd-party support in the future. #587 in Avram
    • โž• Added: new lucky db.console task to enter PSQL for your app. #592 in Avram
    • โšก๏ธ Updated: more support and transparency for custom DB types with new criteria method. #591 in Avram
    • ๐Ÿ›  Fixed: using the datetime-local tag to persist the Time. #603 in Avram
    • โšก๏ธ Updated: to the latest (0.23.x) crystal-pg version. #605 in Avram
    • โž• Added: support for using citext columns with new case_sensitive: false option. #608 in Avram
    • โž• Added: support for Array(UUID) columns. #609 in Avram
    • ๐Ÿ’พ Updated: SaveOperation after_save and after_commit callbacks to run even if no changes to the record are made. #612 in Avram
    • โœ‚ Removed: the after_completed callback in SaveOperations. also #612 in Avram
    • ๐Ÿ“‡ Rename: Avram::Box to Avram::Factory. #614 in Avram
    • โž• Added: new composite primary keys for migrations. #616 in Avram
    • ๐Ÿ›  Fixed: issues with has_one in SaveOperation not updating the associated record when doing updates. #596 in Avram
    • โšก๏ธ Updated: Avram::Operation to not call run if the operation is not valid?. #621 in Avram
    • โšก๏ธ Updated: LuckyFlow ChromeDriver to run in non-headless mode (head mode?). #112 in LuckyFlow
    • โž• Added: ability to use a non Chrome browser in LuckyFlow. #112 in LuckyFlow
    • ๐Ÿ’ป Added: the browser_binary option back in which lets use specify a different Chrome based browser. #114 in LuckyFlow
    • โž• Added: new pause method for LuckyFlow to pause execution of flow for debugging. #117 in LuckyFlow
    • โšก๏ธ Updated: runtime-error for duplicate defined routes. #45 in LuckyRouter
    • Added: have_delivered_emails spec expectation method for Carbo. #45 in Carbon
  • v0.25.0 Changes

    December 18, 2020
    • 0๏ธโƒฃ Rename: component with_defaults renamed to tag_defaults #1262
    • ๐Ÿ›  Fixed: send HSTS headers over HTTPS. #1268
    • โšก๏ธ Updated: memoize can be used on any Object #1270
    • โž• Added: tfoot() tag method. #1296
    • โž• Added: routes now support glob routing #1294
    • ๐Ÿ›  Fixed: passing a UUID in to a tag for text #1280
    • ๐Ÿ›  Fixed: calling route helper methods on actions with route_prefix set. #1298
    • โž• Added: clearing cookies with specific options passed in #966
    • ๐Ÿ›  Fixed: passing a name prop to a custom tag. #1309
    • โž• Added: blockquote() and cite() tag methods. #1317
    • โž• Added: type name in error message for action classes #1321
    • ๐Ÿ›  Fixed: params that use Bool with a default value of false #1352
    • โšก๏ธ Updated: generated start_server binary is now output to the bin directory instead of top-level. #1358
    • ๐Ÿ›  Fixed: HTTP status description in the log output. #1362
    • Updated: reverted the DATABASE_URL ENV. #551 in Lucky CLI
    • โšก๏ธ Updated: emails will print to the log in development for easier debugging. #555 in Lucky CLI
    • โšก๏ธ Updated: Tasks can use the output property for easier testing. Added an example option to task args. #557 in Lucky CLI
    • โž• Added: New generated Lucky projects will come with Github Actions out of the box. #559 In Lucky CLI
    • โšก๏ธ Updated: front-end package.json dependencies. #553
    • ๐Ÿ›  Fixed: Signal trap is properly caught when running lucky dev. #572 in Lucky CLI
    • โšก๏ธ Updated: the built-in seed tasks to better match the common structure. #584 in Lucky CLI
    • Added: new Lucky::Env.task? method will return true if ENV["LUCKY_TASK"] = "true" is set. #576 in Lucky CLI
    • โšก๏ธ Updated: Query objects no longer mutate which fixes calling aggregate methods without needing to clone. #411 in Avram
    • โšก๏ธ Updated: the error message when a required primary key is missing. #454 in Avram
    • Updated: fill_existing_with to be used with nilable columns. #452 in Avram
    • ๐Ÿ›  Fixed: Bool columns with a default false value. #461 in Avram
    • ๐Ÿ›  Fixed: belongs_to using the wrong key in some cases. #465 in Avram
    • ๐Ÿ›  Fixed: using optional Arrays in columns and migrations. #471 in Avram
    • Fixed: calling to_s or to_i on an enum column to get the enum's proper value. #474 in Avram
    • โšก๏ธ Updated: using raw_where will now be deprecated in favor of a unified where. #460 in Avram
    • ๐Ÿ›  Fixed: issues with invalid SQL with joins. #451 in Avram
    • โž• Added: a whole new interface for Avram::Operation. #469 in Avram
    • ๐Ÿ’พ Updated: Avram::SaveOperation callback methods after_save and after_commit work with blocks, and more. #481 in Avram
    • โž• Added: a compile-time error catch when passing a raw hash in to a SaveOperation. #485 in Avram
    • Removed: register_setup_step macro used for hooking in to the Avram model setup. #486 in Avram
    • โž• Added: new or() query method to perform WHERE x OR y SQL calls. #442 in Avram
    • โšก๏ธ Updated: database calls to be optimized for speed. #491 in Avram
    • Added: params.has_key_for? to check if params contains a key for an operation. #500 in Avram
    • โž• Added: conditional callbacks for Avram::SaveOperation. #495 in Avram
    • โšก๏ธ Updated: the has_many count method to not preload when just a number is being returned. #509 in Avram
    • ๐Ÿ›  Fixed: passing a file_attribute as a named arg to an operation. #514 in Avram
    • โœ‚ Removed: unique filtering on WHERE clauses. #518
    • โšก๏ธ Updated: error message when using remove incorrectly in migrations. #524 in Avram
    • โž• Added: error message when trying to generate a migration by a name that already exists. #528 in Avram
    • โž• Added: new custom errors for Operation objects. #534 in Avram
    • Updated: add_belongs_to can now set a unique index. #536 in Avram
    • ๐Ÿ›  Fixed: creating records by passing in values that match the default. #540 in Avram
    • Updated: how has_many through associations are defined to fix has_many through a has_many through association. #525 in Avram
    • โž• Added: new after_completed callback on Avram::SaveOperation which is called even if no updates are made. #544 in Avram
    • โž• Added: UUID primary key checks to the SchemaEnforcer. #546 in Avram
    • โž• Added: records already loaded in to memory can now preload associations. #542 in Avram, #553 in Avram, #561 in Avram
    • โž• Added: support for models to use VIEW. #555 in Avram
    • โž• Added: new defaults method for defining default query methods on Query objects. #564 in Avram
    • ๐Ÿ›  Fixed: setting two routes that use different path variable names. #38 in LuckyRouter
    • โž• Added: route globbing. #40 in LuckyRouter
    • ๐Ÿ›  Fixed: catching when duplicate routes are defined. #42 in LuckyRouter
    • Added: flow spec matcher method have_current_path. #96 in LuckyFlow
    • Fixed: flow spec have_text matcher method to check if the text is included and not exact. #99 in LuckyFlow
    • โž• Added: flow method to confirm and accept javascript modal boxes. #101 in LuckyFlow
    • โž• Added: flow to fill a select field. #104 in LuckyFlow
    • โž• Added: flow to select multiple values from a select field. #106 in LuckyFlow
    • โž• Added: flow method element.hover to hover over an element. #108 in LuckyFlow
  • v0.24.0 Changes

    September 05, 2020
    • Fixed: send_text_response default status to nil #1214
    • โž• Added: data method for Actions to return file contents #1220
    • โšก๏ธ Updated: Component m is renamed to mount #1226
    • โšก๏ธ Updated: Components with UrlHelpers like current_page? #1228
    • โž• Added: optional param routing #1229
    • โšก๏ธ Updated: docs on accept_format #1234
    • โšก๏ธ Updated: generator templates to use getter methods over instance variables #1236
    • โšก๏ธ Updated: our community to use Discord for community chat room #1237
    • โšก๏ธ Updated: compile-time error when path params are defined with dashes #1238
    • โšก๏ธ Updated: path helpers to render query params even if default value is passed #1239
    • โšก๏ธ Updated: redirect_back to disallow external referrers by default with config option #1241
    • 0๏ธโƒฃ Updated: generated api apps will use disable_cookies by default #535 in Lucky CLI
    • ๐Ÿ›  Fixed: generating an app with the name "app" will raise an error #543 in Lucky CLI
    • โšก๏ธ Updated: AppClient renamed to ApiClient #534 in Lucky CLI
    • ๐Ÿš€ Updated: generated projects to use --ignore-crystal-version flag when running shards install. NOTE: this is a temporary update, and will be reverted in a future release. Read Crystal Blog See commit
    • โž• Added: ability to set default values on model columns #424 in Avram
    • โž• Added: file_attribute for operations to specify a file from params #428 in Avram
    • โž• Added: new Database.delete strategy for cleaning up data in specs #426 in Avram
    • Added: create_function and drop_function to create SQL functions #427 in Avram
    • โšก๏ธ Updated: Avram::PostgresURL renamed to Avram::Credentials with a new interface #433 in Avram
    • Added: create_trigger and drop_trigger to create SQL triggers #436 in Avram
    • Added: association _count method to easily return a count of a has_many association #392 in Avram
    • โž• Added: new Pulsar shard for pub/sub style communication in Lucky See Pulsar
    • โž• Added: Pulsar instrumentation to Avram for subscribing to queries #441 in Avram
    • โž• Added: support for Array(Float64) in databases #443 in Avram
    • Updated: fill_existing_with option on add_belongs_to in migrations #444 in Avram
    • โž• Added: Box.build_attributes method to build the attributes of a model in specs #449 in Avram
    • ๐Ÿ›  Fixed: blank strings causing parse exceptions in save operations #448 in Avram
    • Updated: LuckyRouter with many performance and structural refactors #28, #30, #31, #32
  • v0.23.1 Changes

    July 07, 2020
    • ๐Ÿ›  Fixed: generated apps using deprecated mount instead of m #531 in Lucky CLI
  • v0.23.0 Changes

    June 27, 2020
    • โšก๏ธ Updated: password reset tokens to be URL safe #1118
    • โž• Added: radio input helper #1125
    • โž• Added: component file paths to rendered comments in markup for development #1126
    • Added: query_param_declarations method to Action classes #1122
    • ๐Ÿ›  Fixed: generating a model that already exists now raises an error #1127
    • โž• Added: select_prompt helper method #1124
    • โšก๏ธ Updated: lucky routes UI to now include query params #1128
    • โž• Added: route_prefix method for Actions to prefix all routes #1121
    • ๐Ÿ›  Fixed: error when deleting cookies that don't exist #1132
    • ๐Ÿ›  Fixed: handling ajax form submissions with TurboLinks #1133
    • ๐Ÿ›  Fixed: issue with ajax? method not returning correct value #1134
    • ๐Ÿ›  Fixed: security issue by escaping HTML helpers by default #1135
    • โšก๏ธ Updated: memoize to allow for arguments, and nil and false values #1139
    • โšก๏ธ Updated: model generator to provide more helpful error messages #1140
    • โž• Added: get_raw method to params along with striping blankspace on param get calls #1144
    • โœ‚ Removed: mount with deprecation in favor of new m method.
    • โž• Added: m helper method as a mount replacement with a new interface. #1151
    • โšก๏ธ Updated: String#squish method to be faster #1159
    • โœ‚ Removed: Lucky::SessionHandler and Lucky::FlashHandler. #518 in Lucky CLI
    • ๐Ÿ›  Fixed: issue with session cookies not being written at the right time. #1160
    • โž• Added: template HTML method for <template> tags. #1164
    • ๐Ÿ›  Fixed: flash messages being lost during multiple redirects. #1169
    • โž• Added: redirect_back for actions to redirect back to previous referrer #1168
    • โž• Added: component method to render a Component directly from an Action #1172
    • โž• Added: canonical_link HTML helper method. #1182
    • โž• Added: disable_cookies macro to stop cookies from being written on a specific action #1180
    • ๐Ÿ›  Fixed: setting samesite on cookies in your Lucky::CookieJar on_set #1183
    • ๐Ÿ›  Fixed: compilation bug in generated page when running lucky gen.page #1191
    • โž• Added: multipart: true option to form_for to set multipart enctype #1200
    • โž• Added: Lucky.root method to raise compile-time error directing people to use Dir.current instead. #1206
    • โž• Added: native CLI args to LuckyCli::Task. #466 in Lucky CLI
    • โšก๏ธ Updated: generated projects to disable StaticFileHandler directory listing by default. #510 in Lucky CLI
    • โšก๏ธ Updated: error action to return a 404 for Avra::RecordNotFoundError #524 in Lucky CLI
    • ๐Ÿ›  Fixed: select_count failing when postgres returns no counts. #357 in Avram
    • Added: support for postgres extensions with enable_extension, disable_extension, and update_extension. #356 in Avram
    • โž• Added: enum support for models with avram_enum macro. #339 in Avram
    • ๐Ÿ›  Fixed: the error message when using remove in migrations, and not passing a Symbol.
    • Added: rename and rename_belongs_to in migrations #366 in Avram
    • โž• Added: new lucky db.setup task which runs db.create and db.migrate. #361 in Avram
    • โž• Added: ability to set a custom index name for table indices. #386 in Avram
    • ๐Ÿ›  Fixed: using a custom primary key name of type UUID. #401 in Avram
    • โž• Added: checking for a connection to the PostgreSQL engine before running the lucky db.create task. #397 in Avram
    • ๐Ÿ›  Fixed: logging issues related to Crystal 0.35.0. #31 in Dexter
    • โšก๏ธ Updated: which selenium library was being used for LuckyFlow. #76 in LuckyFlow
    • Added: initial work to support using other browsers aside from Chrome in LuckyFlow. #79 in LuckyFlow, #88 in LuckyFlow
    • โž• Added: support to auto fetch latest webdrivers in LuckyFlow. #80 in LuckyFlow
    • ๐Ÿ›  Fixed: issue with really long stacktrace in LuckyFlow. #83 in LuckyFlow
    • Added: have_text expectation method for Flow specs. #87 in LuckyFlow
    • โž• Added: optional path param routing. #18 in LuckyRouter
    • โšก๏ธ Update: routing to ensure matching dynamic fragments all work. #23 in LuckyRouter
    • โž• Added: a little bit of speed to the routing lookup. #26 in LuckyRouter
    • โž• Added: a new validation option to Habitat settings. #49 in Habitat
    • ๐Ÿ“‡ Renamed: the internal Habitat Settings class to HabitatSettings to avoid name conflicts in some Lucky apps. #48 in Habitat
    • ๐Ÿ›  Fixed: bug when setting a default value in a Habitat setting that could potentially raise an exception. #51 in Habitat