AO3 News

Post Header

Published:
2024-03-05 19:50:58 UTC
Tags:

These eight releases feature quite a few notable improvements, including: modernizing the way we generate PDFs, making it more obvious which comments were made by guests, and fixing an issue that caused forced logouts. Additionally, we started laying the groundwork to upgrade to Rails 7.

Thank you and welcome to first-time contributors Albert Pedersen, Claire C, Domenic Denicola, isaackwatra, kwerey, leo60228, and Paul Lemus! We'd also like to thank de3sw2aq1 for pointing out two security issues.

Credits

  • Coders: Albert Pedersen, alien, Bilka, bingeling, Brian Austin, Ceithir, Claire C, Domenic Denicola, EchoEkhi, Eliah Hecht, ellieyhc, james_, isaackwatra, Ivedonestranger, kwerey, leo60228, Paul Lemus, salt, Sarken, ticking instant, warlockmel, weeklies
  • Code reviewers: alien, Bilka, Brian Austin, Ceithir, redsummernight, Sarken, ticking instant, weeklies
  • Testers: alien, Brian Austin, Chelsea Cheyanne, Claire C, Dre, Frost the Fox, Jennifer D2, Kitsune_Scribe, lydia-theda, Maine, Priscilla, Runt, Sam Johnsson, Sarken, Sveritas, Teyke, Vio, wick

Details

0.9.352

On November 18, we released a bunch of bug fixes for tests and work downloads, and changed the way we generate PDFs.

  • [AO3-5626] - When a download contained information about works it inspired, the title of those works overlapped the little "Works inspired by this one" heading, making it hard to read. We've stopped that from happening.
  • [AO3-5774] - Tag category names in downloads were not pluralized when there was more than one tag, so the information block at the top of the work would say, for example, "Character: Name 1, Name 2." We've fixed it so it will now say "Characters" (or "Archive Warnings" or "Relationships" or...) when there are multiple tags of that type.
  • [AO3-5776] - There's a note at the end of work downloads that encourages you to leave a comment. It used to use the word "author," but we've switched it to "creator," because "author" generally implies written works, and not all works on AO3 are written.
  • [AO3-6058] - Downloads and work pages had inconsistencies galore when it came to including information about translations and other related works, so we standardized things a bit and fixed a bug that could sometimes reveal the title and creator of unrevealed works.
  • [AO3-6601], [AO3-6632], [AO3-6633], [AO3-6638] - We made it so a whole bunch of automated tests that used to fail from time to time are more reliable!
  • [AO3-6625] - The table of contents for EPUB downloads didn't always work on Kindles. We figured out the problem was related to spaces in the download's filename (seriously!), so we've started replacing them with underscores.
  • [AO3-6605] - The tool we were using to flag syntax and style issues in code submissions was out of date and unlikely to be updated, so we switched to a different one that's up-to-date and has more capabilities.
  • [AO3-5629] - When we started using Calibre to create the downloadable versions of works, it had some dependencies that meant we didn't want to use it for creating PDFs. Since it no longer has that dependency, and we'd found a security issue with the way we'd been creating PDFs, we've started using Calibre for PDFs as well.

0.9.353

We had a little two-issue deploy on November 29!

  • [AO3-6611] - Autoloading constants during initialization outside configuration blocks will cause an error when we update to Rails 7, so we've addressed that issue ahead of time to make the update easier.
  • [AO3-6636] - We've started using Chrome's prefetching to load the next chapter of works, which should make the site feel a little faster for Chrome users.

0.9.354

