Round-up #16 – Our philosophy

There are a couple basic rules which we keep in the back of our head when developing Luna: our philosophy. And since this is actually nowhere ever explained in detail, let me do this right here. And yes, we’re doing another round-up, one year after #15.

First of all, Luna is supposed to be light. Light in that it has the basic features a board needs in 2015. We don’t want fancy features that are not essential to boards. Why? Because light means simple, simple is less and less is more.

No non-essential Javascript. Javascript is an amazing tool and it can make anything you could imaged dynamic. However, modern boards tend to over-use this and use Javascript anywhere, even when this is not needed. The result is a more bug-sensitive board and additional work for your browser. That is if you’re browser has Javascript enabled or even supports it (and Webkit-based browsers are horrible on this point, especially for the more advanced features). Luna uses Javascript, but only for the essential parts: making the Bootstrap framework work (with jQuery), improving the experience in tables and making sure notifications reach you whenever they are send to you.

No third-party influence. This is something a lot of our users have complained about, or actually, just some of them, but they did complain a lot to cover almost everyone: why is there no possibility build-in to login with your Facebook account? Well, that is because Facebook is a third-party. And we don’t do third-parties for a simple reason: you can’t possible predict whether or not that third party will continue to exist. Even Facebook will some day disappear. That might be a very distant future, but it could happen. A more possible issue is that third parties change their APIs rending your board unusable. And we’re only talking about registration and login here. That’s also the reason why Luna will no longer use CDNs – which where the one exclusion on the rule – and instead put all the packages in the core.

Simple code and simple installation. Another goal of Luna is to keep our code in the back-end simple too. It’s nice to have a simple-to-use piece of software, but its even nicer if you can also simply understand what makes all of that possible. That’s why we like to keep our code lean and simple, this will be something especially Luna 1.3 “Denim” will focus on with our reimaged coding conventions for CSS and PHP.

Another thing is that a lot of projects out there tend to become more and more confusing on what you need to install their packages (especially pre-release versions). And we don’t like that idea. That’s why we continue to use our drag-‘n-drop methode. Easy and simple: just put the files on your server with any FTP program out there and go ahead. And updating? It’s basically just installing: drag-‘n-drop the files on the server over your previous version and just hit the “Update” button that appears on your board and you’re ready to go. No complicated upgrade processes that require you to replace only certain files or require you to go into your database and change stuff or change files in the Luna core… Just make a back-up and get started.

Luna 1.2.1 now available

Today, we’re happy to announce the Luna 1.2 Cornflower Blue Update, or version 1.2.1 of Luna. This update contains a couple of quality improvements over the previous version of Luna. Make sure to update. We don’t have much to say about it…

Luna 1.3 Preview 1 now out for Nightly users

Today, we’re pushing out a major update to our nightly branch. As said in a previous post, we will no longer blog about alpha versions – the Preview X’s – on here unless they bring important changes. And our very first preview since that announcements is one of these exceptions.

Luna 1.3 is targeted to be released at the end of the year and this first previews is a step towards that. Preview 1 of the Denim update doesn’t contain many major changes for end users, but it does do some serious code refactoring under the hood. Luna 1.3 contains rewritten CSS for Fifteen, Sunrise and the Backstage and all 24 accents. It also contains a much more uniform naming convention throughout the whole software, including the database – which will get a major update when this is applied.

Beyond that, this update contains an update to Fifteen with some much requested features, which includes categories in the sidebar. We’ve also added the search feeds (New, Active, Unanswered). Another new “feature” is the addition of what is currently known as Sixteen. However, there is a major visual glitch in the heading that makes it kinda unusable – but that will be fixed in the future.

Starting with this preview, we hope to push out many more previews for Luna 1.3. And don’t worry, new features will start making it into the software as of Preview 3 (or so). You have to keep in mind that Luna 1.3 was never meant to be a major feature upgrade.

Why no release?
Unlike previous Previews, we will not put this preview on our main website. You’ll have to fetch it yourself from GitHub. During the early phases of Luna 1.0, 1.1 and 1.2, we’ve noticed that many users complained about Luna being very unstable, and many of these users where of had been running a preview version (previews are alpha builds, not even beta!). To discourage users from using these early previews in productive environments, we will no longer post them on our site. Betas and Release Candidates will continue to be listed!

