Archive

Category Archives for "Luna"

Developing Luna #10 – The Road to Preview 4 and 5

Yesterday, we’ve closed off the Preview 3-stage of the Luna development, now, we’re working  on the first Preview 4-release, for which we’ve planned 3 updates. And than comes Preview 5, perhaps better known as Luna 1.0 Beta 1 (Luna v0.5). Why are we talking about Preview 4 and 5 this time around and not just 4? Let me explain:

First off, with Preview 3 Update 2, we kick off our weekly updates. This means that next Saturday, you guys will be able to enjoy Preview 4 already, we’ll release a new build of Luna every Saturday until we get to the final release. With this, we like to indicate that the now +8 months of Luna development are coming to a close. We’re left with 10 more previews (Preview 4, 4.1, 4.2, 4.3, 5, 6, 7, 8 and 9), through we might add a couple of additional previews. Either way, Luna 1.0 is now set for a 9 May 2015 release. Get hyped!

Final features
Preview 4 and its 3 updates will be all about finishing off the features we’ve included in the previous previews. Some other small additions might make it into the software, but don’t put your hopes on it. At this point, we start stabelizing our code, getting everything ready for translation, adding Random 5, and more. It’s not for now, but when we hit Preview 9, you’ll see us remove a couple of developer codes (like the “Core” message in the Backstage and all information in About about Preview-updates).

Further, we’ll be working on improving Sunrise and Sunset, extending the Notifications (the actions you have to do that will trigger notifications) and so on. Something else that is now on our main radar is the documentation, and while Preview 3 Update 2 already comes with a first draft of the documentation, it’s far from finished, and thus, more is coming. Finally, you’ll see us fix a faire amount of bugs.

When Preview 4.3 (“Preview 4 Update 3″) is released, we’re going in to our final week of feature development. After that, we’re on a feature freeze that will bring you guys Preview 5, perhaps better known as Luna 1.0 Beta 1 or Luna 0.5 (but we’ll officially continue to name them “Preview”, both betas and release candidates). Preview 5, 6 and 7 will all focus on finishing the new features, but they will mainly fix bugs. Preview 8 will be our first release candidate and with some good luck, Preview 9 will be our last. Followed by Luna 1.0 some time after (we’ve currently planned a week between Preview 9 and Luna 1.0, but we do not expect it to take that long).

End of the line, or road, pick what you prefer
And with that, the end of the road is in sight. I can see it, it’s still a distance, but it’s there. And we’re closing in. Finally. And what’s at the end of this road? Well, a brand new one. Bittersweet Shimmer Avenue, yeah, let’s call it that. If that doesn’t ring a bell, I’m referring to Luna 1.1. Guys, we’re coming close to the end, it was an amazing ride, and I hope you all are ready for the next one, because Bittersweet Shimmer isn’t the only road over there. Not even close.

Luna: Check For Updates 1-0-1

In the coming months, we’re getting ready to release Luna. Finally, after months of work. Either way, reaching the “Stable”-milestone is nice, but it doesn’t mean we’re done. In fact, it’s just the start for a plethora of updates coming your way. And this is how we’re going to do it.

After the Lun 1.0 release, we’ll release new updates for Luna 1.0 on a regular base. 1.0.1 and 1.0.2 will be released a week and twoo weeks afater the Luna 1.0 release, respectively. These updates will include fixes for issues that wheren’t catched during the beta and RC stage of Luna. Of course, every 0.0.1 release does that, but this is for the major bugs.

Either way, from that point on, we’ll be going for a 3-weeks cadence. Every 3 weeks, we’ll release an update to fix issues in our currenlty supported branch. This will happen on a Saterday. Of course, when a security issue has been fixed, we’ll release a new update that same day or the day after, wether or not it’s a 3rd Saterday.

Meanwhile, we’ll be developing our next minor update, Luna 1.1. This version, too, will follow a 3-weeks cadence bu unlike the 1.0.1 updates, you’ll get new features when updating to this release. Dhu. Developmen of Luna 1.1 will somewhere during the Luna 1.0 Release Candidate stage.

Anyway, Luna has a build-in feature that warns you for new versions of our software. Unlike ModernBB, we’ll continue to support older versions for some time (this won’t be regular). Older versions will mostly get security fixes, through bugfixes could also be introduced in older versions.

This means that at one point, we’ll have Luna 1.1.0 as our main release, but also a Luna 1.0.x. And we do understand quiet well that not everyone would like to update to an update that’s bigger as normal bugfixes. That’s why Luna will include an option to warn you for updates from different branches.

You’ll be able to check for updates in the master branch of Luna (the “Stable” option). The master branch will have the latest and greatest features and bugfixes for our stable releases. Another option will be to check for updates in your current branch (the “Patch” option). For example, when you pick this option in Luna 1.0, the update mechanism won’t warn you for Luna 1.1 being released, but it will warn you for Luna 1.0.3 (or something) to be released.

