Item Versioning

There are several different methodologies on software versioning and the AppThemes team uses the popular method, Semantic Versioning (aka sequence-based) which we’ll explain below.

This makes it much easier to isolate issues when trying to debug with your customers. It will also allow them to automatically upgrade via the AppThemes Updater plugin.

Overview

Each product release is assigned a unique identifier that consists of one or more sequences of numbers. Given a version number MAJOR.MINOR.PATCH, these are the increment definitions.

  • Major Version – Significant changes in functionality such as new major features, redesign, framework, etc which could cause incompatibility with previous versions.
  • Minor Version – New minor features or significant fixes have been added that is version backwards-compatible.
  • Patch Version – Major and/or minor bugs are fixed that were typically caused by the previous MINOR or MAJOR version.

Version Examples

Here are a couple examples as to how we’d release new product versions.

  • Major release – ClassiPress 1.0.0, Vantage 3.0.0
  • Minor release – ClassiPress 1.1.0, Vantage 3.1.0
  • Patch release – ClassiPress 1.1.1, Vantage 3.1.1

Further Details

The biggest degree of separation for a release is a major release versus a minor release.

A minor release is generally small in the scope of code it changes. Minor releases should not include any changes that require action on the part of the customer. Generally this means bug fixes or small enhancements. This limitation allows us to publish minor releases frequently because they can be applied without other code modifications.

A major release contains everything else. Feature changes, breaking changes to the API, and any other changes that require action on behalf of the customer. While we attempt to make upgrades as painless as possible, major releases allow developers the flexibility to require change on the part of the customer to further the product’s code base.

Other Release Types

Alpha

Alpha software is very unstable and/or lacks major features. For example, right after releasing Vantage 1.2, the version should be bumped to 1.3-alpha.

Beta

Beta software should be stable enough for internal testing. It does not need to be feature complete. There can be several (internal) beta releases:

Files generated prior to releasing beta to the public

  • Vantage 1.3-beta0.1
  • Vantage 1.3-beta0.2

Files generated for releasing beta to the public and after

  • Vantage 1.3-beta1
  • Vantage 1.3-beta2

Pre-beta release includes preparing files for internal review, internal testing, Marketplace Seller access prior to beta and more.

We strongly encourage the use of a cloud-based version control solution. We use Github but BitBucket is fine too.

Popular Add-ons

Mailchimp for ClassiPress

Add users to you mailchimp list on registration or on purchase of…


(3)
$19

OpenAI Tagger

Plugin looking for items without tags, and generate them using an AI.…


(1)
$39
cp iLike

CP iLike

The CP iLike plugin allows your users to "Like" blog posts and ad listings.…


(1)
$12