AO3 News

Post Header

Published:
2018-11-13 10:55:28 -0500
Tags:

We fixed word counts when posting new works in Chinese, Japanese, and Thai, worked on improvements for our Support and Policy & Abuse teams, and fixed an assortment of niggling bugs. A special thank you to new contributors bjohns, Lee, and Tatayafinwe!

Credits

  • Coders: bjohns, Elz, james_, Lee, redsummernight, Sarken, Tatayafinwe, Tal Hayon, ticking instant
  • Code reviewers: Elz, james_, redsummernight, Sarken, ticking instant
  • Testers: CJ Record, Danielle Strong, Elz, GoldenFalls, Ito, james_, KeepCalmAndPlayDumb, Lady Oscar, MagnusIsMyRock, Memé, Natalia Gruber, Paula, redsummernight, Runt, Sammie Louise, Sarken, Sunny

Details

Searching and Filtering

  • [AO3-5482] - Applying too many filters or search terms when looking for works (e.g. by excluding dozens of tags) would cause the search URL to throw up an error 500. It should now be friendlier to even the most discerning users.
  • [AO3-5489] - You can now sort works and bookmarks by "best match" in various places again. (It got intermittently broken after our big search upgrade and displayed things in chronological order instead.)
  • [AO3-5477] - We have removed all the old search-related code that we aren't using anymore! Hooray! \o/
  • [AO3-5388] - We also removed a database column that wasn't needed anymore. Tidiness! \o/
  • [AO3-5490] - When doing a simple search, e.g. by putting a name or phrase into the main search box, the algorithm now shows matches for creator names and work titles first, then all other items that fit the description in some way. (Reminder: Our Hidden Search Operators Cheatsheet helps you put together the perfect search.)

Challenges and Collections

  • [AO3-5382] - We used to have a workaround in place that made sure challenge sign-up summaries would display correctly, despite a fun storage issue, which we have now fixed! So you shouldn't notice much of a difference, but it's neater on our side.
  • [AO3-5145] - Claiming a prompt with no description (but a helpful title) and trying to use the "Fulfill" link to post a work for it would result in a sad error. It now lets you post the work just fine. Happiness for both you and the prompter!
  • [AO3-5551] - It was theoretically possible to access a different user's challenge sign-up, so we tightened up the relevant ownership checks.
  • [AO3-4857] - While we weren't looking, the "comments you post will also be listed anonymously" notice meant for a creator replying to comments on their own anonymous work had just... vanished. We've firmly put it back in place.

Admin

  • [AO3-5534] - For a few months, emails sent to our Support and Policy & Abuse teams never reached their respective ticket trackers if the return address included a plus sign. /o\ We have now passed along the handful of tickets that got trapped in our database because of that bug, and made sure this won't happen anymore going forward.
  • [AO3-4366] - The admin page for managing a user now includes links to the user's Add Invitations and Manage Invitations pages.
  • [AO3-5488] - We've made the paths for submitting Support and Policy & Abuse tickets more configurable, to allow for a renamed committee name in their ticket tracker, for example.
  • [AO3-5531] - Abuse reports previously got the sender's IP address attached via the contact form, which made it easier for spammers to include fake ones and flood the tracker with hundreds of messages we couldn't easily block. We fixed that, and also took care of an unrelated JavaScript bug in the form, for bonus points!
  • [AO3-5540] - The Abuse form was very strict on the URLs it expected in the input field, generating errors even for perfectly good links to user profiles. It is now more chill.
  • [AO3-5537] - We've enabled spam checks for Abuse form submissions, in addition to the checks we've already been running on the Support form.

Misc. Fixes

  • [AO3-5330] - We sometimes have to block spammers or scrapers from accessing the Archive, and occasionally these bad actors share an IP address with other rule-abiding users. We've added an error page that will let people know if they've been blocked and who to get in touch with if they believe it was a mistake.
  • [AO3-5527] - It was possible to reuse an invitation after the account that initially used the invitation had been deleted, a little loophole that was mercilessly abused by spammers and which we have now closed.
  • [AO3-2046] - The word counter wasn't working for languages that don't use spaces for word separation, such as Chinese, Japanese, and Thai. For new works, we're now counting each character (but not punctuation marks) as a word, which should be closer to what users of these languages expect. The counts for existing works will be fixed separately in the very near future! (If you only have a few works in these languages and want the correct word count at once, you can edit and save a work again to have the count updated.)
  • [AO3-5558] - We found a way to add a work to a series you were not a creator of, and added checks to make sure this wouldn't be possible going forward.

Automated Tests

  • [AO3-4638] - We updated our continuous integration platform settings to use MySQL 5.7.22, bringing it in line with the version of MySQL we use on production.
  • [AO3-4852] - We updated our specs to make sure they were all using the helper method we created for testing redirects.
  • [AO3-4913] - We brought our test coverage for the challenge sign-ups controller up to 92%.
  • [AO3-5548] - The tests for some code related to admin posts weren't running because they were in the wrong folder, so we moved them to the right folder.
  • [AO3-5555] - The tests for DeviantArt imports were failing because DA had changed their image URLs. We updated our tests accordingly, so they pass again.

