1.0-alpha1 Release Notes
This is the first non-internal release to our early access backers. It is the first alpha so we are neither feature complete nor stable yet but the core functionality has been implemented and can be previewed on a fresh WordPress 3.8+ installation.
Released on 27-Aug-2014.
Warning: this is an alpha release
Alpha releases are strictly for testing purposes only, may break your site, destroy your data or the whole planet. Never use in production, with production data or with an existing Git repository.
In this release we focused on re-implementing our original quick-n-dirty prototype code to something that we'll be able to maintain in the long term. For example, the Git commit messages now have a carefully designed structure so that we can support localization in the future etc.
Here are some of the highlights of this release:
- The core versioning functionality implemented. VersionPress is now able to properly track most of the admin and non-admin actions like post / pages updates, new comments, site settings changes, etc. We've stabilized the format used for representing the database entities on the disk and the commit message format that is used to record changes in the internal Git repository and later draw the change info messages in the UI.
- The Undo functionality: VersionPress can now selectively undo past changes to the site. It is beta-quality at the moment – works most of the time but is not 100% stable yet.
- The Rollback functionality: VersionPress can return the site to any previous state. Similarly to the Undo functionality, we consider this feature to be beta-quality in this release.
- Installation and uninstallation workflows: as VersionPress is quite an involved plugin we tried to design the installation and uninstallation workflows so that they are intuitive. For example, the standard "Plugin installed" message was amended to include a link to the VersionPress activation page.
- VersionPress admin screen created. Basically just a single table now.
Apart from these public features we have also done some important work on our internal development process. For example, we now have an automated testing workflow that utilizes WP-CLI, PHPUnit and Selenium, we have a Markdown-based system for user documentation etc. All this is necessary should our future builds be high-quality.
System requirements for this release are:
- PHP 5.3 or later
- WordPress 3.8 or later with the default
wp_table name prefix (because of a bug in the current alpha, see the Known issues section)
- Clean installation of WordPress (you can then try to install some simpler 3rd party plugins but this whole area is quite volatile at the moment)
- Git 1.9 or later (earlier versions might work but are not tested)
In our tests this alpha works in about 80-90% of cases we throw at it but the rest 10-20% is still quite a lot and you will likely encounter some kind of issue rather soon. Specifically, this has been typically problematic in our tests:
- Undo and rollback only work with the default table prefix
- Themes are not yet tracked as they should. VersionPress will currently create some commits for them but the messages are not very nice, sometimes there are multiple commits for a single logical change etc.
- Plugin updates sometimes do not report the name of the plugin correctly
- Bulk plugin updates are not tested at all
- If a post is updated twice (each time in a different way) the first change will not be able to be undone because of the merge conflict on the date modified field (most other entity types don't have this problem).
.gitfolder in the root of the site is removed even if it wasn't created by VersionPress
- The main table doesn't support paging yet so it will be limited to a relatively small number of commits
- If you deactivate VersionPress there will be no way to reactivate it and still support the Undo and Rollback operations on the older commits.