aurelia / skeleton-navigation

Starter kits for building a standard navigation-style app with Aurelia.
Creative Commons Zero v1.0 Universal
732 stars 513 forks source link

Removal of testing frameworks and all other dev-dependecies from skeleton projects #261

Closed ghost closed 8 years ago

ghost commented 8 years ago

Obviously this is just my opinion. I don't have all the facts but this is based on my reaction to getting started with Aurelia...

(For Visual Studio & Typescript especially), the inclusion of babel, jasmine, karma, protractor, selenium, tslint-stuff, wallaby, gulp, vynil, is not at all critical to a "skeleton" and fully functional application. Maybe the beginners kits can keep this stuff.

All of this should go - it's 64mb over 13000 files!

"aurelia-bundler": "^0.1.8",
"aurelia-tools": "^0.1.3",
"babel": "^5.8.23",
"babel-core": "^6.3.17",
"babel-eslint": "^4.1.3",
"browser-sync": "^1.8.1",
"conventional-changelog": "0.0.11",
"del": "^1.1.0",
"es6-module-loader": "^0.17.8",
"gulp": "^3.8.10",
"gulp-bump": "^0.3.1",
"gulp-changed": "^1.1.0",
"gulp-notify": "^2.2.0",
"gulp-plumber": "^0.6.6",
"gulp-protractor": "^0.0.12",
"gulp-sourcemaps": "^1.3.0",
"gulp-tslint": "^4.2.1",
"gulp-typescript": "^2.9.2",
"isparta": "^3.1.0",
"istanbul": "gotwarlost/istanbul#source-map",
"jasmine-core": "^2.1.3",
"jspm": "^0.16.11",
"karma": "^0.13.15",
"karma-babel-preprocessor": "^5.2.1",
"karma-chrome-launcher": "^0.1.7",
"karma-jasmine": "^0.3.5",
"karma-systemjs": "^0.10.0",
"object.assign": "^1.0.3",
"require-dir": "^0.1.0",
"run-sequence": "^1.0.2",
"tslint": "^3.2.0",
"typescript": "^1.7.3",
"vinyl-paths": "^1.0.0",
"yargs": "^2.1.1"

"babel": "npm:babel-core@^5.6.4",
"babel-runtime": "npm:babel-runtime@^5.6.4"
ghost commented 8 years ago

see also https://github.com/aurelia/framework/issues/294

atsu85 commented 8 years ago

the inclusion of babel, jasmine, karma, protractor, selenium, tslint-stuff, wallaby, gulp, vynil, is not at all critical to a "skeleton" and fully functional application. Maybe the beginners kits can keep this stuff.

Yes, not critical, but very useful single source for full stack. If You really want the "critical" part of the fully functional Aurelia application, then beginners kit (as You said) seems to do exactly that. I'm certainly NOT going to vote for removing all of it from skeleton-navigation.

ghost commented 8 years ago

The beginners kit includes even more of this stuff than the skeleton does (client-side transpiling!). This is the most full fleshy, heart pumping, hair skeleton ever! And it isn't working in the use-cases I'm attempting (which I don't think are very uncommon) but are a distraction. The rest of my development team isn't going to adopt all this stuff at once (also not so uncommon, I think, nor irrational).

EisenbergEffect commented 8 years ago

Our plan is to do away with the skeletons entirely. In their place, we would have a "new project" wizard on the aurelia site (and maybe a simple cross-plat desktop app for offline use...also including our docs.). Simply click the "Create Project" button, answer a few questions and then you get a zip to download with your customized project. So, if you do want all the bells and whistles they will be there, if you don't you don't have to use them.

Would something like that work?

atsu85 commented 8 years ago

Sounds great, but it takes a some time to implement it (not sure what are the priorities).

Meanwhile, one relatively easy option would be to include script that strips some functionality (from the sample app) - what do You think? In long term the "Create Project" wizard (or Yeoman generator) would be the way to go, but as a start script might be good enough and wouldn't take too much effort (to create the script and to maintain several samples).

ghost commented 8 years ago

That would be cool. I really am still having trouble with a Visual Studio & Typescript setup (avoiding tfs for now because of core-js < 2.0.0, ok). I cannot get mine to run and really I can't where the problem is because of all the noise of the other software. I know there are various bugs with this prerelease, but I can't figure out where the problem is, you know? (I get "m.configure is not a function" in my most advanced attempt but as far as I can tell all my runtime dependencies are loaded correctly).

I've started over at least 8 times in different directions to try to get it to work, not deviating very far from the original. I think I'm pretty smart, but sure, it could be that I'm just not hip with the bleeding edge of the text-editor IDE ecosystem and package management. I'm posting this to share my perspective in case I'm not the alone in that demographic.

EisenbergEffect commented 8 years ago

I don't think you are alone at all. It's been my own frustration as well. In order to really build Aurelia, because of the state of modern js tooling, we had to adopt a number of other js tools to build upon. That has resulted in making some things...difficult. We're actively pursuing ways we can automate setup or provide more customized kits for people to help avoid these issues.

ghost commented 8 years ago

Well you are doing a very good job communicating with the community, from what I've seen.

EisenbergEffect commented 8 years ago

Keep the feedback coming. It really helps us to get things right. If you have any more ideas about how the setup process could be simplified please feel free to share any time. It's a constant process.

tomtomau commented 8 years ago

@EisenbergEffect Just putting in my 2c, while you may have to put in effort to modify a skeleton for your exact scenario, thorough, end-to-end skeleton apps are still immensely useful. Rather than having to set up your own tooling, you can jump in and get a feeling for a framework without wasting time. Having one that it is essentially 'supported' by the core team is also great, because it means I can feel broadly comfortable with it in the longer term.

If I was going to recommend anything, the build-your-own-skeleton wizard would be excellent. I really like the way PuPHPet handles configuring a VM - it's very easy and customisable.

EisenbergEffect commented 8 years ago

I'm closing this for now. We are going to keep the skeletons fully configured. We've also added the beginner kits for "getting started" more easily. In the future, we'll have a little app you can run to also generate a project based on custom choices.