Griddle 1.0
See original GitHub issueThe Road to Griddle 1.0
Update ( Feb. 6, 2016): Griddle 1.0 pre-release docs are available here http://griddlegriddle.github.io/Griddle/next/
Throughout the 6 months or so, we’ve been working on a new version of Griddle. It’s not quite ready yet (alpha likely coming before Jan. 1, 2016) but we wanted to start communicating where we’re at with it and where it’s going.
One of the biggest things that we’ve encountered with Griddle is that we would like to enable all sorts of features without making the codebase too bloated for those that want a more minimal grid. Too often we would add new features which added additional complexity. Over time, this complexity makes it harder to quickly add new features, harder to fix bugs, harder to avoid regressions, and a bit more difficult for others in the community to jump in and contribute.
To address all these concerns, we began working on a new version of Griddle that is more modular. While the modularity doesn’t single-handedly take care of the issues listed above, it does make tackling these things easier.
New Architecture
Griddle will now exist as a series of modules:
- griddle-core - Grid state management
- griddle-render - View components
- griddle-connector - Connect the grid state to the view components
In addition to these modules, the main Griddle (griddle-react) module will still exist as an opinionated default setup for using Griddle. Conceptually, the main Griddle component will import the other modules and pass set up a default configuration.
Plugins
Another big part of the new architecture is that we wanted to introduce plugins to the Griddle landscape. Instead of having subgrid / selection / remote / editing (not yet implemented), etc support as part of the default Griddle module, these features are added in as plugins. We are currently documenting how the plugins work in a lot more detail but for now, they can be thought of as a series of higher-order components and redux reducer / action creators (please see the selection plugin for more information on how they look in the meantime).
We’ve had a lot of requests for awesome features that we would really like to see exist as plugins. Again there will be more documentation on how plugins work and how to create them in the coming weeks / months. Until then please see a couple of the core plugins.
The Road to 1.0
As noted above, we’re trying to stay mostly consistent while still introducing some breaking changes (while still establishing a nice upgrade path). To that end, we’re calling this Griddle 1.0 (obviously pre-release at this point) and are hoping to have the offical 1.0 release out sometime in the Spring of 2016.
That all said, a very very early version of these components can be used today by taking the following, exhausting steps (if it’s not abundantly clear – these components are not production ready yet 😄).
- Clone griddle-core, griddle-render, griddle-connector and griddle-test (this is a module that will be going away once we are wiring everything up inside the main Griddle component) and the various plugins listed in the organization (at the time of writing it is just subgrid and select).
npm link
all of the modules in griddle-test andnpm-install
&npm-start
everything. Runningnpm-start
in griddle-test should log that a webserver is running on port 3000.- Visit http://localhost:3000 and try out the new Griddle components (and note that there is a lot of the styling / overall polish / performance type of things that we are still working on)
As of this weekend, we’re trying to place all of the things that are left to do and not currently being worked on into GitHub issues in their various projects. Any help / feedback would be much appreciated.
The best place to discuss all this is in the comments here – or the Griddle gitter.im channel 👍
Issue Analytics
- State:
- Created 8 years ago
- Reactions:9
- Comments:39 (21 by maintainers)
is there any timeline when griddle 1 will come out?
I’m using 1.0 on several projects BUT we are trying to make sure the API is solid before we start promoting it more heavily / calling it something more concrete than alpha. I don’t have any specific timeline regarding when it will be released – currently churning on some parts of the API around plugins.