On January 6th, we rang in the new year with a packed release! Highlights include adding the ability to filter all works in a specific language and making it easier to tell which comments were left by guests.

  • [AO3-3217] - On fields with character counters, screen readers used to tell you how many characters you had remaining every time you pressed a key. That was very annoying, so we made them stop doing that. Now they only provide this information if you ask for it by navigating to the character counter.
  • [AO3-3471] - You can now filter all the works in a specific language by going to, for example, /languages/fr for works in French or /languages/ko for works in Korean.
  • [AO3-5048] - When a collection owner or moderator changed their username or pseud, the blurb for the collection didn't always update to use the new one. Now it will.
  • [AO3-5259] - If you opened the tag filter menu on AO3 News after filtering news posts by tag or language, it would contain a messy list of duplicated tags. We've tidied it up so it only includes each tag once, in alphabetical order.
  • [AO3-6528] - If a collection owner tried to add a banned or suspended user to their collection, they'd receive a message telling them the user was banned or suspended. For privacy, we've changed the message.
  • [AO3-6533] - Works are only supposed to have one rating, but it was possible to get around that by using your browser's developer tools. Now you'll get an error message if you try to do that.
  • [AO3-6551] - We added a character counter to the CSS field on the page for creating skins and made sure it gives a nice error message when you're over the limit, rather than just giving a 500 error with no indication of what's causing the problem.
  • [AO3-6626] - Wranglers could create tags containing Chinese and Japanese commas, which was bad because tag autocomplete expects commas to indicate the end of one tag and the start of a new one. Trying to create these tags will error now, so we don't end up with unusable tags.
  • [AO3-6643] - We fixed a bug that resulted in errors when trying to sort work search results by certain fields.
  • [AO3-6645], [AO3-6646] - We fixed some occasional failures in our automated tests.
  • [AO3-5995] - The database column that indicates whether a comment was marked as spam has a rather confusing name, so we took the first step toward renaming it by adding a new column named spam.
  • [AO3-5386], [AO3-6314] - We removed some unused columns from the database tables for preferences and external works.
  • [AO3-6505] - We made some performance tweaks to how statistics and collections are fetched to show in work blurbs.
  • [AO3-6639] - We did a schema dump to capture what the current data structure looks like before we upgrade to Rails 7.
  • [AO3-6548] - Comments left by guests got a makeover! They'll now have a different icon from the default icon for logged in users, plus the word "(Guest)" will be added in nice bold text beside the commenter's name.
  • [AO3-6579] - We changed the browser page title on the Create Account from "New Registration" to "Create Account." Consistency! 🎉
  • [AO3-6609] - Checking the status of your invitation will now give you the option of having it resent to you, assuming you haven't used it yet and it was sent more than 24 hours ago.
  • [AO3-6631] - The Twitter widget on the homepage no longer worked, so we replaced it with links to where you can find us on social media.
  • [AO3-6386] - Our previews for testing translated emails weren't working right because the fake email addresses were being translated, which would sometimes result in invalid characters in the addresses. To fix that, we've changed how the fake email addresses are generated.
  • [AO3-6650] - After we added chapter prefetching in the last release, we noticed the new code wasn't always included when it should've been. We tracked down the cache block that was causing this and moved the prefetch code outside it.
  • [AO3-6653] - We updated the tool that automatically adds and removes labels on pull requests.

0.9.355 & 0.9.356

On 8 January and 11 January, we fixed some performance and security issues.

  • [AO3-6664] - We made some performance improvements to the code that handles both redirects for works imported by Open Doors and checking to make sure a URL has only been imported once.
  • [AO3-6665] - We added protocol restrictions for URLs used for the source and track elements of audio and video embeds to ensure they begin with http:// or https://.
  • [AO3-6666] - Allowing users to resend invitations (AO3-6609) was causing some performance issues, so we reverted that change until we can make the code work better.

0.9.357

We did a bit of housekeeping on January 16.

  • [AO3-6662] - The automated task for deleting unused tags stopped working, so we fixed it on production. Then we had to commit that fix to the codebase.
  • [AO3-6663] - We fixed an occasional test failure related to archivists and co-creators.
  • [AO3-6654], [AO3-6655], [AO3-6660] - Our dependency updater updated a few things we use when running automated options on GitHub.

0.9.358

On January 24, we made some changes to session cookies, which required some downtime to ensure logged in users didn't get logged out.

  • [AO3-6629] - We've switched from encrypted cookies to signed-only cookies to increase compatibility with Cloudflare. This change, combined with some work by our lovely Systems team, should reduce the number of forced logouts some users were experiencing.

0.9.359

Our February 10 release features the ability to add parent skins in the skin wizard, plus a big performance improvement for wrangling pages.

  • [AO3-6566] - The code for telling assistive technology (e.g., screen readers) that help links control the help pop-up was written wrong, so we made a one-character change and fixed it.
  • [AO3-6574] - We updated how our menu items present themselves to screen readers to match current standards.
  • [AO3-6659] - When banning a user for spam, admins have the option to delete all their creations, including collections. The list could include collections the user belonged to but did not own, which wasn't quite right. That bug has been fixed.
  • [AO3-6473] - There was some code in the Application Controller that wasn't used, so we got rid of it.
  • [AO3-6651] - We've been using Rails 6.1 for about a year now, so we updated to use the default settings that go with that version.
  • [AO3-6656], [AO3-6657], [AO3-6673], [AO3-6675], [AO3-6677] - Our handy bot friend updated several of our dependencies and automated tools for us. 🤖
  • [AO3-2722] - You can now add parent skins from the skin wizard!
  • [AO3-6210] - In order to improve performance and make some nifty things possible down the line, we've begun loading the tags in the mass wrangling bins from Elasticsearch, not from SQL.
  • [AO3-6500] - Entering a URL with the HTTPS protocol when bookmarking an external work, providing a link in a challenge prompt, or setting a header for your collection will no longer result in the protocol getting changed to HTTP.
  • [AO3-6572] - For troubleshooting and anti-abuse purposes, admins can now see exactly when a user blocked or muted someone.
  • [AO3-6637] - Remember release 0.9.353, when we started using prefetching to speed up chapter loading times in Chrome? Well, now we've moved on to an even newer and faster way of doing the same thing: prerendering!
  • [AO3-6640] - With each new version of Ruby on Rails, there are new default configurations for how things work under the hood. We still had some old ones set, so to prepare for upgrading Rails, we removed them.