AO3 News

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

Post Header

Published:
2017-05-16 03:30:02 -0400
Tags:

In this big batch of bug fixes and enhancements, we sorted out several issues with collaboration on chaptered works, reduced errors when trying to download works, took another small step toward sitewide https support, and kept making improvements to our automated tests.

Credits

  • Coders: Cesy, cosette, cresenne, james_, redsummernight, Sarken, ticking instant
  • Code reviewers: Ariana, bingeling, james_, Sarken
  • Testers: Alison Watson, james_, Lady Oscar, mumble, Sammie, Sarken, Stephanie Godden

Details

Enhancements

  • [AO3-4847] - To help users who are receiving abusive comments, Abuse staff can now find a commenter's IP address without having to ask for a database admin's help.
  • [AO3-4999] - It is now easier to manage co-creators you collaborated with on chaptered works. When adding or editing a chapter, a list of checkboxes will suggest users who are already co-creators on another chapter. For works without any previous co-creators, you can still add users in the "Add co-creators?" autocomplete field. (This also fixes the previous behavior, where a co-creator on any chapter was getting added to the whole work.)
  • [AO3-3359] - We've added a Search button to the top of the Work Search form, so you don't have to scroll all the way down if you're only using a few options on the top half of the page.
  • [AO3-4885] - Challenge assignment emails can now be translated (for when we introduce that functionality).

Work Bug Fixes

  • [AO3-4943] - Users kept running into error 500s when trying to download works. /o\ This deploy should fix several common causes for these errors: hyphens in work titles, a deleted parent work (i.e. the inspiration for a remix, or the original of a translation), or a deleted series that included the work. Fingers crossed!
  • [AO3-4986] - We discovered that it was theoretically possible to add yourself as a co-creator to a work you did not actually co-create. We fixed this as soon as our coders found it, and we have no reports of it being exploited, or any reason to believe that it was.
  • [AO3-3176] - If you were listed as the co-creator of a work and you tried to edit a chapter you were not explicitly listed on, you'd get a 500 error. Now you can edit it successfully.
  • [AO3-3733] - Orphaning a co-created work would add the orphan_account as a creator to every chapter, even if the orphaning user was not a co-creator on the entire work. We've now added a check to only display the orphan_account on the appropriate chapters.
  • [AO3-4174] - The same would happen for works in an orphaned series, where the orphan_account would suddenly be attached to all works. Fixed that too!
  • [AO3-4963] - After a change we made to speed up the posting process behind the scenes, new fandom tags on works showed up on the wrangling interface as intended, but fandom tags on bookmarks of external works did not. Oops! We made sure all new fandom tags are treated equally now.
  • [AO3-4105] - It used to be possible to completely delete a series (not the works in it!) when editing a single work in that series. We decided that this was maybe a little weird and removed the "Delete" button from that part of the interface.

Other Bug Fixes

  • [AO3-4712] - Trying to filter collections by fandom would lead to an error 500. Now it actually produces a list of collections containing works for that fandom.
  • [AO3-4985] - While the buttons to mark or unmark a comment as spam are hidden from everyone but site admins and the work's creators, it was theoretically possible to access those actions while logged out. We have now put in the appropriate checks.
  • [AO3-4718] - In a similar vein, if they had the direct link to a tag comment, logged out users could potentially see replies to and also cancel the edits on that tag comment (not comments on works!). Now they'll see the appropriate error message if they try.
  • [AO3-4956] - The redirect tool Open Doors uses to manage imported works would throw up an error 404 when being presented with a faulty URL. Now it responds with a much friendlier error message. We also extended test coverage for this feature!
  • [AO3-4407] - To keep spammers at bay, the feature that lets you request invites to friends has been disabled for a while now. We've finally adjusted the code for the front page copy to correctly reflect your options in getting an AO3 account.
  • [AO3-4621] - User icons, which we're storing on AWS servers, will now be fetched over https, making it less likely that you will get a mixed security warnings message on a page.
  • [AO3-4863] - The message you'd get when trying to access the Reindex Work action without being logged in as an admin or tag wrangler was a friendly blue instead of the appropriately dangerous red. It will flash the right color at you now.

