lucky v0.29 Release Notes

Release Date: 2021-11-30 // 9 months ago
    • ๐Ÿ›  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

Previous changes from v0.28.0

    • โšก๏ธ 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