Having concluded at 00:42 that perhaps I should stop touching things that weren't broken, I naturally spent the rest of the day building VaultPlayer 3.1.
Sort of.
I haven't actually called it 3.1 yet.
Because I've learnt things.
Collections arrived back in VaultPlayer 2.5 as a way of putting films and shows into an order that actually makes sense.
Since then they've become considerably more elaborate.
Collections can contain other Collections.
Different parts of VaultPlayer can have different ones.
There's release order.
Chronological order.
All very clever.
Administratively, however, they were fucking ridiculous.
The Collection catalogue lived in the code.
Which meant adding something to a Collection meant changing the code.
Removing something meant changing the code.
Changing an order meant changing the code.
New Collection?
Code.
Artwork?
Code.
Then deploy VaultPlayer.
This seemed like a perfectly acceptable arrangement right up until last night, when deploying VaultPlayer resulted in every title on the website becoming an Error 500 page for 78 minutes.
Suddenly "maybe changing a Collection shouldn't require a production deployment" felt like quite a good idea.
So today I built the thing Collections probably should have had in the first place.
An editor.
Collections now have their own section in VaultPlayer Admin.
I can create them there.
Edit them.
Add and remove things.
Reorder them.
Give them artwork.
Preview them.
Control where they appear.
And, most importantly:
Save them without changing the fucking VaultPlayer code.
The old hard-coded catalogue can be brought into the new system, after which Collections live separately from the application itself.
The website, TV interface, VaultPlayer Teen and VaultPlayer Kids can all read from the same managed Collection data while still showing only what's appropriate for each experience.
There's proper storage behind it.
Revision protection so two edits can't quietly trample over each other.
Artwork gets managed properly.
The existing Collections can be migrated instead of recreated from scratch.
And because I apparently haven't completely abandoned yesterday's approach to software development, there are actual automated tests around the thing too.
Then I deployed it as 3.0.10.
Not 3.1.
Because this time, before declaring a major new VaultPlayer feature finished, I thought it might be sensible to actually fucking test it.
Growth.
About two minutes later, that testing produced 3.0.11.
Thankfully, nothing was on fire.
The new Collections interface just wasn't properly respecting people's VaultPlayer colour themes.
It had its own colours.
Which isn't particularly useful when Sync lets people choose how VaultPlayer looks.
So 3.0.11 taught Collections to inherit the actual VaultPlayer theme instead.
Backgrounds.
Panels.
Borders.
Text.
Accent colours.
Even the TV version.
Much better.
And that's where I'm leaving it for now.
The new Collections system exists.
It's running.
It's being tested.
But it is not VaultPlayer 3.1 yet.
Last night I deployed something, assumed it worked and went about my evening while every title on VaultPlayer was completely fucked.
Today I've built something much bigger and deliberately not slapped the new version number on it until I'm happy it actually works.
This is what personal growth looks like.
Apparently it took $config.