Author: James Nylen

I'm an American software developer with over 18 years of experience working with code. I like to keep software projects simple. They naturally tend to get complicated, but it helps to deeply understand and plan what we're working on.

ClassicPress Development Update

Curious about the current state of ClassicPress?

We released stable versions 1.0.0 and 1.0.1 in March, and they are still actively providing a production-quality alternative to WordPress for over 1,600 active sites. Since then, we’ve been planning for the next versions of ClassicPress, and we’re here for the long term to ensure the success of ClassicPress as an excellent option for business and professional-quality websites.

ClassicPress is produced by volunteers, and building and launching a new release is a time-intensive endeavor. Many of the key people involved (myself included) have been focusing on our existing businesses and clients since our initial release in March. We are passionate about ClassicPress and about keeping it free for all users, but none of us are currently in a position to dedicate 100% time to ClassicPress.

Short-term

Right now, the development team is working on ClassicPress 1.1.0.

The target date for this release is Wednesday, July 24, 2019. We’ll be updating our GitHub milestone regularly as we prepare for the release – feel free to check in there or in the #corechannel in Slack for updates.

The due date and exact feature list are subject to change as time and availability permit, but the current plan is for this release to contain some minor bugfixes and a couple of small new features:

Bugfixes

New feature: Site logo on login screen

More info on the petitions site.  This is a feature request that is a minor change, relatively straightforward and provides clear value to business and professional sites without the possibility of breaking sites or introducing unexpected behavior.

New feature: Security screen

More info on the petitions site.  We plan to add a new admin screen for security-related settings.  In the future this will be the place to opt-in to new ClassicPress core security settings, and also the standard place for ClassicPress plugins that have a few security-related settings (we expect larger plugins will want to keep their own screens which is fine too).  This will provide a clear place for both users and developers to find and manage basic security-related configuration.

Long-term

Beyond the upcoming release of ClassicPress 1.1.0, we’ve started planning for the ClassicPress plugin directory which will allow us to execute the version 2 roadmap of moving some less-used core features out into plugins. This is a large project that will coincide with the release of ClassicPress version 2.0.0, currently planned to be released by the end of 2019.

Current status is best reflected in the plugin directory subforum, in particular the specification thread.  We’ll post updates and major milestones here as they occur.

Note, we will not be hosting plugin files ourselves (like WordPress.org does), we will only be indexing plugins that people submit to the directory. This is why we use the term plugin directory instead of plugin repository.

Plugins will be hosted on GitHub and potentially other git providers like Gitlab, and ClassicPress will build a service to allow finding and installing plugins registered on our directory.

The architecture of the plugin directory will be roughly split into 3 components:

  • A website that allows browsing the available plugins and submitting a new plugin.
  • The client code that lives inside ClassicPress core. Most likely a separate tab in the plugins installation section.
  • The backend APIs to support searching, installing, upgrading, etc. The architecture will likely be similar to our existing update API, using static JSON files that are regenerated as needed.

More details will be forthcoming as the implementation gets underway, and for now, good places to ask questions are in the plugin directory subforum or in the #plugins channel on Slack.

ClassicPress 1.0.0-rc2 is live!

Today we’re excited to announce the release of ClassicPress 1.0.0-rc2, available immediately.

Here is a list of the minor changes in this release, as compared to our last one, 1.0.0-rc1:

  • Remove files that were accidentally included in rc1
  • Avoid duplicated rewrite rules (WordPress and ClassicPress) in .htaccess after migration
  • Remove WP-only themes features, continuing from changes in rc1 (details)
  • Add some explanatory messages for the default themes, since both parent and child themes are included (details)
  • Use a consistent header for all About tabs in the dashboard (details)
  • Fix a PHP notice in the dashboard petitions widget (details)

Next steps

Testing is critical during the RC phase — if we have any new bugs in ClassicPress 1.0.0-rc2, we need to know now so that we can get them fixed before the final release!  Otherwise, the final release will be out on Tuesday, March 5, as previously mentioned.

We invite you to put your new or existing ClassicPress sites on rc2 as soon as possible, and let us know if you see any issues, especially with regard to any of the areas that we changed.

For more information, including links to download the release, installation instructions, and a more specific list of changes, please see the release announcement on our forums.

ClassicPress 1.0.0 Release Update

Thanks to careful testing and reporting from our users, we’ve become aware of several minor issues with last week’s 1.0.0-rc1 release.  None of these issues will affect the functionality of new or existing sites, but they are still worth fixing:

  • wp-content/languages/es_ES files were accidentally included in the release (details)
  • wp-content/plugins/classic-editor was accidentally included in the release (details)
  • We removed the “favorite plugins” feature linked to a WP.org account, but not the corresponding “favorite themes” feature (details)

There is also one other minor issue that was not new to 1.0.0-rc1:

  • .htaccess gets 2 sets of rewrite rules (WordPress and ClassicPress) after migration and re-saving permalinks (details)

In light of the above issues, we’ve decided to release version 1.0.0-rc2 (release candidate 2) with the fixes.  This release will happen on Wednesday, February 27, and we’ll also update our release procedures to prevent extra files from being unintentionally included in the future.

The new target date for the 1.0.0 final release is Tuesday, March 5.

ClassicPress 1.0.0-rc1 is live!

Today we’re excited to announce the release of ClassicPress 1.0.0-rc1, available immediately.

We have now left the “beta” release stage, and we are one step closer to a full, stable release that will serve as our foundation for many more future releases.

Here is a short list of the most important changes in this release, as compared to our last one, 1.0.0-beta2:

  • Finish porting changes from WordPress for PHP 7.3 compatibility.
  • Remove most links to WordPress.org and features that use WordPress.org accounts.
  • Fix any known bugs that are new to ClassicPress.
  • Miscellaneous other “polish” such as better organization for new files and improving the experience around ClassicPress installation and default themes.

