How 24hrs without the ability to install mean can be a good thing.

Obviously it’s not. But sometimes when things break you gain the clarity of what needs fixin… Issue 978 was submitted 19 hr and we started getting notifications in our (awesome) gitter support and chat channel that people are having a problem installing mean.

Its frustrating, we just launched 0.4.2 to deliver more stability – no code changed but still something breaks. Only today – after multiple people had problems with their initial experience with mean – I was able to recreate the bug. What happened is that the assetmanager module (one of mean’s dependencies) issued a release that somehow broke the aggregation of the core dependencies and as a result angular was not loading (and everything was breaking).

This bug is part of a pattern that has to do with “loose dependencies” – you can see in the change I did to package.json that the requirement was for “assetmanager”: “^1.1.1”, The ^ is a “caret range” which means that we where allowing (and trusting) assetmanager if they release a minor version.

This happened about a week ago with inquirer (which powered the cli interaction) and it’s dependency rx and is also a recurring type of bugs that do not help the stability.

The way we take these last 24 hrs and convert them to something good is start to enforce the next 3 decisions which will make much more stabler…

  1. Hardcode versions and remove caret ranges(^) and tilde ranges(~).
  2. Change mean init to clone a tag – essentially cloning the last stable release (0.4.2 today).
  3. Invest in core testing and increase coverage and type of testing to find these occurrences.

The mean stack stability is crucial as people join our community – The amazing work invested in the 0.5 release will result a faster, stabler and more robust platform and bugs and problems will always happen – the idea is to learn the right lessons and to try not to do the same mistakes again.

  • Lior Kesos