{"action":"created","issue":{"url":"https://api.github.com/repos/cleanflight/cleanflight-configurator/issues/86","repository_url":"https://api.github.com/repos/cleanflight/cleanflight-configurator","labels_url":"https://api.github.com/repos/cleanflight/cleanflight-configurator/issues/86/labels{/name}","comments_url":"https://api.github.com/repos/cleanflight/cleanflight-configurator/issues/86/comments","events_url":"https://api.github.com/repos/cleanflight/cleanflight-configurator/issues/86/events","html_url":"https://github.com/cleanflight/cleanflight-configurator/pull/86","id":56094664,"number":86,"title":"Introduce gulp build system and ES6 transpiler","user":{"login":"rbirkby","id":203034,"avatar_url":"https://avatars.githubusercontent.com/u/203034?v=3","gravatar_id":"","url":"https://api.github.com/users/rbirkby","html_url":"https://github.com/rbirkby","followers_url":"https://api.github.com/users/rbirkby/followers","following_url":"https://api.github.com/users/rbirkby/following{/other_user}","gists_url":"https://api.github.com/users/rbirkby/gists{/gist_id}","starred_url":"https://api.github.com/users/rbirkby/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rbirkby/subscriptions","organizations_url":"https://api.github.com/users/rbirkby/orgs","repos_url":"https://api.github.com/users/rbirkby/repos","events_url":"https://api.github.com/users/rbirkby/events{/privacy}","received_events_url":"https://api.github.com/users/rbirkby/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2015-01-30T22:42:16Z","updated_at":"2016-07-23T19:53:10Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/cleanflight/cleanflight-configurator/pulls/86","html_url":"https://github.com/cleanflight/cleanflight-configurator/pull/86","diff_url":"https://github.com/cleanflight/cleanflight-configurator/pull/86.diff","patch_url":"https://github.com/cleanflight/cleanflight-configurator/pull/86.patch"},"body":"Rationale\r\n-------------\r\nWithout a build system, the current configurator has limited options with respect to unit tests, CI, static analysis (lint), transpiling etc.\r\n\r\nI would appreciate any positive or negative comments.\r\n\r\nDetails\r\n---------\r\nThis PR shows one possible way to achieve this. There are others.\r\nIt uses [gulp](http://gulpjs.com/) for build and [6to5](http://6to5.org/) for ES6 transpilation.\r\n\r\nThe bulk of the code has been moved into /app. Then a build step copies the contents to /dist while transpiling the JavaScript files from ES6 to ES5.\r\n\r\nThe readme has been updated with instructions on how to build. In summary:\r\n \r\n```bash\r\nnpm install\r\ngulp\r\n```\r\n\r\nThen instead of pointing Chrome at the root of the configurator repo, you need to point it to the dist directory.\r\n\r\nFinally, it should be noted that I'm writing this while I wait for parts to arrive - so I don't even have a flight controller to test this with. It starts fine (without console errors), but I'm unable to test it further. I don't envisage issues.\r\n\r\nFuture enhancements\r\n-----------------------------\r\n\r\nHaving a build system means that the following things become easier:\r\n\r\n1. Mocha/Jasmine tests\r\n2. eslint\r\n3. ES6 modules\r\n4. Easier publishing to the app store (eg creating a zip)\r\n5. Much more work simplifying the codebase using ES6 features"},"comment":{"url":"https://api.github.com/repos/cleanflight/cleanflight-configurator/issues/comments/234736827","html_url":"https://github.com/cleanflight/cleanflight-configurator/pull/86#issuecomment-234736827","issue_url":"https://api.github.com/repos/cleanflight/cleanflight-configurator/issues/86","id":234736827,"user":{"login":"skaman82","id":11768024,"avatar_url":"https://avatars.githubusercontent.com/u/11768024?v=3","gravatar_id":"","url":"https://api.github.com/users/skaman82","html_url":"https://github.com/skaman82","followers_url":"https://api.github.com/users/skaman82/followers","following_url":"https://api.github.com/users/skaman82/following{/other_user}","gists_url":"https://api.github.com/users/skaman82/gists{/gist_id}","starred_url":"https://api.github.com/users/skaman82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skaman82/subscriptions","organizations_url":"https://api.github.com/users/skaman82/orgs","repos_url":"https://api.github.com/users/skaman82/repos","events_url":"https://api.github.com/users/skaman82/events{/privacy}","received_events_url":"https://api.github.com/users/skaman82/received_events","type":"User","site_admin":false},"created_at":"2016-07-23T19:53:10Z","updated_at":"2016-07-23T19:53:10Z","body":"@hydra I am allways happy to help out with the graphics/UI stuff. If we have a JS dev who is brave enough to take this on, I am happy to assist.\n\nVon meinem iPhone gesendet\n\n> Am 23.07.2016 um 21:41 schrieb Dominic Clifton <notifications@github.com>:\n> \n> @rbirkby and @pieterv @gaelj @skaman82 @stronnag\n> \n> Yes, we want a build system! Yes we want tests. Yes we want a clean reliable and tested codebase that's easy to work on and has separation between layers, unlike the current codebase where everything is mixed together.\n> \n> At the time there someone else was working on using angular for the configurator which has it's own build system, however that never materialized and this was blocked by that.\n> \n> I don't think the long term future of the configurator codebase is with jQuery and I would love to be using more modern technologies (like angular, etc) but it's a rather large job.\n> \n> I would like to be using a well tested, easy to use and common build system, UI and unit test framework. I'm open to suggestions on how to transition the codebase to something more modern. every time I work on the current codebase it just feels like adding more dirty code to an already dirty codebase. I would love it if another pair of developers (1 JS, 1 UI) took on ownership of the configurator codebase moving forwards, I would take a back-seat since my time is pretty much all firmware related these days. Of course I will still contribute for new features, etc.\n> \n> Who wants to take on the challenge?\n> \n> —\n> You are receiving this because you were mentioned.\n> Reply to this email directly, view it on GitHub, or mute the thread.\n> \n"}}
{"actor":{"display_login":"skaman82"}}