Install

To start a new Drupal project with version 8.1.1:

To update your site and all dependencies to the latest version of Drupal:

To update your site to this specific release:
Pinning to a specific release may make it more challenging to update your site in future, see composer documentation for managing pinned versions

Using Composer to manage Drupal site dependencies

Downloads

Download drupal-8.1.1.tar.gztar.gz 11.95 MB
MD5: 529f3d72964c612695f68e0a6078b8ae
SHA-1: a697981cb1abb160f5b6f837932471689075d80d
SHA-256: 2d6644fcaa086a320cba0ba21473fbd1f8a21ceb27f91cf178df6fdb4a37ceab
Download drupal-8.1.1.zipzip 19.5 MB
MD5: 9156f1cd07296d0937d4c313b7274f77
SHA-1: a9f884195e9107ce305fba62865b29d178493892
SHA-256: 4fc980aaaebbfc0b54b8d53b681f404075a54530158db95ffb9a1faa5323e6a3

Release notes

This is a patch release of Drupal 8 and is ready for use on production sites. Learn more about Drupal 8 and read the 8.1.0 release announcement for changes since 8.0.0.

This release only contains bug fixes, along with documentation and testing improvements.

The following important issues are resolved in 8.1.1 (in addition to the dozens of other fixes listed at the end of this post):

Known issues

There are no known regressions in this release.

The following issues may affect people running Drupal 8.1.1 on specific hosting environments:

  • There is not yet per-commit testing for MySQL 5.7.9 or MariaDB 10.1.8 (both released October 2015), but there are no known issues with them. We intend to add per-commit testing on one of these databases in the future.
  • Particular Apache configurations may have issues with serving public file assets. Issue: #2619250: Disabling -MultiViews in .htaccess can cause 500 errors

Search the issue queue for all known issues.

Note that the final patch release for the 8.0.x branch was 8.0.6 on April 5th 2016. The 8.0.x branch will receive no further releases and all Drupal 8 sites are expected to update to 8.1.x in order to continue receiving bug and security fixes.

