Skip to content

@ddworak ddworak released this Aug 23, 2019 · 59 commits to master since this release

We - the Udash team @AVSystem - are proud to announce the availability of Udash 0.8.0. 🎉 It’s been a long and productive year since 0.7.0 release with over 1100 commits and a ton of features and improvements to the framework.

Udash 0.8 is not binary backwards compatible with 0.7, although from our experience in internal product upgrades, the update should not pose any issues undetected by the Scala compiler. Please note that 0.8.x is the last release series with Scala 2.11 support, as we’ll be moving to support 2.13 in 0.9.x. We always aim to support at least 2 latest stable Scala major versions, so 2.12 will still be supported (at least until 2.14.0 is widely available).

You might’ve noticed that we’re a team now as opposed to a single maintainer, which is both good and bad news, since in this case it doesn’t only mean more resources, but also that the previous maintainer, @Starzu, went on to follow other projects (involving Udash from what we heard!). We want to thank Mateusz for his work and we’re very happy to have him as an active member of the @UdashFramework organization and community. In case you need a point of contact about anything regarding Udash, I(@ddworak) had stepped up to the role of the main maintainer now.

We want Udash to enable developers to build frontend applications mostly based on their existing Scala experience. The framework has been a great success for our full-stack teams and has been extensively deployed to production since its first inception 4 years ago. We’re now focused on polishing existing features of the framework to allow easier entry for Scala developers of all levels. Please feel free to submit issues, PRs or hit us up on our Gitter channel - any help or feedback is highly appreciated.

Key changes

  • Udash artifacts are now simpler - the JVM and JS dependencies are no longer distinguished by name, so you can just include e.g. "io.udash" %%% "udash-core" % “0.8.0” in your shared project, no more -backend, -shared and -frontend.
  • udash-rest was completely revamped. It is now an independent module, has more complete support on both front- and back-end and generates shiny OpenAPI specs. The default backend is based on sttp with alternative Jetty implementation in rest-jetty. Make sure to check it out on https://guide.udash.io/rest#overview.
  • Properties & bindings received a lot of love with better support for collections, less magic/macros, covariance, better callback handling and a ton of bugfixes.
  • udash-bootstrap4 module wrapping Bootstrap 4 components was added with FontAwesome 5.10.1. Bootstrap 3 goes EOL and will be only bugfixed across 0.8.x minor releases to eventually disappear in 0.9.0.
  • As always, all of our dependencies are updated, from now on with the help of Scala Steward.
  • All of our demos in Udash Guide are up-to-date and open source, with code snippets generated via macros. Now you can be twice as sure it works in your code as well :)
  • We’re now successfully testing against OpenJDK11 and Graal.

Implemented enhancements:

  • Cookie parameters #240
  • UdashDropdown in Bootstrap 4 #243
  • Bootstrap 4 wrapper #205
  • Support REST interfaces exposing #207
  • REST: Allow multipart RESTName #200
  • REST: incremental compilation support #199
  • Support application/x-www-form-urlencoded #198

Fixed bugs:

  • SeqPropertyCreators not created for Seqs nested in Properties #321
  • Killed binding fires again #282
  • UrlChangeProvider throws error when clicking anchor elements that don't have an href attribute #277
  • Divergent Implicit Type Error for SeqProperty #271

Full Changelog

A complete list of merged pull requests is appended to the end of these release notes.

What’s next?

In the 0.9.x series we intend to:

  • Add cats compatibility module.
  • Rework udash-rpcmodule for more customizability and less dependencies with pure Scala implementation.
  • Reduce the responsibility of Properties (e.g. by moving validations to components) and allow uniform usage across the API.
  • Simplify Binding cleanup for dynamic views.
  • Remove jQuery requirement from charts module.
  • Merge utils package into core.
  • Remove Bootstrap 3 module in favour of new Bootstrap 4 one.

Credits

This release wouldn’t happen without the help of our wonderful committers - thanks to all of you for the great work!