Luna 1.3 focus points

The Denim update for Luna has been planned to focus on improving the core of Luna quiet a bit. This mainly includes revamping our CSS-files to apply with the new coding conventions and updating our whole codebase to new naming conventions, including the database. So let me set out the main focus points for the Denim update as a whole.

Core 1.3
As mentioned before, the Luna Core is our main focus for this release and it’s all about conventions, both naming and coding. With this update, we want to make the Luna Core easier to understand and read and make it easier to develop for Luna by unifying the way things are named. A lot of work has already been done on this front.

Improved mobile interface: Fifteen 1.3
Further, we’ve received some feedback on Fifteen and we’re going to apply most of that into the next update. This mainly includes improvements for the mobile side of things (for smartphones, not for tablets as they use an interface similar to desktops instead). However, we’re also going to improve the desktop/tablet interface with some enhancements and additions.

Sunrise Revamped: Sunrise 2.0
We’ve been working for quiet some time now on a new theme named “Sixteen” for Luna. This theme is planned to be part of the final release of Luna before the end of 2015, and as it turns out, that is the Denim update. However, while the idea of Sixteen lives on, the theme itself got scrapped. Yep, we’re dropping that project. Instead, we’re updating Sunrise (and it will contain a lot of the Sixteen ellements) into a full standalone theme (Sunrise 1.2 is a small child theme based on Fifteen).

You can also take it as “Sixteen is being renamed to Sunrise”. The design language will be more in line with that of Fifteen, but the structure of the theme will remain like it is now.

Minor featurea additions
But don’t fear! It’s not all about coding conventions and theme updates. No! We’re also adding in some minor new features for you guys to enjoy. We don’t have a list of this yet, but you can expect the new “Important” label for threads as one of these small changes.

Preparing for Emerald
Most of all, the Denim update is a preparation for all the work that will be done for Emerald – or rather, is currenlty being done – which you might also know as Luna 1.4. We’re currently planning a massive update for the anniversary release (it will be released on our 3rd anniversary and one year after Luna 1.0). But more details on that later.

Luna 1.2 “Cornflower Blue” now available

It’s been 4 months since we brough you the Bittersweet Shimmer update, and now, it’s time for C to be filled in by Cornflower Blue that bumps the Luna version to 1.2. Let’s see what’s new.

  • Mark threads as solved. If an user gave the answer to a thread, the thread’s owner can now mark that thread as solved. The comment will be highlighted green and a green check will appear in the forum view.
  • Forum improvements. You can now freely choose any color for each forum now and are no longer restircted by the preset color choises. Additionally, you can now add icons to forums.
  • Extended syntax highlight support has been added for C, C#, C++, Java, Markdown, Pascal, Python and SQL additional to the already supported languages.
  • Fifteen and Sunrise have been updated to version 1.2 themselves and come with a lot of improvements and optimizations for you to enjoy. This includes improved interfaces for mobile devices, but also a more consistent design.
  • Notifications can now be cleaned up from the Backstage based on their age.
  • We’ve updated our terminology to be more consistent. “Sticky topics” are now called “Pinned threads” everywhere and posts are now renamed comments.
  • Labels are now icons, so we dropped the long texts in front of thread entries in forum view. Talking about labels, stay tuned for Denim – the 1.3 update – because it’s gonna contain a couple of additional features on this front.
  • Tables are now more easy to use (like Inbox and the User search results in Backstage) with “Select all”-options and the possibility to click anywhere within a row to select that row.
  • We made lots of improvements for browsers with no Javascript.
  • The email validation has been improved.
  • Avatar formats have been changed by default to be larger in both size and weight.
  • Input types are now set in the HTML, the result is that onsreen keyboards will be optimized for the input that can be given, like only numbers. Also, your browser will now warn you if you’ve entered a value that can’t be in that input box.
  • Luna 1.2 contains a couple of SEO enhancements to get you higher in search results.
  • Components have been updated to more recent versions. Bootstrap has been bumped from 3.3.4 to 3.3.5 and Font Awesome has been updated from 4.3 to 4.4. Additional for developers: the Bootstrap Glyphicons are no longer available by default.
  • And of course bug fixes.

