Skip to content

Latest commit

 

History

History
320 lines (280 loc) · 30.4 KB

CHANGELOG.md

File metadata and controls

320 lines (280 loc) · 30.4 KB

Changes in 0.23

  • 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

v0.22.0 (2020-06-17)

  • Added: support for Crystal 0.35.0

v0.21.0 (2020-04-19)

  • 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 (2020-04-08)

  • 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 (2020-02-29)

  • 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 (2020-02-17)

  • Added: support for Crystal 0.33.0

v0.18.2 (2019-12-13)

  • Added: support for Crystal 0.32.0

v0.18.1 (2019-10-18)

  • 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 (2019-10-03)

  • 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

v0.17 (2019-08-13)

  • Rename: Avram::BaseForm to Avram::SaveOperation see Avram
  • Rename: Avram::Field to Avram::Attribute see Avram
  • Update: number_to_currency now returns String instead of writing to the view directly. #809
  • Fixed: bug in running build.release task.
  • Update: mounted components render comments to show start and end of component. #817
  • Revert: returning String for highlight helper. #818
  • Update: text helpers that write to the view moved to their own module. #820
  • Rename: fillable to permit_columns. see Avram
  • Added: skip_if option to LogHandler. #824
  • Rename: Lucky::Exposeable to Lucky::Exposable. #827
  • Rename: Lucky::Routeable to Lucky::Routable. #827
  • Added: memoize macro. #832
  • Added: table_for macro. see Avram
  • Added: xml render method for Actions. #838
  • Rename: text render action to plain_text. #838
  • Update: responsive_meta_tag to be flexible. #835
  • Added: Int16#to_param and Int64#to_param.
  • Fixed: append/replace_class with no default. #842
  • Added: multi database support. see Avram
  • Rename: form_name to param_key. see Avram
  • Fixed: 3rd party shards versions. #855
  • Added: JSON support. see Avram
  • Update: calling first ensures proper order by. see Avram
  • Update: specifying primary keys is more explicit now. see Avram
  • Added: custom primary key name support. see Avram
  • Added: column and primary key support for Int16. see Avram
  • Rename: Query.destroy_all to Query.truncate. see Avram
  • Fixed: model inference with table names. see Avram
  • Rename: virtual to attribute. see Avram
  • Rename: VirtualForm to Operation. see Avram
  • Added: support for Array fields. see Avram
  • Rename: association query methods now prefixed with where_. see Avram
  • Added: query method to bulk delete. see Avram
  • Update: association query methods no longer take a block. see Avram
  • Added: support for polymorphic associations. see Avram
  • Added: db.rollback_to task. see Avram
  • Added: db.migrations.status task. see Avram
  • Added: db.verify_connection task. see Avram
  • Fixed: calling lucky -v from a lucky project failed. see CLI
  • Update: name convention for operations to be VerbNoun. see CLI
  • Added: change_type macro for migrations. see Avram

v0.16 (2019-08-03)

  • Added: support for Crystal 0.30.0

v0.15 (2019-06-12)

  • Removed Lucky::Action::Status. Use Crystal's HTTP::Status enum. #769
  • CookieOverflowError is now checked when the cookie is set instead of later in middleware. #761
  • Crystal 0.29.0 support added
  • Rename Lucky::BaseApp to Lucky::BaseAppServer
  • Rename Sentry to LuckySentry
  • Breaking change - Many text helpers now return a String instead of appending to the view (cycle, excerpt, highlight, pluralize, time_ago_in_words, to_sentence, word_wrap) #781
  • Added new asset host option #795
  • Added new secure header modules #735
  • Added fallback routing #731
  • Updated SSL Handler with HSTS option #734
  • Components are now classes instead of modules #714
  • Fixed BaseHTTPClient params #726
  • Fixed passing Symbol for statuses in redirects #730
  • More helpful errors #733, #732

v.0.14 (2019-04-18)

  • Crystal 0.28.0 support added

v0.13 (2019-02-27)