CHANGELOG.txt 106 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089
  1. Drupal 8.4.0, 2017-10-04
  2. ------------------------
  3. ### Drush users: Update to Drush 8.1.12+ or higher
  4. [Versions of Drush earlier than 8.1.12 will not work with Drupal
  5. 8.4.x](https://www.drupal.org/node/2874827). Update Drush to 8.1.12 or higher
  6. **before using it to update to Drupal core 8.4.x** or you will encounter fatal
  7. errors that prevent updates from running.
  8. * If Drush is installed globally (i.e., generally available on the web host),
  9. Drush 8.1.12 and higher will successfully update Drupal 8.3.x to 8.4.0, but
  10. users may still see [other error messages after updates have
  11. run](https://github.com/drush-ops/drush/issues/2933).)
  12. * If the site is built with Composer and includes Drush as a local dependency
  13. (less common), you should update your `composer.json` file to require at
  14. least [Drush 8.1.15](https://github.com/drush-ops/drush/releases/tag/8.1.15).
  15. Drush 8.1.14 will not work in the same composer project as Drupal 8.4.
  16. ### Updated browser requirements: Internet Explorer 9 and 10 no longer supported
  17. In April 2017, Microsoft discontinued all support for Internet Explorer 9 and
  18. 10. Therefore, [Drupal 8.4 has as well](https://www.drupal.org/node/2842298).
  19. Drupal 8.4 still mostly works in these browser versions, but bugs that affect
  20. them only will no longer be fixed, and existing workarounds for them will
  21. be removed beginning in Drupal 8.5.
  22. Additionally, Drupal 8's [browser requirements documentation
  23. page](https://www.drupal.org/docs/8/system-requirements/browser-requirements)
  24. currently lists incorrect information regarding very outdated browser versions
  25. such as Safari 5 and Firefox 5. [Clarifications to the browser policy and
  26. documentation](https://www.drupal.org/node/2390621) are underway.
  27. ### Known Issues
  28. Drupal 8.4.0 includes major version updates for two dependencies:
  29. Symfony 3.2 and jQuery 3. Both updates may introduce backwards compatibility
  30. issues for some sites or modules, so test carefully. For more information, see
  31. the "Third-party library updates" section below. Known issues related to the
  32. Symfony update include:
  33. * Drush issues:
  34. * [Incompatibility with Drush 8.1.11 and earlier](https://www.drupal.org/node/2874827).
  35. * [Other error messages with Drush 8.1.12 and higher](https://github.com/drush-ops/drush/issues/2933).
  36. * [Incompatibility with Drush 8.1.14 and earlier for Composer-built sites](https://github.com/drupal-composer/drupal-project/issues/305).
  37. * [Certain file uploads may fail
  38. silently](https://www.drupal.org/node/2906030) due to a Symfony 3 backwards
  39. compatibility break if they used the `$deep` parameter (which was already
  40. deprecated in Symfony 2.8 and is removed in Symfony 3.0. *Check any custom
  41. file upload code* that may have used the deprecated parameter and [update
  42. it according to the API change record](https://www.drupal.org/node/2743809).
  43. See the ['8.4.0 update' tag for a list of known issues across
  44. projects](https://www.drupal.org/project/issues/search?issue_tags=8.4.0%20update).
  45. [Search the issue queue for known
  46. issues](https://www.drupal.org/project/issues/search/drupal?project_issue_followers=&status%5B%5D=Open&version%5B%5D=8.x&issue_tags_op=%3D).
  47. ### Important fixes since 8.3.x
  48. Translators should take note of several [string additions and changes since the
  49. last release](https://www.drupal.org/project/issues/search/drupal?project_issue_followers=&issue_tags_op=%3D&issue_tags=String+change+in+8.4.0).
  50. #### File usage tracking
  51. Drupal 8 has several longstanding [file usage tracking
  52. bugs](https://www.drupal.org/node/2821423). To prevent further data loss,
  53. Drupal 8.4 has [disabled the automatic deletion of files with no known
  54. remaining usages](https://www.drupal.org/node/2801777). This will result of the
  55. accumulation of unused files on sites, but ensures that files erroneously
  56. reporting 0 usages are not deleted while in use. Additionally, an issue with
  57. [validation errors when saving content referencing these
  58. files](https://www.drupal.org/node/2896480) has also been resolved.
  59. [The change record explains how sites can opt back into marking files
  60. temporary](https://www.drupal.org/node/2891902). If you choose to enable the
  61. setting, you can also set "Delete orphaned files" to "Never" on
  62. `/admin/config/media/file-system` to avoid permanent deletion of the affected
  63. files.
  64. While the files will no longer be deleted by default, file usage is still not
  65. tracked correctly in several scenarios, regardless of the setting. Discussion
  66. on [how to evolve the file usage tracking
  67. system](https://www.drupal.org/node/2821423) is underway.
  68. #### Configuration export sorting
  69. * [#2361539: Config export key order is not predictable for sequences, add
  70. orderby property to config schema](https://www.drupal.org/node/2361539)
  71. resolves an issue where sequences in configuration were not sorted unless
  72. the code responsible for saving configuration explicitly performed a sort.
  73. This resulted in unpredictable changes in configuration ordering and
  74. confusing diffs even when nothing had changed. To resolve this issue, we've
  75. [added an `orderby` key to the config schema](https://www.drupal.org/node/2852566)
  76. that allows it to be sorted either by key or by value. Adding a preferred
  77. sort is strongly recommended.
  78. * Two related issues remain open:
  79. * [#2860531: Add orderby key to third-party
  80. settings](https://www.drupal.org/node/2860531) relates to unsorted
  81. sequences which result in unexpected discrepancies in configuration
  82. during a configuration import.
  83. * [#2885368: Config export key order for sequences: "orderedby" does not
  84. support cases where the order actually
  85. matters](https://www.drupal.org/node/2885368) relates to various
  86. sequences in core and contributed modules in which the source order is
  87. important.
  88. #### Revision data integrity fixes
  89. * Previously, data from draft revisions for
  90. [path aliases](https://www.drupal.org/node/2856363),
  91. [menus](https://www.drupal.org/node/2858434),
  92. and [books](https://www.drupal.org/node/2858431) could leak into the live
  93. site. Drupal 8.4.0 hotfixes all three issues by preventing changes to
  94. this data from being saved on any revision that is not the default revision.
  95. These fixes improve revision support for both stable features and the
  96. experimental Content Moderation module.
  97. * Correspondingly, [Content Moderation now avoids such scenarios with
  98. non-default revisions](https://www.drupal.org/node/2883868) by setting the
  99. 'default revision' flag earlier.
  100. * Previously, [saving a revision of an entity translation could cause draft
  101. revisions to go "missing"](https://www.drupal.org/node/2766957). Drupal 8.4.0
  102. prevents this by preventing the moderation state from being set to anything
  103. that would make the revision go "missing". Going forward, the entity system
  104. will also [provide the 'revision_translation_affected' base field by default
  105. for all revisionable and translatable entity
  106. types](https://www.drupal.org/node/2896845) for tracking such revisions.
  107. * [A similar but unrelated bug in
  108. Content Moderation](https://www.drupal.org/node/2862988) has also been fixed
  109. in this release.
  110. #### Other critical improvements
  111. * When nodes were deleted, Menu UI module deleted their menu items. However,
  112. menu items may exist even whenm Menu UI module is not enabled and can also be
  113. attached to entities other than nodes. Therefore, menu item cleanup on entity
  114. deletetion [is now performed by the Custom Menu Links
  115. module](https://www.drupal.org/node/2350797) instead, covering the previously
  116. missing cases. A related issue that [broke module uninstallation for some
  117. modules providing menu items for certain entity
  118. forms](https://www.drupal.org/node/2907654) has also been resolved.
  119. * A race condition occured in the Batch API when using fastcgi. The Batch API
  120. now ensures that [the current batch state is written completely to the
  121. database before starting the next
  122. batch](https://www.drupal.org/node/2851111).
  123. * When uninstalling modules, empty fields were left behind to be purged.
  124. However, without the field definitions from the module, it was not possible
  125. to purge them any more. [Empty field deletion is now performed
  126. immediately](https://www.drupal.org/node/2884202) instead to avoid this
  127. scenario.
  128. * When clearing caches in a translated interface, the field labels would
  129. [return to the default language](https://www.drupal.org/node/2650434).
  130. ### New stable modules
  131. The following modules, previously considered experimental, are now stable and
  132. safe for use on production sites, with full backwards compatibility and upgrade
  133. paths from 8.4.0 to future releases:
  134. #### Datetime Range
  135. The [Datetime Range module](https://www.drupal.org/node/2893128) provides a
  136. field type that allows end dates to support contributed modules like
  137. [Calendar](https://www.drupal.org/project/calendar). This stable release is
  138. backwards-compatible with the 8.3.x experimental version and shares a
  139. consistent API with other Datetime fields.
  140. Future releases may improve Views support, usability, Datetime Range field
  141. validation, and REST support. For bugs or feature requests for this module,
  142. [see the core Datetime issue
  143. queue](https://www.drupal.org/project/issues/search/drupal?project_issue_followers=&status%5B%5D=Open&version%5B%5D=8.x&component%5B%5D=datetime.module&issue_tags_op=%3D).
  144. #### Layout Discovery
  145. The [Layout Discovery module](https://www.drupal.org/node/2834025) provides
  146. an API for modules or themes to register layouts as well as five common
  147. layouts. Providing this API in core enables core and contributed layout
  148. solutions to be compatible with each other. This stable release is
  149. backwards-compatible with the 8.3.x experimental version and introduces
  150. [support for per-region attributes](https://www.drupal.org/node/2885877).
  151. #### Media
  152. The new core [Media module](https://www.drupal.org/node/2831274) provides an
  153. API for reusable media entities and references. It is based on the contributed
  154. [Media Entity module](https://www.drupal.org/project/media_entity).
  155. Since there is a rich ecosystem of Drupal contributed modules built on Media
  156. Entity, the top priority for this release is to [provide a stable core API and
  157. data model](https://www.drupal.org/node/2895059) for a smoother transition for
  158. these modules. Developers and expert site builders can now add Media as a
  159. dependency. Work is underway to [provide an update path for existing sites'
  160. Media Entity data](https://www.drupal.org/node/2880334) and to [port existing
  161. contributed modules to the improved core
  162. API](https://www.drupal.org/node/2860796). Both versions cannot be used at the
  163. same time, so we also [prevent the 1.x version of the contributed Media Entity
  164. module from being enabled at the same time as the core Media
  165. module](https://www.drupal.org/node/2896427).
  166. Note that **the core Media module is currently marked hidden** and will not
  167. appear on the 'Extend' (module administration) page. (Enabling a contributed
  168. module that depends on the core Media module will also enable Media
  169. automatically.) The module will be displayed to site builders normally once
  170. user experience issues with it are resolved. Similarly, the REST API and
  171. normalizations for Media is not final and support for decoupled applications
  172. will also be improved in a future release.
  173. #### Inline Form Errors
  174. The [Inline Form Errors module](https://www.drupal.org/node/2897652) provides a
  175. summary of any validation errors at the top of a form and places the individual
  176. error messages next to the form elements themselves. This helps users
  177. understand which entries need to be fixed, and how. Inline Form Errors was
  178. provided as an experimental module from Drupal 8.0.0 on, but it is now stable
  179. and polished enough for production use. See the core [Inline Form Errors module
  180. issue queue](https://www.drupal.org/project/issues/drupal?text=&status=Open&priorities=All&categories=All&version=All&component=inline_form_errors.module)
  181. for outstanding issues.
  182. #### Workflows
  183. The Workflows module provides an abstract system of states (like Draft,
  184. Archived, and Published) and transitions between them. Workflows can be used by
  185. modules that implement non-publishing workflows (such as for users or products)
  186. as well as content publishing workflows.
  187. Drupal 8.4 introduces a final significant backwards compatibility and data
  188. model break for this module, [moving responsibility for workflow states and
  189. transitions from the Workflow entity to the Workflow type
  190. plugin](https://www.drupal.org/node/2849827). Read [Workflow type plugins are
  191. now responsible for state and transition
  192. schema](https://www.drupal.org/node/2897706) for full details on the API and
  193. data model changes related to this fix. Now that this change is complete, [the
  194. Workflows module became stable](https://www.drupal.org/node/2897130)!
  195. While the module can be installed as-is, it is not useful in itself without
  196. either Content Moderation and/or some other module that requires it.
  197. ### Content authoring and site administration improvements
  198. * The "Save and keep (un)published" dropbutton has been replaced with [a
  199. "Published" checkbox and single "Save"
  200. button](https://www.drupal.org/node/2068063). The "Save and..." dropbutton
  201. was a new design in Drupal 8, but users found it confusing, so we have
  202. restored a design that is more similar to the user interface for Drupal 7 and
  203. earlier.
  204. * Previously, deleting a field on a content type would also delete any views
  205. depending on the field. While the confirmation form did indicate that the
  206. view would be deleted, users did not expect the behavior and often missed the
  207. message, leading to data loss. [Now, the view is disabled
  208. instead](https://www.drupal.org/node/2468045). In the future, we intend to
  209. [notify users that configuration has been
  210. disabled](https://www.drupal.org/node/2832558) (as in this fix) as well as
  211. [give users clearer warnings for other highly destructive
  212. operations](https://www.drupal.org/node/2773205).
  213. * The [Drupal toolbar no longer flickers](https://www.drupal.org/node/2542050)
  214. during page rendering, thus improving perceived front-end performance.
  215. * Options in [timezones selector are now grouped by
  216. regions](https://www.drupal.org/node/2847651) and labeled by cities instead
  217. of timezone names, making it much easier for users to find and select the
  218. specific timezone they need.
  219. * Both the ["Comments" administration page at
  220. `/admin/content/comment`](https://www.drupal.org/node/1986606) and the
  221. ["Recent log messages" report provided by
  222. dblog](https://www.drupal.org/node/2015149) are now configurable views. The
  223. "Comments" administration page also [has some default filters
  224. added](https://www.drupal.org/node/2898344).
  225. * Useful meta information about a node's status is typically displayed at the
  226. top of the node sidebar. Previously, this meta information was provided by
  227. the Seven theme, so it was not available in other administrative themes.
  228. [This meta information is now provided by node.module
  229. itself](https://www.drupal.org/node/2803875) so other administration themes
  230. can access it.
  231. * [Views now supports rendering computed
  232. fields](https://www.drupal.org/node/2852067).
  233. ### REST and API-first improvements
  234. * Authenticated REST API performance increased by 15% by [utilizing the Dynamic
  235. Page Cache](https://www.drupal.org/node/2827797).
  236. * POSTing entities [can now happen at `/node`, `/taxonomy/term` and so
  237. on](https://www.drupal.org/node/2293697), instead of `/entity/node`,
  238. `/entity/taxonomy_term`. Instead of confusingly different URLs, they therefore
  239. now use the URLs you'd expect. Backwards compatibility is maintained.
  240. * There is now a dedicated resource for [resetting a user's
  241. password](https://www.drupal.org/node/2847708).
  242. * Time fields now are [normalized to RFC3339 timestamps by
  243. default](https://www.drupal.org/node/2768651), fixing time ambiguity.
  244. Existing sites continue to receive UNIX timestamps, but can opt in. [See the
  245. change record for more information about backwards compatibility and on how
  246. to opt in](https://www.drupal.org/node/2859657).
  247. * [Path alias fields are now normalized as
  248. well](https://www.drupal.org/node/2846554). [See the change record for
  249. information about how this impacts API-first modules and other features
  250. relying on serialized entities](https://www.drupal.org/node/2856220).
  251. * When denormalization fails, a [422 response is now
  252. returned](https://www.drupal.org/node/2827084) instead of a 400, per the HTTP
  253. specification.
  254. * With CORS enabled to allow origins besides the site's own host, [submitting
  255. forms was broken](https://www.drupal.org/node/2853201) unless the site's own
  256. host was also explicitly allowed. This is now resolved.
  257. * Fatal errors and exceptions [now show a
  258. backtrace](https://www.drupal.org/node/2853300) for all non-HTML requests as
  259. well as HTML requests, which makes for easier debugging and better bug
  260. reports.
  261. * Massive expansion of test coverage.
  262. ### Performance and scalability improvements
  263. * Drupal 8 caches at various different levels for more effective caching.
  264. However, this resulted in exessively growing cache tables with tens or
  265. hundreds of thousands of entries, and gigabytes in size. [A new limit of 5000
  266. rows per cache bin was introduced to limit this
  267. growth](https://www.drupal.org/node/2526150).
  268. * The internal page cache now [has a dedicated cache
  269. bin](https://www.drupal.org/node/2889603) distinct from the rest of the
  270. render cache for improved scalability.
  271. * The service collector pattern instantiates all services it collects, which is
  272. expensive, and unnecessary for some use cases. For those use cases, a [new
  273. service ID collector](https://www.drupal.org/node/2472337) pattern has been
  274. added and the theme negotiator updated to use it. [See the change record for
  275. information about how to use the service ID
  276. collector](https://www.drupal.org/node/2598944) for improved performance.
  277. * The maximum time in-progress forms are cached [is now
  278. customizable](https://www.drupal.org/node/1286154) rather than being limited
  279. to a default cache lifetime of 6 hours. Sites can decrease the lifetime to
  280. reduce cache footprint, or increase it if needed for a particular site's
  281. usecase. [See the change record to learn how to access this new
  282. setting](https://www.drupal.org/node/2886836).
  283. * If there are no status messages, the corresponding rendering [is now
  284. skipped](https://www.drupal.org/node/2853509). On simple sites that use the
  285. Dynamic Page Cache (the default), this can result in a 10% improvement when
  286. there are no messages!
  287. * [Optimized the early Drupal installer](https://www.drupal.org/node/2872611)
  288. to check whether any themes are installed first before invoking an
  289. unnecessary function, which improves Drupal install time measurably for both
  290. sites and automated tests.
  291. ### Developer experience improvements
  292. * [Adopted Airbnb JavaScript style guide
  293. 14.1](https://www.drupal.org/node/2815077) as the new baseline set of coding
  294. standards for Drupal core and contributed modules. [See the change record for
  295. information about how to configure your project for
  296. eslint](https://www.drupal.org/node/2873849).
  297. * Field type definitions can now [enforce the cardinality of the
  298. field](https://www.drupal.org/node/2403703). [See the change record for
  299. information about how to specify a cardinality via the
  300. annotation](https://www.drupal.org/node/2869873).
  301. * [Added new methods](https://www.drupal.org/node/2869809) to make getting
  302. typed configuration entity representations easier. [See the change record for
  303. more information about how to invoke these
  304. methods](https://www.drupal.org/node/2877282).
  305. * The `html_tag` render element now [supports nested render
  306. arrays](https://www.drupal.org/node/2694535), enabling the creation of
  307. dynamic SVGs. [See the change record for information about how you can use
  308. this in your theme](https://www.drupal.org/node/2887146).
  309. * [Added more helpful errors](https://www.drupal.org/node/2705037) when CSS
  310. is not properly nested under an existing category in asset libraries.
  311. * Also see the [change records for the 8.4.x
  312. branch](https://www.drupal.org/list-changes/drupal/published?keywords_description=&to_branch=8.4.x&version=&created_op=%3E%3D&created%5Bvalue%5D=&created%5Bmin%5D=&created%5Bmax%5D=)
  313. for other changes for developers.
  314. ### Automated testing improvements
  315. * [PHPUnit has been updated from 4.8.28 to
  316. 4.8.35](https://www.drupal.org/node/2850797) in order to incorporate a
  317. forward-compatibility layer for PHPUnit 4.8, which will be useful during a
  318. future migration to PHPUnit 5 or PHPUnit 6.
  319. * Many former WebTestBase tests were converted to BrowserTestBase. [Track
  320. current progress](http://simpletest-countdown.org/).
  321. * The default approach for testing deprecated code has changed to [require use
  322. of the Drupal core deprecation policy](https://www.drupal.org/node/2488860)
  323. (`@trigger_error()`) to mark code deprecated; otherwise a test error will
  324. be thrown. [See the change record for information about how to update
  325. `phpunit.xml` and how to test deprecated
  326. code](https://www.drupal.org/node/2811561).
  327. * BrowserTestBase is [no longer dependent on traits from
  328. Simpletest](https://www.drupal.org/node/2803621). Backwards
  329. compatibility is preserved.
  330. * [Resolved random test failures](https://www.drupal.org/node/2866056) due to
  331. ResourceTestBase's HTTP client timeout of 30 seconds.
  332. ### Third-party library updates
  333. * [Drupal's Symfony dependency has been updated from Symfony 2.8 to Symfony
  334. 3.2](https://www.drupal.org/node/2712647). This major version update is
  335. necessary because Symfony 2.8 support will end around the release of Drupal
  336. 8.6.0 next year. See the change record for information about [Symfony 3
  337. backwards compatibility breaks that affected Drupal
  338. core](https://www.drupal.org/node/2743809). [Drupal 8 also requires Symfony
  339. 3.2.8](https://www.drupal.org/node/2871253) because of a bug in Symfony
  340. 3.2.7.
  341. * [#2533498: Update jQuery to version 3](https://www.drupal.org/node/2533498).
  342. Now that jQuery 3.0 has been released, jQuery 2.x will only be receiving
  343. security updates, so Drupal 8.4.0 ships with this library update. jQuery 3
  344. features numerous improvements, including better error reporting. See the
  345. [jQuery Core 3.0 Upgrade Guide](https://jquery.com/upgrade-guide/3.0/) for
  346. information on jQuery 3 backwards compatibility breaks that might affect the
  347. JavaScript code in your modules, themes, and sites.
  348. * The zurb/joyride library (used by the Tour module) has been [updated to a
  349. development version higher than 2.1.0.1](https://www.drupal.org/node/2898808)
  350. to resolve an upstream incompatibility with jQuery 3. We will update to
  351. Joyride 2.1.1 once it is available with the needed fix.
  352. * [zendframework/zend-diactoros has been updated from 1.3.10 to 1.4.1](https://www.drupal.org/node/2874817).
  353. * [jQuery UI has been updated from 1.11.4 to 1.12.1](https://www.drupal.org/node/2809427).
  354. * [jQuery Once has been updated from 2.1.1 to 2.2.0](https://www.drupal.org/node/2899156).
  355. * [CKEditor has been updated from 4.6.2 to 4.7.2](https://www.drupal.org/node/2904142).
  356. * [asm89/stack-cors has been updated from 1.0 to 1.1](https://www.drupal.org/node/2853201).
  357. * [The minimum phpsec/prophecy requirement is now 1.4](https://www.drupal.org/node/2900800).
  358. * [composer/installers has been updated from 1.2.0 to 1.4.0](https://www.drupal.org/node/2900112).
  359. * [wikimedia/composer-merge-plugin has been updated from 1.4.0 to 1.4.1](https://www.drupal.org/node/2900112).
  360. * [guzzlehttp/guzzle has been updated from 6.2.3 to 6.3.0](https://www.drupal.org/node/2900112).
  361. * [mikey179/vfsstream has been updated from 1.6.4 to 1.6.5](https://www.drupal.org/node/2900112).
  362. * [phpunit/phpunit has been updated from 4.8.35 to 4.8.36](https://www.drupal.org/node/2900112).
  363. * [masterminds/html5 has been updated from 2.2.2 to 2.3.0](https://www.drupal.org/node/2909743).
  364. * [symfony-cmf/routing has been udpated from 1.4.0 to 1.4.1](https://www.drupal.org/node/2909743).
  365. ### Experimental modules
  366. #### Migrate ([beta stability](https://www.drupal.org/core/experimental#beta))
  367. Migrate provides a general API for migrations. It will be considered completely
  368. stable once all issues tagged [Migrate
  369. critical](https://www.drupal.org/project/issues/search/drupal?project_issue_followers=&status%5B%5D=Open&version%5B%5D=8.x&issue_tags_op=%3D&issue_tags=Migrate+critical)
  370. are resolved.
  371. * This release includes numerous developer experience improvements for Migrate
  372. and Migrate Drupal, including [deprecating outdated references to
  373. "CCK"](https://www.drupal.org/node/2751897), [simplifying field type
  374. mapping](https://www.drupal.org/node/2896507), renaming several plugins to
  375. better capture their and many other API and documentation improvements.
  376. (Backwards compatibility is provided in each case Migrate is in beta.)
  377. * Added the ability to [provide the source
  378. module](https://www.drupal.org/node/2569805) to migrations to help site
  379. owners review what data is being migrating, especially for cases where the
  380. source and destination module are not the same (for example if a new Drupal 8
  381. module replaces old functionality.
  382. #### Migrate Drupal and Migrate Drupal UI ([alpha stability](https://www.drupal.org/core/experimental#alpha))
  383. Migrate Drupal module provides API support for Drupal-to-Drupal migrations, and
  384. Migrate Drupal UI offers a simple user interface to run migrations from older
  385. Drupal versions.
  386. * This release adds [date](https://www.drupal.org/node/2566779) and
  387. [node reference](https://www.drupal.org/node/2814949) support for Drupal 6 to
  388. 8 migrations.
  389. * Core provides migrations for most Drupal 6 data and can be used for migrating
  390. Drupal 6 sites to Drupal 8, and the Drupal 6 to 8 migration path is nearing
  391. beta stability. Some gaps remain, such as for some internationalization data.
  392. ([Outstanding issues for the Drupal 6 to Drupal 8
  393. migration](https://www.drupal.org/project/issues/search/drupal?project_issue_followers=&status%5B%5D=1&status%5B%5D=13&status%5B%5D=8&status%5B%5D=14&status%5B%5D=15&status%5B%5D=4&issue_tags_op=%3D&issue_tags=migrate-d6-d8).)
  394. * The Drupal 7 to Drupal 8 migration is incomplete but is suitable for
  395. developers who would like to help improve the migration and can be used to
  396. test upgrades especially for simple Drupal 7 sites. Most high-priority
  397. migrations are available. ([Outstanding issues for the Drupal 7 to Drupal 8
  398. migration](https://www.drupal.org/node/2456259).)
  399. * Drush support for Migrate is currently only available in the
  400. [Drupal Upgrade](https://www.drupal.org/project/migrate_upgrade) contributed
  401. module. (See the [pull request to add support to
  402. Drush](https://github.com/drush-ops/drush/issues/2140).)
  403. * Conflicting text field processing settings [are now identified and
  404. logged](https://www.drupal.org/node/2842222) to avoid security or data
  405. integrity issues with the migration of plain and formatted text fields.
  406. * Automatic redirects are now [added for translation node paths that are no
  407. longer valid](https://www.drupal.org/node/2850085) after migration has merged
  408. translations into a single node.
  409. * A data integrity bug that resulted in [duplicate comment types and incorrect
  410. comment_entity_statistics](https://www.drupal.org/node/2853872) for node and
  411. forum comment migrations has been resolved.
  412. * A bug that [stopped public files from being migrated from D6 to D8 if the
  413. user first selected Drupal 7 in the UI](https://www.drupal.org/node/2907233)
  414. has also been resolved.
  415. #### Content Moderation ([beta stability](https://www.drupal.org/core/experimental#beta))
  416. Content Moderation allows workflows from the Workflows module to be applied to
  417. content. Content Moderation has beta stability in 8.4.0-alpha1. Notable improvements in this release:
  418. * Workflow states are now [selected from a select list, rather than under a drop-button](https://www.drupal.org/node/2753717), which represents a significant
  419. usability improvement.
  420. * Now that workflows can be applied to any revisionable entity type, Content
  421. Moderation [adds entity type checkboxes to the workflow form](https://www.drupal.org/node/2843083).
  422. This allows site administrators to configure which entity types should have
  423. the workflow at the same time as they configure the workflow itself, for a
  424. more intuitive user experience.
  425. * Content Moderation now [prevents the deletion of workflows that are currently in use](https://www.drupal.org/node/2830740)
  426. to prevent fatal errors and data integrity problems.
  427. * The confusing terminology of
  428. ["forward revisions" has been replaced with that of "pending revisions"](https://www.drupal.org/node/2890364).
  429. If your contributed module refers to revisions that are not yet published, it
  430. should use this new term.
  431. * [The 'Latest revision' views filter has been rewritten to avoid relying on a
  432. custom {revision_tracker}](https://www.drupal.org/node/2865579), and that
  433. table has been removed from the database schema.
  434. As per the experimental module process, there were some backwards-incompatible
  435. changes since Drupal 8.3.x. Experimental modules do not offer a supported
  436. upgrade path, but [an unofficial upgrade path is
  437. available](https://www.drupal.org/node/2896630).
  438. #### Field Layout ([alpha stability](https://www.drupal.org/core/experimental#alpha))
  439. This module provides the ability for site builders to rearrange fields on
  440. content types, block types, etc. into new regions, for both the form and
  441. display, on the same forms provided by the normal field user interface. Field
  442. Layout has had several bugfixes since 8.3.0, but no significant changes. See
  443. the [entity display layout roadmap](https://www.drupal.org/node/2795833) for
  444. the next steps for this module, which needs to become stable by 8.5.0 to remain
  445. in Drupal core.
  446. #### Settings Tray ([beta stability](https://www.drupal.org/core/experimental#beta))
  447. The Settings Tray module allows configuring page elements such as blocks and
  448. menus from the frontend of your site. Settings Tray has improved significantly
  449. since Drupal 8.3.0, including numerous user interaction and accessibility
  450. fixes, better compatibility with stable core modules like Quick Edit and
  451. Contextual Links, added documentation, and [a CSS
  452. reset](https://www.drupal.org/node/2826722) for better themer experience.
  453. The module reached beta stability following completion of [moving the
  454. off-canvas dialog renderer into a core
  455. component](https://www.drupal.org/node/2784443), and [renaming the machine name
  456. of the module to settings_tray](https://www.drupal.org/node/2803375), to match
  457. its user-facing name. We hope to make Settings Tray stable by 8.5.0. To track
  458. progress, see the ["outside in" roadmap issue](https://www.drupal.org/node/2762505).
  459. #### Place Blocks ([alpha stability](https://www.drupal.org/core/experimental#alpha))
  460. This feature allows the user to place a block on any page and see the region
  461. where it will be displayed, without having to navigate to a backend
  462. administration form. [8.4.0-alpha1 was the deadline for Place Blocks to
  463. stabilize](https://www.drupal.org/core/experimental#versions), but the module's
  464. roadmap was not completed. Furthermore, the module is not intended as a
  465. standalone feature and should instead be a built-in part of the Block system.
  466. For these reasons, [Place Blocks module has been marked hidden in this
  467. release](https://www.drupal.org/node/2898267) (it can still be enabled with
  468. Drush). The Place Blocks module itself will be turned into an empty module in
  469. Drupal 8.5.x, since ideally the core Block system will offer the same
  470. functionality in 8.5.0 (though this depends on completion of a [core patch for
  471. the feature](https://www.drupal.org/node/2739075).)
  472. Drupal 8.3.0, 2017-04-05
  473. ------------------------
  474. - Added modules:
  475. * Added the Workflows module (experimental) which abstracts transitions and
  476. states from Content Moderation into a separate component for reuse by
  477. other modules implementing non-publishing workflows.
  478. * Added the Layout Discovery module (experimental) which provides an API for
  479. modules or themes to register layouts.
  480. * Added the Field Layout module (experimental) which provides the ability
  481. for site builders to rearrange fields on content types, block types, etc.
  482. into new regions, for both the form and display, on the same forms
  483. provided by the normal field user interface.
  484. - Updated vendor libraries:
  485. * Updated to Twig 1.25.
  486. * Updated to jQuery 2.2.4.
  487. * Updated to CKEditor 4.6.2 (with new Moono-Lisa skin).
  488. * Updated Symfony components to 2.8.18.
  489. * Updated PHPUnit to 4.8.35.
  490. * Applied patch-level updates to the latest versions for all dependencies
  491. wherever possible. Minor updates applied for Symfony PSR-7 Bridge and
  492. Zend Stdlib, which Drupal does not depend on directly.
  493. - Browser support:
  494. * Advance notice: Internet Explore 9 and 10 will no longer supported from
  495. 8.4.x, scheduled for October 2017. Microsoft has now ended support for
  496. these browsers. Drupal will still support Internet Explorer 11 and its
  497. replacement, Edge.
  498. - Raised stability levels of experimental modules:
  499. * Updated the BigPipe module from beta to stable.
  500. * Updated the Migrate module from alpha to beta.
  501. * See https://www.drupal.org/core/experimental#versions for more
  502. information about the stability levels of experimental modules.
  503. - Improved authoring features:
  504. * Can now drag and drop images into image fields in Quick Edit mode.
  505. * Image fields are now limited to only accepting images, so that users on
  506. mobile clients are not offered a confusing and non-functional video
  507. upload option.
  508. * CKEditor now utilizes the AutoGrow plugin to better take advantage of
  509. larger screen sizes.
  510. - Improved site building and administration:
  511. * Redesigned status report.
  512. * Standardized display of Views overview page to more closely match that of
  513. other administrative overview pages.
  514. * Views filter order now matches the table column order below in Content
  515. and People overview pages.
  516. * The "Allowed HTML tags" input has been converted to a textarea, which
  517. significantly improves the usability of HTML filter configuration.
  518. * Removed the 'disabled' region from block administration.
  519. * Incoming paths are again case-insensitive for routing, similar to earlier
  520. major Drupal versions.
  521. - Content Moderation improvements (experimental):
  522. * Refactored to use new experimental Workflows module.
  523. * Now supports moderation of non-translatable entity types.
  524. * When reverting a moderated revision, the moderation state is now
  525. reverted too.
  526. * Added an API to create and enforce default workflow states and
  527. transitions.
  528. * Allow moderation of entity types without bundles, as long as they have
  529. revisions.
  530. * Publishes any entity type that implements EntityPublishedInterface, not
  531. just Nodes.
  532. - Migration improvements (experimental):
  533. * Drupal 7 core node translations are now migrated to Drupal 8.
  534. * Configuration translation support is added to migrations in general and
  535. implemented for Drupal 6 user profile fields.
  536. - Improved REST API and decoupled site features:
  537. * REST API now supports the registering of users.
  538. * Anonymous REST API performance increased by 60% by utilizing the internal
  539. page cache.
  540. * Improved the response bodies and status codes for requests with incorrect
  541. request headers or request bodies, in dozens of situations.
  542. * Massive overhaul of the test coverage.
  543. * 403 responses now return reason why access was denied.
  544. * Serialized values for Booleans and integers are now returned as the
  545. correct data type, rather than incorrectly typed as strings.
  546. - Improved performance/scalability:
  547. * Optimized class loader detection made more generic to support class
  548. loaders other than ApcClassLoader.
  549. * ViewsData and Token info cache now use the default cache bin to prevent
  550. APCu memory from being filled too quickly.
  551. * Improve statistics performance by adding a swappable backend.
  552. - Improved developer APIs:
  553. * Deprecated several routing services in favor of two more unified services.
  554. * Replaced the deprecated Symfony ExecutionContextInterface by subclassing
  555. from ConstraintValidator to prepare for an update to Symfony 3.
  556. * EntityPublishedInterface and EntityPublishedTrait have been added to give
  557. a generic publishing API, and are being used by Node and Comment entity
  558. types.
  559. * Added a collection label to EntityType. This is a plural uppercase label
  560. for a collection of entities - e.g. "Workflows".
  561. - Changed coding standards:
  562. * Officially adopted short array syntax and updated all of core accordingly.
  563. * PHP CodeSniffer and Drupal Coder have been added as composer dev
  564. requirements, so they can be installed automatically with
  565. `composer install --dev` rather than requiring separate installation. (Do
  566. not use `composer install --dev` for production sites.)
  567. * Most global constants in Drupal 8 have been deprecated in favor of class
  568. constants. As a best practice, use appropriate class constants rather than
  569. global constants.
  570. - Testing improvements:
  571. * Integrated PHPUnit verbose output in SimpleTest UI.
  572. * Improved backward compatibility with WebTestBase.
  573. * Improved backward compatibility between BrowserTestBase and WebTestBase.
  574. * Many old WebTestBase tests have been moved to BrowserTestBase.
  575. * Expanded automated test coverage for JavaScript.
  576. - Package management:
  577. * composer.json now uses the new official endpoint for modules and themes,
  578. packages.drupal.org.
  579. * Custom modules and themes can now be installed to correct locations using
  580. composer.
  581. * Added Package.json enabling new JavaScript language features.
  582. Drupal 8.2.0, 2016-10-05
  583. ------------------------
  584. - Updated the git repository configuration to not normalize line endings for
  585. files of unknown type.
  586. - Added vendor libraries:
  587. * Added Stack/Cors 1.0.0.
  588. - Updated vendor libraries:
  589. * Updated to jQuery 2.2.3.
  590. * Updated to Twig 1.24.
  591. * Updated to CKEditor 4.5.11.
  592. * Updated to Symfony Routing 1.4.0.
  593. * Updated to Stack/Builder 1.0.4.
  594. * Updated to Guzzle 6.2.1.
  595. - Added modules:
  596. * Added the Place Block module (experimental) to place a block on any page
  597. without having to navigate to the backend administration form.
  598. * Added the Settings Tray module (experimental) to edit the configuration of
  599. any block on the page. Its machine name in this release is "outside_in".
  600. * Added the Content Moderation module (experimental) to define and use
  601. workflow states such as Draft, Archived and Published. This functionality
  602. was previously provided by the contributed module Workbench Moderation.
  603. * Added the Datetime Range module (experimental) that provides a new field
  604. type with support for start and end dates.
  605. - Raised stability levels of experimental modules:
  606. * Updated the BigPipe module from alpha to beta.
  607. * See https://www.drupal.org/core/experimental#versions for more
  608. information about the stability levels of experimental modules.
  609. - Improved authoring features:
  610. * Relative URLs are automatically converted to absolute ones when content
  611. is output to an RSS feed.
  612. * Enabled revisions by default on new node types.
  613. * Added a redirect option to site-wide contact forms.
  614. * Whenever a new entity is created, a link to it is now provided in a
  615. status message, for easy access to it regardless of the form workflow.
  616. * Styled CKEditor dialogs to match Drupal dialogs.
  617. - Improved site administration experience:
  618. * Numerous improvements to user interface text.
  619. - Improved site building features:
  620. * Added the ability to remove a module's content entities prior to
  621. uninstallation.
  622. * Made it possible to select the comment view mode in the formatter form.
  623. * Fixed the Migrate module to skip over migration sources that require
  624. code from uninstalled modules.
  625. - Improved REST API and decoupled site features:
  626. * Added support for reading (GET) configuration entities as REST resources.
  627. * Added dedicated resources for user login, logout and registration.
  628. * Added support for selecting an authentication provider as part of the
  629. configuration of a REST Export Views Display.
  630. * Added a cors.config service parameter for enabling and configuring
  631. cross-origin resource sharing (CORS).
  632. * Simplified REST configuration with per-resource configuration entities
  633. and less verbose configuration structure. (The previous, advanced
  634. configuration structure is also still supported.)
  635. * Improved the response messages and status codes for requests with missing
  636. or incorrect headers.
  637. * Improved responses to PATCH requests to entity resources to contain the
  638. updated entity in the response body.
  639. - Improved developer APIs:
  640. * Added support for specifying the field item delta as part of an entity
  641. query condition. This was possible in Drupal 7 via
  642. EntityFieldQuery::fieldDeltaCondition(), but missing from earlier
  643. versions of Drupal 8.
  644. - Improved performance/scalability:
  645. * In the internal page cache, 404 responses are now cached for a shorter
  646. time (1 hour by default), to consume less space.
  647. * Breadcrumbs are now cached by the parent of the path rather than the full
  648. path, for fewer cache entries and higher cache hit rates.
  649. - Changed coding standards:
  650. * Local variables and parameters can now use camelCase.
  651. * A blank line is now required after the <?php opening tag.
  652. - Testing improvements:
  653. * Increased feature parity of BrowserTestBase with WebTestBase, including a
  654. deprecated AssertLegacyTrait for easier conversions.
  655. * Converted all kernel tests to the PHPUnit-based kernel test API.
  656. * Improved error reporting for all PHPUnit tests (including unit, kernel,
  657. browser, and JavaScript tests).
  658. Drupal 8.1.0, 2016-04-20
  659. ------------------------
  660. - Removed Composer-managed vendor from the git repository:
  661. * Drupal.org packager adds dependencies to zip and tar package. This can be
  662. used without any further steps.
  663. * When not using zip / tar files, e.g. when using a git clone, run composer
  664. install to get dependencies.
  665. * See https://www.drupal.org/documentation/install/download#git
  666. for instructions.
  667. - Added vendor libraries:
  668. * Added Symfony Polyfill Iconv 1.1.0.
  669. * Added paragonie/random_compat 1.4.1.
  670. - Updated vendor libraries:
  671. * Updated to the last 2.x minor version of Symfony: 2.8 (2.8.4).
  672. * Updated to CKEditor 4.5.8.
  673. * Updated to Modernizr 3.3.1.
  674. - Added modules:
  675. * Added the Migrate Drupal UI module (experimental) to provide a UI for
  676. migrating content and configuration from Drupal 6 and Drupal 7.
  677. * Added the BigPipe module (experimental) to improve perceived performance.
  678. - Improved authoring features:
  679. * Enabled browsers' (native) spell checker in CKEditor.
  680. * Added language toolbar button in CKEditor for identifying the language of
  681. text parts.
  682. - Improved site administration experience:
  683. * Improved admin/help page to be more flexible and list tours on it.
  684. - Improved site building features:
  685. * Added a "Rendered entity" field handler in Views.
  686. - Improved distribution building features:
  687. * Added support for distributions to specify an installation language.
  688. - Improved developer APIs:
  689. * Added local ID and revision fields to HAL web service output.
  690. * Added support for image toolkits to be defined with plugin derivatives,
  691. reducing the code needed to extend them.
  692. * Simplified Migrate API by replacing migration configuration entities with
  693. migration plugins.
  694. * Various improvements for defining entity types:
  695. * Added support for entity types to specify translatable plural labels.
  696. * Added a revision log interface and trait for revisionable entity types.
  697. * Added key field definitions to ContentEntityBase, reducing code from
  698. child classes.
  699. * Added generic route providers for add-page and add-form entity routes,
  700. reducing the code needed to define an entity type.
  701. - Testing improvements:
  702. * Added support for automated JavaScript testing.
  703. * Added verbose output for BrowserTestBase.
  704. * Improved reporting of PHPUnit results.
  705. Drupal 8.0.0, 2015-11-19
  706. ------------------------
  707. - Significantly improved the front end:
  708. * Made all built-in themes responsive.
  709. * Added support for responsive images.
  710. * Made built-in tables responsive with three levels of column importance.
  711. * Added Twig as the default template engine and converted all .tpl.php
  712. templates and theme functions to .html.twig.
  713. * Removed the PHPTemplate engine.
  714. * Several large scale cleanups of the markup produced by Drupal.
  715. * Added Classy as a base theme to maintain CSS classes and wrappers.
  716. * Added Stable as the default base theme to maintain backwards compatibility
  717. for core template and CSS changes, because templates and CSS outside
  718. Stable can be improved in minor releases (8.1.0, 8.2.0, etc.).
  719. * Redesigned several key elements of the Seven theme.
  720. * Added support for HTML5 elements.
  721. * Included Backbone.js and Underscore.js JavaScript frameworks.
  722. * Updated to jQuery 2.1.4.
  723. * Updated to jQuery UI 1.11.4.
  724. * Removed jquery.bbq.
  725. * Removed the Garland theme from core.
  726. * Removed the Overlay module from core and replaced it with a simple,
  727. dynamic "Back to site" link.
  728. * Improved the asset library system to manage CSS and JavaScript files and
  729. their dependencies. Allowing for smaller AJAX request payloads.
  730. * jQuery is no longer loaded on all pages, only when another asset needs it.
  731. * No JavaScript is loaded at all for anonymous users by default, for faster
  732. page loads.
  733. * Implemented SMACSS-style categorization for CSS files.
  734. * Removed most support for Internet Explorer 8 and below.
  735. * Added Modernizr for making styling changes based on browser support.
  736. * All page template variables converted to blocks (title, breadcrumb,
  737. branding, etc).
  738. * Added the Breakpoint module to manage breakpoints of responsive designs.
  739. * Introduced native Schema.org output in pages.
  740. * Made use of semantic HTML 5 tags when possible. This also makes form input
  741. on mobile devices much easier for users.
  742. * Redesigned icons to look good on high resolution (retina) displays too.
  743. - Made the site administration experience simpler:
  744. * Redesigned the installer.
  745. * Visually updated and extended the Seven (administration) theme.
  746. * Made the administration toolbar responsive and touch friendly.
  747. * Added search to the module listing and made the page easier to read.
  748. * Added the tour module to provide highly contextual tips for UI elements.
  749. - Improved the entity system:
  750. * Added a full CRUD API for entities.
  751. * Improved the field API and entity query API.
  752. * Added support for widgets, formatters, and translation to base entity
  753. fields (such as labels).
  754. * Made view modes configurable for reusable display variants.
  755. * Introduced form modes for reusable form variants.
  756. * Added ability to handle a "default" revision that may not be the latest.
  757. * All content entity types (custom blocks, terms, comments, etc.), not just
  758. nodes, have support for revisions.
  759. * Database schema of content entities is automatically generated based on
  760. entity type and field definitions.
  761. - Added the Typed Data system to manage complex types.
  762. - Refactored routing system based on Symfony2 components.
  763. - Made declarative information (libraries, permissions, routes etc.) use YAML
  764. files for definitions instead of PHP.
  765. - Improved the menu handling systems:
  766. * Moved custom menu item handling to its own module.
  767. * Reworked menu links, local actions, and local tasks based upon the new
  768. routing system.
  769. - Added plugin system to standardize implementation of several core APIs.
  770. - Introduced a new configuration management system:
  771. * Added a centralized configuration system with export and import
  772. functionality.
  773. * Allowed module authors to provide configuration in a YAML file format.
  774. * Implemented functionality to get, set, add, and remove configuration.
  775. * Provided the ability to override configuration values with language
  776. variants and other runtime values.
  777. * Added configuration schema, dependencies, and validation to maintain
  778. data integrity between deployments and updates.
  779. * Support added for both global configuration and configuration entities.
  780. - Improved authoring experience:
  781. * Redesigned the content creation and editing form.
  782. * Content preview is now displayed on the frontend.
  783. * Added the CKEditor WYSIWYG editor. Clean markup guaranteed thanks to tight
  784. integration with the filter system.
  785. * Made uploading, aligning, and captioning of images possible in the editor.
  786. * Modernized the default text formats.
  787. * Added a drag-and-drop configuration UI, which automatically updates the
  788. HTML filter settings, making configuring text formats trivial for typical
  789. use cases.
  790. * Added align and caption filters that can be applied to any element:
  791. images, blockquotes, code snippets, videos…
  792. * Made possible to in-place edit any entity: nodes, blocks…
  793. * Added the Text Editor module to help map other editors to text formats.
  794. - Improved media management:
  795. * Added ability to configure when unused files get deleted with the option
  796. to keep them, useful for media libraries.
  797. * Added a customizable view under the content administration screen that
  798. lists all files uploaded on the system.
  799. * Made uploads immediate when selecting files in file fields.
  800. * Added ability to upload multiple files at once.
  801. * Added local image input filter, to enable secure image posting.
  802. - Included the following Symfony2 components:
  803. * ClassLoader - PSR-0-compatible autoload routines.
  804. * DependencyInjection - Flexible dependency injection container.
  805. * EventDispatcher - Object-oriented lightweight event handling system.
  806. * HttpFoundation - Abstraction objects for HTTP requests and responses.
  807. * HttpKernel - Core system for managing incoming HTTP request and responses.
  808. * Process - Allows for executing commands in a sub-process.
  809. * Routing - Framework for mapping incoming requests to controller
  810. information.
  811. * Serialization - Serialize complex nested objects into JSON/XML etc.
  812. * Validator - Ensure that an object is in a valid state based upon some
  813. validation rules defined for it.
  814. * Yaml - Parser for YAML files.
  815. - Added routing component from Symfony CMF.
  816. - Added Guzzle HTTP library.
  817. - Added Zend Feed component.
  818. - Removed modules from core.
  819. * The following modules have been removed from core, because contributed
  820. modules with similar functionality are available:
  821. * Blog
  822. * Dashboard
  823. * OpenID
  824. * Poll
  825. * Profile
  826. * Trigger
  827. - Removed the Statistics module's accesslog functionality and reports.
  828. - Removed XML-RPC functionality from core.
  829. - Removed user signatures support from core.
  830. - Added ability to generate and validate Universally Unique IDentifiers (UUIDs).
  831. - Tremendously improved language support all around:
  832. * Great language improvements for users:
  833. * Improved language selection with user preference detection in the
  834. installer based on browser settings.
  835. * The installer is presented in the user's native language.
  836. * Moved base language support to Language module.
  837. * Greatly simplified the interface for setting up languages.
  838. * Improved browser language detection considerably.
  839. * Language domain and path prefix configuration simplified and
  840. centralized; path prefix detection is now default.
  841. * Added HTML 5 language markup; language information added in markup in
  842. several more places.
  843. * Made it possible to assign external language codes to local languages.
  844. * Introduced the possibility of an administration-specific language
  845. preference for users.
  846. * Language selection fallback language is now independently configurable
  847. without needing to change the site default language.
  848. * Simplified and added new features in interface translation:
  849. * Made interface translation directly accessible from the language list.
  850. * Centralized interface translation import to one directory.
  851. * Drupal can now be translated to English and English can be deleted.
  852. * Much improved built-in translation interface.
  853. * Added support for singular/plural discovery and translation.
  854. * Customized translations are tracked so your modifications can
  855. be identified and protected from translation update overwrites.
  856. * All Gettext files are now imported in chunks, better for low resource
  857. environments.
  858. * Automated import and update of translations in the installer and later.
  859. * Improved content language support:
  860. * Made it possible to assign language to taxonomy terms, vocabularies,
  861. menu items, and files.
  862. * Added a field translation based content translation module that applies
  863. to all content entities.
  864. * Removed the old node-copy based content translation module.
  865. * Introduced language defaults configuration for each entity type and
  866. subtype.
  867. * Added entity language variance support to search module.
  868. * Search indexing and query preprocessors now get language information.
  869. * Unified content translation permission granularity with content editing
  870. permissions.
  871. * Made the language selector freely orderable in entity forms.
  872. * Better configuration language support
  873. * Added language selectors to most configuration options (views, menus,
  874. etc.)
  875. * Added a configuration translation user interface that works with any
  876. configuration with translatable values (blocks, views, fields, etc.).
  877. * Added language options to block visibility.
  878. * Much improved language APIs for developers:
  879. * Made it possible for users to have a preferred language separate from
  880. their user entity language.
  881. * The text formatter from t() is now available as FormattableMarkup.
  882. * Added support for interface translation contexts in Drupal.t(),
  883. Drupal.formatPlural() as well as routing, tabs, actions, shipped
  884. menu items and contextual links.
  885. * Removed textgroups support from interface translation in favor of
  886. native configuration language support.
  887. * Added a transliteration API. (Only used for machine names in core.)
  888. * Added a language fallback capability to the interface translation API.
  889. - New field types added to core:
  890. * Email
  891. * Link
  892. * Telephone number
  893. * Entity reference
  894. * Date
  895. - Made commenting more flexible:
  896. * Added the notion of comment types (for reviews, greetings, and so on),
  897. each of which can be configured with a different set of fields.
  898. * Made commenting a field to allow comment threads on entity types other
  899. than nodes.
  900. - Added Views and Views UI module to core:
  901. * Added simple bulk operations functionality to Views.
  902. * Converted various core listings to views, including /node,
  903. /admin/content/node, /admin/people, and several blocks.
  904. * Built in REST API support.
  905. * Rewrote caching integration for better performance.
  906. * Made it possible to configure responsive tables in Views.
  907. - Greatly improved block management:
  908. * Made custom blocks fieldable, revisionable, and translatable entities.
  909. * Added the notion of custom block types.
  910. * Added the ability to place the same block in multiple locations.
  911. * Introduced a block library with categorized blocks.
  912. - Introduced an accessible modal API based on improvements made in collaboration
  913. with the jQuery UI team.
  914. - Made it possible to add fields to contact forms allowing site-builders to
  915. easily build custom forms for soliciting feedback from users.
  916. - Added a Web Services module package.
  917. * Added a RESTful web services provider module.
  918. * Added a serialization module using the Symfony serialization component.
  919. * Added a Hypertext Application Language (HAL) serialization module.
  920. * Added a HTTP Basic authentication provider module.
  921. - Improved performance/scalability significantly:
  922. * Introduced cache tags, which allow content to be invalidated accurately
  923. and instantly, including for reverse proxies and CDNs.
  924. * Added cache contexts, which allow content to be cached correctly, and
  925. placeholdered to improve cache hit rates.
  926. * Implemented cacheability bubbling, which allows strict tracking of assets
  927. and cacheability throughout page rendering.
  928. * Factored out page caching to its own module and enabled it by default.
  929. * Added the Dynamic Page Cache module for authenticated page caching and
  930. enabled it by default.
  931. * Added APCu, memory, and PHP file caching backends to core, alongside
  932. support for a chained, consistent cache backend to support correctly using
  933. fast local cache implementations with multiple web servers.
  934. - Removed support for MyISAM, when using MySQL.
  935. - Testing improvements
  936. * Added PHPUnit for proper unit testing, see
  937. https://phpunit.de/manual/4.8/en/index.html so you can run tests via
  938. your IDE.
  939. * Added BrowserTestBase as an alternative to simpletest for browser
  940. testing (JavaScript support to be included in the future)
  941. * Added KernelTestBase to provide a fast API testing of integration of
  942. different components
  943. * Core branch nightly tests include PHP 5.5, 5.6, 7, sqlite and PostgreSQL.
  944. - Added the migrate module (experimental) with support for migrating content and
  945. configuration from earlier Drupal versions.
  946. - Introduced support for Composer.
  947. - Moved the automated cron execution functionality to its own module.
  948. - Refactored IP address based banning functionality to its own module.
  949. - Security improvements:
  950. * Removed PHP filter, including the ability to use PHP for block visibility.
  951. * Managing fields for each entity type is now a separate permission.
  952. * PDO drivers other than MySQL are now limited to executing single
  953. statements to limit SQL injection vectors.
  954. * Added an autoescape API to prevent cross-site scripting in many of the
  955. places where Drupal outputs HTML.
  956. * Hardened user session and session ID handling.
  957. * Automated CSRF protection in route definitions.
  958. * Clickjacking protection enabled by default.
  959. * Made the core JavaScript API compatible with Content Security Policy
  960. (CSP).
  961. * Trusted host patterns enforced for requests preventing cache and link
  962. poisoning.
  963. - Switched to semantic versioning with significant updates planned every 6
  964. months in 8.1, 8.2, etc.
  965. - Numerous other important changes and additions. See
  966. https://www.drupal.org/list-changes/drupal for a detailed list.
  967. - Numerous bug fixes.
  968. - Numerous API documentation improvements.
  969. - Additional automated test coverage.
  970. Drupal 7.0, 2011-01-05
  971. ----------------------
  972. - Database:
  973. * Fully rewritten database layer using PHP 5's PDO abstraction layer.
  974. * Drupal now requires MySQL >= 5.0.15 or PostgreSQL >= 8.3.
  975. * Added query builders for INSERT, UPDATE, DELETE, MERGE, and SELECT queries.
  976. * Support for primary/replica replication, transactions, multi-insert
  977. queries, and other features.
  978. * Added support for the SQLite database engine.
  979. * Default to InnoDB engine, rather than MyISAM, on MySQL when available.
  980. This offers increased scalability and data integrity.
  981. - Security:
  982. * Protected cron.php -- cron will only run if the proper key is provided.
  983. * Implemented a pluggable password system and much stronger password hashes
  984. that are compatible with the Portable PHP password hashing framework.
  985. * Rate limited login attempts to prevent brute-force password guessing, and
  986. improved the flood control API to allow variable time windows and
  987. identifiers for limiting user access to resources.
  988. * Transformed the "Update status" module into the "Update manager" which
  989. can securely install or update modules and themes via a web interface.
  990. - Usability:
  991. * Added contextual links (a.k.a. local tasks) to page elements, such as
  992. blocks, nodes, or comments, which allows to perform the most common tasks
  993. with a single click only.
  994. * Improved installer requirements check.
  995. * Improved support for integration of WYSIWYG editors.
  996. * Implemented drag-and-drop positioning for input format listings.
  997. * Implemented drag-and-drop positioning for language listing.
  998. * Implemented drag-and-drop positioning for poll options.
  999. * Provided descriptions and human-readable names for user permissions.
  1000. * Removed comment controls for users.
  1001. * Removed display order settings for comment module. Comment display
  1002. order can now be customized using the Views module.
  1003. * Removed the 'related terms' feature from taxonomy module since this can
  1004. now be achieved with Field API.
  1005. * Added additional features to the default installation profile, and
  1006. implemented a "slimmed down" profile designed for developers.
  1007. * Added a built-in, automated cron run feature, which is triggered by site
  1008. visitors.
  1009. * Added an administrator role which is assigned all permissions for
  1010. installed modules automatically.
  1011. * Image toolkits are now provided by modules (rather than requiring a
  1012. manual file copy to the includes directory).
  1013. * Added an edit tab to taxonomy term pages.
  1014. * Redesigned password strength validator.
  1015. * Redesigned the add content type screen.
  1016. * Highlight duplicate URL aliases.
  1017. * Renamed "input formats" to "text formats".
  1018. * Moved text format permissions to the main permissions page.
  1019. * Added configurable ability for users to cancel their own accounts.
  1020. * Added "vertical tabs", a reusable interface component that features
  1021. automatic summaries and increases usability.
  1022. * Replaced fieldsets on node edit and add pages with vertical tabs.
  1023. - Performance:
  1024. * Improved performance on uncached page views by loading multiple core
  1025. objects in a single database query.
  1026. * Improved performance for logged-in users by reducing queries for path
  1027. alias lookups.
  1028. * Improved support for HTTP proxies (including reverse proxies), allowing
  1029. anonymous page views to be served entirely from the proxy.
  1030. - Documentation:
  1031. * Hook API documentation now included in Drupal core.
  1032. - News aggregator:
  1033. * Added OPML import functionality for RSS feeds.
  1034. * Optionally, RSS feeds may be configured to not automatically generate feed blocks.
  1035. - Search:
  1036. * Added support for language-aware searches.
  1037. - Aggregator:
  1038. * Introduced architecture that allows pluggable parsers and processors for
  1039. syndicating RSS and Atom feeds.
  1040. * Added options to suspend updating specific feeds and never discard feeds
  1041. items.
  1042. - Testing:
  1043. * Added test framework and tests.
  1044. - Improved time zone support:
  1045. * Drupal now uses PHP's time zone database when rendering dates in local
  1046. time. Site-wide and user-configured time zone offsets have been converted
  1047. to time zone names; for example, Africa/Abidjan.
  1048. * In some cases the upgrade and install scripts do not choose the preferred
  1049. site default time zone. The automatically-selected time zone can be
  1050. corrected at admin/config/regional/settings.
  1051. * If your site is being upgraded from Drupal 6 and you do not have the
  1052. contributed date or event modules installed, user time zone settings will
  1053. fallback to the system time zone and will have to be reconfigured by each user.
  1054. * User-configured time zones now serve as the default time zone for PHP
  1055. date/time functions.
  1056. - Filter system:
  1057. * Revamped the filter API and text format storage.
  1058. * Added support for default text formats to be assigned on a per-role basis.
  1059. * Refactored the HTML corrector to take advantage of PHP 5 features.
  1060. - User system:
  1061. * Added clean API functions for creating, loading, updating, and deleting
  1062. user roles and permissions.
  1063. * Refactored the "access rules" component of user module: The user module
  1064. now provides a simple interface for blocking single IP addresses. The
  1065. previous functionality in the user module for restricting certain email
  1066. addresses and usernames is now available as a contributed module. Further,
  1067. IP address range blocking is no longer supported and should be implemented
  1068. at the operating system level.
  1069. * Removed per-user themes: Contributed modules with similar functionality
  1070. are available.
  1071. - OpenID:
  1072. * Added support for Gmail and Google Apps for Domain identifiers. Users can
  1073. now log in with their user@example.com identifier when example.com is
  1074. powered by Google.
  1075. * Made the OpenID module more pluggable.
  1076. - Added code registry:
  1077. * Using the registry, modules declare their includable files via their .info file,
  1078. allowing Drupal to lazy-load classes and interfaces as needed.
  1079. - Theme system:
  1080. * Removed the Bluemarine, Chameleon and Pushbutton themes. These themes live
  1081. on as contributed themes (https://www.drupal.org/project/bluemarine,
  1082. https://www.drupal.org/project/chameleon and
  1083. https://www.drupal.org/project/pushbutton).
  1084. * Added Stark theme to make analyzing Drupal's default HTML and CSS easier.
  1085. * Added Seven as the default administration theme.
  1086. * Variable preprocessing of theme hooks prior to template rendering now goes
  1087. through two phases: a 'preprocess' phase and a new 'process' phase. See
  1088. http://api.drupal.org/api/function/theme/7 for details.
  1089. * Theme hooks implemented as functions (rather than as templates) can now
  1090. also have preprocess (and process) functions. See
  1091. http://api.drupal.org/api/function/theme/7 for details.
  1092. * Added Bartik as the default theme.
  1093. - File handling:
  1094. * Files are now first class Drupal objects with file_load(), file_save(),
  1095. and file_validate() functions and corresponding hooks.
  1096. * The file_move(), file_copy() and file_delete() functions now operate on
  1097. file objects and invoke file hooks so that modules are notified and can
  1098. respond to changes.
  1099. * For the occasions when only basic file manipulation are needed--such as
  1100. uploading a site logo--that don't require the overhead of databases and
  1101. hooks, the current unmanaged copy, move and delete operations have been
  1102. preserved but renamed to file_unmanaged_*().
  1103. * Rewrote file handling to use PHP stream wrappers to enable support for
  1104. both public and private files and to support pluggable storage mechanisms
  1105. and access to remote resources (for example, S3 storage or Flickr photos).
  1106. * The mime_extension_mapping variable has been removed. Modules that need to
  1107. alter the default MIME type extension mappings should implement
  1108. hook_file_mimetype_mapping_alter().
  1109. * Added the hook_file_url_alter() hook, which makes it possible to serve
  1110. files from a CDN.
  1111. * Added a field specifically for uploading files, previously provided by
  1112. the contributed module FileField.
  1113. - Image handling:
  1114. * Improved image handling, including better support for add-on image
  1115. libraries.
  1116. * Added API and interface for creating advanced image thumbnails.
  1117. * Inclusion of additional effects such as rotate and desaturate.
  1118. * Added a field specifically for uploading images, previously provided by
  1119. the contributed module ImageField.
  1120. - Added aliased multi-site support:
  1121. * Added support for mapping domain names to sites directories.
  1122. - Added RDF support:
  1123. * Modules can declare RDF namespaces which are serialized in the <html> tag
  1124. for RDFa support.
  1125. * Modules can specify how their data structure maps to RDF.
  1126. * Added support for RDFa export of nodes, comments, terms, users, etc. and
  1127. their fields.
  1128. - Search engine optimization and web linking:
  1129. * Added a rel="canonical" link on node and comment pages to prevent
  1130. duplicate content indexing by search engines.
  1131. * Added a default rel="shortlink" link on node and comment pages that
  1132. advertises a short link as an alternative URL to third-party services.
  1133. * Meta information is now alterable by all modules before rendering.
  1134. - Field API:
  1135. * Custom data fields may be attached to nodes, users, comments and taxonomy
  1136. terms.
  1137. * Node bodies and teasers are now Field API fields instead of
  1138. being a hard-coded property of node objects.
  1139. * In addition, any other object type may register with Field API
  1140. and allow custom data fields to be attached to itself.
  1141. * Provides most of the features of the former Content Construction
  1142. Kit (CCK) module.
  1143. * Taxonomy terms are now Field API fields that can be added to any fieldable
  1144. object.
  1145. - Installer:
  1146. * Refactored the installer into an API that allows Drupal to be installed
  1147. via a command line script.
  1148. - Page organization
  1149. * Made the help text area a full featured region with blocks.
  1150. * Site mission is replaced with the highlighted content block region and
  1151. separate RSS feed description settings.
  1152. * The footer message setting was removed in favor of custom blocks.
  1153. * Made the main page content a block which can be moved and ordered
  1154. with other blocks in the same region.
  1155. * Blocks can now return structured arrays for later rendering just
  1156. like page callbacks.
  1157. - Translation system
  1158. * The translation system now supports message context (msgctxt).
  1159. * Added support for translatable fields to Field API.
  1160. - JavaScript changes
  1161. * Upgraded the core JavaScript library to jQuery version 1.4.4.
  1162. * Upgraded the jQuery Forms library to 2.52.
  1163. * Added jQuery UI 1.8.7, which allows improvements to Drupal's user
  1164. experience.
  1165. - Better module version support
  1166. * Modules now can specify which version of another module they depend on.
  1167. - Removed modules from core
  1168. * The following modules have been removed from core, because contributed
  1169. modules with similar functionality are available:
  1170. * Blog API module
  1171. * Ping module
  1172. * Throttle module
  1173. - Improved node access control system.
  1174. * All modules may now influence the access to a node at runtime, not just
  1175. the module that defined a node.
  1176. * Users may now be allowed to bypass node access restrictions without giving
  1177. them complete access to the site.
  1178. * Access control affects both published and unpublished nodes.
  1179. * Numerous other improvements to the node access system.
  1180. - Actions system
  1181. * Simplified definitions of actions and triggers.
  1182. * Removed dependency on the combination of hooks and operations. Triggers
  1183. now directly map to module hooks.
  1184. - Task handling
  1185. * Added a queue API to process many or long-running tasks.
  1186. * Added queue API support to cron API.
  1187. * Added a locking framework to coordinate long-running operations across
  1188. requests.
  1189. Drupal 6.0, 2008-02-13
  1190. ----------------------
  1191. - New, faster and better menu system.
  1192. - New watchdog as a hook functionality.
  1193. * New hook_watchdog that can be implemented by any module to route log
  1194. messages to various destinations.
  1195. * Expands the severity levels from 3 (Error, Warning, Notice) to the 8
  1196. levels defined in RFC 3164.
  1197. * The watchdog module is now called dblog, and is optional, but enabled by
  1198. default in the default installation profile.
  1199. * Extended the database log module so log messages can be filtered.
  1200. * Added syslog module: useful for monitoring large Drupal installations.
  1201. - Added optional email notifications when users are approved, blocked, or
  1202. deleted.
  1203. - Drupal works with error reporting set to E_ALL.
  1204. - Added scripts/drupal.sh to execute Drupal code from the command line. Useful
  1205. to use Drupal as a framework to build command-line tools.
  1206. - Made signature support optional and made it possible to theme signatures.
  1207. - Made it possible to filter the URL aliases on the URL alias administration
  1208. screen.
  1209. - Language system improvements:
  1210. * Support for right to left languages.
  1211. * Language detection based on parts of the URL.
  1212. * Browser based language detection.
  1213. * Made it possible to specify a node's language.
  1214. * Support for translating posts on the site to different languages.
  1215. * Language dependent path aliases.
  1216. * Automatically import translations when adding a new language.
  1217. * JavaScript interface translation.
  1218. * Automatically import a module's translation upon enabling that module.
  1219. - Moved "PHP input filter" to a standalone module so it can be deleted for
  1220. security reasons.
  1221. - Usability:
  1222. * Improved handling of teasers in posts.
  1223. * Added sticky table headers.
  1224. * Check for clean URL support automatically with JavaScript.
  1225. * Removed default/settings.php. Instead the installer will create it from
  1226. default.settings.php.
  1227. * Made it possible to configure your own date formats.
  1228. * Remember anonymous comment posters.
  1229. * Only allow modules and themes to be enabled that have explicitly been
  1230. ported to the correct core API version.
  1231. * Can now specify the minimum PHP version required for a module within the
  1232. .info file.
  1233. * Drupal core no longer requires CREATE TEMPORARY TABLES or LOCK TABLES
  1234. database rights.
  1235. * Dynamically check password strength and confirmation.
  1236. * Refactored poll administration.
  1237. * Implemented drag-and-drop positioning for blocks, menu items, taxonomy
  1238. vocabularies and terms, forums, profile fields, and input format filters.
  1239. - Theme system:
  1240. * Added .info files to themes and made it easier to specify regions and
  1241. features.
  1242. * Added theme registry: modules can directly provide .tpl.php files for
  1243. their themes without having to create theme_ functions.
  1244. * Used the Garland theme for the installation and maintenance pages.
  1245. * Added theme preprocess functions for themes that are templates.
  1246. * Added support for themeable functions in JavaScript.
  1247. - Refactored update.php to a generic batch API to be able to run time-consuming
  1248. operations in multiple subsequent HTTP requests.
  1249. - Installer:
  1250. * Themed the installer with the Garland theme.
  1251. * Added form to provide initial site information during installation.
  1252. * Added ability to provide extra installation steps programmatically.
  1253. * Made it possible to import interface translations during installation.
  1254. - Added the HTML corrector filter:
  1255. * Fixes faulty and chopped off HTML in postings.
  1256. * Tags are now automatically closed at the end of the teaser.
  1257. - Performance:
  1258. * Made it easier to conditionally load .include files and split up many core
  1259. modules.
  1260. * Added a JavaScript aggregator.
  1261. * Added block-level caching, improving performance for both authenticated
  1262. and anonymous users.
  1263. * Made Drupal work correctly when running behind a reverse proxy like
  1264. Squid or Pound.
  1265. - File handling improvements:
  1266. * Entries in the files table are now keyed to a user instead of a node.
  1267. * Added reusable validation functions to check for uploaded file sizes,
  1268. extensions, and image resolution.
  1269. * Added ability to create and remove temporary files during a cron job.
  1270. - Forum improvements:
  1271. * Any node type may now be posted in a forum.
  1272. - Taxonomy improvements:
  1273. * Descriptions for terms are now shown on taxonomy/term pages as well
  1274. as RSS feeds.
  1275. * Added versioning support to categories by associating them with node
  1276. revisions.
  1277. - Added support for OpenID.
  1278. - Added support for triggering configurable actions.
  1279. - Added the Update status module to automatically check for available updates
  1280. and warn sites if they are missing security updates or newer versions.
  1281. Sites deploying from CVS should use https://www.drupal.org/project/cvs_deploy.
  1282. Advanced settings provided by https://www.drupal.org/project/update_advanced.
  1283. - Upgraded the core JavaScript library to jQuery version 1.2.3.
  1284. - Added a new Schema API, which provides built-in support for core and
  1285. contributed modules to work with databases other than MySQL.
  1286. - Removed drupal.module. The functionality lives on as the Site network
  1287. contributed module (https://www.drupal.org/project/site_network).
  1288. - Removed old system updates. Updates from Drupal versions prior to 5.x will
  1289. require upgrading to 5.x before upgrading to 6.x.
  1290. Drupal 5.7, 2008-01-28
  1291. ----------------------
  1292. - fixed the input format configuration page.
  1293. - fixed a variety of small bugs.
  1294. Drupal 5.6, 2008-01-10
  1295. ----------------------
  1296. - fixed a variety of small bugs.
  1297. - fixed a security issue (Cross site request forgery), see SA-2008-005
  1298. - fixed a security issue (Cross site scripting, UTF8), see SA-2008-006
  1299. - fixed a security issue (Cross site scripting, register_globals), see SA-2008-007
  1300. Drupal 5.5, 2007-12-06
  1301. ----------------------
  1302. - fixed missing missing brackets in a query in the user module.
  1303. - fixed taxonomy feed bug introduced by SA-2007-031
  1304. Drupal 5.4, 2007-12-05
  1305. ----------------------
  1306. - fixed a variety of small bugs.
  1307. - fixed a security issue (SQL injection), see SA-2007-031
  1308. Drupal 5.3, 2007-10-17
  1309. ----------------------
  1310. - fixed a variety of small bugs.
  1311. - fixed a security issue (HTTP response splitting), see SA-2007-024
  1312. - fixed a security issue (Arbitrary code execution via installer), see SA-2007-025
  1313. - fixed a security issue (Cross site scripting via uploads), see SA-2007-026
  1314. - fixed a security issue (User deletion cross site request forgery), see SA-2007-029
  1315. - fixed a security issue (API handling of unpublished comment), see SA-2007-030
  1316. Drupal 5.2, 2007-07-26
  1317. ----------------------
  1318. - changed hook_link() $teaser argument to match documentation.
  1319. - fixed a variety of small bugs.
  1320. - fixed a security issue (cross-site request forgery), see SA-2007-017
  1321. - fixed a security issue (cross-site scripting), see SA-2007-018
  1322. Drupal 5.1, 2007-01-29
  1323. ----------------------
  1324. - fixed security issue (code execution), see SA-2007-005
  1325. - fixed a variety of small bugs.
  1326. Drupal 5.0, 2007-01-15
  1327. ----------------------
  1328. - Completely retooled the administration page
  1329. * /Admin now contains an administration page which may be themed
  1330. * Reorganised administration menu items by task and by module
  1331. * Added a status report page with detailed PHP/MySQL/Drupal information
  1332. - Added web-based installer which can:
  1333. * Check installation and run-time requirements
  1334. * Automatically generate the database configuration file
  1335. * Install pre-made installation profiles or distributions
  1336. * Import the database structure with automatic table prefixing
  1337. * Be localized
  1338. - Added new default Garland theme
  1339. - Added color module to change some themes' color schemes
  1340. - Included the jQuery JavaScript library 1.0.4 and converted all core JavaScript to use it
  1341. - Introduced the ability to alter mail sent from system
  1342. - Module system:
  1343. * Added .info files for module meta-data
  1344. * Added support for module dependencies
  1345. * Improved module installation screen
  1346. * Moved core modules to their own directories
  1347. * Added support for module uninstalling
  1348. - Added support for different cache backends
  1349. - Added support for a generic "sites/all" directory.
  1350. - Usability:
  1351. * Added support for auto-complete forms (AJAX) to user profiles.
  1352. * Made it possible to instantly assign roles to newly created user accounts.
  1353. * Improved configurability of the contact forms.
  1354. * Reorganized the settings pages.
  1355. * Made it easy to investigate popular search terms.
  1356. * Added a 'select all' checkbox and a range select feature to administration tables.
  1357. * Simplified the 'break' tag to split teasers from body.
  1358. * Use proper capitalization for titles, menu items and operations.
  1359. - Integrated urlfilter.module into filter.module
  1360. - Block system:
  1361. * Extended the block visibility settings with a role specific setting.
  1362. * Made it possible to customize all block titles.
  1363. - Poll module:
  1364. * Optionally allow people to inspect all votes.
  1365. * Optionally allow people to cancel their vote.
  1366. - Distributed authentication:
  1367. * Added default server option.
  1368. - Added default robots.txt to control crawlers.
  1369. - Database API:
  1370. * Added db_table_exists().
  1371. - Blogapi module:
  1372. * 'Blogapi new' and 'blogapi edit' nodeapi operations.
  1373. - User module:
  1374. * Added hook_profile_alter().
  1375. * Email verification is made optional.
  1376. * Added mass editing and filtering on admin/user/user.
  1377. - PHP Template engine:
  1378. * Add the ability to look for a series of suggested templates.
  1379. * Look for page templates based upon the path.
  1380. * Look for block templates based upon the region, module, and delta.
  1381. - Content system:
  1382. * Made it easier for node access modules to work well with each other.
  1383. * Added configurable content types.
  1384. * Changed node rendering to work with structured arrays.
  1385. - Performance:
  1386. * Improved session handling: reduces database overhead.
  1387. * Improved access checking: reduces database overhead.
  1388. * Made it possible to do memcached based session management.
  1389. * Omit sidebars when serving a '404 - Page not found': saves CPU cycles and bandwidth.
  1390. * Added an 'aggressive' caching policy.
  1391. * Added a CSS aggregator and compressor (up to 40% faster page loads).
  1392. - Removed the archive module.
  1393. - Upgrade system:
  1394. * Created space for update branches.
  1395. - Form API:
  1396. * Made it possible to programmatically submit forms.
  1397. * Improved api for multistep forms.
  1398. - Theme system:
  1399. * Split up and removed drupal.css.
  1400. * Added nested lists generation.
  1401. * Added a self-clearing block class.
  1402. Drupal 4.7.11, 2008-01-10
  1403. -------------------------
  1404. - fixed a security issue (Cross site request forgery), see SA-2008-005
  1405. - fixed a security issue (Cross site scripting, UTF8), see SA-2008-006
  1406. - fixed a security issue (Cross site scripting, register_globals), see SA-2008-007
  1407. Drupal 4.7.10, 2007-12-06
  1408. -------------------------
  1409. - fixed taxonomy feed bug introduced by SA-2007-031
  1410. Drupal 4.7.9, 2007-12-05
  1411. ------------------------
  1412. - fixed a security issue (SQL injection), see SA-2007-031
  1413. Drupal 4.7.8, 2007-10-17
  1414. ------------------------
  1415. - fixed a security issue (HTTP response splitting), see SA-2007-024
  1416. - fixed a security issue (Cross site scripting via uploads), see SA-2007-026
  1417. - fixed a security issue (API handling of unpublished comment), see SA-2007-030
  1418. Drupal 4.7.7, 2007-07-26
  1419. ------------------------
  1420. - fixed security issue (XSS), see SA-2007-018
  1421. Drupal 4.7.6, 2007-01-29
  1422. ------------------------
  1423. - fixed security issue (code execution), see SA-2007-005
  1424. Drupal 4.7.5, 2007-01-05
  1425. ------------------------
  1426. - Fixed security issue (XSS), see SA-2007-001
  1427. - Fixed security issue (DoS), see SA-2007-002
  1428. Drupal 4.7.4, 2006-10-18
  1429. ------------------------
  1430. - Fixed security issue (XSS), see SA-2006-024
  1431. - Fixed security issue (CSRF), see SA-2006-025
  1432. - Fixed security issue (Form action attribute injection), see SA-2006-026
  1433. Drupal 4.7.3, 2006-08-02
  1434. ------------------------
  1435. - Fixed security issue (XSS), see SA-2006-011
  1436. Drupal 4.7.2, 2006-06-01
  1437. ------------------------
  1438. - Fixed critical upload issue, see SA-2006-007
  1439. - Fixed taxonomy XSS issue, see SA-2006-008
  1440. - Fixed a variety of small bugs.
  1441. Drupal 4.7.1, 2006-05-24
  1442. ------------------------
  1443. - Fixed critical SQL issue, see SA-2006-005
  1444. - Fixed a serious upgrade related bug.
  1445. - Fixed a variety of small bugs.
  1446. Drupal 4.7.0, 2006-05-01
  1447. ------------------------
  1448. - Added free tagging support.
  1449. - Added a site-wide contact form.
  1450. - Theme system:
  1451. * Added the PHPTemplate theme engine and removed the Xtemplate engine.
  1452. * Converted the bluemarine theme from XTemplate to PHPTemplate.
  1453. * Converted the pushbutton theme from XTemplate to PHPTemplate.
  1454. - Usability:
  1455. * Reworked the 'request new password' functionality.
  1456. * Reworked the node and comment edit forms.
  1457. * Made it easy to add nodes to the navigation menu.
  1458. * Added site 'offline for maintenance' feature.
  1459. * Added support for auto-complete forms (AJAX).
  1460. * Added support for collapsible page sections (JS).
  1461. * Added support for resizable text fields (JS).
  1462. * Improved file upload functionality (AJAX).
  1463. * Reorganized some settings pages.
  1464. * Added friendly database error screens.
  1465. * Improved styling of update.php.
  1466. - Refactored the forms API.
  1467. * Made it possible to alter, extend or theme forms.
  1468. - Comment system:
  1469. * Added support for "mass comment operations" to ease repetitive tasks.
  1470. * Comment moderation has been removed.
  1471. - Node system:
  1472. * Reworked the revision functionality.
  1473. * Removed the bookmarklet code. Third-party modules can now handle
  1474. This.
  1475. - Upgrade system:
  1476. * Allows contributed modules to plug into the upgrade system.
  1477. - Profiles:
  1478. * Added a block to display author information along with posts.
  1479. * Added support for private profile fields.
  1480. - Statistics module:
  1481. * Added the ability to track page generation times.
  1482. * Made it possible to block certain IPs/hostnames.
  1483. - Block system:
  1484. * Added support for theme-specific block regions.
  1485. - Syndication:
  1486. * Made the aggregator module parse Atom feeds.
  1487. * Made the aggregator generate RSS feeds.
  1488. * Added RSS feed settings.
  1489. - XML-RPC:
  1490. * Replaced the XML-RPC library by a better one.
  1491. - Performance:
  1492. * Added 'loose caching' option for high-traffic sites.
  1493. * Improved performance of path aliasing.
  1494. * Added the ability to track page generation times.
  1495. - Internationalization:
  1496. * Improved Unicode string handling API.
  1497. * Added support for PHP's multibyte string module.
  1498. - Added support for PHP5's 'mysqli' extension.
  1499. - Search module:
  1500. * Made indexer smarter and more robust.
  1501. * Added advanced search operators (phrase, node type, etc.).
  1502. * Added customizable result ranking.
  1503. - PostgreSQL support:
  1504. * Removed dependency on PL/pgSQL procedural language.
  1505. - Menu system:
  1506. * Added support for external URLs.
  1507. - Queue module:
  1508. * Removed from core.
  1509. - HTTP handling:
  1510. * Added support for a tolerant Base URL.
  1511. * Output URIs relative to the root, without a base tag.
  1512. Drupal 4.6.11, 2007-01-05
  1513. -------------------------
  1514. - Fixed security issue (XSS), see SA-2007-001
  1515. - Fixed security issue (DoS), see SA-2007-002
  1516. Drupal 4.6.10, 2006-10-18
  1517. -------------------------
  1518. - Fixed security issue (XSS), see SA-2006-024
  1519. - Fixed security issue (CSRF), see SA-2006-025
  1520. - Fixed security issue (Form action attribute injection), see SA-2006-026
  1521. Drupal 4.6.9, 2006-08-02
  1522. ------------------------
  1523. - Fixed security issue (XSS), see SA-2006-011
  1524. Drupal 4.6.8, 2006-06-01
  1525. ------------------------
  1526. - Fixed critical upload issue, see SA-2006-007
  1527. - Fixed taxonomy XSS issue, see SA-2006-008
  1528. Drupal 4.6.7, 2006-05-24
  1529. ------------------------
  1530. - Fixed critical SQL issue, see SA-2006-005
  1531. Drupal 4.6.6, 2006-03-13
  1532. ------------------------
  1533. - Fixed bugs, including 4 security vulnerabilities.
  1534. Drupal 4.6.5, 2005-12-12
  1535. ------------------------
  1536. - Fixed bugs: no critical bugs were identified.
  1537. Drupal 4.6.4, 2005-11-30
  1538. ------------------------
  1539. - Fixed bugs, including 3 security vulnerabilities.
  1540. Drupal 4.6.3, 2005-08-15
  1541. ------------------------
  1542. - Fixed bugs, including a critical "arbitrary PHP code execution" bug.
  1543. Drupal 4.6.2, 2005-06-29
  1544. ------------------------
  1545. - Fixed bugs, including two critical "arbitrary PHP code execution" bugs.
  1546. Drupal 4.6.1, 2005-06-01
  1547. ------------------------
  1548. - Fixed bugs, including a critical input validation bug.
  1549. Drupal 4.6.0, 2005-04-15
  1550. ------------------------
  1551. - PHP5 compliance
  1552. - Search:
  1553. * Added UTF-8 support to make it work with all languages.
  1554. * Improved search indexing algorithm.
  1555. * Improved search output.
  1556. * Impose a throttle on indexing of large sites.
  1557. * Added search block.
  1558. - Syndication:
  1559. * Made the ping module ping pingomatic.com which, in turn, will ping all the major ping services.
  1560. * Made Drupal generate RSS 2.0 feeds.
  1561. * Made RSS feeds extensible.
  1562. * Added categories to RSS feeds.
  1563. * Added enclosures to RSS feeds.
  1564. - Flood control mechanism:
  1565. * Added a mechanism to throttle certain operations.
  1566. - Usability:
  1567. * Refactored the block configuration pages.
  1568. * Refactored the statistics pages.
  1569. * Refactored the watchdog pages.
  1570. * Refactored the throttle module configuration.
  1571. * Refactored the access rules page.
  1572. * Refactored the content administration page.
  1573. * Introduced forum configuration pages.
  1574. * Added a 'add child page' link to book pages.
  1575. - Contact module:
  1576. * Added a simple contact module that allows users to contact each other using email.
  1577. - Multi-site configuration:
  1578. * Made it possible to run multiple sites from a single code base.
  1579. - Added an image API: enables better image handling.
  1580. - Block system:
  1581. * Extended the block visibility settings.
  1582. - Theme system:
  1583. * Added new theme functions.
  1584. - Database backend:
  1585. * The PEAR database backend is no longer supported.
  1586. - Performance:
  1587. * Improved performance of the forum topics block.
  1588. * Improved performance of the tracker module.
  1589. * Improved performance of the node pages.
  1590. - Documentation:
  1591. * Improved and extended PHPDoc/Doxygen comments.
  1592. Drupal 4.5.8, 2006-03-13
  1593. ------------------------
  1594. - Fixed bugs, including 3 security vulnerabilities.
  1595. Drupal 4.5.7, 2005-12-12
  1596. ------------------------
  1597. - Fixed bugs: no critical bugs were identified.
  1598. Drupal 4.5.6, 2005-11-30
  1599. ------------------------
  1600. - Fixed bugs, including 3 security vulnerabilities.
  1601. Drupal 4.5.5, 2005-08-15
  1602. ------------------------
  1603. - Fixed bugs, including a critical "arbitrary PHP code execution" bug.
  1604. Drupal 4.5.4, 2005-06-29
  1605. ------------------------
  1606. - Fixed bugs, including two critical "arbitrary PHP code execution" bugs.
  1607. Drupal 4.5.3, 2005-06-01
  1608. ------------------------
  1609. - Fixed bugs, including a critical input validation bug.
  1610. Drupal 4.5.2, 2005-01-15
  1611. ------------------------
  1612. - Fixed bugs: a cross-site scripting (XSS) vulnerability has been fixed.
  1613. Drupal 4.5.1, 2004-12-01
  1614. ------------------------
  1615. - Fixed bugs: no critical bugs were identified.
  1616. Drupal 4.5.0, 2004-10-18
  1617. ------------------------
  1618. - Navigation:
  1619. * Made it possible to add, delete, rename and move menu items.
  1620. * Introduced tabs and subtabs for local tasks.
  1621. * Reorganized the navigation menus.
  1622. - User management:
  1623. * Added support for multiple roles per user.
  1624. * Made it possible to add custom profile fields.
  1625. * Made it possible to browse user profiles by field.
  1626. - Node system:
  1627. * Added support for node-level permissions.
  1628. - Comment module:
  1629. * Made it possible to leave contact information without having to register.
  1630. - Upload module:
  1631. * Added support for uploading documents (includes images).
  1632. - Forum module:
  1633. * Added support for sticky forum topics.
  1634. * Made it possible to track forum topics.
  1635. - Syndication:
  1636. * Added support for RSS ping-notifications of http://technorati.com/.
  1637. * Refactored the categorization of syndicated news items.
  1638. * Added a URL alias for 'rss.xml'.
  1639. * Improved date parsing.
  1640. - Database backend:
  1641. * Added support for multiple database connections.
  1642. * The PostgreSQL backend does no longer require PEAR.
  1643. - Theme system:
  1644. * Changed all GIFs to PNGs.
  1645. * Reorganised the handling of themes, template engines, templates and styles.
  1646. * Unified and extended the available theme settings.
  1647. * Added theme screenshots.
  1648. - Blocks:
  1649. * Added 'recent comments' block.
  1650. * Added 'categories' block.
  1651. - Blogger API:
  1652. * Added support for auto-discovery of blogger API via RSD.
  1653. - Performance:
  1654. * Added support for sending gzip compressed pages.
  1655. * Improved performance of the forum module.
  1656. - Accessibility:
  1657. * Improved the accessibility of the archive module's calendar.
  1658. * Improved form handling and error reporting.
  1659. * Added HTTP redirects to prevent submitting twice when refreshing right after a form submission.
  1660. - Refactored 403 (forbidden) handling and added support for custom 403 pages.
  1661. - Documentation:
  1662. * Added PHPDoc/Doxygen comments.
  1663. - Filter system:
  1664. * Added support for using multiple input formats on the site
  1665. * Expanded the embedded PHP-code feature so it can be used everywhere
  1666. * Added support for role-dependent filtering, through input formats
  1667. - UI translation:
  1668. * Managing translations is now completely done through the administration interface
  1669. * Added support for importing/exporting gettext .po files
  1670. Drupal 4.4.3, 2005-06-01
  1671. ------------------------
  1672. - Fixed bugs, including a critical input validation bug.
  1673. Drupal 4.4.2, 2004-07-04
  1674. ------------------------
  1675. - Fixed bugs: no critical bugs were identified.
  1676. Drupal 4.4.1, 2004-05-01
  1677. ------------------------
  1678. - Fixed bugs: no critical bugs were identified.
  1679. Drupal 4.4.0, 2004-04-01
  1680. ------------------------
  1681. - Added support for the MetaWeblog API and MovableType extensions.
  1682. - Added a file API: enables better document management.
  1683. - Improved the watchdog and search module to log search keys.
  1684. - News aggregator:
  1685. * Added support for conditional GET.
  1686. * Added OPML feed subscription list.
  1687. * Added support for <image>, <pubDate>, <dc:date>, <dcterms:created>, <dcterms:issued> and <dcterms:modified>.
  1688. - Comment module:
  1689. * Made it possible to disable the "comment viewing controls".
  1690. - Performance:
  1691. * Improved module loading when serving cached pages.
  1692. * Made it possible to automatically disable modules when under heavy load.
  1693. * Made it possible to automatically disable blocks when under heavy load.
  1694. * Improved performance and memory footprint of the locale module.
  1695. - Theme system:
  1696. * Made all theme functions start with 'theme_'.
  1697. * Made all theme functions return their output.
  1698. * Migrated away from using the BaseTheme class.
  1699. * Added many new theme functions and refactored existing theme functions.
  1700. * Added avatar support to 'Xtemplate'.
  1701. * Replaced theme 'UnConeD' by 'Chameleon'.
  1702. * Replaced theme 'Marvin' by 'Pushbutton'.
  1703. - Usability:
  1704. * Added breadcrumb navigation to all pages.
  1705. * Made it possible to add context-sensitive help to all pages.
  1706. * Replaced drop-down menus by radio buttons where appropriate.
  1707. * Removed the 'magic_quotes_gpc = 0' requirement.
  1708. * Added a 'book navigation' block.
  1709. - Accessibility:
  1710. * Made themes degrade gracefully in absence of CSS.
  1711. * Grouped form elements using '<fieldset>' and '<legend>' tags.
  1712. * Added '<label>' tags to form elements.
  1713. - Refactored 404 (file not found) handling and added support for custom 404 pages.
  1714. - Improved the filter system to prevent conflicts between filters:
  1715. * Made it possible to change the order in which filters are applied.
  1716. - Documentation:
  1717. * Added PHPDoc/Doxygen comments.
  1718. Drupal 4.3.2, 2004-01-01
  1719. ------------------------
  1720. - Fixed bugs: no critical bugs were identified.
  1721. Drupal 4.3.1, 2003-12-01
  1722. ------------------------
  1723. - Fixed bugs: no critical bugs were identified.
  1724. Drupal 4.3.0, 2003-11-01
  1725. ------------------------
  1726. - Added support for configurable URLs.
  1727. - Added support for sortable table columns.
  1728. - Database backend:
  1729. * Added support for selective database table prefixing.
  1730. - Performance:
  1731. * Optimized many SQL queries for speed by converting left joins to inner joins.
  1732. - Comment module:
  1733. * Rewrote the comment housekeeping code to be much more efficient and scalable.
  1734. * Changed the comment module to use the standard pager.
  1735. - User module:
  1736. * Added support for multiple sessions per user.
  1737. * Added support for anonymous user sessions.
  1738. - Forum module:
  1739. * Improved the forum views and the themability thereof.
  1740. - Book module:
  1741. * Improved integration of non-book nodes in the book outline.
  1742. - Usability:
  1743. * Added support for "mass node operations" to ease repetitive tasks.
  1744. * Added support for breadcrumb navigation to several modules' user pages.
  1745. * Integrated the administration pages with the normal user pages.
  1746. Drupal 4.2.0, 2003-08-01
  1747. ------------------------
  1748. - Added support for clean URLs.
  1749. - Added textarea hook and support for onload attributes: enables integration of WYSIWYG editors.
  1750. - Rewrote the RSS/RDF parser:
  1751. * It will now use PHP's built-in XML parser to parse news feeds.
  1752. - Rewrote the administration pages:
  1753. * Improved the navigational elements and added breadcrumb navigation.
  1754. * Improved the look and feel.
  1755. * Added context-sensitive help.
  1756. - Database backend:
  1757. * Fixed numerous SQL queries to make Drupal ANSI compliant.
  1758. * Added MSSQL database scheme.
  1759. - Search module:
  1760. * Changed the search module to use implicit AND'ing instead of implicit OR'ing.
  1761. - Node system:
  1762. * Replaced the "post content" permission by more fine-grained permissions.
  1763. * Improved content submission:
  1764. + Improved teasers: teasers are now optional, teaser length can be configured, teaser and body are edited in a single textarea, users will no longer be bothered with teasers when the post is too short for one.
  1765. + Added the ability to preview both the short and the full version of your posts.
  1766. * Extended the node API which allows for better integration.
  1767. * Added default node settings to control the behavior for promotion, moderation and other options.
  1768. - Themes:
  1769. * Replaced theme "Goofy" by "Xtemplate", a template driven theme.
  1770. - Removed the 'register_globals = on' requirement.
  1771. - Added better installation instructions.
  1772. Drupal 4.1.0, 2003-02-01
  1773. ------------------------
  1774. - Collaboratively revised and expanded the Drupal documentation.
  1775. - Rewrote comment.module:
  1776. * Reintroduced comment rating/moderation.
  1777. * Added support for comment paging.
  1778. * Performance improvements: improved comment caching, faster SQL queries, etc.
  1779. - Rewrote block.module:
  1780. * Performance improvements: blocks are no longer rendered when not displayed.
  1781. - Rewrote forum.module:
  1782. * Added a lot of features one can find in stand-alone forum software including but not limited to support for topic paging, added support for icons, rewrote the statistics module, etc.
  1783. - Rewrote statistics.module:
  1784. * Collects access counts for each node, referrer logs, number of users/guests.
  1785. * Export blocks displaying top viewed nodes over last 24 hour period, top viewed nodes over all time, last nodes viewed, how many users/guest online.
  1786. - Added throttle.module:
  1787. * Auto-throttle congestion control mechanism: Drupal can adapt itself based on the server load.
  1788. - Added profile.module:
  1789. * Enables to extend the user and registration page.
  1790. - Added pager support to the main page.
  1791. - Replaced weblogs.module by ping.module:
  1792. * Added support for normal and RSS notifications of http://blo.gs/.
  1793. * Added support for RSS ping-notifications of http://weblogs.com/.
  1794. - Removed the rating module
  1795. - Themes:
  1796. * Removed a significant portion of hard-coded mark-up.
  1797. Drupal 4.0.0, 2002-06-15
  1798. ------------------------
  1799. - Added tracker.module:
  1800. * Replaces the previous "your [site]" links (recent comments and nodes).
  1801. - Added weblogs.module:
  1802. * This will ping weblogs.com when new content is promoted.
  1803. - Added taxonomy module which replaces the meta module.
  1804. * Supports relations, hierarchies and synonyms.
  1805. - Added a caching system:
  1806. * Speeds up pages for anonymous users and reduces system load.
  1807. - Added support for external SMTP libraries.
  1808. - Added an archive extension to the calendar.
  1809. - Added support for the Blogger API.
  1810. - Themes:
  1811. * Cleaned up the theme system.
  1812. * Moved themes that are not maintained to contributions CVS repository.
  1813. - Database backend:
  1814. * Changed to PEAR database abstraction layer.
  1815. * Using ANSI SQL queries to be more portable.
  1816. - Rewrote the user system:
  1817. * Added support for Drupal authentication through XML-RPC and through a Jabber server.
  1818. * Added support for modules to add more user data.
  1819. * Users may delete their own account.
  1820. * Added who's new and who's online blocks.
  1821. - Changed block system:
  1822. * Various hard coded blocks are now dynamic.
  1823. * Blocks can now be enabled and/or be set by the user.
  1824. * Blocks can be set to only show up on some pages.
  1825. * Merged box module with block module.
  1826. - Node system:
  1827. * Blogs can be updated.
  1828. * Teasers (abstracts) on all node types.
  1829. * Improved error checking.
  1830. * Content versioning support.
  1831. * Usability improvements.
  1832. - Improved book module to support text, HTML and PHP pages.
  1833. - Improved comment module to mark new comments.
  1834. - Added a general outliner which will let any node type be linked to a book.
  1835. - Added an update script that lets you upgrade from previous releases or on a day to day basis when using the development tree.
  1836. - Search module:
  1837. * Improved the search system by making it context sensitive.
  1838. * Added indexing.
  1839. - Various updates:
  1840. * Changed output to valid XHTML.
  1841. * Improved multiple sites using the same Drupal database support.
  1842. * Added support for session IDs in URLs instead of cookies.
  1843. * Made the type of content on the front page configurable.
  1844. * Made each cloud site have its own settings.
  1845. * Modules and themes can now be enabled/disabled using the administration pages.
  1846. * Added URL abstraction for links.
  1847. * Usability changes (renamed links, better UI, etc.).
  1848. - Collaboratively revised and expanded the Drupal documentation.
  1849. Drupal 3.0.1, 2001-10-15
  1850. ------------------------
  1851. - Various updates:
  1852. * Added missing translations
  1853. * Updated the themes: tidied up some HTML code and added new Drupal logos.
  1854. Drupal 3.0.0, 2001-09-15
  1855. ------------------------
  1856. - Major overhaul of the entire underlying design:
  1857. * Everything is based on nodes: nodes are a conceptual "black box" to couple and manage different types of content and that promotes reusing existing code, thus reducing the complexity and size of Drupal as well as improving long-term stability.
  1858. - Rewrote submission/moderation queue and renamed it to queue.module.
  1859. - Removed FAQ and documentation module and merged them into a "book module".
  1860. - Removed ban module and integrated it into account.module as "access control":
  1861. * Access control is based on much more powerful regular expressions (regex) now rather than on MySQL pattern matching.
  1862. - Rewrote watchdog and submission throttle:
  1863. * Improved watchdog messages and added watchdog filter.
  1864. - Rewrote headline code and renamed it to import.module and export.module:
  1865. * Added various improvements, including a better parser, bundles and better control over individual feeds.
  1866. - Rewrote section code and renamed it to meta.module:
  1867. * Supports unlimited amount of nested topics. Topics can be nested to create a multi-level hierarchy.
  1868. - Rewrote configuration file resolving:
  1869. * Drupal tries to locate a configuration file that matches your domain name or uses conf.php if the former failed. Note also that the configuration files got renamed from .conf to .php for security's sake on mal-configured Drupal sites.
  1870. - Added caching support which makes Drupal extremely scalable.
  1871. - Added access.module:
  1872. * Allows you to set up 'roles' (groups) and to bind a set of permissions to each group.
  1873. - Added blog.module.
  1874. - Added poll.module.
  1875. - Added system.module:
  1876. * Moved most of the configuration options from hostname.conf to the new administration section.
  1877. * Added support for custom "filters".
  1878. - Added statistics.module
  1879. - Added moderate.module:
  1880. * Allows to assign users editorial/moderator rights to certain nodes or topics.
  1881. - Added page.module:
  1882. * Allows creation of static (and dynamic) pages through the administration interface.
  1883. - Added help.module:
  1884. * Groups all available module documentation on a single page.
  1885. - Added forum.module:
  1886. * Added an integrated forum.
  1887. - Added cvs.module and cvs-to-sql.pl:
  1888. * Allows to display and mail CVS log messages as daily digests.
  1889. - Added book.module:
  1890. * Allows collaborative handbook writing: primary used for Drupal documentation.
  1891. - Removed cron.module and integrated it into conf.module.
  1892. - Removed module.module as it was no longer needed.
  1893. - Various updates:
  1894. * Added "auto-post new submissions" feature versus "moderate new submissions".
  1895. * Introduced links/Drupal tags: [[link]]
  1896. * Added preview functionality when submitting new content (such as a story) from the administration pages.
  1897. * Made the administration section only show those links a user has access to.
  1898. * Made all modules use specific form_* functions to guarantee a rock-solid forms and more consistent layout.
  1899. * Improved scheduler:
  1900. + Content can be scheduled to be 'posted', 'queued' and 'hidden'.
  1901. * Improved account module:
  1902. + Added "access control" to allow/deny certain usernames/email addresses/hostnames.
  1903. * Improved locale module:
  1904. + Added new overview to easy the translation process.
  1905. * Improved comment module:
  1906. + Made it possible to permanently delete comments.
  1907. * Improved rating module
  1908. * Improved story module:
  1909. + Added preview functionality for administrators.
  1910. + Made it possible to permanently delete stories.
  1911. * Improved themes:
  1912. + W3C validation on a best effort basis.
  1913. + Removed $theme->control() from themes.
  1914. + Added theme "goofy".
  1915. - Collaboratively revised and expanded the Drupal documentation.
  1916. Drupal 2.0.0, 2001-03-15
  1917. ------------------------
  1918. - Rewrote the comment/discussion code:
  1919. * Comment navigation should be less confusing now.
  1920. * Additional/alternative display and order methods have been added.
  1921. * Modules can be extended with a "comment system": modules can embed the existing comment system without having to write their own, duplicate comment system.
  1922. - Added sections and section manager:
  1923. * Story sections can be maintained from the administration pages.
  1924. * Story sections make the open submission more adaptive in that you can set individual post, dump and expiration thresholds for each section according to the story type and urgency level: stories in certain sections do not "expire" and might stay interesting and active as time passes by, whereas news-related stories are only considered "hot" over a short period of time.
  1925. - Multiple vhosts + multiple directories:
  1926. * You can set up multiple Drupal sites on top of the same physical source tree either by using vhosts or sub-directories.
  1927. - Added "user ratings" similar to SlashCode's Karma or Scoop's Mojo:
  1928. * All rating logic is packed into a module to ease experimenting with different rating heuristics/algorithms.
  1929. - Added "search infrastructure":
  1930. * Improved search page and integrated search functionality in the administration pages.
  1931. - Added translation / localization / internationalization support:
  1932. * Because many people would love to see their website showing a lot less of English, and far more of their own language, Drupal provides a framework to set up a multi-lingual website or to overwrite the default English text in English.
  1933. - Added fine-grained user permission (or group) system:
  1934. * Users can be granted access to specific administration sections. Example: a FAQ maintainer can be given access to maintain the FAQ and translators can be given access to the translation pages.
  1935. - Added FAQ module
  1936. - Changed the "open submission queue" into a (optional) module.
  1937. - Various updates:
  1938. * Improved account module:
  1939. + User accounts can be deleted.
  1940. + Added fine-grained permission support.
  1941. * Improved block module
  1942. * Improved diary module:
  1943. + Diary entries can be deleted
  1944. * Improved headline module:
  1945. + Improved parser to support more "generic" RDF/RSS/XML backend.
  1946. * Improved module module
  1947. * Improved watchdog module
  1948. * Improved database abstraction layer
  1949. * Improved themes:
  1950. + W3C validation on a best effort basis
  1951. + Added theme "example" (alias "Stone Age")
  1952. * Added new scripts to directory "scripts"
  1953. * Added directory "misc"
  1954. * Added CREDITS file
  1955. - Revised documentation
  1956. Drupal 1.0.0, 2001-01-15
  1957. ------------------------
  1958. - Initial release