Wt 4.0.1 RC 1

  • Posted by Roel
  • Thursday, October 19, 2017 @ 14:59

We’ve released a first release candidate for Wt 4.0.1.

Because this is a rather small release, this will likely be the only release candidate. This release mostly patches up a few bugs. We’ve also added some small new features, and one more interesting one. We’ve thought about adding it in 4.0.0 but it didn’t quite make the cut. Now, after Peter Sommerlad mentioned it again after my CppCon talk, we had to add it!

Because it was a bit verbose to write:

auto text = root()->addWidget(std::make_unique<Wt::WText>("Hello!"));

We’ve added WContainerWidget::addNew(), WContainerWidget::insertNew(), and WTemplate::bindNew(), so you can shorten it like this:

auto text = root()->addNew<Wt::WText>("Hello!");

Binary builds for Windows are available on the GitHub releases page.

Tags:
5 comments
  • Posted by anonymous
  • 7 years ago
How can changed color text at the WMenuItem?
WMenuItem *menuItem = new WMenuItem("foo");
menuItem->decorationStyle().setForegroundColor(WColor("white"));
but it isn't working = (
  • Posted by anonymous
  • 7 years ago
The "addNew" functions certainly look cleaner!
Please don't overlook Wt::Layout and derived classes. The RC1 source doesn't seem to implement addNew for those classes yet.
  • Posted by Roel
  • 7 years ago
Yeah, we may still miss some spots where it could also be applicable. I know WContainerWidget::addNew() and WTemplate::bindNew() are the most key ones. We'll see about some of the others.
  • Posted by anonymous
  • 7 years ago
I was expecting that with Wt4 you would start to use (some kind of) semantic versioning. Please increase minor versions when adding new features and make bugfix releases with just the patch version increased.
  • Posted by Roel
  • 7 years ago
There is a logic to the version numbers, even though it's not SemVer indeed.
The first number is used for major breaking changes that require a larger porting effort, like this change from Wt 3 to Wt 4. You generally will be able to identify immediately which application is made with Wt 3 and which is made with Wt 4, because of the size of the change.
The second number is for minor breaking changes: things that will affect few aspects of the API, but will be mostly easy to work around, or are very local, so will only affect certain parts of our user's code. We're thinking that maybe 4.1.0 will be the release that removes the (deprecated) old style .h-less header files. In general, these changes should be quickly identifiable and fixable when doing a recompile.
The last number is indeed also for new features, not just for patches, and is usually the number we increment. I think that with our release cycle, this number will for the most part will just stay stuck at 0. Maybe this means that new features won't stick out as much, but I think we just have to get better at drawing attention to them in our announcements.
Lastly, a note about ABI compatibility: Wt is a project that does not attempt to maintain ABI compatibility: we always increment our .so file numbers, so you always have to recompile when upgrading. We understand that a project like Qt can't do this, but Wt, being a web development framework, can. So we don't see breaking the ABI as a breaking change.
So it's not SemVer, but there is a logic to it.

Contact us for more information
or a personalised quotation