AO3 News

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

Post Header

Published:
2017-08-05 21:17:29 -0400
Tags:

The Archive is now running on Rails 4.2! \o/ This took a lot of effort, and we want to thank everyone involved for their work (and our donors for allowing us to pay a contractor for part of it). We also fixed a handful of bugs, got closer to full https support, and continued improving our automated tests. Next up: Rails 5 and 5.1!

Please note: Starting with this release, you won't be able to submit a support request without supplying an email address. This doesn't have to be the address associated with your account, but our Support personnel does need a way to contact you if you have a question. Please help us help you!

Credits

  • Coders: astirya, Cesy, cosette, cresenne, David Stump (Littlelines), Elz, james_, Mary Alice Wuerz, Meepu, potatoesque, redsummernight, Sarken, Scott, Vas, Wendy Randquist (Littlelines)
  • Code reviewers: bingeling, Elz, james_, redsummernight, Sarken
  • Testers: Alison Watson, bingeling, Claire, dizmo, james_, Lady Oscar, Matty, mumble, Qem, redsummernight, Sammie, Sarken

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

Details

Rails & Infrastructure

  • [AO3-4736], [AO3-5022], [AO3-5023] - After many, many months, we've upgraded the Archive to Rails 4.0, Rails 4.1, and finally Rails 4.2. (Now it's onward to Rails 5!)
  • [AO3-5032] - We changed a lot of our files from hash rocket syntax (thing => other_thing) to JSON-style syntax (thing: other_thing).
  • [AO3-5038] - We were getting a lot of deprecation warnings when we ran our automated tests, so we've upgraded our Cucumber gem, updated how we configure some settings, and changed the syntax for one particular method.
  • [AO3-5027] - One of our servers was redeployed as an app server, so we've updated our deploy script to reflect that.
  • [AO3-5029] - We changed some permissions on static files to make life easier for developers.

Enhancements

  • [AO3-4953] - Our Support team sometimes receives requests for assistance with no email address attached. To make sure they can get back to those users, we've made the email address a mandatory field in our Support form.
  • [AO3-4995] - In our efforts to enable full https browsing on the Archive, we've updated some redirect code (i.e. the thing that sends you back to a page after deleting an item on it, for example). We've still got a ways to go, but we're slowly getting there!
  • [AO3-5043] - Does it count as an enhancement if you take away a feature nobody had been using for years? Let's say yes! Anyway, there was an option for site admins to send emails to all... 1.2 million users, which would have broken the server if ever successfully put into action. So that's gone now. It also took its user-facing friend with it, so you won't see the "Turn off admin emails" option in your Preferences anymore.

Bug Fixes

  • [AO3-4552] - As a side effect of the Rails upgrade, an issue where summaries of searches that used both < and > didn't display properly on the search results page got fixed.
  • [AO3-3223] - When adding a co-creator to a multi-chaptered work, they'd only get added to the first chapter and weren't able to edit any other chapters. They are now made co-owner of all existing chapters, as expected.
  • [AO3-3536] - Posting a remix/podfic/translation and trying to link the inspiring work would sometimes lead to a confusing error message if the external URL couldn't be reached. The new error message subtly suggests to make sure the URL is correct and advises to try again later if the external site is temporarily down.
  • [AO3-4272] - There was some HTML showing in the "Works inspired by this one:" section if the inspired work was in an anonymous collection. /o\ We've covered it up with the proper code now.
  • [AO3-4948] - Similarly, the chapter index page for an anonymous work had some exposed HTML when the logged-in creator was looking at it. Took care of that too!
  • [AO3-5008] - We discovered a number of bogus subscriptions to things you can't actually subscribe to (e.g. pseuds), which shouldn't be able to be created (and which weren't doing anything except potentially causing errors). We've now put in a validation step before confirming a subscription, so this shouldn't happen anymore.
  • [AO3-4609] - In our Terms of Service, we fixed a couple of broken links to related FAQ items and made all the links relative (which also helps with our https efforts!).
  • [AO3-5026] - We also fixed a typo in the ToS that nobody had noticed for... mumble mumble years. Whoops.
  • [AO3-5020] - When editing a work search with a sorting direction set (e.g. by word count in ascending order), the sorting order would get lost and you'd have to select it all over again. Now it sticks!
  • [AO3-4870] - Admins trying to navigate to a non-existent account (e.g. by typing an incorrect name into the address bar) would be greeted with an ugly error 500. They are now being redirected to the user administration page with a much more helpful error message.
  • [AO3-5066] - We fixed a potential security issue regarding access to chapter preview pages.
  • [AO3-5069] - Trying to post a new work as part of a series while running into a validation error (e.g. forgetting to check a warning or enter a title) would result in a 500 error. /o\ Now you get the "you're missing some stuff" message, as proper.
  • [AO3-5072] - The lookup tool for imported works had stopped working. We gave it a good kick, so now you can use it again to search for works from other archives which have found a new home at the AO3.

Automated Tests

  • [AO3-4924], [AO3-4946], [AO3-4947], [AO3-4973], [AO3-5005], [AO3-5017], [AO3-5030] - We've expanded our tests for chapters, challenge assignments, collection items, spam reports, invitation emails, work searches, and work imports.
  • [AO3-5021] - We've told one of our continuous integration (CI) platforms to use a newer version of MySQL so we could deploy Rails 4.0.
  • [AO3-5031] - We were telling our automated testing environments to ignore some security issues with gems, but the Rails upgrade meant we were able to update those gems, so there's no longer anything to ignore.
  • [AO3-5045] - We've updated our RSpec tests so data always gets cleared between unit tests.
  • [AO3-5074] - We had some remaining TO DO items in our autocomplete tests, specifically relating to works and gift challenges. They are now all DONE! \o/
  • [AO3-5070], [AO3-5071], [AO3-5075], [AO3-5080], [AO3-5081] - We've also taken care of some weird test failures (for changing a username, orphaning a work or series, deleting an account, and adding a co-creator to a work) that would happen sometimes without code really being broken. Now there's less noise in our test results!

Known Issues

See our Known Issues page for current issues.

Comment


Pages Navigation