Infrastructure

  • [AO3-5523] - Thanks to your donations, we were recently able to purchase some new servers! This means we had to update our deploy script to reflect the changes to our server set up.
  • [AO3-5373] - We've added the Dewplayer files (used to embed audio content in works) to our repo, instead of storing them somewhere on our many servers.
  • [AO3-5515] - We have removed the rubyzip gem.
  • [AO3-5553] - We updated the loofah gem, which sanitizes HTML input for us.
  • [AO3-5543] - We also updated the nokogiri gem, which does HTML parsing.

Comment

Post Header

Published:
2018-08-28 14:15:58 -0400
Tags:

We've improved the handling of mass imports for Open Doors, made life a little easier for the Support and Policy & Abuse teams, added some more performance tweaks for happy servers, and fixed a handful of assorted bugs!

Credits

  • Coders: Ariana, cosette, cyrilcee, digitalAlchemist, DreamSea, Elz, Hazel Seanor, MaaikeVR, Meepu, redsummernight, Russell Flaum, Sarken, Tal, ticking instant, tuff
  • Code reviewers: Ariana, james_, redsummernight, Sarken
  • Testers: Ariana, Lady Oscar, redsummernight, Runt, Sammie Louise, Sarken

Details

Works

  • [AO3-4896] - We previously removed the "Delete Work" button from works, as it was just a tad too easy to hit it by accident and then dismiss the pop-up warning, causing a lot of sadness. We have now also removed the "Delete Chapter" buttons for the same reason. You can still delete individual chapters from the Edit Chapter form.
  • [AO3-5140] - There was an error in our search-by-date code that meant it wasn't dismissing blank spaces after an "ago" (which would have been smart!), but was extra lenient about anyone typing in "5 days agosssss", which probably didn't happen a lot. It now does the smart thing.
  • [AO3-5369] - Paging through a work chapter by chapter will now take you past the big box of work information at the top, right to the chapter heading and summary. \o/
  • [AO3-5447] - Going to the works page for a username that does not exist would inexplicably show the general "Recent Works" listing instead; going to a non-existent pseud's works page would throw an Error 500. Both cases now produce neat 404 pages, as they should.
  • [AO3-5503] - Since we may be sending out many subscription notices for the same work at the same time, and those emails contain the same pseud/user/tag/series data, we've added caching blocks to our email-building code so it doesn't have to repeat all the database queries for each email.
  • [AO3-5445] - The "Refuse Gift" link would give an Error 500 if you weren't logged in as the recipient of the gift (an unlikely scenario to begin with). The refusal attempt now leads to the proper error message, asking you to log in.
  • [AO3-5019] - In downloads, the title of a parent work overlapped the words "This work was inspired by" in the inspired work. Oops. It looks much tidier now.
  • [AO3-5420] - In a certain browser that shall not be named, if the stats section of a work blurb spanned multiple lines and had links (for comments, collections, kudos, and bookmarks), the underline styling of said links would touch the line below it, like awkward little hats. We've added a bit more space between the lines to avoid this.
  • [AO3-5453] - Work deletion sometimes failed because of an email encoding error. That should now be fixed.
  • [AO3-4625] - We produced a new version of the mass import API used for official Open Doors imports in order to provide importers with better error messages.

Support and Policy & Abuse

  • [AO3-5323] - Sometimes we experience a problem so widespread or noticeable (e.g. glacial site slowness) that our Support team receives literally hundreds of messages in the span of minutes, creating quite a bit of work for them. However, we're usually already aware of the problem and composing a quick tweet over at @AO3_Status at that point. To give Support some reprieve during those times, we've made it possible to temporarily disable the Support form until the issue has been taken care of.
  • [AO3-5190] - Submitting an Abuse report or Support request and running into an error (e.g. due to missing information) would reset the selected language to English. Language selection is now preserved like all other form input.
  • [AO3-5495] - Sometimes, a database admin has to look up comments by IP address for the Policy & Abuse committee. Comments are now indexed on IP address, making this task a bit faster.

Miscellaneous

  • [AO3-4559] - The language lists to select news posts, works, or other items in a particular language had some wonky alphabetization issues. "Suomi" (fi) was sorted between "español" (es) and "Français" (fr), potentially leading to confusion. It should now be more intuitive to browse the list (with "Suomi" cozied up with the other S-languages).
  • [AO3-5185] - Blank tokens were being erroneously stored in our autocomplete system, which sometimes led to incorrect suggestions. That should no longer happen going forward.
  • [AO3-5510] - We've added a configuration option to how we update the tagging counts in the wrangling interface, to see how we can make the database servers happier about these updates.
  • [AO3-5335] - Our static error pages (such as our charming Error 502 notice) had some incorrect menu items in the navigation bar. They're all tidied up now!
  • [AO3-5448] - Trying to access a non-existent (e.g. misspelled) FAQ item would throw an Error 500 and now produces a neat 404 page.
  • [AO3-5509] - Sometimes our automated tests failed because Elasticsearch didn't start up quickly enough. We made it so the tests wouldn't run until Elasticsearch was fully started.
  • [AO3-5496] - We've updated our transaction gems. It seemed neater that way.

