Robotlegs 2.0 - how to get involved

Stray's Avatar


10 Jun, 2011 09:00 AM

You may have heard whispers of Robotlegs 2. Exciting eh?

The timeframe for betas is likely to be autumn. We're getting together for 5 days of solid Robotlegs 2 time at the end of this month - out of which some priorities will flow.

Some people have mentioned that they're surprised by the lack of a laundry list of feature requests and so on for them to add to - so this post will hopefully make it clear how you can contribute your ideas and how we're using community feedback to inform this process.

1. We're using 1000 real incidents of confusion and frustration

We have about 1000 threads on the forum and most of those are in the problems and questions sections.

Chances are, if something really confused you, or you couldn't figure out how to get something done, or you really wanted some extra functionality, you've already let us know.

We've re-read every thread in the forum, marking up those that are particularly relevant to RL 2, and we're also doing some textual-analysis on the forum to pull out any patterns that our human brains might have discounted.

We've also taken account of the answers and discussions - not just the actual solutions people arrived at but the way they arrived at them and how easy or difficult it was to explain that to the original poster.

So - if you've ever posted a question or contributed to a solution or participated in a discussion - you're already contributing to Robotlegs 2 and we have huge appreciation for this rich resource!

2. Please fill out our Robotlegs 1.x experience survey

Rather than ask you to list out possible future features, we're gathering information about what the Robotlegs 1.x ride has been like for you so far.

If you haven't done this already - please fill out our Robotlegs 1.x experience survey here:

3. Got a wish? Get it on github!

If you have an idea for a feature or utility in Robotlegs, the best thing you can do is have a bash at implementing the functionality you want in the current version - it's fine if your implementation is kind of hacky, thought it needs to have test coverage.

Here are the guidelines:

  • It needs to have a great Read Me that describes features and usage. (Check out for a textbook example of how to do it well!)
  • To be useful, your code should have great test coverage - any major test suite is fine - eg asunit or FlexUnit.
  • Tests without implementation code are fine. We can take into account what would be needed in order to make them pass when we're shaping Robotlegs 2.
  • Implementation code without tests is pretty much useless. By all means write a spike if that's how you work, but we need to use the tests as the implementation in Robotlegs 2 will be different but the tests will still be relevant.

If you're not confident at actually creating tests, you can start with just the test descriptions. Each test should only verify one thing. A good test name looks like:


If you're able to write tests, please share your code on github, and comment in this thread with a link to the repository.

If you only get as far as a Read Me - please add it as a comment on this post for now.

4. Want to be on the earliest betas?

Follow Robotlegs on github:

Patches and 'can I build X with this' testers will be welcomed with open arms once we get going.

5. I have all these ideas that I want to give you - can't I just list them?

The best way to make sure your idea is fleshed out enough that we understand exactly what you want or need is to follow the instructions in 3.

This will also allow you to check the ideas that have already been submitted and see whether they match with yours.

If your idea is a close match but slightly different from something already submitted then you can copy-paste-edit that submission as a starting point.

6. Wait, this sounds like Robotlegs 2 is gonna be stuffed with features and all ... big

Don't fret - our number one priority is to not break what's working about Robotlegs 1 - that it's a simple, clean, light framework which is easy to wrap your head around even if you've never used a framework before.

That's not changing - if anything we want to make that aspect stronger.

Nobody could have anticipated how popular Robotlegs would become - so the originators didn't think "we'd better include tons of easy-access hooks for the dozens of extensions people are going to make for our amazing framework!" ... so the weakness we've seen in version 1 is that while in theory Robotlegs 1 is really, really extendable, actually implementing utilities and extensions isn't completely straightforward.

So - Robotlegs 2 will remain a lean framework, and there will still be a strong prescription for the standard implementation (that's something that our survey shows you really value) but it'll be easier to extend and will include some enhancements that we are sure you'll really appreciate.


Stray, Shaun, Joel, Till and Robert

  1. 1 Posted by edzis on 11 Jun, 2011 10:52 PM

    edzis's Avatar

    sadly the survey link does not work - just says "Thank you!"

  2. Support Staff 2 Posted by Till Schneidere... on 11 Jun, 2011 11:26 PM

    Till Schneidereit's Avatar

    There was an "r/" too much in the URL, the correct one is

    @Stray: I've also changed the link in your original message

  3. Support Staff 3 Posted by Stray on 12 Jun, 2011 08:35 AM

    Stray's Avatar

    @edzis - Sorry about that! I guess I didn't check it thoroughly enough.

    @till - thanks - much appreciated - must remember to click my own links in future!

  4. 4 Posted by Thomas Troelsen on 12 Jun, 2011 06:27 PM

    Thomas Troelsen's Avatar

    Just want to say I am very happy about the news and look forward to see what kind of tricks you have up your sleves. If you improve something that is already awesome, what do you got ;-)

  5. 5 Posted by gz.francisco on 20 Jun, 2011 01:33 AM

    gz.francisco's Avatar

    Yeah! {RL}2

    I want help with the ASDocs ^_^

  6. 6 Posted by squeedee on 22 Jun, 2011 01:57 AM

    squeedee's Avatar

    FWIW, I think RL 1.0 is perfect. Occasionally I want other things than what i get out of RL, but to date, every feature request has turned out to be, very clearly, an extension and not core.

  7. 7 Posted by squeedee on 22 Jun, 2011 06:31 PM

    squeedee's Avatar

    Wow what a stinking lie.

    Sorry. I do have one major gripe with RL1.0, an It's an amazing person who fixes it. It's really hard to extend :D I can't imagine any performant way of solving extensibility issues tho, it's a language problem, not a framework problem.

    Not sure if I need to spell out what I mean, I think the core team are aware, that when you want to add to an interface, such as adding a commandMap.someOtherMappingMethod, this means you don't want a ICommandMap interface on the Context, but a IMyExtendedCommandMap, which means you now need an MyExtendedContext. If someone else has written an extension to Context that you quite like, you now have to work out how to order them, or you just merge them. Either way, version control and patching becomes extremely problematic.

  8. Support Staff 8 Posted by Stray on 22 Jun, 2011 06:41 PM

    Stray's Avatar

    That's our main priority in RL2 - extensibility.

    Like I said above - nobody ever imagined RL would become so popular that you'd have the problem of wanting use multiple utilities at the same time... it's a great problem to have though!

    FWIW - there is no reason why the context needs to have a reference to a util generally, so in most cases you can just add a util through a boot strap command (or plain old object or package level function that you pass the injector to) - as the injector will hold the reference. But yes - this is the main pain point and will be the focus of a lot of energy!

  9. Ondina D.F. closed this discussion on 27 Aug, 2012 10:37 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac