From 7c5f29ce19a807bab204a00f720ef3a631106c48 Mon Sep 17 00:00:00 2001 From: micmania1 Date: Thu, 3 Mar 2016 22:38:37 +0000 Subject: [PATCH 01/15] Removed dependency for translatable module --- code/controllers/CMSPageAddController.php | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/code/controllers/CMSPageAddController.php b/code/controllers/CMSPageAddController.php index 19e2441b..5b19b7c5 100644 --- a/code/controllers/CMSPageAddController.php +++ b/code/controllers/CMSPageAddController.php @@ -91,7 +91,7 @@ class CMSPageAddController extends CMSPageEditController { // TODO Re-enable search once it allows for HTML title display, // see http://open.silverstripe.org/ticket/7455 // $parentField->setShowSearch(true); - + $parentModeField->addExtraClass('parent-mode'); // CMSMain->currentPageID() automatically sets the homepage, @@ -102,7 +102,7 @@ class CMSPageAddController extends CMSPageEditController { } else { $parentModeField->setValue('top'); } - + $actions = new FieldList( FormAction::create("doAdd", _t('CMSMain.Create',"Create")) ->addExtraClass('ss-ui-action-constructive')->setAttribute('data-icon', 'accept') @@ -111,9 +111,9 @@ class CMSPageAddController extends CMSPageEditController { ->addExtraClass('ss-ui-action-destructive ss-ui-action-cancel') ->setUseButtonTag(true) ); - + $this->extend('updatePageOptions', $fields); - + $form = CMSForm::create( $this, "AddForm", $fields, $actions )->setHTMLID('Form_AddForm'); @@ -140,7 +140,7 @@ class CMSPageAddController extends CMSPageEditController { if(is_numeric($parentID) && $parentID > 0) $parentObj = DataObject::get_by_id("SiteTree", $parentID); else $parentObj = null; - + if(!$parentObj || !$parentObj->ID) $parentID = 0; if(!singleton($className)->canCreate(Member::currentUser(), array('Parent' => $parentObj))) { @@ -148,9 +148,7 @@ class CMSPageAddController extends CMSPageEditController { } $record = $this->getNewItem("new-$className-$parentID".$suffix, false); - if(class_exists('Translatable') && $record->hasExtension('Translatable') && isset($data['Locale'])) { - $record->Locale = $data['Locale']; - } + $this->extend('updateDoAdd', $record, $form); try { $record->write(); @@ -167,7 +165,7 @@ class CMSPageAddController extends CMSPageEditController { _t('CMSMain.PageAdded', 'Successfully created page') ); Session::set("FormInfo.Form_EditForm.formError.type", 'good'); - + return $this->redirect(Controller::join_links(singleton('CMSPageEditController')->Link('show'), $record->ID)); } From 397f9670b57ff8993b257dbeb970eb4f97b6a128 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Fri, 4 Mar 2016 16:57:49 +1300 Subject: [PATCH 02/15] Fixed core release constraint in travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 17c8f02b..5c0290af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ addons: env: global: - - CORE_RELEASE=3 + - CORE_RELEASE=3.3 - "ARTIFACTS_AWS_REGION=us-east-1" - "ARTIFACTS_S3_BUCKET=silverstripe-travis-artifacts" - secure: "7V20Qk3bIG2AlTJaA5D/uzB8vUVvRwQp+xjRYUxlahtj9FcuqEV3HIyjwwJe0T6Z1bnRYuu28ZnCT2CfP9BBZ3FE7AwSZbPase9c0/at2qDJNqkvIdC1xZ1H6Fcy2LSwNB9wLQPe613ItVdanitEuwE41iowxBPslxUUTnwx7eY=" From 859fd5562ff56e708528bc8faa431afe316dc469 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 7 Mar 2016 08:48:02 +1300 Subject: [PATCH 03/15] Behat "insert link" regression See 361c9a03fe62431ea9f3fda200df80470334835f --- tests/behat/features/insert-a-link.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/behat/features/insert-a-link.feature b/tests/behat/features/insert-a-link.feature index f2334406..d3d51141 100644 --- a/tests/behat/features/insert-a-link.feature +++ b/tests/behat/features/insert-a-link.feature @@ -54,7 +54,7 @@ So that I can link to a external website or a page on my site When I select the "Download a file" radio button And I attach the file "testfile.jpg" to "file[Uploads][]" with HTML5 And I press the "Insert link" button - Then the "Content" HTML field should contain "awesome" + Then the "Content" HTML field should contain "awesome" # Required to avoid "unsaved changes" browser dialog Then I press the "Save draft" button # Check that the field is reset when adding another new link From e6078be52e550402ee8250941f86ea8b88b03a35 Mon Sep 17 00:00:00 2001 From: Andrew Mc Cormack Date: Mon, 7 Mar 2016 20:37:29 +0000 Subject: [PATCH 04/15] Update SiteTree.php Minor type fix --- code/model/SiteTree.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/model/SiteTree.php b/code/model/SiteTree.php index bfa3f5d1..8094a165 100755 --- a/code/model/SiteTree.php +++ b/code/model/SiteTree.php @@ -1531,7 +1531,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid $fieldsIgnoredByVersioning = array('HasBrokenLink', 'Status', 'HasBrokenFile', 'ToDo', 'VersionID', 'SaveCount'); $changedFields = array_keys($this->getChangedFields(true, 2)); - // This more rigorous check is inline with the test that write() does to dedcide whether or not to write to the + // This more rigorous check is inline with the test that write() does to decide whether or not to write to the // DB. We use that to avoid cluttering the system with a migrateVersion() call that doesn't get used $oneChangedFields = array_keys($this->getChangedFields(true, 1)); From 036420470da5def5c8e45c94601d3494273d476c Mon Sep 17 00:00:00 2001 From: Loz Calver Date: Tue, 8 Mar 2016 15:00:29 +0000 Subject: [PATCH 05/15] FIX: Incorrect title attribute on CMS tabs --- templates/Includes/CMSMain_Content.ss | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/templates/Includes/CMSMain_Content.ss b/templates/Includes/CMSMain_Content.ss index 27104f0f..5f4afae6 100644 --- a/templates/Includes/CMSMain_Content.ss +++ b/templates/Includes/CMSMain_Content.ss @@ -8,18 +8,18 @@
From bc31d9ca9c667ba9015e35d5eae20158056a7b7c Mon Sep 17 00:00:00 2001 From: Daniel Hensby Date: Thu, 10 Mar 2016 16:38:42 +0000 Subject: [PATCH 06/15] FIX Use `Controller::join_links()` in Reports --- code/reports/BrokenLinksReport.php | 2 +- code/reports/SideReport.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/reports/BrokenLinksReport.php b/code/reports/BrokenLinksReport.php index 5cdf46cb..bf313048 100644 --- a/code/reports/BrokenLinksReport.php +++ b/code/reports/BrokenLinksReport.php @@ -104,7 +104,7 @@ class BrokenLinksReport extends SS_Report { $stageLink = $item->AbsoluteLink(); return sprintf('%s %s', $stageLink, - $liveLink ? $liveLink : $stageLink . '?stage=Stage', + $liveLink ? $liveLink : Controller::join_links($stageLink, '?stage=Stage'), $liveLink ? '(live)' : '(draft)' ); } diff --git a/code/reports/SideReport.php b/code/reports/SideReport.php index c1b2fde0..0a7dec88 100644 --- a/code/reports/SideReport.php +++ b/code/reports/SideReport.php @@ -92,8 +92,8 @@ class SideReportView extends ViewableData { } if(isset($info['link']) && $info['link']) { - $linkBase = singleton('CMSPageEditController')->Link('show') . '/'; - $link = ($info['link'] === true) ? $linkBase . $record->ID : $info['link']; + $linkBase = singleton('CMSPageEditController')->Link('show'); + $link = ($info['link'] === true) ? Controller::join_links($linkBase, $record->ID) : $info['link']; return $prefix . "$val"; } else { return $prefix . "$val"; From d247a99769c520cc8ca0a98d815ee82aaef99a23 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Mon, 14 Mar 2016 10:32:12 +1300 Subject: [PATCH 07/15] Revert "FIX: Incorrect title attribute on CMS tabs" --- templates/Includes/CMSMain_Content.ss | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/templates/Includes/CMSMain_Content.ss b/templates/Includes/CMSMain_Content.ss index 5f4afae6..27104f0f 100644 --- a/templates/Includes/CMSMain_Content.ss +++ b/templates/Includes/CMSMain_Content.ss @@ -8,18 +8,18 @@
From 68694c01b7a825970be978bd66164fd3bf034ce8 Mon Sep 17 00:00:00 2001 From: Jake Bentvelzen Date: Tue, 15 Mar 2016 10:48:46 +1100 Subject: [PATCH 08/15] Added readonly version of SiteTreeURLSegmentFiled, small quality of life thing when a user is looking at readonly data and wants to easily view the frontend of that page. --- code/forms/SiteTreeURLSegmentField.php | 23 ++++++++++++++++++++++ templates/forms/SiteTreeURLSegmentField.ss | 8 +++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/code/forms/SiteTreeURLSegmentField.php b/code/forms/SiteTreeURLSegmentField.php index 0ea7d87c..3e4a63ea 100644 --- a/code/forms/SiteTreeURLSegmentField.php +++ b/code/forms/SiteTreeURLSegmentField.php @@ -133,4 +133,27 @@ class SiteTreeURLSegmentField extends TextField { return Controller::join_links($this->getURLPrefix(), $this->Value(), $this->getURLSuffix()); } + public function performReadonlyTransformation() { + $newInst = parent::performReadonlyTransformation(); + $newInst->helpText = $this->helpText; + $newInst->urlPrefix = $this->urlPrefix; + $newInst->urlSuffix = $this->urlSuffix; + $newInst->defaultUrl = $this->defaultUrl; + return $newInst; + } +} + + +/** + * Readonly version of a site tree URL segment field + * + * @package forms + * @subpackage fields-basic + */ +class SiteTreeURLSegmentField_Readonly extends SiteTreeURLSegmentField { + protected $readonly = true; + + public function performReadonlyTransformation() { + return clone $this; + } } diff --git a/templates/forms/SiteTreeURLSegmentField.ss b/templates/forms/SiteTreeURLSegmentField.ss index 57effe1f..c7fbfce9 100644 --- a/templates/forms/SiteTreeURLSegmentField.ss +++ b/templates/forms/SiteTreeURLSegmentField.ss @@ -2,9 +2,11 @@ $URL - + <% if not $IsReadonly %> + + <% end_if %>
From 0e47583c9a2a633de164e0c4214a3d2be066bb65 Mon Sep 17 00:00:00 2001 From: Jonathon Menz Date: Tue, 15 Mar 2016 12:07:20 -0700 Subject: [PATCH 09/15] Remove redundant CSS StripThumbnail now provides icon for all file types --- css/screen.css | 4 +--- scss/_AssetAdmin.scss | 14 ++------------ 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/css/screen.css b/css/screen.css index ea2af2f1..9c460617 100644 --- a/css/screen.css +++ b/css/screen.css @@ -1,7 +1,7 @@ /** This file is the central collection of included modules, links to custom SCSS files, and any global SCSS variable definitions. DO NOT ADD stylesheet rules to this file directly! Note: By prefixing files with an underscore, they won't create individual CSS files. */ /** ----------------------------- Core Compass Libraries ------------------------------ */ /** ----------------------------- CMS Components ------------------------------ */ -/** Style custom to the CMSMain admin interface. CMSMain extends the built in SilverStripe admin section styles. As much as possible we want to use those built in styles. If anything in this file can be implemented in a generic way then it should be include in the admin scss files. @package cms */ +/** Style custom to the CMSMain admin interface. CMSMain extends the built in SilverStripe admin section styles. As much as possible we want to use those built in styles. If anything in this file can be implemented in a generic way then it should be include in the admin scss files. @package cms */ /** ------------------------------------------------------------------ Page History Section. ----------------------------------------------------------------- */ #cms-page-history-versions tr.loading { color: #999; } #cms-page-history-versions tr.loading td:hover { cursor: none; } @@ -39,5 +39,3 @@ .cms .AssetAdmin .cms-content-toolbar .cms-page-add-button span.ui-button-text { color: #393939; text-shadow: white 0 1px 1px; } .cms .AssetAdmin #Root_TreeView .cms-tree ul .class-Folder a span.text span.jstree-foldericon { background: url(../images/blue-folder-horizontal.png) no-repeat; width: 16px; height: 16px; float: left; display: block; margin-right: 4px; } .cms .AssetAdmin table.ss-gridfield-table td.bottom-all { padding: 0.7em; } -.cms .AssetAdmin table.ss-gridfield-table tr[data-class=Folder] td.col-StripThumbnail { background: transparent url(../images/treeicons/blue-folder-horizontal.png) no-repeat center; } -.cms .AssetAdmin table.ss-gridfield-table tr[data-class=File] td.col-StripThumbnail { background: transparent url(../images/treeicons/blue-document.png) no-repeat center; } diff --git a/scss/_AssetAdmin.scss b/scss/_AssetAdmin.scss index 484d53e6..5c25f597 100644 --- a/scss/_AssetAdmin.scss +++ b/scss/_AssetAdmin.scss @@ -30,7 +30,7 @@ text-shadow: white 0 1px 1px; } } - } + } #Root_TreeView { .cms-tree ul .class-Folder a span.text span.jstree-foldericon { @@ -49,16 +49,6 @@ padding:0.7em; } } - tr[data-class=Folder] { - td.col-StripThumbnail { - background: transparent url(../images/treeicons/blue-folder-horizontal.png) no-repeat center; - } - } - tr[data-class=File] { - td.col-StripThumbnail { - background: transparent url(../images/treeicons/blue-document.png) no-repeat center; - } - } } } - + From 9d62d9d3818d6acfc08a98b5e0fcaf255295f70f Mon Sep 17 00:00:00 2001 From: Daniel Hensby Date: Mon, 21 Mar 2016 15:22:00 +0000 Subject: [PATCH 10/15] FIX Link tracking not escaping `#` Fixes #1409 --- code/model/SiteTreeLinkTracking.php | 3 ++- tests/model/SiteTreeLinkTrackingTest.php | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/model/SiteTreeLinkTracking.php b/code/model/SiteTreeLinkTracking.php index 9e3638e1..477a6647 100644 --- a/code/model/SiteTreeLinkTracking.php +++ b/code/model/SiteTreeLinkTracking.php @@ -259,12 +259,13 @@ class SiteTreeLinkTracking_Parser { // Local anchor. $matches = array(); if(preg_match('/^#(.*)/i', $href, $matches)) { + $anchor = preg_quote($matches[1], '#'); $results[] = array( 'Type' => 'localanchor', 'Target' => null, 'Anchor' => $matches[1], 'DOMReference' => $link, - 'Broken' => !preg_match("#(name|id)=\"{$matches[1]}\"#", $htmlValue->getContent()) + 'Broken' => !preg_match("#(name|id)=\"{$anchor}\"#", $htmlValue->getContent()) ); continue; diff --git a/tests/model/SiteTreeLinkTrackingTest.php b/tests/model/SiteTreeLinkTrackingTest.php index e5967631..d73bab9a 100644 --- a/tests/model/SiteTreeLinkTrackingTest.php +++ b/tests/model/SiteTreeLinkTrackingTest.php @@ -20,6 +20,7 @@ class SiteTreeLinkTrackingTest extends SapphireTest { $this->assertFalse($this->isBroken('anchor')); $this->assertFalse($this->isBroken('anchor')); + $this->assertTrue($this->isBroken('anchor')); $page = new Page(); $page->Content = 'nameid'; From 5f9077242a299f1f1c91d3fa6f49d2f20e632653 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 7 Mar 2016 14:07:27 +1300 Subject: [PATCH 11/15] Disable xdebug on Travis runs We're not using it for code coverage, and it's slowing down both composer and phpunit builds. Recommended by Travis: https://docs.travis-ci.com/user/speeding-up-the-build/#PHP-optimisations --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 4ea885d8..8ad11225 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,6 +34,7 @@ matrix: before_script: - composer self-update || true - phpenv rehash + - phpenv config-rm xdebug.ini - git clone git://github.com/silverstripe-labs/silverstripe-travis-support.git ~/travis-support - "if [ \"$BEHAT_TEST\" = \"\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss; fi" - "if [ \"$BEHAT_TEST\" = \"1\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss --require silverstripe/behat-extension; fi" From 17557142108cd189e0cd9d5b5f7fde0439817aec Mon Sep 17 00:00:00 2001 From: Cam Findlay Date: Mon, 4 Apr 2016 16:33:01 +1200 Subject: [PATCH 12/15] Add license file While this is in the README it's common to have a separate license file to make it clear this is FOSS. --- license.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 license.md diff --git a/license.md b/license.md new file mode 100644 index 00000000..525b86de --- /dev/null +++ b/license.md @@ -0,0 +1,27 @@ +Copyright (c) 2016, SilverStripe Ltd. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of silverstripe-cms nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 4c419ae4aeef8290a960312b5fa5ee56dcd6dd66 Mon Sep 17 00:00:00 2001 From: Cam Findlay Date: Mon, 4 Apr 2016 16:34:04 +1200 Subject: [PATCH 13/15] License moved to own file --- README.md | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/README.md b/README.md index 84b7e8c1..45f254a8 100644 --- a/README.md +++ b/README.md @@ -27,23 +27,3 @@ If you would like to make changes to the SilverStripe core codebase, we have an * [Bugtracker: Installer](https://github.com/silverstripe/silverstripe-installer/issues) * [Forums](http://silverstripe.org/forums) * [Developer Mailinglist](https://groups.google.com/forum/#!forum/silverstripe-dev) - -## License ## - - Copyright (c) 2006-2014, SilverStripe Limited - www.silverstripe.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of SilverStripe nor the names of its contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - OF SUCH DAMAGE. From 000bf0935447e49b94faee1733cb09accd2042fc Mon Sep 17 00:00:00 2001 From: Patrick Nelson Date: Wed, 6 Apr 2016 17:34:55 -0700 Subject: [PATCH 14/15] FIX for #1447 to ensure proper type-safe checking of file_put_contents() in ErrorPage->writeStaticPage() --- code/model/ErrorPage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/model/ErrorPage.php b/code/model/ErrorPage.php index 7a3cad6c..4307b78d 100644 --- a/code/model/ErrorPage.php +++ b/code/model/ErrorPage.php @@ -250,7 +250,7 @@ class ErrorPage extends Page { // if the page is published in a language other than default language, // write a specific language version of the HTML page $filePath = self::get_filepath_for_errorcode($this->ErrorCode, $this->Locale); - if (!file_put_contents($filePath, $errorContent)) { + if (file_put_contents($filePath, $errorContent) === false) { $fileErrorText = _t( 'ErrorPage.ERRORFILEPROBLEM', 'Error opening file "{filename}" for writing. Please check file permissions.', From b4f466f5e10cde3d691280258cd4920c58f0ab65 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Thu, 21 Apr 2016 18:45:56 +1200 Subject: [PATCH 15/15] BUG Correct framework/module dependencies for cms --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 2f163c64..874a2554 100644 --- a/composer.json +++ b/composer.json @@ -18,9 +18,9 @@ "require": { "php": ">=5.3.3", "composer/installers": "*", - "silverstripe/framework": "~3.3", - "silverstripe/reports": "~3.3", - "silverstripe/siteconfig": "~3.3" + "silverstripe/framework": "~3.4", + "silverstripe/reports": "~3.4", + "silverstripe/siteconfig": "~3.4" }, "extra": { "branch-alias": {