Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

General ideas for Spine version $Next #434

Open
6 of 15 tasks
adambiggs opened this issue Mar 15, 2013 · 22 comments
Open
6 of 15 tasks

General ideas for Spine version $Next #434

adambiggs opened this issue Mar 15, 2013 · 22 comments

Comments

@adambiggs
Copy link
Member

Given the recent buzz in this repo, I wanted to open up a dialog about ideas for the next big Spine release (v2.0 maybe?). I have more open-source time coming up, and would love to contribute it to Spine!

Here's my wishlist:

Edit - More stuff:

Thoughts?

@cengebretson
Copy link
Member

I think most, if not all, of those points are definitely worth looking at. I do like the idea of using literate coffescript for the documentation. And I think it does make sense to have the spinejs.com website built entirely on an all javascript platform :o) I'm glad that spine is coming back to life, even with the amazing number of javascript frameworks popping up I feel Spine still has its niche in that its simple and feels light weight.

One other area I want to dive into is improving the Hem project, feels like there is a lot of potential there to make spine even easier to use, but I'm interested to hear how others are compiling their spine apps.

One thing I think would be very slick with spine/hem is to add a livereload type of feature where changes to css (or even views) would be displayed in realtime without having to reload the browser. I just started looking at this so it has a ways to go but feels very doable.

@texastoland
Copy link
Contributor

👍

@MylesPenlington
Copy link

AMD support gets my vote. Was on the plan but a bit further away. Had not looked at in detail. Was working from the point of view of a composite UI loaded from many different services/ URL's so was thinking that it would require loaders.

Map files gets my vote too!

@aeischeid
Copy link
Member

Pretty decent roadmap there!

I think what is in master now is getting close to ready for a 1.1 release. After that I could see us switching to only maintenance mode on spine 1 while focusing on getting a spine 2 out. Of course version numbers are as arbitrary as we want them to be I guess. Maybe it is more like a 1.2 release? Open to other opinions on that, as I don't really care to much either way to be honest.

I agree with @cengebretson that one of the killer features of spine development is, or could be, Hem. If others don't agree about Hem in particular there are other tools out there like Yeoman. The point being that we want spine to be awesome for developers and I think designing spine with a tool like Hem or Yeoman in mind is essential, and should be a priority on a roadmap such as this.

@adambiggs
Copy link
Member Author

The point being that we want spine to be awesome for developers and I think designing spine with a tool like Hem or Yeoman in mind is essential, and should be a priority on a roadmap such as this.

Agreed. We don't use Hem because at the moment we have a PHP back end. We've put together a dev stack very similar to Yeoman, and in fact plan on restructuring it as a Yeoman generator before starting our next app.

I've never even really looked at Hem, so forgive my ignorance... But would it be easier/more flexible to create a Yeoman generator for Spine instead of maintaining Hem? Does Hem do stuff that Yeoman/Grunt can't? It seems like Hem might be a niche of a niche :)

@maccman
Copy link
Member

maccman commented Mar 15, 2013

Looking good!

On Fri, Mar 15, 2013 at 8:58 AM, Adam Biggs notifications@github.comwrote:

The point being that we want spine to be awesome for developers and I
think designing spine with a tool like Hem or Yeoman in mind is essential,
and should be a priority on a roadmap such as this.

Agreed. We don't use Hem because at the moment we have a PHP back end.
We've put together a dev stack very similar to Yeoman, and in fact plan on
restructuring it as a Yeoman generator before starting our next app.

I've never even really looked at Hem, so forgive my ignorance... But would
it be easier/more flexible to create a Yeoman generator for Spine instead
of maintaining Hem? Does Hem do stuff that Yeoman/Grunt can't? It seems
like Hem might be a niche of a niche :)


Reply to this email directly or view it on GitHubhttps://github.com//issues/434#issuecomment-14968866
.

Alex MacCaw

+12147175129
@maccman

http://alexmaccaw.com

@adamrights
Copy link

