Skip to content

Instantly share code, notes, and snippets.

@cadorn
Created April 29, 2015 16:14
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cadorn/6028e90c0d4d9eca514f to your computer and use it in GitHub Desktop.
Save cadorn/6028e90c0d4d9eca514f to your computer and use it in GitHub Desktop.
CreateJS 2.0

Objective

Revive active development of createjs.org to fix bugs and enable new features including wider compatibility with modern web technology and frameworks.

Background

CreateJS was originally developed as part of Midgard and has since been integrated into several CMS systems including Symfony. Work originally started in 2011/2012 but has since faded as initial functionality has been accomplished. Many bugs and wishes have been collected for CreateJS and various sub-projects and it is time to reboot this effort.

Proposal

I propose a new future for CreateJS that will see much wider compatibility and elicit new contributions from existing and new developers.

I propose to further develop CreateJS as part of PINF.Wiki which is an open source project about to be launched for the purpose of making the semantic web editable using the minimal addition of meta-data to frame web content. PINF.Wiki will go further than just making content editable by offering solutions to modify component-based application functionality as well.

I propose we:

  • Break CreateJS into several sub-projects each looking after different aspects of the complete solution
  • Develop implementation agnostic test suites for each sub-project to capture all use-cases and ensure quality/stability
  • Re-implement the CreateJS solution harness by leveraging newly packaged sub-projects
  • Implement/test CreateJS against Symfony, Zend Framework and some NodeJS stacks
  • Make it completely pluggable in every aspect
  • Add capabilities to load custom editors for content sections
  • Add capabilities to load extra metadata for editing environment when editing a content section
  • Add capabilities to manage/monitor data lifecycle for each content section, page and site changes as a whole
  • Leverage latest NodeJS & PHP-based developer tooling to allow focus on original source logic and relocate bloat into dependencies
  • Support for translating content

Workplan

Phase 1

Setup the new projects using the new tooling and port an initial implementation from the existing code projects with the aim of staying compatible with the existing CreateJS implementation and integrations.

Update integrations to use published assets from new projects.

Phase 2

Streamline codebase and break out into further components.

Develop test suites for each component and overall to capture all existing use-cases and extend with some new use-cases.

Add some new features.

Phase 3

Expand integrations with backends and other tools and evangalize.

Questions

  1. What are the lastes devtools people want to use?
  2. Which PHP frameworks do we want to support other than Symfony?
  3. Which NodeJS/JavaScript frameworks do we want to support?
  4. Which communities may be interested in contributing once the foundation is working?
  5. Who can direct attention to this initiative?
  6. Is it realistic to get assistance from Symfony and other devs once things start working and look promising?
  7. What can we do to get more traction once things are working? Who can we partner with?
  8. What else do people want to see that I have not mentioned?
@dbu
Copy link

dbu commented Apr 30, 2015

great news!

about 2) there is actually a framework agnostic createphp library that does a lot of the work: https://github.com/flack/createphp . the CreateBundle is just about integrating that library with symfony. ping me on twitter when we should test a new version of create.js with the PHP library.

@cadorn
Copy link
Author

cadorn commented Apr 30, 2015

From: https://lists.w3.org/Archives/Public/public-linked-json/2015Apr/0023.html

On April 30, 2015 01:12:03 am PDT, "Lukas Kahwe Smith"
smith@pooteeweet.org wrote:

On 29 Apr 2015, at 18:26, Christoph Dorn
christoph@christophdorn.com wrote:

I have created a summary of what I have in mind:

https://gist.github.com/cadorn/6028e90c0d4d9eca514f

I had been planning to implement something like this later this year
anyway and would use this opportunity to start with something
working and leverage existing communities to get where we want to go
faster. I am looking to get an intent to integrate from at least one
community (ideally Symfony) so we can get and keep momentum early on.

Can you elaborate further with what you mean with breaking up create.js?
Right now create.js is basically architected to be the connection
between VIE.js, various JS editors (hallo.js, aloha.js, etc) and some
“MVC” layers (atm backbone.js):
https://github.com/bergie/create/blob/master/bower.json

For me to make use of create.js I need a pure JS implementation that
abstracts the whole page-editing problem no matter in which context it
is used in. So create.js itself would turn into a virtual harness into
which actual implementation plugins like viejs and backbone, jquery
etc... are loaded.

If I am going to do this work I will make create.js compatible with not
only RDFa but arbitrarily annotated HTML and JS objects with pluggable
parsers etc... The point is if you need to make a change to a system
you can use create.js no matter what aspect you are working on. To me
create.js (and more so the new pinf.wiki) project will be a tool to
edit anything that can export some form of metadata and expose an API
for editing. One of the hurdles to get started with create.js that I
hope to remove is RDFa and JSON-LD etc... This tech is not necessary
and to me a strict subset of the general editing problem that I hope to
solve using a super easy to integrate and highly compatible solution.

What is awesome about create.js is that it is already working in the
RDFa/browser context so I have a solid starting point from which the
concepts can be generalized. To make this new approach work I will
re-architect the whole solution based on latest tech and experience to
get the most gain.

So I am not sure if it really needs additional breaking up but rather
bug fixing, some modernizations here and there and most importantly
integration with some newer “MVC” frameworks. And finally some
new features like i18n, workflows etc.

I am not interested in fixing bugs in the existing solution as I see it
as having run its course (started several years ago, many issues,
original author not available, no active contributors). It makes sense
for people already using the component to fix bugs to keep things
working but not for me. I personally would fix bugs after the reboot as
many bugs will disappear due to a cleaner (more abstracted) design. I
am proposing to dedicate at least 4 to 6 weeks to this initial effort
which will allow me to get quite far.

That being said, Symfony CMF will have a two day hackday starting
tomorrow (http://cmf.symfony.com/news/cmf-hackday-may-2015) and I
will bring this up. I am quite confident that we would integrate any
work that moves create.js forward.

My primary goal would be to KEEP COMPATIBILITY with the current
integration BUT ADD MUCH MORE that may or may not be of use to Symfony.
I believe Symfony CAN make use of the new features and would benefit
but that is less important to me than Symfony swapping out its current
usage with the new, more stable, tool. There will be plenty of
opportunity to discuss the new features more and see a fit with Symfony.

It would be great if you can discuss this more with others. Maybe we
can get buy-in from a couple of devs early on and I can get some help!
I really need someone from the Symfony community to assist at times to
ensure everything stays compatible as my perspective and use-cases are
quite different which I see as another bonus.

Christoph

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment