A proposal for changing the WordPress versioning scheme

History

Currently, WordPress uses a incrementing numeric versioning system. XX.YY.ZZ could be read as ma.jor.patch which means version 4.8.1 can be read as version 48.1.

At the 2017 community summit, someone suggested that as WordPress project moves towards 5.0, that after 4.9 the versioning system should switch to semantic versioning by multiplying the versioning number by 10. This would mean the next version number after 4.9 woudl be version 50. The idea was shot down because if an end user is on 4.9 and then all of a sudden see the next version of WordPress was version 50; they would wonder where version 5-49 will freak out.

Proposal

I propose that at the point of 4.9 we switch to semantic-like versioning.

Semvar is designed to be

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes,
  • MINOR version when you add functionality in a backwards-compatible manner, and
  • PATCH version when you make backwards-compatible bug fixes.

Since WordPress has a don't break backwards compatiblity mentality, it would not make sense to follow the Semvar 2.0 spec.

Instead I propose something similar but in WordPress terms.

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR – New Feature : when there is a major feature change,
  • MINOR – Bug Fixes : when you add scheduled bug fixes in a backwards-compatible manner, and
  • PATCH – Security : when you make security fixes in a backwards-compatible manner.

It would mean that 4.9 is a minor changes from 4.8 and does not require any major feature releases. It would also mean that until there is a major feature change, version numbers can keep increasing as minor updates. This would mean until the next major feature drop, bug fixes and gardening releases can be scheduled in a timely manner in versions 4.10.0, 4.11.0 etc release cycles.

It would also mean that we can wait till a large feature drop before upping the versioning number to 5.0 and then from then onwards any major feature drops or breaking changes can pulled into the next major versioning number.

Notes

  • After throwing this idea around with a few developers to see what the inital reaction would be, some developers have asked whether it would mean that we would never get to 5.0 because *major = breaking changes*. I disagree that a major release has to be a breaking change. From my understanding of semantic versioning methodlogy, we should be able to define what `major`, `minor` and `patch` means to the WordPress team and run with that.
  • I know this is a far-fetch idea that will not be popular with many people, but if we were ever going to switch versioning number, I think this is a realistic method of doing so. Doing it now would mean that we don’t have to wait till WP5.0 before any more minor releases come out.
  • I am sure there are many flaws in this idea that some people who are way more clued up with the WordPress versioning and rollout process can point out. Just remember its a proposal/ idea/ a dream. I’m ok with it staying just that.
  • WordPress is not the only popular piece of software not on Semvar and it seems to be developers who care about the software versioning system of the project.
  • If you want to read up more about different software versioning systems: Wikipedia is your friend.

 

Stage Fright

Last week I did the opening keynote for PHPUK.

It’s not the first time I have keynoted, but it is the first opening keynote.

Do I get scared?

Many people since have asked if I get scared or stage fright beforehand.

Yes, i get scared.

It doesn’t matter if I am standing in front of a user group or a conference hall full of people, I will always get stage fright. It is usually the worse the last hour before I’m due on.

My brain runs through various issues:

  • What if i am too negative?
  • What if I forget the bridging phrase / point?
  • What if I am too monotone?
  • What if I have no colour of variety in my voice?
  • What if people fall asleep?
  • What if I mispronouce someone’s name?
  • What if there is a spelling mistake I missed?
  • What if my ankle gives way on stage?
  • What if I have a wardrobe malfunction?
  • What if I am too bossy?
  • What if my laptop breaks?
  • What if I drink some water and spill it on my laptop?

So on and so forth.

I don’t think these worries have gotten better or worse over time. The most I can do is control as much of it as possible.

Someone once told me that

No one wakes up wanting to see you fail.

This is open source community. From everything I have experienced in the last 8 years in this community, people are always cheering you on to do your best and are cheering you on to be your best.

So as long as i try my best, do my best, I’m ok accepting that stage fright is part of the parcel for me.

Controlling Stage Fright

There are a few things i do to control my stage fright and not let it run a drift.