+1 to a yeoman workflow. I've spent the last few months using yeoman and tinkering with aura.js -- but I was always a fan of Spine after reading Alex's book. I'll keep a closer eye on this repo and see if I can help anywhere.

@zohararad
Copy link

Not sure if this deserves a separate ticket or should be here, but I'd love to see Spine v1.2 remove jQuery-specific code (in particular inside Spine.Ajax) so Spine can be used with Zepto / Tire with greater ease.

@adambiggs
Copy link
Member Author

@zohararad I've never used Zepto or Tire, but I was under the impression both their APIs were compatible with jQuery's API.

@aeischeid
Copy link
Member

the tests for the ajax and routing modules are currently jquery dependent, and that is something we should fix, but I don't think the modules themselves should be. I like the idea of supporting zepto at least, at some point it will be quite a bit of work to keep up with the nuances of incompatibility between multiple libraries. So unless someone jumps in to help with that task I am thinking tire.js is not going to be officially supported.

@cengebretson
Copy link
Member

Not sure if zepto, at least by itself has all the promise/deferred functions available that the ajax module is dependent on. I could be wrong on that, but at first glance that stood out...

@metaskills
Copy link
Contributor

Just saw the list above, I am the author of mocha-phantomjs and I would love to lend a helping hand if that bullet point moves forward. Cheers.

@metaskills
Copy link
Contributor

Also, perhaps double down on returning promise objects for model.save() and the like as started in the work in #328. Again, this would semi-concern the base implementation with the possibility of extensions like ajax driving the return value. To me, this makes sense.

@adambiggs
Copy link
Member Author

@metaskills Sounds great! Love your idea about promise objects too. Added it to the list above :)

@00defeat
Copy link

How about allowing for a custom idAttribute? Also adding instance done and error callbacks to fetch?

@aeischeid
Copy link
Member

Still a fan of this roadmap!

Currently in dev branch and lined up in the pull request queue we have a handfull of good features and enhancements. Feels like we could do a release soon, but also feels more significant than a 1.1.1 type release, so maybe we should bump this discussion to be spine ++ spine 2.0 or whatever and the upcoming release is 1.2.

@cengebretson
Copy link
Member

Another thing to perhaps look at for version 1.2, https://github.com/component/component. This would allow another way to install/use spine. There is bower too, but it looks like component uses commonjs for packing so it should be fairly easy to support.

@adambiggs
Copy link
Member Author

@cengebretson Personally I lean towards Bower since we use it for our projects and it has a bigger community. Plus @maccman is one of the Bower authors 😉

@cengebretson
Copy link
Member

I honestly haven't dived in to deep into javascript package managers for the client side. But I like the idea of providing alternative methods for downloading/using spine. The part that looked interesting to me using the component method is that it could potentially allow a user to install different parts of spine (probably would require some code restructuring).

Say for example somebody wants to use the controller part of spine without needing to use the model/event code, they could just install the controller component (and probably have some other way to model data). Overall it seems like spine could have several components: controller, model, routes, and manager that could exist on their own independent of the other.

But maybe in real world cases developers wouldn't do this, just thought the component model is an interesting approach/idea to be able to pick and choose the pieces you wanted...

@johanlunds
Copy link
Contributor

Perhaps investigate implementing the controller release feature explained by Alex in http://blog.alexmaccaw.com/jswebapps-memory-management.

@adambiggs
Copy link
Member Author

Not that this is an official roadmap or anything, but I just removed AMD support from the list.

Took a stab at it a while back, and found that AMD didn't like it when models dynamically required related models... Along with some other more minor issues.

Given that ES6 modules are coming natively, It's probably best for people to use Browserify or wrap Spine in an AMD shim as needed until the dust settles.

@aeischeid aeischeid changed the title General ideas for Spine v1.2 General ideas for Spine version $Next Jun 25, 2014
@adambiggs
Copy link
Member Author

Just removed the item about refactoring tests. This would end up being a lot of work without any tangible reward...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests