diff --git a/.upgrade.yml b/.upgrade.yml
deleted file mode 100644
index dff65daae..000000000
--- a/.upgrade.yml
+++ /dev/null
@@ -1,1515 +0,0 @@
-fileExtensions:
-  - php
-mappings:
-  ArrayList: SilverStripe\ORM\ArrayList
-  DatabaseAdmin: SilverStripe\ORM\DatabaseAdmin
-  DataExtension: SilverStripe\ORM\DataExtension
-  DataList: SilverStripe\ORM\DataList
-  DataObject: SilverStripe\ORM\DataObject
-  DataObjectInterface: SilverStripe\ORM\DataObjectInterface
-  DataObjectSchema: SilverStripe\ORM\DataObjectSchema
-  DataQuery: SilverStripe\ORM\DataQuery
-  DataQuery_SubGroup: SilverStripe\ORM\DataQuery_SubGroup
-  DB: SilverStripe\ORM\DB
-  SS_Filterable: SilverStripe\ORM\Filterable
-  SilverStripe\ORM\SS_Filterable: SilverStripe\ORM\Filterable
-  GroupedList: SilverStripe\ORM\GroupedList
-  HasManyList: SilverStripe\ORM\HasManyList
-  HiddenClass: SilverStripe\ORM\HiddenClass
-  SS_Limitable: SilverStripe\ORM\Limitable
-  SilverStripe\ORM\SS_Limitable: SilverStripe\ORM\Limitable
-  SS_List: SilverStripe\ORM\SS_List
-  SS_ListDecorator: SilverStripe\ORM\ListDecorator
-  SilverStripe\ORM\SS_ListDecorator: SilverStripe\ORM\ListDecorator
-  ManyManyList: SilverStripe\ORM\ManyManyList
-  SS_Map: SilverStripe\ORM\Map
-  SilverStripe\ORM\SS_Map: SilverStripe\ORM\Map
-  SS_Map_Iterator: SilverStripe\ORM\Map_Iterator
-  SilverStripe\ORM\SS_Map_Iterator: SilverStripe\ORM\Map_Iterator
-  PolymorphicHasManyList: SilverStripe\ORM\PolymorphicHasManyList
-  SilverStripe\Model\Relation: SilverStripe\ORM\Relation
-  RelationList: SilverStripe\ORM\RelationList
-  SS_Sortable: SilverStripe\ORM\Sortable
-  SilverStripe\ORM\SS_Sortable: SilverStripe\ORM\Sortable
-  UnsavedRelationList: SilverStripe\ORM\UnsavedRelationList
-  ValidationException: SilverStripe\ORM\ValidationException
-  ValidationResult: SilverStripe\ORM\ValidationResult
-  SQLAssignmentRow: SilverStripe\ORM\Queries\SQLAssignmentRow
-  SQLConditionalExpression: SilverStripe\ORM\Queries\SQLConditionalExpression
-  SQLConditionGroup: SilverStripe\ORM\Queries\SQLConditionGroup
-  SQLDelete: SilverStripe\ORM\Queries\SQLDelete
-  SQLExpression: SilverStripe\ORM\Queries\SQLExpression
-  SQLInsert: SilverStripe\ORM\Queries\SQLInsert
-  SQLSelect: SilverStripe\ORM\Queries\SQLSelect
-  SQLUpdate: SilverStripe\ORM\Queries\SQLUpdate
-  SQLWriteExpression: SilverStripe\ORM\Queries\SQLWriteExpression
-  SS_Database: SilverStripe\ORM\Connect\Database
-  SS_DatabaseException: SilverStripe\ORM\Connect\DatabaseException
-  SilverStripe\ORM\Connect\SS_Database: SilverStripe\ORM\Connect\Database
-  SilverStripe\ORM\Connect\SS_DatabaseException: SilverStripe\ORM\Connect\DatabaseException
-  DBConnector: SilverStripe\ORM\Connect\DBConnector
-  DBQueryBuilder: SilverStripe\ORM\Connect\DBQueryBuilder
-  DBSchemaManager: SilverStripe\ORM\Connect\DBSchemaManager
-  MySQLDatabase: SilverStripe\ORM\Connect\MySQLDatabase
-  MySQLiConnector: SilverStripe\ORM\Connect\MySQLiConnector
-  MySQLQuery: SilverStripe\ORM\Connect\MySQLQuery
-  MySQLQueryBuilder: SilverStripe\ORM\Connect\MySQLQueryBuilder
-  MySQLSchemaManager: SilverStripe\ORM\Connect\MySQLSchemaManager
-  MySQLStatement: SilverStripe\ORM\Connect\MySQLStatement
-  SS_Query: SilverStripe\ORM\Connect\Query
-  SilverStripe\ORM\Connect\SS_Query: SilverStripe\ORM\Connect\Query
-  DBBoolean: SilverStripe\ORM\FieldType\DBBoolean
-  DBClassName: SilverStripe\ORM\FieldType\DBClassName
-  DBComposite: SilverStripe\ORM\FieldType\DBComposite
-  DBCurrency: SilverStripe\ORM\FieldType\DBCurrency
-  DBDate: SilverStripe\ORM\FieldType\DBDate
-  DBDatetime: SilverStripe\ORM\FieldType\DBDatetime
-  DBDecimal: SilverStripe\ORM\FieldType\DBDecimal
-  DBDouble: SilverStripe\ORM\FieldType\DBDouble
-  DBEnum: SilverStripe\ORM\FieldType\DBEnum
-  DBField: SilverStripe\ORM\FieldType\DBField
-  DBFloat: SilverStripe\ORM\FieldType\DBFloat
-  DBForeignKey: SilverStripe\ORM\FieldType\DBForeignKey
-  DBHTMLText: SilverStripe\ORM\FieldType\DBHTMLText
-  DBHTMLVarchar: SilverStripe\ORM\FieldType\DBHTMLVarchar
-  DBInt: SilverStripe\ORM\FieldType\DBInt
-  DBLocale: SilverStripe\ORM\FieldType\DBLocale
-  DBMoney: SilverStripe\ORM\FieldType\DBMoney
-  DBMultiEnum: SilverStripe\ORM\FieldType\DBMultiEnum
-  DBPercentage: SilverStripe\ORM\FieldType\DBPercentage
-  DBPolymorphicForeignKey: SilverStripe\ORM\FieldType\DBPolymorphicForeignKey
-  DBPrimaryKey: SilverStripe\ORM\FieldType\DBPrimaryKey
-  DBString: SilverStripe\ORM\FieldType\DBString
-  DBText: SilverStripe\ORM\FieldType\DBText
-  DBTime: SilverStripe\ORM\FieldType\DBTime
-  DBVarchar: SilverStripe\ORM\FieldType\DBVarchar
-  DBYear: SilverStripe\ORM\FieldType\DBYear
-  SS_Datetime: SilverStripe\ORM\FieldType\DBDatetime
-  SilverStripe\Model\FieldType\DBBoolean: SilverStripe\ORM\FieldType\DBBoolean
-  SilverStripe\Model\FieldType\DBClassName: SilverStripe\ORM\FieldType\DBClassName
-  SilverStripe\Model\FieldType\DBComposite: SilverStripe\ORM\FieldType\DBComposite
-  SilverStripe\Model\FieldType\DBCurrency: SilverStripe\ORM\FieldType\DBCurrency
-  SilverStripe\Model\FieldType\DBDate: SilverStripe\ORM\FieldType\DBDate
-  SilverStripe\Model\FieldType\DBDatetime: SilverStripe\ORM\FieldType\DBDatetime
-  SilverStripe\Model\FieldType\DBDecimal: SilverStripe\ORM\FieldType\DBDecimal
-  SilverStripe\Model\FieldType\DBDouble: SilverStripe\ORM\FieldType\DBDouble
-  SilverStripe\Model\FieldType\DBEnum: SilverStripe\ORM\FieldType\DBEnum
-  SilverStripe\Model\FieldType\DBField: SilverStripe\ORM\FieldType\DBField
-  SilverStripe\Model\FieldType\DBFloat: SilverStripe\ORM\FieldType\DBFloat
-  SilverStripe\Model\FieldType\DBForeignKey: SilverStripe\ORM\FieldType\DBForeignKey
-  SilverStripe\Model\FieldType\DBHTMLText: SilverStripe\ORM\FieldType\DBHTMLText
-  SilverStripe\Model\FieldType\DBHTMLVarchar: SilverStripe\ORM\FieldType\DBHTMLVarchar
-  SilverStripe\Model\FieldType\DBInt: SilverStripe\ORM\FieldType\DBInt
-  SilverStripe\Model\FieldType\DBLocale: SilverStripe\ORM\FieldType\DBLocale
-  SilverStripe\Model\FieldType\DBMoney: SilverStripe\ORM\FieldType\DBMoney
-  SilverStripe\Model\FieldType\DBMultiEnum: SilverStripe\ORM\FieldType\DBMultiEnum
-  SilverStripe\Model\FieldType\DBPercentage: SilverStripe\ORM\FieldType\DBPercentage
-  SilverStripe\Model\FieldType\DBPolymorphicForeignKey: SilverStripe\ORM\FieldType\DBPolymorphicForeignKey
-  SilverStripe\Model\FieldType\DBPrimaryKey: SilverStripe\ORM\FieldType\DBPrimaryKey
-  SilverStripe\Model\FieldType\DBString: SilverStripe\ORM\FieldType\DBString
-  SilverStripe\Model\FieldType\DBText: SilverStripe\ORM\FieldType\DBText
-  SilverStripe\Model\FieldType\DBTime: SilverStripe\ORM\FieldType\DBTime
-  SilverStripe\Model\FieldType\DBVarchar: SilverStripe\ORM\FieldType\DBVarchar
-  SilverStripe\Model\FieldType\DBYear: SilverStripe\ORM\FieldType\DBYear
-  SilverStripe\Model\FieldType\SS_Datetime: SilverStripe\ORM\FieldType\DBDatetime
-  Hierarchy: SilverStripe\ORM\Hierarchy\Hierarchy
-  Authenticator: SilverStripe\Security\Authenticator
-  BasicAuth: SilverStripe\Security\BasicAuth
-  ChangePasswordForm: SilverStripe\Security\MemberAuthenticator\ChangePasswordForm
-  CMSMemberLoginForm: SilverStripe\Security\MemberAuthenticator\CMSMemberLoginForm
-  CMSSecurity: SilverStripe\Security\CMSSecurity
-  Group: SilverStripe\Security\Group
-  GroupCsvBulkLoader: SilverStripe\Security\GroupCsvBulkLoader
-  LoginAttempt: SilverStripe\Security\LoginAttempt
-  LoginForm: SilverStripe\Security\LoginForm
-  Member: SilverStripe\Security\Member
-  Member_GroupSet: SilverStripe\Security\Member_GroupSet
-  Member_Validator: SilverStripe\Security\Member_Validator
-  MemberAuthenticator: SilverStripe\Security\MemberAuthenticator\MemberAuthenticator
-  MemberCsvBulkLoader: SilverStripe\Security\MemberCsvBulkLoader
-  MemberLoginForm: SilverStripe\Security\MemberAuthenticator\MemberLoginForm
-  MemberPassword: SilverStripe\Security\MemberPassword
-  PasswordEncryptor: SilverStripe\Security\PasswordEncryptor
-  PasswordEncryptor_Blowfish: SilverStripe\Security\PasswordEncryptor_Blowfish
-  PasswordEncryptor_PHPHash: SilverStripe\Security\PasswordEncryptor_PHPHash
-  PasswordEncryptor_LegacyPHPHash: SilverStripe\Security\PasswordEncryptor_LegacyPHPHash
-  PasswordEncryptor_MySQLPassword: SilverStripe\Security\PasswordEncryptor_MySQLPassword
-  PasswordEncryptor_MySQLOldPassword: SilverStripe\Security\PasswordEncryptor_MySQLOldPassword
-  PasswordEncryptor_None: SilverStripe\Security\PasswordEncryptor_None
-  PasswordEncryptor_NotFoundException: SilverStripe\Security\PasswordEncryptor_NotFoundException
-  PasswordEncryptor_EncryptionFailed: SilverStripe\Security\PasswordEncryptor_EncryptionFailed
-  PasswordValidator: SilverStripe\Security\PasswordValidator
-  Permission: SilverStripe\Security\Permission
-  Permission_Group: SilverStripe\Security\Permission_Group
-  PermissionCheckboxSetField: SilverStripe\Security\PermissionCheckboxSetField
-  PermissionCheckboxSetField_Readonly: SilverStripe\Security\PermissionCheckboxSetField_Readonly
-  PermissionFailureException: SilverStripe\Security\PermissionFailureException
-  PermissionProvider: SilverStripe\Security\PermissionProvider
-  PermissionRole: SilverStripe\Security\PermissionRole
-  PermissionRoleCode: SilverStripe\Security\PermissionRoleCode
-  RandomGenerator: SilverStripe\Security\RandomGenerator
-  RememberLoginHash: SilverStripe\Security\RememberLoginHash
-  Security: SilverStripe\Security\Security
-  SecurityToken: SilverStripe\Security\SecurityToken
-  NullSecurityToken: SilverStripe\Security\NullSecurityToken
-  SilverStripe\Framework\Core\Configurable: SilverStripe\Core\Config\Configurable
-  PaginatedList: SilverStripe\ORM\PaginatedList
-  ArrayLib: SilverStripe\ORM\ArrayLib
-  SilverStripe\Framework\Injector\Factory: SilverStripe\Core\Injector\Factory
-  SilverStripe\Framework\Core\Extensible: SilverStripe\Core\Extensible
-  SilverStripe\Framework\Core\Injectable: SilverStripe\Core\Injector\Injectable
-  ClassInfo: SilverStripe\Core\ClassInfo
-  Convert: SilverStripe\Core\Convert
-  Extension: SilverStripe\Core\Extension
-  Flushable: SilverStripe\Core\Flushable
-  Config: SilverStripe\Core\Config\Config
-  Config_ForClass: SilverStripe\Core\Config\Config_ForClass
-  AfterCallAspect: SilverStripe\Core\Injector\AfterCallAspect
-  AopProxyService: SilverStripe\Core\Injector\AopProxyService
-  BeforeCallAspect: SilverStripe\Core\Injector\BeforeCallAspect
-  InjectionCreator: SilverStripe\Core\Injector\InjectionCreator
-  Injector: SilverStripe\Core\Injector\Injector
-  ServiceConfigurationLocator: SilverStripe\Core\Injector\ServiceConfigurationLocator
-  SilverStripeServiceConfigurationLocator: SilverStripe\Core\Injector\SilverStripeServiceConfigurationLocator
-  SS_ClassLoader: SilverStripe\Core\Manifest\ClassLoader
-  SilverStripe\Core\Manifest\SS_ClassLoader: SilverStripe\Core\Manifest\ClassLoader
-  SS_ClassManifest: SilverStripe\Core\Manifest\ClassManifest
-  SilverStripe\Core\Manifest\SS_ClassManifest: SilverStripe\Core\Manifest\ClassManifest
-  ManifestFileFinder: SilverStripe\Core\Manifest\ManifestFileFinder
-  DatabaseAdapterRegistry: SilverStripe\Dev\Install\DatabaseAdapterRegistry
-  DatabaseConfigurationHelper: SilverStripe\Dev\Install\DatabaseConfigurationHelper
-  MySQLDatabaseConfigurationHelper: SilverStripe\Dev\Install\MySQLDatabaseConfigurationHelper
-  SS_Backtrace: SilverStripe\Dev\Backtrace
-  SilverStripe\Dev\SS_Backtrace: SilverStripe\Dev\Backtrace
-  BehatFixtureFactory: SilverStripe\Dev\BehatFixtureFactory
-  BuildTask: SilverStripe\Dev\BuildTask
-  BulkLoader: SilverStripe\Dev\BulkLoader
-  BulkLoader_Result: SilverStripe\Dev\BulkLoader_Result
-  SS_Cli: SilverStripe\Dev\CLI
-  SilverStripe\Dev\SS_Cli: SilverStripe\Dev\CLI
-  CliDebugView: SilverStripe\Dev\CliDebugView
-  CSSContentParser: SilverStripe\Dev\CSSContentParser
-  CsvBulkLoader: SilverStripe\Dev\CsvBulkLoader
-  Debug: SilverStripe\Dev\Debug
-  DebugView: SilverStripe\Dev\DebugView
-  Deprecation: SilverStripe\Dev\Deprecation
-  DevBuildController: SilverStripe\Dev\DevBuildController
-  DevelopmentAdmin: SilverStripe\Dev\DevelopmentAdmin
-  FixtureBlueprint: SilverStripe\Dev\FixtureBlueprint
-  FixtureFactory: SilverStripe\Dev\FixtureFactory
-  FunctionalTest: SilverStripe\Dev\FunctionalTest
-  MigrationTask: SilverStripe\Dev\MigrationTask
-  SapphireTest: SilverStripe\Dev\SapphireTest
-  TaskRunner: SilverStripe\Dev\TaskRunner
-  TestMailer: SilverStripe\Dev\TestMailer
-  TestOnly: SilverStripe\Dev\TestOnly
-  TestSession: SilverStripe\Dev\TestSession
-  TestSession_STResponseWrapper: SilverStripe\Dev\TestSession_STResponseWrapper
-  YamlFixture: SilverStripe\Dev\YamlFixture
-  CliController: SilverStripe\Control\CliController
-  ContentNegotiator: SilverStripe\Control\ContentNegotiator
-  Controller: SilverStripe\Control\Controller
-  Cookie: SilverStripe\Control\Cookie
-  Cookie_Backend: SilverStripe\Control\Cookie_Backend
-  CookieJar: SilverStripe\Control\CookieJar
-  Director: SilverStripe\Control\Director
-  FlushRequestFilter: SilverStripe\Control\Middleware\FlushMiddleware
-  HTTPCacheControl: SilverStripe\Control\Middleware\HTTPCacheControlMiddleware
-  HTTP: SilverStripe\Control\HTTP
-  SS_HTTPRequest: SilverStripe\Control\HTTPRequest
-  SS_HTTPResponse: SilverStripe\Control\HTTPResponse
-  SS_HTTPResponse_Exception: SilverStripe\Control\HTTPResponse_Exception
-  SilverStripe\Control\SS_HTTPRequest: SilverStripe\Control\HTTPRequest
-  SilverStripe\Control\SS_HTTPResponse: SilverStripe\Control\HTTPResponse
-  SilverStripe\Control\SS_HTTPResponse_Exception: SilverStripe\Control\HTTPResponse_Exception
-  NestedController: SilverStripe\Control\NestedController
-  NullHTTPRequest: SilverStripe\Control\NullHTTPRequest
-  PjaxResponseNegotiator: SilverStripe\Control\PjaxResponseNegotiator
-  RequestHandler: SilverStripe\Control\RequestHandler
-  Session: SilverStripe\Control\Session
-  Email: SilverStripe\Control\Email\Email
-  RSSFeed: SilverStripe\Control\RSS\RSSFeed
-  RSSFeed_Entry: SilverStripe\Control\RSS\RSSFeed_Entry
-  CleanupTestDatabasesTask: SilverStripe\Dev\Tasks\CleanupTestDatabasesTask
-  i18nTextCollectorTask: SilverStripe\Dev\Tasks\i18nTextCollectorTask
-  CheckboxField: SilverStripe\Forms\CheckboxField
-  CheckboxField_Readonly: SilverStripe\Forms\CheckboxField_Readonly
-  CheckboxSetField: SilverStripe\Forms\CheckboxSetField
-  CompositeField: SilverStripe\Forms\CompositeField
-  ConfirmedPasswordField: SilverStripe\Forms\ConfirmedPasswordField
-  CurrencyField: SilverStripe\Forms\CurrencyField
-  CurrencyField_Readonly: SilverStripe\Forms\CurrencyField_Readonly
-  CurrencyField_Disabled: SilverStripe\Forms\CurrencyField_Disabled
-  DatalessField: SilverStripe\Forms\DatalessField
-  DateField: SilverStripe\Forms\DateField
-  DateField_Disabled: SilverStripe\Forms\DateField_Disabled
-  DatetimeField: SilverStripe\Forms\DatetimeField
-  DisabledTransformation: SilverStripe\Forms\DisabledTransformation
-  DropdownField: SilverStripe\Forms\DropdownField
-  EmailField: SilverStripe\Forms\EmailField
-  FieldGroup: SilverStripe\Forms\FieldGroup
-  FieldList: SilverStripe\Forms\FieldList
-  FileField: SilverStripe\Forms\FileField
-  Form: SilverStripe\Forms\Form
-  Form_FieldMap: SilverStripe\Forms\Form_FieldMap
-  FormAction: SilverStripe\Forms\FormAction
-  FormField: SilverStripe\Forms\FormField
-  FormScaffolder: SilverStripe\Forms\FormScaffolder
-  FormTemplateHelper: SilverStripe\Forms\FormTemplateHelper
-  FormTemplateHelper_Pre32: SilverStripe\Forms\FormTemplateHelper
-  FormTransformation: SilverStripe\Forms\FormTransformation
-  GroupedDropdownField: SilverStripe\Forms\GroupedDropdownField
-  HeaderField: SilverStripe\Forms\HeaderField
-  HiddenField: SilverStripe\Forms\HiddenField
-  LabelField: SilverStripe\Forms\LabelField
-  ListboxField: SilverStripe\Forms\ListboxField
-  LiteralField: SilverStripe\Forms\LiteralField
-  LookupField: SilverStripe\Forms\LookupField
-  MoneyField: SilverStripe\Forms\MoneyField
-  MultiSelectField: SilverStripe\Forms\MultiSelectField
-  NullableField: SilverStripe\Forms\NullableField
-  NumericField: SilverStripe\Forms\NumericField
-  OptionsetField: SilverStripe\Forms\OptionsetField
-  PasswordField: SilverStripe\Forms\PasswordField
-  PopoverField: SilverStripe\Forms\PopoverField
-  PrintableTransformation: SilverStripe\Forms\PrintableTransformation
-  PrintableTransformation_TabSet: SilverStripe\Forms\PrintableTransformation_TabSet
-  ReadonlyField: SilverStripe\Forms\ReadonlyField
-  ReadonlyTransformation: SilverStripe\Forms\ReadonlyTransformation
-  RequiredFields: SilverStripe\Forms\RequiredFields
-  SelectField: SilverStripe\Forms\SelectField
-  SelectionGroup: SilverStripe\Forms\SelectionGroup
-  SelectionGroup_Item: SilverStripe\Forms\SelectionGroup_Item
-  SingleSelectField: SilverStripe\Forms\SingleSelectField
-  Tab: SilverStripe\Forms\Tab
-  TabSet: SilverStripe\Forms\TabSet
-  TextareaField: SilverStripe\Forms\TextareaField
-  TextField: SilverStripe\Forms\TextField
-  TimeField: SilverStripe\Forms\TimeField
-  TimeField_Readonly: SilverStripe\Forms\TimeField_Readonly
-  ToggleCompositeField: SilverStripe\Forms\ToggleCompositeField
-  TreeDropdownField: SilverStripe\Forms\TreeDropdownField
-  TreeDropdownField_Readonly: SilverStripe\Forms\TreeDropdownField_Readonly
-  TreeMultiselectField: SilverStripe\Forms\TreeMultiselectField
-  TreeMultiselectField_Readonly: SilverStripe\Forms\TreeMultiselectField_Readonly
-  Validator: SilverStripe\Forms\Validator
-  HTMLEditorConfig: SilverStripe\Forms\HTMLEditor\HTMLEditorConfig
-  HTMLEditorField: SilverStripe\Forms\HTMLEditor\HTMLEditorField
-  HTMLEditorField_Readonly: SilverStripe\Forms\HTMLEditor\HTMLEditorField_Readonly
-  HTMLEditorSanitiser: SilverStripe\Forms\HTMLEditor\HTMLEditorSanitiser
-  HTMLReadonlyField: SilverStripe\Forms\HTMLReadonlyField
-  TinyMCEConfig: SilverStripe\Forms\HTMLEditor\TinyMCEConfig
-  GridField: SilverStripe\Forms\GridField\GridField
-  GridField_FormAction: SilverStripe\Forms\GridField\GridField_FormAction
-  GridFieldAddExistingAutocompleter: SilverStripe\Forms\GridField\GridFieldAddExistingAutocompleter
-  GridFieldAddNewButton: SilverStripe\Forms\GridField\GridFieldAddNewButton
-  GridFieldButtonRow: SilverStripe\Forms\GridField\GridFieldButtonRow
-  GridFieldComponent: SilverStripe\Forms\GridField\GridFieldComponent
-  GridField_HTMLProvider: SilverStripe\Forms\GridField\GridField_HTMLProvider
-  GridField_ColumnProvider: SilverStripe\Forms\GridField\GridField_ColumnProvider
-  GridField_ActionProvider: SilverStripe\Forms\GridField\GridField_ActionProvider
-  GridField_DataManipulator: SilverStripe\Forms\GridField\GridField_DataManipulator
-  GridField_URLHandler: SilverStripe\Forms\GridField\GridField_URLHandler
-  GridField_SaveHandler: SilverStripe\Forms\GridField\GridField_SaveHandler
-  GridFieldConfig: SilverStripe\Forms\GridField\GridFieldConfig
-  GridFieldConfig_Base: SilverStripe\Forms\GridField\GridFieldConfig_Base
-  GridFieldConfig_RecordViewer: SilverStripe\Forms\GridField\GridFieldConfig_RecordViewer
-  GridFieldConfig_RecordEditor: SilverStripe\Forms\GridField\GridFieldConfig_RecordEditor
-  GridFieldConfig_RelationEditor: SilverStripe\Forms\GridField\GridFieldConfig_RelationEditor
-  GridFieldDataColumns: SilverStripe\Forms\GridField\GridFieldDataColumns
-  GridFieldDeleteAction: SilverStripe\Forms\GridField\GridFieldDeleteAction
-  GridFieldDetailForm: SilverStripe\Forms\GridField\GridFieldDetailForm
-  GridFieldDetailForm_ItemRequest: SilverStripe\Forms\GridField\GridFieldDetailForm_ItemRequest
-  GridFieldEditButton: SilverStripe\Forms\GridField\GridFieldEditButton
-  GridFieldExportButton: SilverStripe\Forms\GridField\GridFieldExportButton
-  GridFieldFilterHeader: SilverStripe\Forms\GridField\GridFieldFilterHeader
-  GridFieldFooter: SilverStripe\Forms\GridField\GridFieldFooter
-  GridFieldLevelup: SilverStripe\Forms\GridField\GridFieldLevelup
-  GridFieldPageCount: SilverStripe\Forms\GridField\GridFieldPageCount
-  GridFieldPaginator: SilverStripe\Forms\GridField\GridFieldPaginator
-  GridFieldPrintButton: SilverStripe\Forms\GridField\GridFieldPrintButton
-  GridFieldSortableHeader: SilverStripe\Forms\GridField\GridFieldSortableHeader
-  GridFieldToolbarHeader: SilverStripe\Forms\GridField\GridFieldToolbarHeader
-  GridFieldViewButton: SilverStripe\Forms\GridField\GridFieldViewButton
-  GridState: SilverStripe\Forms\GridField\GridState
-  GridState_Data: SilverStripe\Forms\GridField\GridState_Data
-  GridState_Component: SilverStripe\Forms\GridField\GridState_Component
-  i18n: SilverStripe\i18n\i18n
-  i18nEntityProvider: SilverStripe\i18n\i18nEntityProvider
-  i18nTextCollector: SilverStripe\i18n\TextCollection\i18nTextCollector
-  i18nTextCollector_Writer: SilverStripe\i18n\Messages\Writer
-  i18nTextCollector_Writer_RailsYaml: SilverStripe\i18n\Messages\YamlWriter
-  i18nTextCollector_Parser: SilverStripe\i18n\TextCollection\Parser
-  SilverStripe\Framework\Logging\DebugViewFriendlyErrorFormatter: SilverStripe\Logging\DebugViewFriendlyErrorFormatter
-  SilverStripe\Framework\Logging\DetailedErrorFormatter: SilverStripe\Logging\DetailedErrorFormatter
-  SilverStripe\Framework\Logging\HTTPOutputHandler: SilverStripe\Logging\HTTPOutputHandler
-  SilverStripe\Framework\Logging\MonologErrorHandler: SilverStripe\Logging\MonologErrorHandler
-  DisplayErrorHandler: Monolog\Handler\HandlerInterface
-  ErrorHandler: SilverStripe\Logging\ErrorHandler
-  ComparisonFilter: SilverStripe\ORM\Filters\ComparisonFilter
-  EndsWithFilter: SilverStripe\ORM\Filters\EndsWithFilter
-  ExactMatchFilter: SilverStripe\ORM\Filters\ExactMatchFilter
-  FulltextFilter: SilverStripe\ORM\Filters\FulltextFilter
-  GreaterThanFilter: SilverStripe\ORM\Filters\GreaterThanFilter
-  GreaterThanOrEqualFilter: SilverStripe\ORM\Filters\GreaterThanOrEqualFilter
-  LessThanFilter: SilverStripe\ORM\Filters\LessThanFilter
-  LessThanOrEqualFilter: SilverStripe\ORM\Filters\LessThanOrEqualFilter
-  PartialMatchFilter: SilverStripe\ORM\Filters\PartialMatchFilter
-  SearchFilter: SilverStripe\ORM\Filters\SearchFilter
-  StartsWithFilter: SilverStripe\ORM\Filters\StartsWithFilter
-  WithinRangeFilter: SilverStripe\ORM\Filters\WithinRangeFilter
-  FulltextSearchable: SilverStripe\ORM\Search\FulltextSearchable
-  SearchContext: SilverStripe\ORM\Search\SearchContext
-  ArrayData: SilverStripe\View\ArrayData
-  GenericTemplateGlobalProvider: SilverStripe\View\GenericTemplateGlobalProvider
-  Requirements: SilverStripe\View\Requirements
-  Requirements_Backend: SilverStripe\View\Requirements_Backend
-  SSTemplateParseException: SilverStripe\View\SSTemplateParseException
-  SSTemplateParser: SilverStripe\View\SSTemplateParser
-  SSViewer_Scope: SilverStripe\View\SSViewer_Scope
-  SSViewer_BasicIteratorSupport: SilverStripe\View\SSViewer_BasicIteratorSupport
-  SSViewer_DataPresenter: SilverStripe\View\SSViewer_DataPresenter
-  SSViewer: SilverStripe\View\SSViewer
-  SSViewer_FromString: SilverStripe\View\SSViewer_FromString
-  TemplateGlobalProvider: SilverStripe\View\TemplateGlobalProvider
-  TemplateIteratorProvider: SilverStripe\View\TemplateIteratorProvider
-  TemplateParser: SilverStripe\View\TemplateParser
-  ViewableData: SilverStripe\View\ViewableData
-  ViewableData_Customised: SilverStripe\View\ViewableData_Customised
-  ViewableData_Debugger: SilverStripe\View\ViewableData_Debugger
-  HTMLCleaner: SilverStripe\View\Parsers\HTMLCleaner
-  SS_HTMLValue: SilverStripe\View\Parsers\HTMLValue
-  SS_HTML4Value: SilverStripe\View\Parsers\HTML4Value
-  SilverStripe\View\Parsers\SS_HTMLValue: SilverStripe\View\Parsers\HTMLValue
-  SilverStripe\View\Parsers\SS_HTML4Value: SilverStripe\View\Parsers\HTML4Value
-  PurifierHTMLCleaner: SilverStripe\View\Parsers\PurifierHTMLCleaner
-  ShortcodeHandler: SilverStripe\View\Parsers\ShortcodeHandler
-  ShortcodeParser: SilverStripe\View\Parsers\ShortcodeParser
-  SQLFormatter: SilverStripe\View\Parsers\SQLFormatter
-  TidyHTMLCleaner: SilverStripe\View\Parsers\TidyHTMLCleaner
-  SS_Transliterator: SilverStripe\View\Parsers\Transliterator
-  SilverStripe\View\Parsers\SS_Transliterator: SilverStripe\View\Parsers\Transliterator
-  URLSegmentFilter: SilverStripe\View\Parsers\URLSegmentFilter
-  ControllerTest: SilverStripe\Control\Tests\ControllerTest
-  ControllerTest_Controller: SilverStripe\Control\Tests\ControllerTest\TestController
-  ControllerTest_UnsecuredController: SilverStripe\Control\Tests\ControllerTest\UnsecuredController
-  ControllerTest_AccessBaseController: SilverStripe\Control\Tests\ControllerTest\AccessBaseController
-  ControllerTest_AccessSecuredController: SilverStripe\Control\Tests\ControllerTest\AccessSecuredController
-  ControllerTest_AccessWildcardSecuredController: SilverStripe\Control\Tests\ControllerTest\AccessWildcardSecuredController
-  ControllerTest_IndexSecuredController: SilverStripe\Control\Tests\ControllerTest\IndexSecuredController
-  ControllerTest_AccessBaseControllerExtension: SilverStripe\Control\Tests\ControllerTest\AccessBaseControllerExtension
-  ControllerTest_HasAction: SilverStripe\Control\Tests\ControllerTest\HasAction
-  ControllerTest_HasAction_Unsecured: SilverStripe\Control\Tests\ControllerTest\HasAction_Unsecured
-  ControllerTest_ContainerController: SilverStripe\Control\Tests\ControllerTest\ContainerController
-  ControllerTest_SubController: SilverStripe\Control\Tests\ControllerTest\SubController
-  ControllerTest_SubController_Exception: SilverStripe\Control\Tests\ControllerTest\SubController_Exception
-  CookieJarTest: SilverStripe\Control\Tests\CookieJarTest
-  CookieTest: SilverStripe\Control\Tests\CookieTest
-  DirectorTest: SilverStripe\Control\Tests\DirectorTest
-  TestRequestFilter: SilverStripe\Control\Tests\DirectorTest\TestRequestFilter
-  DirectorTestRequest_Controller: SilverStripe\Control\Tests\DirectorTest\TestController
-  FlushRequestFilterTest: SilverStripe\Control\Tests\FlushMiddlewareTest
-  FlushRequestFilterTest_Flushable: SilverStripe\Control\Tests\FlushMiddlewareTest\TestFlushable
-  HTTPRequestTest: SilverStripe\Control\Tests\HTTPRequestTest
-  HTTPResponseTest: SilverStripe\Control\Tests\HTTPResponseTest
-  HTTPTest: SilverStripe\Control\Tests\HTTPTest
-  IPUtilsTest: SilverStripe\Control\Tests\IPUtilsTest
-  NullHTTPRequestTest: SilverStripe\Control\Tests\NullHTTPRequestTest
-  PjaxResponseNegotiatorTest: SilverStripe\Control\Tests\PjaxResponseNegotiatorTest
-  RequestHandlingTest: SilverStripe\Control\Tests\RequestHandlingTest
-  RequestHandlingTest_Controller: SilverStripe\Control\Tests\RequestHandlingTest\TestController
-  RequestHandlingTest_FormActionController: SilverStripe\Control\Tests\RequestHandlingTest\FormActionController
-  RequestHandlingTest_ControllerExtension: SilverStripe\Control\Tests\RequestHandlingTest\ControllerExtension
-  RequestHandlingTest_AllowedController: SilverStripe\Control\Tests\RequestHandlingTest\AllowedController
-  RequestHandlingTest_AllowedControllerExtension: SilverStripe\Control\Tests\RequestHandlingTest\AllowedControllerExtension
-  RequestHandlingTest_ControllerFailover: SilverStripe\Control\Tests\RequestHandlingTest\ControllerFailover
-  RequestHandlingTest_Form: SilverStripe\Control\Tests\RequestHandlingTest\TestForm
-  RequestHandlingTest_ControllerFormWithAllowedActions: SilverStripe\Control\Tests\RequestHandlingTest\ControllerFormWithAllowedActions
-  RequestHandlingTest_FormWithAllowedActions: SilverStripe\Control\Tests\RequestHandlingTest\FormWithAllowedActions
-  RequestHandlingTest_FormField: SilverStripe\Control\Tests\RequestHandlingTest\TestFormField
-  RequestHandlingTest_SubclassedFormField: SilverStripe\Control\Tests\RequestHandlingTest\SubclassedFormField
-  RequestHandlingFieldTest_Controller: SilverStripe\Control\Tests\RequestHandlingTest\FieldController
-  RequestHandlingTest_HandlingField: SilverStripe\Control\Tests\RequestHandlingTest\HandlingField
-  SessionTest: SilverStripe\Control\Tests\SessionTest
-  CacheTest: SilverStripe\Core\Tests\Cache\CacheTest
-  ClassInfoTest: SilverStripe\Core\Tests\ClassInfoTest
-  ClassInfoTest_BaseClass: SilverStripe\Core\Tests\ClassInfoTest\BaseClass
-  ClassInfoTest_ChildClass: SilverStripe\Core\Tests\ClassInfoTest\ChildClass
-  ClassInfoTest_GrandChildClass: SilverStripe\Core\Tests\ClassInfoTest\GrandChildClass
-  ClassInfoTest_BaseDataClass: SilverStripe\Core\Tests\ClassInfoTest\BaseDataClass
-  ClassInfoTest_NoFields: SilverStripe\Core\Tests\ClassInfoTest\NoFields
-  ClassInfoTest_HasFields: SilverStripe\Core\Tests\ClassInfoTest\HasFields
-  ClassInfoTest_WithCustomTable: SilverStripe\Core\Tests\ClassInfoTest\WithCustomTable
-  ClassInfoTest_WithRelation: SilverStripe\Core\Tests\ClassInfoTest\WithRelation
-  ConvertTest: SilverStripe\Core\Tests\ConvertTest
-  CoreTest: SilverStripe\Core\Tests\CoreTest
-  HTMLCleanerTest: SilverStripe\Core\Tests\HTMLCleanerTest
-  MemoryLimitTest: SilverStripe\Core\Tests\MemoryLimitTest
-  ObjectTest: SilverStripe\Core\Tests\ObjectTest
-  ObjectTest_T1A: SilverStripe\Core\Tests\ObjectTest\T1A
-  ObjectTest_T1B: SilverStripe\Core\Tests\ObjectTest\T1B
-  ObjectTest_T1C: SilverStripe\Core\Tests\ObjectTest\T1C
-  ObjectTest_T2: SilverStripe\Core\Tests\ObjectTest\T2
-  ObjectTest_MyObject: SilverStripe\Core\Tests\ObjectTest\MyObject
-  ObjectTest_MySubObject: SilverStripe\Core\Tests\ObjectTest\MySubObject
-  ObjectTest_CreateTest: SilverStripe\Core\Tests\ObjectTest\CreateTest
-  ObjectTest_CreateTest2: SilverStripe\Core\Tests\ObjectTest\CreateTest2
-  ObjectTest_CreateTest3: SilverStripe\Core\Tests\ObjectTest\CreateTest3
-  ObjectTest_ExtensionTest: SilverStripe\Core\Tests\ObjectTest\ExtensionTest
-  ObjectTest_ExtensionTest2: SilverStripe\Core\Tests\ObjectTest\ExtensionTest2
-  ObjectTest_ExtensionTest3: SilverStripe\Core\Tests\ObjectTest\ExtensionTest3
-  ObjectTest_ExtensionRemoveTest: SilverStripe\Core\Tests\ObjectTest\ExtensionRemoveTest
-  ObjectTest_Extension: SilverStripe\Core\Tests\ObjectTest\TestExtension
-  ObjectTest_CacheTest: SilverStripe\Core\Tests\ObjectTest\CacheTest
-  ObjectTest_ExtendTest: SilverStripe\Core\Tests\ObjectTest\ExtendTest
-  ObjectTest_ExtendTest1: SilverStripe\Core\Tests\ObjectTest\ExtendTest1
-  ObjectTest_ExtendTest2: SilverStripe\Core\Tests\ObjectTest\ExtendTest2
-  ObjectTest_ExtendTest3: SilverStripe\Core\Tests\ObjectTest\ExtendTest3
-  ObjectTest_ExtendTest4: SilverStripe\Core\Tests\ObjectTest\ExtendTest4
-  ObjectTest_Extending: SilverStripe\Core\Tests\ObjectTest\Extending
-  ObjectTest_Extending_Extension: SilverStripe\Core\Tests\ObjectTest\Extending_Extension
-  PhpSyntaxTest: SilverStripe\Core\Tests\PhpSyntaxTest
-  BacktraceTest: SilverStripe\Dev\Tests\BacktraceTest
-  BulkLoaderResultTest: SilverStripe\Dev\Tests\BulkLoaderResultTest
-  BulkLoaderTestPlayer: SilverStripe\Dev\Tests\BulkLoaderResultTest\Player
-  CSSContentParserTest: SilverStripe\Dev\Tests\CSSContentParserTest
-  CsvBulkLoaderTest: SilverStripe\Dev\Tests\CsvBulkLoaderTest
-  CsvBulkLoaderTest_CustomLoader: SilverStripe\Dev\Tests\CsvBulkLoaderTest\CustomLoader
-  CsvBulkLoaderTest_Team: SilverStripe\Dev\Tests\CsvBulkLoaderTest\Team
-  CsvBulkLoaderTest_Player: SilverStripe\Dev\Tests\CsvBulkLoaderTest\Player
-  CsvBulkLoaderTest_PlayerContract: SilverStripe\Dev\Tests\CsvBulkLoaderTest\PlayerContract
-  DeprecationTest_Deprecation: SilverStripe\Dev\Tests\DeprecationTest\TestDeprecation
-  DeprecationTest: SilverStripe\Dev\Tests\DeprecationTest
-  DevAdminControllerTest: SilverStripe\Dev\Tests\DevAdminControllerTest
-  DevAdminControllerTest_Controller1: SilverStripe\Dev\Tests\DevAdminControllerTest\Controller1
-  FixtureBlueprintTest: SilverStripe\Dev\Tests\FixtureBlueprintTest
-  FixtureBlueprintTest_SiteTree: SilverStripe\Dev\Tests\FixtureBlueprintTest\TestSiteTree
-  FixtureBlueprintTest_Page: SilverStripe\Dev\Tests\FixtureBlueprintTest\TestPage
-  FixtureBlueprintTest_Article: SilverStripe\Dev\Tests\FixtureBlueprintTest\Article
-  FixtureFactoryTest: SilverStripe\Dev\Tests\FixtureFactoryTest
-  FixtureFactoryTest_DataObject: SilverStripe\Dev\Tests\FixtureFactoryTest\TestDataObject
-  FixtureFactoryTest_DataObjectRelation: SilverStripe\Dev\Tests\FixtureFactoryTest\DataObjectRelation
-  MySQLDatabaseConfigurationHelperTest: SilverStripe\Dev\Tests\MySQLDatabaseConfigurationHelperTest
-  SapphireTestTest: SilverStripe\Dev\Tests\SapphireTestTest
-  TaskRunnerTest: SilverStripe\Dev\Tests\TaskRunnerTest
-  TaskRunnerTest_EnabledTask: SilverStripe\Dev\Tests\TaskRunnerTest\TaskRunnerTest_EnabledTask
-  TaskRunnerTest_DisabledTask: SilverStripe\Dev\Tests\TaskRunnerTest\TaskRunnerTest_DisabledTask
-  TaskRunnerTest_AbstractTask: SilverStripe\Dev\Tests\TaskRunnerTest\TaskRunnerTest_AbstractTask
-  TaskRunnerTest_ChildOfAbstractTask: SilverStripe\Dev\Tests\TaskRunnerTest\TaskRunnerTest_ChildOfAbstractTask
-  YamlFixtureTest: SilverStripe\Dev\Tests\YamlFixtureTest
-  YamlFixtureTest_DataObject: SilverStripe\Dev\Tests\YamlFixtureTest\TestDataObject
-  YamlFixtureTest_DataObjectRelation: SilverStripe\Dev\Tests\YamlFixtureTest\DataObjectRelation
-  CheckboxFieldTest: SilverStripe\Forms\Tests\CheckboxFieldTest
-  CheckboxFieldTest_Article: SilverStripe\Forms\Tests\CheckboxFieldtest\Article
-  CheckboxSetFieldTest: SilverStripe\Forms\Tests\CheckboxSetFieldTest
-  CheckboxSetFieldTest_Article: SilverStripe\Forms\Tests\CheckboxSetFieldTest\Article
-  CheckboxSetFieldTest_Tag: SilverStripe\Forms\Tests\CheckboxSetFieldTest\Tag
-  CompositeFieldTest: SilverStripe\Forms\Tests\CompositeFieldTest
-  ConfirmedPasswordFieldTest: SilverStripe\Forms\Tests\ConfirmedPasswordFieldTest
-  CurrencyFieldTest: SilverStripe\Forms\Tests\CurrencyFieldTest
-  DateFieldTest: SilverStripe\Forms\Tests\DateFieldTest
-  DatetimeFieldTest: SilverStripe\Forms\Tests\DatetimeFieldTest
-  DatetimeFieldTest_Model: SilverStripe\Forms\Tests\DatetimeFieldTest\Model
-  DropdownFieldTest: SilverStripe\Forms\Tests\DropdownFieldTest
-  EmailFieldTest: SilverStripe\Forms\Tests\EmailFieldTest
-  EmailFieldTest_Validator: SilverStripe\Forms\Tests\EmailFieldTest\TestValidator
-  EmailFieldTest_Controller: SilverStripe\Forms\Tests\EmailFieldTest\TestController
-  EmbedShortcodeProviderTest: SilverStripe\View\Tests\Shortcodes\EmbedShortcodeProviderTest
-  EnumFieldTest: SilverStripe\Forms\Tests\EnumFieldTest
-  FieldGroupTest: SilverStripe\Forms\Tests\FieldGroupTest
-  FieldListTest: SilverStripe\Forms\Tests\FieldListTest
-  FileFieldTest: SilverStripe\Forms\Tests\FileFieldTest
-  FormActionTest: SilverStripe\Forms\Tests\FormActionTest
-  FormFieldTest: SilverStripe\Forms\Tests\FormFieldTest
-  FormFieldTest_Extension: SilverStripe\Forms\Tests\FormFieldTest\TestExtension
-  FormScaffolderTest: SilverStripe\Forms\Tests\FormScaffolderTest
-  FormScaffolderTest_Article: SilverStripe\Forms\Tests\FormScaffolderTest\Article
-  FormScaffolderTest_Author: SilverStripe\Forms\Tests\FormScaffolderTest\Author
-  FormScaffolderTest_Tag: SilverStripe\Forms\Tests\FormScaffolderTest\Tag
-  FormScaffolderTest_ArticleExtension: SilverStripe\Forms\Tests\FormScaffolderTest\ArticleExtension
-  FormSchemaTest: SilverStripe\Forms\Tests\FormSchemaTest
-  FormTest: SilverStripe\Forms\Tests\FormTest
-  FormTest_Player: SilverStripe\Forms\Tests\FormTest\Player
-  FormTest_Team: SilverStripe\Forms\Tests\FormTest\Team
-  FormTest_Controller: SilverStripe\Forms\Tests\FormTest\TestController
-  FormTest_ControllerWithSecurityToken: SilverStripe\Forms\Tests\FormTest\ControllerWithSecurityToken
-  FormTest_ControllerWithStrictPostCheck: SilverStripe\Forms\Tests\FormTest\ControllerWithStrictPostCheck
-  FormTest_ExtraFieldsForm: SilverStripe\Forms\Tests\FormTest\ExtraFieldsForm
-  GridFieldTest: SilverStripe\Forms\Tests\GridField\GridFieldTest
-  GridFieldTest_Component: SilverStripe\Forms\Tests\GridField\GridFieldTest\Component
-  GridFieldTest_Component2: SilverStripe\Forms\Tests\GridField\GridFieldTest\Component2
-  GridFieldTest_Team: SilverStripe\Forms\Tests\GridField\GridFieldTest\Team
-  GridFieldTest_Player: SilverStripe\Forms\Tests\GridField\GridFieldTest\Player
-  GridFieldTest_Cheerleader: SilverStripe\Forms\Tests\GridField\GridFieldTest\Cheerleader
-  GridFieldTest_HTMLFragments: SilverStripe\Forms\Tests\GridField\GridFieldTest\HTMLFragments
-  GridFieldTest_Permissions: SilverStripe\Forms\Tests\GridField\GridFieldTest\Permissions
-  GroupedDropdownFieldTest: SilverStripe\Forms\Tests\GroupedDropdownFieldTest
-  ListboxFieldTest: SilverStripe\Forms\Tests\ListboxFieldTest
-  ListboxFieldTest_DataObject: SilverStripe\Forms\Tests\ListboxFieldTest\TestObject
-  ListboxFieldTest_Article: SilverStripe\Forms\Tests\ListboxFieldTest\Article
-  ListboxFieldTest_Tag: SilverStripe\Forms\Tests\ListboxFieldTest\Tag
-  LookupFieldTest: SilverStripe\Forms\Tests\LookupFieldTest
-  MoneyFieldTest: SilverStripe\Forms\Tests\MoneyFieldTest
-  MoneyFieldTest_Object: SilverStripe\Forms\Tests\MoneyFieldTest\TestObject
-  MoneyFieldTest_CustomSetter_Object: SilverStripe\Forms\Tests\MoneyFieldTest\CustomSetter_Object
-  NullableFieldTests: SilverStripe\Forms\Tests\NullableFieldTests
-  NumericFieldTest: SilverStripe\Forms\Tests\NumericFieldTest
-  NumericFieldTest_Object: SilverStripe\Forms\Tests\NumericFieldTest\TestObject
-  OptionsetFieldTest: SilverStripe\Forms\Tests\OptionsetFieldTest
-  PopoverFieldTest: SilverStripe\Forms\Tests\PopoverFieldTest
-  RequiredFieldsTest: SilverStripe\Forms\Tests\RequiredFieldsTest
-  SelectionGroupTest: SilverStripe\Forms\Tests\SelectionGroupTest
-  TextareaFieldTest: SilverStripe\Forms\Tests\TextareaFieldTest
-  TextFieldTest: SilverStripe\Forms\Tests\TextFieldTest
-  TimeFieldTest: SilverStripe\Forms\Tests\TimeFieldTest
-  TreeDropdownFieldTest: SilverStripe\Forms\Tests\TreeDropdownFieldTest
-  i18nTest: SilverStripe\i18n\Tests\i18nTest
-  i18nTest_DataObject: SilverStripe\i18n\Tests\i18nTest\TestDataObject
-  i18nTest_Object: SilverStripe\i18n\Tests\i18nTest\TestObject
-  i18nTextCollectorTest: SilverStripe\i18n\Tests\i18nTextCollectorTest
-  i18nTextCollectorTest_Collector: SilverStripe\i18n\Tests\i18nTextCollectorTest\Collector
-  ArrayLibTest: SilverStripe\ORM\Tests\ArrayLibTest
-  ArrayListTest: SilverStripe\ORM\Tests\ArrayListTest
-  ArrayListTest_Object: SilverStripe\ORM\Tests\ArrayListTest\TestObject
-  ComponentSetTest: SilverStripe\ORM\Tests\ComponentSetTest
-  ComponentSetTest_Player: SilverStripe\ORM\Tests\ComponentSetTest\Player
-  ComponentSetTest_Team: SilverStripe\ORM\Tests\ComponentSetTest\Team
-  DatabaseTest: SilverStripe\ORM\Tests\DatabaseTest
-  DatabaseTest_MyObject: SilverStripe\ORM\Tests\DatabaseTest\MyObject
-  DataExtensionTest: SilverStripe\ORM\Tests\DataExtensionTest
-  DataExtensionTest_Member: SilverStripe\ORM\Tests\DataExtensionTest\TestMember
-  DataExtensionTest_Player: SilverStripe\ORM\Tests\DataExtensionTest\Player
-  DataExtensionTest_PlayerExtension: SilverStripe\ORM\Tests\DataExtensionTest\PlayerExtension
-  DataExtensionTest_ContactRole: SilverStripe\ORM\Tests\DataExtensionTest\ContactRole
-  DataExtensionTest_RelatedObject: SilverStripe\ORM\Tests\DataExtensionTest\RelatedObject
-  DataExtensionTest_MyObject: SilverStripe\ORM\Tests\DataExtensionTest\MyObject
-  DataExtensionTest_Ext1: SilverStripe\ORM\Tests\DataExtensionTest\Extension1
-  DataExtensionTest_Ext2: SilverStripe\ORM\Tests\DataExtensionTest\Extension2
-  DataExtensionTest_Faves: SilverStripe\ORM\Tests\DataExtensionTest\Faves
-  DataExtensionTest_AppliedToDO: SilverStripe\ORM\Tests\DataExtensionTest\AppliedToDO
-  DataExtensionTest_AllMethodNames: SilverStripe\ORM\Tests\DataExtensionTest\AllMethodNames
-  DataExtensionTest_CMSFieldsBase: SilverStripe\ORM\Tests\DataExtensionTest\CMSFieldsBase
-  DataExtensionTest_CMSFieldsBaseExtension: SilverStripe\ORM\Tests\DataExtensionTest\CMSFieldsBaseExtension
-  DataExtensionTest_CMSFieldsChild: SilverStripe\ORM\Tests\DataExtensionTest\CMSFieldsChild
-  DataExtensionTest_CMSFieldsGrandchild: SilverStripe\ORM\Tests\DataExtensionTest\CMSFieldsGrandchild
-  DataListTest: SilverStripe\ORM\Tests\DataListTest
-  DataObjectDuplicationTest: SilverStripe\ORM\Tests\DataObjectDuplicationTest
-  DataObjectDuplicateTestClass1: SilverStripe\ORM\Tests\DataObjectDuplicationTest\Class1
-  DataObjectDuplicateTestClass2: SilverStripe\ORM\Tests\DataObjectDuplicationTest\Class2
-  DataObjectDuplicateTestClass3: SilverStripe\ORM\Tests\DataObjectDuplicationTest\Class3
-  DataObjectLazyLoadingTest: SilverStripe\ORM\Tests\DataObjectLazyLoadingTest
-  DataObjectSchemaGenerationTest: SilverStripe\ORM\Tests\DataObjectSchemaGenerationTest
-  DataObjectSchemaGenerationTest_DO: SilverStripe\ORM\Tests\DataObjectSchemaGenerationTest\TestObject
-  DataObjectSchemaGenerationTest_IndexDO: SilverStripe\ORM\Tests\DataObjectSchemaGenerationTest\TestIndexObject
-  DataObjectSchemaTest: SilverStripe\ORM\Tests\DataObjectSchemaTest
-  DataObjectSchemaTest_BaseClass: SilverStripe\ORM\Tests\DataObjectSchemaTest\BaseClass
-  DataObjectSchemaTest_ChildClass: SilverStripe\ORM\Tests\DataObjectSchemaTest\ChildClass
-  DataObjectSchemaTest_GrandChildClass: SilverStripe\ORM\Tests\DataObjectSchemaTest\GrandChildClass
-  DataObjectSchemaTest_BaseDataClass: SilverStripe\ORM\Tests\DataObjectSchemaTest\BaseDataClass
-  DataObjectSchemaTest_NoFields: SilverStripe\ORM\Tests\DataObjectSchemaTest\NoFields
-  DataObjectSchemaTest_HasFields: SilverStripe\ORM\Tests\DataObjectSchemaTest\HasFields
-  DataObjectSchemaTest_WithCustomTable: SilverStripe\ORM\Tests\DataObjectSchemaTest\WithCustomTable
-  DataObjectSchemaTest_WithRelation: SilverStripe\ORM\Tests\DataObjectSchemaTest\WithRelation
-  DataObjectTest: SilverStripe\ORM\Tests\DataObjectTest
-  DataObjectTest_Player: SilverStripe\ORM\Tests\DataObjectTest\Player
-  DataObjectTest_Team: SilverStripe\ORM\Tests\DataObjectTest\Team
-  DataObjectTest_Fixture: SilverStripe\ORM\Tests\DataObjectTest\Fixture
-  DataObjectTest_SubTeam: SilverStripe\ORM\Tests\DataObjectTest\SubTeam
-  OtherSubclassWithSameField: SilverStripe\ORM\Tests\DataObjectTest\OtherSubclassWithSameField
-  DataObjectTest_FieldlessTable: SilverStripe\ORM\Tests\DataObjectTest\FieldlessTable
-  DataObjectTest_FieldlessSubTable: SilverStripe\ORM\Tests\DataObjectTest\FieldlessSubTable
-  DataObjectTest_Team_Extension: SilverStripe\ORM\Tests\DataObjectTest\Team_Extension
-  DataObjectTest_ValidatedObject: SilverStripe\ORM\Tests\DataObjectTest\ValidatedObject
-  DataObjectTest_Company: SilverStripe\ORM\Tests\DataObjectTest\Company
-  DataObjectTest_EquipmentCompany: SilverStripe\ORM\Tests\DataObjectTest\EquipmentCompany
-  DataObjectTest_SubEquipmentCompany: SilverStripe\ORM\Tests\DataObjectTest\SubEquipmentCompany
-  DataObjectTest_Staff: SilverStripe\ORM\Tests\DataObjectTest\Staff
-  DataObjectTest_CEO: SilverStripe\ORM\Tests\DataObjectTest\CEO
-  DataObjectTest_TeamComment: SilverStripe\ORM\Tests\DataObjectTest\TeamComment
-  DataObjectTest_Fan: SilverStripe\ORM\Tests\DataObjectTest\Fan
-  DataObjectTest_ExtendedTeamComment: SilverStripe\ORM\Tests\DataObjectTest\ExtendedTeamComment
-  DataObjectTest_Play: SilverStripe\ORM\Tests\DataObjectTest\Play
-  DataObjectTest_Ploy: SilverStripe\ORM\Tests\DataObjectTest\Ploy
-  DataObjectTest_Bogey: SilverStripe\ORM\Tests\DataObjectTest\Bogey
-  DataQueryTest: SilverStripe\ORM\Tests\DataQueryTest
-  DataQueryTest_A: SilverStripe\ORM\Tests\DataQueryTest\ObjectA
-  DataQueryTest_B: SilverStripe\ORM\Tests\DataQueryTest\ObjectB
-  DataQueryTest_C: SilverStripe\ORM\Tests\DataQueryTest\ObjectC
-  DataQueryTest_D: SilverStripe\ORM\Tests\DataQueryTest\ObjectD
-  DataQueryTest_E: SilverStripe\ORM\Tests\DataQueryTest\ObjectE
-  DataQueryTest_F: SilverStripe\ORM\Tests\DataQueryTest\ObjectF
-  DataQueryTest_G: SilverStripe\ORM\Tests\DataQueryTest\ObjectG
-  DBClassNameTest: SilverStripe\ORM\Tests\DBClassNameTest
-  DBClassNameTest_Object: SilverStripe\ORM\Tests\DBClassNameTest\TestObject
-  DBClassNameTest_ObjectSubClass: SilverStripe\ORM\Tests\DBClassNameTest\ObjectSubClass
-  DBClassNameTest_ObjectSubSubClass: SilverStripe\ORM\Tests\DBClassNameTest\ObjectSubSubClass
-  DBClassNameTest_OtherClass: SilverStripe\ORM\Tests\DBClassNameTest\OtherClass
-  DBClassNameTest_CustomDefault: SilverStripe\ORM\Tests\DBClassNameTest\CustomDefault
-  DBClassNameTest_CustomDefaultSubclass: SilverStripe\ORM\Tests\DBClassNameTest\CustomDefaultSubclass
-  DBCompositeTest: SilverStripe\ORM\Tests\DBCompositeTest
-  DBCompositeTest_DataObject: SilverStripe\ORM\Tests\DBCompositeTest\TestObject
-  SubclassedDBFieldObject: SilverStripe\ORM\Tests\DBCompositeTest\SubclassedDBFieldObject
-  DBCurrencyTest: SilverStripe\ORM\Tests\DBCurrencyTest
-  DBDateTest: SilverStripe\ORM\Tests\DBDateTest
-  DBDatetimeTest: SilverStripe\ORM\Tests\DBDatetimeTest
-  DBFieldTest: SilverStripe\ORM\Tests\DBFieldTest
-  DBHTMLTextTest: SilverStripe\ORM\Tests\DBHTMLTextTest
-  DBHTMLTextTest_Shortcode: SilverStripe\ORM\Tests\DBHTMLTextTest\TestShortcode
-  DBLocaleTest: SilverStripe\ORM\Tests\DBLocaleTest
-  DBMoneyTest: SilverStripe\ORM\Tests\DBMoneyTest
-  MoneyTest_DataObject: SilverStripe\ORM\Tests\DBMoneyTest\TestObject
-  MoneyTest_SubClass: SilverStripe\ORM\Tests\DBMoneyTest\TestObjectSubclass
-  DBPercentageTest: SilverStripe\ORM\Tests\DBPercentageTest
-  DBStringTest: SilverStripe\ORM\Tests\DBStringTest
-  StringFieldTest_MyStringField: SilverStripe\ORM\Tests\DBStringTest\MyStringField
-  DBTest: SilverStripe\ORM\Tests\DBTest
-  DBTextTest: SilverStripe\ORM\Tests\DBTextTest
-  DBYearTest: SilverStripe\ORM\Tests\DBYearTest
-  DecimalTest: SilverStripe\ORM\Tests\DecimalTest
-  DecimalTest_DataObject: SilverStripe\ORM\Tests\DecimalTest\TestObject
-  GroupedListTest: SilverStripe\ORM\Tests\GroupedListTest
-  HasManyListTest: SilverStripe\ORM\Tests\HasManyListTest
-  HierarchyTest: SilverStripe\ORM\Tests\HierarchyTest
-  HierarchyTest_Object: SilverStripe\ORM\Tests\HierarchyTest\TestObject
-  HierarchyHideTest_Object: SilverStripe\ORM\Tests\HierarchyTest\HideTestObject
-  HierarchyHideTest_SubObject: SilverStripe\ORM\Tests\HierarchyTest\HideTestSubObject
-  LabelFieldTest: SilverStripe\ORM\Tests\LabelFieldTest
-  ManyManyListExtensionTest: SilverStripe\ORM\Tests\ManyManyListExtensionTest
-  ManyManyListTest_IndirectPrimary: SilverStripe\ORM\Tests\ManyManyListTest\IndirectPrimary
-  ManyManyListTest_Secondary: SilverStripe\ORM\Tests\ManyManyListTest\Secondary
-  ManyManyListTest_SecondarySub: SilverStripe\ORM\Tests\ManyManyListTest\SecondarySub
-  ManyManyListTest_IndirectSecondaryExtension: SilverStripe\ORM\Tests\ManyManyListTest\IndirectSecondaryExtension
-  ManyManyListTest: SilverStripe\ORM\Tests\ManyManyListTest
-  ManyManyListTest_ExtraFields: SilverStripe\ORM\Tests\ManyManyListTest\ExtraFieldsObject
-  ManyManyListTest_Product: SilverStripe\ORM\Tests\ManyManyListTest\Product
-  ManyManyListTest_Category: SilverStripe\ORM\Tests\ManyManyListTest\Category
-  ManyManyThroughListTest: SilverStripe\ORM\Tests\ManyManyThroughListTest
-  ManyManyThroughListTest_Object: SilverStripe\ORM\Tests\ManyManyThroughListTest\TestObject
-  ManyManyThroughListTest_JoinObject: SilverStripe\ORM\Tests\ManyManyThroughListTest\JoinObject
-  ManyManyThroughListTest_Item: SilverStripe\ORM\Tests\ManyManyThroughListTest\Item
-  MapTest: SilverStripe\ORM\Tests\MapTest
-  MySQLDatabaseTest: SilverStripe\ORM\Tests\MySQLDatabaseTest
-  MySQLDatabaseTest_Data: SilverStripe\ORM\Tests\MySQLDatabaseTest\Data
-  PaginatedListTest: SilverStripe\ORM\Tests\PaginatedListTest
-  PolymorphicHasManyListTest: SilverStripe\ORM\Tests\PolymorphicHasManyListTest
-  SQLInsertTest: SilverStripe\ORM\Tests\SQLInsertTest
-  SQLInsertTestBase: SilverStripe\ORM\Tests\SQLInsertTest\SQLInsertTestBase
-  SQLSelectTest: SilverStripe\ORM\Tests\SQLSelectTest
-  SQLSelectTest_DO: SilverStripe\ORM\Tests\SQLSelectTest\TestObject
-  SQLSelectTestBase: SilverStripe\ORM\Tests\SQLSelectTest\TestBase
-  SQLSelectTestChild: SilverStripe\ORM\Tests\SQLSelectTest\TestChild
-  SQLUpdateTest: SilverStripe\ORM\Tests\SQLUpdateTest
-  SQLUpdateTestBase: SilverStripe\ORM\Tests\SQLUpdateTest\TestBase
-  SQLUpdateChild: SilverStripe\ORM\Tests\SQLUpdateTest\TestChild
-  TimeTest: SilverStripe\ORM\Tests\DBTimeTest
-  TransactionTest: SilverStripe\ORM\Tests\TransactionTest
-  TransactionTest_Object: SilverStripe\ORM\Tests\TransactionTest\TestObject
-  UnsavedRelationListTest: SilverStripe\ORM\Tests\UnsavedRelationListTest
-  UnsavedRelationListTest_DataObject: SilverStripe\ORM\Tests\UnsavedRelationListTest\TestObject
-  URLSegmentFilterTest: SilverStripe\ORM\Tests\URLSegmentFilterTest
-  ValidationExceptionTest: SilverStripe\ORM\Tests\ValidationExceptionTest
-  BasicAuthTest: SilverStripe\Security\Tests\BasicAuthTest
-  BasicAuthTest_ControllerSecuredWithPermission: SilverStripe\Security\Tests\BasicAuthTest\ControllerSecuredWithPermission
-  BasicAuthTest_ControllerSecuredWithoutPermission: SilverStripe\Security\Tests\BasicAuthTest\ControllerSecuredWithoutPermission
-  GroupCsvBulkLoaderTest: SilverStripe\Security\Tests\GroupCsvBulkLoaderTest
-  GroupTest: SilverStripe\Security\Tests\GroupTest
-  GroupTest_Member: SilverStripe\Security\Tests\GroupTest\TestMember
-  GroupTest_MemberForm: SilverStripe\Security\Tests\GroupTest\MemberForm
-  MemberAuthenticatorTest: SilverStripe\Security\Tests\MemberAuthenticatorTest
-  MemberCsvBulkLoaderTest: SilverStripe\Security\Tests\MemberCsvBulkLoaderTest
-  MemberTest: SilverStripe\Security\Tests\MemberTest
-  MemberTest_ValidatorForm: SilverStripe\Security\Tests\MemberTest\ValidatorForm
-  MemberTest_ValidatorExtension: SilverStripe\Security\Tests\MemberTest\ValidatorExtension
-  MemberTest_MemberValidator_SurnameMustMatchFirstNameExtension: SilverStripe\Security\Tests\MemberTest\SurnameMustMatchFirstNameExtension
-  MemberTest_MemberValidator_AlwaysFailsExtension: SilverStripe\Security\Tests\MemberTest\AlwaysFailExtension
-  MemberTest_ViewingAllowedExtension: SilverStripe\Security\Tests\MemberTest\ViewingAllowedExtension
-  MemberTest_ViewingDeniedExtension: SilverStripe\Security\Tests\MemberTest\ViewingDeniedExtension
-  MemberTest_FieldsExtension: SilverStripe\Security\Tests\MemberTest\FieldsExtension
-  MemberTest_EditingAllowedDeletingDeniedExtension: SilverStripe\Security\Tests\MemberTest\EditingAllowedDeletingDeniedExtension
-  MemberTest_PasswordValidator: SilverStripe\Security\Tests\MemberTest\TestPasswordValidator
-  PasswordEncryptorTest: SilverStripe\Security\Tests\PasswordEncryptorTest
-  PasswordEncryptorTest_TestEncryptor: SilverStripe\Security\Tests\PasswordEncryptorTest\TestEncryptor
-  PasswordValidatorTest: SilverStripe\Security\Tests\PasswordValidatorTest
-  PermissionCheckboxSetFieldTest: SilverStripe\Security\Tests\PermissionCheckboxSetFieldTest
-  PermissionRoleTest: SilverStripe\Security\Tests\PermissionRoleTest
-  PermissionTest: SilverStripe\Security\Tests\PermissionTest
-  RandomGeneratorTest: SilverStripe\Security\Tests\RandomGeneratorTest
-  SecurityDefaultAdminTest: SilverStripe\Security\Tests\SecurityDefaultAdminTest
-  SecurityTest: SilverStripe\Security\Tests\SecurityTest
-  SecurityTest_SecuredController: SilverStripe\Security\Tests\SecurityTest\SecuredController
-  SecurityTest_NullController: SilverStripe\Security\Tests\SecurityTest\NullController
-  SecurityTokenTest: SilverStripe\Security\Tests\SecurityTokenTest
-  ArrayDataTest: SilverStripe\View\Tests\ArrayDataTest
-  ArrayDataTest_NonEmptyObject: SilverStripe\View\Tests\ArrayDataTest\NonEmptyObject
-  ContentNegotiatorTest: SilverStripe\View\Tests\ContentNegotiatorTest
-  RequirementsTest: SilverStripe\View\Tests\RequirementsTest
-  SSViewerCacheBlockTest_Model: SilverStripe\View\Tests\SSViewerCacheBlockTest\TestModel
-  SSViewerCacheBlockTest_VersionedModel: SilverStripe\View\Tests\SSViewerCacheBlockTest\VersionedModel
-  SSViewerCacheBlockTest: SilverStripe\View\Tests\SSViewerCacheBlockTest
-  SSViewerTest: SilverStripe\View\Tests\SSViewerTest
-  SSViewerTestFixture: SilverStripe\View\Tests\SSViewerTest\TestFixture
-  SSViewerTest_ViewableData: SilverStripe\View\Tests\SSViewerTest\TestViewableData
-  SSViewerTest_CacheTestData: SilverStripe\View\Tests\SSViewerTest\CacheTestData
-  SSViewerTest_Object: SilverStripe\View\Tests\SSViewerTest\TestObject
-  SSViewerTest_GlobalProvider: SilverStripe\View\Tests\SSViewerTest\TestGlobalProvider
-  SSViewerTest_LevelTest: SilverStripe\View\Tests\SSViewerTest\LevelTestData
-  ViewableDataTest: SilverStripe\View\Tests\ViewableDataTest
-  ViewableDataTest_Castable: SilverStripe\View\Tests\ViewableDataTest\Castable
-  ViewableDataTest_RequiresCasting: SilverStripe\View\Tests\ViewableDataTest\RequiresCasting
-  ViewableData_UnescaptedCaster: SilverStripe\View\Tests\ViewableDataTest\UnescapedCaster
-  ViewableData_Caster: SilverStripe\View\Tests\ViewableDataTest\Caster
-  ViewableDataTest_Container: SilverStripe\View\Tests\ViewableDataTest\Container
-  ViewableDataTest_CastingClass: SilverStripe\View\Tests\ViewableDataTest\CastingClass
-  ViewableDataTest_NoCastingInformation: SilverStripe\View\Tests\ViewableDataTest\NoCastingInformation
-  ViewableDataTest_Cached: SilverStripe\View\Tests\ViewableDataTest\Cached
-  ViewableDataTest_NotCached: SilverStripe\View\Tests\ViewableDataTest\NotCached
-  ViewableDataTest_Failover: SilverStripe\View\Tests\ViewableDataTest\Failover
-  GridField_URLHandlerTest: SilverStripe\Forms\Tests\GridField\GridField_URLHandlerTest
-  GridField_URLHandlerTest_Controller: SilverStripe\Forms\Tests\GridField\GridField_URLHandlerTest\TestController
-  GridField_URLHandlerTest_Component: SilverStripe\Forms\Tests\GridField\GridField_URLHandlerTest\TestComponent
-  GridField_URLHandlerTest_Component_ItemRequest: SilverStripe\Forms\Tests\GridField\GridField_URLHandlerTest\TestComponent_ItemRequest
-  GridFieldAddExistingAutocompleterTest: SilverStripe\Forms\Tests\GridField\GridFieldAddExistingAutocompleterTest
-  GridFieldAddExistingAutocompleterTest_Controller: SilverStripe\Forms\Tests\GridField\GridFieldAddExistingAutocompleterTest\TestController
-  GridFieldConfigTest: SilverStripe\Forms\Tests\GridField\GridFieldConfigTest
-  GridFieldConfigTest_MyComponent: SilverStripe\Forms\Tests\GridField\GridFieldConfigTest\MyComponent
-  GridFieldConfigTest_MyOtherComponent: SilverStripe\Forms\Tests\GridField\GridFieldConfigTest\MyOtherComponent
-  GridFieldDataColumnsTest: SilverStripe\Forms\Tests\GridField\GridFieldDataColumnsTest
-  GridFieldDeleteActionTest: SilverStripe\Forms\Tests\GridField\GridFieldDeleteActionTest
-  GridFieldAction_Delete_Team: SilverStripe\Forms\Tests\GridField\GridFieldTest\Team
-  GridFieldDetailFormTest: SilverStripe\Forms\Tests\GridField\GridFieldDetailFormTest
-  GridFieldDetailFormTest_Person: SilverStripe\Forms\Tests\GridField\GridFieldDetailFormTest\Person
-  GridFieldDetailFormTest_PeopleGroup: SilverStripe\Forms\Tests\GridField\GridFieldDetailFormTest\PeopleGroup
-  GridFieldDetailFormTest_Category: SilverStripe\Forms\Tests\GridField\GridFieldDetailFormTest\Category
-  GridFieldDetailFormTest_Controller: SilverStripe\Forms\Tests\GridField\GridFieldDetailFormTest\TestController
-  GridFieldDetailFormTest_GroupController: SilverStripe\Forms\Tests\GridField\GridFieldDetailFormTest\GroupController
-  GridFieldDetailFormTest_CategoryController: SilverStripe\Forms\Tests\GridField\GridFieldDetailFormTest\CategoryController
-  GridFieldDetailFormTest_ItemRequest: SilverStripe\Forms\Tests\GridField\GridFieldDetailFormTest\ItemRequest
-  GridFieldEditButtonTest: SilverStripe\Forms\Tests\GridField\GridFieldEditButtonTest
-  GridFieldAction_Edit_Team: SilverStripe\Forms\Tests\GridField\GridFieldTest\Team
-  GridFieldExportButtonTest: SilverStripe\Forms\Tests\GridField\GridFieldExportButtonTest
-  GridFieldExportButtonTest_Team: SilverStripe\Forms\Tests\GridField\GridFieldExportButtonTest\Team
-  GridFieldExportButtonTest_NoView: SilverStripe\Forms\Tests\GridField\GridFieldExportButtonTest\NoView
-  GridFieldPaginatorTest: SilverStripe\Forms\Tests\GridField\GridFieldPaginatorTest
-  GridFieldPrintButtonTest: SilverStripe\Forms\Tests\GridField\GridFieldPrintButtonTest
-  GridFieldPrintButtonTest_DO: SilverStripe\Forms\Tests\GridField\GridFieldPrintButtonTest\TestObject
-  GridFieldSortableHeaderTest: SilverStripe\Forms\Tests\GridField\GridFieldSortableHeaderTest
-  GridFieldSortableHeaderTest_Team: SilverStripe\Forms\Tests\GridField\GridFieldSortableHeaderTest\Team
-  GridFieldSortableHeaderTest_TeamGroup: SilverStripe\Forms\Tests\GridField\GridFieldSortableHeaderTest\TeamGroup
-  GridFieldSortableHeaderTest_Cheerleader: SilverStripe\Forms\Tests\GridField\GridFieldSortableHeaderTest\Cheerleader
-  GridFieldSortableHeaderTest_Mom: SilverStripe\Forms\Tests\GridField\GridFieldSortableHeaderTest\Mom
-  GridFieldSortableHeaderTest_CheerleaderHat: SilverStripe\Forms\Tests\GridField\GridFieldSortableHeaderTest\CheerleaderHat
-  DiffTest: SilverStripe\View\Tests\Parsers\DiffTest
-  HTML4ValueTest: SilverStripe\View\Tests\Parsers\HTML4ValueTest
-  ShortcodeParserTest: SilverStripe\View\Tests\Parsers\ShortcodeParserTest
-  SQLFormatterTest: SilverStripe\View\Tests\Parsers\SQLFormatterTest
-  FulltextSearchableTest: SilverStripe\ORM\Tests\Search\FulltextSearchableTest
-  SearchContextTest: SilverStripe\ORM\Tests\Search\SearchContextTest
-  SearchContextTest_Person: SilverStripe\ORM\Tests\Search\SearchContextTest\Person
-  SearchContextTest_Book: SilverStripe\ORM\Tests\Search\SearchContextTest\Book
-  SearchContextTest_Company: SilverStripe\ORM\Tests\Search\SearchContextTest\Company
-  SearchContextTest_Project: SilverStripe\ORM\Tests\Search\SearchContextTest\Project
-  SearchContextTest_Deadline: SilverStripe\ORM\Tests\Search\SearchContextTest\Deadline
-  SearchContextTest_Action: SilverStripe\ORM\Tests\Search\SearchContextTest\Action
-  SearchContextTest_AllFilterTypes: SilverStripe\ORM\Tests\Search\SearchContextTest\AllFilterTypes
-  FulltextFilterTest: SilverStripe\ORM\Tests\Filters\FulltextFilterTest
-  FulltextFilterTest_DataObject: SilverStripe\ORM\Tests\Filters\FulltextFilterTest\TestObject
-  SearchFilterApplyRelationTest: SilverStripe\ORM\Tests\Filters\SearchFilterApplyRelationTest
-  SearchFilterApplyRelationTest_DO: SilverStripe\ORM\Tests\Filters\SearchFilterApplyRelationTest\TestObject
-  SearchFilterApplyRelationTest_HasOneParent: SilverStripe\ORM\Tests\Filters\SearchFilterApplyRelationTest\HasOneParent
-  SearchFilterApplyRelationTest_HasOneChild: SilverStripe\ORM\Tests\Filters\SearchFilterApplyRelationTest\HasOneChild
-  SearchFilterApplyRelationTest_HasOneGrantChild: SilverStripe\ORM\Tests\Filters\SearchFilterApplyRelationTest\HasOneGrandChild
-  SearchFilterApplyRelationTest_HasManyParent: SilverStripe\ORM\Tests\Filters\SearchFilterApplyRelationTest\HasManyParent
-  SearchFilterApplyRelationTest_HasManyChild: SilverStripe\ORM\Tests\Filters\SearchFilterApplyRelationTest\HasManyChild
-  SearchFilterApplyRelationTest_HasManyGrantChild: SilverStripe\ORM\Tests\Filters\SearchFilterApplyRelationTest\HasManyGrandChild
-  SearchFilterApplyRelationTest_ManyManyParent: SilverStripe\ORM\Tests\Filters\SearchFilterApplyRelationTest\ManyManyParent
-  SearchFilterApplyRelationTest_ManyManyChild: SilverStripe\ORM\Tests\Filters\SearchFilterApplyRelationTest\ManyManyChild
-  SearchFilterApplyRelationTest_ManyManyGrantChild: SilverStripe\ORM\Tests\Filters\SearchFilterApplyRelationTest\ManyManyGrandChild
-  RSSFeedTest: SilverStripe\Control\Tests\RSS\RSSFeedTest
-  RSSFeedTest_ItemA: SilverStripe\Control\Tests\RSS\RSSFeedTest\ItemA
-  RSSFeedTest_ItemB: SilverStripe\Control\Tests\RSS\RSSFeedTest\ItemB
-  RSSFeedTest_ItemC: SilverStripe\Control\Tests\RSS\RSSFeedTest\ItemC
-  RSSFeedTest_ItemD: SilverStripe\Control\Tests\RSS\RSSFeedTest\ItemD
-  ClassLoaderTest: SilverStripe\Core\Tests\Manifest\ClassLoaderTest
-  ClassManifestTest: SilverStripe\Core\Tests\Manifest\ClassManifestTest
-  ConfigManifestTest: SilverStripe\Core\Tests\Manifest\ConfigManifestTest
-  ManifestFileFinderTest: SilverStripe\Core\Tests\Manifest\ManifestFileFinderTest
-  NamespacedClassManifestTest: SilverStripe\Core\Tests\Manifest\NamespacedClassManifestTest
-  ThemeResourceLoaderTest: SilverStripe\Core\Tests\Manifest\ThemeResourceLoaderTest
-  EmailTest: SilverStripe\Control\Tests\Email\EmailTest
-  MailerTest: SilverStripe\Control\Tests\Email\SwiftMailerTest
-  ConfigTest_DefinesFoo: SilverStripe\Core\Tests\Config\ConfigTest\DefinesFoo
-  ConfigTest_DefinesBar: SilverStripe\Core\Tests\Config\ConfigTest\DefinesBar
-  ConfigTest_DefinesFooAndBar: SilverStripe\Core\Tests\Config\ConfigTest\DefinesFooAndBar
-  ConfigTest_DefinesFooDoesntExtendObject: SilverStripe\Core\Tests\Config\ConfigTest\DefinesFooDoesntExtendObject
-  ConfigStaticTest_First: SilverStripe\Core\Tests\Config\ConfigTest\First
-  ConfigStaticTest_Second: SilverStripe\Core\Tests\Config\ConfigTest\Second
-  ConfigStaticTest_Third: SilverStripe\Core\Tests\Config\ConfigTest\Third
-  ConfigStaticTest_Fourth: SilverStripe\Core\Tests\Config\ConfigTest\Fourth
-  ConfigStaticTest_Combined1: SilverStripe\Core\Tests\Config\ConfigTest\Combined1
-  ConfigStaticTest_Combined2: SilverStripe\Core\Tests\Config\ConfigTest\Combined2
-  ConfigStaticTest_Combined3: SilverStripe\Core\Tests\Config\ConfigTest\Combined3
-  ConfigTest_TestNest: SilverStripe\Core\Tests\Config\ConfigTest\TestNest
-  ConfigTest: SilverStripe\Core\Tests\Config\ConfigTest
-  Page_Controller: PageController
-  Boolean: SilverStripe\ORM\FieldType\DBBoolean
-  Date: SilverStripe\ORM\FieldType\DBDate
-  Enum: SilverStripe\ORM\FieldType\DBEnum
-  GridAction: SilverStripe\Forms\GridField\GridFieldDeleteAction
-  GridFieldAction_Delete: SilverStripe\Forms\GridField\GridFieldDeleteAction
-  TableListField: SilverStripe\Forms\GridField\GridField
-  TableListField_PageControls_ss: SilverStripe\Forms\GridField\GridField
-  Pagination: SilverStripe\Forms\GridField\GridField
-  CMSPreviewable: SilverStripe\ORM\CMSPreviewable
-  # Note: These should be substituted with the given service aliases in injector yml config
-  DebugViewFriendlyErrorFormatter: SilverStripe\Logging\DebugViewFriendlyErrorFormatter # Monolog\Formatter\FormatterInterface.friendly
-  DetailedErrorFormatter: SilverStripe\Logging\DetailedErrorFormatter # Monolog\Formatter\FormatterInterface.detailed
-  # Template-only i18n substitutions (non-class)
-  ChangePasswordEmail_ss: SilverStripe\Control\Email\ChangePasswordEmail_ss
-  CheckboxSetField_ss: SilverStripe\Forms\CheckboxSetField_ss
-  ForgotPasswordEmail_ss: SilverStripe\Control\Email\ChangePasswordEmail_ss
-  GridFieldEditButton_ss: SilverStripe\Forms\GridField\GridFieldEditButton_ss
-skipYML:
-  - MySQLDatabase
-  - MySQLiConnector
-  - MySQLSchemaManager
-  - MySQLQueryBuilder
-  - EndsWithFilter
-  - ExactMatchFilter
-  - FulltextFilter
-  - GreaterThanFilter
-  - GreaterThanOrEqualFilter
-  - LessThanFilter
-  - LessThanOrEqualFilter
-  - PartialMatchFilter
-  - StartsWithFilter
-  - WithinRangeFilter
-  - Boolean
-  - Currency
-  - DBClassName
-  - Date
-  - Datetime
-  - DBDatetime
-  - Decimal
-  - Double
-  - Enum
-  - Float
-  - ForeignKey
-  - HTMLText
-  - HTMLFragment
-  - HTMLVarchar
-  - Int
-  - BigInt
-  - Locale
-  - DBLocale
-  - Money
-  - MultiEnum
-  - Percentage
-  - PolymorphicForeignKey
-  - PrimaryKey
-  - Text
-  - Time
-  - Varchar
-  - Year
-skipConfigs:
-  - required_fields
-  - db
-  - casting
-  - table_name
-  - fixed_fields
-  - menu_title
-  - allowed_actions
-  - plural_name
-  - singular_name
-  - owns
-  - searchable_fields
-  - summary_fields
-  - many_many_extraFields
-  - default_search_filter_class
-  - segment
-  - url_segment
-excludedPaths:
-  - '*fixtures*'
-  - '*vendor*'
-warnings:
-  classes:
-    'Object':
-      message: 'Replaced with traits'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#object-replace'
-    'SS_Object':
-      message: 'Replaced with traits'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#object-replace'
-    'SS_Log':
-      message: 'Replaced with a PSR-3 logger'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#psr3-logging'
-    'Session':
-      message: 'Session is no longer statically accessible'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#session'
-    'SQLQuery':
-      message: 'Use SQLSelect instead'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#sqlquery'
-    'CompositeDBField':
-      message: 'Class has been replaced with an abstract DBComposite'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#compositedbfield'
-    'BuildTask':
-      message: 'Now needs a $segment property to run it'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#buildtask-segment'
-    'RestfulService':
-      message: 'Removed from core. Please use Guzzle'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#restfulservice'
-    'Oembed':
-      message: 'Removed from core. Please use third party lib'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#oembed'
-    'SS_Cache':
-      message: 'Using symfony/cache now'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#cache'
-    'LeftAndMain_TreeNode':
-      message: 'Renamed to CMSMain_TreeNode'
-    'HTMLEditorField_Toolbar':
-      message: 'replaced With SilverStripe\Admin\ModalController'
-    'HTMLEditorField_File':
-      message: 'Removed'
-    'HTMLEditorField_Flash':
-      message: 'Removed'
-    'HTMLEditorField_Image':
-      message: 'Removed'
-    'DateField_View_JQuery':
-      message: 'replaced with native HTML5 support in DateField'
-    'MemberDatetimeOptionsetField':
-      message: 'Removed'
-    'NumericField_Readonly':
-      message: 'Use NumericField->setReadonly(true) instead'
-    'SilverStripe\ORM\ValidationException':
-      message: '$message second constructor parameter is removed. Constructor only accepts $result, which may be a string, and optional $code'
-    'SilverStripe\Forms\HeaderField':
-      message: 'Requires an explicit $name constructor argument (in addition to $title)'
-    'Folder_UnusedAssetsField':
-      message: 'Removed'
-    'Image_Cached':
-      message: 'Removed'
-    'CMSFileAddController':
-      message: 'Removed'
-    'CMSBatchAction_Delete':
-      message: 'Use SilverStripe\CMS\BatchActions\CMSBatchAction_Archive instead'
-    'EncryptAllPasswordsTask':
-      message: 'Removed'
-    'SilverStripe\Dev\SapphireREPL':
-      message: 'Removed'
-  methods:
-    'SilverStripe\Security\Authenticator::register()':
-      message: 'Custom authenticators work differently now'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#custom-authenticators'
-    'Object::useCustomClass()':
-      message: 'Use injector instead'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#custom-authenticators'
-    'SilverStripe\Control\Director::setUrlParams()':
-      message: 'Method removed'
-    'SilverStripe\ORM\DataObject->manyManyComponent()':
-      message: 'DataObject->manyManyComponent() moved to DataObjectSchema. Access through getSchema(). You must manually add static::class as the first argument to manyManyComponent()'
-      replacement: 'getSchema()->manyManyComponent'
-    'SilverStripe\ORM\DataObject->belongsToComponent()':
-      message: 'DataObject->belongsToComponent() moved to DataObjectSchema. Access through getSchema(). You must manually add static::class as the first argument to belongsToComponent()'
-      replacement: 'getSchema()->belongsToComponent'
-    'SilverStripe\ORM\DataObject->hasOneComponent()':
-      message: 'DataObject->hasOneComponent() moved to DataObjectSchema. Access through getSchema(). You must manually add static::class as the first argument to hasOneComponent()'
-      replacement: 'getSchema()->hasOneComponent'
-    'SilverStripe\ORM\DataObject->hasManyComponent()':
-      message: 'DataObject->hasManyComponent() moved to DataObjectSchema. Access through getSchema(). You must manually add static::class as the first argument to getRemoteJoinField()'
-      replacement: 'getSchema()->hasManyComponent'
-    'SilverStripe\ORM\DataObject->getRemoteJoinField()':
-      message: 'DataObject->getRemoteJoinField() moved to DataObjectSchema. Access through getSchema(). You must manually add static::class as the first argument to getRemoteJoinField()'
-      replacement: 'getSchema()->getRemoteJoinField'
-    'SilverStripe\ORM\DataObject::has_own_table()':
-      message: 'DataObject::has_own_table() moved to DataObjectSchema->classHasTable(). Access through getSchema().'
-      replacement: 'getSchema()->classHasTable'
-    'SilverStripe\ORM\DataObject::database_fields()':
-      message: 'DataObject::database_fields() moved to DataObjectSchema->databaseFields(). Access through getSchema()'
-      replacement: 'getSchema()->databaseFields'
-    'SilverStripe\ORM\DataObject->manyManyExtraFieldsForComponent()':
-      message: 'DataObject::manyManyExtraFieldsForComponent() moved to DataObjectSchema. Access through getSchema(). You must manually add static::class as the first argument to manyManyExtraFieldsForComponent()'
-      replacement: 'getSchema()->manyManyExtraFieldsForComponent'
-    'SilverStripe\ORM\DataObject->validateModelDefinitions()':
-      message: 'Removed DataObject->validateModelDefinitions()'
-    'SilverStripe\ORM\DataObject->hasOwnTableDatabaseField()':
-      message: 'DataObject->hasOwnTableDatabaseField() has been replaced with DataObjectSchema::fieldSpec(). Access through getSchema()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#dataobject-has-own'
-    'SilverStripe\ORM\DataObject::has_own_table_database_field()':
-      message: 'DataObject::has_own_table_database_field() has been replaced with DataObjectSchema::fieldSpec(). Access through getSchema()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#dataobject-has-own'
-    'SilverStripe\ORM\DataObject->hasDatabaseField()':
-      message: 'DataObject->hasDatabaseField() has been replaced with DataObjectSchema::fieldSpec(). Access through getSchema()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#dataobject-has-own'
-    'SilverStripe\ORM\DataObject::is_composite_field()':
-      message: 'Removed DataObject::is_composite_field. Use DataObjectSchema::compositeField instead.'
-      replacement: 'getSchema()->compositeField'
-    'SilverStripe\ORM\DataObject::custom_database_fields()':
-      message: 'Removed DataObject::custom_database_fields. Use DataObjectSchema::databaseFields'
-      replacement: 'getSchema()->databaseFields'
-    'SilverStripe\Dev\SapphireTest->setUpOnce()':
-      message: 'Renamed to setUpBeforeClass()'
-      replacement: setUpBeforeClass
-    'SilverStripe\Dev\SapphireTest->tearDownOnce()':
-      message: 'Renamed to tearDownAfterClass()'
-      replacement: tearDownAfterClass
-    'SilverStripe\Dev\SapphireTest::is_running_tests()':
-      message: 'is_running_tests() is no longer public and user code should not rely on this. Test-specific behaviour should be implemented in setUp() and tearDown()'
-    'SilverStripe\Dev\SapphireTest::using_temp_db()':
-      message: 'Moved to SilverStripe\ORM\Connect\TempDatabase->isUsed()'
-      replacement: '$tempDB->isUsed'
-    'SilverStripe\Dev\SapphireTest::kill_temp_db()':
-      message: 'Moved to SilverStripe\ORM\Connect\TempDatabase->kill()'
-      replacement: '$tempDB->kill'
-    'SilverStripe\Dev\SapphireTest::empty_temp_db()':
-      message: 'Moved to SilverStripe\ORM\Connect\TempDatabase->clearAllData()'
-      replacement: '$tempDB->clearAllData'
-    'SilverStripe\Dev\SapphireTest::create_temp_db()':
-      message: 'Moved to SilverStripe\ORM\Connect\TempDatabase->build()'
-      replacement: '$tempDB->build'
-    'SilverStripe\Dev\SapphireTest::delete_all_temp_dbs()':
-      message: 'Moved to SilverStripe\ORM\Connect\TempDatabase->deleteAll()'
-      replacement: '$tempDB->deleteAll'
-    'SilverStripe\Dev\SapphireTest::resetDBSchema()':
-      message: 'Moved to SilverStripe\ORM\Connect\TempDatabase->resetSchema()'
-      replacement: '$tempDB->resetSchema'
-    'SilverStripe\Control\Email\Email->populateTemplate()':
-      message: 'Email->populateTemplate() has been replaced with Email->setData()'
-      replacement: 'setData'
-    'SilverStripe\Control\Email\Email->setTemplate()':
-      message: 'Renamed to setHTMLTemplate()'
-      replacement: 'setHTMLTemplate'
-    'SilverStripe\Control\Email\Email->replyTo()':
-      message: 'Renamed to setReplyTo()'
-      replacement: 'setReplyTo'
-    'SilverStripe\Control\Email\Email->attachFile()':
-      message: 'Renamed to addAttachment()'
-      replacement: 'addAttachment'
-    'SilverStripe\Control\Email\Email->Subject()':
-      message: 'Renamed to getSubject()'
-      replacement: 'getSubject'
-    'SilverStripe\Control\Email\Email->Body()':
-      message: 'Renamed to getBody()'
-      replacement: 'getBody'
-    'SilverStripe\Control\Email\Email->From()':
-      message: 'Renamed to getFrom()'
-      replacement: 'getFrom'
-    'SilverStripe\Control\Email\Email->To()':
-      message: 'Renamed to getTo()'
-      replacement: 'getTo'
-    'SilverStripe\Control\Email\Email->Cc()':
-      message: 'Renamed to getCc()'
-      replacement: 'getCc'
-    'SilverStripe\Control\Email\Email->Bcc()':
-      message: 'Renamed to getBcc()'
-      replacement: 'getBcc'
-    'SilverStripe\Control\Email\Email->addCustomHeader()':
-      message: 'addCustomHeader() is removed'
-    'SilverStripe\i18n\i18n::get_language_name()':
-      message: 'moved to SilverStripe\i18n\Data\Locales::languageName()'
-      replacement: 'getData()->languageName'
-    'SilverStripe\i18n\i18n::get_locale_name()':
-      message: 'moved to SilverStripe\i18n\Data\Locales::localeName()'
-      replacement: 'getData()->localeName'
-    'SilverStripe\i18n\i18n::get_language_code()':
-      message: 'Removed'
-    'SilverStripe\i18n\i18n::get_common_languages()':
-      message: 'moved to SilverStripe\i18n\Data\Locales::getLanguages()'
-      replacement: 'getData()->getLanguages'
-    'SilverStripe\i18n\i18n::get_common_locales()':
-      message: 'Removed, but you can use SilverStripe\i18n\Data\Locales::getLocales() instead'
-      replacement: 'getData()->getLocales'
-    'SilverStripe\i18n\i18n::get_existing_translations()':
-      message: 'moved to SilverStripe\i18n\Data\Sources::getKnownLocales()'
-      replacement: 'getSources()->getKnownLocales'
-    'SilverStripe\i18n\i18n::get_owner_module()':
-      message: 'moved to SilverStripe\Core\Manifest\ClassManifest::getOwnerModule()'
-    'SilverStripe\i18n\i18n::validate_locale()':
-      message: 'moved to SilverStripe\i18n\Data\Locales::validate()'
-      replacement: 'getData()->validate'
-    'SilverStripe\i18n\i18n::get_lang_from_locale()':
-      message: 'moved to SilverStripe\i18n\Data\Locales::langFromLocale()'
-      replacement: 'getData()->langFromLocale'
-    'SilverStripe\i18n\i18n::get_locale_from_lang()':
-      message: 'moved to SilverStripe\i18n\Data\Locales::localeFromLang()'
-      replacement: 'getData()->localeFromLang'
-    'SilverStripe\i18n\i18n::get_tinymce_lang()':
-      message: 'moved to SilverStripe\Forms\HTMLEditor\TinyMCEConfig::get_tinymce_lang()'
-    'SilverStripe\ORM\Hierarchy->getChildrenAsUL()':
-      message: 'Replaced with MarkedSet::renderChildren()'
-    'SilverStripe\Security\Permission::flush_permission_cache()':
-      message: 'Renamed to reset()'
-      replacement: 'reset'
-    'SilverStripe\View\SSViewer::set_source_file_comments()':
-      message: 'Removed'
-    'SilverStripe\View\SSViewer::get_source_file_comments()':
-      message: 'Removed'
-    'SilverStripe\View\SSViewer->getOption()':
-      message: 'Removed'
-    'SilverStripe\View\SSViewer->setOption()':
-      message: 'Removed'
-    'SilverStripe\Forms\DatetimeField->getConfig()':
-      message: 'Provides individual getters and setters now'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#datetimefield'
-    'SilverStripe\Forms\DatetimeField->setConfig()':
-      message: 'Provides individual getters and setters now'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#datetimefield'
-    'SilverStripe\Forms\DateField->getConfig()':
-      message: 'Provides individual getters and setters now'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#datefield'
-    'SilverStripe\Forms\DateField->setConfig()':
-      message: 'Provides individual getters and setters now'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#datefield'
-    'SilverStripe\Forms\TimeField->getConfig()':
-      message: 'Provides individual getters and setters now'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#timefield'
-    'SilverStripe\Forms\TimeField->setConfig()':
-      message: 'Provides individual getters and setters now'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#timefield'
-    'SilverStripe\Forms\Validator->validate()':
-      message: 'now returns a `ValidationResult` instance'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#form-validation'
-    'SilverStripe\View\Requirements::delete_combined_files()':
-      message: 'Removed'
-    'SilverStripe\Security\PermissionCheckboxSetField::getAssignedPermissionCodes()':
-      message: 'Removed'
-    'SilverStripe\Forms\CompositeField::setID()':
-      message: 'ID is generated from name indirectly; Use SilverStripe\Form\FormField::setName() instead'
-      replacement: 'setName'
-    'SilverStripe\Forms\FormField::createTag()':
-      message: 'moved to SilverStripe\View\HTML->createTag()'
-    'SilverStripe\Forms\Form->transformTo()':
-      message: 'Removed'
-    'SilverStripe\Forms\Form::single_field_required()':
-      message: 'Removed'
-    'SilverStripe\Forms\Form::current_action()':
-      message: 'Removed'
-    'SilverStripe\Forms\Form::set_current_action()':
-      message: 'Removed'
-    'SilverStripe\Forms\Form->setupFormErrors()':
-      message: 'Renamed to restoreFormState()'
-    'SilverStripe\Forms\Form->resetValidation()':
-      message: 'Renamed to clearFormState()'
-    'SilverStripe\Forms\Form->callfieldmethod()':
-      message: 'Removed'
-    'SilverStripe\Forms\Form->addErrorMessage()':
-      message: 'Removed. Use `sessionMessage()` or `sessionError()` to add a form level message, throw a `ValidationException` during submission, or add a custom validator.'
-    'SilverStripe\Forms\Form->messageForForm()':
-      message: 'Use setMessage() or sessionMessage() instead'
-    'SilverStripe\Forms\Form->buttonClicked()':
-      message: 'Moved to FormRequestHandler'
-      replacement: 'getRequestHandler()->buttonClicked'
-    'SilverStripe\Forms\Form->checkAccessAction()':
-      message: 'Moved to FormRequestHandler'
-      replacement: 'getRequestHandler()->checkAccessAction'
-    'SilverStripe\Forms\Form->handleField()':
-      message: 'Moved to FormRequestHandler'
-      replacement: 'getRequestHandler()->handleField'
-    'SilverStripe\Forms\Form->httpSubmission()':
-      message: 'Moved to FormRequestHandler'
-      replacement: 'getRequestHandler()->httpSubmission'
-    'SilverStripe\Forms\Form->Link()':
-      message: 'Moved to FormRequestHandler'
-      replacement: 'getRequestHandler()->Link'
-    'SilverStripe\Forms\Validator::requireField()':
-      message: 'Validator::requireField() has been removed. Use RequiredFields instead'
-    'provideI18nEntities()':
-      message: 'Return type has changed (needs to be associative)'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#i18n'
-    'SilverStripe\View\Requirements_Backend::get_combined_files_enabled()':
-      message: 'Renamed to getCombinedFilesEnabledO()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'getCombinedFilesEnabled'
-    'SilverStripe\View\Requirements_Backend::set_combined_files_enabled()':
-      message: 'Renamed to setCombinedFilesEnabled()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'setCombinedFilesEnabled'
-    'SilverStripe\View\Requirements_Backend::get_suffix_requirements()':
-      message: 'Renamed to getSuffixRequirements()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'getSuffixRequirements'
-    'SilverStripe\View\Requirements_Backend::set_suffix_requirements()':
-      message: 'Renamed to setSuffixRequirements()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'setSuffixRequirements'
-    'SilverStripe\View\Requirements_Backend::get_custom_scripts()':
-      message: 'Renamed to getCustomScripts()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'getCustomScripts'
-    'SilverStripe\View\Requirements_Backend::unblock_all()':
-      message: 'Renamed to unblockAll()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'unblockAll'
-    'SilverStripe\View\Requirements_Backend::include_in_response()':
-      message: 'Renamed to includeInResponse()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'includeInResponse'
-    'SilverStripe\View\Requirements_Backend::combine_files()':
-      message: 'Renamed to getCombinedFiles()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'getCombinedFiles'
-    'SilverStripe\View\Requirements_Backend::get_combine_files()':
-      message: 'Renamed to getCombinedFiles()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'getCombinedFiles'
-    'SilverStripe\View\Requirements_Backend::clear_combined_files()':
-      message: 'Renamed to clearCombinedFiles()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'clearCombinedFiles'
-    'SilverStripe\View\Requirements_Backend::process_combined_files()':
-      message: 'Renamed to processCombinedFiles()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'processCombinedFiles'
-    'SilverStripe\View\Requirements_Backend::set_write_js_to_body()':
-      message: 'Renamed to setWriteJavascriptToBody()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'setWriteJavascriptToBody'
-    'SilverStripe\View\Requirements_Backend::set_force_js_to_bottom()':
-      message: 'Renamed to setForceJSToBottom()'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'setForceJSToBottom'
-    'SilverStripe\AssetAdmin\Controller\AssetAdmin::deleteunusedthumbnails()':
-      message: 'Removed'
-    'SilverStripe\AssetAdmin\Controller\AssetAdmin::getUnusedThumbnails()':
-      message: 'Removed'
-    'SilverStripe\ORM\FieldType\DBMoney::getAllowedCurrencies()':
-      message: 'Apply validation to MoneyField instead'
-    'SilverStripe\ORM\Hierarchy\Hierarchy->doAllChildrenIncludingDeleted':
-      message: 'Use AllChildrenIncludingDeleted() instead'
-      replacement: 'AllChildrenIncludingDeleted'
-    'past_date()':
-      message: 'Removed SilverStripe\ORM\FieldType\DBDate->past_date()'
-    'prior_monday()':
-      message: 'Removed SilverStripe\ORM\FieldType\DBDate->prior_monday()'
-    'weekday()':
-      message: 'Removed SilverStripe\ORM\FieldType\DBDate->weekday()'
-    'next_day()':
-      message: 'Removed SilverStripe\ORM\FieldType\DBDate->next_day()'
-    'day_before()':
-      message: 'Removed SilverStripe\ORM\FieldType\DBDate->day_before()'
-    'days_between()':
-      message: 'Removed SilverStripe\ORM\FieldType\DBDate->days_between()'
-    'SilverStripe\Control\Session::get_all()':
-      message: 'Session can not be accessed statically and `get_all()` is now called `getAll()'
-    'SilverStripe\Control\Session::clear_all()':
-      message: 'Session can not be accessed statically and `clear_all()` is now called `clearAll()'
-  props:
-    'class':
-      message: '$this->class access has been removed'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#object-replace'
-    'SilverStripe\Dev\SapphireTest->requiredExtensions':
-      message: 'Renamed to required_extensions'
-      replacement: 'required_extensions'
-    'SilverStripe\Dev\SapphireTest->extraDataobjects':
-      message: 'Renamed to extra_dataobjects'
-      replacement: 'extra_dataobjects'
-    'SilverStripe\Dev\SapphireTest->extraControllers':
-      message: 'Renamed to extra_controllers'
-      replacement: 'extra_controllers'
-    'SilverStripe\View\Requirements_Backend->combine_files':
-      message: 'Renamed to combineFiles'
-      replacement: 'combineFiles'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-    'SilverStripe\View\Requirements_Backend->write_header_comments':
-      message: 'Renamed to writeHeaderComment'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'writeHeaderComment'
-    'SilverStripe\View\Requirements_Backend->write_js_to_body':
-      message: 'Renamed to writeJavascriptToBody'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#requirements'
-      replacement: 'writeJavascriptToBody'
-    'SilverStripe\Forms\Formfield->dontEscape':
-      message: 'FormField::$dontEscape has been removed. Escaping is now managed on a class by class basis.'
-  functions:
-    'file_get_contents()':
-      message: 'Use new asset abstraction'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#asset-storage'
-    'file_put_contents()':
-      message: 'Use new asset abstraction'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#asset-storage'
-  constants:
-    'SS_TRUSTED_PROXY_PROTOCOL_HEADER':
-      message: 'See TrustedProxyMiddleware'
-    'SS_TRUSTED_PROXY_IP_HEADER':
-      message: 'See TrustedProxyMiddleware'
-    'SS_TRUSTED_PROXY_HOST_HEADER':
-      message: 'See TrustedProxyMiddleware'
-    'MODULES_PATH':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'MODULES_DIR':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'FRAMEWORK_PATH':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'FRAMEWORK_DIR':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'CMS_PATH':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'CMS_DIR':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'FRAMEWORK_ADMIN_PATH':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'FRAMEWORK_ADMIN_DIR':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'FRAMEWORK_ADMIN_THIRDPARTY_DIR':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'THEMES_PATH':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'THEMES_DIR':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'THIRDPARTY_PATH':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'THIRDPARTY_DIR':
-      message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
-    'SilverStripe\Core\Manifest\ManifestFileFinder::RESOURCES_DIR':
-      message: 'Use global const RESOURCES_DIR'
-      url: 'https://docs.silverstripe.org/en/4/changelogs/4.4.0#resources-dir'
-      replacement: 'RESOURCES_DIR'
-
-renameWarnings:
-  - Form
-
-visibilities:
-  'SilverStripe\ORM\DataObject::db':
-    visibility: private
-  'SilverStripe\ORM\DataObject::singular_name':
-    visibility: private
-  'SilverStripe\ORM\DataObject::plural_name':
-    visibility: private
-  'SilverStripe\ORM\DataObject::api_access':
-    visibility: private
-  'SilverStripe\ORM\DataObject::default_classname':
-    visibility: private
-  'SilverStripe\ORM\DataObject->record':
-    visibility: protected
-  'SilverStripe\ORM\DataObject->joinRecord':
-    visibility: protected
-  'SilverStripe\ORM\DataObject->changed':
-    visibility: private
-  'SilverStripe\ORM\DataObject->changeForced':
-    visibility: private
-  'SilverStripe\ORM\DataObject->original':
-    visibility: protected
-  'SilverStripe\ORM\DataObject->brokenOnDelete':
-    visibility: protected
-  'SilverStripe\ORM\DataObject->brokenOnWrite':
-    visibility: protected
-  'SilverStripe\ORM\DataObject::validation_enabled':
-    visibility: private
-  'SilverStripe\ORM\DataObject::_cache_get_one':
-    visibility: protected
-  'SilverStripe\ORM\DataObject::_cache_field_labels':
-    visibility: protected
-  'SilverStripe\ORM\DataObject::fixed_fields':
-    visibility: private
-  'SilverStripe\ORM\DataObject::table_name':
-    visibility: private
-  'SilverStripe\ORM\DataObject->components':
-    visibility: protected
-  'SilverStripe\ORM\DataObject->unsavedRelations':
-    visibility: protected
-  'SilverStripe\ORM\DataObject::cascade_deletes':
-    visibility: private
-  'SilverStripe\ORM\DataObject::cascade_duplicates':
-    visibility: private
-  'SilverStripe\ORM\DataObject::sourceQueryParams':
-    visibility: private
-  'SilverStripe\ORM\DataObject::subclass_access':
-    visibility: private
-  'SilverStripe\ORM\DataObject::casting':
-    visibility: private
-  'SilverStripe\ORM\DataObject::create_table_options':
-    visibility: private
-  'SilverStripe\ORM\DataObject::indexes':
-    visibility: private
-  'SilverStripe\ORM\DataObject::defaults':
-    visibility: private
-  'SilverStripe\ORM\DataObject::default_records':
-    visibility: private
-  'SilverStripe\ORM\DataObject::has_one':
-    visibility: private
-  'SilverStripe\ORM\DataObject::belongs_to':
-    visibility: private
-  'SilverStripe\ORM\DataObject::has_many':
-    visibility: private
-  'SilverStripe\ORM\DataObject::many_many':
-    visibility: private
-  'SilverStripe\ORM\DataObject::many_many_extraFields':
-    visibility: private
-  'SilverStripe\ORM\DataObject::belongs_many_many':
-    visibility: private
-  'SilverStripe\ORM\DataObject::default_sort':
-    visibility: private
-  'SilverStripe\ORM\DataObject::searchable_fields':
-    visibility: private
-  'SilverStripe\ORM\DataObject::field_labels':
-    visibility: private
-  'SilverStripe\ORM\DataObject::summary_fields':
-    visibility: private
-  'SilverStripe\Control\Director::rules':
-    visibility: private
-  'SilverStripe\Control\Director::current_page':
-    visibility: private
-  'SilverStripe\Control\Director::alternate_base_folder':
-    visibility: private
-  'SilverStripe\Control\Director::alternate_public_dir':
-    visibility: private
-  'SilverStripe\Control\Director::default_base_url':
-    visibility: private
-  'SilverStripe\Forms\GridField\GridFieldPaginator::default_items_per_page':
-    visibility: private
-  'SilverStripe\View\SSViewer::themes':
-    visibility: private
-  'SilverStripe\View\SSViewer::current_themes':
-    visibility: protected
-  'SilverStripe\View\SSViewer::theme':
-    visibility: private
-  'SilverStripe\View\SSViewer::theme_enabled':
-    visibility: private
-  'SilverStripe\View\SSViewer::global_key':
-    visibility: private
-  'SilverStripe\View\SSViewer::source_file_comments':
-    visibility: private
-  'SilverStripe\View\SSViewer::rewrite_hash_links':
-    visibility: private
-  'SilverStripe\View\SSViewer::current_rewrite_hash_links':
-    visibility: protected
-  'SilverStripe\View\SSViewer::rewriteHashlinks':
-    visibility: protected
-  'SilverStripe\View\SSViewer::template_cache_flushed':
-    visibility: private
-  'SilverStripe\View\SSViewer::cacheblock_cache_flushed':
-    visibility: private
-  'SilverStripe\View\SSViewer::topLevel':
-    visibility: protected
-  'SilverStripe\View\SSViewer::templates':
-    visibility: protected
-  'SilverStripe\View\SSViewer::chosen':
-    visibility: protected
-  'SilverStripe\View\SSViewer::subTemplates':
-    visibility: protected
-  'SilverStripe\View\SSViewer::includeRequirements':
-    visibility: protected
-  'SilverStripe\View\SSViewer::parser':
-    visibility: protected
-  'SilverStripe\View\SSViewer::partialCacheStore':
-    visibility: protected
-
-classToTraits:
-  SS_Object:
-    'SilverStripe\Core\Extensible': 'Extensible'
-    'SilverStripe\Core\Injector\Injectable': 'Injectable'
-    'SilverStripe\Core\Config\Configurable': 'Configurable'
-  Object:
-    'SilverStripe\Core\Extensible': 'Extensible'
-    'SilverStripe\Core\Injector\Injectable': 'Injectable'
-    'SilverStripe\Core\Config\Configurable': 'Configurable'
diff --git a/_register_database.php b/_register_database.php
index 00952bc04..35d09b53d 100644
--- a/_register_database.php
+++ b/_register_database.php
@@ -7,7 +7,6 @@ use SilverStripe\Dev\Install\MySQLDatabaseConfigurationHelper;
 // Register MySQLi as a database adapter (listed as second option in Dev/Install/config-form.html)
 DatabaseAdapterRegistry::register(
     [
-        /** @skipUpgrade */
         'class' => 'MySQLDatabase',
         'module' => 'framework',
         'title' => 'MySQL 5.0+ (using MySQLi)',
diff --git a/src/Control/Director.php b/src/Control/Director.php
index 972a60f3f..00573b1ef 100644
--- a/src/Control/Director.php
+++ b/src/Control/Director.php
@@ -25,7 +25,6 @@ use SilverStripe\View\TemplateGlobalProvider;
  *
  * @see Director::handleRequest()
  * @see Director::$rules
- * @skipUpgrade
  */
 class Director implements TemplateGlobalProvider
 {
diff --git a/src/Control/HTTPRequest.php b/src/Control/HTTPRequest.php
index db22f8d41..e37feadf5 100644
--- a/src/Control/HTTPRequest.php
+++ b/src/Control/HTTPRequest.php
@@ -563,7 +563,6 @@ class HTTPRequest implements ArrayAccess
                     return false;
                 }
 
-                /** @skipUpgrade */
                 $key = "Controller";
                 if ($varName === '*' || $varName === '@') {
                     if (isset($patternParts[$i + 1])) {
diff --git a/src/Core/CoreKernel.php b/src/Core/CoreKernel.php
index c16d75999..be3ed1821 100644
--- a/src/Core/CoreKernel.php
+++ b/src/Core/CoreKernel.php
@@ -108,7 +108,6 @@ class CoreKernel extends BaseKernel
      */
     protected function getDatabaseConfig()
     {
-        /** @skipUpgrade */
         $databaseConfig = [
             "type" => Environment::getEnv('SS_DATABASE_CLASS') ?: 'MySQLDatabase',
             "server" => Environment::getEnv('SS_DATABASE_SERVER') ?: 'localhost',
diff --git a/src/Dev/Install/MySQLDatabaseConfigurationHelper.php b/src/Dev/Install/MySQLDatabaseConfigurationHelper.php
index e6f572651..1c31fa6cf 100644
--- a/src/Dev/Install/MySQLDatabaseConfigurationHelper.php
+++ b/src/Dev/Install/MySQLDatabaseConfigurationHelper.php
@@ -20,7 +20,6 @@ class MySQLDatabaseConfigurationHelper implements DatabaseConfigurationHelper
     /**
      * Create a connection of the appropriate type
      *
-     * @skipUpgrade
      * @param array $databaseConfig
      * @param string $error Error message passed by value
      * @return mixed|null Either the connection object, or null if error
diff --git a/src/Forms/CompositeField.php b/src/Forms/CompositeField.php
index 1b9d9d982..b59a5f118 100644
--- a/src/Forms/CompositeField.php
+++ b/src/Forms/CompositeField.php
@@ -50,7 +50,6 @@ class CompositeField extends FormField
 
     protected $schemaDataType = FormField::SCHEMA_DATA_TYPE_STRUCTURAL;
 
-    /** @skipUpgrade */
     protected $schemaComponent = 'CompositeField';
 
     public function __construct($children = null)
@@ -142,7 +141,6 @@ class CompositeField extends FormField
                 $count++;
             }
         }
-        /** @skipUpgrade */
         if ($count === 1) {
             $compositeTitle .= 'Group';
         }
@@ -199,7 +197,6 @@ class CompositeField extends FormField
 
     public function extraClass()
     {
-        /** @skipUpgrade */
         $classes = ['field', 'CompositeField', parent::extraClass()];
         if ($this->columnCount) {
             $classes[] = 'multicolumn';
diff --git a/src/Forms/FieldGroup.php b/src/Forms/FieldGroup.php
index 108c3a858..a42b3889a 100644
--- a/src/Forms/FieldGroup.php
+++ b/src/Forms/FieldGroup.php
@@ -60,7 +60,6 @@ use SilverStripe\ORM\ValidationResult;
  */
 class FieldGroup extends CompositeField
 {
-    /** @skipUpgrade */
     protected $schemaComponent = 'FieldGroup';
 
     protected $zebra;
diff --git a/src/Forms/Form.php b/src/Forms/Form.php
index 6fce22087..5735330b5 100644
--- a/src/Forms/Form.php
+++ b/src/Forms/Form.php
@@ -1760,7 +1760,6 @@ class Form extends ViewableData implements HasRequestHandler
         $result .= "</ul>";
 
         if ($this->validator) {
-            /** @skipUpgrade */
             $result .= '<h3>' . _t(__CLASS__ . '.VALIDATOR', 'Validator') . '</h3>' . $this->validator->debug();
         }
 
diff --git a/src/Forms/FormAction.php b/src/Forms/FormAction.php
index e26afb827..d709ce0a0 100644
--- a/src/Forms/FormAction.php
+++ b/src/Forms/FormAction.php
@@ -43,7 +43,6 @@ class FormAction extends FormField
     protected $icon = null;
 
     /**
-     * @skipUpgrade
      * @var string
      */
     protected $schemaComponent = 'FormAction';
diff --git a/src/Forms/FormField.php b/src/Forms/FormField.php
index d0983303f..8574185ec 100644
--- a/src/Forms/FormField.php
+++ b/src/Forms/FormField.php
@@ -249,7 +249,6 @@ class FormField extends RequestHandler
     /**
      * The type of front-end component to render the FormField as.
      *
-     * @skipUpgrade
      * @var string
      */
     protected $schemaComponent;
diff --git a/src/Forms/FormRequestHandler.php b/src/Forms/FormRequestHandler.php
index 8b22adbc8..c52ba236d 100644
--- a/src/Forms/FormRequestHandler.php
+++ b/src/Forms/FormRequestHandler.php
@@ -393,7 +393,6 @@ class FormRequestHandler extends RequestHandler
     protected function checkFieldsForAction($fields, $funcName)
     {
         foreach ($fields as $field) {
-            /** @skipUpgrade */
             if (ClassInfo::hasMethod($field, 'FieldList')) {
                 if ($field = $this->checkFieldsForAction($field->FieldList(), $funcName)) {
                     return $field;
diff --git a/src/Forms/GridField/GridField.php b/src/Forms/GridField/GridField.php
index 8bb84a3cd..9b1b3731a 100644
--- a/src/Forms/GridField/GridField.php
+++ b/src/Forms/GridField/GridField.php
@@ -1109,7 +1109,6 @@ class GridField extends FormField
 
         $state = $this->getState(false);
 
-        /** @skipUpgrade */
         if (isset($fieldData['GridState'])) {
             $state->setValue($fieldData['GridState']);
         }
@@ -1205,7 +1204,6 @@ class GridField extends FormField
 
         $fieldData = $this->getRequest()->requestVar($this->getName());
 
-        /** @skipUpgrade */
         if ($fieldData && isset($fieldData['GridState'])) {
             $this->getState(false)->setValue($fieldData['GridState']);
         }
diff --git a/src/Forms/GroupedDropdownField.php b/src/Forms/GroupedDropdownField.php
index feb758361..f30d8c5c7 100644
--- a/src/Forms/GroupedDropdownField.php
+++ b/src/Forms/GroupedDropdownField.php
@@ -57,7 +57,6 @@ class GroupedDropdownField extends DropdownField
 
     // TODO remove this when GroupedDropdownField is implemented
     // This should be one of SCHEMA_DATA_TYPE_* constants instead
-    /** @skipUpgrade */
     protected $schemaDataType = 'GroupedDropdownField';
 
     /**
diff --git a/src/Forms/HTMLReadonlyField.php b/src/Forms/HTMLReadonlyField.php
index 448bfd65a..8a028726d 100644
--- a/src/Forms/HTMLReadonlyField.php
+++ b/src/Forms/HTMLReadonlyField.php
@@ -17,7 +17,6 @@ class HTMLReadonlyField extends ReadonlyField
     protected $schemaDataType = self::SCHEMA_DATA_TYPE_STRUCTURAL;
 
     /**
-     * @skipUpgrade
      * @var string
      */
     protected $schemaComponent = 'HtmlReadonlyField';
diff --git a/src/Forms/HeaderField.php b/src/Forms/HeaderField.php
index 71393df42..610f6d82d 100644
--- a/src/Forms/HeaderField.php
+++ b/src/Forms/HeaderField.php
@@ -20,7 +20,6 @@ class HeaderField extends DatalessField
     protected $schemaDataType = self::SCHEMA_DATA_TYPE_STRUCTURAL;
 
     /**
-     * @skipUpgrade
      * @var string
      */
     protected $schemaComponent = 'HeaderField';
diff --git a/src/Forms/LabelField.php b/src/Forms/LabelField.php
index 6415e5b61..34b0cf86b 100644
--- a/src/Forms/LabelField.php
+++ b/src/Forms/LabelField.php
@@ -11,7 +11,6 @@ class LabelField extends DatalessField
 {
     protected $schemaDataType = FormField::SCHEMA_DATA_TYPE_STRUCTURAL;
 
-    /** @skipUpgrade */
     protected $schemaComponent = 'LabelField';
 
     /**
@@ -32,7 +31,6 @@ class LabelField extends DatalessField
             }
 
             // Prefix name to avoid collisions.
-            /** @skipUpgrade */
             $name = 'LabelField' . $title;
         }
 
diff --git a/src/Forms/LiteralField.php b/src/Forms/LiteralField.php
index d9bb25fe3..178cd1f09 100644
--- a/src/Forms/LiteralField.php
+++ b/src/Forms/LiteralField.php
@@ -29,7 +29,6 @@ class LiteralField extends DatalessField
     protected $schemaDataType = self::SCHEMA_DATA_TYPE_STRUCTURAL;
 
     /**
-     * @skipUpgrade
      * @var string
      */
     protected $schemaComponent = 'LiteralField';
diff --git a/src/Forms/LookupField.php b/src/Forms/LookupField.php
index 20fa689e3..6a5c31ba5 100644
--- a/src/Forms/LookupField.php
+++ b/src/Forms/LookupField.php
@@ -15,7 +15,6 @@ use SilverStripe\ORM\FieldType\DBField;
  */
 class LookupField extends MultiSelectField
 {
-    /** @skipUpgrade */
     protected $schemaComponent = 'LookupField';
 
     /**
diff --git a/src/Forms/MoneyField.php b/src/Forms/MoneyField.php
index 5ff897b99..f6da4d8dc 100644
--- a/src/Forms/MoneyField.php
+++ b/src/Forms/MoneyField.php
@@ -18,7 +18,6 @@ class MoneyField extends FormField
 {
 
     // TODO replace with `FormField::SCHEMA_DATA_TYPE_TEXT` when MoneyField is implemented
-    /** @skipUpgrade */
     protected $schemaDataType = 'MoneyField';
 
     /**
diff --git a/src/Forms/OptionsetField.php b/src/Forms/OptionsetField.php
index 7c0e05d67..f07d6b08e 100644
--- a/src/Forms/OptionsetField.php
+++ b/src/Forms/OptionsetField.php
@@ -56,7 +56,6 @@ use SilverStripe\View\ArrayData;
  */
 class OptionsetField extends SingleSelectField
 {
-    /** @skipUpgrade */
     protected $schemaComponent = 'OptionsetField';
 
     /**
diff --git a/src/Forms/PopoverField.php b/src/Forms/PopoverField.php
index 0d6cb762f..9a1bdec25 100644
--- a/src/Forms/PopoverField.php
+++ b/src/Forms/PopoverField.php
@@ -18,7 +18,6 @@ class PopoverField extends FieldGroup
     /**
      * Use custom react component
      *
-     * @skipUpgrade
      * @var string
      */
     protected $schemaComponent = 'PopoverField';
diff --git a/src/Forms/TreeDropdownField.php b/src/Forms/TreeDropdownField.php
index 9ea404844..8c8af7be4 100644
--- a/src/Forms/TreeDropdownField.php
+++ b/src/Forms/TreeDropdownField.php
@@ -59,7 +59,6 @@ class TreeDropdownField extends FormField
 {
     protected $schemaDataType = self::SCHEMA_DATA_TYPE_SINGLESELECT;
 
-    /** @skipUpgrade */
     protected $schemaComponent = 'TreeDropdownField';
 
     private static $url_handlers = [
diff --git a/src/ORM/Connect/MySQLSchemaManager.php b/src/ORM/Connect/MySQLSchemaManager.php
index 2359d9461..bcab13413 100644
--- a/src/ORM/Connect/MySQLSchemaManager.php
+++ b/src/ORM/Connect/MySQLSchemaManager.php
@@ -16,7 +16,6 @@ class MySQLSchemaManager extends DBSchemaManager
      * Identifier for this schema, used for configuring schema-specific table
      * creation options
      *
-     * @skipUpgrade
      */
     const ID = 'MySQLDatabase';
 
diff --git a/src/ORM/DataObject.php b/src/ORM/DataObject.php
index b2d4ad017..c49a06c3b 100644
--- a/src/ORM/DataObject.php
+++ b/src/ORM/DataObject.php
@@ -3764,7 +3764,6 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
                     ? $labels[$identifier] : FormField::name_to_label($identifier);
             }
             if (!isset($rewrite[$identifier]['filter'])) {
-                /** @skipUpgrade */
                 $rewrite[$identifier]['filter'] = 'PartialMatchFilter';
             }
         }
@@ -3943,7 +3942,6 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
 
         foreach ($this->searchableFields() as $name => $spec) {
             if (empty($spec['filter'])) {
-                /** @skipUpgrade */
                 $filters[$name] = 'PartialMatchFilter';
             } elseif ($spec['filter'] instanceof SearchFilter) {
                 $filters[$name] = $spec['filter'];
diff --git a/src/ORM/FieldType/DBDatetime.php b/src/ORM/FieldType/DBDatetime.php
index 8c120f246..8668018a3 100644
--- a/src/ORM/FieldType/DBDatetime.php
+++ b/src/ORM/FieldType/DBDatetime.php
@@ -31,7 +31,6 @@ use SilverStripe\View\TemplateGlobalProvider;
  * </code>
  *
  * @todo Add localization support, see http://open.silverstripe.com/ticket/2931
- * @skipUpgrade
  */
 class DBDatetime extends DBDate implements TemplateGlobalProvider
 {
diff --git a/src/Security/CMSSecurity.php b/src/Security/CMSSecurity.php
index 1aedbcf69..290134d43 100644
--- a/src/Security/CMSSecurity.php
+++ b/src/Security/CMSSecurity.php
@@ -53,7 +53,6 @@ class CMSSecurity extends Security
 
     public function Link($action = null)
     {
-        /** @skipUpgrade */
         return Controller::join_links(Director::baseURL(), "CMSSecurity", $action);
     }
 
diff --git a/src/Security/DefaultAdminService.php b/src/Security/DefaultAdminService.php
index 9bde52abd..587b88c50 100644
--- a/src/Security/DefaultAdminService.php
+++ b/src/Security/DefaultAdminService.php
@@ -143,7 +143,6 @@ class DefaultAdminService
     /**
      * Find or create a Member with admin permissions
      *
-     * @skipUpgrade
      * @param string $email
      * @param string $name
      * @return Member
diff --git a/src/Security/Group.php b/src/Security/Group.php
index eb279e111..803170e42 100755
--- a/src/Security/Group.php
+++ b/src/Security/Group.php
@@ -119,7 +119,6 @@ class Group extends DataObject
      * Caution: Only call on instances, not through a singleton.
      * The "root group" fields will be created through {@link SecurityAdmin->EditForm()}.
      *
-     * @skipUpgrade
      * @return FieldList
      */
     public function getCMSFields()
@@ -167,7 +166,6 @@ class Group extends DataObject
 
             /** @var GridFieldAddExistingAutocompleter $autocompleter */
             $autocompleter = $config->getComponentByType(GridFieldAddExistingAutocompleter::class);
-            /** @skipUpgrade */
             $autocompleter
                 ->setResultsFormat('$Title ($Email)')
                 ->setSearchFields(['FirstName', 'Surname', 'Email']);
@@ -290,7 +288,6 @@ class Group extends DataObject
     /**
      * @param bool $includerelations Indicate if the labels returned include relation fields
      * @return array
-     * @skipUpgrade
      */
     public function fieldLabels($includerelations = true)
     {
diff --git a/src/Security/LoginAttempt.php b/src/Security/LoginAttempt.php
index 851cff825..95eb30f1e 100644
--- a/src/Security/LoginAttempt.php
+++ b/src/Security/LoginAttempt.php
@@ -51,7 +51,6 @@ class LoginAttempt extends DataObject
     private static $table_name = "LoginAttempt";
 
     /**
-     * @skipUpgrade
      * @param bool $includerelations Indicate if the labels returned include relation fields
      * @return array
      */
diff --git a/src/Security/Member.php b/src/Security/Member.php
index 0c6e4cddb..1e3262943 100644
--- a/src/Security/Member.php
+++ b/src/Security/Member.php
@@ -171,7 +171,6 @@ class Member extends DataObject
      *
      * @config
      * @var string
-     * @skipUpgrade
      */
     private static $unique_identifier_field = 'Email';
 
@@ -328,7 +327,6 @@ class Member extends DataObject
     /**
      * Returns true if this user is locked out
      *
-     * @skipUpgrade
      * @return bool
      */
     public function isLockedOut()
@@ -1221,7 +1219,6 @@ class Member extends DataObject
             }
 
             $permsClause = DB::placeholders($perms);
-            /** @skipUpgrade */
             $groups = Group::get()
                 ->innerJoin("Permission", '"Permission"."GroupID" = "Group"."ID"')
                 ->where([
@@ -1239,7 +1236,6 @@ class Member extends DataObject
             $groupIDList = $groups;
         }
 
-        /** @skipUpgrade */
         $members = static::get()
             ->innerJoin("Group_Members", '"Group_Members"."MemberID" = "Member"."ID"')
             ->innerJoin("Group", '"Group"."ID" = "Group_Members"."GroupID"');
@@ -1286,7 +1282,6 @@ class Member extends DataObject
      * Return a {@link FieldList} of fields that would appropriate for editing
      * this member.
      *
-     * @skipUpgrade
      * @return FieldList Return a FieldList of fields that would appropriate for
      *                   editing this member.
      */
@@ -1383,7 +1378,6 @@ class Member extends DataObject
 
         $labels['FirstName'] = _t(__CLASS__ . '.FIRSTNAME', 'First Name');
         $labels['Surname'] = _t(__CLASS__ . '.SURNAME', 'Surname');
-        /** @skipUpgrade */
         $labels['Email'] = _t(__CLASS__ . '.EMAIL', 'Email');
         $labels['Password'] = _t(__CLASS__ . '.db_Password', 'Password');
         $labels['PasswordExpiry'] = _t(
diff --git a/src/Security/MemberAuthenticator/CMSLoginHandler.php b/src/Security/MemberAuthenticator/CMSLoginHandler.php
index bcccce229..a9049224f 100644
--- a/src/Security/MemberAuthenticator/CMSLoginHandler.php
+++ b/src/Security/MemberAuthenticator/CMSLoginHandler.php
@@ -20,7 +20,6 @@ class CMSLoginHandler extends LoginHandler
     /**
      * Return the CMSMemberLoginForm form
      *
-     * @skipUpgrade
      * @return CMSMemberLoginForm
      */
     public function loginForm()
@@ -55,7 +54,6 @@ class CMSLoginHandler extends LoginHandler
     /**
      * Redirect the user to the change password form.
      *
-     * @skipUpgrade
      * @return HTTPResponse
      */
     protected function redirectToChangePassword()
diff --git a/src/Security/MemberAuthenticator/CMSMemberAuthenticator.php b/src/Security/MemberAuthenticator/CMSMemberAuthenticator.php
index 8cd76acae..467823b4d 100644
--- a/src/Security/MemberAuthenticator/CMSMemberAuthenticator.php
+++ b/src/Security/MemberAuthenticator/CMSMemberAuthenticator.php
@@ -18,7 +18,6 @@ class CMSMemberAuthenticator extends MemberAuthenticator
     }
 
     /**
-     * @skipUpgrade
      * @param array $data
      * @param ValidationResult|null $result
      * @param Member|null $member
diff --git a/src/Security/MemberAuthenticator/ChangePasswordHandler.php b/src/Security/MemberAuthenticator/ChangePasswordHandler.php
index fdd704e0a..43cc600fa 100644
--- a/src/Security/MemberAuthenticator/ChangePasswordHandler.php
+++ b/src/Security/MemberAuthenticator/ChangePasswordHandler.php
@@ -180,7 +180,6 @@ class ChangePasswordHandler extends RequestHandler
     /**
      * Factory method for the lost password form
      *
-     * @skipUpgrade
      * @return ChangePasswordForm Returns the lost password form
      */
     public function changePasswordForm()
diff --git a/src/Security/MemberAuthenticator/LoginHandler.php b/src/Security/MemberAuthenticator/LoginHandler.php
index 53edd3f7f..14b83f3d3 100644
--- a/src/Security/MemberAuthenticator/LoginHandler.php
+++ b/src/Security/MemberAuthenticator/LoginHandler.php
@@ -88,7 +88,6 @@ class LoginHandler extends RequestHandler
     /**
      * Return the MemberLoginForm form
      *
-     * @skipUpgrade
      * @return MemberLoginForm
      */
     public function loginForm()
@@ -138,7 +137,6 @@ class LoginHandler extends RequestHandler
 
         // Failed login
 
-        /** @skipUpgrade */
         if (array_key_exists('Email', $data ?? [])) {
             $rememberMe = (isset($data['Remember']) && Security::config()->get('autologin_enabled') === true);
             $this
@@ -253,7 +251,6 @@ class LoginHandler extends RequestHandler
     /**
      * Invoked if password is expired and must be changed
      *
-     * @skipUpgrade
      * @return HTTPResponse
      */
     protected function redirectToChangePassword()
diff --git a/src/Security/MemberAuthenticator/LostPasswordForm.php b/src/Security/MemberAuthenticator/LostPasswordForm.php
index 1d288300d..395f93b73 100644
--- a/src/Security/MemberAuthenticator/LostPasswordForm.php
+++ b/src/Security/MemberAuthenticator/LostPasswordForm.php
@@ -19,7 +19,6 @@ class LostPasswordForm extends MemberLoginForm
      * Create a single EmailField form that has the capability
      * of using the MemberLoginForm Authenticator
      *
-     * @skipUpgrade
      * @return FieldList
      */
     public function getFormFields()
diff --git a/src/Security/MemberAuthenticator/LostPasswordHandler.php b/src/Security/MemberAuthenticator/LostPasswordHandler.php
index 37e8b896b..a7a91a5b4 100644
--- a/src/Security/MemberAuthenticator/LostPasswordHandler.php
+++ b/src/Security/MemberAuthenticator/LostPasswordHandler.php
@@ -119,7 +119,6 @@ class LostPasswordHandler extends RequestHandler
     /**
      * Factory method for the lost password form
      *
-     * @skipUpgrade
      * @return Form Returns the lost password form
      */
     public function lostPasswordForm()
diff --git a/src/Security/MemberAuthenticator/MemberAuthenticator.php b/src/Security/MemberAuthenticator/MemberAuthenticator.php
index a1b7ef8d7..755d83c8d 100644
--- a/src/Security/MemberAuthenticator/MemberAuthenticator.php
+++ b/src/Security/MemberAuthenticator/MemberAuthenticator.php
@@ -57,7 +57,6 @@ class MemberAuthenticator implements Authenticator
     /**
      * Attempt to find and authenticate member if possible from the given data
      *
-     * @skipUpgrade
      * @param array $data Form submitted data
      * @param ValidationResult $result
      * @param Member $member This third parameter is used in the CMSAuthenticator(s)
@@ -186,7 +185,6 @@ class MemberAuthenticator implements Authenticator
         }
 
         // Check email is valid
-        /** @skipUpgrade */
         $email = isset($data['Email']) ? $data['Email'] : null;
         if (is_array($email)) {
             throw new InvalidArgumentException("Bad email passed to MemberAuthenticator::authenticate(): $email");
diff --git a/src/Security/MemberAuthenticator/MemberLoginForm.php b/src/Security/MemberAuthenticator/MemberLoginForm.php
index b605d73fa..1a31e55a2 100644
--- a/src/Security/MemberAuthenticator/MemberLoginForm.php
+++ b/src/Security/MemberAuthenticator/MemberLoginForm.php
@@ -52,7 +52,6 @@ class MemberLoginForm extends BaseLoginForm
     /**
      * Constructor
      *
-     * @skipUpgrade
      * @param RequestHandler $controller The parent controller, necessary to
      *                               create the appropriate form action tag.
      * @param string $authenticatorClass Authenticator for this LoginForm
@@ -119,7 +118,6 @@ class MemberLoginForm extends BaseLoginForm
     /**
      * Build the FieldList for the login form
      *
-     * @skipUpgrade
      * @return FieldList
      */
     protected function getFormFields()
diff --git a/src/Security/MemberCsvBulkLoader.php b/src/Security/MemberCsvBulkLoader.php
index 94db9a7ae..35c255d6a 100644
--- a/src/Security/MemberCsvBulkLoader.php
+++ b/src/Security/MemberCsvBulkLoader.php
@@ -29,7 +29,6 @@ class MemberCsvBulkLoader extends CsvBulkLoader
     }
 
     /**
-     * @skipUpgrade
      * @var array
      */
     public $duplicateChecks = [
diff --git a/src/Security/Member_Validator.php b/src/Security/Member_Validator.php
index fad841f44..af1f5448e 100644
--- a/src/Security/Member_Validator.php
+++ b/src/Security/Member_Validator.php
@@ -28,7 +28,6 @@ class Member_Validator extends RequiredFields
      * Fields that are required by this validator
      * @config
      * @var array
-     * @skipUpgrade
      */
     protected $customRequired = [
         'FirstName',
diff --git a/src/Security/Permission.php b/src/Security/Permission.php
index 91e21303f..8e1dad98f 100644
--- a/src/Security/Permission.php
+++ b/src/Security/Permission.php
@@ -475,7 +475,6 @@ class Permission extends DataObject implements TemplateGlobalProvider, Resettabl
         }
 
         $groupClause = DB::placeholders($groupIDs);
-        /** @skipUpgrade */
         $members = Member::get()
             ->where(["\"Group\".\"ID\" IN ($groupClause)" => $groupIDs])
             ->leftJoin("Group_Members", '"Member"."ID" = "Group_Members"."MemberID"')
@@ -495,7 +494,6 @@ class Permission extends DataObject implements TemplateGlobalProvider, Resettabl
         $codeClause = DB::placeholders($codeParams);
 
         // Via Roles are groups that have the permission via a role
-        /** @skipUpgrade */
         return Group::get()
             ->where([
                 "\"PermissionRoleCode\".\"Code\" IN ($codeClause) OR \"Permission\".\"Code\" IN ($codeClause)"
diff --git a/src/Security/Security.php b/src/Security/Security.php
index fd7a64ecf..882c9707a 100644
--- a/src/Security/Security.php
+++ b/src/Security/Security.php
@@ -459,7 +459,6 @@ class Security extends Controller implements TemplateGlobalProvider
      */
     public function Link($action = null)
     {
-        /** @skipUpgrade */
         $link = Controller::join_links(Director::baseURL(), "Security", $action);
         $this->extend('updateLink', $link, $action);
         return $link;
@@ -549,7 +548,6 @@ class Security extends Controller implements TemplateGlobalProvider
         /** @var Page $holderPage */
         $holderPage = Injector::inst()->create($pageClass);
         $holderPage->Title = $title;
-        /** @skipUpgrade */
         $holderPage->URLSegment = 'Security';
         // Disable ID-based caching  of the log-in page by making it a random number
         $holderPage->ID = -1 * random_int(1, 10000000);
@@ -770,7 +768,6 @@ class Security extends Controller implements TemplateGlobalProvider
     /**
      * Aggregate tabbed forms from each handler to fragments ready to be rendered.
      *
-     * @skipUpgrade
      * @param array $results
      * @return array
      */
@@ -1007,7 +1004,6 @@ class Security extends Controller implements TemplateGlobalProvider
     /**
      * Determine the list of templates to use for rendering the given action.
      *
-     * @skipUpgrade
      * @param string $action
      * @return array Template list
      */
diff --git a/tests/bootstrap/environment.php b/tests/bootstrap/environment.php
index fae3b1169..6e2353836 100644
--- a/tests/bootstrap/environment.php
+++ b/tests/bootstrap/environment.php
@@ -4,7 +4,6 @@
 
 use SilverStripe\Core\Environment;
 
-/** @skipUpgrade */
 if (!Environment::getEnv('SS_DATABASE_CLASS') && !Environment::getEnv('SS_DATABASE_USERNAME')) {
     // The default settings let us define the database config via environment vars
     // Database connection, including PDO and legacy ORM support
diff --git a/tests/php/Control/HTTPTest.php b/tests/php/Control/HTTPTest.php
index b81281555..ff83ea208 100644
--- a/tests/php/Control/HTTPTest.php
+++ b/tests/php/Control/HTTPTest.php
@@ -15,7 +15,6 @@ use SilverStripe\Dev\FunctionalTest;
 /**
  * Tests the {@link HTTP} class
  *
- * @skipUpgrade
  */
 class HTTPTest extends FunctionalTest
 {
diff --git a/tests/php/Control/RSS/RSSFeedTest.php b/tests/php/Control/RSS/RSSFeedTest.php
index 79ed01516..b9150f29d 100644
--- a/tests/php/Control/RSS/RSSFeedTest.php
+++ b/tests/php/Control/RSS/RSSFeedTest.php
@@ -83,9 +83,6 @@ class RSSFeedTest extends SapphireTest
         );
     }
 
-    /**
-     * @skipUpgrade
-     */
     public function testRenderWithTemplate()
     {
         $rssFeed = new RSSFeed(new ArrayList(), "", "", "");
diff --git a/tests/php/Control/RequestHandlingTest/ControllerFormWithAllowedActions.php b/tests/php/Control/RequestHandlingTest/ControllerFormWithAllowedActions.php
index 8b2364c3e..83a15d930 100644
--- a/tests/php/Control/RequestHandlingTest/ControllerFormWithAllowedActions.php
+++ b/tests/php/Control/RequestHandlingTest/ControllerFormWithAllowedActions.php
@@ -13,9 +13,6 @@ class ControllerFormWithAllowedActions extends Controller implements TestOnly
 
     private static $allowed_actions = ['Form'];
 
-    /**
-     * @skipUpgrade
-     */
     public function Form()
     {
         return new FormWithAllowedActions(
diff --git a/tests/php/Control/RequestHandlingTest/FormActionController.php b/tests/php/Control/RequestHandlingTest/FormActionController.php
index 024b5868f..7dd85f862 100644
--- a/tests/php/Control/RequestHandlingTest/FormActionController.php
+++ b/tests/php/Control/RequestHandlingTest/FormActionController.php
@@ -33,9 +33,6 @@ class FormActionController extends Controller implements TestOnly
         return 'disallowedcontrollermethod';
     }
 
-    /**
-     * @skipUpgrade
-     */
     public function Form()
     {
         return new Form(
diff --git a/tests/php/Core/Injector/InjectorTest.php b/tests/php/Core/Injector/InjectorTest.php
index 00ef77333..790d31f77 100644
--- a/tests/php/Core/Injector/InjectorTest.php
+++ b/tests/php/Core/Injector/InjectorTest.php
@@ -37,7 +37,6 @@ define('TEST_SERVICES', __DIR__ . '/AopProxyServiceTest');
  *
  * @author      marcus@silverstripe.com.au
  * @license     BSD License http://silverstripe.org/bsd-license/
- * @skipUpgrade
  */
 class InjectorTest extends SapphireTest
 {
diff --git a/tests/php/Core/Manifest/fixtures/namespaced_classmanifest/module/classes/ClassI.php b/tests/php/Core/Manifest/fixtures/namespaced_classmanifest/module/classes/ClassI.php
index 209e13ef3..0aca621c3 100644
--- a/tests/php/Core/Manifest/fixtures/namespaced_classmanifest/module/classes/ClassI.php
+++ b/tests/php/Core/Manifest/fixtures/namespaced_classmanifest/module/classes/ClassI.php
@@ -1,19 +1,12 @@
 <?php
-/** @skipUpgrade */
 namespace SilverStripe\Framework\Tests;
 
 //whitespace here is important for tests, please don't change it
-/** @skipUpgrade */
 use SilverStripe\ORM\DataQuery;
-/** @skipUpgrade */
 use SilverStripe\Control\Controller  as  Cont ;
-/** @skipUpgrade */
 use SilverStripe\Control\HTTPRequest as Request, SilverStripe\Control\HTTPResponse as Response, SilverStripe\Security\PermissionProvider as P;
-/** @skipUpgrade */
 use silverstripe\test\ClassA;
-/** @skipUpgrade */
 use \SilverStripe\Core\ClassInfo;
 
-/** @skipUpgrade */
 class ClassI extends DataQuery implements P {
 }
diff --git a/tests/php/Core/ObjectTest.php b/tests/php/Core/ObjectTest.php
index 5882eb0c1..bf1107586 100644
--- a/tests/php/Core/ObjectTest.php
+++ b/tests/php/Core/ObjectTest.php
@@ -26,7 +26,6 @@ use SilverStripe\Versioned\Versioned;
  * @todo tests for addStaticVars()
  * @todo tests for setting statics which are not defined on the object as built-in PHP statics
  * @todo tests for setting statics through extensions (#2387)
- * @skipUpgrade
  */
 class ObjectTest extends SapphireTest
 {
diff --git a/tests/php/Forms/CheckboxSetFieldTest.php b/tests/php/Forms/CheckboxSetFieldTest.php
index 16bb4ec8b..0eecc4192 100644
--- a/tests/php/Forms/CheckboxSetFieldTest.php
+++ b/tests/php/Forms/CheckboxSetFieldTest.php
@@ -174,7 +174,6 @@ class CheckboxSetFieldTest extends SapphireTest
         $tag2 = $this->objFromFixture(Tag::class, 'tag2');
 
         $field = new CheckboxSetField("Tags", "Test field", DataObject::get(Tag::class)->map());
-        /** @skipUpgrade */
         $form = new Form(
             Controller::curr(),
             'Form',
diff --git a/tests/php/Forms/ConfirmedPasswordFieldTest.php b/tests/php/Forms/ConfirmedPasswordFieldTest.php
index 990402db0..d6eeb1f45 100644
--- a/tests/php/Forms/ConfirmedPasswordFieldTest.php
+++ b/tests/php/Forms/ConfirmedPasswordFieldTest.php
@@ -53,7 +53,6 @@ class ConfirmedPasswordFieldTest extends SapphireTest
         $member->Password = "valueB";
         $member->write();
 
-        /** @skipUpgrade */
         $form = new Form(Controller::curr(), 'Form', new FieldList($field), new FieldList());
         $form->loadDataFrom($member);
 
@@ -137,7 +136,6 @@ class ConfirmedPasswordFieldTest extends SapphireTest
 
     public function testFormValidation()
     {
-        /** @skipUpgrade */
         $form = new Form(
             Controller::curr(),
             'Form',
diff --git a/tests/php/Forms/DateFieldDisabledTest.php b/tests/php/Forms/DateFieldDisabledTest.php
index b3f66b5c5..207c9b652 100644
--- a/tests/php/Forms/DateFieldDisabledTest.php
+++ b/tests/php/Forms/DateFieldDisabledTest.php
@@ -7,9 +7,6 @@ use SilverStripe\Forms\DateField_Disabled;
 use SilverStripe\i18n\i18n;
 use SilverStripe\ORM\FieldType\DBDatetime;
 
-/**
- * @skipUpgrade
- */
 class DateFieldDisabledTest extends SapphireTest
 {
     protected function setUp(): void
diff --git a/tests/php/Forms/DateFieldTest.php b/tests/php/Forms/DateFieldTest.php
index 9b05d1edd..d743d1ba2 100644
--- a/tests/php/Forms/DateFieldTest.php
+++ b/tests/php/Forms/DateFieldTest.php
@@ -12,9 +12,6 @@ use SilverStripe\i18n\i18n;
 use SilverStripe\ORM\FieldType\DBDate;
 use SilverStripe\ORM\FieldType\DBDatetime;
 
-/**
- * @skipUpgrade
- */
 class DateFieldTest extends SapphireTest
 {
     protected function setUp(): void
diff --git a/tests/php/Forms/DatetimeFieldTest.php b/tests/php/Forms/DatetimeFieldTest.php
index 75c3eae16..3f28a2515 100644
--- a/tests/php/Forms/DatetimeFieldTest.php
+++ b/tests/php/Forms/DatetimeFieldTest.php
@@ -520,7 +520,6 @@ class DatetimeFieldTest extends SapphireTest
 
     protected function getMockForm()
     {
-        /** @skipUpgrade */
         return new Form(
             Controller::curr(),
             'Form',
diff --git a/tests/php/Forms/DropdownFieldTest.php b/tests/php/Forms/DropdownFieldTest.php
index f150efeef..88603aa75 100644
--- a/tests/php/Forms/DropdownFieldTest.php
+++ b/tests/php/Forms/DropdownFieldTest.php
@@ -530,9 +530,6 @@ class DropdownFieldTest extends SapphireTest
         return $foundDisabled;
     }
 
-    /**
-     * @skipUpgrade
-     */
     public function testValidation()
     {
         $field = DropdownField::create(
diff --git a/tests/php/Forms/EmailFieldTest.php b/tests/php/Forms/EmailFieldTest.php
index 75e5e33de..76912d744 100644
--- a/tests/php/Forms/EmailFieldTest.php
+++ b/tests/php/Forms/EmailFieldTest.php
@@ -8,9 +8,6 @@ use Exception;
 use PHPUnit\Framework\AssertionFailedError;
 use SilverStripe\Forms\Tests\EmailFieldTest\TestValidator;
 
-/**
- * @skipUpgrade
- */
 class EmailFieldTest extends FunctionalTest
 {
 
diff --git a/tests/php/Forms/EmailFieldTest/TestController.php b/tests/php/Forms/EmailFieldTest/TestController.php
index 2277bdf1a..fd01418e3 100644
--- a/tests/php/Forms/EmailFieldTest/TestController.php
+++ b/tests/php/Forms/EmailFieldTest/TestController.php
@@ -12,9 +12,6 @@ use SilverStripe\Forms\FormAction;
 use SilverStripe\Forms\RequiredFields;
 use SilverStripe\View\SSViewer;
 
-/**
- * @skipUpgrade
- */
 class TestController extends Controller implements TestOnly
 {
     public function __construct()
@@ -35,7 +32,6 @@ class TestController extends Controller implements TestOnly
 
     public function Link($action = null)
     {
-        /** @skipUpgrade */
         return Controller::join_links(
             'EmailFieldTest_Controller',
             $this->getRequest()->latestParam('Action'),
diff --git a/tests/php/Forms/FieldListTest.php b/tests/php/Forms/FieldListTest.php
index 778266928..2718aaaf0 100644
--- a/tests/php/Forms/FieldListTest.php
+++ b/tests/php/Forms/FieldListTest.php
@@ -21,7 +21,6 @@ use SilverStripe\Forms\HiddenField;
 /**
  * Tests for FieldList
  *
- * @skipUpgrade
  * @todo        test for {@link FieldList->setValues()}. Need to check
  *  that the values that were set are the correct ones given back.
  * @todo        test for {@link FieldList->transform()} and {@link FieldList->makeReadonly()}.
diff --git a/tests/php/Forms/FileFieldTest.php b/tests/php/Forms/FileFieldTest.php
index dbfca54aa..f2f3a2c4f 100644
--- a/tests/php/Forms/FileFieldTest.php
+++ b/tests/php/Forms/FileFieldTest.php
@@ -16,7 +16,6 @@ class FileFieldTest extends FunctionalTest
     /**
      * Test a valid upload of a required file in a form. Error is set to 0, as the upload went well
      *
-     * @skipUpgrade
      */
     public function testUploadRequiredFile()
     {
@@ -101,9 +100,6 @@ class FileFieldTest extends FunctionalTest
         ];
     }
 
-    /**
-     * @skipUpgrade
-     */
     public function testGetAcceptFileTypes()
     {
         $field = new FileField('image', 'Image');
@@ -121,7 +117,6 @@ class FileFieldTest extends FunctionalTest
 
     /**
      * Test different scenarii for a failed upload : an error occurred, no files where provided
-     * @skipUpgrade
      */
     public function testUploadMissingRequiredFile()
     {
diff --git a/tests/php/Forms/FormFactoryTest/TestController.php b/tests/php/Forms/FormFactoryTest/TestController.php
index 9ddf3b725..603ec56d3 100644
--- a/tests/php/Forms/FormFactoryTest/TestController.php
+++ b/tests/php/Forms/FormFactoryTest/TestController.php
@@ -9,7 +9,6 @@ use SilverStripe\Versioned\Versioned;
 
 /**
  * Edit controller for this form
- * @skipUpgrade
  */
 class TestController extends Controller
 {
diff --git a/tests/php/Forms/FormRequestHandlerTest.php b/tests/php/Forms/FormRequestHandlerTest.php
index 5ce4b3120..a41c6bec8 100644
--- a/tests/php/Forms/FormRequestHandlerTest.php
+++ b/tests/php/Forms/FormRequestHandlerTest.php
@@ -14,9 +14,6 @@ use SilverStripe\Forms\Tests\FormRequestHandlerTest\TestForm;
 use SilverStripe\Forms\Tests\FormRequestHandlerTest\TestFormRequestHandler;
 use SilverStripe\Forms\TextField;
 
-/**
- * @skipUpgrade
- */
 class FormRequestHandlerTest extends SapphireTest
 {
     public function testCallsActionOnFormHandler()
diff --git a/tests/php/Forms/FormSchemaTest.php b/tests/php/Forms/FormSchemaTest.php
index f61c5648f..a23e09bb1 100644
--- a/tests/php/Forms/FormSchemaTest.php
+++ b/tests/php/Forms/FormSchemaTest.php
@@ -15,9 +15,6 @@ use SilverStripe\Forms\RequiredFields;
 use SilverStripe\Forms\FormAction;
 use SilverStripe\Forms\PopoverField;
 
-/**
- * @skipUpgrade
- */
 class FormSchemaTest extends SapphireTest
 {
     protected function setUp(): void
@@ -140,9 +137,6 @@ class FormSchemaTest extends SapphireTest
         $this->assertJsonStringEqualsJsonString(json_encode($expected), json_encode($state));
     }
 
-    /**
-     * @skipUpgrade
-     */
     public function testGetNestedSchema()
     {
         $form = new Form(
diff --git a/tests/php/Forms/FormTest.php b/tests/php/Forms/FormTest.php
index 34689f487..6a3712508 100644
--- a/tests/php/Forms/FormTest.php
+++ b/tests/php/Forms/FormTest.php
@@ -34,9 +34,6 @@ use SilverStripe\Security\SecurityToken;
 use SilverStripe\View\ArrayData;
 use SilverStripe\View\SSViewer;
 
-/**
- * @skipUpgrade
- */
 class FormTest extends FunctionalTest
 {
 
@@ -841,9 +838,6 @@ class FormTest extends FunctionalTest
         $this->assertEquals('bar', $attrs['foo']);
     }
 
-    /**
-     * @skipUpgrade
-     */
     public function testButtonClicked()
     {
         $form = $this->getStubForm();
diff --git a/tests/php/Forms/FormTest/ControllerWithSecurityToken.php b/tests/php/Forms/FormTest/ControllerWithSecurityToken.php
index 23597f65e..7c2c5dad3 100644
--- a/tests/php/Forms/FormTest/ControllerWithSecurityToken.php
+++ b/tests/php/Forms/FormTest/ControllerWithSecurityToken.php
@@ -10,9 +10,6 @@ use SilverStripe\Forms\FieldList;
 use SilverStripe\Forms\Form;
 use SilverStripe\Forms\FormAction;
 
-/**
- * @skipUpgrade
- */
 class ControllerWithSecurityToken extends Controller implements TestOnly
 {
 
diff --git a/tests/php/Forms/FormTest/ControllerWithSpecialSubmittedValueFields.php b/tests/php/Forms/FormTest/ControllerWithSpecialSubmittedValueFields.php
index 250924b6f..a39626d37 100644
--- a/tests/php/Forms/FormTest/ControllerWithSpecialSubmittedValueFields.php
+++ b/tests/php/Forms/FormTest/ControllerWithSpecialSubmittedValueFields.php
@@ -18,9 +18,6 @@ use SilverStripe\ORM\ValidationException;
 use SilverStripe\ORM\ValidationResult;
 use SilverStripe\View\SSViewer;
 
-/**
- * @skipUpgrade
- */
 class ControllerWithSpecialSubmittedValueFields extends Controller implements TestOnly
 {
     public function __construct()
diff --git a/tests/php/Forms/FormTest/ControllerWithStrictPostCheck.php b/tests/php/Forms/FormTest/ControllerWithStrictPostCheck.php
index 4b77e4264..ac1adc9cb 100644
--- a/tests/php/Forms/FormTest/ControllerWithStrictPostCheck.php
+++ b/tests/php/Forms/FormTest/ControllerWithStrictPostCheck.php
@@ -10,9 +10,6 @@ use SilverStripe\Forms\FieldList;
 use SilverStripe\Forms\Form;
 use SilverStripe\Forms\FormAction;
 
-/**
- * @skipUpgrade
- */
 class ControllerWithStrictPostCheck extends Controller implements TestOnly
 {
 
diff --git a/tests/php/Forms/FormTest/ExtraFieldsForm.php b/tests/php/Forms/FormTest/ExtraFieldsForm.php
index 18f622a71..8295e13f7 100644
--- a/tests/php/Forms/FormTest/ExtraFieldsForm.php
+++ b/tests/php/Forms/FormTest/ExtraFieldsForm.php
@@ -6,9 +6,6 @@ use SilverStripe\Dev\TestOnly;
 use SilverStripe\Forms\CheckboxField;
 use SilverStripe\Forms\Form;
 
-/**
- * @skipUpgrade
- */
 class ExtraFieldsForm extends Form implements TestOnly
 {
     public function getExtraFields()
diff --git a/tests/php/Forms/FormTest/Player.php b/tests/php/Forms/FormTest/Player.php
index 2710d53ca..d565a8880 100644
--- a/tests/php/Forms/FormTest/Player.php
+++ b/tests/php/Forms/FormTest/Player.php
@@ -5,9 +5,6 @@ namespace SilverStripe\Forms\Tests\FormTest;
 use SilverStripe\Dev\TestOnly;
 use SilverStripe\ORM\DataObject;
 
-/**
- * @skipUpgrade
- */
 class Player extends DataObject implements TestOnly
 {
 
diff --git a/tests/php/Forms/FormTest/Team.php b/tests/php/Forms/FormTest/Team.php
index 8f5cc0547..f29b7432e 100644
--- a/tests/php/Forms/FormTest/Team.php
+++ b/tests/php/Forms/FormTest/Team.php
@@ -7,7 +7,6 @@ use SilverStripe\ORM\DataObject;
 use SilverStripe\ORM\ManyManyList;
 
 /**
- * @skipUpgrade
  *
  * @method ManyManyList Players()
  */
diff --git a/tests/php/Forms/FormTest/TestController.php b/tests/php/Forms/FormTest/TestController.php
index fc75a9136..4e514d83d 100644
--- a/tests/php/Forms/FormTest/TestController.php
+++ b/tests/php/Forms/FormTest/TestController.php
@@ -17,9 +17,6 @@ use SilverStripe\ORM\ValidationException;
 use SilverStripe\ORM\ValidationResult;
 use SilverStripe\View\SSViewer;
 
-/**
- * @skipUpgrade
- */
 class TestController extends Controller implements TestOnly
 {
     public function __construct()
diff --git a/tests/php/Forms/GridField/GridFieldAddExistingAutocompleterTest.php b/tests/php/Forms/GridField/GridFieldAddExistingAutocompleterTest.php
index 771a2b536..c8b16e2ee 100644
--- a/tests/php/Forms/GridField/GridFieldAddExistingAutocompleterTest.php
+++ b/tests/php/Forms/GridField/GridFieldAddExistingAutocompleterTest.php
@@ -18,9 +18,6 @@ use SilverStripe\Forms\Tests\GridField\GridFieldTest\Stadium;
 use SilverStripe\Forms\Tests\GridField\GridFieldTest\Team;
 use SilverStripe\ORM\ArrayList;
 
-/**
- * @skipUpgrade
- */
 class GridFieldAddExistingAutocompleterTest extends FunctionalTest
 {
 
diff --git a/tests/php/Forms/GridField/GridFieldAddExistingAutocompleterTest/TestController.php b/tests/php/Forms/GridField/GridFieldAddExistingAutocompleterTest/TestController.php
index 191602fd6..4ac2620b8 100644
--- a/tests/php/Forms/GridField/GridFieldAddExistingAutocompleterTest/TestController.php
+++ b/tests/php/Forms/GridField/GridFieldAddExistingAutocompleterTest/TestController.php
@@ -12,9 +12,6 @@ use SilverStripe\Forms\GridField\GridFieldConfig;
 use SilverStripe\Forms\GridField\GridFieldDataColumns;
 use SilverStripe\Forms\Tests\GridField\GridFieldTest\Player;
 
-/**
- * @skipUpgrade
- */
 class TestController extends Controller implements TestOnly
 {
     public function __construct()
diff --git a/tests/php/Forms/GridField/GridFieldDataColumnsTest.php b/tests/php/Forms/GridField/GridFieldDataColumnsTest.php
index c508f8e72..5588dcf35 100644
--- a/tests/php/Forms/GridField/GridFieldDataColumnsTest.php
+++ b/tests/php/Forms/GridField/GridFieldDataColumnsTest.php
@@ -30,9 +30,6 @@ class GridFieldDataColumnsTest extends SapphireTest
     public function testGridFieldCustomDisplayFields()
     {
         $obj = new GridField('testfield', 'testfield', Member::get());
-        /**
- * @skipUpgrade
-*/
         $expected = ['Email' => 'Email'];
         $columns = $obj->getConfig()->getComponentByType(GridFieldDataColumns::class);
         $columns->setDisplayFields($expected);
diff --git a/tests/php/Forms/GridField/GridFieldDetailFormTest.php b/tests/php/Forms/GridField/GridFieldDetailFormTest.php
index 37027c628..8565a6f5d 100644
--- a/tests/php/Forms/GridField/GridFieldDetailFormTest.php
+++ b/tests/php/Forms/GridField/GridFieldDetailFormTest.php
@@ -18,9 +18,6 @@ use SilverStripe\Forms\Tests\GridField\GridFieldDetailFormTest\Person;
 use SilverStripe\Forms\Tests\GridField\GridFieldDetailFormTest\PolymorphicPeopleGroup;
 use SilverStripe\Forms\Tests\GridField\GridFieldDetailFormTest\TestController;
 
-/**
- * @skipUpgrade
- */
 class GridFieldDetailFormTest extends FunctionalTest
 {
     protected static $fixture_file = 'GridFieldDetailFormTest.yml';
@@ -396,7 +393,6 @@ class GridFieldDetailFormTest extends FunctionalTest
         );
         // Note: A lot of scaffolding to execute the tested logic,
         // due to the coupling of form creation with itemRequest handling (and its context)
-        /** @skipUpgrade */
         $itemRequest = new GridFieldDetailForm_ItemRequest(
             GridField::create('Categories', 'Categories'),
             $component,
diff --git a/tests/php/Forms/GridField/GridFieldDetailFormTest/CategoryController.php b/tests/php/Forms/GridField/GridFieldDetailFormTest/CategoryController.php
index e027704e0..9caeb6e6a 100644
--- a/tests/php/Forms/GridField/GridFieldDetailFormTest/CategoryController.php
+++ b/tests/php/Forms/GridField/GridFieldDetailFormTest/CategoryController.php
@@ -14,9 +14,6 @@ use SilverStripe\Forms\GridField\GridFieldEditButton;
 use SilverStripe\Forms\GridField\GridFieldToolbarHeader;
 use SilverStripe\Forms\TextField;
 
-/**
- * @skipUpgrade
- */
 class CategoryController extends Controller implements TestOnly
 {
     private static $allowed_actions = ['Form'];
@@ -53,14 +50,12 @@ class CategoryController extends Controller implements TestOnly
         $categoriesField->getConfig()->addComponent(new GridFieldEditButton());
 
         $favGroupsField = new GridField('testgroupsfield', 'testgroupsfield', $person->FavouriteGroups());
-        /** @skipUpgrade */
         $favGroupsField->getConfig()->addComponent(new GridFieldDetailForm($this, 'Form'));
         $favGroupsField->getConfig()->addComponent(new GridFieldToolbarHeader());
         $favGroupsField->getConfig()->addComponent(new GridFieldAddNewButton('toolbar-header-right'));
         $favGroupsField->getConfig()->addComponent(new GridFieldEditButton());
 
         $fields = new FieldList($categoriesField, $favGroupsField);
-        /** @skipUpgrade */
         return new Form($this, 'Form', $fields, new FieldList());
     }
 }
diff --git a/tests/php/Forms/GridField/GridFieldDetailFormTest/GroupController.php b/tests/php/Forms/GridField/GridFieldDetailFormTest/GroupController.php
index 79192680f..c6baa9018 100644
--- a/tests/php/Forms/GridField/GridFieldDetailFormTest/GroupController.php
+++ b/tests/php/Forms/GridField/GridFieldDetailFormTest/GroupController.php
@@ -12,9 +12,6 @@ use SilverStripe\Forms\GridField\GridFieldDetailForm;
 use SilverStripe\Forms\GridField\GridFieldEditButton;
 use SilverStripe\Forms\GridField\GridFieldToolbarHeader;
 
-/**
- * @skipUpgrade
- */
 class GroupController extends Controller implements TestOnly
 {
 
@@ -30,16 +27,10 @@ class GroupController extends Controller implements TestOnly
     public function Form()
     {
         $field = new GridField('testfield', 'testfield', PeopleGroup::get()->sort('Name'));
-        /**
- * @skipUpgrade
-*/
         $field->getConfig()->addComponent($gridFieldForm = new GridFieldDetailForm($this, 'Form'));
         $field->getConfig()->addComponent(new GridFieldToolbarHeader());
         $field->getConfig()->addComponent(new GridFieldAddNewButton('toolbar-header-right'));
         $field->getConfig()->addComponent(new GridFieldEditButton());
-        /**
- * @skipUpgrade
-*/
         return new Form($this, 'Form', new FieldList($field), new FieldList());
     }
 }
diff --git a/tests/php/Forms/GridField/GridFieldDetailFormTest/TestController.php b/tests/php/Forms/GridField/GridFieldDetailFormTest/TestController.php
index 1f81cfebe..f2dc36c7f 100644
--- a/tests/php/Forms/GridField/GridFieldDetailFormTest/TestController.php
+++ b/tests/php/Forms/GridField/GridFieldDetailFormTest/TestController.php
@@ -13,9 +13,6 @@ use SilverStripe\Forms\GridField\GridFieldEditButton;
 use SilverStripe\Forms\GridField\GridFieldToolbarHeader;
 use SilverStripe\Forms\GridField\GridFieldViewButton;
 
-/**
- * @skipUpgrade
- */
 class TestController extends Controller implements TestOnly
 {
     public function __construct()
@@ -47,12 +44,10 @@ class TestController extends Controller implements TestOnly
         $field->getConfig()->addComponent(new GridFieldAddNewButton('toolbar-header-right'));
         $field->getConfig()->addComponent(new GridFieldViewButton());
         $field->getConfig()->addComponent(new GridFieldEditButton());
-        /** @skipUpgrade */
         $gridFieldForm = new GridFieldDetailForm($this, 'Form');
         $gridFieldForm->setRedirectMissingRecords(true);
         $field->getConfig()->addComponent($gridFieldForm);
         $field->getConfig()->addComponent(new GridFieldEditButton());
-        /** @skipUpgrade */
         return new Form($this, 'Form', new FieldList($field), new FieldList());
     }
 }
diff --git a/tests/php/Forms/GridField/GridFieldFilterHeaderTest.php b/tests/php/Forms/GridField/GridFieldFilterHeaderTest.php
index 1081f90f3..9b4d616b8 100644
--- a/tests/php/Forms/GridField/GridFieldFilterHeaderTest.php
+++ b/tests/php/Forms/GridField/GridFieldFilterHeaderTest.php
@@ -64,7 +64,6 @@ class GridFieldFilterHeaderTest extends SapphireTest
     /**
      * Tests that the appropriate filter headers are generated
      *
-     * @skipUpgrade
      */
     public function testRenderHeaders()
     {
diff --git a/tests/php/Forms/GridField/GridFieldPrintButtonTest.php b/tests/php/Forms/GridField/GridFieldPrintButtonTest.php
index 59e73a494..3b5d5392d 100644
--- a/tests/php/Forms/GridField/GridFieldPrintButtonTest.php
+++ b/tests/php/Forms/GridField/GridFieldPrintButtonTest.php
@@ -43,7 +43,6 @@ class GridFieldPrintButtonTest extends SapphireTest
             ->addComponent(new GridFieldPaginator(10))
             ->addComponent($button);
         $gridField = new GridField('testfield', 'testfield', $list, $config);
-        /** @skipUpgrade */
         new Form(Controller::curr(), 'Form', new FieldList($gridField), new FieldList());
 
         // Printed data should ignore pagination limit
diff --git a/tests/php/Forms/GridField/GridFieldSortableHeaderTest.php b/tests/php/Forms/GridField/GridFieldSortableHeaderTest.php
index 0f4567cde..19315408f 100644
--- a/tests/php/Forms/GridField/GridFieldSortableHeaderTest.php
+++ b/tests/php/Forms/GridField/GridFieldSortableHeaderTest.php
@@ -32,7 +32,6 @@ class GridFieldSortableHeaderTest extends SapphireTest
     /**
      * Tests that the appropriate sortable headers are generated
      *
-     * @skipUpgrade
      */
     public function testRenderHeaders()
     {
diff --git a/tests/php/Forms/GridField/GridFieldTest.php b/tests/php/Forms/GridField/GridFieldTest.php
index e8694df32..1b33db759 100644
--- a/tests/php/Forms/GridField/GridFieldTest.php
+++ b/tests/php/Forms/GridField/GridFieldTest.php
@@ -225,7 +225,6 @@ class GridFieldTest extends SapphireTest
     }
 
     /**
-     * @skipUpgrade
      * @covers \SilverStripe\Forms\GridField\GridField::getColumns
      */
     public function testGetColumns()
@@ -249,7 +248,6 @@ class GridFieldTest extends SapphireTest
     }
 
     /**
-     * @skipUpgrade
      * @covers \SilverStripe\Forms\GridField\GridField::getColumnContent
      */
     public function testGetColumnContent()
@@ -264,7 +262,6 @@ class GridFieldTest extends SapphireTest
     }
 
     /**
-     * @skipUpgrade
      * @covers \SilverStripe\Forms\GridField\GridField::getColumnContent
      */
     public function testGetColumnContentBadArguments()
@@ -280,7 +277,6 @@ class GridFieldTest extends SapphireTest
     }
 
     /**
-     * @skipUpgrade
      * @covers \SilverStripe\Forms\GridField\GridField::getColumnAttributes
      */
     public function testGetColumnAttributesEmptyArray()
@@ -295,7 +291,6 @@ class GridFieldTest extends SapphireTest
     }
 
     /**
-     * @skipUpgrade
      * @covers \SilverStripe\Forms\GridField\GridField::getColumnAttributes
      */
     public function testGetColumnAttributes()
@@ -340,7 +335,6 @@ class GridFieldTest extends SapphireTest
     }
 
     /**
-     * @skipUpgrade
      * @covers \SilverStripe\Forms\GridField\GridField::getColumnMetadata
      */
     public function testGetColumnMetadata()
diff --git a/tests/php/Forms/GridField/GridFieldTest/Component.php b/tests/php/Forms/GridField/GridFieldTest/Component.php
index b4b3d210b..beb145e23 100644
--- a/tests/php/Forms/GridField/GridFieldTest/Component.php
+++ b/tests/php/Forms/GridField/GridFieldTest/Component.php
@@ -37,7 +37,6 @@ class Component implements GridField_ColumnProvider, GridField_ActionProvider, T
     }
 
     /**
-     * @skipUpgrade
      * @param GridField $gridField
      * @return array
      */
diff --git a/tests/php/Forms/GridField/GridField_URLHandlerTest/TestComponent.php b/tests/php/Forms/GridField/GridField_URLHandlerTest/TestComponent.php
index b3346e065..dea7ccc66 100644
--- a/tests/php/Forms/GridField/GridField_URLHandlerTest/TestComponent.php
+++ b/tests/php/Forms/GridField/GridField_URLHandlerTest/TestComponent.php
@@ -27,9 +27,6 @@ class TestComponent extends RequestHandler implements GridField_URLHandler
      */
     protected $gridField;
 
-    /**
-     * @skipUpgrade
-     */
     public function getURLHandlers($gridField)
     {
         return [
@@ -63,7 +60,6 @@ class TestComponent extends RequestHandler implements GridField_URLHandler
     }
 
     /**
-     * @skipUpgrade
      * @param GridField $gridField
      * @param HTTPRequest $request
      * @return Form
diff --git a/tests/php/Forms/GridField/GridField_URLHandlerTest/TestComponent_ItemRequest.php b/tests/php/Forms/GridField/GridField_URLHandlerTest/TestComponent_ItemRequest.php
index 0a000512c..fc7774ef1 100644
--- a/tests/php/Forms/GridField/GridField_URLHandlerTest/TestComponent_ItemRequest.php
+++ b/tests/php/Forms/GridField/GridField_URLHandlerTest/TestComponent_ItemRequest.php
@@ -41,7 +41,6 @@ class TestComponent_ItemRequest extends RequestHandler
 
     public function Form()
     {
-        /** @skipUpgrade */
         return new Form(
             $this,
             Form::DEFAULT_NAME,
diff --git a/tests/php/Forms/GridField/GridField_URLHandlerTest/TestController.php b/tests/php/Forms/GridField/GridField_URLHandlerTest/TestController.php
index 4c5da4ade..01792bc41 100644
--- a/tests/php/Forms/GridField/GridField_URLHandlerTest/TestController.php
+++ b/tests/php/Forms/GridField/GridField_URLHandlerTest/TestController.php
@@ -10,9 +10,6 @@ use SilverStripe\Forms\GridField\GridField;
 use SilverStripe\Forms\GridField\GridFieldConfig;
 use SilverStripe\ORM\ArrayList;
 
-/**
- * @skipUpgrade
- */
 class TestController extends Controller implements TestOnly
 {
     public function __construct()
@@ -31,7 +28,6 @@ class TestController extends Controller implements TestOnly
     private static $allowed_actions = ['Form'];
 
     /**
-     * @skipUpgrade
      * @return Form
      */
     public function Form()
diff --git a/tests/php/Forms/OptionsetFieldTest.php b/tests/php/Forms/OptionsetFieldTest.php
index 1bb196468..34142ec29 100644
--- a/tests/php/Forms/OptionsetFieldTest.php
+++ b/tests/php/Forms/OptionsetFieldTest.php
@@ -35,9 +35,6 @@ class OptionsetFieldTest extends SapphireTest
         );
     }
 
-    /**
-     * @skipUpgrade
-     */
     public function testValidation()
     {
         $field = OptionsetField::create(
diff --git a/tests/php/Forms/RequiredFieldsTest.php b/tests/php/Forms/RequiredFieldsTest.php
index 59b9bddc0..cb9b9fa1c 100644
--- a/tests/php/Forms/RequiredFieldsTest.php
+++ b/tests/php/Forms/RequiredFieldsTest.php
@@ -7,7 +7,6 @@ use SilverStripe\Forms\RequiredFields;
 
 /**
  * @todo Test the validation method php()
- * @skipUpgrade
  */
 class RequiredFieldsTest extends SapphireTest
 {
diff --git a/tests/php/ORM/DBClassNameTest.php b/tests/php/ORM/DBClassNameTest.php
index 1e9a6cdd8..4fc2f7825 100644
--- a/tests/php/ORM/DBClassNameTest.php
+++ b/tests/php/ORM/DBClassNameTest.php
@@ -7,9 +7,6 @@ use SilverStripe\ORM\DataObject;
 use SilverStripe\Dev\SapphireTest;
 use SilverStripe\ORM\FieldType\DBField;
 
-/**
- * @skipUpgrade
- */
 class DBClassNameTest extends SapphireTest
 {
 
diff --git a/tests/php/ORM/DBCompositeTest.php b/tests/php/ORM/DBCompositeTest.php
index 68acb97c9..cbad5910c 100644
--- a/tests/php/ORM/DBCompositeTest.php
+++ b/tests/php/ORM/DBCompositeTest.php
@@ -6,9 +6,6 @@ use SilverStripe\ORM\FieldType\DBMoney;
 use SilverStripe\ORM\DataObject;
 use SilverStripe\Dev\SapphireTest;
 
-/**
- * @skipUpgrade
- */
 class DBCompositeTest extends SapphireTest
 {
 
diff --git a/tests/php/ORM/DBDateTest.php b/tests/php/ORM/DBDateTest.php
index 6043c76be..d91360155 100644
--- a/tests/php/ORM/DBDateTest.php
+++ b/tests/php/ORM/DBDateTest.php
@@ -10,9 +10,6 @@ use SilverStripe\ORM\FieldType\DBDate;
 use SilverStripe\ORM\FieldType\DBDatetime;
 use SilverStripe\ORM\FieldType\DBField;
 
-/**
- * @skipUpgrade
- */
 class DBDateTest extends SapphireTest
 {
     protected $oldError = null;
diff --git a/tests/php/ORM/DataExtensionTest/PlayerExtension.php b/tests/php/ORM/DataExtensionTest/PlayerExtension.php
index 345bbf75b..bb5e53191 100644
--- a/tests/php/ORM/DataExtensionTest/PlayerExtension.php
+++ b/tests/php/ORM/DataExtensionTest/PlayerExtension.php
@@ -5,9 +5,6 @@ namespace SilverStripe\ORM\Tests\DataExtensionTest;
 use SilverStripe\Dev\TestOnly;
 use SilverStripe\ORM\DataExtension;
 
-/**
- * @skipUpgrade
- */
 class PlayerExtension extends DataExtension implements TestOnly
 {
 
diff --git a/tests/php/ORM/DataListTest.php b/tests/php/ORM/DataListTest.php
index d3f0f01a8..ebb13003a 100755
--- a/tests/php/ORM/DataListTest.php
+++ b/tests/php/ORM/DataListTest.php
@@ -27,9 +27,6 @@ use SilverStripe\ORM\Tests\DataObjectTest\TeamComment;
 use SilverStripe\ORM\Tests\DataObjectTest\ValidatedObject;
 use SilverStripe\ORM\Tests\ManyManyListTest\Category;
 
-/**
- * @skipUpgrade
- */
 class DataListTest extends SapphireTest
 {
 
@@ -1122,9 +1119,6 @@ class DataListTest extends SapphireTest
         $this->assertEquals(2, count($list->exclude('ID', $id) ?? []));
     }
 
-    /**
-     * @skipUpgrade
-     */
     public function testFilterByNull()
     {
         $list = Fan::get();
diff --git a/tests/php/ORM/DataObjectSchemaGenerationTest.php b/tests/php/ORM/DataObjectSchemaGenerationTest.php
index b8a3d30bc..391c782c2 100644
--- a/tests/php/ORM/DataObjectSchemaGenerationTest.php
+++ b/tests/php/ORM/DataObjectSchemaGenerationTest.php
@@ -27,9 +27,6 @@ class DataObjectSchemaGenerationTest extends SapphireTest
         parent::setUpBeforeClass();
     }
 
-    /**
-     * @skipUpgrade
-     */
     public function testTableCaseFixed()
     {
         DB::quiet();
@@ -194,7 +191,6 @@ class DataObjectSchemaGenerationTest extends SapphireTest
     /**
      * Tests the generation of the ClassName spec and ensure it's not unnecessarily influenced
      * by the order of classnames of existing records
-     * @skipUpgrade
      */
     public function testClassNameSpecGeneration()
     {
diff --git a/tests/php/ORM/DataObjectSchemaTest.php b/tests/php/ORM/DataObjectSchemaTest.php
index 8c18660eb..3e2f1d21a 100644
--- a/tests/php/ORM/DataObjectSchemaTest.php
+++ b/tests/php/ORM/DataObjectSchemaTest.php
@@ -25,7 +25,6 @@ use SilverStripe\ORM\Tests\DataObjectSchemaTest\WithRelation;
 /**
  * Tests schema inspection of DataObjects
  *
- * @skipUpgrade
  */
 class DataObjectSchemaTest extends SapphireTest
 {
diff --git a/tests/php/ORM/DataObjectTest.php b/tests/php/ORM/DataObjectTest.php
index e4617bb7c..493840301 100644
--- a/tests/php/ORM/DataObjectTest.php
+++ b/tests/php/ORM/DataObjectTest.php
@@ -950,9 +950,6 @@ class DataObjectTest extends SapphireTest
         $this->assertFalse($obj->isChanged('FirstName'));
     }
 
-    /**
-     * @skipUpgrade
-     */
     public function testIsChanged()
     {
         $obj = $this->objFromFixture(DataObjectTest\Player::class, 'captain1');
@@ -1707,9 +1704,6 @@ class DataObjectTest extends SapphireTest
         // Test invalid classes fail
         $this->expectException(\InvalidArgumentException::class);
         $this->expectExceptionMessage('Controller is not a valid subclass of DataObject');
-        /**
-         * @skipUpgrade
-         */
         $dataObject->newClassInstance('Controller');
     }
 
diff --git a/tests/php/ORM/DataQueryTest.php b/tests/php/ORM/DataQueryTest.php
index bbfa2ad82..aed3fa544 100644
--- a/tests/php/ORM/DataQueryTest.php
+++ b/tests/php/ORM/DataQueryTest.php
@@ -9,9 +9,6 @@ use SilverStripe\Dev\SapphireTest;
 use SilverStripe\ORM\Tests\DataQueryTest\ObjectE;
 use SilverStripe\Security\Member;
 
-/**
- * @skipUpgrade
- */
 class DataQueryTest extends SapphireTest
 {
 
diff --git a/tests/php/ORM/DatabaseTest.php b/tests/php/ORM/DatabaseTest.php
index 6c527bace..a1cda42b4 100644
--- a/tests/php/ORM/DatabaseTest.php
+++ b/tests/php/ORM/DatabaseTest.php
@@ -10,9 +10,6 @@ use Exception;
 use SilverStripe\ORM\Queries\SQLSelect;
 use SilverStripe\ORM\Tests\DatabaseTest\MyObject;
 
-/**
- * @skipUpgrade
-*/
 class DatabaseTest extends SapphireTest
 {
 
diff --git a/tests/php/ORM/MySQLDatabaseTest.php b/tests/php/ORM/MySQLDatabaseTest.php
index 44ff7be28..00f7ec961 100644
--- a/tests/php/ORM/MySQLDatabaseTest.php
+++ b/tests/php/ORM/MySQLDatabaseTest.php
@@ -9,9 +9,6 @@ use SilverStripe\ORM\Connect\MySQLiConnector;
 use SilverStripe\ORM\Queries\SQLUpdate;
 use SilverStripe\Dev\SapphireTest;
 
-/**
- * @skipUpgrade
- */
 class MySQLDatabaseTest extends SapphireTest
 {
 
diff --git a/tests/php/Security/BasicAuthTest.php b/tests/php/Security/BasicAuthTest.php
index 94d8b7af1..eefb4c7f9 100644
--- a/tests/php/Security/BasicAuthTest.php
+++ b/tests/php/Security/BasicAuthTest.php
@@ -13,9 +13,6 @@ use SilverStripe\Security\Tests\BasicAuthTest\ControllerNotSecured;
 use SilverStripe\Security\Tests\BasicAuthTest\ControllerSecuredWithoutPermission;
 use SilverStripe\Security\Tests\BasicAuthTest\ControllerSecuredWithPermission;
 
-/**
- * @skipUpgrade
- */
 class BasicAuthTest extends FunctionalTest
 {
     protected static $fixture_file = 'BasicAuthTest.yml';
diff --git a/tests/php/Security/BasicAuthTest/ControllerNotSecured.php b/tests/php/Security/BasicAuthTest/ControllerNotSecured.php
index 41c6e6ba2..f800ed3f4 100644
--- a/tests/php/Security/BasicAuthTest/ControllerNotSecured.php
+++ b/tests/php/Security/BasicAuthTest/ControllerNotSecured.php
@@ -5,9 +5,6 @@ namespace SilverStripe\Security\Tests\BasicAuthTest;
 use SilverStripe\Control\Controller;
 use SilverStripe\Dev\TestOnly;
 
-/**
- * @skipUpgrade
- */
 class ControllerNotSecured extends Controller implements TestOnly
 {
     protected $template = 'BlankPage';
diff --git a/tests/php/Security/BasicAuthTest/ControllerSecuredWithPermission.php b/tests/php/Security/BasicAuthTest/ControllerSecuredWithPermission.php
index b3fadfa38..4d9c64d0b 100644
--- a/tests/php/Security/BasicAuthTest/ControllerSecuredWithPermission.php
+++ b/tests/php/Security/BasicAuthTest/ControllerSecuredWithPermission.php
@@ -5,9 +5,6 @@ namespace SilverStripe\Security\Tests\BasicAuthTest;
 use SilverStripe\Control\Controller;
 use SilverStripe\Dev\TestOnly;
 
-/**
- * @skipUpgrade
- */
 class ControllerSecuredWithPermission extends Controller implements TestOnly
 {
     protected $template = 'BlankPage';
diff --git a/tests/php/Security/BasicAuthTest/ControllerSecuredWithoutPermission.php b/tests/php/Security/BasicAuthTest/ControllerSecuredWithoutPermission.php
index 39673c589..52b80f25d 100644
--- a/tests/php/Security/BasicAuthTest/ControllerSecuredWithoutPermission.php
+++ b/tests/php/Security/BasicAuthTest/ControllerSecuredWithoutPermission.php
@@ -5,9 +5,6 @@ namespace SilverStripe\Security\Tests\BasicAuthTest;
 use SilverStripe\Control\Controller;
 use SilverStripe\Dev\TestOnly;
 
-/**
- * @skipUpgrade
- */
 class ControllerSecuredWithoutPermission extends Controller implements TestOnly
 {
     protected $template = 'BlankPage';
diff --git a/tests/php/Security/GroupTest.php b/tests/php/Security/GroupTest.php
index ae4f8f34e..76f627074 100644
--- a/tests/php/Security/GroupTest.php
+++ b/tests/php/Security/GroupTest.php
@@ -45,9 +45,6 @@ class GroupTest extends FunctionalTest
         $this->assertNull($g3->Code, 'Default title doesnt trigger attribute setting');
     }
 
-    /**
-     * @skipUpgrade
-     */
     public function testMemberGroupRelationForm()
     {
         $this->logInAs($this->idFromFixture(TestMember::class, 'admin'));
diff --git a/tests/php/Security/MemberAuthenticatorTest.php b/tests/php/Security/MemberAuthenticatorTest.php
index 3ce390e80..53db67188 100644
--- a/tests/php/Security/MemberAuthenticatorTest.php
+++ b/tests/php/Security/MemberAuthenticatorTest.php
@@ -21,9 +21,6 @@ use SilverStripe\Security\MemberAuthenticator\MemberLoginForm;
 use SilverStripe\Security\PasswordValidator;
 use SilverStripe\Security\Security;
 
-/**
- * @skipUpgrade
- */
 class MemberAuthenticatorTest extends SapphireTest
 {
 
diff --git a/tests/php/Security/MemberTest.php b/tests/php/Security/MemberTest.php
index 53e1875b4..18aa85174 100644
--- a/tests/php/Security/MemberTest.php
+++ b/tests/php/Security/MemberTest.php
@@ -60,9 +60,6 @@ class MemberTest extends FunctionalTest
         ]);
     }
 
-    /**
-     * @skipUpgrade
-     */
     protected function setUp(): void
     {
         parent::setUp();
@@ -859,9 +856,6 @@ class MemberTest extends FunctionalTest
         $member = Member::singleton();
         $fields = $member->getCMSFields();
 
-        /**
-         * @skipUpgrade
-         */
         $this->assertNotNull($fields->dataFieldByName('Email'), 'Scaffolded fields are retained');
         $this->assertNull($fields->dataFieldByName('Salt'), 'Field modifications run correctly');
         $this->assertNotNull($fields->dataFieldByName('TestMemberField'), 'Extension is applied correctly');
diff --git a/tests/php/Security/MemberTest/ValidatorForm.php b/tests/php/Security/MemberTest/ValidatorForm.php
index a5aebabd2..969983121 100644
--- a/tests/php/Security/MemberTest/ValidatorForm.php
+++ b/tests/php/Security/MemberTest/ValidatorForm.php
@@ -9,9 +9,6 @@ use SilverStripe\Forms\Form;
 use SilverStripe\Forms\FormAction;
 use SilverStripe\Forms\TextField;
 
-/**
- * @skipUpgrade
- */
 class ValidatorForm extends Form implements TestOnly
 {
 
diff --git a/tests/php/Security/PermissionCheckboxSetFieldTest.php b/tests/php/Security/PermissionCheckboxSetFieldTest.php
index c7b403c69..5aa3f4830 100644
--- a/tests/php/Security/PermissionCheckboxSetFieldTest.php
+++ b/tests/php/Security/PermissionCheckboxSetFieldTest.php
@@ -8,9 +8,6 @@ use SilverStripe\Security\Permission;
 use SilverStripe\Security\PermissionCheckboxSetField;
 use SilverStripe\Dev\SapphireTest;
 
-/**
- * @skipUpgrade
- */
 class PermissionCheckboxSetFieldTest extends SapphireTest
 {
     protected static $fixture_file = 'PermissionCheckboxSetFieldTest.yml';
diff --git a/tests/php/Security/PermissionTest.php b/tests/php/Security/PermissionTest.php
index 265e71ad8..6be7a44d2 100644
--- a/tests/php/Security/PermissionTest.php
+++ b/tests/php/Security/PermissionTest.php
@@ -9,9 +9,6 @@ use SilverStripe\Security\PermissionCheckboxSetField;
 use SilverStripe\Core\Config\Config;
 use SilverStripe\Dev\SapphireTest;
 
-/**
- * @skipUpgrade
- */
 class PermissionTest extends SapphireTest
 {
 
diff --git a/tests/php/Security/SecurityTest.php b/tests/php/Security/SecurityTest.php
index ec3d67233..bad715f7b 100644
--- a/tests/php/Security/SecurityTest.php
+++ b/tests/php/Security/SecurityTest.php
@@ -29,7 +29,6 @@ use SilverStripe\Security\SecurityToken;
 /**
  * Test the security class, including log-in form, change password form, etc
  *
- * @skipUpgrade
  */
 class SecurityTest extends FunctionalTest
 {
@@ -59,9 +58,6 @@ class SecurityTest extends FunctionalTest
             ],
         ]);
 
-        /**
-         * @skipUpgrade
-         */
         Member::config()->set('unique_identifier_field', 'Email');
 
         PasswordValidator::config()
@@ -695,9 +691,6 @@ class SecurityTest extends FunctionalTest
 
         // Assumption: The database has been built correctly by the test runner,
         // and has all columns present in the ORM
-        /**
-         * @skipUpgrade
-         */
         DB::get_schema()->renameField('Member', 'Email', 'Email_renamed');
 
         // Email column is now missing, which means we're not ready to do permission checks
diff --git a/tests/php/Security/SecurityTest/NullController.php b/tests/php/Security/SecurityTest/NullController.php
index f6387944e..7f273ebf5 100644
--- a/tests/php/Security/SecurityTest/NullController.php
+++ b/tests/php/Security/SecurityTest/NullController.php
@@ -6,9 +6,6 @@ use SilverStripe\Control\Controller;
 use SilverStripe\Control\HTTPResponse;
 use SilverStripe\Dev\TestOnly;
 
-/**
- * @skipUpgrade
- */
 class NullController extends Controller implements TestOnly
 {
 
diff --git a/tests/php/Security/SecurityTest/SecuredController.php b/tests/php/Security/SecurityTest/SecuredController.php
index 5e364026e..fa5f24ff0 100644
--- a/tests/php/Security/SecurityTest/SecuredController.php
+++ b/tests/php/Security/SecurityTest/SecuredController.php
@@ -7,9 +7,6 @@ use SilverStripe\Dev\TestOnly;
 use SilverStripe\Security\Permission;
 use SilverStripe\Security\Security;
 
-/**
- * @skipUpgrade
- */
 class SecuredController extends Controller implements TestOnly
 {
     private static $allowed_actions = ['index'];
diff --git a/tests/php/Security/VersionedMemberAuthenticatorTest.php b/tests/php/Security/VersionedMemberAuthenticatorTest.php
index da1baac7c..a26931567 100644
--- a/tests/php/Security/VersionedMemberAuthenticatorTest.php
+++ b/tests/php/Security/VersionedMemberAuthenticatorTest.php
@@ -22,9 +22,6 @@ use SilverStripe\Security\PasswordValidator;
 use SilverStripe\Security\Security;
 use SilverStripe\Versioned\Versioned;
 
-/**
- * @skipUpgrade
- */
 class VersionedMemberAuthenticatorTest extends SapphireTest
 {
 
diff --git a/tests/php/View/RequirementsTest.php b/tests/php/View/RequirementsTest.php
index d4569331e..388927233 100644
--- a/tests/php/View/RequirementsTest.php
+++ b/tests/php/View/RequirementsTest.php
@@ -21,7 +21,6 @@ use SilverStripe\View\ThemeResourceLoader;
 /**
  * @todo Test that order of combine_files() is correct
  * @todo Figure out how to clear the modified state of Requirements class - might affect other tests.
- * @skipUpgrade
  */
 class RequirementsTest extends SapphireTest
 {
diff --git a/tests/php/View/SSViewerTest.php b/tests/php/View/SSViewerTest.php
index 1eca6e36e..457c64b98 100644
--- a/tests/php/View/SSViewerTest.php
+++ b/tests/php/View/SSViewerTest.php
@@ -34,9 +34,6 @@ use SilverStripe\View\Tests\SSViewerTest\SSViewerTestModelController;
 use SilverStripe\View\Tests\SSViewerTest\TestViewableData;
 use SilverStripe\View\ViewableData;
 
-/**
- * @skipUpgrade
- */
 class SSViewerTest extends SapphireTest
 {
 
diff --git a/tests/php/i18n/i18nTestManifest.php b/tests/php/i18n/i18nTestManifest.php
index b08c91a54..c345a2166 100644
--- a/tests/php/i18n/i18nTestManifest.php
+++ b/tests/php/i18n/i18nTestManifest.php
@@ -69,9 +69,6 @@ trait i18nTestManifest
      */
     protected $originalLocale = null;
 
-    /**
-     * @skipUpgrade
-     */
     public function setupManifest()
     {
         // force SSViewer_DataPresenter to cache global template vars before we switch to the