Releases: aerojs/aero
1.6.0
The only notable change is that there is a new directory now: startup
The path is configurable via path.startup
in config.json just like all the other directories.
It should be used for code that needs to be executed at the start of the application, e.g. middleware registration.
You should avoid configuring all your middleware in index.js
only.
1.4.0
1.0.0
.browser.js
extension has been renamed to.client.js
- ECMAScript
.client.js
files are now transformed via Babel so you can write modern ES without worrying about browser incompatibilities. config.security
is not needed anymore. SSL certificates are automatically loaded if they are in the security folder.config.favIcon
is not needed anymore. If there is afavicon.ico
in your root directory it will be served to the client.- You are required to run your project in strict mode now using
--use_strict
- Slightly improved performance (from 27k req / s to 30k req / s).
- Completely rewrote the architecture. The source code is much more readable and maintainable now.
This release is for Linux users. Windows support will be coming in a future release.
0.9.3
Breaking changes:
- Plugins are now defined in your package.json instead of the config.json file.
- Every plugin needs to be included by its full package name just like any other package under "dependencies".
siteName
configuration is now calledtitle
- Layout template now has access to the
app
variable, therefore allowing you to access the title viaapp.config.title
- Layout templates therefore need to change
title!= siteName
totitle!= app.config.title
0.9.0
Version 0.9.0 has breaking changes for all projects.
Aero is not a singleton anymore and uses app instances instead.
Fixing existing projects is very easy. Old 0.8.x code:
let aero = require('aero')
aero.get('/', (request, response) => response.end('Hello'))
aero.run()
Needs to be changed to:
let app = require('aero')()
app.get('/', (request, response) => response.end('Hello'))
app.run()
The app constructor also supports a root directory parameter so you can run the app for a subdirectory instead of the current one:
let aero = require('aero')
let app = aero() // Main app, current directory
let blog = aero('blog') // Use Aero in 'blog' subdirectory
let admin = aero('admin') // Use Aero in 'admin' subdirectory
0.8.10
0.8.0
The biggest change in 0.8.x is that layouts are getting closer to being finalized.
The style!= css
and script!= js
directives inside your jade layout are now obsolete.
We want to keep things DRY so we want to avoid lines that need to be repeated on every website. Same goes for the viewport meta tag for mobiles which is now automatically inserted (nowadays every website needs to aim for mobile access).
Currently you do have control over the whole layout. Some people might prefer it that way.
My view on this is a bit mixed.
On the one hand I want to give the user full control over the elements.
On the other hand, the more control you give to the user, the more potential mistakes the user can do.
Mistakes can be less-than-obvious stuff like loading external scripts in the head of your website.
Right now layouts are automagically created on-the-fly by Aero if they don't exist.
Therefore we have opt-in layout control which is not mandatory.
I believe default stuff that "just works" with "opt-in control" is a good solution.
The latter will of course be harder to maintain as new Aero versions are released therefore I'll try to make the automatically created layout handle as many cases as possible.
0.7.0
Implemented a new plugin loader which is now based on npm modules. In order to add a new Aero plugin it needs to be registered as aero-YOUR_PLUGIN_NAME
, e.g. aero-jquery
. It will also automatically install missing modules that have been specified in your config.json
under plugins
.
0.6.8
0.6.6
render()
has been removed for controllers.
Controllers now support get(request, response)
and post(request, response)
only.
The old render method needs to be renamed to "get" and the 2nd parameter is now the response the object.
Old render()
calls need to be replaced with response.render()
.
P.S. As always, Aero is in development and not released yet.
However I felt like I should start writing a changelog about breaking changes, so might as well do it now.
The future release will probably change the file extension of all .hjson files to .hson. Be prepared.