Before you update, make sure to make a back-up of your files and database. We’ve tested the upgrade paths for Luna 1.2, however, as there are so many configurations out there, thing can always go wrong with a critical process as upgrading. You can find the downloads on the usual locations.

And for those upgrading from the Luna 1.2 RC, unlike what we said we hoped to release yesterday, this isn’t a bit-by-bit copy. It in fact comes with a fair share of enhancements compared to the RC (and obviously every version prior).

  • Improved First Run for very small screens
  • Improved ban search results overview
  • Date selection when banning an user
  • Improved directory protection
  • Fixes a bug in the database layer (PostgreSQL)
  • Fixes a bug in the translations
  • Small visual fixes in the Backstage

Support for Luna 1.0, 1.1 and 1.2: what’s changing
This is our third big update for Luna and that means that some versions will need to take a step aside. In Luna 1.2’s case, we will no longer provide updates for Luna 1.0, so the Luna 1.0.10 update is the final update. So make sure you’ve updated to at least Luna 1.1. We released Luna 1.1.4 earlier this month and we’ll release Luna 1.1.5 later too with some bugfixes that are part of the Luna 1.2.0 release.

However, I would like to note something for the next update – 1.3 Denim – because we won’t only drop support for Luna 1.1 with that release. Because 1.3 will be a major codebase change, we will also end support for Luna 1.2 when we release Denim. This is a one-time thing and we will support 1.3 when we release 1.4 and for any version forward. However, in case major (security) issues are found in 1.2 (like the 1.0.10, 1.1.4 and 1.2-alpha.2 updates) after the 1.3 release, we’ll still fix them, just no minor bug fixes.

“Why?” you ask? Well, in Luna 1.1, the translation system was revamped completely, resulting in a lot of head scratches for us to solve issues that turned out to be just incompatible code between 1.0 and 1.1. In the end, most of these issues where of no damage to boards if something went wrong, however…

Luna 1.3 will contain quiet a lot of changes under the hood because we’re planning to push our naming conventions across the whole core. This includes renaming tables, fields and keys in the database and renaming an awful lot of variables and constants in Luna. And making mistakes in that is a high risk, and thus, we will not support Luna 1.2 after the Luna 1.3 release. Luna 1.3 will be supported after the Luna 1.4 release and so on until further notice.

Luna 1.1.5
We’ve also released Luna 1.1.5. If you’re still using Luna 1.1.3, this is defenetly an upgrade worth to take as 1.1.4 fixed an important secuirty issue. Either way, 1.1.5 is a minor release that mainly backports some fixes included in Luna 1.2.0.

Luna 1.2 Release Candidate now available

Today, we’re releasing the final pre-release version of our Cornflower Blue update: the Release Candidate. Compared to our Beta 2 release from 2 days ago, this update includes more additional fixes that also will be part of the Luna 1.1.5 release later this month. Further, this release includes a final set of small enhancements to the design of Fifteen and Sunrise. Enjoy! Luna 1.2 RC is with some luck the very same version of Luna that we’ll push out tomorrow as the final release, just with updated version numbers.

Luna 1.2 Beta 2 now available

Today, we’re releasing the second and final beta of Luna 1.2, our Cornflower Blue update. Todays update comes with bug fixes that are also part of the 1.1.5 release (that will be made available later) and other bug fixes from the 1.1.4 release that didn’t make it into Beta 1. We’ve also fixed a couple of minor visual issues in Fifteen (and thus Sunrise) and made some minor visual enhancements. Beyond that, this is a small update, so enjoy these bug fixes and now we can move on to the Release Candidate. Of which we expect only one release.

Additional to that, we’ve updated our documentation partialy, more changes will come with the 1.2 RC and 1.2.0 release.

Revisiting our release cadence

As some of you might know, we’ve been releasing “Preview” releases of our software for quiet some time. The first of these was the ModernBB 3.0 Preview 1 release back in 2013. Ever since, ModernBB 3.0, 3.2, 3.3 and every version of Luna has seen these releases appear on our website as official pre-release versions. And you might see it coming, but that’s about to change.