Third, there will be an option to check for updates in the lunadev branch (the “Preview” option. This branch contains the latest alpha/beta/release candidate version Luna. This is experimental software. Note that if you’ve downloaded a alpha, beta or release candidate version of Luna and you create a frech install with it, you’ll also be warned for these kind of updates, but only until the first stable release for the branch that preview version is part of has been released.

Finally, there will be an option to check for nightly builds (the “Nightly” option). Nightlies aren’t the kind of nightlies you might expect as from other projects, but they will be rather regular releases. We’re updating our forum every now and then with a version of Luna that isn’t a full preview release. Well, it’s that kind of version you’ll find in this branch. They are completely untested version, and well, we do concider to call this branch the “Risky” branch. But we’ll warn you for that in Luna.

Coming soon to a Luna software project near you: Luna 2.0

Gosh, we shouldn’t be talking about this yet, however, while we are still at full work to bring you Luna 1.0 Aero, we’re already thinking about what’s next. And we’ve got some nice ideas. Some major changes are coming up. And we like to call it Luna 2.0.

O gosh! Are you guys going to make every release a major number? No. Luna 2.0 simply is our next major project. There will be a Luna “Bittersweet Shimmer” 1.1 and Luna “Cornflower Blue” 1.2 release in the meantime. Either way, we’re following Semantic Versioning. This means that we have to change the major number every time we make a change to the software that will break some extensions or modifications. For the note: no, Luna 2.0 won’t contain extension support (at least, for the Mainstage, the Backstage is planned to support extensions). The fact is, that we’re about to make some major changes, and thus, we’re going to make a major version number. After Luna 2.0, we hope to go up a little bit slower, unless Semantic Versioning requires otherwise and the Mainstage revamp is finished to early.

Backstage “Edge” 4
While Aero brings a looks-like new Backstage, it’s rather only the navigation and general design that got changed. Of course, there where other improvements, however, it’s not very modern under the core. With Edge – the name of the new core that will be used by the new Backstage and is introduced with the new installer in 1.2 –  we want to change that too. This is a step to an easier to use Backstage and an easier to extend one for that. Where does the “4” come from? Well, it’s version 4. After the Admin Panel v1 from ModernBB 1.x, the Backstage v2 from ModernBB 2.x and 3.x and the Backstage v3 from our upcoming Luna 1.0 Aero release.

Anyway, Backstage 4 will be build from the ground up with modern technologies in mind. But that doesn’t change that our goal is to keep the code as simple as possible. And of course, we will documentate it as well as we can. Expect a major design change, through, that will use the full width of your screen, on any device.

Lunicons
We’re planning to design our very own icon font to be used in Luna. This will bring us a much lighter and smaller icon font then the currently used Font Awesome. We love that project, but it simply is to big and we need to give our software more of an identity. So here we go, our very own iconset, called Lunicons. Also available as a free package in the future. We’ll publish a website for it, perhaps. Something like icons.getluna.org, or something.

Edge core
Unlike the current Backstage, the new Backstage will be build on the “Edge core”. What is this? It basically replaces everything in the current Luna versions to make the Backstage completely separate from the Mainstage. A small version of Edge core will already be included in Luna 1.2 for the installer and update systems, but Luna 2.0 will include a more powerful version. This will also allow us to kill off the GPL license for the Backstage (additional to the installer and upgrade mechanisms), moving Luna even further to MIT.

Luna 2.0.12, 2.1 Preview 5 and Typography are here

A new Luna, a new theme

We’re happy to announce the availability of Luna 2.0.12 and 2.1 Preview 5. 2.0.12 is a security release, but has a few other minor improvements too. In Preview 5, we continue to move forward with modernizing Luna. And this preview does that in some major ways. Not only are we introducing a fresh looking new default theme, we’re also working hard on modernizing the logic below. Preview 5 is a major update compared to the previous previews, so let’s get started!

Luna 2.1 Preview 5

Typography

First of all, meet our new default theme Typography! Typography, as the name implies, heavily leans on typography as its main design element. For the first time since 2015, we’re introducing a new default theme (and the fourth time since our first release with ModernBB 1.6 (from Air to Random to Fifteen to Typography).

Fifteen has served its purpose well and even got a major redesign in Preview 4 to support Bootstrap 4, but with Luna 2.1 we are deprecating it, as well as Sunrise. This means that both themes won’t be included in the next major version of Luna.

Note that this is still an early version of Typography and there are still plenty changes coming.

Fifteen & Sunrise

With the major redesign for Fifteen and Sunrise in Preview 4, we also spend some time on refining the updated themes with Preview 5. This includes some more design refinements to better match with the new Bootstrap 4 framework and updates to support the new theming APIs that are part of Preview 5.

Earlier we announced that Fifteen and Sunrise would ship with Preview 5 in an entirely broken state, this is no longer the case. Fifteen and Sunrise should work as expected (at least, for as far as it is to be expected in an alpha).

Developers: easier theming

Preview 5 introduces a bunch of new tools for theme developers. Most notable is the fact that Luna now provides themes with raw data rather than info put in HTML and CSS. This allows for better customization and less reliability on Bootstrap.

  • Pagination is now returned as an array of Page-objects instead of a variable with pre-written HTML and CSS with Bootstrap classes.
  • Notifications are now returned as an array of Notification-objects instead of a variable with pre-written HTML and CSS with Bootstrap classes.
  • The usermenu is no longer generated by Luna, themes now have to take care of it by themselves, complex URLs are now provided through the Menu object.
  • The menu is now passed to the theme as an object with an array of objects, the menu items can be acced by calling $menu->getItems(), which will return an array of items.
  • Anything that isn’t a Luna config item that is relevant to the footer can now be found in the $footer variable for the footer template. The $footer variable returns a Footer-object with relevant statistics about your board.

This is just a small revamp of the theming engine, and more is to come in Preview 6.

Theme settings

When changing the theme, there is a chance that your new theme has a different number of accent colors available. This is not a problem if there are more accent colors, but if there are less, it becomes an issue: your board’s default setting and your user’s custom setting may be set to use a higher accent color than the theme provides. Starting with Preview 5, Luna will now reset any setting that might violate the number of available accent colors for the new theme. Right now, Luna will reset this number to 1, in a future preview it will be possible for themes to set a default value.

Emoji

Todays preview also continues the emoji improvements. This time around, we’re updating our emoji support to use the more modern notations like “:smile:” as can be found on other platforms like GitHub. If your forum is running Luna 2.1 Preview 4 and earlier and upgrades to Preview 5 or later, your board will continue to support the old “:)” notation, etc. The new notation is the only notation for new installations, however.

Additionally, Preview 4 required emoji like “:p” to be declared as both “:p” and “:P” to work as expected, in Preview 5, emoji are case insensitive which means you can get away with a single declaration.

Censoring & emoji

Up until now, you had to change each censored word or emoji individually then do the next. With Preview 5 you can now update all lines at once and save them all together.

Profile & settings

Today’s new preview also includes a major rewrite of the profile section in the front-end. We’ve rewritten entire thing to use the User object, including all validations and storage functions. The Profile is only one of the first pages to start using a more OOP-minded structure and more is to come. This will also help in our move to PDO.

MySQL & PHP support

Luna 2.1 is dropping both the MySQL and MySQL InnoDB drivers. MySQL has been considered deprecated for a while now and PHP 7 removed it entirely. Given that MySQL Improved and MySQL Improved InnoDB should be available on any system, these old drivers have now been dropped.

Additionally, Luna 2.1 will require PHP 5.4 or higher, this is up from PHP 5.3 for Luna 2.0.

Other changes

  • A bunch of icons in the Backstage have been changed to better represent their page
  • Bootstrap has been updated to version 4.1.2
  • Font Awesome has been updated to version 5.1.1
  • A number of emoji have been remapped to better represent their meaning
  • Luna now correctly redirects you after setting a new theme
  • Proper HTTP errors during maintenance and errors
  • When updating, fields are now correctly dropped from the database
  • Cleans up a number of old PHP checks
  • Removes a number of checks and function fallbacks designed for PHP 5.3 and or lower
  • Fifteen’s “online users” list now works properly again

Known issues

  • Fifteen, Sunrise and Typography have a number of visual issues
  • Luna will reset the theme to Typography
  • First Run will be enabled for everyone who disabled it and disabled for everyone who enabled it

More to come

We still have plenty more changes to come in the new previews. Here is a short list:

  • Further revamp of the theming APIs
  • Allow themes to set a default accent color
  • Support for local videos in comments
  • More Typography improvements
  • Icon packs
  • (Investigate) moving to PDO
  • Font Awesome 5.2
  • Bootstrap 4.1.3

Luna 2.0.12

We’re also releasing Luna 2.0.12 today. This update contains a number of fixes and enhancements, including one security fix. We highly recommend you update to this version.

  • Introduces support for modern emoji shortcodes as found in Luna 2.1-alpha.5
  • Some emoji have been remapped to better match their textual counterpart
  • Proper HTTP errors during maintenance and errors
  • Luna no longer returns the password when a registration error occures
  • When updating, fields are now correctly dropped from the database

Final remarks

As always, make sure you have a back-up before updating to Luna 2.1 Preview 5 or Luna 2.0.12. We test these versions but of course we can’t test for every single possible outcome.

Website updates

And yet again, we’ve made more adjustments to the documentation for Luna. You’ll find that we’ve begun expanding the “Extend Luna” section for both themes and translations. Many more minor changes have been made throughout the documentation and for Preview 6 we will further expand on theming, and we will begin expanding the Mainstage documentation as well as preparations for future versions of Luna.