Changes since 8.1.0:

  • #2671344 by jwilson3: Better documentation for suspicious encoded string in dblog tests
  • #2716991 by mpdonadio: Incorrect ISO datetime attribute for date-only fields w/ default formatter
  • #2717401 by Boobaa: Link with in-page fragment only is rendered improperly
  • #2696353 by mpdonadio, dpovshed: Bad dates in Select List widget throw an exception
  • #2613178 by mikeryan, heddn: default_value: null in static map skips empty rows
  • #2647916 by Lendude, dawehner: Views ajax modals stop working in certain scenarios
  • #2407853 by alexpott, aerozeppelin, Berdir, vladan.me, dawehner: TaxonomyIndexTid Views plugin stores selected terms with the ID instead of UUID
  • #2711537 by chgasparoto, kostyashupenko: Syntax errors (un-quoted or mis-quoted strings) in various code examples in docs
  • #2715741 by Mile23, pfrenssen: Fix 'Drupal.Classes.FullyQualifiedNamespace' coding standard
  • #2707371 by Mile23: Fix several errors in the 'Drupal.Commenting.DocComment' coding standard
  • #2667588 by dimaro, malavya, johnrosswvsu: Document that a module's classes are not available during hook_requirements() 'install' phase
  • #2697235 by mpdonadio: Add jhedstrom as co-maintainer for DateTime module
  • #2572793 by attiks, andypost: Fix 'Drupal.WhiteSpace.OperatorSpacing' coding standard
  • #2626676 by neclimdul: Fix coversDefaultClass annotations to be FQSEN
  • #2707641 by alexpott, anoopjohn: Ensure core compliance to Drupal.Commenting.FunctionComment.ParamCommentIndentation (part 2)
  • #2707261 by alexpott, jhodgdon: Calling moduleInvokeAll in Help block is wrong
  • #2572307 by vprocessor, attiks, andriyun, alexpott, pfrenssen: Fix 'Generic.PHP.UpperCaseConstant' coding standard
  • #2702609 by Wim Leers, Berdir, Fabianx: Disable placeholdering (and BigPipe) on unsafe requests to help find forms as fast as possible (to allow EnforcedResponses to work)
  • #2572731 by attiks, andypost: Fix 'Drupal.Formatting.SpaceUnaryOperator' coding standard
  • #2582475 by alexpott: Installation fails if a valid config sync directory is defined
  • #2707619 by alexpott: Composer install generates warning
  • #2614202 by alexpott, felribeiro, dawehner, catch: CoreServiceProvider::registerUuid() assumes all environments have the same functions available
  • #2711645 by alexpott, dawehner: ConfigInstaller::isSyncing() should return true always during a config sync
  • #2714829 by Mile23: Fix 'Generic.Functions.FunctionCallArgumentSpacing' coding standard
  • #2702001 by olafkarsten, Wim Leers: Inject config factory for BigPipe (including in exception handlers)
  • #2697909 by pguillard, himanshugautam, snehi, aburrows, jhodgdon: Fix "login (noun/adjective)" vs. "log in (verb)" in comments (and logout/log out)
  • #2711973 by Berdir: buildRenderable() does not work with display plugin embed
  • #2702281 by edurenye, dpopdan, larowlan, alexpott, dawehner: Move Drupal\simpletest\RandomGeneratorTrait, Drupal\simpletest\WebAssert and Drupal\simpletest\SessionTestTrait into Drupal\Tests namespace
  • #2572601 by attiks, alexpott, tatarbj: Fix 'Drupal.Classes.ClassCreateInstance' coding standard
  • #2710081 by alexpott: Fix 'Drupal.Formatting.SpaceInlineIf' coding standard
  • #2572707 by attiks, alexpott: Fix 'Drupal.Files.EndFileNewline' coding standard
  • #2699627 by catch, dawehner, Wim Leers: url.path cache context for breadcrumbs is unnecessarily granular
  • #2714207 by alexpott: FieldUnitTestBase
  • #2711963 by jibran: Modernized ToolbarIntegrationTest
  • #2610344 by mikeker, dimaro, mohit_aghera, andriyun, anil280988, Cottser, joelpittet: Re-add some documentation about what you can get from the node object in node.html.twig
  • #2456477 by Berdir, dawehner, heddn, pguillard: Convert deprecated \Drupal\simpletest\KernelTestBase tests to KernelTestBaseNG
  • #2710103 by Pashupathi Nath Gajawada: Cleanup phpunit.xml.dist
  • #2678822 by DamienMcKenna, David_Rothstein, stefan.r, Berdir: Drupal 7.43 / 8.0.4 regression: When an anonymous user submits a form with an un-uploaded file that leads to a validation error, the file is lost on the next correct submission
  • #2710685 by dimaro, er.pushpinderrana, jhodgdon: inconsistent use of tags in docs for template_preprocess_links()
  • #2700261 by timmillwood, amateescu: allRevisions() entity queries ignore non-revisionable fields
  • #2710395 by joelrguezaleman, dimaro, nesta_, jhodgdon: No docs for ArgumentValidatorPluginBase::validateArgument(); other methods have bad first lines
  • #2700415 by nicolas.rafaelli, dimaro, rashid_786, er.pushpinderrana, korgik, David Hernández, jhodgdon: Problems with documentation of options in Url class
  • #2657826 by er.pushpinderrana: FieldHandlerInterface::getEntity() can also return NULL
  • #2709581 by Torenware, pepegarciag, jhodgdon: Better explain the $modules variable in kernel tests
  • #2708485 by damiankloip: Views Row caching still caches rows when cache plugin is 'none'
  • #2710669 by er.pushpinderrana: template_preprocess_item_list() '#wrapper_attributes' property is undocumented
  • #2708629 by tim.plunkett: \Drupal\system\Plugin\Condition\RequestPath::evaluate() fails if the current path is '/'
  • #2709411 by dagmar, jhodgdon: t() is used in an inconsistent way on Drupal\Core\Render\Element documentation
  • #2701851 by amateescu, animaci: The 'system.db_update' route should restrict access via the 'access_check.db_update' service
  • #2709625 by tim.plunkett: Wrong @group name on PermissionAccessCheckTest
  • #2073753 by amateescu, Sweetchuck, amitaibu, dawehner: Fix and add tests for the recursive rendering protection of the 'Rendered entity' formatter
  • #2696771 by Wim Leers, thpoul: Minor clean-up of \Drupal\ckeditor\Plugin\CKEditorPlugin\Internal::getConfig()
  • #2709541 by alexpott, dawehner: Set opcache.revalidate_freq when running tests
  • #2709525 by kevin.dutra: Comment bundle label is incorrect
  • #2684123 by dawehner: \Drupal\Core\Routing\RouteProvider::preLoadRoutes doens't handle the exception case correctly
  • #2700405 by amateescu, vasike: User ref field includes the Anonymous user when 'include_anonymous' is set not to, when using select widget
  • #2612334 by NickWilde: Remove dead code in \Drupal\Core\Asset\[Css|Js]Collection[Grouper|Optimizer]
  • #2667224 by rlhawk: Adding or editing "Change the author of content" action causes error
  • #2703487 by RobLoach: Move Drupal.php autoloading from "files" to "classmap"
  • #2707471 by dagmar: Langcode is duplicated in filter.format.plain_text.yml
  • #2697933 by felribeiro: Replace "does not" with "do not" in SearchLanguageTest
  • #2709569 follow-up by dawehner: Adjustments to CHANGELOG.txt

What’s next?

  1. Learn how to install Drupal
  2. Learn how to update Drupal
  3. Extend Drupal to do more
  4. Get training
  5. Check out what others built
Created by: catch
Created on: 4 May 2016 at 11:31 UTC
Last updated: 12 Mar 2018 at 21:20 UTC
Bug fixes
Insecure

Other releases