Version 0.4.0
See original GitHub issueToday, I’m really excited to be merging our work on the elemental-integration
branch into master.
We’re really close to releasing a major new version which will finish our transition to React for the Admin UI, and be a strong foundation for a lot we’ve been wanting to do with Keystone for a long time, including opening up the Admin UI for customisation, and making the project more modular.
Once this lands, I expect we’ll move much more quickly through the next few minor releases (0.5, 0.6, …) as we introduce new functionality and potentially some breaking changes while we refactor the project more thoroughly. Our 1.0.0 release will follow as soon as we’re ready to lock down the customisation and other APIs for long term support.
This means that master
may be unstable for a while as the new UI is finished, but getting the project into a state where it is easier for others to contribute to the effort, and for the broader community to engage with our progress is really important. Until we get through this push, PRs and issues will continue to come in against a version that we’ve really moved on from, and I don’t want to waste any of the valuable time and effort that’s being dedicated to this project.
The other change that will happen from today is we’ll start creating issues to track our progress towards 0.4.0 more granularly, and that will make more sense when the primary working codebase is the master
branch. Up to now, @jossmac and I have worked largely behind the scenes on tasks that really only the two of us are across, and I’m keen to facilitate a much broader engagement with what’s left to do. (we’ll be rearranging the milestones and issue tags a bit to better support this today as well)
There will be a new 0.3.14
release today with all the current work in master
before the merge, and we’ll create a 0.3.x
branch which we’ll continue to release from if any critical issues pop up in that version.
Thanks everyone for your patience as we’ve been working towards this huge update, and for all your support and engagement over the last two years that Keystone has been out in the world. We’re tremendously excited to get these changes we’ve been working on released, and move on to the next stage of Keystone’s development.
Once this release settles down I’ll be publishing a new roadmap for what’s to come, and outline the vision we’ve got for the future of Keystone. In the meantime:
0.4.0 TODO
This list will be replaced with individual issues as we add them, but generally the entire Admin UI and back-end support for it has been rewritten. This means many features won’t be completely working, and there’s a few things left to add. The major areas are:
- Finalising the new design (feedback please!)
- Implementing
react-router
for complete client-side routing (plus possibly a flux/etc implementation) - Creating a new
items/update
API endpoint and using it to save item changes - Finishing the Filters implementation across all the field types
- Finalising the React Fields
As a final, optional step there has been work done to centralise our Field types into a common Storage implementation. Because we’re hoping to get this in, the different file field types (local, s3, etc) haven’t had a huge amount of attention. Hopefully this can all be done but if it’s dragging we’ll just clean up what’s there and get the release out, and refactor our file fields and storage for 0.5.
This is an area I’d really like some help with so if that interests you please let me know.
Changes
We’ll be compiling a list of changes (particularly breaking changes) in the Wiki as we head towards release; please help by raising any upgrade issues you experience with your projects. Due to the scope of changes to Keystone’s front end, we’ve tried to keep internal breaking changes to a minimum.
One of the big things worth calling out is we’ve updated to Mongoose v4.x, please see the mongoose changelog for details on what that involves.
Running Keystone 0.4.0 in development
To get up and running with the new version of Keystone, check out the master
branch by specifying our github repo in your package.json
:
"keystone": "https://github.com/keystonejs/keystone.git",
Please let us know what you like, what you don’t, and any issues that you find (there will be heaps to start with, we know)
If you want to run Keystone in development mode to debug issues or help finish the new features, fork / clone Keystone locally, then run npm link
in your keystone folder, followed by npm link keystone
in your project.
Then to enable debug builds and file watching, start your project with the KEYSTONE_DEV environment variable:
KEYSTONE_DEV=true npm start
New Keystone Test Project
We have started a new project that can be used to test the various project and field configurations, and all the features supported in the Admin UI. It contains several models and init scripts that populate example data for testing against.
You can find it here: https://github.com/keystonejs/keystone-test-project
This is only a barebones project at the moment but we’ll be adding a lot of lists, fields, data and options to it in the coming days and weeks. Ideas, additions and PRs for it are more than welcome.
Complete Getting Started Guide
git clone https://github.com/keystonejs/keystone.git
cd keystone
npm link
cd ..
git clone https://github.com/keystonejs/keystone-test-project.git
cd keystone-test-project
npm install
npm link keystone
KEYSTONE_DEV=true npm start
Developing Elemental UI
The new Keystone Admin UI is built on our Elemental UI project. As the master
branch of Keystone is developed, we’ll be rapidly releasing new Elemental versions, so it will be important to keep up to date with the latest. If you experience problems with the development version of Keystone, check for an update to Elemental before looking into it further.
If you want to run against the master branch of Elemental (or make changes to that project for Keystone) you’ll need to clone it, link it and run npm watch
to build it with babel.
Following on from the guide to developing Keystone above, set it up like this:
git clone https://github.com/elementalui/elemental.git
cd elemental
npm link
npm run watch
Then:
cd keystone
npm link elemental
cd ../keystone-test-project
KEYSTONE_DEV=true npm start
Issue Analytics
- State:
- Created 8 years ago
- Reactions:9
- Comments:55 (16 by maintainers)
Top GitHub Comments
No ETA as of yet, but it won’t be too long!
@mxstbr As I see keystone already use babel to allow ES6 and react html tags in js. Typescript have all this and much more. I highly suggest to watch this video for all developers and you may change your thinking about javascript development. Anders Hejlsberg know what he is talking http://youtu.be/6wEVu_mkJjM 😃