All Versions
24
Latest Version
Avg Release Cycle
23 days
Latest Release
48 days ago

Changelog History
Page 1

  • v0.23.0

    June 27, 2020

    🚀 View the CHANGELOG for release notes.

  • v0.22.0

    June 16, 2020
    • ➕ Added: support for Crystal 0.35.0
  • v0.21.1

    May 08, 2020

    🚀 This a release with a security fix. This only affects applications that use highlight, truncate or simple_format. These methods had potential to be used for XSS attacks if input is not escaped first. However, the risk is mitigated since Lucky defaults cookies to be read by HTTP only, and not through JS. The cookie value itself is also encrypted and signed.

    ⬆️ It is not best practice to rely purely on HTTP only cookies, so to be safe, we highly recommend upgrading to v0.21.1 as an extra layer of protection.

    👀 See more details in #1135

  • v0.21.0

    April 19, 2020
    • ➕ Added: support for Crystal 0.34.0 Log class #506 in Lucky CLI
    • ➕ Added: paginate_array for paginating Arrays #1108
    • 👌 Improve error logging #1114
    • 👌 Improve http status logging #1114
    • ⬆️ Upgraded: Dexter to v0.2.0
      • Type-safe log configuration
      • New JSON formatter
      • Helpers for testing logs
    • 🛠 Fix for issues with the system check in Procfile.dev #505 in Lucky CLI
  • v0.20.0

    April 09, 2020
    • ➕ Added: support for Crystal 0.34.0
    • 🛠 Fixed: error on some generated pages from missing sourcemap #1019
    • Updated: options_for_select to accept more types #295
    • ➕ Added: ability to pass boolean attrs in link helper methods #1032
    • ✂ Removed: setting needs with ?. Lucky now generates a method ending in ? for you when the type is Bool #1034
    • ➕ Added: needs on pages can now be accessed by a method and not just instance variable #1034
    • ✂ Removed: link helper method with a String path. #1035
    • ➕ Added: new Lucky::CookieNotFoundError class. #1038
    • ➕ Added: cookies.deleted?() method for checking if a cookie has been deleted. #1040
    • ➕ Added: new Lucky::Paginator component with built-in styles for different different CSS frameworks. #1020
    • 🛠 Fixed: needs accidentally overwriting methods of the same name. #1046
    • ⚡️ Updated: label_for to be a little more flexible with nil text. #1047
    • ⚡️ Updated: resource generator to be a little easier to read and digest. #1050
    • ⚡️ Updated: development ENV now uses ENV["DEV_PORT"] instead of ENV["PORT"] to fix issues with process managers. #1051
    • ➕ Added: new Lucky::CatchUnpermittedAttribute mixin for Shared::Field component. #1052
    • Added: new methods in Actions for accessing params from different sources like from_json, from_query, from_form, and from_multipart. #1053
    • ⚡️ Updated: generated pages to have some default text pointing to the location of the file to edit. #1057
    • 🛠 Fixed: incorrect pluralization of resources on NewPage. #1058
    • ⚡️ Updated: all action "callbacks" are officially named "pipes". All pipes only log when halted by default. #1062
    • ⚡️ Updated: the lucky dev watcher does not print which file changes because you know you just changed that file. #1065
    • ➕ Added: a new HTTP handler to set the request.remote_address if the X-Forwarded-For header is set. #1059
    • ➕ Added: a current_page? helper method for pages. #1074
    • ➕ Added: FormFields component for generated resources. #1081
    • ⚡️ Updated: all HTML tag methods explicitly return Nil now. #1083
    • ⚡️ Updated: page markup to render directly to the IO instead of creating an additional string. #1084
    • ➕ Added: String#squish method. #1085
    • ⚡️ Updated: error message from returning invalid type in Actions. #1086
    • ➕ Added: ability to set custom directory when generating a new Lucky project See LuckyCli
    • ➕ Added: ability to set your postgres DB port with ENV var. See LuckyCli
    • ➕ Added: a robots.txt file to generated web apps by default. See LuckyCli
    • ➕ Added: new compiling spinner graphic for a cleaner UX. See LuckyCli
    • ⚡️ Updated: some comments on the generated main app file. See LuckyCli
    • ➕ Added: lots of internal documentation. (many small commits to LuckyCli)
    • ⚡️ Updated: generated UserSerializer to inherit from BaseSerializer. See LuckyCli
    • 👀 Updated: cookies to default to http_only. See LuckyCli
    • ⚡️ Updated: node dependencies in generated web apps. See LuckyCli
    • ♻️ Added: new system_check script along with some refactors to make checking that your app is setup a lot easier. See LuckyCli
    • ✂ Removed: ability to pass a raw hash to an Avram::SaveOperation. See Avram
    • Added: ability to skip_schema_enforcer for certain models. See Avram
    • ➕ Added: Avram::Model#reload to reload all of the attributes that may have been updated since the instance was created. See Avram
    • ➕ Added: Query#reset_where to reset the WHERE clause on a specific column. See Avram
    • ➕ Added: logging queries that fail. See Avram
    • Fixed: using fill_existing_with when you already had data in your table. See Avram
    • ➕ Added: bulk updating records straight from a query object. See Avram
    • ➕ Added: new "soft delete" feature. See Avram
    • 🛠 Fixed: saving empty array columns when the column can't be nil, but it can be []. See Avram
    • ⚡️ Updated: SaveOperation.new to set attributes directly. See Avram
    • ✂ Removed: the on option for needs in SaveOperation. See Avram
    • 🛠 Fixed: connecting to databases running on a unix domain socket. See Avram
    • ➕ Added: new shard for turning an Avram column in to a URL slug. AvramSlugify
  • v0.19.0

    February 29, 2020
    • ➕ Added: missing docs for time helpers #943
    • ➕ Added: HTML boolean attributes to checkbox and textarea helpers #955
    • 🛠 Fixed: generated templates with proper naming conventions #956
    • ➕ Added: to_param for UUID allowing UUID to be passed in params #945
    • ⚡️ Updated: watcher error message to be a little less abrupt #968
    • ⚡️ Updated: generated migrations using the table_for macro #970
    • 🛠 Fixed: using with_defaults when the tag has content #972
    • ➕ Added: any? and empty? to flash #977
    • 🛠 Fixed: allowing false values for needs #979
    • ⚡️ Updated: needs to now infer a value of nil when the type is nilable #980
    • 🛠 Fixed: allowing the -h flag for the watch task #958
    • ➕ Added: gzip response for assets when it's configured #983
    • ➕ Added: Lucky API docs are now generated from the CI which is deployed to Github pages #989
    • 🛠 Fixed: when using needs with different values in random order and Lucky would not compile #993
    • ➕ Added: more context to the resource generator See commit
    • ➕ Added: ability to pass Crystal's --error-tace flag to lucky watch #957
    • 🛠 Fixed: generating resource.browser when using a JSON::Any column type #997
    • 🛠 Fixed: issue when using HTML boolean attributes with custom tags #1010
    • ➕ Added: the option to define columns in the model generator #1009
    • ⚡️ Updated: permitting columns generated from the resource generator #1014
    • Added: new to_prepared_sql method to generate fully prepared sql for debugging See Avram
    • 🛠 Fixed: cloning distinct queries See Avram
    • ➕ Added: new predicate methods variants for boolean columns See Avram
    • ➕ Added: new changed?, changes, and original_value methods for attributes in Operations See Avram
    • Updated: validate_size_of and validate_inclusion_of to allow nil values See Avram
    • ⚡️ Updated: error messages on some callbacks See Avram
    • 🛠 Fixed: select_sum when the column is any number type See Avram
    • 🛠 Fixed: issues with has_one when your model is namespaced, and how it's queried See Avram
    • 🛠 Fixed: aggregate query methods to work on all number types See Avram
    • 🛠 Fixed: bug when using a Box that had no columns See Avram
    • ⚡️ Updated: preloads to only call when there are parent records. This is a query optimization update. See Avram
  • v0.18.3

    February 17, 2020
    • ➕ Added: support for Crystal 0.33.0
  • v0.18.2

    December 13, 2019
    • ➕ Added: support for Crystal 0.32.0
  • v0.18.1

    October 16, 2019
    • 🛠 Fixed: debug page in development with reset context
    • ⚡️ Updated: lucky exec works more like a REPL
    • ⚡️ Updated: Log time measured with monotonic
    • 🛠 Fixed: Record deletion when primary key is UUID
    • 🛠 Fixed: Setting empty array as default to array column
    • ➕ Added: Overflow cast catch from Int64 to Int32
    • 🛠 Fixed: UUID primary key issue in SaveOperation
    • 🛠 Fixed: required attribute validations on custom before_save callbacks
    • ➕ Added: New reset_limit query method
    • ➕ Added: New reset_offset query method
  • v0.18.0

    October 04, 2019
    • ➕ Added: support for Crystal 0.31.1
    • 🛠 Fixed: how accept / content-type headers are handled #869
    • ➕ Added: ParamParsingError for when parsing JSON params fails #874
    • ⚡️ Updated: Lucky::BaseHTTPClient #875
    • ⚡️ Updated: shell scripts for POSIX compliance #879
    • Added: date_input, time_input, datetime_input #877
    • ➕ Added: support for HTTP PATCH #885
    • ➕ Added: abbr HTML tag #886
    • 🛠 Fixed: missing primary_key and timestamps in generated migrations #888
    • 🛠 Fixed: pluralize to take any Int #890
    • 🛠 Fixed: generation of migrations with resource see Commit
    • 👀 Rename: Lucky::HttpRespondable to Lucky::RenderableError see Commit
    • 🛠 Fixed: accepts_format, and a few other mime type issues #896
    • 🛠 Fixed: default curl requests to server not responding properly #899
    • 📇 Rename: handle_error to render in ErrorAction #903
    • 📇 Rename: render to html in Actions #905
    • ⚡️ Update: error message when missing type declaration for needs #907
    • 🛠 Fixed: model generation allowing for non alphanumeric characters #910
    • ⚡️ Updated: make more errors renderable #911
    • 🛠 Fixed: help messages now display for precompiled tasks #923
    • ⚡️ Updated: default help messages for tasks #923
    • 🛠 Fixed: issue with precompile tasks running in some directories #924
    • ➕ Added: SQL logging see Avram
    • ⚡️ Updated: error message when postgres isn't running see Avram
    • ⚡️ Updated: Box.create_pair allows for setting attributes, and returns instances see Avram
    • ➕ Added: ability to clone a query see Avram
    • Fixed: add_belongs_to in alter statement using wrong Int size see Avram
    • 🛠 Fixed: incorrect error message from SaveOperation updates in 0.17 see Avram
    • ➕ Added: between query method see Avram
    • ➕ Added: ordering queries by NULLS FIRST and NULLS LAST see Avram
    • 🛠 Fixed: missing attributes from SaveOperation see Avram
    • ➕ Added: db.schema.restore and db.schema.dump tasks see Avram
    • ➕ Added: group query method for doing GROUP BY see Avram
    • ⚡️ Updated: SchemaEnforcer see Avram
    • 🛠 Fixed: issue when calling before in SaveOperation see Avram
    • ➕ Added: JWT auth generation for API apps see LuckyCli
    • ⚡️ Updated: Serializers to be smarter with collections see LuckyCli
    • 👀 Updated: webpack to ignore node_modules directory see LuckyCli
    • ✂ Removed: cli lucky init task args see LuckyCli
    • ➕ Added: new lucky init.custom task to take args as init did before.
    • 🛠 Fixed: lucky init to catch invalid project names properly.
    • 👀 Added: support for browser_binary in LuckyFlow see LuckyFlow