Comment

Post Header

Published:
2018-08-09 14:29:06 -0400
Tags:

We've fixed some issues with our new and (now even more) improved search features, addressed some unsatisfactory code that was slowing down the site and making the servers sad, fixed a handful of bugs, and generally tidied up around the place a bit.

Credits

  • Coders: Ariana, cosette, DreamSea, Elz, james_, redsummernight, Sarken, Scott, Tal Hayon, ticking instant
  • Code reviewers: Ariana, Elz, james_, redsummernight, Sarken, Scott, ticking instant
  • Testers: cosette, Danielle Strong, disjointed, hhertzof, james_, Lady Oscar, redsummernight, Runt, Sarken

Details

Searching & Filtering

  • [AO3-5470] - When we were still running both versions of Elasticsearch, indexing would fail for the old version. We fixed that, but it's kind of irrelevant now. But still!
  • [AO3-5329] - The summary above a listing of search results (showing which input led to said results) was leaving out crossover status and completion information. Now they're properly included.
  • [AO3-5444] - Searches with over 100,000 results said "100000 Found" instead of displaying the actual number, which was an unintended consequence of limiting access to 5,000 pages of search results at a time. All searches will now show the correct number.
  • [AO3-5461] - If a tag has two meta tags and a creator uses both that tag and one of its meta tags (or one of its synonymous tags) on a work, it's now not considered a crossover anymore. That was a bit of an unexpected glitch there.
  • [AO3-5465] - We also made sure that incorrectly marked crossovers will be reindexed, so they don't show up in crossover searches anymore. If a work's fandoms share a common meta tag, it's not a crossover!
  • [AO3-5484] - Somewhat relatedly, some tags are missing their inherited meta tags, leading to wrong results in crossover searches. The way we check for crossovers now takes this charming bug into account.
  • [AO3-5462] - The Tag Search used to display 50 results per page, which was reduced to 20 after the search update. Oops. We've reverted it to its previous abundance.
  • [AO3-5463] - The "Works in Collections" page used to include a user's works in anonymous or unrevealed collections, until the search update broke that a bit. They're back now!
  • [AO3-5468] - The "Complete works only"/"Works in progress only" options were hidden under the "Status" heading, which was a bit opaque. We've renamed it to Completion Status.
  • [AO3-5472] - Tapping checkboxes and radio buttons would not always work correctly on iOS with VoiceOver. Now a double tap on a checkbox will select the option, as expected.
  • [AO3-5460] - There were a few tiny errors in the help text for the work filters, which we've corrected.
  • [AO3-5483] - As explained in our Hidden search operators cheatsheet, words entered into the main search inbox should be separated by an AND if you want to search across all work properties. We have amended our help text accordingly.

Backend & Performance

  • [AO3-5466] - Upgraded the nokogiri gem to 1.8.3
  • [AO3-5471] - Updated our deploy script to account for servers newly running Elasticsearch.
  • [AO3-5486] - To comply with the GDPR, we provide each user who contacts us (and can prove they own a certain account) with a list of data that account has submitted to or created on the Archive. This script simplifies that process.
  • [AO3-4470] - Added more caching for site settings so that we can make fewer database requests.
  • [AO3-5167] - Reworked some work/bookmark ownership checks for the same reason.
  • [AO3-5172] - Improved the performance of a method that cleans up tag data when works are deleted or tags are wrangled.
  • [AO3-5177] - Reduced trips to the database when reviewing/approving tag set nominations.
  • [AO3-5500] - Tweaked some code so work and bookmark indexes will render faster.
  • [AO3-5479] - We cache data regarding the number of times each tag is used, so that we can sort them by size/popularity. Recalculating that can put pressure on the database, so we spread out the timing of it to lighten the load.
  • [AO3-5287] - In another place where we cache the number of times tags are used, we made the calls asynchronous so that posting and deleting works should be a little faster.

Tests & Clean-up

  • [AO3-4818] - We extended the automatic tests for prompt memes.
  • [AO3-4928] - We also extended the tests for gifted works.
  • [AO3-5073] - There were intermittent failures in the tests for the history feature. It should be more reliable now.
  • [AO3-5455] - To reduce the runtime for our test suite, we split the tests into groups so each group can be run separately where convenient.
  • [AO3-5459] - Updated the Elasticsearch version on our CI services to match the version we use on the Archive.
  • [AO3-5491] - Sometimes our automated tests failed because Elasticsearch didn't start up quickly enough. We made it so the tests wouldn't run until Elasticsearch was fully started.
  • [AO3-5485] - The rake task we used for providing basic development data wasn't working because we had changed our database structure since the last time anyone ran the task. Now the files it uses are updated and we have automated tests to stop us from breaking things again.
  • [AO3-5456] - Removed old Elasticsearch tests we didn't need anymore. \o/
  • [AO3-5424] - Removed some unused tag-related code.
  • [AO3-5227] - Removed some unused search-related code.
  • [AO3-5228] - Removed some unused wrangling-related code.