Automated Tests

  • [AO3-4997] - In a previous deploy, we made it possible to test JavaScript features with our automated Cucumber tests. This fix brings back scenarios that were commented out when we were still grappling with JavaScript testing.
  • [AO3-4993] - We used to test URL caching with Cucumber tests. What were we thinking! Now we're using the RSpec framework for this, like normal.
  • [AO3-4992] - To start each automated test with a blank slate, we've added a little clean-up step before each test is run. Previously, that step only applied to tests of the autocomplete functionality.
  • [AO3-4990] - We've added some coverage for easy-to-test parts of various models.
  • [AO3-4982] - The service we use for our continuous integration needs, Travis CI, upgraded their operating system. We made sure we're still compatible.
  • [AO3-4981] - We added an automated test for invitation emails.
  • [AO3-4714] - We also extended coverage for the series feature.
  • [AO3-5004] - And we've added a test for work URL detection in abuse reports.
  • [AO3-4733] - The test for the public Wrangling Guidelines has been updated (and the related code received a small correction).
  • [AO3-5003] - The RSpec test for the reindexing button available to admins was broken, and we fixed it.
  • [AO3-5010] - The bookmark search test was very short and used fixtures. It is now longer (in this case, that does mean better), and uses factories instead.
  • [AO3-5014] - We now use the same factories for unit and feature tests. If this means anything to you and you have some free time on your hands, shoot us a message and join the team!

Code Clean-Up

  • [AO3-4942] - The code for viewing and editing locales on the Archive included some unused cruft. Now it's all neat and tidy. (Or neater and tidier, anyway.)
  • [AO3-4480] - We've added caching to the redirect code for imported works and made sure the cache gets updated when a work is deleted.
  • [AO3-4978] - Cleaned up duplicate definitions.
  • [AO3-5009] - We had a /docs folder that hadn't been used for anything in years. It sleeps with the fishes now.

Known Issues

See our Known Issues page for current issues.

Comment

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.

Comment

Post Header

Published:
2017-03-24 16:11:18 -0400
Tags:

We've fixed CSV downloads for gift exchange sign-ups, corrected fandom counts in collections, and made a whole heap of behind-the-scenes changes, test improvements, and other minor fixes.

Credits

  • Coders: Ariana, Cesy, cosette, cyrilcee, David Stump (Littlelines), DNA, james_, potatoesque, redsummernight, Sammie Louise, Sarken, Scott, tickinginstant
  • Code reviewers: Ariana, bingeling, james_, Naomi, potatoesque, redsummernight, Sarken
  • Testers: Betsy, Lady Oscar, mumble, Rebecca Sentance, redsummernight, Runt, Sammie Louise

Special thanks to redsummernight, who has contributed their first pull request as an AD&T volunteer and completed their training!

Details