As of the Denim update, we will no longer publish Preview (or rather, alpha) versions to our website. Instead, these versions will be rolled out trough the nightly channel. We’ve done this for Preview 4 and Preview 5 of Cornflower Blue already. There are a couple of advantages to this:

  • The website gets less crowded
  • The website will continue to show maintenance versions for prior versions longer on the home page
  • It takes much less time
  • We can release new Preview more often

This also means that we will no longer blog about these versions – unless something significant is going on. With this, we hope to bring a more stable platform to all of you and to discourage users to use these versions in productive environments when they are not supposed to (as I’m seeing this way to much and am getting quiet sick of having to support these releases).

Further, a couple of days ago, we published a post “The Road to Luna 1.2” with a couple of dates for beta, RC and final releases for Luna 1.2. That’s not going to happen anymore – I mean the date announcements. I’ve proven to myself far to often already that I’m horrible at following these dates (the good news is, we’re often earlier ready than expected) and thus that’s not going to happen anymore.

This new cadence will kick in with the Denim update now in development. Don’t expect much from that update, by the way. It’s mostly focused on improving the general platform, not the features that work on top of it.

Luna 1.2 Beta 1 now available

It has been a couple of days now since we released Luna 1.2 Preview 3, so here we are with the first beta: Beta 1. This build marks our feature freeze for the Cornflower Blue update, but that doesn’t mean that this one doesn’t add some nice changes to Luna.

On a side note, this is kinda a milestone for us. Luna 1.2 Beta 1 is the 100st release we’ve ever made!

Forum icons
This update allows you to set one of the many Font Awesome 4.4 icons as a forum icon on a per-forum base. The icon is used on the index and forum view for each forum.

Fifteen and Sunrise
First of all, Fifteen and Sunrise have been updated on multiple points. Mostly you’ll get a more consistent design. We’ve heard the complains – though we agreed only with a few – but we hope that these updates will give Fifteen and Sunrise a more polished feel. And a more colorful one (see forum view).

Not only Fifteen and Sunrise got some small design updates, so did the Backstage. We improved the interface on a couple of minor points to give it a more consistent look and feel.

We’ve updated our language files and they should be ready now for translation of Luna 1.2.

To close off, we’ve also been working on the documentation. These updates are not live yet, but we will publish them for the Luna 1.2 release later this month as we continue to improve them before then.

Security update Luna 1.0.10 and 1.1.4

2 weeks ago, we got a report from Sfideremo about a security issue in all versions of ModernBB and Luna (and for the FluxBB users out there, you guys are affected too). And thus, we’re releasing a security update for Luna 1.0 and 1.1 (and 1.2, but that’s a different post).

I’m not going into detail on how this security issue works, fact is, this CSFR-bug is rather easy to exploit and allows to lock, pin, unpin and open topics and to subscribe an unsubscribe to forums and mark as read without authorization.

We recommend everyone to update as soon as possible to Luna 1.1.4. If you’re still running Luna 1.0 and you’re not able to update (just yet) to Luna 1.1, we’ve got Luna 1.0.10 for you. In case you’re still running ModernBB now might be a good time to look into upgrading to Luna.

Except for this security issue, Luna 1.1.4 also comes with other changes. These include fixes to Fifteen and Sunrise in both Night mode and responsive design. Further, this updates comes with improvements to translations and fixes to the forum_list_accents() function. Finally, an issue that would cause messages in Inbox to not be marked as “read” even if you’ve clicked on the link has been fixed.

Luna 1.2 users can upgrade to Luna 1.2 Preview 3, which includes all these fixes and more. We’ll post another post about Preview 3 as well as this update contains many more changes.

Special thanks to Sfideremo for reporting this issue and to the team (which will also release version 1.5.9) to help fixing this bug.

For now, we can’t tell wheter or not we will release an update for ModernBB. I don’t leave this out of the question, but as we never intended to support ModernBB beyond the 4.0.0-milestone, this is kinda an open field. Reach out to us on our board, Gitter or Twitter so we can know wheter or not there is any demand for it.