AO3 News

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

Post Header

Published:
2016-12-11 05:50:14 -0500
Tags:

We fixed a handful of collection-related bugs, made life a little easier for AO3 admins, and continued to improve our automated test suite.

Credits

  • Coders: Ariana, cosette, james, Naomi, Sarken, Scott, tickinginstant
  • Code reviewers: Ariana, james, Naomi, Sarken, Scott
  • Testers: FishieMishie, Alison, Lady Oscar, mumble

Details

Collections & Challenges

  • [AO3-4686] - The autocomplete for potential matches (in the No Recipient or No Giver tabs for gift exchange matches) would list the available matches in random order. They are now sorted by quality of the match.
  • [AO3-3380] - Posting a work and then quickly editing it to add it to an anonymous collection would result in a subscription notification with the creator's name in the title and "by Anonymous" in the body. Oops. We've now put in an extra check to make sure the work didn't suddenly become anonymous before sending out the subscription email.
  • [AO3-3686] - When signing up for a prompt meme or gift exchange with a pseud that was later deleted, the sign-up would still hang around but the actual prompt would vanish. This was very awkward and shouldn't happen anymore! (Now the whole sign-up will be transferred to the default pseud, as intended.)
  • [AO3-3788] - If a work that had been bookmarked in a collection was later deleted, collection management pages would throw errors, both for the collection maintainer and the bookmarker. That's fixed now.

Imports

  • [AO3-4636] - The importer used by Open Doors for rescuing older fanwork archives tries to detect information about the fanwork from the original archive, sometimes leading to wonky tags being created. Open Doors can now opt to turn off this automatic detection.
  • [AO3-4692] - When importing a work with two or more creators, none of whom has an Archive account, the byline on the work would only show one creator. /o\ We streamlined the byline code and fixed the issue, so credit is now given where credit was due all along.

Admin

  • [AO3-4667] - We've added a button to individual works that Archive admins can use to try and fix indexing issues that would lead, for example, to the work not showing up under the appropriate tag listings. (Note: This applies to cases where a work is not showing up in a tag listing where it should be. If a work is showing up where it should not be, this button will not fix it.)
  • [AO3-4668] - There is now also a button to queue up a whole tag for reindexing.
  • [AO3-4669] - We also gave Archive admins, e.g. Support personnel, a button to sort out some other common issues users write in about. This is still in an experimental stage and includes cases where users run into an error 500 when trying to access their subscription page.
  • [AO3-4721] - Searching for a user by username or email used to show partial matches for the name, but expect exact email addresses. It now shows partial matches for both!
  • [AO3-4703] - There used to be a page in the admin area of the Archive that had been broken for a long time, so we removed all traces of it from the code.

Automated Tests & Refactoring

  • [AO3-4689] - Better tests for deleting a prompt meme.
  • [AO3-4704] - Better tests for the wrangulator.
  • [AO3-4715] - Better tests for challenges.
  • [AO3-4739] - Better tests for skins administration.
  • [AO3-4701] - Better tests for parts of the code that specifically make sure a thing exists before proceeding (because otherwise pandemonium).
  • [AO3-4725] - As above, but specifically for user profiles.
  • [AO3-4717] - The code dealing with the admin section of the Archive was refactored and the related tests were updated.
  • [AO3-4719] - The code for work searches was likewise refactored.

Misc.

  • [AO3-4723] - We added caching to fandom pages. Also, automated tests! \o/
  • [AO3-4232] - On the interstitial adult content warning page, the "If you accept cookies from our site" note was floating oddly on wide screens. It now floats where it should.
  • [AO3-4462] - We retired the Archive 1.0 site skin, in that all the related files were removed from the Archive.
  • [AO3-4474] - When justifying italicised text, the letters would get cut off by a few tiny pixels on the right, as the italics where cheekily pushing the text outside of the justified borders. We have now added a little buffer zone for those extra pixels. \o/

Known Issues

See our Known Issues page for current issues.

Comment

Post Header

Published:
2016-10-30 17:20:42 -0400
Tags:

We fixed a couple of bugs, cleaned up some code, and also added a whole lot of Cucumber tests to our suite. Mmm, veggies!

Credits

  • Coders: Ariana, bingeling, james, Sarken, tickinginstant
  • Code reviewers: Ariana, james, Naomi, Sarken
  • Testers: Lady Oscar, mumble, Rebecca Sentance, Runt, Sarken

Details

Bug Fixes

  • [AO3-3213] - Certain combinations of letters and characters in user-entered tags, such as "a.k.a." would lead to errors when trying to look at work listings for that tag. It was also impossible for wranglers to fix those, so a database admin had to step in. Now these can be wrangled just like any other tags!
  • [AO3-4375] - When logging in for the first time, new users are greeted with a small banner offering tips & tricks about Archive features and options. Our Docs team has now updated and clarified much of this information, and added links to our ever-expanding FAQ. (Hint: Tick the "Turn the new user help banner back on." option in your Preferences to access this content.)
  • [AO3-1654] - Deleting comments in a long thread could render undisplayed comments inaccessible. Now, you can properly access the rest of the thread.
  • [AO3-4663] - We added a meta tag to our layout which forces Internet Explorer to display pages in EdgeHTML mode, the highest standards mode supported by IE.
  • [AO3-4700] - We fixed a problem with the status badges in our README and switched the image links to a new service which provides a crisper look.

Automated Tests

  • [AO3-4684] - We use a little tool that tells us if our code is sufficiently covered by test cases. This release updates the necessary gems to improve the tool's accuracy.
  • [AO3-4677] - We also added coverage monitoring to the service we use for deploying new code to our Test Archive.
  • [AO3-4695] - Increased our fandoms-related test coverage.
  • [AO3-4694] - Increased our invitations-related test coverage.
  • [AO3-4690] - Increased our tags-related test coverage.
  • [AO3-4675] - Increased test coverage for our internal API.
  • [AO3-4673] - Increased test coverage for skins-related activities.
  • [AO3-4678] - 99 lines of tests on the wall, 99 lines of tests! Take one away -- actually, add 99 lines, which in this case cover tag wrangling procedures -- 15,289,462,899 lines of tests on the wall!
  • [AO3-4688] - In a continuing theme, we increased our gift exchange test coverage.
  • [AO3-4680] - Ditto, for AO3 admin activities.
  • [AO3-4670] - And even more admin activities.
  • [AO3-4679] - This one's for test cases relating to the invitation queue.
  • [AO3-4672] - AO3 admins can add languages to the Archive database, which will then appear in the language drop-down when posting a new work, for example. We added a test for this!
  • [AO3-4671] - There's now also a test for deleting or orphaning multiple works at once. "How are they not at 120% test coverage at this point???" I hear you ask. But apparently we are not.

Maintenance

  • [AO3-4646] - Updated the gem we use for parsing HTML in user-entered text.
  • [AO3-4697] - There were a lot of files that included old database tasks we weren't using anymore. Got rid of those! \o/
  • [AO3-4674] - We also cleaned up instances of devmode code that wasn't used anymore.
  • [AO3-4662] - Same for some outdated API code.
  • [AO3-4653] - Added some code to reduce the number of errors logged when tags are changed.
  • [AO3-4643] - This fix removes spurious errors logged when a subscription is deleted before the batch containing its notification is sent.
  • [AO3-4660] - This one is aimed at reducing errors we saw when works weren't being properly re-indexed.
  • [AO3-4645] - Sometimes, notifications weren't sent when works were added to a collection (due to a miscommunication between database records and mailers). We added code to address these errors.

Known Issues

See our Known Issues page for current issues.

Comment


Pages Navigation