MediaWiki 1.21/wmf6

Deployment of MediaWiki 1.21wmf6 to Wikimedia sites

The latest version (labeled "1.21wmf6 ") of MediaWiki, the software that powers Wikipedia and its sister sites, is being deployed to all Wikimedia sites in stages, starting on Monday, 10 December 2012 (see the roadmap).

We will continue to deploy the latest software every two weeks. This is intended to minimize disruption and possible issues, and make it easier to identify the cause of problems, since the possibly problematic code will be much more recent.

Breaking changes

 * The message "wikimedia-editpage-tos-summary" (displayed below the edit form) has been removed, now "wikimedia-copyrightwarning" is needed; if you customised either of them, make sure that [ the original warning] and any additional custom text you need are on wikimedia-copyrightwarning.
 * E-mail notifications no longer say that a page was "created" for some actions like deletion or protection ; there are still some known issues. If you customised MediaWiki:Enotif body on your wiki, you have to delete or update it: the  variable is no longer provided, a new   is used; see also full documentation, and remember [//translatewiki.net/w/i.php?title=Special:Translate&task=view&group=core&limit=1000&offset=1000#msg_enotif_body to update translations on translatewiki.net].

Display changes

 * We changed the wording of the protectedpagetext message to include moving and other actions.
 * MediaWiki:Contributions now reflects the gender of the user.
 * We're displaying IPv6 addresses more nicely.

Fixes

 * We fixed the mobile version of the website so that, if you disable images, it doesn't also strip other content.
 * Your "enhanced changelist" displays minor/bot changes better.

New

 * There's a new DynamicSidebar: tell us if your sidebar acts weird.
 * TimedMediaHandler now supports embedding a smaller audio player of 35-pixel width, and reorders the controls so that small players get a play/pause button and volume first.
 * In WebFonts we've added the Gubbit font, replacing Kedage, for Kannada.

Core changes

 * - Remove extensions/Onboarding (renamed: extensions/GettingStarted)
 * - Add extensions/GettingStarted to wmf6
 * - Revert &quot; Add redirect target value on page info&quot;
 * - Update MobileFrontend and GeoData to trunk
 * - Updating Wikibase
 * - $wiki parameter for getRevisionText.
 * - StartProfiler.php shouldn't be under version control
 * - Updating Wikibase
 * - Fix spelling in nan date formats
 * - (minor) use wfMemcKey when caching sites list.
 * - Fix incorrect documentation for Language::getFormattedNsText
 * - Revert &quot; Add types to LogFormatter&quot;
 * - Revert &quot; Add tests for LogFormatter&quot;
 * - test: raise timeout on structure test
 * - Use my full name in the credits
 * - Add tests for LogFormatter
 * - Add types to LogFormatter
 * - Add redirect target value on page info
 * - ORM: pass some __METHOD__ to database functions
 * - Set wgWellFormedXml for LinkerTest::testUserLink
 * - Set wgHtml5/wgWellFormedXml for XmlTests
 * - Fix SanitizerTest for wikis with wgUseTidy = true;
 * - Adding missing @group Database to unit tests
 * - Fixup a couple of uses of return values of functions that return void
 * - Add numerous missing @throws to method documentation
 * - Tidy up some unbalanced returns in methods
 * - Remove unreachable lines
 * - Move insertUpdateRow call before return applyPatch to make it reachable
 * - Fix condition for the entries with a null model.
 * - The error message should refer to $wgContentHandlerUseDB
 * - Remove broken test.
 * - Fix check to see if element is there already.
 * - Allow SQL queries with long field list to wrap
 * - Use MWNamespace method instead of binary arithmetic
 * - Memory setting for djvutext is now a constant
 * - mediawiki.Uri.test: Clean up
 * - Less wild whitespace
 * - hideDeprecated( 'CategoryPage::getAutosummary' )
 * - Use JobQueueGroup::singleton
 * - Don't drop 'step=&quot;any&quot;' in HTML input fields.
 * - Replace deprecated Title::userIsWatching
 * - Fix unhandled exception when visiting e.g. MediaWiki:Somemessage/0
 * - Preferences: Use explicit string as returnto param
 * - Make sure MaintenanceFixup's shutdown is simulated
 * - prefix debug log when they end up in the main log
 * - Reset $mConvRuleTitle before every language conversion run
 * - worthwhile tests in testTitleObjectStringConversion
 * - ParserOutput::addLanguageLink needs a string
 * - parse argument for message 'ago' in MWTimestamp::getHumanTimestamp
 * - failure in sites tests
 * - Fix method declaration in UploadFromStash
 * - [JobQueue] Added a sanity check to catch ack breakage.
 * - Remove code duplication
 * - Leave some FIXME comments for - Division by zero
 * - [JobQueue] Added __METHOD__ to delete call.
 * - Also pass $doxygenInputFilter as parameter instead of global.
 * - Rename JavascriptContentTest to JavaScriptContentTest
 * - Use the canonical class name: s/JavascriptContent/JavaScriptContent/
 * - Add missing wfProfileOut
 * - Register WikitextContentTest in the test autoloader.
 * - Add parent::setUp to DatabaseSQLTest
 * - Genderize Special:Preferences
 * - Purge videos from squid on action=purge
 * - LinkerTest needs to set the wiki language to en.
 * - Add the required call to the parent setUp to DiffHistoryBlobTest::setUp
 * - Adding fragment support to SpecialPage::getTitleFor
 * - Revert UIDGenerator commits.
 * - [Upload] Added async upload concatenation support.
 * - While testing, turn off DataBase::ignoreErrors.
 * - test: detects parent setUp not being called
 * - Update docs for DifferenceEngine::getDiff
 * - Update misleading variable names in docs
 * - better handling of minor/bot in enhanced changelist
 * - add cursor:pointer to .mw-enhancedchanges-arrow
 * - Adjust comment for log_params database field
 * - [JobQueue] Removed redundant DBO_TRX handling in JobQueueDB.
 * - Add type hint
 * - Cleaned up UIDGenerator docs a bit.
 * - fix sort order
 * - Add UIDGenerator to AutoLoader
 * - Class for getting statistically unique IDs NOT a RFC4122 standard string representation
 * - New parser tests to spec wikitext behavior found on en:WP
 * - Added a few tests to spec HTML-pre behavior and test Parsoid.
 * - add method to check if ORMTable exists
 * - Treat message cache loading as fatal
 * - Add wfDeprecated to wfMsg* methods from 1.21 on
 * - Add 1.20 RELEASE-NOTES to HISTORY
 * - Make Language::isValidBuiltInCode return bool
 * - Avoid serializing database object in update.php
 * - [Upload] [Schema] Added us_props column to avoid expensive GETs.
 * - [JobQueue] Use SELECT for deduplication rather than more expensive DELETEs.
 * - (no bug) Fix per-connection db name in ORMTable.
 * - Make deleteOldRevisions.php no longer throw database errors on empty sets.
 * - Add timestamp sort to list=allimages
 * - test: raise timeout for DatabaseSqlite
 * - test: raise timeout for ExifRotation
 * - Fix API action=options&amp;reset=1 &amp; unit tests
 * - Set robot meta tags for 'view source' pages
 * - Database: fname was not logged for BEGIN/COMMIT.
 * - Show comment not as block in tables
 * - Fixing typo
 * - Add some __METHOD__ to begin/commit/rollback calls
 * - mediawiki.Uri: Update doc comments.
 * - Changed the wording of the protectedpagetext message to include moving and other actions.
 * - Implement static public Parser::getExternalLinkRel
 * - Test / spec handling of HTML entities in link tails
 * - Remove static method from interface
 * - Fixed documentation
 * - Added assertException method to MediaWikiTestCase
 * - Validate preference values in action=options
 * - MediaWiki:Contributions should support gender
 * - Validate editfont before embedding it in CSS
 * - Add comments to Linker::formatLinksInComment
 * - Optimized regex in Linker.php
 * - Refresh SessionId on login
 * - Add a hook to Special:Version so we can customize the version URL
 * - Test handling of templates with invalid template target
 * - Change msg check sp-contributions-explain from exists to isBlank
 * - Genderize be-tarask namespaces, fix spaces in definitions
 * - Additional table tests to spec parser behavior.
 * - Improve type hint
 * - Test table / list interaction
 * - API: Fix description for YAML format
 * - MWTimestamp::getHumanTimestamp uses 'just-now' message, which did not exist
 * - Addition of SearchAfterNoDirectMatch hook
 * - [JobQueue] Improved refreshLinks/htmlCacheUpdate job de-duplication.
 * - Attempt on fixing the suicidal LangObjCache
 * - Store &quot;bad metadata&quot; placeholder metadata for SVGs.
 * - Added a script to populate file HTTP headers for existing files.
 * - Fix typo (sentances =&gt; sentences)
 * - Changed Status class to allow passing of Message objects.
 * - [FileBackend] Removed obsolete &quot;allowStale&quot; parameter.
 * - RefreshLinksJob parsed with incorrect revision variables
 * - Rebuild MessagesEn.php
 * - Fix $wgHtml5 case. Follow-up c35304 (0473c33)
 * - Made BackLinkCache use object caching better.
 * - Expand release notes
 * - release notes for I9a2ebd50
 * - Typo in comment's Example code.
 * - [JobQueue] Fixed some old race conditions in nextJobDB.php
 * -  Improve display of IPv6 addresses
 * - Move around User::getEditCount code.
 * - Make clear that reportConnectionError stops the code flow.
 * - $wgHTML5 is a different variable than $wgHtml5 and the right name is the later.
 * - Global tweaks wrt $wgSecureLogin.
 * - Removal of unused globals.
 * - Email notification mistakes log action for new page creation
 * - Fix doc/hooks.txt for EditPage::showStandardInputs:options
 * - Stopped some debug notice warnings from showing on SpecialPages.
 * - Fix data type for timestamp in TestORMRowTest
 * - provide a way to separate out schema changes
 * - Fix hash validation in api
 * - Add 'dimensions' and 'thumbmine' to resultproperties in prop=imageinfo
 * - Kill DeviceDetection
 * - Improve documentation for &quot;pipe trick&quot;

CategoryTree

 * - - CategoryTree git/master does not work with mw 1.20.2 branch
 * - Fix mistake from g34493
 * - Change raw sql into query wrapper

CheckUser

 * - Find common range box doesn't work with IPs starting with 2.

Cite

 * - Work around Tidy confusion

DataValues

 * - Introduces a LinkedSingleInputWidget
 * - $.valueview.widget can register valueviews per DataType now
 * - fix coverage ignore
 * - Remove assertException defs due to move to core

DonationInterface

 * - Adding back new webmoney things.
 * - Revalidates data for the orphan rectifier batch operation, and minor fix
 * - Bandaid for a glitch in the system: If this one line tries to use unstaged data, it blows up on SET_PAYMENT calls. ...but just those.
 * - When we abort transactions to the gateway based on failed validation, write something to a log.
 * - Adds flexibility to the process of enabling and disabling 3D Secure authentication for various currency/country combinations.
 * - Argh, typo
 * - Additional logging and a slight reorder of normalization in DonationData
 * - Adds a forbidden country list, and checks the result of data validation before contacting any third party. As this alters do_transaction, every gateway/payment type is going to have to be tested for basic operation before this can be merged in.
 * - Even More Amazon Logging
 * - Making the gateway function filters usable, with regex and removing abs.
 * - Preventative and diagnostic measures for some double-fraud checking I'm seeing in the logs. Where it gets silly, is the IP velocity filter double-checking people. That thing will always fail on the second check...
 * - Updating Webmoney to the new template and adding an optional email field.

DynamicSidebar

 * Newly deployed extension

Echo

 * - Formatting work on overlay
 * - Fix fatal error
 * - Making sure the user's language is used regardless of context.
 * - Allowing notifications to support multiple predefined components in the payload.
 * - Setting up preferences for Echo, adding comments for some functions
 * - Fix invalid notification in the flyout and page
 * - Losslessly compress PNGs
 * - Add global default email footer message
 * - Remove redundant condition from if statement
 * - Adding comments and fixing some incorrect comments
 * - Redoing the notification icons and changing some formatting
 * - message snippets in notif should skip templates

EducationProgram

 * - Fixed incorrect course title handling after single namespace rewrite
 * - Added missing message arguments

EventLogging

 * - Set SO_REUSEADDR and swallow socket errors on shutdown.
 * - Quote function name when passing it as a parameter.
 * - Add JSON Schema validation code from JsonData extension
 * - Add AUTHORS; tweak comments.
 * - Fix comments
 * - Call parent::setUp in test case setup method

LabeledSectionTransclusion

 * - - LST: Empty regular expression
 * - Fixup method parameter documentation
 * - Default entry point + rename LabeledSectionTransclusion file
 * - Move LabeledSectionTransclusion to its own file
 * - Improve parser tests
 * - - allow nested #lst tags
 * - Improved transclusion loop error message
 * - Reverted to state as of 40a0eb2367233dcb0401f9aa5554d451ca771ebf
 * - - &lt;noinclude&gt; tags broken in LST
 * - Duplicate some of the loader code into lsth
 * - Default entry point + rename LabeledSectionTransclusion file
 * - Move LabeledSectionTransclusion to its own file
 * - Improve parser tests
 * - - allow nested #lst tags
 * - - LabeledSectionTransclusion: Fatal error: Call to undefined method Title::getRedirectTarget
 * - Add another missing wfProfileOut
 * - - LabeledSectionTransclusion: Fatal error: Call to undefined method Title::getRedirectTarget
 * - Add missing wfProfileOut
 * - Allow &lt;section&gt; to be transclusion &amp; -ed
 * - Improved transclusion loop error message
 * - Removed #vim instructions

LdapAuthentication

 * Newly deployed extension

LiquidThreads

 * - Some cleanups to getShowReplies
 * - Don't format numbers twice
 * - * Unoptimized query in LiquidThreads

MapSources

 * - Some consistency tweaks in preparation for translation

MoodBar

 * - Only call ApiResult::setContent once

OATHAuth

 * Newly deployed extension

OggHandler

 * - ogg -&gt; Ogg

OpenStackManager

 * Newly deployed extension

PageTriage

 * - Changing Wikipedia to

PostEdit

 * - Get rid of unneeded message; $dir -&gt; __DIR__, better

ProofreadPage

 * - Small bugfix and improvements for the OAI repository

RelatedArticles

 * - Fixup documentation

RelatedSites

 * - Tidy up property accessors

Renameuser

 * - Fix incorrect variable for plural
 * - Fix two fatals
 * - Update logging to latest standards, including pretty formatting.

Score

 * - Adding comment. PHP does support try-finally, but not in PHP 5.3.

Scribunto

 * - Fixed transmission of \0 from Lua standalone

SpamBlacklist

 * - Restore content of &quot;spam-whitelist&quot; removed by accident

TemplateSandbox

 * - Fix title case in templatesandbox-editform-view-label
 * - Fixup method parameter documentation
 * - TemplateSandbox-&gt;Template sandbox
 * - clarifying error message
 * - improving messaging
 * - Improved explanation for TemplateSandbox user

TimedMediaHandler

 * - Add link description and make right message consistent
 * - support smaller audio player
 * - faile with error if file could not be found
 * - : fix video player in rtl mode
 * - -  improve timedmedia-subtitle-new-desc
 * - Dont show credits at end for audio clips
 * - Fixes an issue, where 'Error missing media source' message was given instead of a player. It happens on wikis with site languges other than English: looking for derivatives in remote repository file, localized NS_FILE is called, and Commons is not aware of it.
 * - fix edit link for old revisions
 * - : reset transcodes on revert

Translate

 * - Working around fatals when moving translatable pages
 * - Make use of the new loading indicator
 * - Don't fuzzy message documentation together with translations
 * - [Project Selector] Discouraged groups are displayed
 * - Fix JSHint issues
 * - Use window.alert instead of alert
 * - A few JSHint fixes
 * - Fix casing in data types
 * - Check for presence of $.uls
 * - Update docs
 * - Simplify CSS.
 * - JSHint/JSlint suggested fixes
 * - Add .jshintrc and .jshintignore
 * - Fix malformed html in the groupselector
 * - Remove a var_dump statement
 * - Update docs and type hints.
 * - Address type incompatibility warnings
 * - I18n for message selector tabs
 * - Remodeled MessageGroups::getParentGroups
 * - Add parent group before subgroups so they appear first in search
 * - Made message selector tabs work
 * - Integrate ULS for target language selection for translation
 * - Initialise some variables
 * - Add type hints
 * - In the new message list, don't preserve whitespace
 * - Move variable declaration to top of function
 * - Improve message list action bar
 * - Fix incorrect tag
 * - Reformat @todo
 * - Make sure $out is defined
 * - Refactoring a bit to have nicer method documentation
 * - Remove unused local variable assignment
 * - Project selector integration with message list
 * - Implement search by name in all groups
 * - Message list
 * - Improve consistency in page translation terminology
 * - Use message group ID as data attribute for message group selector links
 * - Use WikiPage::factory instead of new Article
 * - Remove unused para $db for getMarkedTag and getReadyTag
 * - Update/correct/add docs
 * - Hook TranslateSupportedLanguages
 * - Present the exports as downloadable files
 * - Rectify missing dependency on mediawiki.Uri
 * - WikiMessageGroup: check that message definition message exists
 * - Missing parent::setUp to JsonFFSTest
 * - Removed $wgTranslateAC and $wgTranslateEC
 * - GettextFFS: Empty msgctxt must be different from no msgctxt
 * - Extend meta=messagegroups API function + better tests
 * - Fix silly mistake, unit tests use @group
 * - Port page translation tests to phpunit
 * - Special:TranslationStats counts for edits includes also reviews
 * - Whitespace tweaks
 * - Remove duplicate message keys in aggregate groups
 * - Styling changes for project selector
 * - Use the target language given by Special:Translate
 * - CSS fixes for layout and style
 * - More or less different PHPDoc
 * - Make the load all messages button in group selector work.
 * - - Status bar rendering slow in Firefox
 * - Small doc fixes
 * - Fix docs
 * - Undefined variable $id in ApiAggregateGroups
 * - Replace the expand button with label
 * - Use WikiPage::factory instead of new Article
 * - Fix syntax error from a20f674189c1a9e6f828ea2c699894d69ee1a554
 * - Replace &lt;tt&gt; with &lt;code&gt;
 * - Quelle horreur
 * - Bitten again
 * - Must be WikiPage, not Article
 * - Update docs, type hints and parameter types
 * - Add more type hints and update PHPDoc.
 * - Update @todo formatting and add a FIXME.
 * - More PHDoc updates
 * - Update PHPDoc comments
 * - Add group description message for Wikisource Mobile
 * - Remove redundant units of measure
 * - Move var declaration to the top of the function
 * - Use brackets
 * - Declare variables at the top of functions
 * - Remove unused variables
 * - Status bar rendering slow in Firefox
 * - Don't count proofread also as translated in StatsBar
 * - Statsbar integrated to group selector
 * - Declare user property and tweaks to api output
 * - Recent Messagegroups listing
 * - Raster fallbacks for svg images
 * - Icons in group selector
 * - Whitespace fixes
 * - Removing unused methods, messages and styles
 * - Message group list - load all messagegroups
 * - Exposing group icons via PHP/WebAPI
 * - Make JavaScript plural work
 * - New message group selector
 * - Exception in Special:Translations
 * - Initial version of StatsBar for PHP and JS
 * - Collect and expose recent groups used by the user
 * - Use a shared version of Solarium
 * - In ApiQueryMessageGroups with root param, don't list the parent
 * - Add CSS grid system
 * - Added meta=languagestats WebAPI
 * - Fix sorting issues in ApiQueryMessageGroups
 * - Add root parameter to ApiQueryMessageGroups
 * - Add depth parameter to ApiQueryMessageGroups
 * - Prop framework to ApiQueryMessageGroups
 * - Default MessageTable implementation can now be overriden
 * - Expose MessageGroups::getGroupSructure via WebAPI
 * - Add warning for incomplete results
 * - Do not enable core for translation by default.

TranslationNotifications

 * - Add missing $id to TNJob

UniversalLanguageSelector

 * -  #pt-uls .uls-trigger is missing left padding in Modern skin
 * - Update jquery.uls from upstream
 * - Updating from upstream
 * - Fix dependency of uls to include geoclient

UploadWizard

 * - Put &quot;Help desk&quot; page in Project namespace
 * - unescape characters escaped in Flickr descriptions

UserMerge

 * - Whitespace cleanup
 * - Fix SQL error on merge/delete with blocked user.

Vector

 * - Making previous fix compat with CSS style convention and adding comment

WebFonts

 * - Add Gubbit font replacing Kedage for Kannada

Wikibase

 * - Pass $wiki parameter to getRevisionText
 * - (minor) add wfDebugLog calls to onWikiPollHandle.
 * - Fix method name in CachedEntityTest due to change in ORMRowTest
 * - Fix method name in ChangeRowTest due to change in ORMRowTest
 * - Corrected the message key of wbeditentity
 * - Avoid error for history of missing page.
 * - Use EditEntity in removeclaims and added token requirement
 * - continuation logic for pollForChanges.
 * - view for editing values of type item
 * - Changed used data value type of wikibase-item data type to 'string'
 * - Optimizing entityselector widget's input validation
 * - Removing suggester's &quot;selected&quot; event
 * - (minor) Improving documentation of profiling settings.
 * - Improving entity selector widget style
 * - (no bug) Correct singular form in output of pollForChanges.php
 * - Avoid race condition in SiteLinkTable.
 * - Added RemoveQualifiers API module
 * - (no bug) integrate statements into editonoff selenium tests
 * - row ID column for wb_terms and wb_items_per_site.
 * - Added classes 'wb-edit' to claim widget and claim section when editing
 * - Finished setqualifier API module and added tests
 * - (no bug) Fix wording in the setting documentation
 * - Hide anons and logged in users filters with Wikidata changes
 * - new option withoutTermSearchKey
 * - selenium tests for statement UI
 * - (no bug) adding page object for statements selenium tests
 * - Add labels to user contributions
 * - (no bug) declare @group Database where needed.
 * - Using full column width for textarea in add claim form
 * - Declare term_text as binary.
 * - CSS for highlighting edit claim / new claim forms
 * - Stretching claim value textareas across whole center column
 * - check if the site table exists and site code is valid
 * - Improving entityselector widget event handling and input validation
 * - Optimizing jquery suggester events
 * - Improving validation logic in JS template function
 * - Fixed bug in wb.ui.Toolbar when adding same element multiple times
 * - CSS for new claim section
 * - use write connection for recent changes save hook
 * - Minor cleanup in toolbar.js and claimview
 * - (no bug) add template engine qunit tests to selenium
 * - Fix for broken suggester/entityselecter QUnit tests in FF
 * - (no bug) make selenium tests independent from ULS
 * - Storing value on save on existing Statements
 * - AutocompleteInterface: Not reacting on event after removing input
 * - Reinserting improved regular expression into suggester widget
 * - (part of ) Added wb.Api.setClaimValue module in JS API
 * - Refactored wb.Api.createClaim
 * - (part of ) wb.Claim and wb.Statement cleanup and GUID usage
 * - Can not create instance of abstract wb.Snak anymore
 * - add qqq message for special-entitydata
 * - (sec audit) Removing use of jquery.html from siteselector widget
 * - (sec audit) Removing use of jquery.html from suggester widget
 * - (no bug) removed @cover annotation
 * - (no bug) limit maxag to 30 days.
 * - Added setqualifier API module
 * - escape var in query construction
 * - Fixes for 1dcfeea564586940035384688a2813000baf82d7
 * - (sec audit) Fix permission and token checks in API
 * - Fix doc
 * - Remove method now in core
 * - (sec audit) fix several escaping issues.
 * - (sec audit) check permissions when creating enitites.
 * - (no bug) Kill race condition in EntityPerPageTable.
 * - Add lang and dir to fields on Special:CreateItem
 * - English message spelling
 * - kill repo table
 * - remove temporary hack settings, make siteGlobalID default to $wgDBname
 * - Avoid confusion by not enabling experimental features when the constant is set to false
 * - (no bug) don't use wfGetDB
 * - make repo link work with protocol relative
 * - (no bug) re-adding sleep after delete/undelete in selenium test
 * - JavaScript template engine function returning jQuery object
 * - Restored automatic loading of Lib from Client
 * - Exit maintenance scripts with desciptive error when required extension is not loaded
 * - improve docs
 * - Replaced alternate entry points for experimental behaviour with configuration switch
 * - Use readonly mode in SiteLinkTable
 * - Remove SiteLinkRemote table
 * - fix memcached usage for entities.
 * - clear wikibase client recent changes when using deleteAllData

WikimediaMessages

 * - Get rid of wikimedia-editpage-tos-summary

cldr

 * - Updated CLDR LocalNames for be-tarask
 * - Fixed CLDR LocalNames for be-tarask
 * - Add South Azerbaijani (arz).

normal

 * - bump version to 0.0.2
 * - remove deb build stuff, it's obsolete and shouldn't be part of extension