Hopefully this will help you:

  • Have a USB copy of the presentation  with font files and images in Keynote, PPX and PDF.
  • Have a public dropbox folder of the presentation  with font files and images in Keynote, PPX and PDF shared with the organisers, yourself, and a friend in the room.
  • Test out the wardrobe choice on a night out with friends. If it passes a fun night out with friends where you are more likely to be moving around, it will be fine on stage where you don’t move around so much.
  • Break new shoes in. I tend to go on a trip with new shoes and walk a lot to break them in.
  • Have backup batteries for your clicker in the bag
  • Go to tech test early.
  • Have a version of your slides with a white background and a version with a black background. Depending on how bad the projector is, you can switch colour contrast quickly.
  • Have versions both in 16:9 and 4:3 because seriously the effort v the stress isn’t worth it.
  • Do not change slides on the day unless you REALLY have to. People will not miss one extra meme.
  • Set a run-though date with friends a week a head of time to :
    1. Force me to have a draft version of my talk  “ready”
    2. Give you feedback where it doesn’t flow and help you tweak the talk.
    3. Remember to write down the feedback
  • Video your practise runs. It means you can go back and write down that cool phrase you just made up which helped bridge two parts together as speaker notes.
  • Practise in front of people who don’t care about the content is useful. I found they tend to concentrate on your speaker style and point out things that are nothing related to the content.
  • Ask someone you trust and knows the subject to review the content.
  • Always leave a caveat and be honest if you are uncertain about data.
  • If my talk is in the morning, I have a super big dinner the night before. I know I will not stomach anything in the morning so i just eat ahead of time. Also I carry snack bars so I can eat straight after I come off stage.
  • Turn off the air con in the hotel room, and wrap that neck up! I find air cons dry out my voice and my voice breaks easily if its cold so i wear a scarf to stop that from happening. Airplane air cons are just as bad.
  • Know where the bathroom is so you can do a last minute bathroom run.  Nothing like drinking lots of tea to warm up the voice and then needing the bathroom 🤭
  • Whether you submitted to a CFP or got a invite, the organizers of the event are the people who curated the schedule so trust them. They thought your talk was interesting enough to put on stage.
  • Have a playlist of your favourite tunes and stick your headphones on and forget the world. I find that I have far too much adrenaline before i go on stage so if I can, I spend a bit of time before my talk where I  stick in my headphones and listen to a playlist I have saved offline.  I find I only really get through the first 5 songs at most so make sure the first song is one that ground you! This is my go to  playlist:
  • The talk is only going to be [ Insert session time amount here ]. In a year/ life time that is going to equate to a very insignificant amount of your time.
  • We’re not performing heart surgery.
  • You’ve got this. 

Hello SiteGround!

Today I’ve move my hosting to something I’m going to maintain myself again.

It’s been a while since I bothered to actually deal with any hosting providers of any sorts.

Work has a servers team, and beforehand all my personal sites have been hosted on my partner’s server. Both these things were making me insanely lazy when it came to caring about hosting and running a site.

I figured it was making me rusty and out of touch with what people have to deal with.

I’ve not seen a cpanel in such a long time! It hasn’t changed a bit! Still the same ugly 90s icons. It’s like a little time warp.

Moving server I decided to build teh site from scratch.

Things i did :

– use wp auto installerto install a multisite setup using sub directories. ( It didn’t give me a choice )

– forgot to save the admin password that was geenrated so ended up adding ssh keys to be able to  ssh into the box via terminal and use wp-cli to update the user’s password.

– Set up domain mapping plugin

– Use https://casabona.org/2016/12/migrating-wordpress-multisite-from-media-temple-to-siteground/ to understand how to set up domain mapping for domains registered on Gandi and the site hosted on SiteGround. The article details how to do it for a site being moved, but in my case, everything was from scratch.

  • There was some notable doh moments.
    • Wasn’t sure if Let’s Encrypt is a domain issue or a hosting issue – It’s hosting.
    • Needed to create a Let’s Encrypt Cert for every domain. There is a Cpanel icon to do just that; keep scrolling down in Cpanel to find it.
    • Set up DNS records on the domain registar to point to SiteGround
    • use cpanel’s <code>add-on domain</code> to link the domain hosting to the WordPress installation of the primary site
    • SSH key password doesn’t seem to like the auto generated passwords that i created with 1password. I suspect there was a symbol i needed to escape but i couldnt be bothered so just used the built in password generator in SiteGround’s SSH Key generator to get a password it would be happy with and saved it to 1password. It seems like an obvious thing, but I’m too used to creating all my passwords via 1password.
    • Waiting for DNS to update.