We need your help!

Testing is critical — if we have any new bugs in ClassicPress 1.0.0-rc1, we need to know now so that we can get them fixed before the final release!  We invite you to put your new or existing ClassicPress sites on rc1 as soon as possible, and let us know if you see any issues, especially with regard to any of the areas that we changed.

For more information, including links to download the release, installation instructions, and a more specific list of changes, please see the release announcement on our forums.

ClassicPress core development update

Current status of ClassicPress v1

It has taken us longer than we originally planned to get the final, official ClassicPress 1.0.0 version released, but we’re making steady progress. I’m providing a quick update from the core development team so that everyone remains aware of the current status of the project.

Right now, ClassicPress is in stable beta status and it is safe to use it on your sites. We started our fork from the WordPress 4.9 branch, and we have not and will not be making any changes to the platform’s core functionality in the version 1 release series. (You can find more information about our medium- to long-term plans for the platform on our roadmap page.)

What’s still left to do for v1

We’ll release the final version 1.0.0 when we’ve replaced or removed all WordPress-specific functionality from the ClassicPress dashboard and addressed all known bugs. Roughly, there are a few categories of changes we’re still looking to complete in the next few weeks:

  • Finish porting changes from WordPress for PHP 7.3 compatibility.
  • Remove most links to WordPress.org and features that use WordPress.org accounts.
  • Fix any known bugs that are new to ClassicPress.
  • Miscellaneous other “polish” such as better organization for new files and improving the experience around ClassicPress default themes.

For an up-to-date list of specific tasks remaining for the release, see the v1.0.0-rc1 milestone on GitHub. If you see a task there that you can help us with, please jump in!

After these tasks are completed, the v1.0.0 release will come in two stages. First, version 1.0.0-rc1 (release candidate 1) will be made available for testing for about a week. Then, if there are no new issues, we’ll release ClassicPress 1.0.0 with essentially the same code.

Updated launch dates

We are currently targeting Wednesday, February 20, 2019 for the 1.0.0-rc1 release, and Tuesday, February 26, 2019 for the 1.0.0 release.

These dates are a current best estimate, and they are subject to change if absolutely necessary.

If you’d like to help push ClassicPress over the finish line, please take a look at the task list on GitHub. Feel free to ask questions there on the individual issues, in the core development forum, or in Slack.

What else is going on

We all knew when we got involved with ClassicPress that successfully forking WordPress would be a huge amount of work. That is still very clear (perhaps even more clear) after many valuable contributions from ClassicPress leadership and community members, not just in core development but also in many other areas.

To point out just a few: marketing, design, internationalization, technical infrastructure, organizational structure, ClassicPress-first plugins, keeping our community running smoothly including an active support forum, and many other activities that are helping to make ClassicPress the best CMS platform for business and professional-quality websites everywhere.

Upgrade your site to 1.0.0-beta2 now!

We’ve just released ClassicPress 1.0.0-beta2, a security release.

If you’re still on an older version of ClassicPress, we recommend that you update your site(s) as soon as possible.

Since we are still in the beta release period, you’ll need to update your sites manually.  Log in to the ClassicPress dashboard, and under the Dashboard menu item, select Updates.

You should see a prompt to update to the new version:

Click the blue “Update Now” button to complete the upgrade.

The changes in ClassicPress 1.0.0-beta2 are pulled from WordPress 4.9.9, which has the same security fixes as WordPress 5.0.1.

We’ve also fixed all known cases of an issue where certain security scanners were incorrectly detecting ClassicPress sites as WordPress 1.0.0.

You can find more information or download the full release on GitHub: https://github.com/ClassicPress/ClassicPress-release/releases/tag/1.0.0-beta2

As always, we’ll be around if you need any help, just make a new thread on our support forum.

Project management planning: initial meeting

Today a few of us had a Zoom call about our strategy for project management in ClassicPress, including how we can better organize our open issues list to reflect progress and show others where they can contribute.

As always, remaining to-do items from this meeting are marked in green.

Thanks to Patrice Embry for joining us and helping us plan our project management strategy, with the goals of making it easier for people to see what state the project is in, while not adding too much extra work for developers.

We started by looking at an issue on the APIs repository and its linked issue on the ClassicPress repository.  We decided that neither of these issues was actionable as-is, so I’ve closed them both with a progress update and split out remaining items into smaller issues.

We also realized that we need better organization and discoverability for our project board.  If you’re on the main ClassicPress repository, the “Projects” tab used to say “0 Projects” because the project is actually under the ClassicPress organization (one “level up” on GitHub).  This is good, because it allows us to accumulate tasks from multiple repositories into the same board, but it wasn’t very easy to figure out what was going on.  For now, I’ve added a “dummy” project board that just links back to the real one:

Patrice volunteered to write up a proposed workflow for working on GitHub issues.

Once we have something written up for this, we’ll put the guide on docs.classicpress.net as part of a larger guide for contributing to the project.

I went through all open issues on the ClassicPress repository and assigned a milestone (v1.0.0-alpha1, v1.0.0-beta1, or v1.0.0) to most issues, and all the rest either have an “action label” like close (recommend for closing), or a request for clarification or next steps.

On the project board, Patrice will split the “To Do” column into “Backlog” and “Current Sprint” so that we have a better view of what is actually up next (what we are currently focused on). The items in “Current Sprint” should be pretty closely correlated with our “current” milestone. We’re not planning to use a strict scrum-like sprint structure, but the “Backlog” vs “Current Sprint” split on the project board can be updated approximately every 2 weeks.

This is a volunteer project, and I’m sure that our project management strategy will continue to evolve.  Please join us in Slack to help!