Bug Fixes & Enhancements

  • [AO3-4844] - We've started using the Devise gem to handle admin logins.
  • [AO3-4834] & [AO3-4835] - In our tag set code, we had two places where users would get a 500 error instead of the nicer, more specific message we meant to give them. Now they'll get a "What Tag Set did you want to look at?" error instead.
  • [AO3-4877] - Following a recent release, it was no longer possible to download gift exchange sign-up CSVs. We've fixed that, and we've also added some tests that will hopefully keep it from happening again.
  • [AO3-4808] - Editing a work and removing its fandom used to save the work, but return a 500 error, resulting in an invalid work and a confused user. Trying to save a work without a fandom will now not save the work and show the user an error message instead.
  • [AO3-4045] - If your chapter was over 500,000 characters long, you'd get an error message that included the oh-so-helpful suggestion, "Maybe you want to create a multi-chapered work?" Since you were already trying to do that, we removed that from the error message.
  • [AO3-2431] - A lot of collections were showing fandom counts that were higher than the actual number of fandoms in that collection. We realized that was because the code was also counting meta tags, so we made it stop doing that.
  • [AO3-4858] & [AO3-4922] - As detailed in Issues With Posting Works (And What We're Doing to Solve Them), we deployed some new caching code to help speed up work posting. Unfortunately, the code didn't work and we had to revert it.

Behind-the-Scenes

  • [AO3-4883] - A security vulnerability was discovered for one of the gems we use, so we quickly updated to the patched version. (We only use the gem for our automated tests and don't believe we were at risk, but better safe than sorry!)
  • [AO3-4895] - The tool we use to check our code style and syntax was giving us suggestions that only worked in a newer version of the Ruby language than what we're currently using. We changed the tool's settings so it will only suggest things for the version of Ruby we're using.
  • [AO3-4780] & [AO3-4782] - We've added strong parameters to FAQ categories and invitation requests.
  • [AO3-4918] & [AO3-4920] - In order to deploy the caching changes for AO3-4858, we temporarily amended our deploy script so the deploy process would take less time, but require us to briefly put the Archive into maintenance mode. After we were done, we reverted those changes.
  • [AO3-4825] - We had some help files that were outdated and no longer in use, so we removed them.
  • [AO3-4851] & [AO3-4933] - We updated the database schema file in our repository, since recent changes to our database structure meant it was out of date.
  • [AO3-4443] - We've updated our version of Pry, a gem that provides a number of development tools.
  • [AO3-4856] - We had some unused code in the tag set nominations controller, so we deleted it.

Tests

  • [AO3-4830], [AO3-4897], [AO3-4908], [AO3-4901] - We've extended the automated tests for tag sets to cover more lines in the controller and more use cases. We've also reorganized the tests into smaller files in their own directory.
  • [AO3-4726] - We've brought test coverage of the comments controller up from 71% to almost 94%.
  • [AO3-4914] - We now have tests to cover all the types of tags you can use on a bookmark of an external work.
  • [AO3-4887] - We've begun improving the test coverage of the challenge assignments controller.
  • [AO3-4810] - Our test coverage for the prompts controller is now at 93%, which is much better than the 65% it started at.
  • [AO3-4889] - The series controller now has 96% of its lines covered by automated tests.
  • [AO3-4916] - We've added more tests for the external authors controller.

Known Issues

See our Known Issues page for current issues.

Comment

Post Header

Published:
2017-02-21 21:34:10 -0500
Tags:

Our mission to update Rails continues with more clean up, strong parameters, and tests, but we also have a big pile of small bug fixes and enhancements, not to mention a few new tools for the volunteers who keep the Archive running.

Credits

  • Coders: Ariana, CJ Record, cosette, james_, potatoesque, Sarken, Scott
  • Code reviewers: Ariana, bingeling, Cesy, james_, Naomi, potatoesque, Sarken, Scott
  • Testers: Alison Watson, james_, Lady Oscar, Sarken

Details

Tests

  • [AO3-4771] - We added tests for managing collection membership.
  • [AO3-4797] - We improved our test coverage for the works controller, bringing it up to more than 90%.
  • [AO3-4803] - We added still more tests for managing collection membership! In fact, the collection participants controller now has 100% test coverage. \o/
  • [AO3-4804] - We increased test coverage of the challenge assignment controller.
  • [AO3-4819] - Our skin (code) is now 93% covered.
  • [AO3-4823] - We added more tests for the tags controller code.
  • [AO3-4837] - We added tests for the collection profile controller.
  • [AO3-4822] - The owned tag sets controller now has excellent test coverage.
  • [AO3-4809] - We added some more tests for the bookmarks controller and in the process updated the success messages related to adding existing bookmarks to moderated collections.

Rails

  • [AO3-4791] - Just to make sure everything goes smoothly with our Rails update, we added mass assignment protection to some files where we weren't doing mass assignment and thus didn't need to protect against it.
  • [AO3-4798] - We added strong parameters to the subscriptions code.
  • [AO3-4799] - And to the favorite tags code.
  • [AO3-4821] - The skin code now has strong parameters.
  • [AO3-4817] - We added strong parameters to the code that lets site admins block email addresses from being used for logged-out comments.

Bug Fixes

  • [AO3-4524] - On our About page, the link to the Organization for Transformative Works FAQ page was broken. We've updated it to point to the right place.
  • [AO3-4529] - Since we were already working on the About page, we decided we should also fix the broken link for contacting the OTW's Communications Committee.
  • [AO3-4549] - There's a bug that lets users edit their works to remove the fandom tag, and while we haven't deployed the fix for that yet, we have made it so removing the fandom tag no longer prevents users from updating or accessing fandom-less works.
  • [AO3-4738] - While working on improving our automated test coverage, we discovered site admins' ability to change the default site skin was broken. (This is why test coverage is so important!)
  • [AO3-4747] - Now when a challenge moderator who has JavaScript disabled attempts to purge assignments for their challenge, they are taken to a page asking them to confirm the action.
  • [AO3-4846] - Shortly after deploying changes to the series navigation, we realized those changes weren't displaying on every work. So, quick like a bunny, we updated the caching code for it. (It's always caching!)
  • [AO3-4848] - A whole lot of empty space was inadvertently added to the top of collection profile pages while we were fixing another issue. We've gotten rid of that extra space.
  • [AO3-4849] - The error message that tells logged in users they cannot currently request invitations had an outdated link to the Open Doors contact page. The old URL forwarded to the new page, but we thought it would be good to update it anyway.
  • [AO3-4827] - When importing a multi-chapter work from another site, the word count only included words from the first chapter. We've fixed it so now all the words count.
  • [AO3-4644] - Comment emails were generally sent even if the comment was deleted moments after posting, but sometimes there would be so many emails queued up that the email would error. We changed the way comment emails are coded so comments' emails will always be sent, no matter how long the queue.

Enhancements and New Features

  • [AO3-4357] - We added the ability for site admins to disable work downloads so it will be easier to do routine site maintenance. (But don't worry -- we'll let you know before we turn it off!)
  • [AO3-4732] - The error 500 page previously said, "We've been notified about this issue and we'll take a look at it shortly," which was not true -- while we do log errors, we are not notified of each individual error. This message was dissuading users from contacting us about easily fixable things, so we changed it to say, "If you are receiving this error repeatedly, please contact Support. In the form, please include a link to the page you're trying to reach and how you're trying to reach this page."
  • [AO3-4788] - We added an Acknowledgements page to our GitHub repository so we can thank the companies who provide the tools and technology we use.
  • [AO3-4109] - We used to use angle quotation marks (« and ») as the links in works' series navigation, but they were difficult to use on touch devices, and confusing to anyone using a screenreader. We changed the links to say "Previous Work" and "Next Work" instead, which makes the links both bigger and clearer.
  • [AO3-4839] - We also added some dividers to the series navigation to make it clearer where the links began and ended.
  • [AO3-3991] - Some of the various pages related to creating and using site and work skins were missing navigation items or had their navigation items arranged in unexpected ways. We added the missing options and made the display more consistent with the rest of the Archive.
  • [AO3-4716] - We've given site admins the ability to search for multiple users by email at one time. This will help Open Doors cut back on the number of duplicate imports that happen when they upload an archive.

Internationalization

  • [AO3-4297] - We changed the way account activation emails are coded so the Translation team will be able to translate the email into a variety of languages.
  • [AO3-4301] - We also changed password reset emails to allow them to be translated.
  • [AO3-4302] - And the "you've been added as a co-creator of this work" emails!
  • [AO3-4303] - Also the email that lets you know your account's email address has been updated.
  • [AO3-4305] - Ditto the email you receive when you (or one of your co-creators) deletes a work.
  • [AO3-4306] - And, lastly, we've made it so Translation can translate the email we send when a site admin deletes a work.

Clean-up

  • [AO3-4806] - We deleted some unused challenge assignment code.
  • [AO3-4745] - Sometimes multiple users bookmark the same external work, or someone bookmarks a work that another user has cited as an inspiration. It was previously possible for site admins to combine these duplicate external works, which was a good idea in theory, but in reality, not something we have the resources to monitor. We've removed admins' ability to do that.
  • [AO3-4811] - We removed some unused prompt meme controller code we found while writing tests.
  • [AO3-4766] - We removed some Gems we weren't using.

Known Issues

See our Known Issues page for current issues.

Comment

Post Header

Published:
2017-01-05 08:08:45 -0500
Tags:

We deployed several batches of new code over the holidays, the vast majority of which concerned our automated tests and preparations for a major Rails upgrade. Happy New Year!

Credits

  • Coders: Ariana, Cesy, cosette, cresenne, james, potatoesque, Sarken
  • Code reviewers: Ariana, james, Naomi, Sarken
  • Testers: james, Lady Oscar, Sarken

Special thanks to cosette, cresenne, and potatoesque, who have contributed their first pull requests as AD&T volunteers and completed their training!

Details

Tests

  • [AO3-4730] - Made the output of our Cucumber tests more informative by adding the name of each test to the happy green dots that signify a successful run.
  • [AO3-4705] - Added another test for downloading works.
  • [AO3-4761] - Extended the tests for our internal API.
  • [AO3-4762] - Added a test for admins deleting an email address from the invite request queue.
  • [AO3-4707] - Improved test coverage for related works.
  • [AO3-4767] - Ditto for external works.
  • [AO3-4768] - Also improved our tests for displaying series.
  • [AO3-4773] - Extended test coverage for our Known Issues page.
  • [AO3-4777] - Completely unrelatedly, we've added more tests for prompt memes.
  • [AO3-4785] - And for user profiles.
  • [AO3-4722] - We also added more tests covering work-related errors.
  • [AO3-4772] - And more tests for tag set nominations.
  • [AO3-4734] - Also extended coverage for tag sets by removing a bit of code that wasn't actually used. Sneaky!
  • [AO3-4746] - Likewise, we removed several unused pieces of code concerning the display of external authors (i.e. authors of non-AO3 works and AO3 user had added to their bookmarks) and thus increased test coverage through the awesome power of maths.
  • [AO3-4802] - We also added some actual tests for external authors, though.
  • [AO3-4769] - Removed a #TODO comment for test cases that were, actually, done.
  • [AO3-4770] - Same.
  • [AO3-4724] - Sometimes different parts of our rspec tests were getting in each other's way in checking different parts of the code. We've made it easier to have a full reset step between each test to prevent these issues.
  • [AO3-4776] - We'd also run into issues with the tool we use to measure our test coverage and have now taken steps to prevent faulty results if a test has to be retried.

Rails

  • [AO3-4737] - Started the long, grueling path towards a significantly more up-to-date Rails version by rewriting a small part of the code controlling the public Wrangling Guidelines (namely to switch to strong parameters). This will be followed by many, many more small parts of our code, until we're ready for Rails 4.0.
  • [AO3-4752] - Such as the chunk of code controlling abuse reports!
  • [AO3-4753] - And admin settings!
  • [AO3-4755] - And notification banners!
  • [AO3-4756] - And the code for adding and managing languages.
  • [AO3-4757] - Also amended the Preferences code to use strong parameters.
  • [AO3-4758] - Ditto for admin posts, such as this one!
  • [AO3-4759] - Also for Support tickets.
  • [AO3-4763] - And for creating a new pseud.
  • [AO3-4764] - And finally for creating and updating a collection!

A Bug Fix

  • [AO3-4795] - Filtering a user's or collection's works for a particular fandom, character, rating and so on, and then trying to sort that subset of works (e.g. by kudos) would kick you out of the filtered view and back to all works. Now you can filter and sort at the same time again!

Nice.

Known Issues

See our Known Issues page for current issues.

Comment


Pages Navigation