Misc. & Assorted

  • [AO3-4842] - Line breaks were getting stripped out of Support and Abuse messages, making them hard to read. We now make sure that carriage returns are preserved on the way to our ticket tracker.
  • [AO3-5467] - Buttons, button-style links in headings, and button-style status indications (e.g. Unread) in the inbox had different fallback fonts than other elements. Now they all have the same!
  • [AO3-4579] - We've added some information to challenges, letting participants know that their email addresses will be visible to mods, and letting mods know that any kind of abuse will lead to account termination.
  • [AO3-4905] - Requesting a temporary password made it impossible to change your email until the password had been reset (which was confusing and annoying if you remembered your password and never went through with the reset). You can now change your email address regardless.
  • [AO3-5474] - We used to have an admin setting to disable work downloads for guests, which recently asserted itself a little more aggressively than it should. It's gone now.

Known Issues

See our Known Issues page for current issues.

Comment

Post Header

Published:
2018-07-03 07:31:32 -0400
Tags:

It's here! This mega release includes a major upgrade of our search engine (with the corresponding backend changes to get the most out of our servers), significant improvements to searching and filtering, and a few small bug fixes we just threw in while we were at it.

We want to thank everyone involved in this deploy, with an extra special shoutout to ticking instant, who went above and beyond as an external code contributor and reviewer. <3 Additionally, heartfelt thanks to everyone who has donated to the OTW, enabling us to contract out some of the more tedious coding work.

Important: We are rolling out these changes in batches, so not everyone will immediately see the new filters! Please keep an eye on the @AO3_Status Twitter account for the latest updates on our progress.

Credits

  • Coders: alexwlchan, Ariana, bingeling, cosette, de3sw2aq1, DreamSea, Elz, james_, redsummernight, Sarken, Scott, ticking instant, Wendy Randquist (Littlelines)
  • Code reviewers: Ariana, cosette, Don Denoncourt (Corgibytes), Elz, james_, redsummernight, Sarken, ticking instant
  • Testers: Ariana, bingeling, briar_pipe, CJ Record, Claire P. Baker, cosette, GoldenFalls, james_, Lady Oscar, Lex, MagnusIsMyRock, Matty, Meepu, mumble, Nrandom, Rebecca Sentance, redsummernight, Relle, Runt, Sarken, ticking instant, Veronica M, VSSAKJ, ZoëRenee

Details

Searching and Filtering

  • [AO3-4815] - We updated Elasticsearch and wildly improved the filtering interface! \o/ This includes all the individual issues that made up this massive overhaul, excluding any bugs we caught and fixed after putting the code on the live Archive and kicking the tires before the full launch.
  • [AO3-5151] - We replaced the old /people index (which was mostly useless) with a redirect to the People Search page, e.g. when trying to reach a non-existing profile URL.
  • [AO3-5269] - Sorting work listings by the creators' usernames wasn't working right for usernames starting with numbers. Now the names should appear in the proper order!
  • [AO3-4187] - After filtering AO3 News posts by tag, the tag selection in the dropdown menu was not preserved when paging through the results. Now it is!
  • [AO3-5361] - We reworded the button link text for accessing all bookmarks to make it less vision-centric and, at the same time, fixed a visual alignment issue on bookmark listings. Neat!
  • [AO3-4138] - We also changed vision-centric and text-centric language on the History and the Marked for Later page.
  • [AO3-5412] - In the Inbox, the filtering sidebar had lost its radio buttons. Oops. We've carefully put them back and will keep closer watch now.
  • [AO3-5341] - The Search and Browse FAQ will be a little outdated while the Docs team and translators update all answers for the new search code. We've added a little box to the top of the page, linking to a news post describing the new search features, to be taken off when the FAQ updates are complete.
  • [AO3-5427] - We did, however, update the relevant help text for the search and filtering forms. \o/
  • [AO3-5232] - To make optimal use of the new Elasticsearch, search results have a built-in limit to keep output manageable. We have set this limit to 5,000 pages, or 100,000 items, and will monitor server performance.
  • [AO3-4093], [AO3-4540], [AO3-5253], [AO3-5353], [AO3-5390] - Bookmarks of series and external works were not showing up in the proper listings after a variety of tag wrangling changes or changes to the work. This all got taken care of in the process of rewriting (and then fixing) the bookmark code for Elasticsearch 6.