commits  added  removed
    329  59862    20691 Mateusz Starzec <starzec.mateusz@gmail.com>
    226   5820    29546 Dawid Dworak <dawid.dworak@gmail.com>
    173  12483     7678 ghik <r.janusz@avsystem.com>
     64   5902     5901 Michał Wolny <michalwoln@gmail.com>
     36     40       40 Scala Steward <me@scala-steward.org>
     15   7256     1357 malchik <malcheq@gmail.com>
     13    434     4157 bgrochal <bartek.grochal@gmail.com>
     10    342       61 Mateusz Owczarek <m.owczarek@avsystem.com>
      7   7338      160 Sören Brunk <soeren@brunk.io>
      5     68       41 Kamil Pietruszka <k.pietruszka@avsystem.com>
      4     71       58 bartpr <kontakt@bartoszprzybylski.com>
      3     61       35 Grzegorz Kozłowski <g.kozlowski@avsystem.com>
      3     45        9 smiklos <szotsmiklos@gmail.com>
      2      2        2 Leonard Ehrenfried <leonard.ehrenfried@gmail.com>
      1      3        1 Szymon Seget <s.seget@avsystem.com>
      1      2        2 Gregory <g.porebski@avsystem.com>
      1      1        1 peteraa <peteraaser@gmail.com>
      1      1        1 Kyle Goodale <KGoodale13@users.noreply.github.com>

Merged pull requests:

  • B4 missing no-gutters style #374
  • FontAwesome 5.10.1 #371
  • Date Range Picker and List Group BS Guides restoration #370
  • Tempus Dominus date picker fixes #369
  • Final 0.8.0 updates #368
  • Allow unboxed series data #367
  • Fix broken brand name style #361
  • Fix produce updates on SeqFrag / DocumentFragments #350
  • Bootstrap4 improvements #346
  • Covariant ReadableProperties #348
  • transformToSeq fixes #347
  • showIf/Else with simple conditions #341
  • Add committer list generation script #337
  • Single file support #336
  • Remove Bootstrap-only component from default io.udash API #324
  • SeqPropertyCreator simplified #322
  • Use coursier for fetching plugins as well #320
  • Test on OpenJDK 11 with Graal #318
  • Remove GNU GPL from guide #313
  • Common build.sbt #309
  • Driver update #303
  • Seq subProp regressions fix #300
  • PropertyTest split #297
  • Automatic demo snippet generation PoC #284
  • Share platform-independent CSS utils #289
  • Allow replacing current state instead of pushing a new one #287
  • Callback queuing fixes #285
  • Callback queuing cleanup #283
  • Fixed typo (.fixedWidht -> .fixedWidth) #281
  • rest-jetty module with Jetty based REST client #280
  • Handle anchor without href #278
  • Property implicits cleanup #276
  • Initial doc update before 0.8 #269
  • RestServlet now has a configurable limit on request payload size #268
  • Bootstrap4 remastered #267
  • REST docs in guide #266
  • Merging udash-guide repository into guide subdirectory #265
  • Cookie parameters #264
  • Binary HttpBody #262
  • REST: bunch of improvements #261
  • Better REST errors #260
  • Presenter contravariance #259
  • Exception should be logged on the server side. #257
  • Bootstrap popover and tooltip should accept a DOM node as content/title #255
  • Description in OpenAPI Response object is required #253
  • Customization of button in dropdown #251
  • Seq property fixes #250
  • SttpRestClient with implicit SttpBackend parameter #249
  • Allow regex special characters to be used as replacements in translat… #248
  • propertySeq2SeqProperty does not require elements to be Property #247
  • doc changes and transformations for Async #237
  • Utils improvements #236
  • RestSchema for Either, to match the fact that there's GenCodec for it #235
  • Fixed error handling for bad REST requests #233
  • Parameterized URLEncoding with plusAsSpace/spaceAsPlus #231
  • Commons bump #230
  • Remove deprecated code #229
  • Bootstrap 4 #219
  • Customizable navbar content #254
  • Avoid queuing trivial async callbacks #227
  • Binding benchmarks and minor performance improvements #226
  • New REST, ported from commons #225
  • Fix script path in benchmarks #224
  • Un-framework RPC #222
  • Project structure simplified #220
  • Toggle method for boolean property #211
  • Selenium tests #212
  • Fixed problem with wildcards in generic subproperties #217
  • Http Response in fileuploader #216
  • ReadableWrapper #196
  • Atmosphere security upgrade #214
  • Use sttp for default HTTP clients in udash-rest #213
  • UrlChangeProviders fixes #209
Assets 2
You can’t perform that action at this time.