Core Platform Team/Initiative/Stability annotations/newable

List of classes intended to be "newable".

Data objects
includes/title/TitleValue.php includes/Revision/RevisionSlots.php includes/Revision/MutableRevisionRecord.php includes/DerivativeRequest.php includes/MWTimestamp.php includes/mail/MailAddress.php includes/session/Token.php includes/session/SessionId.php includes/user/LoggedOutEditToken.php includes/user/UserIdentityValue.php includes/exception/ErrorPageError.php includes/exception/MWException.php includes/FauxRequest.php includes/libs/Message/MessageValue.php includes/libs/Message/DataMessageValue.php includes/libs/Message/ScalarParam.php includes/libs/Message/ListParam.php includes/libs/HtmlArmor.php includes/session/SessionInfo.php includes/RawMessage.php includes/api/ApiHelpParamValueMessage.php includes/api/ApiMessage.php includes/api/ApiRawMessage.php includes/language/Message.php includes/session/SessionInfo.php

includes/utils/BatchRowIterator.php includes/media/BitmapMetadataHandler.php includes/libs/objectcache/HashBagOStuff.php includes/libs/objectcache/CachedBagOStuff.php

Tolerated
includes/ApiMain.php includes/context/DerivativeContext.php

Classes instantiated by extensions that should not be
We will need to provide alternatives for directly instantiating these.

includes/CommentStoreComment.php: FileImporter should use a factory method or mocks when constructing CommentStoreComment in tests. includes/Revision/SlotRecord.php: Wikibase should use a factory method or mocks when constructing SlotRecords in tests. includes/Title.php: several extensions need a better way to represent no title. includes/cache/LinkBatch.php: several extensions should use LinkBatchFactory instead. includes/interwiki/Interwiki.php JsonConfig: FauxInterwikiLookup includes/page/Article.php: several extensions should use Article::newFromTitle instead. includes/page/WikiPage.php: several extensions should use WikiPage::factory instead.

To Do

 * All Exceptions! (or nearly all)