Administration

  • [AO3-5311] - While we're juggling two versions of Elasticsearch on the Archive, messages sent to Support will include information about which version the user is on.
  • [AO3-5319] - We fixed an issue where users were able to access other users' invitation pages, so now they can't. As you'd expect.
  • [AO3-5324] - Trying to hide a series as an admin would give Error 500 and the series wasn't actually hidden. That's all fixed now!

Data Protection

  • [AO3-5417] - Due to the General Data Protection Regulation (GDPR) going into effect on May 25, we took a break from working on our search engine overhaul to update our Terms of Service to show that we comply with GDPR's privacy guidelines.
  • [AO3-5416] - Now every time the Archive's Terms of Service are updated, users will be asked to agree to the new version before they can continue using the site, making us the millionth website that did this to you in May. Confetti!
  • [AO3-5418] - We also added GDPR-relevant information to the Invitation Requests page, so users know they have to consider whether they're of age and have read the ToS before we send that invitation.
  • [AO3-5419] - With the addition of a GDPR-appropriate info box to the "Edit My Profile" page, we now make sure you really, fully consent to having the profile information you entered to be displayed on the site, be displayed on the site.

Misc.

  • [AO3-5260] - If you added a co-creator to a work or series, that person would get an email saying they'd been added as a co-creator, but it wouldn't list all the creator names for the work (such as yourself). The email is now more informative in that regard.
  • [AO3-5086] - We updated our whitelist for embeds to account for new Spotify code.
  • [AO3-5203] - The CSS help documentation (e.g. for creating work or archive skins) had inconsistent spacing around section headings. It looks much nicer now.
  • [AO3-5398] - The "Forced Logout" or "Lost Cookie" page (shown to you when running into a cookie problem we are still trying to solve) now includes a troubleshooting tip, namely going to the actual Log In page instead of using the username and password fields in the page header.
  • [AO3-5237] - Some of the little help boxes you can access through the question marks next to links or form labels have been updated with new copy. Thank you, AO3 Docs team!
  • [AO3-5415] - We noticed that loading kudos to display on a work was taking a long time, and found that we weren't making proper use of caching to avoid trips to the database. A tiny little tweak in the code makes kudos load much faster now!
  • [AO3-5321], [AO3-5339], [AO3-5354], [AO3-5366], [AO3-5384], [AO3-5385], [AO3-5439], [AO3-5451] - We updated various gems: paperclip, nokogiri, sinatra (twice!), loofah, sanitize, rails-html-sanitizer, and sprockets.

Known Issues

See our Known Issues page for current issues.

Comment

Post Header

Published:
2017-11-22 12:38:05 -0500
Tags:

In these releases, we implemented several anti-spam measures, fixed some problems with our invitation queue, and added clarifying text to the site when the invitation queue is temporarily suspended.

Credits

  • Coders: Ariana, Elz, Naomi, redsummernight, Sarken, Tal Hayon
  • Code reviewers: Ariana, james_, Sarken, redsummernight, tickinginstant
  • Testers: james_, Elz, Lady Oscar, mumble, Sammie

Details

Invitations

  • [AO3-4222] - When the invitation request queue was suspended it left no clear indication anywhere on the site of how the Archive invitation system works or that it was currently shut off. We have now added explanatory text to the appropriate places and separated the form to add yourself to the queue from the form that lets you check your place in the queue.
  • [AO3-5235] - It was previously possible to add yourself to the invitation request queue by circumventing the user interface. We've now closed that tricksy loophole.
  • [AO3-5205] - We have put in checks to prevent adding variations of the same email address (e.g. the same name with periods in different places) to the invitation request queue.
  • [AO3-5243] - Deleting email addresses from the queue was a slow and annoying process, which we have now made less annoying and less slow for our Abuse personnel.
  • [AO3-5249] - Admins can now search the email addresses in the queue.
  • [AO3-4971] - If an admin tried to delete the same invitation request twice (e.g. with the help of browser tab shenanigans), they would get an unhelpful error 404. It now displays a more helpful message.

Spam

  • [AO3-4331] - We have added improvements to our anti-spam tool, making it possible to train the algorithm and spot more spam works as they're posted (and leave non-spam works alone).
  • [AO3-4200] - We now add the rel="nofollow" attribute to all links inside works and comments to discourage spammers from using the Archive to improve their search result standings.
  • [AO3-5234] - Site admins can now toggle an option that will automatically hide works that our spam detector has classified as spam. Hidden spam works can then be reviewed and, if not spam, be unhidden. \o/
  • [AO3-5251] - If a work gets hidden as spam, the creator will receive a notification in which we assure them that we review our software's decisions and will unhide the work if it turns out to be not actually spam. (If it is, it will be summarily deleted and GOOD RIDDANCE.)
  • [AO3-5247] - Two kinds of notifications that were theoretically supposed to be triggered by declined invitation requests/spam works were not actually being sent (and instead cluttered up our error logs). They will now be sent in the appropriate cases.

