Avoid sending detailed commits to the SVN Repo! - Use the GIT repository to keep the detailed history and send to SVN only the "release" commit.
EmbedPress follows the Semantic Versioning 2.0.0, which means that given a version number we have MAJOR.MINOR.PATCH. We should increment these when:
MAJORversion when we make incompatible API changes;MINORversion when we add functionality in a backwards-compatible manner;PATCHversion when we make backwards-compatible bug fixes.
- Update version on some files;
- Update changelog;
- Update branches;
- Update GitHub tags/releases;
- Generating a ready-to-install package;
- Push changes to SVN.
- Make sure that all changes were already pushed to
developmentbranch; - Define the new plugin version;
- Go to
/readme.txtand look for the line/code below. Replacex.x.xwith the new version.Stable tag: x.x.x /includes.php- Look for the line/code below and replacex.x.xwith the new version.define('EMBEDPRESS_VERSION', "x.x.x");/embedpress.php- Look for the line/code below and replacex.x.xwith the new version.* Version: x.x.x
All changelogs must follow the same format (using the Markdown syntax), which is:
= x.x.x =
Release Date: YYYY-m-d
* foo;
* another change/fix/enhancement;
* list of what have changed.
Where x.x.x is the newest version and YYYY-m-d is the release date.
There's two files where the changelog must be updated with the latest changes: /readme.txt (look for the changelog section) and /changelog.txt.
The master branch holds all released and production packages.
Once both version and changelog changes are ready and were already pushed to development, create a pull request from development to master branch.
After the pull request get approved, still on GitHub, go to Releases and draft a new release.
- Tag Version: inform the version you just launched prefixed by a
v. I.e: Let's say that the plugin was on version1.4.2and we patched something, hence the new version would be1.4.3. In this field, then, we'll putv1.4.3; - Target: for stable releases, this should always be
master; - Release Title: the same value of Tag Version;
- Description: The list (of changes) part of the version's changelog;
- Attach binaries: we'll do on the next step.
Now that everything seems to be updated:
- Copy all plugin-only files (basically the whole
srcfolder) into a separate directory (without .gitignore, etc); - Rename this "new" folder to
embedpress. All lowercased. - Compress the folder into a
.zipfile; - Rename the
.zipfile toembedpress-x.x.x.zip- where you must replacex.x.xwith the newest version; - Go to GitHub into your newest tag/release page (which you created on the previous step) and attach the
.zipfile to the form and save.
First, you must have the EmbedPress svn checked out somewhere in your machine. We'll call this local-mirror directory svnDirectory.
- Put the ready-to-install package contents (not the zip, only its content) into
svnDirectory/tags/x.x.xwherex.x.xis your release version; - Replace
svnDirectory/trunkcontents with the same files/package you just added to the tags folder; - Commit everything with a message announcing the new version, something like:
Releasing version x.x.x
Where x.x.x is the release version.