CL Simplex

Tuxedo 7.0.1 Released

Tuxedo 7.0.1 Released

We are proud to release Tuxedo 7.0.1! Between version 7 and the first patch release, we have the two largest releases we have ever done. While this is a very large release with a lot of changes, there aren’t really any new features - that’s why the version is 7.0.1 instead of 7.1.0. This post is actually more philosophical in nature as the changes in the past two version have been mostly due to shifts in our software development philosophies.

Tuxedo 7!

We’re at version 7! Version 7 is a giant, backwards incompatible refactor. I could write a blog post just for version 7.0.0, but since version releases are super boring, I’m putting both together here. All projects on our platform have been updated to version 7.0.0. Version 7.0.1 rollout is still underway.

Philosophy of Coding: Patterns

I’ve been thinking a lot of patterns and structure lately when it comes to code. Even if two pieces of code perform different tasks, using similar patterns will help other developers in your team recognize your intentions. It also makes it easier for me to remember what I was thinking when I last worked on a sub-system!

Philosophy of Coding: Shared Resources

I feel that simply recognizing patterns and being more explicit in how I shape my code has taken my kung-fu to the next level. While I have thought about code as a shared resource between people for a short while now, as I am no longer the only one looking after our projects I find myself spending a lot more time thinking about making it easier to share.

Philosophy of Coding: Location

I’ve also started to think more about where the code should belong. The location of things adds context and will eventually allow our developers to find things they need faster. We haven’t really swept through our code in this fashion yet - but once I get an idea in my head it’s only a matter of time...

QA: Unit Testing

We have essentially rewritten major portions of the system to be more testable. Metaphorically speaking, imagine our software is a series of essays. Some of the essays were large blobs of text with little formatting. Now we have broken up more of the essays into paragraphs and bullet points. They contain the same ideas, but now they are a bit easier to digest and look through. To give you some perspective, we went from roughly 5 unit tests in our Tuxedo package to 80 with more on the way. This does not include the hundreds of integration tests we include with our projects.

Our previous stability rewrites have really paid off, as when we performed this rewrite we had a lot of expected behaviour we could depend on to create test cases. You would be surprised how much we were able to simplify the system once we started adding tests and thinking about the structure of the application (versus worrying about only the functionality and our ability to extend the functionality.)

QA: Improved Loading

Under this refactor, the load time for our Analytics dashboard got cut from 10 seconds to under 1 second. Being able to reduce load times by an order of magnitude is a huge win, and also is a humbling reminder there is always room for improvement. The Analytics dashboard is much less monolithic (code pattern - it’s not one giant file anymore), easier to understand, and easier to test.

QA: Longer Release Cycles.

Our system is pretty mature now. This is not to say we don’t get bugs. Everyone does - and we are always attacking, preventing, and fixing bugs (something I spend a LOT less time doing these days.) We have a lot of opportunity to shore things up a bit more, but the point is that updates and large system releases are going to be fewer and farther between. Where previously we could release two major versions in a week, we are now looking at weeks between even patch releases.

This patch release included over 3000 new lines of code, and close to 1500 lines removed. A lot of these are lines of documentation and test cases. This release took about two weeks to build, test, and verify before release. I almost lost a chunk of work to data corruption, but that’s one of the many reasons why we use version control!

Tuxedo: Application Management

I consider the 7.0.0 and 7.0.1 releases to be my finest work to date as a software developer (my Magnum Opus so far.) The platform we have built have given us a lot of useful advantages when building custom software applications for our clients. This is not a wordpress competitor - it’s not even a content management system, Tuxedo is a meta-framework/application management suite that allows our developers to iterate on the project while Tuxedo provides useful convenience functions and capabilities to our developers and projects.

Next: Portfolio Updates

Anyways, if you read through this whole thing you aren’t a robot - thank you for your readership and happy Monday (as of publication today is Monday!) Additionally, we have a bunch of new content coming up. We are going to be talking a lot more about the client work we have been doing. We have some really great stuff I am really looking forward to sharing! Have a great day!


Tap or click on these posts to navigate to the next or previous posts.

Post Series

This post is part of a larger series. Tap or click on a post to view more in this series.