Automated Tests

  • [AO3-5240] - Completely unrelated to any spam concerns, one of our automated tests broke when daylight savings ended in the US, and we had to reapply a fix that had previously taken care of the problem. Excitement!
  • [AO3-3848] - We've added a test to check that accounts block access after repeated password failures.
  • [AO3-4855] - Our test coverage for gift exchanges has been improved by some rspec additions!

Known Issues

See our Known Issues page for current issues.

Comment

Post Header

Published:
2017-10-21 17:43:04 -0400
Tags:

We recently fixed MOBI downloads on Kindle, solved some miscellaneous bugs, and cleaned up some code around the site.

Credits

  • Coders: Elz, cosette, james_, redsummernight, Sarken, ticking instant
  • Code reviewers: Ariana, Elz, james_, Sarken
  • Testers: Aline, bingeling, Lady Oscar, redsummernight

Details

Works & Comments

  • [AO3-5202] - MOBI downloads were suddenly failing on Kindle devices, due to a tiny little typo that had slipped into our code unnoticed. Now that we've noticed it, you should be able to download MOBI files again.
  • [AO3-5199] - On October 5, we had to temporarily disable downloads when we mysteriously ran out of disk space. It turned out that was because our clean-up code was broken and we weren't deleting HTML files after generating them. We've fixed that.
  • [AO3-1259] - The option to remove yourself as the co-creator of a chapter was buried on the page for reordering a work's chapters. Now it's also in a much more sensible location: the chapter edit page. (And as a bonus, when you remove yourself as a co-creator, the byline on the chapter will actually update now!)
  • [AO3-5197] - Works with no content at all (near impossible to create, but sometimes databases do weird things) were causing word count errors, since the counter wasn't prepared for having nothing to count. It just counts to 0 now.
  • [AO3-5125] - We've added a Rake task to map imported works to their counterparts on the original archives. Now if we host the original domain, individual work links from the original site will redirect to the copy of the work on AO3, as they should.
  • [AO3-177] - Comments marked as spam were counted toward the total number of comments, even though they were hidden from view. We've made sure that wherever a comment count shows up, it now displays the number without spam.

Skins & Frontend

  • [AO3-4376] - We had CSS-related documentation in a few different places, laying out information for creating your own skins to style the Archive or the content of works. This information is now all in one place.
  • [AO3-4840] - Archive skins created with our Skin Wizard didn't properly style the Reindex Work button (visible to wranglers). Now they do!
  • [AO3-5183] - The admin page for approved site skins was timing out, so we made a small performance tweak and now it's greased lightning.
  • [AO3-4658] - The login page looked wonky on small screens and made it harder to log in on mobile devices. It's all pretty now!

Misc.

  • [AO3-5201] - When accessing the Archive through our HTTP option (relevant when we switch to a secure default protocol for good), it was impossible to submit a page from the insecure.archiveofourown.org domain to Abuse. Now it is!
  • [AO3-4976] - In autocomplete fields, tags with ampersands (e.g. "Abbi & Ilana") would sometimes show up with a semicolon after the &, which looked untidy. We've tidied that up!
  • [AO3-4004] - Trying to use the tab button to navigate from certain autocomplete fields after entering a tag would jump you back to the top of the page in some browsers. You should now be able to reach the correct field.
  • [AO3-5082] - The test for removing oneself as a co-creator of a work or series would fail sometimes (but not always), making the test not very helpful. That's fixed now.
  • [AO3-5173] - There was some unused code lingering from a feature we had previously removed. It lingers no more.

Known Issues

See our Known Issues page for current issues.

Comment

Post Header

Published:
2017-10-12 13:48:34 -0400
Tags:

With our latest deploys, we've ensured that common audio and video players still work after our pending move to HTTPS, added parent links to comment threads, removed a whole bunch of unused code, and took steps to prevent users from adding other people's works to anonymous or unrevealed collections.

Note: We successfully made the switch to HTTPS for a few days; however, the extra strain from encrypting all traffic proved too much for our servers at peak times. Until we have installed additional frontend servers (coming soon!), HTTP will remain the default protocol. (Of course, you can still elect to use a secure connection, e.g. via a browser extension like HTTPS Everywhere.) Please follow @AO3_Status on Twitter for futher updates.

Credits

  • Coders: Ariana, Cesy Avon, cyrilcee, Dense Lancer, Elz, james_, redsummernight, Sammie Louise, Sarken, tuff
  • Code reviewers: Ariana, Elz, james_, redsummernight, Sarken
  • Testers: Alison Watson, Lady Oscar, mumble, natalia gomes, Sarken

Details

