GSC version 1.6.0 - Dev Complete

Hey, my first developer update here! I’ll keep this thread up to date with my process on the next major update of GSC. Feel free to reply with questions or thoughts. If you have feature suggestions, add them to the Feature Suggestions area.

There are a lot of under-the-hood updates in this release, but here’s a list of what is currently in scope:

  • Change the domain name to grannysquarecolors.com (remove the hyphens)
  • Setup these forums: if you’re logged in to GSC, you will be able to post on the forums
  • Allow non-ASCII text (Cyrillic, Hebrew, emojis, etc.) and right-to-left text
  • Show clearer errors when login fails
  • Upgrade the codebase to Django 3
  • Update styling on several pages
  • Remove Yahoo login

This version was originally much bigger, but in the interests of getting it released sooner, I’ve pushed some things back. Getting this forum set up is an important step to reconnecting with y’all, the users of GSC.

I made some very good project in the final item there: upgrading the codebase to Django 3. The basic upgrade completely broke the site, and tonight, I was able to at least generate blankets again. I’ve been struggling with a couple aspects of this: minimizing the amount I need to rewrite, and updating my automated tests.

Minimizing Rewriting

For background, it’s useful to know that I wrote GSC 10 years ago, which is honestly a fair chunk of my professional career ago. :sweat_smile: I made some bad decisions in the coding process, so when I go in to make changes that might be overall minor, sometimes I hit a wall due to old architectural decisions I made. It gets harder every year to make changes, but a rewrite would take forever at the pace at which I’ve worked these last few years.

So I try to slice down updates to the smallest bit that doesn’t require me to rewrite everything. That’s difficult when the upgrade is to Django itself, the very bedrock of the application. I try to clean up the area that I’m working in as I go.

Tests

I have code-driven tests that help me ensure that I don’t break the site when I update it with new features. An upgrade to Django not only requires me to change my code, it requires me to change the tests to match, and the way tests run have changed, requiring more work. Usually keeping tests up to date isn’t too hard, but in this particular effort, it’s adding lots of time. Worth it, but cumbersome.

In the process of testing the Django 3 upgrade, I noticed that the Yahoo login isn’t working. Cool, cool. :frowning: I’ve added that to the items to fix for this version. Sorry about that, folks.

I got so much done over my time off from work for Thanksgiving! :confetti_ball:

You can always see the status of most of my work on the Feature Suggestions board. I don’t always put the most in-depth technical features on that board, but this release is pretty transparent.

Keep in mind: none of this is live yet. This entire set of features is still in development.

The last couple days of my weekend were focused on getting these forums accessible to folks who register on GSC. There are a couple components to this: email addresses and combining authentication.

In the past, I haven’t specifically requested email addresses from folks signing up to GSC, because I didn’t need it for the functionality I had. Why store personal data I don’t need, right? Services like Google automatically send it, but Facebook doesn’t. To be able to link accounts and send email notifications from the forum, though, I need email addresses. :grin:

So I’m working on an update to the flow: if an existing user logs in for the first time after this deployment or a new user signs up, they’ll be asked to enter and/or validate their email address. It’s one extra step before being able to save blankets, but it’s a necessary one.

The second part is combining the login system with the forum’s. I’ve done this work (called “single sign-on” or SSO) in my browser-based hacktivism video game Exploit: Zero Day. (If you like puzzles, you should play it!) This forum system links accounts by email address, and when someone signs in on GSC, they’ll be routed briefly through the forums to sign them in here, too.

Everyone–once they’ve signed in once after this is deployed–will have a profile here on the forums so that they can post and suggest/vote on upcoming features. After some experience with Exploit: Zero Day, I’ve learned to require folks to browse around a bit before they can post in order to keep spam down.

For another important change I got done this weekend, take a look at my "Languages and Fonts in Granny Squares post.

With my return to work after vacations and Thanksgiving, development on this version has slowed down a bit. I’m also in a phase of development that’s a little tedious and repetitive: the automation of deployment and setup of the new server. There’s a lot of “tweak a script, wait 1-5 min for it to run on a server, see if it succeeded a little more than the last time.” :smiley: It just makes for slow going.

I’ve been trying to decide when I want to roll out these changes. During the deployment, the main site will be completely unavailable for the duration. That could be 45 minutes, or it could be 4 hours. I’d obviously prefer the 45 minute window, but this stuff is difficult sometimes.

Given that the holiday season is typically a pretty busy season for crafting projects like blankets, I want to wait until after Christmas, but still take advantage of the long weekends I’ll have off from my day job. That means I’ll probably do the update on Dec 26/27 or Jan 1-3.

I’ll definitely post here and update the main site once I have a firm window set.