I just started school again yesterday, so I'm trying to cram as much coding as I can before my class "gets real".
It has been so hard not to start on Clay 2.0... I don't understand why I can't just finish something before I move on to something else. On a lighter note, I've decided the best way to document Clay is from within. One of the plugins I hope to have implemented by the July release will be a built-in help system that pulls data from a git repository. The source may change as Clay evolves, but I thought that would be the best way to build up documentation and not have to release a new version just to update docs. Other developers, if they exist, will be able to push their docs into the repository and keep them up to date as well.
Plugins are an important feature for Clay 1.x and will enable a lot of expansion and changes. They are a stepping stone between the Services feature now provided and the future Data Objects model, planned for Clay 2.0. Even though Clay is just now approaching a 1.0 release, the code base has had a long development life span and this is an evolutionary step toward a new Clay.
Originally, I had planned to implement this functionality as an application that used the Services feature. As I looked forward, I realized a move away from Services would provide a better upgrade plan. The goal is to move all of the Services functionality toward plugins, for Clay 1.5, which will then move on to Application Data Objects when that feature is implemented for Clay 2.0.
Oh well, Hooks now...Data Objects in September ;)
For Clay 0.9.20 (June), I hope to finish implementing the Hooks system and have the upgrade functionality working in the Installer. I also have quite a bit of documentation to write, so I'm hoping some of that will be done as well. Beyond that, I plan to try to finish as much of the started-but-not-finished apps as possible. If I can add an app or two, then I'll be happier, but finishing what's started is a key goal for this release.
I hope for Clay 0.9.30 (July) to mostly be about performance enhancements and cleaning out as much unused code as possible. I have so say there are a few areas I'm not happy about performance, particularly in the Dashboard.
Now that I have this site running, I will begin building Clay-Project.com. I had hit a roadblock with some issues, which is why it is not online yet, but those were fixed in the Clay 0.9.15 release.
I've also changed a few things around on the server, so upgrades should be more frequent and I will generally try to keep the latest version of Clay running here.
This is a supplemental release to correct some issues in 0.9.10. It can be downloaded from https://docs.google.com/file/d/0B-s8BlKebPhqd1BVSGxRUy13SFU/edit?usp=sharing
Leave feedback in the issue log for this release: https://github.com/clay/clay/issues/9
Any bugs or feature requests should be reported as their own issue on GitHub.
I've decided to add a release to the Road Map. This will be a supplemental release to fix some critical problems that are in the 0.9.10 release. Several privileges and user bugs prevented Clay sites to operate correctly, which also prevented me from opening up clay-project.com and upgrading this site.
The supplemental release will be come tomorrow, 29 May, and will be 0.9.15 (Clay 1.0 Beta 2). Clay 0.9.20 is still scheduled for 21 June and has been changed to Beta 3 on the road map.
You can download or clone the latest version of Clay from our GitHub repo: https://github.com/clay/clay.
I'm happy to annouce the first official release of Clay. The official web site is not yet online, but it will be coming soon.
This release is considered Clay 1.0 Beta 1, but labeled 0.9.10 for tracking purposes. Visit Clay's Github repo. While documentation is scarce at the moment, it is a key focus of development between now and next month's Beta 2 release.
Clay 0.9.10 (1.0 Beta 1) is scheduled for release on the 17th of this month, just a few days away. I've been pushing in bug fixes that crept in from me not using Linux for a while. I've been testing on this server using the deployment of Clay-Project.com as my test bed. Clay-Project.com will also open up on Friday.
This first release is kind of bare, in terms of content applications, but it is mostly for testing installation and configuring. Likewise, next month's release will be for testing the upgrade process. Along the way I will be adding some applications. I've been trying to finish the Pages app, for Clay-Project.com, and the Menu service will follow closely after that. Not all applications in the repo will be released, but are available from the master branch of course. The first release may only have the Vision theme, depending on how much time I have between now and Friday. The Vision theme will also be featured on Clay-Project.com, as well as here once I have this site migrated to the release version (probably by the end of the weekend, if not sooner).
It's been a long time coming, but it's looking like I will finally have a first release. Hopefully the forward momentum and a little publicity will bring in some users and maybe even some developers. More to come, but as of now the 17th looks like the day.
I'm currently working on updating the site to the newest version of Clay. I've run into some problems that have been caused from using Windows and not having a test environment on Linux lately. I'll hopefully get those ironned out today.
I'm going to launch a test site for Clay-Project.com and then I'll migrate this site over to that code base, once I know everything is working.
There's shouldn't be any downtime for the update, but consider this a heads up just in case.
Not the IDE I talked about earlier, this one is in my house :) I've been setting up virtual machines on my laptop to use, instead of testing everything in Windows. I also have 4 Raspberry Pi's that I will be using for various server needs in my house, but I haven't started that part yet. My goal is to eventually use only the Pi's for testing and just write the code on my laptop. But, I'm also using all of this to test for scaling and different ways to set up servers for various purposes. Developing on Windows is kind of limiting and I hadn't realized that until I began contributing to some other open source PHP projects here lately. Eventually I plan to move the VM's to a desktop and stop being so mean to my laptop, but my desktop is currently down for the count.
I've been pushing forward with Clay's new release cycle and planning the development path toward Clay 2.0. In about a week I'll be releasing the first public download of Clay and continue prepping for the 1.0 release in August. I mostly consider 1.0 to be finished, it needs documentation and a few important application features, but at this point I'm more concerned with a stable core than features that can be added at any time. With that being said, I plan to round out some of the major needs before August and plug in as much as possible during the monthly release cycles from there out.
Looking ahead, I have some really nice plans for Clay 2.0 and 2.5. It's difficult not to dive in and start making changes, but I'm going to spend a lot more time planning this time around. My hopes for Clay 2.0 are to strengthen the way applications interact and build in several things that will improve Clay for the user and the developer. The biggest addition being, of course, for the developer. The plan is to build in an integrated development environment (IDE) that will act as a development and project management tool.
Clay's IDE will be based on an existing web-based IDE or system and I haven't decided yet how much I went integrate it into Clay's core or if I will try to keep it as native as possible. What I would like is an IDE that can be used to write and edit code on the server side in a sandbox, deploy a test version when needed, and then deploy a live version to be public on the site. It should be able to support multiple hosts for deployment and a patching system for rolling out updates. The IDE should support Git and be able to do all of the main functions of a Git client. It should also have project management features, such as shared tasks and collaboration.
One of the key components of my desired IDE is the ability to manage multiple projects that are local or remote. I'm not only doing this to help Clay's development, the idea is to have a project management environment built into a web site that can be used for anything. But, with that being said, the IDE should provide a strategic advantage over other systems and allow site migrations and upgrades to be done nearly entirely on-site. I know a lot of CMS' are beginning to build in more editting tools for the server side code, but the goal for Clay 2.0 is to make local development obsolete and to provide the ability to write the code on the servers it will be used on.
For Clay 2.5, I want to take development to another level and provide a way to create applications and themes from within the Clay, without having to write a majority of the code behind them. Using wizards and user input, the user should be able to build an application or theme from their web site and use the IDE for editting as needed. A built in package manager will allow users to share apps and even use eachother's apps as templates when creating new ones.
Well, those are some of the plans I have for Clay over the next year or so. There are a few other things I want to do, but I've mentioned a lot of those before or should probably keep a few surprises at least.