The long road to 1.0

The long road to 1.0

Talk from Scriptconf 2017 in Linz. A tale of the technical challenges we have faced as an open source JavaScript application, trying to get Ghost to 1.0.

13bc3aed226e3d7b0d262e5664468f50?s=128

Hannah Wolfe

January 27, 2017
Tweet

Transcript

  1. 1.

    — by Hannah Wolfe — THE LONG ROAD TO 1.0

    A story of life, love and the pursuit of 100% test coverage
  2. 2.
  3. 3.

    No matter what people tell you, words and ideas can

    change the world – Robin Williams
  4. 5.
  5. 6.

    Seth Godin - Purple Cow / Tribes Jeff Atwood -

    Founder @ StackOverflow Darren Rowse - ProBlogger Leo Babauta - Zen Habits Paul Bradshaw - Head of HE Journalism (UK) Tucker Max - I Hope They Serve Beer in Hell (that’s about €230k)
  6. 8.
  7. 10.
  8. 13.
  9. 14.
  10. 15.
  11. 16.
  12. 17.
  13. 18.
  14. 19.
  15. 24.
  16. 27.
  17. 30.
  18. 32.

    JSON API Server Blog require() Client Admin HTTP GET /api/posts/?limit=3

    api.posts.browse({limit: 3}) {{#get “posts” limit=“3”}}
  19. 36.
  20. 37.

    Single page app? Ugly routing No data binding Memory issues

    Constant regressions Poor mobile support
  21. 38.
  22. 39.
  23. 42.
  24. 43.
  25. 46.
  26. 53.
  27. 54.
  28. 56.
  29. 57.

  30. 58.

  31. 60.

    9414 verbose stack Error: sqlite3@3.1.8 install: `node-pre-gyp install --fallback-to-build` 9414

    verbose stack Exit status 1 9414 verbose stack at EventEmitter.<anonymous> (/root/.nvm/versions/node/v4.2.6/lib/node_modules/npm/lib/utils/lifecycle.js:279:16) 9414 verbose stack at emitTwo (events.js:87:13) 9414 verbose stack at EventEmitter.emit (events.js:172:7) 9414 verbose stack at ChildProcess.<anonymous> (/root/.nvm/versions/node/v4.2.6/lib/node_modules/npm/lib/utils/spawn.js:40:14) 9414 verbose stack at emitTwo (events.js:87:13) 9414 verbose stack at ChildProcess.emit (events.js:172:7) 9414 verbose stack at maybeClose (internal/child_process.js:821:16) 9414 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5) 9415 verbose pkgid sqlite3@3.1.8 9416 verbose cwd /var/www/ghost 9417 error Linux 3.2.0-76-virtual 9418 error argv "/root/.nvm/versions/node/v4.2.6/bin/node" "/root/.nvm/versions/node/v4.2.6/bin/npm" "install" "sqlite3" "--loglevel=info" 9419 error node v4.2.6 9420 error npm v4.1.1 9421 error code ELIFECYCLE 9422 error sqlite3@3.1.8 install: `node-pre-gyp install --fallback-to-build` 9422 error Exit status 1 9423 error Failed at the sqlite3@3.1.8 install script 'node-pre-gyp install --fallback-to-build'. 9423 error Make sure you have the latest version of node.js and npm installed. 9423 error If you do, this is most likely a problem with the sqlite3 package, 9423 error not with npm itself. 9423 error Tell the author that this fails on your system: 9423 error node-pre-gyp install --fallback-to-build 9423 error You can get information on how to open an issue for this project with: 9423 error npm bugs sqlite3 9423 error Or if that isn't available, you can get their info via: 9423 error npm owner ls sqlite3 9423 error There is likely additional logging output above. 9424 verbose exit [ 1, true ]
  32. 61.

  33. 63.
  34. 64.
  35. 65.
  36. 68.
  37. 70.

    app.get('/about/', function myController(req, res) { var myModelData = models.get('about'); //

    render the view called about.hbs res.render('about', myModelData); });
  38. 71.
  39. 72.
  40. 73.
  41. 74.
  42. 75.
  43. 76.
  44. 77.
  45. 79.
  46. 83.
  47. 86.
  48. 88.
  49. 89.
  50. 90.

    Ghost 1.0 • New Editor • CLI Tool for install

    & upgrade • Ghost OAuth login system • Improved logging & migrations • Much, much more…
  51. 92.