Works & Comments

  • [AO3-5192] - Common audio and video players that support HTTPS will still be accessible after our switch to secure browsing! We have adjusted the protocol in current embeds and added a step to our sanitizer that takes care of posts going forward.
  • [AO3-5188] - When trying to download a work as an ePub, users would frequently be served .zip files or a page of gibberish instead. We found the cause for this (caching! it's always caching!) and rewrote part of our download code to address the issue. Downloads should be served more reliably now.
  • [AO3-5159] - Some PDF files were also failing to generate, so we removed a line of code to see if that would help. Fingers crossed!
  • [AO3-3704] - If a work was styled with a work skin, and a co-creator edited that work later, the skin would be stripped off (...gruesome), requiring another edit by the first creator to tack it back on. Now the work skin stays where it should be at all times.
  • [AO3-5016] - It was previously possible to add other users' works to one's own anonymous and/or unrevealed collection, effectively hiding them from their creators (and everyone else) in the worst case scenario. We now prevent this, and display a helpful error message to the collection owner when they try.
  • [AO3-5058] - When importing someone else's work (as an Open Doors archivist), the site would throw an ugly Error 500 if it couldn't detect the work creator's email address on the imported page. It now provides a helpful error message instead.
  • [AO3-5131] - Trying to delete more than one comment from the same user, on the same work, when both had replies, was not possible for some reason. Turns out they would have both turned into identical "deleted comment" placeholders, and our validation code didn't like that. It's more lenient now.
  • [AO3-5144] - In order to make comment navigation easier, comment replies now have a "Parent Thread" link that takes you to the first comment in the thread and allows you to see the whole thing. \o/

Misc. Issues

  • [AO3-5015] - The location of the our backup Support form (used in case of serious site issues) had changed, so we edited the link on our Support form to save the OTW website a redirect.
  • [AO3-5044] - When changing one's username, one first had to read a little warning message about the consequences of a name change. However, that warning was misleadingly worded and didn't provide enough information about the process. We have improved the message now.
  • [AO3-4440] - In our efforts to make the AO3 interface translatable, we prepared the email that goes out to people with works in imported collections for eventual translation.
  • [AO3-5165] - We added some cleanup when certain background tasks failed.
  • [AO3-5189] - After running into an import test failure because an image URL in the relevant Dreamwidth post had changed, we rewrote the test in question to use the DW journal and community we manage ourselves to test imports.
  • [AO3-5195] - Coveralls was giving us wildly erratic scores for our test coverage, so we switched to Codecov, which will hopefully analyze our coverage in a more reliable manner.
  • [AO3-5055] - We have added a license to our code repository on GitHub.
  • [AO3-5187] - When we moved the autocomplete to its own Redis instance in our last deploy, we forgot to change the config files we use for our development environments. They're now updated and our coders can code again!

Code Cleanup

  • [AO3-4796] - When we deployed Rails 4, it broke filtering a little bit, so we had to use a hack-y workaround to fix it. Now that we're on Rails 5, we've removed the hack and filtering still works.
  • [AO3-5012] - We found some old code for automatically generating tag sets for a challenge that was never actually fleshed out, so we just removed it, for neatness.
  • [AO3-5093] - We simplified and tidied up part of our abuse report code.
  • [AO3-5094] - We also removed an ancient hack for fixing an encoding issue with time zones. It had fixed itself over the years, apparently.
  • [AO3-5096] - There was another bit of ancient unused code for bookmarks of external works, so we removed that too.
  • [AO3-5087] - More ancient, unused code for importing works was squashed while we were at it.
  • [AO3-5088] - Same for a security patch that had become irrelevant in the four years since we added it.
  • [AO3-5085] - We also had some lingering code for locales, which is now gone as well.

Known Issues

See our Known Issues page for current issues.

Comment

Post Header

Published:
2017-09-30 15:25:00 -0400
Tags:

A lot has happened since our last set of release notes! We've upgraded from Rails 4.2 to Rails 5.1, grappled with login issues, rewritten several bits of code to speed up tag sets and wrangling pages, and fixed a bunch of lingering bugs.

Credits

  • Coders: Ariana, cosette, Elz, james_, MaxwellsDaemon, redsummernight, Sammie Louise, Sarken, ticking instant, tuff, Wendy Randquist (Littlelines), Zorac
  • Code reviewers: Ariana, Elz, james_, redsummernight, Sarken
  • Testers: alamerysl, Alison Watson, Ariana, briar_pipe, Elz, GoldenFalls, james_, Julianna, Katherine, Lady Oscar, magnus, McBangle, Memé, Morgan D, mumble, redsummernight, Rosa V, Runt, Sammie Louise, Sarken

Special thanks to MaxwellsDaemon, who contributed his first pull request as an AD&T volunteer and has completed his training! \o/

Details

Infrastructure

  • [AO3-5033] - We upgraded from Rails 4.2. to Rails 5.0 and then spent some time rejoicing (and fixing all the little problems we found in testing).
  • [AO3-5034] - After that, we worked on getting us to Rails 5.1, which is the version the Archive is now running on. There was even more rejoicing! \o/
  • [AO3-5036] - We also updated our Ruby version to 2.3.4.
  • [AO3-5157] - Our logs were causing disk space to fill up quickly, oops. We've changed some settings and made the logs leaner, so that won't be an issue anymore.
  • [AO3-5181] - The Nokogiri gem, which is used for extracting HTML from other sites to import works (among other things), was upgraded to version 2.3.0.
  • [AO3-4952] - We moved the autocomplete data to its own Redis instance.

Login Extravaganza

  • [AO3-5153] - We fixed an existing issue with the login form, which allowed us to re-enable full-page caching.
  • [AO3-5158] - For this to work properly, we also re-enabled a feature that keeps your cookies in sync so the caching system knows when you're logged in. Neat!
  • [AO3-5171] - Due to a Rails bug outside of our control, people were sometimes getting logged out while trying to leave kudos or a comment, creating a bookmark, or otherwise submitting a form. As a temporary stopgap, we extended the lifespan of our session cookie to 2 weeks, which should help users stay logged in despite the bug.
  • [AO3-5160] - After our Rails upgrade, the bug was causing ugly errors, dumping users on a blank page when they were trying to submit forms, and clogging our error logs. We added a special error page to catch these cases and advise users to try refreshing or logging in again.
  • [AO3-5169] - When running into this bug while trying to leave kudos (for example, on a work still open in a tab from days ago), nothing happened - no kudos would be given, and no error message would show up. We added the error message here as well, suggesting to refresh and try again.

Works & Comments

  • [AO3-5163] - After our Rails 5 upgrade, incomplete works were suddenly showing up in listings of complete works. After some head-scratching, that bug got resolved fairly quickly.
  • [AO3-5149] - There was an issue with ePub downloads not opening in iBooks and Calibre due to some faulty code in the file. That's fixed now. (Current issues with ePub files are unrelated and being addressed!)
  • [AO3-5042] - In downloaded works, the links for the work creator(s) and the link to leave a comment on the work were broken. We made them absolute instead of relative (and then kicked our servers several times to make the fix stick), so now you should be able to click the link and tell the creator(s) you enjoyed their work! It's the right thing to do.
  • [AO3-3300] - Adding a new chapter with the "Post" button after previewing would cause the total chapter number to be set to "?" -- it now preserves the correct chapter number.
  • [AO3-2556] - When deleting a comment with replies, a placeholder would stick around so the replies were still, you know, replying to something. However, deleting the replies would not make that placeholder go away. Now it vanishes, as you'd expect!

Tags & Tag Sets

  • [AO3-5105] - The way we counted how many times a tag had been used was causing undue stress on our servers, so we made that less stressful for everyone involved.
  • [AO3-5178] - Saving a tag set (e.g. when approving nominations for a challenge) would take an absurdly long time, which was apparently due to some suboptimal code which we rewrote to be more on the optimal side. It's now considerably faster!
  • [AO3-5176] - We added an index to tag nominations in our database, but it turned out we needed another one for character tags to streamline things more. Done!
  • [AO3-5156] - We also greatly improved the performance of some tag-related queries.

Collections & Challenges

  • [AO3-5091] - Claiming a prompt in a prompt meme challenge and then deleting your account would make the Claims page error for the challenge mods. /o\ We now display a "claimed by deleted user" placeholder on the page instead.
  • [AO3-4748] - On the Unposted Claims page of a prompt meme challenge, the claimed date was hidden beneath the collection icon. It is now aligned properly.
  • [AO3-5050] - The page listing all collections created by a user had an incomplete page title that was inconsistent with our other page title formats. It now says "USERNAME - Collections", which is much better.

Misc.

  • [AO3-5138] - Trying to reference a non-existent AO3 News post when uploading a translated version (i.e. by putting in an incorrect post ID instead of selecting one of the given options) would lead to an error 500. The interface now preserves all other information that was put in and displays a helpful error message.
  • [AO3-5148] - Filtering your inbox (e.g. only showing unread messages) and replying to a comment from the page would lead to an error 500 (while the comment would still post). Now it'll do the thing without throwing a tantrum.
  • [AO3-5164] - The little form field that lets you check for your place in the invitation queue had become non-responsive. Now it'll let you know how long you'll have to wait for that invite again.
  • [AO3-4533] - The alt text for our main logo was overly verbose, causing problems for screenreaders. It now just says "Archive of Our Own", as it should.
  • [AO3-4729] - We had previously implemented a limit for how many times a work can be reported to our Abuse team, and have now added the same limit for profile pages, i.e. users.
  • [AO3-5146] - In the Reversi skin, the link text in some of our admin banners was too light and the Close button had a weird white center. That's all taken care of now.
  • [AO3-5011] - We've rejigged the top of our FAQ page to make it look a little neater.
  • [AO3-5103] - DeviantArt started using https links for their images, causing our import test to fail. We adjusted the test, making it not fail anymore.
  • [AO3-5170] - Then DeviantArt changed their image URLs again, breaking our test again. HILARIOUS, DA. Anyway, it's fixed now, so come at us, bro.
  • [AO3-3958] - We also added a test to check if titles containing &, >, or < are properly displayed when editing a work and series.

Known Issues

See our Known Issues page for current issues.

Comment


Pages Navigation