AO3 News

Post Header

Published:
2017-04-26 17:50:17 -0400
Tags:

We've sped up work posting, fixed an emergency issue with History and Marked for Later, and made about 30 other bug fixes and improvements. Oh, and the first step of our Rails update is done!

Credits

  • Coders: Ariana, Cesy, cosette, cyrilcee, David Stump (Littlelines), dense lancer, james_, Matt Sears (Littlelines), Meepu, redsummernight, Sarken, Scott, Wendy Randquist (Littlelines), ticking instant
  • Code reviewers: Ariana, james_, Naomi, redsummernight, Sarken, Scott, ticking instant
  • Testers: Alison Watson, james_, Lady Oscar, mumble, redsummernight, Runt, Sammie Louise, Sarken

Special thanks to dense lancer and Meepu, who have contributed their first pull requests as AD&T volunteers and completed their training!

Details

Miscellaneous Backend Changes

  • [AO3-4858] - To speed up work posting, we've implemented an improved version of the count caching described in Issues With Posting Works (And What We're Doing to Solve Them).
  • [AO3-4950] - On March 31, the database table where we store History and Marked for Later information ran out of rows. This meant users were no longer able to mark works for later and any works they accessed were not added to their History. We've now migrated the table to use BIGINT for its primary key, which will let us add a lot more to the table. (It took just under six hours of downtime to update all the existing data in this table.)
  • [AO3-4814] - If you tried to use the Edit Series page to add a co-creator to a series, the page would say the series had been updated even though the co-creator wasn't added. We've fixed it so the co-creator is actually added now.
  • [AO3-4966] & [AO3-4967] - While we were upgrading to strong parameters, we created some new co-authoring bugs related to pseuds. Luckily, our testers found the bugs before they ever made it onto the live Archive, so we got them all fixed before anyone had a problem. Hooray for the Quality Assurance & Testing team!
  • [AO3-4884] - We've changed the way the invitation emails are coded so our Translation team will be able to translate the text.
  • [AO3-4875] - If one of your works was imported from an archive, and you claimed it using your AO3 account with a different email address, subsequent imports from other archives would not have your name on them and would instead list the archivist as the creator. We've told it to stop doing that -- works will now automatically be transferred to the account you previously used to claim.
  • [AO3-4548] - The Docs team wasn't able to reorder existing FAQ questions, which made it a pain to add new questions to the middle of an FAQ section. We've given them that ability and improved the way translated FAQs work, so English language questions that haven't been translated yet will no longer appear in the middle of translated sections.
  • [AO3-4957] - When we updated one of our gems, it installed another dependent gem that caused 502 errors when posting a work, comment, or anything else with a < character directly before a line break. We've downgraded the dependent gem and you should once again be able to >.<
  • [AO3-4979] - Due to a caching issue, saved versions of pages could potentially be served to users who weren't supposed to see them. We've made the cache stop doing that.

Miscellaneous Frontend Changes

  • [AO3-4617] - Entering incorrect login information resulted in an error message that said in part, "Please try again or follow the 'Forgot password?' link below." We've updated the error message to be a little more direct and just give people the link to reset their password.
  • [AO3-4938] - The OTW recently got a new mailing address, so we've updated the address provided on our DMCA Policy page.
  • [AO3-4964] - We've updated our Diversity Statement to remove a reference to the location of our servers.
  • [AO3-4493] - If you subscribed to a work or series with a very long title, the unsubscribe button on your Subscriptions page would sometimes run right off the side of the screen. We've made it so the text will wrap across lines instead of stretching horizontally.
  • [AO3-4451] - Our error pages were using some very old stylesheets, which meant they weren't displaying correctly on all screen sizes. Now they should look better on smaller screens, like phones and tablets.

Tags and Tag Sets

  • [AO3-4951] - The automated task that deletes unused tags didn't get updated when we implemented the tag count caching, so it hasn't been running. We've updated it and now it's cleaning up tags once again!
  • [AO3-4954] - Whenever a tag wrangler tried to return a tag to the unsorted tag bin, the Archive would throw a fit 500 error. Now the tag will be properly returned to the unsorted bin.
  • [AO3-4931] - There were lots of processes trying to update tag nomination, which we believe was because we were not finding tag nominations using an indexed field. We've started indexing tag nominations by tag name, which we think will help improve performance.
  • [AO3-4890] - If you tried to visit the URL for a tag set that didn't exist, you'd get a blue error message that said, "What Tag Set did you want to look at?" We've made it red, like a proper error message should be.
  • [AO3-4872] - We had several lines of tag set nomination code that would cause a 500 error when they were used for non-existent things. We've fixed it so they won't show up in our error logs and will instead give nicer error messages like, "What nominations did you want to work with?"
  • [AO3-1744] - If a tag wrangler tried to wrangle a tag to a non-canonical fandom, the fandom information would disappear and the Archive would lie and tell them the tag had been successfully updated. Now it correctly tells wranglers the update wasn't saved because the fandom needs to be canonical.

Automated Tests

  • [AO3-4853] - We improved the cache-busting on our comments to help ensure our tests for comment editing pass more reliably.
  • [AO3-4940] - There was a mistake in our tag set tests, so we've corrected it.
  • [AO3-4927] - We've added more test coverage for the locales controller.
  • [AO3-4878] - We increased the test coverage for the collection items controller.
  • [AO3-4921] - The challenge assignments controller now has 86% test coverage instead of 79%.
  • [AO3-4926] & [AO3-4685] - The inbox and invite request controllers now have 100% test coverage, yay!
  • [AO3-4939] - We had some tests related to comment timestamps that would fail whenever we had the bad luck of running them just before the clock ticked over from one minute to the next, e.g. if we ran the test at 22:00:58 instead of 22:00:02. We've added a gem that lets us set the time down to the second, so now we can make sure the test has a full minute to run.
  • [AO3-4968] - The 90s are long over, so we got rid of some of our cassettes and replaced them with stubbed HTTP requests.
  • [AO3-4969] - We removed a whole bunch of unused and outdated files that were necessary for a type of testing we no longer use.
  • [AO3-4702] - A long time (seven years!) ago, we drafted some feature tests for the various autocomplete fields on the Archive, but we couldn't use them because our Cucumber tests didn't work with JavaScript. Now that we can run tests with JavaScript, we finished up those autocomplete tests.
  • [AO3-4983] - We've started using multiple Redis servers in one of our testing environments so we can spot any problems when we start doing some work on Redis.

Rails Update

A whole bunch of our controllers (and a few models!) have been hitting the gym together to make sure they have strong parameters before we begin the next phase of our Rails upgrade:

Almost all of these strong parameters issues were coded by contractors. Thank you so much to the OTW donors who made it possible!

Known Issues

See our Known Issues page for current issues.