├── cnf ├── hosts ├── sources.list └── config.yml.dist ├── hooks ├── prod │ └── post-code-deploy │ │ └── update.sh └── common │ └── post-db-copy │ └── update.sh ├── modules ├── custom │ └── README.md └── feature_modules │ ├── content_profiles │ ├── wysiwyg_advanced_profile │ │ ├── wysiwyg_advanced_profile.module │ │ ├── wysiwyg_advanced_profile.info │ │ ├── wysiwyg_advanced_profile.features.filter.inc │ │ └── wysiwyg_advanced_profile.features.ckeditor_profile.inc │ ├── wysiwyg_filtered_profile │ │ ├── wysiwyg_filtered_profile.module │ │ ├── wysiwyg_filtered_profile.info │ │ ├── wysiwyg_filtered_profile.features.filter.inc │ │ ├── wysiwyg_filtered_profile.features.wysiwyg.inc │ │ └── wysiwyg_filtered_profile.features.ckeditor_profile.inc │ └── wysiwyg_global_profile │ │ ├── wysiwyg_global_profile.module │ │ ├── wysiwyg_global_profile.info │ │ └── wysiwyg_global_profile.features.ckeditor_profile.inc │ └── README.md ├── default.module ├── .gitignore ├── bin └── wrapper ├── default.info ├── env.dist ├── Vagrantfile ├── composer.json ├── README.md └── composer.lock /cnf/hosts: -------------------------------------------------------------------------------- 1 | 98.206.35.67 dp.prometdev.com 2 | -------------------------------------------------------------------------------- /hooks/prod/post-code-deploy/update.sh: -------------------------------------------------------------------------------- 1 | ../../common/post-db-copy/update.sh -------------------------------------------------------------------------------- /modules/custom/README.md: -------------------------------------------------------------------------------- 1 | This is where you need to put all your custom modules. 2 | -------------------------------------------------------------------------------- /default.module: -------------------------------------------------------------------------------- 1 | array( 13 | 'name' => 'CKEditor Global Profile', 14 | 'settings' => array( 15 | 'ckeditor_path' => '%l/ckeditor', 16 | ), 17 | 'input_formats' => array(), 18 | ), 19 | ); 20 | return $data; 21 | } 22 | -------------------------------------------------------------------------------- /Vagrantfile: -------------------------------------------------------------------------------- 1 | Vagrant.configure("2") do |config| 2 | 3 | # tunables 4 | env_prefix = ENV['DRUPAL_VAGRANT_ENV_PREFIX'] || 'DRUPAL_VAGRANT' 5 | ip = ENV["#{env_prefix}_IP"] || '10.33.36.11' 6 | project = ENV["#{env_prefix}_PROJECT"] || 'drupalproject' 7 | # end tunables 8 | 9 | config.vm.box = "promet/wheezy" 10 | config.vm.provider :virtualbox do |vb| 11 | vb.customize ["modifyvm", :id, "--memory", 2048] 12 | end 13 | path = "/var/www/sites/#{project}.dev" 14 | 15 | config.vm.synced_folder ".", "/vagrant", :disabled => true 16 | config.vm.synced_folder ".", path, :nfs => true 17 | config.vm.hostname = "#{project}.dev" 18 | 19 | config.ssh.forward_agent = true 20 | config.vm.network :private_network, ip: ip 21 | 22 | config.vm.provision :shell, inline: "cd #{path}; cp ./cnf/sources.list /etc/apt/sources.list; ./build/vagrant.sh #{project}; ./build/install.sh" 23 | end 24 | -------------------------------------------------------------------------------- /modules/feature_modules/content_profiles/wysiwyg_advanced_profile/wysiwyg_advanced_profile.features.filter.inc: -------------------------------------------------------------------------------- 1 | 'advanced_html', 16 | 'name' => 'Advanced HTML', 17 | 'cache' => 1, 18 | 'status' => 1, 19 | 'weight' => 0, 20 | 'filters' => array( 21 | 'filter_url' => array( 22 | 'weight' => -48, 23 | 'status' => 1, 24 | 'settings' => array( 25 | 'filter_url_length' => 72, 26 | ), 27 | ), 28 | 'filter_autop' => array( 29 | 'weight' => -47, 30 | 'status' => 1, 31 | 'settings' => array(), 32 | ), 33 | 'filter_htmlcorrector' => array( 34 | 'weight' => -46, 35 | 'status' => 1, 36 | 'settings' => array(), 37 | ), 38 | ), 39 | ); 40 | 41 | return $formats; 42 | } 43 | -------------------------------------------------------------------------------- /modules/feature_modules/content_profiles/wysiwyg_filtered_profile/wysiwyg_filtered_profile.features.filter.inc: -------------------------------------------------------------------------------- 1 | 'filtered_html', 16 | 'name' => 'Filtered HTML', 17 | 'cache' => 1, 18 | 'status' => 1, 19 | 'weight' => 0, 20 | 'filters' => array( 21 | 'filter_url' => array( 22 | 'weight' => 0, 23 | 'status' => 1, 24 | 'settings' => array( 25 | 'filter_url_length' => 72, 26 | ), 27 | ), 28 | 'filter_html' => array( 29 | 'weight' => 1, 30 | 'status' => 1, 31 | 'settings' => array( 32 | 'allowed_html' => '
    1. ', 33 | 'filter_html_help' => 1, 34 | 'filter_html_nofollow' => 0, 35 | ), 36 | ), 37 | 'filter_autop' => array( 38 | 'weight' => 2, 39 | 'status' => 1, 40 | 'settings' => array(), 41 | ), 42 | 'filter_htmlcorrector' => array( 43 | 'weight' => 10, 44 | 'status' => 1, 45 | 'settings' => array(), 46 | ), 47 | ), 48 | ); 49 | 50 | return $formats; 51 | } 52 | -------------------------------------------------------------------------------- /modules/feature_modules/content_profiles/wysiwyg_filtered_profile/wysiwyg_filtered_profile.features.wysiwyg.inc: -------------------------------------------------------------------------------- 1 | 'filtered_html', 16 | 'editor' => 'ckeditor', 17 | 'settings' => array( 18 | 'default' => 1, 19 | 'user_choose' => 0, 20 | 'show_toggle' => 1, 21 | 'theme' => 'advanced', 22 | 'language' => 'en', 23 | 'buttons' => array( 24 | 'default' => array( 25 | 'Bold' => 1, 26 | 'Italic' => 1, 27 | 'Underline' => 1, 28 | 'BulletedList' => 1, 29 | 'NumberedList' => 1, 30 | 'Link' => 1, 31 | 'Unlink' => 1, 32 | 'Superscript' => 1, 33 | 'Subscript' => 1, 34 | 'Source' => 1, 35 | ), 36 | ), 37 | 'toolbar_loc' => 'top', 38 | 'toolbar_align' => 'left', 39 | 'path_loc' => 'bottom', 40 | 'resizing' => 1, 41 | 'default_toolbar_grouping' => 1, 42 | 'verify_html' => 1, 43 | 'preformatted' => 0, 44 | 'convert_fonts_to_spans' => 1, 45 | 'remove_linebreaks' => 1, 46 | 'apply_source_formatting' => 0, 47 | 'paste_auto_cleanup_on_paste' => 0, 48 | 'block_formats' => 'p,address,pre,h2,h3,h4,h5,h6,div', 49 | 'css_setting' => 'theme', 50 | 'css_path' => '', 51 | 'css_classes' => '', 52 | 'advanced__active_tab' => 'edit-appearance', 53 | ), 54 | 'rdf_mapping' => array(), 55 | ); 56 | 57 | return $profiles; 58 | } 59 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "minimum-stability": "alpha", 3 | "name": "promet/drupal7-framework", 4 | "type": "project", 5 | "repositories": [ 6 | { 7 | "type": "composer", 8 | "url": "https://packagist.drupal-composer.org" 9 | }, 10 | { 11 | "type": "vcs", 12 | "url": "git@github.com:promet/drop_ship" 13 | }, 14 | { 15 | "type": "vcs", 16 | "url": "git@github.com:promet/kw_manifests" 17 | } 18 | ], 19 | "require": { 20 | "ckeditor/ckeditor": "dev-full/stable", 21 | "composer/composer": "~1.0@alpha", 22 | "drupal/admin_menu": "~7.3.0-rc5", 23 | "drupal/ckeditor": "~7.1.16", 24 | "drupal/context": "~7.3.6", 25 | "drupal/ctools": "~7.1.9", 26 | "drupal/date": "~7.2.9", 27 | "drupal/diff": "~7.3.2", 28 | "drupal/drop_ship": "1.*", 29 | "drupal/drupal": "~7.41", 30 | "drupal/drupal-library-installer-plugin": "~0.1", 31 | "drupal/entity": "~7.1.6", 32 | "drupal/features": "7.2.*", 33 | "drupal/kw_manifests": "1.*", 34 | "drupal/module_filter": "~7.2.0", 35 | "drupal/omega": "7.4.*", 36 | "drupal/panels": "7.3.*", 37 | "drupal/registry_rebuild": "7.2.*", 38 | "drupal/strongarm": "7.2.*", 39 | "drupal/tangler": "~0.1.9", 40 | "drupal/views": "7.3.*", 41 | "drush/drush": "6.*", 42 | "winmillwill/settings_compile": "~2.1.1" 43 | }, 44 | "require-dev": { 45 | "behat/behat": "2.5.2", 46 | "behat/mink": "~1.5.0@stable", 47 | "behat/mink-selenium2-driver": "1.*", 48 | "drupal/backup_migrate": "7.3.*", 49 | "drupal/devel": "7.*", 50 | "drupal/devel_themer": "7.1.x-dev", 51 | "drupal/diff": "~7.3.2", 52 | "drupal/drupal-extension": "0.1.5", 53 | "drupal/stage_file_proxy": "7.1.6", 54 | "drupal/xhprof": "~7.1.0-beta3", 55 | "phpunit/phpunit": "4.3.5", 56 | "drupal/coder": "7.2.4" 57 | }, 58 | "extra": { 59 | "drupal-libraries": { 60 | "library-directory": "www/sites/all/libraries", 61 | "libraries": [ 62 | { 63 | "name": "ckeditor", 64 | "package": "ckeditor/ckeditor" 65 | } 66 | ] 67 | } 68 | }, 69 | "scripts": { 70 | "post-install-cmd": [ 71 | "Drupal\\Tangler\\ScriptHandler::postUpdate", 72 | "bin/wrapper" 73 | ], 74 | "post-update-cmd": [ 75 | "Drupal\\Tangler\\ScriptHandler::postUpdate" 76 | ] 77 | }, 78 | "config":{ 79 | "secure-http": false 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /modules/feature_modules/content_profiles/wysiwyg_filtered_profile/wysiwyg_filtered_profile.features.ckeditor_profile.inc: -------------------------------------------------------------------------------- 1 | array( 13 | 'name' => 'Filtered', 14 | 'settings' => array( 15 | 'ss' => 2, 16 | 'toolbar' => '[ 17 | [\'Format\',\'Bold\',\'Italic\',\'-\',\'NumberedList\',\'BulletedList\',\'-\',\'Link\',\'Unlink\',\'Image\'] 18 | ]', 19 | 'expand' => 't', 20 | 'default' => 't', 21 | 'show_toggle' => 't', 22 | 'uicolor' => 'default', 23 | 'uicolor_user' => 'default', 24 | 'width' => '100%', 25 | 'lang' => 'en', 26 | 'auto_lang' => 't', 27 | 'language_direction' => 'default', 28 | 'allowed_content' => 't', 29 | 'extraAllowedContent' => '', 30 | 'enter_mode' => 'p', 31 | 'shift_enter_mode' => 'br', 32 | 'font_format' => 'p;div;pre;address;h1;h2;h3;h4;h5;h6', 33 | 'custom_formatting' => 'f', 34 | 'formatting' => array( 35 | 'custom_formatting_options' => array( 36 | 'indent' => 'indent', 37 | 'breakBeforeOpen' => 'breakBeforeOpen', 38 | 'breakAfterOpen' => 'breakAfterOpen', 39 | 'breakAfterClose' => 'breakAfterClose', 40 | 'breakBeforeClose' => 0, 41 | 'pre_indent' => 0, 42 | ), 43 | ), 44 | 'css_mode' => 'none', 45 | 'css_path' => '', 46 | 'css_style' => 'theme', 47 | 'styles_path' => '', 48 | 'filebrowser' => 'none', 49 | 'filebrowser_image' => '', 50 | 'filebrowser_flash' => '', 51 | 'UserFilesPath' => '%b%f/', 52 | 'UserFilesAbsolutePath' => '%d%b%f/', 53 | 'forcePasteAsPlainText' => 'f', 54 | 'html_entities' => 'f', 55 | 'scayt_autoStartup' => 'f', 56 | 'theme_config_js' => 'f', 57 | 'js_conf' => '', 58 | 'loadPlugins' => array( 59 | 'drupalbreaks' => array( 60 | 'name' => 'drupalbreaks', 61 | 'desc' => 'Plugin for inserting Drupal teaser and page breaks.', 62 | 'path' => '%plugin_dir%drupalbreaks/', 63 | 'buttons' => array( 64 | 'DrupalBreak' => array( 65 | 'label' => 'DrupalBreak', 66 | 'icon' => 'images/drupalbreak.png', 67 | ), 68 | ), 69 | 'default' => 't', 70 | ), 71 | ), 72 | ), 73 | 'input_formats' => array( 74 | 'filtered_html' => 'Filtered HTML', 75 | ), 76 | ), 77 | ); 78 | return $data; 79 | } 80 | -------------------------------------------------------------------------------- /modules/feature_modules/content_profiles/wysiwyg_advanced_profile/wysiwyg_advanced_profile.features.ckeditor_profile.inc: -------------------------------------------------------------------------------- 1 | array( 13 | 'name' => 'Advanced', 14 | 'settings' => array( 15 | 'ss' => 2, 16 | 'toolbar' => '[ 17 | [\'Source\'], 18 | [\'Cut\',\'Copy\',\'Paste\',\'PasteText\',\'PasteFromWord\',\'-\',\'SpellChecker\',\'Scayt\'], 19 | [\'Undo\',\'Redo\',\'Find\',\'Replace\',\'-\',\'SelectAll\'], 20 | [\'Image\',\'Flash\',\'Table\',\'HorizontalRule\',\'Smiley\',\'SpecialChar\'], 21 | [\'Maximize\',\'ShowBlocks\'], 22 | \'/\', 23 | [\'Format\'], 24 | [\'Bold\',\'Italic\',\'Underline\',\'Strike\',\'-\',\'Subscript\',\'Superscript\',\'-\',\'RemoveFormat\'], 25 | [\'NumberedList\',\'BulletedList\',\'-\',\'Outdent\',\'Indent\',\'Blockquote\'], 26 | [\'JustifyLeft\',\'JustifyCenter\',\'JustifyRight\',\'JustifyBlock\',\'-\',\'BidiLtr\',\'BidiRtl\'], 27 | [\'Link\',\'Unlink\',\'Anchor\',\'Linkit\',\'LinkToNode\',\'LinkToMenu\'] 28 | ]', 29 | 'expand' => 't', 30 | 'default' => 't', 31 | 'show_toggle' => 't', 32 | 'uicolor' => 'default', 33 | 'uicolor_user' => 'default', 34 | 'width' => '100%', 35 | 'lang' => 'en', 36 | 'auto_lang' => 't', 37 | 'language_direction' => 'default', 38 | 'allowed_content' => 't', 39 | 'extraAllowedContent' => '', 40 | 'enter_mode' => 'p', 41 | 'shift_enter_mode' => 'br', 42 | 'font_format' => 'p;div;pre;address;h1;h2;h3;h4;h5;h6', 43 | 'custom_formatting' => 'f', 44 | 'formatting' => array( 45 | 'custom_formatting_options' => array( 46 | 'indent' => 'indent', 47 | 'breakBeforeOpen' => 'breakBeforeOpen', 48 | 'breakAfterOpen' => 'breakAfterOpen', 49 | 'breakAfterClose' => 'breakAfterClose', 50 | 'breakBeforeClose' => 0, 51 | 'pre_indent' => 0, 52 | ), 53 | ), 54 | 'css_mode' => 'none', 55 | 'css_path' => '', 56 | 'css_style' => 'theme', 57 | 'styles_path' => '', 58 | 'filebrowser' => 'none', 59 | 'filebrowser_image' => '', 60 | 'filebrowser_flash' => '', 61 | 'UserFilesPath' => '%b%f/', 62 | 'UserFilesAbsolutePath' => '%d%b%f/', 63 | 'forcePasteAsPlainText' => 'f', 64 | 'html_entities' => 'f', 65 | 'scayt_autoStartup' => 'f', 66 | 'theme_config_js' => 'f', 67 | 'js_conf' => '', 68 | 'loadPlugins' => array( 69 | 'drupalbreaks' => array( 70 | 'name' => 'drupalbreaks', 71 | 'desc' => 'Plugin for inserting Drupal teaser and page breaks.', 72 | 'path' => '%plugin_dir%drupalbreaks/', 73 | 'buttons' => array( 74 | 'DrupalBreak' => array( 75 | 'label' => 'DrupalBreak', 76 | 'icon' => 'images/drupalbreak.png', 77 | ), 78 | ), 79 | 'default' => 't', 80 | ), 81 | ), 82 | ), 83 | 'input_formats' => array( 84 | 'advanced_html' => 'Advanced HTML', 85 | ), 86 | ), 87 | ); 88 | return $data; 89 | } 90 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Promet Drupal 7 Framework 2 | 3 | This is an example of a starting point for developing the "Promet Way". 4 | 5 | You can most easily start your Drupal project with this baseline by using 6 | [Composer](getcomposer.org): 7 | 8 | ```bash 9 | composer create-project promet/drupal7-framework your_project_name 10 | ``` 11 | 12 | Running this command will download the latest release of this project to a new 13 | directory called `your_project_name` and invoke `composer install` inside it, 14 | which will trigger additional scripts to create a working Drupal root in the www 15 | subdirectory from the packages downloaded with composer. 16 | 17 | We reference a custom composer repository in composer.json 18 | [here](composer.json#L5-8). This repository was created by 19 | traversing the list of known projects on drupal.org using 20 | `drupal/parse-composer`, and has the package metadata for all the valid packages 21 | with a Drupal 7 release, including Drupal itself. 22 | 23 | We use `drupal/tangler` to create the Drupal root by reacting to the `install` 24 | and `update` events, and a custom installer provided by 25 | `drupal/drupal-library-installer-plugin` to handle placing `ckeditor` in the 26 | libraries directory of the resulting Drupal application. Also, we render 27 | a settings.php file from `cnf/config.yml` using `winmillwill/settings_compile`, 28 | which assures us that an operator without php familiarity but with knowledge of 29 | the different tunables in settings.php will be able to update different 30 | deployments of the application without needing to kludge anything. 31 | 32 | As you add modules to your project, just update composer.json and run `composer 33 | update`. You will also need to pin some versions down as you run across point 34 | releases that break other functionality. If you are fastidious with this 35 | practice, you will never accidentally install the wrong version of a module if 36 | a point release should happen between your testing, and client sign off, and 37 | actually deploying changes to production. If you are judicious with your 38 | constraints, you will be able to update your contrib without trying to remember 39 | known untenable versions and work arounds -- you will just run `composer update` 40 | and be done. 41 | 42 | This strategy may sound a lot like `drush make`, but it's actually what you 43 | would get if you took the good ideas that lead to `drush make`, and then 44 | discarded everything else about it, and then discarded those good ideas for 45 | better ideas, and then added more good ideas. 46 | 47 | See: 48 | 49 | * [composer](https://getcomposer.org) 50 | * [composer install](https://getcomposer.org/doc/03-cli.md#install) 51 | * [composer update](https://getcomposer.org/doc/03-cli.md#update) 52 | * [composer create-project](https://getcomposer.org/doc/03-cli.md#create-project) 53 | * [composer scripts](https://getcomposer.org/doc/articles/scripts.md) 54 | * [drupal/tangler](https://packagist.org/packages/drupal/tangler) 55 | * [drupal/drupal-library-installer-plugin](https://packagist.org/packages/drupal/drupal-library-installer-plugin) 56 | * [drupal/parse-composer](https://packagist.org/packages/drupal/parse-composer) 57 | * [winmillwill/settings_compile](https://packagist.org/packages/winmillwill/settings_compile) 58 | 59 | ## Project Customization 60 | 61 | You may want to customize a couple of things about your box first. The scripts 62 | are built to take most of the work out of configuration. There are pretty much 63 | two things you may want to do: 64 | 65 | ### Change the Project Name 66 | 67 | By editing the [project variable][CPN1], you can give your project a custom 68 | name. Note that this will affect several other configurations in the build as 69 | well, including what the base module will be called and what folder the site 70 | will live in. 71 | 72 | [CPN1]: https://github.com/promet/drupal7-framework/blob/master/Vagrantfile#L6 73 | 74 | ### Change the VM IP 75 | 76 | You can edit the [IP variable][CVMIP1] if you want to run more than one VM at a 77 | time. 78 | 79 | [CVMIP1]: https://github.com/promet/drupal7-framework/blob/master/Vagrantfile#L5 80 | 81 | ## Getting Started Developing 82 | 83 | * You need to edit your machine's local host file. Add the entry 84 | `10.33.36.11 drupalproject.dev` 85 | * Run `vagrant up --provision` to build the environment. 86 | * ssh in with `vagrant ssh` 87 | * Navigate to `/var/www/sites/drupalproject.dev`. 88 | * PARTY!!! 89 | 90 | Vagrant provision currently does a full site install. 91 | 92 | To update without rebuilding, run `build/update.sh` from the project root in 93 | the vagrant box. 94 | 95 | It is also worth noting, if you are working on an existing site, that the 96 | default install script allows you to provide a reference database in order to 97 | start your development. Simply add a sql file to either of the following: 98 | 99 | * `build/ref/drupalproject.sql` 100 | * `build/ref/drupalproject.sql.gz` 101 | 102 | ## Use 103 | 104 | **IMPORTANT** 105 | 106 | This project uses the [drop_ship]('github.com/promet/drop_ship') module to 107 | handle the reusable part of deployment, so everything will get disabled if you 108 | don't define dependencies. The `DROPSHIP_SEEDS` environment variable (see 109 | directly below) should consist of only the top level project module and 110 | environment specific modules. 111 | 112 | `DROPSHIP_SEEDS=drupalproject:devel` 113 | 114 | # Easy Development with Vagrant 115 | 116 | We have a Vagrantfile that references a Debian 7 box with php 5.4 and apache2 117 | and mysql. Once you have installed Vagrant, you can begin development like so: 118 | 119 | ```bash 120 | vagrant up # turn on the box and provision it 121 | vagrant ssh # log into the box like it's a server 122 | cd /var/www/sites/drupalproject.dev # go to the sync'ed folder on the box 123 | alias drush="$PWD/vendor/bin/drush -r $PWD/www" # use drush from composer 124 | drush # do some stuff to your website 125 | ``` 126 | 127 | # The Build and Deployment Scripts 128 | 129 | You may have noticed that provisioning the Vagrant box causes `build/install.sh` 130 | to be invoked, and that this causes all of our modules to be enabled, giving us 131 | a starting schema. 132 | 133 | You should note that `build/install.sh` really just installs Drupal and then 134 | passes off to `build/update.sh`, which is the reusable and non-destructive 135 | script for applying updates in code to a Drupal site with existing content. This 136 | is the tool you can use when testing to see if your changes have been persisted 137 | in such a way that your collaborators can use them: 138 | 139 | ```bash 140 | build/install.sh # get a baseline 141 | alias drush="$PWD/vendor/bin/drush -r $PWD/www" # use drush from composer 142 | drush sql-dump > base.sql # save your baseline 143 | # ... do a whole bunch of Drupal hacking ... 144 | drush sql-dump > tmp.sql # save your intended state 145 | drush -y sql-drop && drush sqlc < base.sql # restore baseline state 146 | build/update.sh # apply changes to the baseline 147 | ``` 148 | 149 | You should see a lot of errors if, for example, you failed to provide an update 150 | hook for deleting a field whose fundamental config you are changing. Or, perhaps 151 | you've done the right thing and clicked through the things that should be 152 | working now and you see that it is not working as expected. This is a great time 153 | to fix these issues, because you know what you meant to do and your 154 | collaborators don't! 155 | 156 | The actual application of updates, including managing the enabled modules, 157 | firing their update hooks, disabling things that should not be enabled and 158 | reverting features is handled by `drupal/drop_ship`, which uses (a fork of) 159 | `kw_manifests` for providing an extensible set of deployment tasks that have 160 | dependencies on one another. 161 | 162 | Because manifests can't receive commandline arguments, we pass information to 163 | them with Environment Variables and we provide an env.dist from which to create 164 | a .env file that our scripts will then source. This allows an operator with 165 | access to the target environment to update these tunables out of channel so that 166 | you can deploy any arbitrary revision to any environment. 167 | 168 | Particularly, the list of modules used to generate the dependency graph of all 169 | the things we should enable resides in the `DROPSHIP_SEEDS` environment 170 | variable. You may notice that it's a list of one and that it's a poorly named 171 | do-nothing module with nothing besides dependencies. In real life, you would 172 | name this module something relevant to your project and it would be responsible 173 | for over-arching functionality or the application, like providing the minimal 174 | set of modules to generate the dependencies of everything that must be enabled 175 | for the application to work properly. You can think of this like an install 176 | profile that doesn't suck, because it's not a singleton, so with care, you can 177 | embed your whole project in another project that uses this workflow. 178 | 179 | See: 180 | 181 | * [drupal/drop_ship](https://github.com/promet/drop_ship) 182 | * [drupal/kw_manifests](https://github.com/promet/kw_manifests) 183 | 184 | # Testing Locally 185 | 186 | All the testing that happens in an automated way can be done the same way on 187 | your virtual machine. Simply run this command from your the project folder and 188 | it will do coding standard testing: 189 | 190 | `./build/drupalcs.sh` 191 | 192 | Or run this command that will do behat testing: 193 | 194 | `./build/runtests.sh` 195 | 196 | # TODO 197 | 198 | * Change `build/scripts/default_set_theme` to a manifest 199 | * Make the README pithier, factor out discussions into an article or blog 200 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "hash": "d77a05c3744fb57b1649ae3ae2f958a8", 8 | "content-hash": "67d81b372c8bd47cb934ff0b62cfe90b", 9 | "packages": [ 10 | { 11 | "name": "ckeditor/ckeditor", 12 | "version": "dev-full/stable", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/ckeditor/ckeditor-releases.git", 16 | "reference": "c1cefe7341e6910a1e6cb2f3f024bbdaf6cd1d4d" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/ckeditor/ckeditor-releases/zipball/c1cefe7341e6910a1e6cb2f3f024bbdaf6cd1d4d", 21 | "reference": "c1cefe7341e6910a1e6cb2f3f024bbdaf6cd1d4d", 22 | "shasum": "" 23 | }, 24 | "type": "library", 25 | "notification-url": "https://packagist.org/downloads/", 26 | "license": [ 27 | "GPL-2.0+", 28 | "LGPL-2.1+", 29 | "MPL-1.1+" 30 | ], 31 | "authors": [ 32 | { 33 | "name": "CKSource - Frederico Knabben", 34 | "homepage": "http://cksource.com" 35 | } 36 | ], 37 | "description": "JavaScript WYSIWYG web text editor.", 38 | "homepage": "http://ckeditor.com", 39 | "keywords": [ 40 | "CKEditor", 41 | "editor", 42 | "fckeditor", 43 | "html", 44 | "javascript", 45 | "richtext", 46 | "text", 47 | "wysiwyg" 48 | ], 49 | "time": "2015-12-09 15:49:34" 50 | }, 51 | { 52 | "name": "composer/composer", 53 | "version": "1.0.0-alpha11", 54 | "source": { 55 | "type": "git", 56 | "url": "https://github.com/composer/composer.git", 57 | "reference": "cd9054ce2abd1d06ed0eb1244eba1b2c2af633b6" 58 | }, 59 | "dist": { 60 | "type": "zip", 61 | "url": "https://api.github.com/repos/composer/composer/zipball/cd9054ce2abd1d06ed0eb1244eba1b2c2af633b6", 62 | "reference": "cd9054ce2abd1d06ed0eb1244eba1b2c2af633b6", 63 | "shasum": "" 64 | }, 65 | "require": { 66 | "composer/semver": "^1.0", 67 | "composer/spdx-licenses": "^1.0", 68 | "justinrainbow/json-schema": "^1.4.4", 69 | "php": "^5.3.2 || ^7.0", 70 | "seld/cli-prompt": "^1.0", 71 | "seld/jsonlint": "^1.0", 72 | "seld/phar-utils": "^1.0", 73 | "symfony/console": "^2.5 || ^3.0", 74 | "symfony/filesystem": "^2.5 || ^3.0", 75 | "symfony/finder": "^2.2 || ^3.0", 76 | "symfony/process": "^2.1 || ^3.0" 77 | }, 78 | "require-dev": { 79 | "phpunit/phpunit": "^4.5 || ^5.0.5", 80 | "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" 81 | }, 82 | "suggest": { 83 | "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", 84 | "ext-zip": "Enabling the zip extension allows you to unzip archives, and allows gzip compression of all internet traffic" 85 | }, 86 | "bin": [ 87 | "bin/composer" 88 | ], 89 | "type": "library", 90 | "extra": { 91 | "branch-alias": { 92 | "dev-master": "1.0-dev" 93 | } 94 | }, 95 | "autoload": { 96 | "psr-4": { 97 | "Composer\\": "src/Composer" 98 | } 99 | }, 100 | "notification-url": "https://packagist.org/downloads/", 101 | "license": [ 102 | "MIT" 103 | ], 104 | "authors": [ 105 | { 106 | "name": "Nils Adermann", 107 | "email": "naderman@naderman.de", 108 | "homepage": "http://www.naderman.de" 109 | }, 110 | { 111 | "name": "Jordi Boggiano", 112 | "email": "j.boggiano@seld.be", 113 | "homepage": "http://seld.be" 114 | } 115 | ], 116 | "description": "Composer helps you declare, manage and install dependencies of PHP projects, ensuring you have the right stack everywhere.", 117 | "homepage": "https://getcomposer.org/", 118 | "keywords": [ 119 | "autoload", 120 | "dependency", 121 | "package" 122 | ], 123 | "time": "2015-11-14 16:21:07" 124 | }, 125 | { 126 | "name": "composer/semver", 127 | "version": "1.2.0", 128 | "source": { 129 | "type": "git", 130 | "url": "https://github.com/composer/semver.git", 131 | "reference": "0faeb6e433f6b352f0dc55ec1faf5c6b605a35d3" 132 | }, 133 | "dist": { 134 | "type": "zip", 135 | "url": "https://api.github.com/repos/composer/semver/zipball/0faeb6e433f6b352f0dc55ec1faf5c6b605a35d3", 136 | "reference": "0faeb6e433f6b352f0dc55ec1faf5c6b605a35d3", 137 | "shasum": "" 138 | }, 139 | "require": { 140 | "php": "^5.3.2 || ^7.0" 141 | }, 142 | "require-dev": { 143 | "phpunit/phpunit": "^4.5 || ^5.0.5", 144 | "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" 145 | }, 146 | "type": "library", 147 | "extra": { 148 | "branch-alias": { 149 | "dev-master": "1.x-dev" 150 | } 151 | }, 152 | "autoload": { 153 | "psr-4": { 154 | "Composer\\Semver\\": "src" 155 | } 156 | }, 157 | "notification-url": "https://packagist.org/downloads/", 158 | "license": [ 159 | "MIT" 160 | ], 161 | "authors": [ 162 | { 163 | "name": "Nils Adermann", 164 | "email": "naderman@naderman.de", 165 | "homepage": "http://www.naderman.de" 166 | }, 167 | { 168 | "name": "Jordi Boggiano", 169 | "email": "j.boggiano@seld.be", 170 | "homepage": "http://seld.be" 171 | }, 172 | { 173 | "name": "Rob Bast", 174 | "email": "rob.bast@gmail.com", 175 | "homepage": "http://robbast.nl" 176 | } 177 | ], 178 | "description": "Semver library that offers utilities, version constraint parsing and validation.", 179 | "keywords": [ 180 | "semantic", 181 | "semver", 182 | "validation", 183 | "versioning" 184 | ], 185 | "time": "2015-11-10 11:17:42" 186 | }, 187 | { 188 | "name": "composer/spdx-licenses", 189 | "version": "1.1.2", 190 | "source": { 191 | "type": "git", 192 | "url": "https://github.com/composer/spdx-licenses.git", 193 | "reference": "9e1c3926bb0842812967213d7c92827bc5883671" 194 | }, 195 | "dist": { 196 | "type": "zip", 197 | "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/9e1c3926bb0842812967213d7c92827bc5883671", 198 | "reference": "9e1c3926bb0842812967213d7c92827bc5883671", 199 | "shasum": "" 200 | }, 201 | "require": { 202 | "php": ">=5.3.2" 203 | }, 204 | "require-dev": { 205 | "phpunit/phpunit": "~4.5", 206 | "phpunit/phpunit-mock-objects": "~2.3" 207 | }, 208 | "type": "library", 209 | "extra": { 210 | "branch-alias": { 211 | "dev-master": "1.x-dev" 212 | } 213 | }, 214 | "autoload": { 215 | "psr-4": { 216 | "Composer\\Spdx\\": "src" 217 | } 218 | }, 219 | "notification-url": "https://packagist.org/downloads/", 220 | "license": [ 221 | "MIT" 222 | ], 223 | "authors": [ 224 | { 225 | "name": "Nils Adermann", 226 | "email": "naderman@naderman.de", 227 | "homepage": "http://www.naderman.de" 228 | }, 229 | { 230 | "name": "Jordi Boggiano", 231 | "email": "j.boggiano@seld.be", 232 | "homepage": "http://seld.be" 233 | }, 234 | { 235 | "name": "Rob Bast", 236 | "email": "rob.bast@gmail.com", 237 | "homepage": "http://robbast.nl" 238 | } 239 | ], 240 | "description": "SPDX licenses list and validation library.", 241 | "keywords": [ 242 | "license", 243 | "spdx", 244 | "validator" 245 | ], 246 | "time": "2015-10-05 11:27:42" 247 | }, 248 | { 249 | "name": "drupal/admin_menu", 250 | "version": "7.3.0-rc5", 251 | "source": { 252 | "type": "git", 253 | "url": "https://git.drupal.org/project/admin_menu", 254 | "reference": "59a4fe3d4da5a80dd6abec5873a9930ccfb15c17" 255 | }, 256 | "dist": { 257 | "type": "zip", 258 | "url": "https://ftp.drupal.org/files/projects/admin_menu-7.x-3.0-rc5.zip", 259 | "reference": null, 260 | "shasum": null 261 | }, 262 | "require": { 263 | "drupal/drupal": "7.*", 264 | "drupal/system": ">7.10.0" 265 | }, 266 | "replace": { 267 | "drupal/admin_devel": "self.version", 268 | "drupal/admin_menu_toolbar": "self.version" 269 | }, 270 | "suggest": { 271 | "drupal/admin_menu": "Required by drupal/admin_menu_toolbar" 272 | }, 273 | "type": "drupal-module", 274 | "extra": { 275 | "branch-alias": { 276 | "dev-7.x-3.x": "7.3.x-dev" 277 | } 278 | }, 279 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 280 | "description": "Provides a dropdown menu to most administrative tasks and other common destinations (to users with the proper permissions).", 281 | "homepage": "https://www.drupal.org/project/admin_menu" 282 | }, 283 | { 284 | "name": "drupal/ckeditor", 285 | "version": "7.1.16", 286 | "source": { 287 | "type": "git", 288 | "url": "https://git.drupal.org/project/ckeditor", 289 | "reference": "fadeb31dff92f2ae393ce7e8b3694f71c1ddd3f4" 290 | }, 291 | "dist": { 292 | "type": "zip", 293 | "url": "https://ftp.drupal.org/files/projects/ckeditor-7.x-1.16.zip", 294 | "reference": null, 295 | "shasum": null 296 | }, 297 | "require": { 298 | "drupal/drupal": "7.*" 299 | }, 300 | "type": "drupal-module", 301 | "extra": { 302 | "branch-alias": { 303 | "dev-7.x-1.x": "7.1.x-dev" 304 | } 305 | }, 306 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 307 | "description": "Enables CKEditor (WYSIWYG HTML editor) for use instead of plain text fields.", 308 | "homepage": "https://www.drupal.org/project/ckeditor" 309 | }, 310 | { 311 | "name": "drupal/context", 312 | "version": "7.3.6", 313 | "source": { 314 | "type": "git", 315 | "url": "https://git.drupal.org/project/context", 316 | "reference": "ce2d04eb0d9f5a720abf58f7e15f0ee43bf9cfa5" 317 | }, 318 | "dist": { 319 | "type": "zip", 320 | "url": "https://ftp.drupal.org/files/projects/context-7.x-3.6.zip", 321 | "reference": null, 322 | "shasum": null 323 | }, 324 | "require": { 325 | "drupal/ctools": "7.*", 326 | "drupal/drupal": "7.*" 327 | }, 328 | "replace": { 329 | "drupal/context_layouts": "self.version", 330 | "drupal/context_ui": "self.version" 331 | }, 332 | "type": "drupal-module", 333 | "extra": { 334 | "branch-alias": { 335 | "dev-7.x-3.x": "7.3.x-dev" 336 | } 337 | }, 338 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 339 | "description": "Provide modules with a cache that lasts for a single page request." 340 | }, 341 | { 342 | "name": "drupal/ctools", 343 | "version": "7.1.9", 344 | "source": { 345 | "type": "git", 346 | "url": "https://git.drupal.org/project/ctools", 347 | "reference": "1bf2f388cd7371ae16639349ae3b344732faafae" 348 | }, 349 | "dist": { 350 | "type": "zip", 351 | "url": "https://ftp.drupal.org/files/projects/ctools-7.x-1.9.zip", 352 | "reference": null, 353 | "shasum": null 354 | }, 355 | "require": { 356 | "drupal/drupal": "7.*" 357 | }, 358 | "replace": { 359 | "drupal/bulk_export": "self.version", 360 | "drupal/ctools_access_ruleset": "self.version", 361 | "drupal/ctools_ajax_sample": "self.version", 362 | "drupal/ctools_custom_content": "self.version", 363 | "drupal/ctools_plugin_example": "self.version", 364 | "drupal/page_manager": "self.version", 365 | "drupal/stylizer": "self.version", 366 | "drupal/term_depth": "self.version", 367 | "drupal/views_content": "self.version" 368 | }, 369 | "suggest": { 370 | "drupal/advanced_help": "Required by drupal/ctools_plugin_example", 371 | "drupal/color": "Required by drupal/stylizer", 372 | "drupal/page_manager": "Required by drupal/ctools_plugin_example", 373 | "drupal/panels": "Required by drupal/ctools_plugin_example", 374 | "drupal/views": "Required by drupal/views_content" 375 | }, 376 | "type": "drupal-module", 377 | "extra": { 378 | "branch-alias": { 379 | "dev-7.x-1.x": "7.1.x-dev" 380 | } 381 | }, 382 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 383 | "description": "A library of helpful tools by Merlin of Chaos.", 384 | "homepage": "https://www.drupal.org/project/ctools" 385 | }, 386 | { 387 | "name": "drupal/date", 388 | "version": "7.2.9", 389 | "source": { 390 | "type": "git", 391 | "url": "https://git.drupal.org/project/date", 392 | "reference": "e37620a69f76354a7f87dff47ed4010da891d105" 393 | }, 394 | "dist": { 395 | "type": "zip", 396 | "url": "https://ftp.drupal.org/files/projects/date-7.x-2.9.zip", 397 | "reference": null, 398 | "shasum": null 399 | }, 400 | "require": { 401 | "drupal/drupal": "7.*" 402 | }, 403 | "replace": { 404 | "drupal/date_all_day": "self.version", 405 | "drupal/date_api": "self.version", 406 | "drupal/date_context": "self.version", 407 | "drupal/date_migrate": "self.version", 408 | "drupal/date_migrate_example": "self.version", 409 | "drupal/date_popup": "self.version", 410 | "drupal/date_repeat": "self.version", 411 | "drupal/date_repeat_field": "self.version", 412 | "drupal/date_tools": "self.version", 413 | "drupal/date_views": "self.version" 414 | }, 415 | "suggest": { 416 | "drupal/context": "Required by drupal/date_context", 417 | "drupal/date_api": "Required by drupal/date_all_day, drupal/date_popup, drupal/date_repeat, drupal/date_repeat_field, drupal/date_views", 418 | "drupal/date_repeat": "Required by drupal/date_migrate_example, drupal/date_repeat_field", 419 | "drupal/date_repeat_field": "Required by drupal/date_migrate_example", 420 | "drupal/features": "Required by drupal/date_migrate_example", 421 | "drupal/migrate": "Required by drupal/date_migrate_example", 422 | "drupal/views": "Required by drupal/date_views" 423 | }, 424 | "type": "drupal-module", 425 | "extra": { 426 | "branch-alias": { 427 | "dev-7.x-2.x": "7.2.x-dev" 428 | } 429 | }, 430 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 431 | "description": "Makes date/time fields available.", 432 | "homepage": "https://www.drupal.org/project/date" 433 | }, 434 | { 435 | "name": "drupal/diff", 436 | "version": "7.3.2", 437 | "source": { 438 | "type": "git", 439 | "url": "https://git.drupal.org/project/diff", 440 | "reference": "adb43040a4e8f950ae604b7d3698f493075cb04f" 441 | }, 442 | "dist": { 443 | "type": "zip", 444 | "url": "https://ftp.drupal.org/files/projects/diff-7.x-3.2.zip", 445 | "reference": null, 446 | "shasum": null 447 | }, 448 | "require": { 449 | "drupal/drupal": "7.*" 450 | }, 451 | "type": "drupal-module", 452 | "extra": { 453 | "branch-alias": { 454 | "dev-7.x-3.x": "7.3.x-dev" 455 | } 456 | }, 457 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 458 | "description": "Show differences between content revisions." 459 | }, 460 | { 461 | "name": "drupal/drop_ship", 462 | "version": "1.0.3", 463 | "source": { 464 | "type": "git", 465 | "url": "https://github.com/promet/drop_ship.git", 466 | "reference": "3e8059080498905c64729c0908c1aba8379250bd" 467 | }, 468 | "dist": { 469 | "type": "zip", 470 | "url": "https://api.github.com/repos/promet/drop_ship/zipball/3e8059080498905c64729c0908c1aba8379250bd", 471 | "reference": "3e8059080498905c64729c0908c1aba8379250bd", 472 | "shasum": "" 473 | }, 474 | "require": { 475 | "drupal/features": "~7.2.2", 476 | "drupal/kw_manifests": "1.*" 477 | }, 478 | "type": "drupal-module", 479 | "support": { 480 | "source": "https://github.com/promet/drop_ship/tree/1.0.3", 481 | "issues": "https://github.com/promet/drop_ship/issues" 482 | }, 483 | "time": "2015-05-12 19:55:23" 484 | }, 485 | { 486 | "name": "drupal/drupal", 487 | "version": "7.41.0", 488 | "source": { 489 | "type": "git", 490 | "url": "https://git.drupal.org/project/drupal", 491 | "reference": "69af622114261c1c13cf3c9b5ccc418cd036594b" 492 | }, 493 | "dist": { 494 | "type": "zip", 495 | "url": "https://ftp.drupal.org/files/projects/drupal-7.41.zip", 496 | "reference": null, 497 | "shasum": null 498 | }, 499 | "replace": { 500 | "drupal/aggregator": "self.version", 501 | "drupal/bartik": "self.version", 502 | "drupal/block": "self.version", 503 | "drupal/blog": "self.version", 504 | "drupal/book": "self.version", 505 | "drupal/color": "self.version", 506 | "drupal/comment": "self.version", 507 | "drupal/contact": "self.version", 508 | "drupal/contextual": "self.version", 509 | "drupal/dashboard": "self.version", 510 | "drupal/dblog": "self.version", 511 | "drupal/field": "self.version", 512 | "drupal/field_sql_storage": "self.version", 513 | "drupal/field_ui": "self.version", 514 | "drupal/file": "self.version", 515 | "drupal/filter": "self.version", 516 | "drupal/forum": "self.version", 517 | "drupal/garland": "self.version", 518 | "drupal/help": "self.version", 519 | "drupal/image": "self.version", 520 | "drupal/list": "self.version", 521 | "drupal/locale": "self.version", 522 | "drupal/menu": "self.version", 523 | "drupal/minimal": "self.version", 524 | "drupal/node": "self.version", 525 | "drupal/number": "self.version", 526 | "drupal/openid": "self.version", 527 | "drupal/options": "self.version", 528 | "drupal/overlay": "self.version", 529 | "drupal/path": "self.version", 530 | "drupal/php": "self.version", 531 | "drupal/poll": "self.version", 532 | "drupal/profile": "self.version", 533 | "drupal/rdf": "self.version", 534 | "drupal/search": "self.version", 535 | "drupal/seven": "self.version", 536 | "drupal/shortcut": "self.version", 537 | "drupal/standard": "self.version", 538 | "drupal/stark": "self.version", 539 | "drupal/statistics": "self.version", 540 | "drupal/syslog": "self.version", 541 | "drupal/system": "self.version", 542 | "drupal/taxonomy": "self.version", 543 | "drupal/text": "self.version", 544 | "drupal/toolbar": "self.version", 545 | "drupal/tracker": "self.version", 546 | "drupal/translation": "self.version", 547 | "drupal/trigger": "self.version", 548 | "drupal/update": "self.version", 549 | "drupal/user": "self.version" 550 | }, 551 | "suggest": { 552 | "drupal/block": "Required by drupal/dashboard, drupal/minimal, drupal/standard", 553 | "drupal/color": "Required by drupal/standard", 554 | "drupal/comment": "Required by drupal/forum, drupal/tracker, drupal/standard", 555 | "drupal/contextual": "Required by drupal/standard", 556 | "drupal/dashboard": "Required by drupal/standard", 557 | "drupal/dblog": "Required by drupal/minimal, drupal/standard", 558 | "drupal/field": "Required by drupal/field_sql_storage, drupal/list, drupal/number, drupal/options, drupal/text, drupal/field_ui, drupal/file", 559 | "drupal/field_sql_storage": "Required by drupal/field", 560 | "drupal/field_ui": "Required by drupal/standard", 561 | "drupal/file": "Required by drupal/image, drupal/standard", 562 | "drupal/help": "Required by drupal/standard", 563 | "drupal/image": "Required by drupal/standard", 564 | "drupal/list": "Required by drupal/standard", 565 | "drupal/locale": "Required by drupal/translation", 566 | "drupal/menu": "Required by drupal/standard", 567 | "drupal/number": "Required by drupal/standard", 568 | "drupal/options": "Required by drupal/list, drupal/taxonomy, drupal/standard", 569 | "drupal/overlay": "Required by drupal/standard", 570 | "drupal/path": "Required by drupal/standard", 571 | "drupal/rdf": "Required by drupal/standard", 572 | "drupal/search": "Required by drupal/standard", 573 | "drupal/shortcut": "Required by drupal/standard", 574 | "drupal/taxonomy": "Required by drupal/forum, drupal/standard", 575 | "drupal/text": "Required by drupal/comment", 576 | "drupal/toolbar": "Required by drupal/standard" 577 | }, 578 | "type": "drupal-core", 579 | "extra": { 580 | "branch-alias": { 581 | "dev-7.x-": "7.x-dev" 582 | } 583 | }, 584 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 585 | "description": "Handles general site configuration for administrators.", 586 | "homepage": "https://www.drupal.org/project/drupal" 587 | }, 588 | { 589 | "name": "drupal/drupal-library-installer-plugin", 590 | "version": "0.3", 591 | "source": { 592 | "type": "git", 593 | "url": "https://github.com/generalredneck/drupal-libraries-installer-plugin.git", 594 | "reference": "6d4eb744a1f244dfc290976104ecf522466a768b" 595 | }, 596 | "dist": { 597 | "type": "zip", 598 | "url": "https://api.github.com/repos/generalredneck/drupal-libraries-installer-plugin/zipball/6d4eb744a1f244dfc290976104ecf522466a768b", 599 | "reference": "6d4eb744a1f244dfc290976104ecf522466a768b", 600 | "shasum": "" 601 | }, 602 | "require": { 603 | "composer-plugin-api": "^1.0" 604 | }, 605 | "type": "composer-plugin", 606 | "extra": { 607 | "class": "Drupal\\Composer\\DrupalLibraryInstallerPlugin" 608 | }, 609 | "autoload": { 610 | "psr-0": { 611 | "Drupal\\Composer": "src/" 612 | } 613 | }, 614 | "notification-url": "https://packagist.org/downloads/", 615 | "authors": [ 616 | { 617 | "name": "Allan Chappell", 618 | "email": "generalredneck@gmail.com" 619 | } 620 | ], 621 | "time": "2015-12-04 21:39:03" 622 | }, 623 | { 624 | "name": "drupal/entity", 625 | "version": "7.1.6", 626 | "source": { 627 | "type": "git", 628 | "url": "https://git.drupal.org/project/entity", 629 | "reference": "724e7193419da3b7d3ca165025256371dd74eb4f" 630 | }, 631 | "dist": { 632 | "type": "zip", 633 | "url": "https://ftp.drupal.org/files/projects/entity-7.x-1.6.zip", 634 | "reference": null, 635 | "shasum": null 636 | }, 637 | "require": { 638 | "drupal/drupal": "7.*" 639 | }, 640 | "replace": { 641 | "drupal/entity_token": "self.version" 642 | }, 643 | "type": "drupal-module", 644 | "extra": { 645 | "branch-alias": { 646 | "dev-7.x-1.x": "7.1.x-dev" 647 | } 648 | }, 649 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 650 | "description": "Enables modules to work with any entity type and to provide entities." 651 | }, 652 | { 653 | "name": "drupal/features", 654 | "version": "7.2.7", 655 | "source": { 656 | "type": "git", 657 | "url": "https://git.drupal.org/project/features", 658 | "reference": "a8b9dc5aa67b95fc3e95bb91ed0647baf66c1402" 659 | }, 660 | "dist": { 661 | "type": "zip", 662 | "url": "https://ftp.drupal.org/files/projects/features-7.x-2.7.zip", 663 | "reference": null, 664 | "shasum": null 665 | }, 666 | "require": { 667 | "drupal/drupal": "7.*" 668 | }, 669 | "type": "drupal-module", 670 | "extra": { 671 | "branch-alias": { 672 | "dev-7.x-2.x": "7.2.x-dev" 673 | } 674 | }, 675 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 676 | "description": "Provides feature management for Drupal.", 677 | "homepage": "https://www.drupal.org/project/features" 678 | }, 679 | { 680 | "name": "drupal/kw_manifests", 681 | "version": "1.0.2", 682 | "source": { 683 | "type": "git", 684 | "url": "https://github.com/promet/kw_manifests.git", 685 | "reference": "9e317d0ffffe8e7e9b008be4e9081e4d1359fbfb" 686 | }, 687 | "dist": { 688 | "type": "zip", 689 | "url": "https://api.github.com/repos/promet/kw_manifests/zipball/9e317d0ffffe8e7e9b008be4e9081e4d1359fbfb", 690 | "reference": "9e317d0ffffe8e7e9b008be4e9081e4d1359fbfb", 691 | "shasum": "" 692 | }, 693 | "require": { 694 | "drupal/drupal": "7.*", 695 | "drush/drush": ">=6.0.0 <8.0" 696 | }, 697 | "type": "drupal-module", 698 | "support": { 699 | "source": "https://github.com/promet/kw_manifests/tree/1.0.2" 700 | }, 701 | "time": "2015-12-01 19:42:02" 702 | }, 703 | { 704 | "name": "drupal/module_filter", 705 | "version": "7.2.0", 706 | "source": { 707 | "type": "git", 708 | "url": "https://git.drupal.org/project/module_filter", 709 | "reference": "667c3ad945080427a91137dbc9a9666cffbc2415" 710 | }, 711 | "dist": { 712 | "type": "zip", 713 | "url": "https://ftp.drupal.org/files/projects/module_filter-7.x-2.0.zip", 714 | "reference": null, 715 | "shasum": null 716 | }, 717 | "require": { 718 | "drupal/drupal": "7.*" 719 | }, 720 | "type": "drupal-module", 721 | "extra": { 722 | "branch-alias": { 723 | "dev-7.x-2.x": "7.2.x-dev" 724 | } 725 | }, 726 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 727 | "description": "Filter the modules list." 728 | }, 729 | { 730 | "name": "drupal/omega", 731 | "version": "7.4.4", 732 | "source": { 733 | "type": "git", 734 | "url": "https://git.drupal.org/project/omega", 735 | "reference": "59ad969c9f887850ab5108812370bbdba157ed4e" 736 | }, 737 | "dist": { 738 | "type": "zip", 739 | "url": "https://ftp.drupal.org/files/projects/omega-7.x-4.4.zip", 740 | "reference": null, 741 | "shasum": null 742 | }, 743 | "require": { 744 | "drupal/drupal": "7.*" 745 | }, 746 | "replace": { 747 | "drupal/ohm": "self.version" 748 | }, 749 | "type": "drupal-theme", 750 | "extra": { 751 | "branch-alias": { 752 | "dev-7.x-4.x": "7.4.x-dev" 753 | } 754 | }, 755 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 756 | "description": "A powerful base theme framework.", 757 | "homepage": "https://www.drupal.org/project/omega" 758 | }, 759 | { 760 | "name": "drupal/panels", 761 | "version": "7.3.5", 762 | "source": { 763 | "type": "git", 764 | "url": "https://git.drupal.org/project/panels", 765 | "reference": "26c478e62e0177245aeab8d49448400d2eb688cd" 766 | }, 767 | "dist": { 768 | "type": "zip", 769 | "url": "https://ftp.drupal.org/files/projects/panels-7.x-3.5.zip", 770 | "reference": null, 771 | "shasum": null 772 | }, 773 | "require": { 774 | "drupal/ctools": ">7.1.5", 775 | "drupal/drupal": "7.*" 776 | }, 777 | "replace": { 778 | "drupal/i18n_panels": "self.version", 779 | "drupal/panels_ipe": "self.version", 780 | "drupal/panels_mini": "self.version", 781 | "drupal/panels_node": "self.version" 782 | }, 783 | "suggest": { 784 | "drupal/i18n": "Required by drupal/i18n_panels", 785 | "drupal/i18n_string": "Required by drupal/i18n_panels", 786 | "drupal/i18n_translation": "Required by drupal/i18n_panels" 787 | }, 788 | "type": "drupal-module", 789 | "extra": { 790 | "branch-alias": { 791 | "dev-7.x-3.x": "7.3.x-dev" 792 | } 793 | }, 794 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 795 | "description": "Core Panels display functions; provides no external UI, at least one other Panels module should be enabled." 796 | }, 797 | { 798 | "name": "drupal/registry_rebuild", 799 | "version": "7.2.3", 800 | "source": { 801 | "type": "git", 802 | "url": "https://git.drupal.org/project/registry_rebuild", 803 | "reference": "5299e4d72bf09500e345aabb96ddb48385499ae9" 804 | }, 805 | "dist": { 806 | "type": "zip", 807 | "url": "https://ftp.drupal.org/files/projects/registry_rebuild-7.x-2.3.zip", 808 | "reference": null, 809 | "shasum": null 810 | }, 811 | "type": "drupal-drush", 812 | "extra": { 813 | "branch-alias": { 814 | "dev-7.x-2.x": "7.2.x-dev" 815 | } 816 | }, 817 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 818 | "license": [ 819 | "GPL-2.0+" 820 | ], 821 | "description": "Provides the registry_rebuild script.", 822 | "time": "2015-12-02 22:46:41" 823 | }, 824 | { 825 | "name": "drupal/strongarm", 826 | "version": "7.2.0", 827 | "source": { 828 | "type": "git", 829 | "url": "https://git.drupal.org/project/strongarm", 830 | "reference": "895016eb5b99b9dc3e704f1b56e58808eedce30a" 831 | }, 832 | "dist": { 833 | "type": "zip", 834 | "url": "https://ftp.drupal.org/files/projects/strongarm-7.x-2.0.zip", 835 | "reference": null, 836 | "shasum": null 837 | }, 838 | "require": { 839 | "drupal/ctools": "7.*", 840 | "drupal/drupal": "7.*" 841 | }, 842 | "type": "drupal-module", 843 | "extra": { 844 | "branch-alias": { 845 | "dev-7.x-2.x": "7.2.x-dev" 846 | } 847 | }, 848 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 849 | "description": "Enforces variable values defined by modules that need settings set to operate properly." 850 | }, 851 | { 852 | "name": "drupal/tangler", 853 | "version": "0.1.9", 854 | "source": { 855 | "type": "git", 856 | "url": "https://github.com/winmillwill/drupal-tangler.git", 857 | "reference": "9d3d489107dd7a532ef8f88da57eae7e7c9d360e" 858 | }, 859 | "dist": { 860 | "type": "zip", 861 | "url": "https://api.github.com/repos/winmillwill/drupal-tangler/zipball/9d3d489107dd7a532ef8f88da57eae7e7c9d360e", 862 | "reference": "9d3d489107dd7a532ef8f88da57eae7e7c9d360e", 863 | "shasum": "" 864 | }, 865 | "require": { 866 | "composer/composer": "~1.0@alpha", 867 | "symfony/console": "*", 868 | "symfony/filesystem": "*@stable", 869 | "symfony/finder": "*@stable" 870 | }, 871 | "bin": [ 872 | "bin/drupal_tangle" 873 | ], 874 | "type": "library", 875 | "autoload": { 876 | "psr-4": { 877 | "Drupal\\Tangler\\": "src/" 878 | } 879 | }, 880 | "notification-url": "https://packagist.org/downloads/", 881 | "time": "2014-09-18 13:54:57" 882 | }, 883 | { 884 | "name": "drupal/views", 885 | "version": "7.3.13", 886 | "source": { 887 | "type": "git", 888 | "url": "https://git.drupal.org/project/views", 889 | "reference": "5c2bfc9638e3e78023d1efb754b79d4ac994d0c6" 890 | }, 891 | "dist": { 892 | "type": "zip", 893 | "url": "https://ftp.drupal.org/files/projects/views-7.x-3.13.zip", 894 | "reference": null, 895 | "shasum": null 896 | }, 897 | "require": { 898 | "drupal/ctools": "7.*", 899 | "drupal/drupal": "7.*" 900 | }, 901 | "replace": { 902 | "drupal/views_ui": "self.version" 903 | }, 904 | "type": "drupal-module", 905 | "extra": { 906 | "branch-alias": { 907 | "dev-7.x-3.x": "7.3.x-dev" 908 | } 909 | }, 910 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 911 | "description": "Create customized lists and queries from your database.", 912 | "homepage": "https://www.drupal.org/project/views" 913 | }, 914 | { 915 | "name": "drush/drush", 916 | "version": "6.7.0", 917 | "source": { 918 | "type": "git", 919 | "url": "https://github.com/drush-ops/drush.git", 920 | "reference": "7e17b3aed354eb70c924b61729da829baf7fe1f6" 921 | }, 922 | "dist": { 923 | "type": "zip", 924 | "url": "https://api.github.com/repos/drush-ops/drush/zipball/7e17b3aed354eb70c924b61729da829baf7fe1f6", 925 | "reference": "7e17b3aed354eb70c924b61729da829baf7fe1f6", 926 | "shasum": "" 927 | }, 928 | "require": { 929 | "php": ">=5.3.0" 930 | }, 931 | "require-dev": { 932 | "phpunit/phpunit": ">=3.5" 933 | }, 934 | "bin": [ 935 | "drush", 936 | "drush.php", 937 | "drush.bat", 938 | "drush.complete.sh" 939 | ], 940 | "type": "library", 941 | "notification-url": "https://packagist.org/downloads/", 942 | "license": [ 943 | "GPL-2.0+" 944 | ], 945 | "authors": [ 946 | { 947 | "name": "Moshe Weitzman", 948 | "email": "weitzman@tejasa.com" 949 | }, 950 | { 951 | "name": "Owen Barton", 952 | "email": "drupal@owenbarton.com" 953 | }, 954 | { 955 | "name": "Mark Sonnabaum", 956 | "email": "marksonnabaum@gmail.com" 957 | }, 958 | { 959 | "name": "Antoine Beaupré", 960 | "email": "anarcat@koumbit.org" 961 | }, 962 | { 963 | "name": "Greg Anderson", 964 | "email": "greg.1.anderson@greenknowe.org" 965 | }, 966 | { 967 | "name": "Jonathan Araña Cruz", 968 | "email": "jonhattan@faita.net" 969 | }, 970 | { 971 | "name": "Jonathan Hedstrom", 972 | "email": "jhedstrom@gmail.com" 973 | } 974 | ], 975 | "description": "Drush is a command line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend some of our working hours hacking away at the command prompt.", 976 | "homepage": "http://www.drush.org", 977 | "time": "2015-12-02 15:10:03" 978 | }, 979 | { 980 | "name": "justinrainbow/json-schema", 981 | "version": "1.5.0", 982 | "source": { 983 | "type": "git", 984 | "url": "https://github.com/justinrainbow/json-schema.git", 985 | "reference": "a4bee9f4b344b66e0a0d96c7afae1e92edf385fe" 986 | }, 987 | "dist": { 988 | "type": "zip", 989 | "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/a4bee9f4b344b66e0a0d96c7afae1e92edf385fe", 990 | "reference": "a4bee9f4b344b66e0a0d96c7afae1e92edf385fe", 991 | "shasum": "" 992 | }, 993 | "require": { 994 | "php": ">=5.3.2" 995 | }, 996 | "require-dev": { 997 | "json-schema/json-schema-test-suite": "1.1.0", 998 | "phpdocumentor/phpdocumentor": "~2", 999 | "phpunit/phpunit": "~3.7" 1000 | }, 1001 | "bin": [ 1002 | "bin/validate-json" 1003 | ], 1004 | "type": "library", 1005 | "extra": { 1006 | "branch-alias": { 1007 | "dev-master": "1.4.x-dev" 1008 | } 1009 | }, 1010 | "autoload": { 1011 | "psr-4": { 1012 | "JsonSchema\\": "src/JsonSchema/" 1013 | } 1014 | }, 1015 | "notification-url": "https://packagist.org/downloads/", 1016 | "license": [ 1017 | "BSD-3-Clause" 1018 | ], 1019 | "authors": [ 1020 | { 1021 | "name": "Bruno Prieto Reis", 1022 | "email": "bruno.p.reis@gmail.com" 1023 | }, 1024 | { 1025 | "name": "Justin Rainbow", 1026 | "email": "justin.rainbow@gmail.com" 1027 | }, 1028 | { 1029 | "name": "Igor Wiedler", 1030 | "email": "igor@wiedler.ch" 1031 | }, 1032 | { 1033 | "name": "Robert Schönthal", 1034 | "email": "seroscho@googlemail.com" 1035 | } 1036 | ], 1037 | "description": "A library to validate a json schema.", 1038 | "homepage": "https://github.com/justinrainbow/json-schema", 1039 | "keywords": [ 1040 | "json", 1041 | "schema" 1042 | ], 1043 | "time": "2015-09-08 22:28:04" 1044 | }, 1045 | { 1046 | "name": "seld/cli-prompt", 1047 | "version": "1.0.0", 1048 | "source": { 1049 | "type": "git", 1050 | "url": "https://github.com/Seldaek/cli-prompt.git", 1051 | "reference": "fe114c7a6ac5cb0ce76932ae4017024d9842a49c" 1052 | }, 1053 | "dist": { 1054 | "type": "zip", 1055 | "url": "https://api.github.com/repos/Seldaek/cli-prompt/zipball/fe114c7a6ac5cb0ce76932ae4017024d9842a49c", 1056 | "reference": "fe114c7a6ac5cb0ce76932ae4017024d9842a49c", 1057 | "shasum": "" 1058 | }, 1059 | "require": { 1060 | "php": ">=5.3" 1061 | }, 1062 | "type": "library", 1063 | "extra": { 1064 | "branch-alias": { 1065 | "dev-master": "1.x-dev" 1066 | } 1067 | }, 1068 | "autoload": { 1069 | "psr-4": { 1070 | "Seld\\CliPrompt\\": "src/" 1071 | } 1072 | }, 1073 | "notification-url": "https://packagist.org/downloads/", 1074 | "license": [ 1075 | "MIT" 1076 | ], 1077 | "authors": [ 1078 | { 1079 | "name": "Jordi Boggiano", 1080 | "email": "j.boggiano@seld.be" 1081 | } 1082 | ], 1083 | "description": "Allows you to prompt for user input on the command line, and optionally hide the characters they type", 1084 | "keywords": [ 1085 | "cli", 1086 | "console", 1087 | "hidden", 1088 | "input", 1089 | "prompt" 1090 | ], 1091 | "time": "2015-04-30 20:24:49" 1092 | }, 1093 | { 1094 | "name": "seld/jsonlint", 1095 | "version": "1.4.0", 1096 | "source": { 1097 | "type": "git", 1098 | "url": "https://github.com/Seldaek/jsonlint.git", 1099 | "reference": "66834d3e3566bb5798db7294619388786ae99394" 1100 | }, 1101 | "dist": { 1102 | "type": "zip", 1103 | "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/66834d3e3566bb5798db7294619388786ae99394", 1104 | "reference": "66834d3e3566bb5798db7294619388786ae99394", 1105 | "shasum": "" 1106 | }, 1107 | "require": { 1108 | "php": "^5.3 || ^7.0" 1109 | }, 1110 | "bin": [ 1111 | "bin/jsonlint" 1112 | ], 1113 | "type": "library", 1114 | "autoload": { 1115 | "psr-4": { 1116 | "Seld\\JsonLint\\": "src/Seld/JsonLint/" 1117 | } 1118 | }, 1119 | "notification-url": "https://packagist.org/downloads/", 1120 | "license": [ 1121 | "MIT" 1122 | ], 1123 | "authors": [ 1124 | { 1125 | "name": "Jordi Boggiano", 1126 | "email": "j.boggiano@seld.be", 1127 | "homepage": "http://seld.be" 1128 | } 1129 | ], 1130 | "description": "JSON Linter", 1131 | "keywords": [ 1132 | "json", 1133 | "linter", 1134 | "parser", 1135 | "validator" 1136 | ], 1137 | "time": "2015-11-21 02:21:41" 1138 | }, 1139 | { 1140 | "name": "seld/phar-utils", 1141 | "version": "1.0.1", 1142 | "source": { 1143 | "type": "git", 1144 | "url": "https://github.com/Seldaek/phar-utils.git", 1145 | "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a" 1146 | }, 1147 | "dist": { 1148 | "type": "zip", 1149 | "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/7009b5139491975ef6486545a39f3e6dad5ac30a", 1150 | "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a", 1151 | "shasum": "" 1152 | }, 1153 | "require": { 1154 | "php": ">=5.3" 1155 | }, 1156 | "type": "library", 1157 | "extra": { 1158 | "branch-alias": { 1159 | "dev-master": "1.x-dev" 1160 | } 1161 | }, 1162 | "autoload": { 1163 | "psr-4": { 1164 | "Seld\\PharUtils\\": "src/" 1165 | } 1166 | }, 1167 | "notification-url": "https://packagist.org/downloads/", 1168 | "license": [ 1169 | "MIT" 1170 | ], 1171 | "authors": [ 1172 | { 1173 | "name": "Jordi Boggiano", 1174 | "email": "j.boggiano@seld.be" 1175 | } 1176 | ], 1177 | "description": "PHAR file format utilities, for when PHP phars you up", 1178 | "keywords": [ 1179 | "phra" 1180 | ], 1181 | "time": "2015-10-13 18:44:15" 1182 | }, 1183 | { 1184 | "name": "symfony/config", 1185 | "version": "v2.8.0", 1186 | "source": { 1187 | "type": "git", 1188 | "url": "https://github.com/symfony/config.git", 1189 | "reference": "f21c97aec1b5302d2dc0d17047ea8f4e4ff93aae" 1190 | }, 1191 | "dist": { 1192 | "type": "zip", 1193 | "url": "https://api.github.com/repos/symfony/config/zipball/f21c97aec1b5302d2dc0d17047ea8f4e4ff93aae", 1194 | "reference": "f21c97aec1b5302d2dc0d17047ea8f4e4ff93aae", 1195 | "shasum": "" 1196 | }, 1197 | "require": { 1198 | "php": ">=5.3.9", 1199 | "symfony/filesystem": "~2.3|~3.0.0" 1200 | }, 1201 | "type": "library", 1202 | "extra": { 1203 | "branch-alias": { 1204 | "dev-master": "2.8-dev" 1205 | } 1206 | }, 1207 | "autoload": { 1208 | "psr-4": { 1209 | "Symfony\\Component\\Config\\": "" 1210 | }, 1211 | "exclude-from-classmap": [ 1212 | "/Tests/" 1213 | ] 1214 | }, 1215 | "notification-url": "https://packagist.org/downloads/", 1216 | "license": [ 1217 | "MIT" 1218 | ], 1219 | "authors": [ 1220 | { 1221 | "name": "Fabien Potencier", 1222 | "email": "fabien@symfony.com" 1223 | }, 1224 | { 1225 | "name": "Symfony Community", 1226 | "homepage": "https://symfony.com/contributors" 1227 | } 1228 | ], 1229 | "description": "Symfony Config Component", 1230 | "homepage": "https://symfony.com", 1231 | "time": "2015-11-23 20:38:01" 1232 | }, 1233 | { 1234 | "name": "symfony/console", 1235 | "version": "v2.8.0", 1236 | "source": { 1237 | "type": "git", 1238 | "url": "https://github.com/symfony/console.git", 1239 | "reference": "d232bfc100dfd32b18ccbcab4bcc8f28697b7e41" 1240 | }, 1241 | "dist": { 1242 | "type": "zip", 1243 | "url": "https://api.github.com/repos/symfony/console/zipball/d232bfc100dfd32b18ccbcab4bcc8f28697b7e41", 1244 | "reference": "d232bfc100dfd32b18ccbcab4bcc8f28697b7e41", 1245 | "shasum": "" 1246 | }, 1247 | "require": { 1248 | "php": ">=5.3.9", 1249 | "symfony/polyfill-mbstring": "~1.0" 1250 | }, 1251 | "require-dev": { 1252 | "psr/log": "~1.0", 1253 | "symfony/event-dispatcher": "~2.1|~3.0.0", 1254 | "symfony/process": "~2.1|~3.0.0" 1255 | }, 1256 | "suggest": { 1257 | "psr/log": "For using the console logger", 1258 | "symfony/event-dispatcher": "", 1259 | "symfony/process": "" 1260 | }, 1261 | "type": "library", 1262 | "extra": { 1263 | "branch-alias": { 1264 | "dev-master": "2.8-dev" 1265 | } 1266 | }, 1267 | "autoload": { 1268 | "psr-4": { 1269 | "Symfony\\Component\\Console\\": "" 1270 | }, 1271 | "exclude-from-classmap": [ 1272 | "/Tests/" 1273 | ] 1274 | }, 1275 | "notification-url": "https://packagist.org/downloads/", 1276 | "license": [ 1277 | "MIT" 1278 | ], 1279 | "authors": [ 1280 | { 1281 | "name": "Fabien Potencier", 1282 | "email": "fabien@symfony.com" 1283 | }, 1284 | { 1285 | "name": "Symfony Community", 1286 | "homepage": "https://symfony.com/contributors" 1287 | } 1288 | ], 1289 | "description": "Symfony Console Component", 1290 | "homepage": "https://symfony.com", 1291 | "time": "2015-11-30 12:35:10" 1292 | }, 1293 | { 1294 | "name": "symfony/filesystem", 1295 | "version": "v2.8.0", 1296 | "source": { 1297 | "type": "git", 1298 | "url": "https://github.com/symfony/filesystem.git", 1299 | "reference": "3e661a0d521ac67496515fa6e6704bd61bcfff60" 1300 | }, 1301 | "dist": { 1302 | "type": "zip", 1303 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/3e661a0d521ac67496515fa6e6704bd61bcfff60", 1304 | "reference": "3e661a0d521ac67496515fa6e6704bd61bcfff60", 1305 | "shasum": "" 1306 | }, 1307 | "require": { 1308 | "php": ">=5.3.9" 1309 | }, 1310 | "type": "library", 1311 | "extra": { 1312 | "branch-alias": { 1313 | "dev-master": "2.8-dev" 1314 | } 1315 | }, 1316 | "autoload": { 1317 | "psr-4": { 1318 | "Symfony\\Component\\Filesystem\\": "" 1319 | }, 1320 | "exclude-from-classmap": [ 1321 | "/Tests/" 1322 | ] 1323 | }, 1324 | "notification-url": "https://packagist.org/downloads/", 1325 | "license": [ 1326 | "MIT" 1327 | ], 1328 | "authors": [ 1329 | { 1330 | "name": "Fabien Potencier", 1331 | "email": "fabien@symfony.com" 1332 | }, 1333 | { 1334 | "name": "Symfony Community", 1335 | "homepage": "https://symfony.com/contributors" 1336 | } 1337 | ], 1338 | "description": "Symfony Filesystem Component", 1339 | "homepage": "https://symfony.com", 1340 | "time": "2015-11-23 10:19:46" 1341 | }, 1342 | { 1343 | "name": "symfony/finder", 1344 | "version": "v2.8.0", 1345 | "source": { 1346 | "type": "git", 1347 | "url": "https://github.com/symfony/finder.git", 1348 | "reference": "ead9b07af4ba77b6507bee697396a5c79e633f08" 1349 | }, 1350 | "dist": { 1351 | "type": "zip", 1352 | "url": "https://api.github.com/repos/symfony/finder/zipball/ead9b07af4ba77b6507bee697396a5c79e633f08", 1353 | "reference": "ead9b07af4ba77b6507bee697396a5c79e633f08", 1354 | "shasum": "" 1355 | }, 1356 | "require": { 1357 | "php": ">=5.3.9" 1358 | }, 1359 | "type": "library", 1360 | "extra": { 1361 | "branch-alias": { 1362 | "dev-master": "2.8-dev" 1363 | } 1364 | }, 1365 | "autoload": { 1366 | "psr-4": { 1367 | "Symfony\\Component\\Finder\\": "" 1368 | }, 1369 | "exclude-from-classmap": [ 1370 | "/Tests/" 1371 | ] 1372 | }, 1373 | "notification-url": "https://packagist.org/downloads/", 1374 | "license": [ 1375 | "MIT" 1376 | ], 1377 | "authors": [ 1378 | { 1379 | "name": "Fabien Potencier", 1380 | "email": "fabien@symfony.com" 1381 | }, 1382 | { 1383 | "name": "Symfony Community", 1384 | "homepage": "https://symfony.com/contributors" 1385 | } 1386 | ], 1387 | "description": "Symfony Finder Component", 1388 | "homepage": "https://symfony.com", 1389 | "time": "2015-10-30 20:15:42" 1390 | }, 1391 | { 1392 | "name": "symfony/polyfill-mbstring", 1393 | "version": "v1.0.0", 1394 | "source": { 1395 | "type": "git", 1396 | "url": "https://github.com/symfony/polyfill-mbstring.git", 1397 | "reference": "0b6a8940385311a24e060ec1fe35680e17c74497" 1398 | }, 1399 | "dist": { 1400 | "type": "zip", 1401 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0b6a8940385311a24e060ec1fe35680e17c74497", 1402 | "reference": "0b6a8940385311a24e060ec1fe35680e17c74497", 1403 | "shasum": "" 1404 | }, 1405 | "require": { 1406 | "php": ">=5.3.3" 1407 | }, 1408 | "type": "library", 1409 | "extra": { 1410 | "branch-alias": { 1411 | "dev-master": "1.0-dev" 1412 | } 1413 | }, 1414 | "autoload": { 1415 | "psr-4": { 1416 | "Symfony\\Polyfill\\Mbstring\\": "" 1417 | }, 1418 | "files": [ 1419 | "bootstrap.php" 1420 | ] 1421 | }, 1422 | "notification-url": "https://packagist.org/downloads/", 1423 | "license": [ 1424 | "MIT" 1425 | ], 1426 | "authors": [ 1427 | { 1428 | "name": "Nicolas Grekas", 1429 | "email": "p@tchwork.com" 1430 | }, 1431 | { 1432 | "name": "Symfony Community", 1433 | "homepage": "https://symfony.com/contributors" 1434 | } 1435 | ], 1436 | "description": "Symfony polyfill for the Mbstring extension", 1437 | "homepage": "https://symfony.com", 1438 | "keywords": [ 1439 | "compatibility", 1440 | "mbstring", 1441 | "polyfill", 1442 | "portable", 1443 | "shim" 1444 | ], 1445 | "time": "2015-11-04 20:28:58" 1446 | }, 1447 | { 1448 | "name": "symfony/process", 1449 | "version": "v2.8.0", 1450 | "source": { 1451 | "type": "git", 1452 | "url": "https://github.com/symfony/process.git", 1453 | "reference": "1b988a88e3551102f3c2d9e1d47a18c3a78d6312" 1454 | }, 1455 | "dist": { 1456 | "type": "zip", 1457 | "url": "https://api.github.com/repos/symfony/process/zipball/1b988a88e3551102f3c2d9e1d47a18c3a78d6312", 1458 | "reference": "1b988a88e3551102f3c2d9e1d47a18c3a78d6312", 1459 | "shasum": "" 1460 | }, 1461 | "require": { 1462 | "php": ">=5.3.9" 1463 | }, 1464 | "type": "library", 1465 | "extra": { 1466 | "branch-alias": { 1467 | "dev-master": "2.8-dev" 1468 | } 1469 | }, 1470 | "autoload": { 1471 | "psr-4": { 1472 | "Symfony\\Component\\Process\\": "" 1473 | }, 1474 | "exclude-from-classmap": [ 1475 | "/Tests/" 1476 | ] 1477 | }, 1478 | "notification-url": "https://packagist.org/downloads/", 1479 | "license": [ 1480 | "MIT" 1481 | ], 1482 | "authors": [ 1483 | { 1484 | "name": "Fabien Potencier", 1485 | "email": "fabien@symfony.com" 1486 | }, 1487 | { 1488 | "name": "Symfony Community", 1489 | "homepage": "https://symfony.com/contributors" 1490 | } 1491 | ], 1492 | "description": "Symfony Process Component", 1493 | "homepage": "https://symfony.com", 1494 | "time": "2015-11-30 12:35:10" 1495 | }, 1496 | { 1497 | "name": "symfony/yaml", 1498 | "version": "v2.8.0", 1499 | "source": { 1500 | "type": "git", 1501 | "url": "https://github.com/symfony/yaml.git", 1502 | "reference": "f79824187de95064a2f5038904c4d7f0227fedb5" 1503 | }, 1504 | "dist": { 1505 | "type": "zip", 1506 | "url": "https://api.github.com/repos/symfony/yaml/zipball/f79824187de95064a2f5038904c4d7f0227fedb5", 1507 | "reference": "f79824187de95064a2f5038904c4d7f0227fedb5", 1508 | "shasum": "" 1509 | }, 1510 | "require": { 1511 | "php": ">=5.3.9" 1512 | }, 1513 | "type": "library", 1514 | "extra": { 1515 | "branch-alias": { 1516 | "dev-master": "2.8-dev" 1517 | } 1518 | }, 1519 | "autoload": { 1520 | "psr-4": { 1521 | "Symfony\\Component\\Yaml\\": "" 1522 | }, 1523 | "exclude-from-classmap": [ 1524 | "/Tests/" 1525 | ] 1526 | }, 1527 | "notification-url": "https://packagist.org/downloads/", 1528 | "license": [ 1529 | "MIT" 1530 | ], 1531 | "authors": [ 1532 | { 1533 | "name": "Fabien Potencier", 1534 | "email": "fabien@symfony.com" 1535 | }, 1536 | { 1537 | "name": "Symfony Community", 1538 | "homepage": "https://symfony.com/contributors" 1539 | } 1540 | ], 1541 | "description": "Symfony Yaml Component", 1542 | "homepage": "https://symfony.com", 1543 | "time": "2015-11-30 12:35:10" 1544 | }, 1545 | { 1546 | "name": "winmillwill/settings_compile", 1547 | "version": "2.1.1", 1548 | "source": { 1549 | "type": "git", 1550 | "url": "https://github.com/winmillwill/settings_compile.git", 1551 | "reference": "9d0259fb139e4c3e94a5798ee0a942d33a544e20" 1552 | }, 1553 | "dist": { 1554 | "type": "zip", 1555 | "url": "https://api.github.com/repos/winmillwill/settings_compile/zipball/9d0259fb139e4c3e94a5798ee0a942d33a544e20", 1556 | "reference": "9d0259fb139e4c3e94a5798ee0a942d33a544e20", 1557 | "shasum": "" 1558 | }, 1559 | "require": { 1560 | "symfony/config": "*", 1561 | "symfony/yaml": "*" 1562 | }, 1563 | "require-dev": { 1564 | "phpunit/phpunit": "*" 1565 | }, 1566 | "bin": [ 1567 | "bin/settings_compile" 1568 | ], 1569 | "type": "library", 1570 | "extra": { 1571 | "branch-alias": { 1572 | "dev-master": "2.1.x-dev" 1573 | } 1574 | }, 1575 | "autoload": { 1576 | "psr-4": { 1577 | "Drupal\\Settings\\": "src/" 1578 | } 1579 | }, 1580 | "notification-url": "https://packagist.org/downloads/", 1581 | "authors": [ 1582 | { 1583 | "name": "Will Milton", 1584 | "email": "wa.milton@gmail.com" 1585 | } 1586 | ], 1587 | "time": "2014-10-15 17:50:37" 1588 | } 1589 | ], 1590 | "packages-dev": [ 1591 | { 1592 | "name": "behat/behat", 1593 | "version": "v2.5.2", 1594 | "source": { 1595 | "type": "git", 1596 | "url": "https://github.com/Behat/Behat.git", 1597 | "reference": "a12154aae8a09248637fbca8ef3b2ef2ac71f2aa" 1598 | }, 1599 | "dist": { 1600 | "type": "zip", 1601 | "url": "https://api.github.com/repos/Behat/Behat/zipball/a12154aae8a09248637fbca8ef3b2ef2ac71f2aa", 1602 | "reference": "a12154aae8a09248637fbca8ef3b2ef2ac71f2aa", 1603 | "shasum": "" 1604 | }, 1605 | "require": { 1606 | "behat/gherkin": "~2.3.0", 1607 | "php": ">=5.3.1", 1608 | "symfony/config": "~2.0", 1609 | "symfony/console": "~2.0", 1610 | "symfony/dependency-injection": "~2.0", 1611 | "symfony/event-dispatcher": "~2.0", 1612 | "symfony/finder": "~2.0", 1613 | "symfony/translation": "~2.0", 1614 | "symfony/yaml": "~2.0" 1615 | }, 1616 | "require-dev": { 1617 | "phpunit/phpunit": "~3.7.19" 1618 | }, 1619 | "suggest": { 1620 | "behat/mink-extension": "for integration with Mink testing framework", 1621 | "behat/symfony2-extension": "for integration with Symfony2 web framework", 1622 | "behat/yii-extension": "for integration with Yii web framework" 1623 | }, 1624 | "bin": [ 1625 | "bin/behat" 1626 | ], 1627 | "type": "library", 1628 | "autoload": { 1629 | "psr-0": { 1630 | "Behat\\Behat": "src/" 1631 | } 1632 | }, 1633 | "notification-url": "https://packagist.org/downloads/", 1634 | "license": [ 1635 | "MIT" 1636 | ], 1637 | "authors": [ 1638 | { 1639 | "name": "Konstantin Kudryashov", 1640 | "email": "ever.zet@gmail.com", 1641 | "homepage": "http://everzet.com" 1642 | } 1643 | ], 1644 | "description": "Scenario-oriented BDD framework for PHP 5.3", 1645 | "homepage": "http://behat.org/", 1646 | "keywords": [ 1647 | "BDD", 1648 | "Behat", 1649 | "Symfony2" 1650 | ], 1651 | "time": "2014-02-12 17:03:46" 1652 | }, 1653 | { 1654 | "name": "behat/gherkin", 1655 | "version": "v2.3.5", 1656 | "source": { 1657 | "type": "git", 1658 | "url": "https://github.com/Behat/Gherkin.git", 1659 | "reference": "2b33963da5525400573560c173ab5c9c057e1852" 1660 | }, 1661 | "dist": { 1662 | "type": "zip", 1663 | "url": "https://api.github.com/repos/Behat/Gherkin/zipball/2b33963da5525400573560c173ab5c9c057e1852", 1664 | "reference": "2b33963da5525400573560c173ab5c9c057e1852", 1665 | "shasum": "" 1666 | }, 1667 | "require": { 1668 | "php": ">=5.3.1", 1669 | "symfony/finder": "~2.0" 1670 | }, 1671 | "require-dev": { 1672 | "symfony/config": "~2.0", 1673 | "symfony/translation": "~2.0", 1674 | "symfony/yaml": "~2.0" 1675 | }, 1676 | "suggest": { 1677 | "symfony/config": "If you want to use Config component to manage resources", 1678 | "symfony/translation": "If you want to use Symfony2 translations adapter", 1679 | "symfony/yaml": "If you want to parse features, represented in YAML files" 1680 | }, 1681 | "type": "library", 1682 | "extra": { 1683 | "branch-alias": { 1684 | "dev-develop": "2.2-dev" 1685 | } 1686 | }, 1687 | "autoload": { 1688 | "psr-0": { 1689 | "Behat\\Gherkin": "src/" 1690 | } 1691 | }, 1692 | "notification-url": "https://packagist.org/downloads/", 1693 | "license": [ 1694 | "MIT" 1695 | ], 1696 | "authors": [ 1697 | { 1698 | "name": "Konstantin Kudryashov", 1699 | "email": "ever.zet@gmail.com", 1700 | "homepage": "http://everzet.com" 1701 | } 1702 | ], 1703 | "description": "Gherkin DSL parser for PHP 5.3", 1704 | "homepage": "http://behat.org/", 1705 | "keywords": [ 1706 | "BDD", 1707 | "Behat", 1708 | "DSL", 1709 | "Symfony2", 1710 | "parser" 1711 | ], 1712 | "time": "2013-10-15 11:22:17" 1713 | }, 1714 | { 1715 | "name": "behat/mink", 1716 | "version": "v1.5.0", 1717 | "source": { 1718 | "type": "git", 1719 | "url": "https://github.com/minkphp/Mink.git", 1720 | "reference": "0769e6d9726c140a54dbf827a438c0f9912749fe" 1721 | }, 1722 | "dist": { 1723 | "type": "zip", 1724 | "url": "https://api.github.com/repos/minkphp/Mink/zipball/0769e6d9726c140a54dbf827a438c0f9912749fe", 1725 | "reference": "0769e6d9726c140a54dbf827a438c0f9912749fe", 1726 | "shasum": "" 1727 | }, 1728 | "require": { 1729 | "php": ">=5.3.1", 1730 | "symfony/css-selector": "~2.0" 1731 | }, 1732 | "suggest": { 1733 | "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)", 1734 | "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation", 1735 | "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", 1736 | "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)" 1737 | }, 1738 | "type": "library", 1739 | "extra": { 1740 | "branch-alias": { 1741 | "dev-develop": "1.5.x-dev" 1742 | } 1743 | }, 1744 | "autoload": { 1745 | "psr-0": { 1746 | "Behat\\Mink": "src/" 1747 | } 1748 | }, 1749 | "notification-url": "https://packagist.org/downloads/", 1750 | "license": [ 1751 | "MIT" 1752 | ], 1753 | "authors": [ 1754 | { 1755 | "name": "Konstantin Kudryashov", 1756 | "email": "ever.zet@gmail.com", 1757 | "homepage": "http://everzet.com" 1758 | } 1759 | ], 1760 | "description": "Web acceptance testing framework for PHP 5.3", 1761 | "homepage": "http://mink.behat.org/", 1762 | "keywords": [ 1763 | "browser", 1764 | "testing", 1765 | "web" 1766 | ], 1767 | "time": "2013-04-13 23:39:27" 1768 | }, 1769 | { 1770 | "name": "behat/mink-browserkit-driver", 1771 | "version": "v1.1.0", 1772 | "source": { 1773 | "type": "git", 1774 | "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", 1775 | "reference": "63960c8fcad4529faad1ff33e950217980baa64c" 1776 | }, 1777 | "dist": { 1778 | "type": "zip", 1779 | "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/63960c8fcad4529faad1ff33e950217980baa64c", 1780 | "reference": "63960c8fcad4529faad1ff33e950217980baa64c", 1781 | "shasum": "" 1782 | }, 1783 | "require": { 1784 | "behat/mink": "~1.5.0", 1785 | "php": ">=5.3.1", 1786 | "symfony/browser-kit": "~2.0", 1787 | "symfony/dom-crawler": "~2.0" 1788 | }, 1789 | "require-dev": { 1790 | "silex/silex": "@dev" 1791 | }, 1792 | "type": "mink-driver", 1793 | "extra": { 1794 | "branch-alias": { 1795 | "dev-master": "1.1.x-dev" 1796 | } 1797 | }, 1798 | "autoload": { 1799 | "psr-0": { 1800 | "Behat\\Mink\\Driver": "src/" 1801 | } 1802 | }, 1803 | "notification-url": "https://packagist.org/downloads/", 1804 | "license": [ 1805 | "MIT" 1806 | ], 1807 | "authors": [ 1808 | { 1809 | "name": "Konstantin Kudryashov", 1810 | "email": "ever.zet@gmail.com", 1811 | "homepage": "http://everzet.com" 1812 | } 1813 | ], 1814 | "description": "Symfony2 BrowserKit driver for Mink framework", 1815 | "homepage": "http://mink.behat.org/", 1816 | "keywords": [ 1817 | "Mink", 1818 | "Symfony2", 1819 | "browser", 1820 | "testing" 1821 | ], 1822 | "time": "2013-04-13 23:46:30" 1823 | }, 1824 | { 1825 | "name": "behat/mink-extension", 1826 | "version": "v1.3.3", 1827 | "source": { 1828 | "type": "git", 1829 | "url": "https://github.com/Behat/MinkExtension.git", 1830 | "reference": "b885b9407cba50a954f72c69ed1b2f8d3bc694f8" 1831 | }, 1832 | "dist": { 1833 | "type": "zip", 1834 | "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/b885b9407cba50a954f72c69ed1b2f8d3bc694f8", 1835 | "reference": "b885b9407cba50a954f72c69ed1b2f8d3bc694f8", 1836 | "shasum": "" 1837 | }, 1838 | "require": { 1839 | "behat/behat": "~2.5.0", 1840 | "behat/mink": "~1.5", 1841 | "php": ">=5.3.2", 1842 | "symfony/config": "~2.2" 1843 | }, 1844 | "require-dev": { 1845 | "behat/mink-goutte-driver": "~1.0", 1846 | "fabpot/goutte": "~1.0" 1847 | }, 1848 | "type": "behat-extension", 1849 | "autoload": { 1850 | "psr-0": { 1851 | "Behat\\MinkExtension": "src/" 1852 | } 1853 | }, 1854 | "notification-url": "https://packagist.org/downloads/", 1855 | "license": [ 1856 | "MIT" 1857 | ], 1858 | "authors": [ 1859 | { 1860 | "name": "Konstantin Kudryashov", 1861 | "email": "ever.zet@gmail.com", 1862 | "homepage": "http://everzet.com" 1863 | } 1864 | ], 1865 | "description": "Mink extension for Behat", 1866 | "homepage": "http://mink.behat.org", 1867 | "keywords": [ 1868 | "browser", 1869 | "gui", 1870 | "test", 1871 | "web" 1872 | ], 1873 | "time": "2014-05-15 19:27:39" 1874 | }, 1875 | { 1876 | "name": "behat/mink-goutte-driver", 1877 | "version": "v1.0.9", 1878 | "source": { 1879 | "type": "git", 1880 | "url": "https://github.com/minkphp/MinkGoutteDriver.git", 1881 | "reference": "fa1b073b48761464feb0b05e6825da44b20118d8" 1882 | }, 1883 | "dist": { 1884 | "type": "zip", 1885 | "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/fa1b073b48761464feb0b05e6825da44b20118d8", 1886 | "reference": "fa1b073b48761464feb0b05e6825da44b20118d8", 1887 | "shasum": "" 1888 | }, 1889 | "require": { 1890 | "behat/mink-browserkit-driver": ">=1.0.5,<1.2.0", 1891 | "fabpot/goutte": "~1.0.1", 1892 | "php": ">=5.3.1" 1893 | }, 1894 | "type": "mink-driver", 1895 | "extra": { 1896 | "branch-alias": { 1897 | "dev-master": "1.0.x-dev" 1898 | } 1899 | }, 1900 | "autoload": { 1901 | "psr-0": { 1902 | "Behat\\Mink\\Driver": "src/" 1903 | } 1904 | }, 1905 | "notification-url": "https://packagist.org/downloads/", 1906 | "license": [ 1907 | "MIT" 1908 | ], 1909 | "authors": [ 1910 | { 1911 | "name": "Konstantin Kudryashov", 1912 | "email": "ever.zet@gmail.com", 1913 | "homepage": "http://everzet.com" 1914 | } 1915 | ], 1916 | "description": "Goutte driver for Mink framework", 1917 | "homepage": "http://mink.behat.org/", 1918 | "keywords": [ 1919 | "browser", 1920 | "goutte", 1921 | "headless", 1922 | "testing" 1923 | ], 1924 | "time": "2013-07-03 18:43:54" 1925 | }, 1926 | { 1927 | "name": "behat/mink-selenium2-driver", 1928 | "version": "v1.1.1", 1929 | "source": { 1930 | "type": "git", 1931 | "url": "https://github.com/minkphp/MinkSelenium2Driver.git", 1932 | "reference": "bcf1b537de37db6db0822d9e7bd97e600fd7a476" 1933 | }, 1934 | "dist": { 1935 | "type": "zip", 1936 | "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/bcf1b537de37db6db0822d9e7bd97e600fd7a476", 1937 | "reference": "bcf1b537de37db6db0822d9e7bd97e600fd7a476", 1938 | "shasum": "" 1939 | }, 1940 | "require": { 1941 | "behat/mink": "~1.5.0", 1942 | "instaclick/php-webdriver": "~1.0.12", 1943 | "php": ">=5.3.1" 1944 | }, 1945 | "type": "mink-driver", 1946 | "extra": { 1947 | "branch-alias": { 1948 | "dev-master": "1.1.x-dev" 1949 | } 1950 | }, 1951 | "autoload": { 1952 | "psr-0": { 1953 | "Behat\\Mink\\Driver": "src/" 1954 | } 1955 | }, 1956 | "notification-url": "https://packagist.org/downloads/", 1957 | "license": [ 1958 | "MIT" 1959 | ], 1960 | "authors": [ 1961 | { 1962 | "name": "Konstantin Kudryashov", 1963 | "email": "ever.zet@gmail.com", 1964 | "homepage": "http://everzet.com" 1965 | }, 1966 | { 1967 | "name": "Pete Otaqui", 1968 | "email": "pete@otaqui.com", 1969 | "homepage": "https://github.com/pete-otaqui" 1970 | } 1971 | ], 1972 | "description": "Selenium2 (WebDriver) driver for Mink framework", 1973 | "homepage": "http://mink.behat.org/", 1974 | "keywords": [ 1975 | "ajax", 1976 | "browser", 1977 | "javascript", 1978 | "selenium", 1979 | "testing", 1980 | "webdriver" 1981 | ], 1982 | "time": "2013-06-02 19:09:45" 1983 | }, 1984 | { 1985 | "name": "doctrine/instantiator", 1986 | "version": "1.0.5", 1987 | "source": { 1988 | "type": "git", 1989 | "url": "https://github.com/doctrine/instantiator.git", 1990 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" 1991 | }, 1992 | "dist": { 1993 | "type": "zip", 1994 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", 1995 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", 1996 | "shasum": "" 1997 | }, 1998 | "require": { 1999 | "php": ">=5.3,<8.0-DEV" 2000 | }, 2001 | "require-dev": { 2002 | "athletic/athletic": "~0.1.8", 2003 | "ext-pdo": "*", 2004 | "ext-phar": "*", 2005 | "phpunit/phpunit": "~4.0", 2006 | "squizlabs/php_codesniffer": "~2.0" 2007 | }, 2008 | "type": "library", 2009 | "extra": { 2010 | "branch-alias": { 2011 | "dev-master": "1.0.x-dev" 2012 | } 2013 | }, 2014 | "autoload": { 2015 | "psr-4": { 2016 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 2017 | } 2018 | }, 2019 | "notification-url": "https://packagist.org/downloads/", 2020 | "license": [ 2021 | "MIT" 2022 | ], 2023 | "authors": [ 2024 | { 2025 | "name": "Marco Pivetta", 2026 | "email": "ocramius@gmail.com", 2027 | "homepage": "http://ocramius.github.com/" 2028 | } 2029 | ], 2030 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 2031 | "homepage": "https://github.com/doctrine/instantiator", 2032 | "keywords": [ 2033 | "constructor", 2034 | "instantiate" 2035 | ], 2036 | "time": "2015-06-14 21:17:01" 2037 | }, 2038 | { 2039 | "name": "drupal/backup_migrate", 2040 | "version": "7.3.1", 2041 | "source": { 2042 | "type": "git", 2043 | "url": "https://git.drupal.org/project/backup_migrate", 2044 | "reference": "174bb364b71887a23140efea626d2843b57bd4cf" 2045 | }, 2046 | "dist": { 2047 | "type": "zip", 2048 | "url": "https://ftp.drupal.org/files/projects/backup_migrate-7.x-3.1.zip", 2049 | "reference": null, 2050 | "shasum": null 2051 | }, 2052 | "require": { 2053 | "drupal/drupal": "7.*" 2054 | }, 2055 | "type": "drupal-module", 2056 | "extra": { 2057 | "branch-alias": { 2058 | "dev-7.x-3.x": "7.3.x-dev" 2059 | } 2060 | }, 2061 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 2062 | "description": "Backup the Drupal database and files or migrate them to another environment." 2063 | }, 2064 | { 2065 | "name": "drupal/coder", 2066 | "version": "7.2.4", 2067 | "source": { 2068 | "type": "git", 2069 | "url": "https://git.drupal.org/project/coder", 2070 | "reference": "5d36c5d737114e0812653401d245dd69d586fc0a" 2071 | }, 2072 | "dist": { 2073 | "type": "zip", 2074 | "url": "https://ftp.drupal.org/files/projects/coder-7.x-2.4.zip", 2075 | "reference": null, 2076 | "shasum": null 2077 | }, 2078 | "require": { 2079 | "drupal/drupal": "7.*", 2080 | "php": ">=5.2.0", 2081 | "squizlabs/php_codesniffer": ">=1.4.6,<2.0.0" 2082 | }, 2083 | "replace": { 2084 | "drupal/bad": "self.version", 2085 | "drupal/bad2": "self.version", 2086 | "drupal/coder_review": "self.version", 2087 | "drupal/coder_upgrade": "self.version", 2088 | "drupal/drupalcs": "self.version" 2089 | }, 2090 | "suggest": { 2091 | "drupal/gplib": "Required by drupal/coder_upgrade" 2092 | }, 2093 | "type": "drupal-module", 2094 | "extra": { 2095 | "branch-alias": { 2096 | "dev-7.x-2.x": "7.2.x-dev" 2097 | } 2098 | }, 2099 | "license": [ 2100 | "GPL-2.0+" 2101 | ], 2102 | "description": "Coder is a library and a module to review Drupal code.", 2103 | "homepage": "https://drupal.org/project/coder", 2104 | "keywords": [ 2105 | "code review", 2106 | "phpcs", 2107 | "standards" 2108 | ], 2109 | "time": "2015-01-14 23:19:28" 2110 | }, 2111 | { 2112 | "name": "drupal/devel", 2113 | "version": "7.1.5", 2114 | "source": { 2115 | "type": "git", 2116 | "url": "https://git.drupal.org/project/devel", 2117 | "reference": "becb6ca3ced27872b941b30ca308da03a209425a" 2118 | }, 2119 | "dist": { 2120 | "type": "zip", 2121 | "url": "https://ftp.drupal.org/files/projects/devel-7.x-1.5.zip", 2122 | "reference": null, 2123 | "shasum": null 2124 | }, 2125 | "require": { 2126 | "drupal/drupal": "7.*" 2127 | }, 2128 | "replace": { 2129 | "drupal/devel_generate": "self.version", 2130 | "drupal/devel_node_access": "self.version" 2131 | }, 2132 | "suggest": { 2133 | "drupal/menu": "Required by drupal/devel_node_access" 2134 | }, 2135 | "type": "drupal-module", 2136 | "extra": { 2137 | "branch-alias": { 2138 | "dev-7.x-1.x": "7.1.x-dev" 2139 | } 2140 | }, 2141 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 2142 | "description": "Various blocks, pages, and functions for developers." 2143 | }, 2144 | { 2145 | "name": "drupal/devel_themer", 2146 | "version": "dev-7.x-1.x", 2147 | "source": { 2148 | "type": "git", 2149 | "url": "https://git.drupal.org/project/devel_themer.git", 2150 | "reference": "cf347e10353260c45783ea0ac0ad9986f438ed8d" 2151 | }, 2152 | "dist": { 2153 | "type": "zip", 2154 | "url": "https://ftp.drupal.org/files/projects/devel_themer-7.x-1.x-dev.zip", 2155 | "reference": null, 2156 | "shasum": null 2157 | }, 2158 | "require": { 2159 | "drupal/devel": "7.*", 2160 | "drupal/drupal": "7.*", 2161 | "drupal/simplehtmldom": "7.1.*" 2162 | }, 2163 | "type": "drupal-module", 2164 | "extra": { 2165 | "branch-alias": { 2166 | "dev-7.x-1.x": "7.1.x-dev" 2167 | } 2168 | }, 2169 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 2170 | "description": "Essential theme API information for theme developers", 2171 | "time": "2014-11-24 21:56:31" 2172 | }, 2173 | { 2174 | "name": "drupal/drupal-extension", 2175 | "version": "v0.1.5", 2176 | "source": { 2177 | "type": "git", 2178 | "url": "https://git.drupal.org/project/drupalextension.git", 2179 | "reference": "da8a8468d3ca72eaef4d5b09f4929ea19f785eca" 2180 | }, 2181 | "require": { 2182 | "behat/behat": "2.5.*@stable", 2183 | "behat/mink": "1.5.*@stable", 2184 | "behat/mink-extension": "*", 2185 | "behat/mink-goutte-driver": "*", 2186 | "behat/mink-selenium2-driver": "*" 2187 | }, 2188 | "require-dev": { 2189 | "phpunit/phpunit": "3.7.*" 2190 | }, 2191 | "type": "behat-extension", 2192 | "autoload": { 2193 | "psr-0": { 2194 | "Drupal\\Component": "src/", 2195 | "Drupal\\Driver": "src/", 2196 | "Drupal\\Drupal": "src/", 2197 | "Drupal\\Exception": "src/", 2198 | "Drupal\\DrupalExtension": "src/" 2199 | } 2200 | }, 2201 | "notification-url": "https://packagist.org/downloads/", 2202 | "license": [ 2203 | "GPL-2.0+" 2204 | ], 2205 | "authors": [ 2206 | { 2207 | "name": "Jonathan Hedstrom", 2208 | "email": "jhedstrom@gmail.com", 2209 | "homepage": "http://professorbikeybike.com" 2210 | } 2211 | ], 2212 | "description": "Drupal extension for Behat", 2213 | "homepage": "http://drupal.org/project/drupalextension", 2214 | "keywords": [ 2215 | "drupal", 2216 | "test", 2217 | "web" 2218 | ], 2219 | "time": "2013-12-18 17:27:50" 2220 | }, 2221 | { 2222 | "name": "drupal/mongodb", 2223 | "version": "7.1.0-rc2", 2224 | "source": { 2225 | "type": "git", 2226 | "url": "https://git.drupal.org/project/mongodb", 2227 | "reference": "658b92f8b988fe159fc8bf0f66479d093dd6c09f" 2228 | }, 2229 | "dist": { 2230 | "type": "zip", 2231 | "url": "https://ftp.drupal.org/files/projects/mongodb-7.x-1.0-rc2.zip", 2232 | "reference": null, 2233 | "shasum": null 2234 | }, 2235 | "require": { 2236 | "drupal/drupal": "7.*" 2237 | }, 2238 | "replace": { 2239 | "drupal/mongodb_block": "self.version", 2240 | "drupal/mongodb_block_ui": "self.version", 2241 | "drupal/mongodb_cache": "self.version", 2242 | "drupal/mongodb_field_storage": "self.version", 2243 | "drupal/mongodb_migrate": "self.version", 2244 | "drupal/mongodb_queue": "self.version", 2245 | "drupal/mongodb_session": "self.version", 2246 | "drupal/mongodb_watchdog": "self.version" 2247 | }, 2248 | "suggest": { 2249 | "drupal/mongodb_block": "Required by drupal/mongodb_block_ui" 2250 | }, 2251 | "type": "drupal-module", 2252 | "extra": { 2253 | "branch-alias": { 2254 | "dev-7.x-1.x": "7.1.x-dev" 2255 | } 2256 | }, 2257 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 2258 | "description": "Integration between Drupal and MongoDB." 2259 | }, 2260 | { 2261 | "name": "drupal/simplehtmldom", 2262 | "version": "7.1.12", 2263 | "source": { 2264 | "type": "git", 2265 | "url": "https://git.drupal.org/project/simplehtmldom", 2266 | "reference": "27104c922d296c6c68ed395bdeea3dfc975b5366" 2267 | }, 2268 | "dist": { 2269 | "type": "zip", 2270 | "url": "https://ftp.drupal.org/files/projects/simplehtmldom-7.x-1.12.zip", 2271 | "reference": null, 2272 | "shasum": null 2273 | }, 2274 | "require": { 2275 | "drupal/drupal": "7.*" 2276 | }, 2277 | "type": "drupal-module", 2278 | "extra": { 2279 | "branch-alias": { 2280 | "dev-7.x-1.x": "7.1.x-dev" 2281 | } 2282 | }, 2283 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 2284 | "description": "A wrapper module around the simplehtmldom PHP library at sourceforge." 2285 | }, 2286 | { 2287 | "name": "drupal/stage_file_proxy", 2288 | "version": "7.1.6", 2289 | "source": { 2290 | "type": "git", 2291 | "url": "https://git.drupal.org/project/stage_file_proxy", 2292 | "reference": "b2a2fd714a3c6cb8499f29369cd3a6fb7db09f4c" 2293 | }, 2294 | "dist": { 2295 | "type": "zip", 2296 | "url": "https://ftp.drupal.org/files/projects/stage_file_proxy-7.x-1.6.zip", 2297 | "reference": null, 2298 | "shasum": null 2299 | }, 2300 | "require": { 2301 | "drupal/drupal": "7.*" 2302 | }, 2303 | "type": "drupal-module", 2304 | "extra": { 2305 | "branch-alias": { 2306 | "dev-7.x-1.x": "7.1.x-dev" 2307 | } 2308 | }, 2309 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 2310 | "description": "Proxies files from production server so you don't have to transfer them manually" 2311 | }, 2312 | { 2313 | "name": "drupal/xhprof", 2314 | "version": "7.1.0-beta3", 2315 | "source": { 2316 | "type": "git", 2317 | "url": "https://git.drupal.org/project/XHProf.git", 2318 | "reference": "c91634308c223164cf96945b77737e2a6124d8b2" 2319 | }, 2320 | "dist": { 2321 | "type": "zip", 2322 | "url": "https://ftp.drupal.org/files/projects/XHProf-7.x-1.0-beta3.zip", 2323 | "reference": null, 2324 | "shasum": null 2325 | }, 2326 | "require": { 2327 | "drupal/drupal": "7.*", 2328 | "drupal/mongodb": "7.*" 2329 | }, 2330 | "replace": { 2331 | "drupal/xhprof": "self.version", 2332 | "drupal/xhprof_mongodb": "self.version" 2333 | }, 2334 | "type": "drupal-module", 2335 | "extra": { 2336 | "branch-alias": { 2337 | "dev-7.x-1.x": "7.1.x-dev" 2338 | } 2339 | }, 2340 | "notification-url": "https://packagist.drupal-composer.org/downloads/", 2341 | "description": "UI for xhprof runs." 2342 | }, 2343 | { 2344 | "name": "fabpot/goutte", 2345 | "version": "v1.0.7", 2346 | "source": { 2347 | "type": "git", 2348 | "url": "https://github.com/FriendsOfPHP/Goutte.git", 2349 | "reference": "794b196e76bdd37b5155cdecbad311f0a3b07625" 2350 | }, 2351 | "dist": { 2352 | "type": "zip", 2353 | "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/794b196e76bdd37b5155cdecbad311f0a3b07625", 2354 | "reference": "794b196e76bdd37b5155cdecbad311f0a3b07625", 2355 | "shasum": "" 2356 | }, 2357 | "require": { 2358 | "ext-curl": "*", 2359 | "guzzle/http": "~3.1", 2360 | "php": ">=5.3.0", 2361 | "symfony/browser-kit": "~2.1", 2362 | "symfony/css-selector": "~2.1", 2363 | "symfony/dom-crawler": "~2.1", 2364 | "symfony/finder": "~2.1", 2365 | "symfony/process": "~2.1" 2366 | }, 2367 | "require-dev": { 2368 | "guzzle/plugin-history": "~3.1", 2369 | "guzzle/plugin-mock": "~3.1" 2370 | }, 2371 | "type": "application", 2372 | "extra": { 2373 | "branch-alias": { 2374 | "dev-master": "1.0-dev" 2375 | } 2376 | }, 2377 | "autoload": { 2378 | "psr-0": { 2379 | "Goutte": "." 2380 | } 2381 | }, 2382 | "notification-url": "https://packagist.org/downloads/", 2383 | "license": [ 2384 | "MIT" 2385 | ], 2386 | "authors": [ 2387 | { 2388 | "name": "Fabien Potencier", 2389 | "email": "fabien@symfony.com" 2390 | } 2391 | ], 2392 | "description": "A simple PHP Web Scraper", 2393 | "homepage": "https://github.com/fabpot/Goutte", 2394 | "keywords": [ 2395 | "scraper" 2396 | ], 2397 | "time": "2014-10-09 15:52:51" 2398 | }, 2399 | { 2400 | "name": "guzzle/common", 2401 | "version": "v3.9.2", 2402 | "target-dir": "Guzzle/Common", 2403 | "source": { 2404 | "type": "git", 2405 | "url": "https://github.com/Guzzle3/common.git", 2406 | "reference": "2e36af7cf2ce3ea1f2d7c2831843b883a8e7b7dc" 2407 | }, 2408 | "dist": { 2409 | "type": "zip", 2410 | "url": "https://api.github.com/repos/Guzzle3/common/zipball/2e36af7cf2ce3ea1f2d7c2831843b883a8e7b7dc", 2411 | "reference": "2e36af7cf2ce3ea1f2d7c2831843b883a8e7b7dc", 2412 | "shasum": "" 2413 | }, 2414 | "require": { 2415 | "php": ">=5.3.2", 2416 | "symfony/event-dispatcher": ">=2.1" 2417 | }, 2418 | "type": "library", 2419 | "extra": { 2420 | "branch-alias": { 2421 | "dev-master": "3.7-dev" 2422 | } 2423 | }, 2424 | "autoload": { 2425 | "psr-0": { 2426 | "Guzzle\\Common": "" 2427 | } 2428 | }, 2429 | "notification-url": "https://packagist.org/downloads/", 2430 | "license": [ 2431 | "MIT" 2432 | ], 2433 | "description": "Common libraries used by Guzzle", 2434 | "homepage": "http://guzzlephp.org/", 2435 | "keywords": [ 2436 | "collection", 2437 | "common", 2438 | "event", 2439 | "exception" 2440 | ], 2441 | "abandoned": "guzzle/guzzle", 2442 | "time": "2014-08-11 04:32:36" 2443 | }, 2444 | { 2445 | "name": "guzzle/http", 2446 | "version": "v3.9.2", 2447 | "target-dir": "Guzzle/Http", 2448 | "source": { 2449 | "type": "git", 2450 | "url": "https://github.com/Guzzle3/http.git", 2451 | "reference": "1e8dd1e2ba9dc42332396f39fbfab950b2301dc5" 2452 | }, 2453 | "dist": { 2454 | "type": "zip", 2455 | "url": "https://api.github.com/repos/Guzzle3/http/zipball/1e8dd1e2ba9dc42332396f39fbfab950b2301dc5", 2456 | "reference": "1e8dd1e2ba9dc42332396f39fbfab950b2301dc5", 2457 | "shasum": "" 2458 | }, 2459 | "require": { 2460 | "guzzle/common": "self.version", 2461 | "guzzle/parser": "self.version", 2462 | "guzzle/stream": "self.version", 2463 | "php": ">=5.3.2" 2464 | }, 2465 | "suggest": { 2466 | "ext-curl": "*" 2467 | }, 2468 | "type": "library", 2469 | "extra": { 2470 | "branch-alias": { 2471 | "dev-master": "3.7-dev" 2472 | } 2473 | }, 2474 | "autoload": { 2475 | "psr-0": { 2476 | "Guzzle\\Http": "" 2477 | } 2478 | }, 2479 | "notification-url": "https://packagist.org/downloads/", 2480 | "license": [ 2481 | "MIT" 2482 | ], 2483 | "authors": [ 2484 | { 2485 | "name": "Michael Dowling", 2486 | "email": "mtdowling@gmail.com", 2487 | "homepage": "https://github.com/mtdowling" 2488 | } 2489 | ], 2490 | "description": "HTTP libraries used by Guzzle", 2491 | "homepage": "http://guzzlephp.org/", 2492 | "keywords": [ 2493 | "Guzzle", 2494 | "client", 2495 | "curl", 2496 | "http", 2497 | "http client" 2498 | ], 2499 | "abandoned": "guzzle/guzzle", 2500 | "time": "2014-08-11 04:32:36" 2501 | }, 2502 | { 2503 | "name": "guzzle/parser", 2504 | "version": "v3.9.2", 2505 | "target-dir": "Guzzle/Parser", 2506 | "source": { 2507 | "type": "git", 2508 | "url": "https://github.com/Guzzle3/parser.git", 2509 | "reference": "6874d171318a8e93eb6d224cf85e4678490b625c" 2510 | }, 2511 | "dist": { 2512 | "type": "zip", 2513 | "url": "https://api.github.com/repos/Guzzle3/parser/zipball/6874d171318a8e93eb6d224cf85e4678490b625c", 2514 | "reference": "6874d171318a8e93eb6d224cf85e4678490b625c", 2515 | "shasum": "" 2516 | }, 2517 | "require": { 2518 | "php": ">=5.3.2" 2519 | }, 2520 | "type": "library", 2521 | "extra": { 2522 | "branch-alias": { 2523 | "dev-master": "3.7-dev" 2524 | } 2525 | }, 2526 | "autoload": { 2527 | "psr-0": { 2528 | "Guzzle\\Parser": "" 2529 | } 2530 | }, 2531 | "notification-url": "https://packagist.org/downloads/", 2532 | "license": [ 2533 | "MIT" 2534 | ], 2535 | "description": "Interchangeable parsers used by Guzzle", 2536 | "homepage": "http://guzzlephp.org/", 2537 | "keywords": [ 2538 | "URI Template", 2539 | "cookie", 2540 | "http", 2541 | "message", 2542 | "url" 2543 | ], 2544 | "abandoned": "guzzle/guzzle", 2545 | "time": "2014-02-05 18:29:46" 2546 | }, 2547 | { 2548 | "name": "guzzle/stream", 2549 | "version": "v3.9.2", 2550 | "target-dir": "Guzzle/Stream", 2551 | "source": { 2552 | "type": "git", 2553 | "url": "https://github.com/Guzzle3/stream.git", 2554 | "reference": "60c7fed02e98d2c518dae8f97874c8f4622100f0" 2555 | }, 2556 | "dist": { 2557 | "type": "zip", 2558 | "url": "https://api.github.com/repos/Guzzle3/stream/zipball/60c7fed02e98d2c518dae8f97874c8f4622100f0", 2559 | "reference": "60c7fed02e98d2c518dae8f97874c8f4622100f0", 2560 | "shasum": "" 2561 | }, 2562 | "require": { 2563 | "guzzle/common": "self.version", 2564 | "php": ">=5.3.2" 2565 | }, 2566 | "suggest": { 2567 | "guzzle/http": "To convert Guzzle request objects to PHP streams" 2568 | }, 2569 | "type": "library", 2570 | "extra": { 2571 | "branch-alias": { 2572 | "dev-master": "3.7-dev" 2573 | } 2574 | }, 2575 | "autoload": { 2576 | "psr-0": { 2577 | "Guzzle\\Stream": "" 2578 | } 2579 | }, 2580 | "notification-url": "https://packagist.org/downloads/", 2581 | "license": [ 2582 | "MIT" 2583 | ], 2584 | "authors": [ 2585 | { 2586 | "name": "Michael Dowling", 2587 | "email": "mtdowling@gmail.com", 2588 | "homepage": "https://github.com/mtdowling" 2589 | } 2590 | ], 2591 | "description": "Guzzle stream wrapper component", 2592 | "homepage": "http://guzzlephp.org/", 2593 | "keywords": [ 2594 | "Guzzle", 2595 | "component", 2596 | "stream" 2597 | ], 2598 | "abandoned": "guzzle/guzzle", 2599 | "time": "2014-05-01 21:36:02" 2600 | }, 2601 | { 2602 | "name": "instaclick/php-webdriver", 2603 | "version": "1.0.17", 2604 | "source": { 2605 | "type": "git", 2606 | "url": "https://github.com/instaclick/php-webdriver.git", 2607 | "reference": "47a6019553a7a5b42d35493276ffc2c9252c53d5" 2608 | }, 2609 | "dist": { 2610 | "type": "zip", 2611 | "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/47a6019553a7a5b42d35493276ffc2c9252c53d5", 2612 | "reference": "47a6019553a7a5b42d35493276ffc2c9252c53d5", 2613 | "shasum": "" 2614 | }, 2615 | "require": { 2616 | "ext-curl": "*", 2617 | "php": ">=5.3.2" 2618 | }, 2619 | "bin": [ 2620 | "bin/webunit" 2621 | ], 2622 | "type": "library", 2623 | "extra": { 2624 | "branch-alias": { 2625 | "dev-master": "1.0.x-dev" 2626 | } 2627 | }, 2628 | "autoload": { 2629 | "psr-0": { 2630 | "WebDriver": "lib/" 2631 | } 2632 | }, 2633 | "notification-url": "https://packagist.org/downloads/", 2634 | "license": [ 2635 | "Apache-2.0" 2636 | ], 2637 | "authors": [ 2638 | { 2639 | "name": "Justin Bishop", 2640 | "email": "jubishop@gmail.com", 2641 | "role": "Developer" 2642 | }, 2643 | { 2644 | "name": "Anthon Pang", 2645 | "email": "apang@softwaredevelopment.ca", 2646 | "role": "developer" 2647 | } 2648 | ], 2649 | "description": "PHP WebDriver for Selenium 2", 2650 | "homepage": "http://instaclick.com/", 2651 | "keywords": [ 2652 | "browser", 2653 | "selenium", 2654 | "webdriver", 2655 | "webtest" 2656 | ], 2657 | "time": "2013-10-04 15:03:51" 2658 | }, 2659 | { 2660 | "name": "phpunit/php-code-coverage", 2661 | "version": "2.2.4", 2662 | "source": { 2663 | "type": "git", 2664 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 2665 | "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" 2666 | }, 2667 | "dist": { 2668 | "type": "zip", 2669 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", 2670 | "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", 2671 | "shasum": "" 2672 | }, 2673 | "require": { 2674 | "php": ">=5.3.3", 2675 | "phpunit/php-file-iterator": "~1.3", 2676 | "phpunit/php-text-template": "~1.2", 2677 | "phpunit/php-token-stream": "~1.3", 2678 | "sebastian/environment": "^1.3.2", 2679 | "sebastian/version": "~1.0" 2680 | }, 2681 | "require-dev": { 2682 | "ext-xdebug": ">=2.1.4", 2683 | "phpunit/phpunit": "~4" 2684 | }, 2685 | "suggest": { 2686 | "ext-dom": "*", 2687 | "ext-xdebug": ">=2.2.1", 2688 | "ext-xmlwriter": "*" 2689 | }, 2690 | "type": "library", 2691 | "extra": { 2692 | "branch-alias": { 2693 | "dev-master": "2.2.x-dev" 2694 | } 2695 | }, 2696 | "autoload": { 2697 | "classmap": [ 2698 | "src/" 2699 | ] 2700 | }, 2701 | "notification-url": "https://packagist.org/downloads/", 2702 | "license": [ 2703 | "BSD-3-Clause" 2704 | ], 2705 | "authors": [ 2706 | { 2707 | "name": "Sebastian Bergmann", 2708 | "email": "sb@sebastian-bergmann.de", 2709 | "role": "lead" 2710 | } 2711 | ], 2712 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 2713 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 2714 | "keywords": [ 2715 | "coverage", 2716 | "testing", 2717 | "xunit" 2718 | ], 2719 | "time": "2015-10-06 15:47:00" 2720 | }, 2721 | { 2722 | "name": "phpunit/php-file-iterator", 2723 | "version": "1.3.4", 2724 | "source": { 2725 | "type": "git", 2726 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 2727 | "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb" 2728 | }, 2729 | "dist": { 2730 | "type": "zip", 2731 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb", 2732 | "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb", 2733 | "shasum": "" 2734 | }, 2735 | "require": { 2736 | "php": ">=5.3.3" 2737 | }, 2738 | "type": "library", 2739 | "autoload": { 2740 | "classmap": [ 2741 | "File/" 2742 | ] 2743 | }, 2744 | "notification-url": "https://packagist.org/downloads/", 2745 | "include-path": [ 2746 | "" 2747 | ], 2748 | "license": [ 2749 | "BSD-3-Clause" 2750 | ], 2751 | "authors": [ 2752 | { 2753 | "name": "Sebastian Bergmann", 2754 | "email": "sb@sebastian-bergmann.de", 2755 | "role": "lead" 2756 | } 2757 | ], 2758 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 2759 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 2760 | "keywords": [ 2761 | "filesystem", 2762 | "iterator" 2763 | ], 2764 | "time": "2013-10-10 15:34:57" 2765 | }, 2766 | { 2767 | "name": "phpunit/php-text-template", 2768 | "version": "1.2.1", 2769 | "source": { 2770 | "type": "git", 2771 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 2772 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 2773 | }, 2774 | "dist": { 2775 | "type": "zip", 2776 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 2777 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 2778 | "shasum": "" 2779 | }, 2780 | "require": { 2781 | "php": ">=5.3.3" 2782 | }, 2783 | "type": "library", 2784 | "autoload": { 2785 | "classmap": [ 2786 | "src/" 2787 | ] 2788 | }, 2789 | "notification-url": "https://packagist.org/downloads/", 2790 | "license": [ 2791 | "BSD-3-Clause" 2792 | ], 2793 | "authors": [ 2794 | { 2795 | "name": "Sebastian Bergmann", 2796 | "email": "sebastian@phpunit.de", 2797 | "role": "lead" 2798 | } 2799 | ], 2800 | "description": "Simple template engine.", 2801 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 2802 | "keywords": [ 2803 | "template" 2804 | ], 2805 | "time": "2015-06-21 13:50:34" 2806 | }, 2807 | { 2808 | "name": "phpunit/php-timer", 2809 | "version": "1.0.7", 2810 | "source": { 2811 | "type": "git", 2812 | "url": "https://github.com/sebastianbergmann/php-timer.git", 2813 | "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b" 2814 | }, 2815 | "dist": { 2816 | "type": "zip", 2817 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b", 2818 | "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b", 2819 | "shasum": "" 2820 | }, 2821 | "require": { 2822 | "php": ">=5.3.3" 2823 | }, 2824 | "type": "library", 2825 | "autoload": { 2826 | "classmap": [ 2827 | "src/" 2828 | ] 2829 | }, 2830 | "notification-url": "https://packagist.org/downloads/", 2831 | "license": [ 2832 | "BSD-3-Clause" 2833 | ], 2834 | "authors": [ 2835 | { 2836 | "name": "Sebastian Bergmann", 2837 | "email": "sb@sebastian-bergmann.de", 2838 | "role": "lead" 2839 | } 2840 | ], 2841 | "description": "Utility class for timing", 2842 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 2843 | "keywords": [ 2844 | "timer" 2845 | ], 2846 | "time": "2015-06-21 08:01:12" 2847 | }, 2848 | { 2849 | "name": "phpunit/php-token-stream", 2850 | "version": "1.4.8", 2851 | "source": { 2852 | "type": "git", 2853 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 2854 | "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" 2855 | }, 2856 | "dist": { 2857 | "type": "zip", 2858 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", 2859 | "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", 2860 | "shasum": "" 2861 | }, 2862 | "require": { 2863 | "ext-tokenizer": "*", 2864 | "php": ">=5.3.3" 2865 | }, 2866 | "require-dev": { 2867 | "phpunit/phpunit": "~4.2" 2868 | }, 2869 | "type": "library", 2870 | "extra": { 2871 | "branch-alias": { 2872 | "dev-master": "1.4-dev" 2873 | } 2874 | }, 2875 | "autoload": { 2876 | "classmap": [ 2877 | "src/" 2878 | ] 2879 | }, 2880 | "notification-url": "https://packagist.org/downloads/", 2881 | "license": [ 2882 | "BSD-3-Clause" 2883 | ], 2884 | "authors": [ 2885 | { 2886 | "name": "Sebastian Bergmann", 2887 | "email": "sebastian@phpunit.de" 2888 | } 2889 | ], 2890 | "description": "Wrapper around PHP's tokenizer extension.", 2891 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 2892 | "keywords": [ 2893 | "tokenizer" 2894 | ], 2895 | "time": "2015-09-15 10:49:45" 2896 | }, 2897 | { 2898 | "name": "phpunit/phpunit", 2899 | "version": "4.3.5", 2900 | "source": { 2901 | "type": "git", 2902 | "url": "https://github.com/sebastianbergmann/phpunit.git", 2903 | "reference": "2dab9d593997db4abcf58d0daf798eb4e9cecfe1" 2904 | }, 2905 | "dist": { 2906 | "type": "zip", 2907 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2dab9d593997db4abcf58d0daf798eb4e9cecfe1", 2908 | "reference": "2dab9d593997db4abcf58d0daf798eb4e9cecfe1", 2909 | "shasum": "" 2910 | }, 2911 | "require": { 2912 | "ext-dom": "*", 2913 | "ext-json": "*", 2914 | "ext-pcre": "*", 2915 | "ext-reflection": "*", 2916 | "ext-spl": "*", 2917 | "php": ">=5.3.3", 2918 | "phpunit/php-code-coverage": "~2.0", 2919 | "phpunit/php-file-iterator": "~1.3.2", 2920 | "phpunit/php-text-template": "~1.2", 2921 | "phpunit/php-timer": "~1.0.2", 2922 | "phpunit/phpunit-mock-objects": "~2.3", 2923 | "sebastian/comparator": "~1.0", 2924 | "sebastian/diff": "~1.1", 2925 | "sebastian/environment": "~1.0", 2926 | "sebastian/exporter": "~1.0", 2927 | "sebastian/version": "~1.0", 2928 | "symfony/yaml": "~2.0" 2929 | }, 2930 | "suggest": { 2931 | "phpunit/php-invoker": "~1.1" 2932 | }, 2933 | "bin": [ 2934 | "phpunit" 2935 | ], 2936 | "type": "library", 2937 | "extra": { 2938 | "branch-alias": { 2939 | "dev-master": "4.3.x-dev" 2940 | } 2941 | }, 2942 | "autoload": { 2943 | "classmap": [ 2944 | "src/" 2945 | ] 2946 | }, 2947 | "notification-url": "https://packagist.org/downloads/", 2948 | "include-path": [ 2949 | "", 2950 | "../../symfony/yaml/" 2951 | ], 2952 | "license": [ 2953 | "BSD-3-Clause" 2954 | ], 2955 | "authors": [ 2956 | { 2957 | "name": "Sebastian Bergmann", 2958 | "email": "sebastian@phpunit.de", 2959 | "role": "lead" 2960 | } 2961 | ], 2962 | "description": "The PHP Unit Testing framework.", 2963 | "homepage": "http://www.phpunit.de/", 2964 | "keywords": [ 2965 | "phpunit", 2966 | "testing", 2967 | "xunit" 2968 | ], 2969 | "time": "2014-11-11 10:11:09" 2970 | }, 2971 | { 2972 | "name": "phpunit/phpunit-mock-objects", 2973 | "version": "2.3.8", 2974 | "source": { 2975 | "type": "git", 2976 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 2977 | "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" 2978 | }, 2979 | "dist": { 2980 | "type": "zip", 2981 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", 2982 | "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", 2983 | "shasum": "" 2984 | }, 2985 | "require": { 2986 | "doctrine/instantiator": "^1.0.2", 2987 | "php": ">=5.3.3", 2988 | "phpunit/php-text-template": "~1.2", 2989 | "sebastian/exporter": "~1.2" 2990 | }, 2991 | "require-dev": { 2992 | "phpunit/phpunit": "~4.4" 2993 | }, 2994 | "suggest": { 2995 | "ext-soap": "*" 2996 | }, 2997 | "type": "library", 2998 | "extra": { 2999 | "branch-alias": { 3000 | "dev-master": "2.3.x-dev" 3001 | } 3002 | }, 3003 | "autoload": { 3004 | "classmap": [ 3005 | "src/" 3006 | ] 3007 | }, 3008 | "notification-url": "https://packagist.org/downloads/", 3009 | "license": [ 3010 | "BSD-3-Clause" 3011 | ], 3012 | "authors": [ 3013 | { 3014 | "name": "Sebastian Bergmann", 3015 | "email": "sb@sebastian-bergmann.de", 3016 | "role": "lead" 3017 | } 3018 | ], 3019 | "description": "Mock Object library for PHPUnit", 3020 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 3021 | "keywords": [ 3022 | "mock", 3023 | "xunit" 3024 | ], 3025 | "time": "2015-10-02 06:51:40" 3026 | }, 3027 | { 3028 | "name": "sebastian/comparator", 3029 | "version": "1.2.0", 3030 | "source": { 3031 | "type": "git", 3032 | "url": "https://github.com/sebastianbergmann/comparator.git", 3033 | "reference": "937efb279bd37a375bcadf584dec0726f84dbf22" 3034 | }, 3035 | "dist": { 3036 | "type": "zip", 3037 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22", 3038 | "reference": "937efb279bd37a375bcadf584dec0726f84dbf22", 3039 | "shasum": "" 3040 | }, 3041 | "require": { 3042 | "php": ">=5.3.3", 3043 | "sebastian/diff": "~1.2", 3044 | "sebastian/exporter": "~1.2" 3045 | }, 3046 | "require-dev": { 3047 | "phpunit/phpunit": "~4.4" 3048 | }, 3049 | "type": "library", 3050 | "extra": { 3051 | "branch-alias": { 3052 | "dev-master": "1.2.x-dev" 3053 | } 3054 | }, 3055 | "autoload": { 3056 | "classmap": [ 3057 | "src/" 3058 | ] 3059 | }, 3060 | "notification-url": "https://packagist.org/downloads/", 3061 | "license": [ 3062 | "BSD-3-Clause" 3063 | ], 3064 | "authors": [ 3065 | { 3066 | "name": "Jeff Welch", 3067 | "email": "whatthejeff@gmail.com" 3068 | }, 3069 | { 3070 | "name": "Volker Dusch", 3071 | "email": "github@wallbash.com" 3072 | }, 3073 | { 3074 | "name": "Bernhard Schussek", 3075 | "email": "bschussek@2bepublished.at" 3076 | }, 3077 | { 3078 | "name": "Sebastian Bergmann", 3079 | "email": "sebastian@phpunit.de" 3080 | } 3081 | ], 3082 | "description": "Provides the functionality to compare PHP values for equality", 3083 | "homepage": "http://www.github.com/sebastianbergmann/comparator", 3084 | "keywords": [ 3085 | "comparator", 3086 | "compare", 3087 | "equality" 3088 | ], 3089 | "time": "2015-07-26 15:48:44" 3090 | }, 3091 | { 3092 | "name": "sebastian/diff", 3093 | "version": "1.4.1", 3094 | "source": { 3095 | "type": "git", 3096 | "url": "https://github.com/sebastianbergmann/diff.git", 3097 | "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" 3098 | }, 3099 | "dist": { 3100 | "type": "zip", 3101 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", 3102 | "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", 3103 | "shasum": "" 3104 | }, 3105 | "require": { 3106 | "php": ">=5.3.3" 3107 | }, 3108 | "require-dev": { 3109 | "phpunit/phpunit": "~4.8" 3110 | }, 3111 | "type": "library", 3112 | "extra": { 3113 | "branch-alias": { 3114 | "dev-master": "1.4-dev" 3115 | } 3116 | }, 3117 | "autoload": { 3118 | "classmap": [ 3119 | "src/" 3120 | ] 3121 | }, 3122 | "notification-url": "https://packagist.org/downloads/", 3123 | "license": [ 3124 | "BSD-3-Clause" 3125 | ], 3126 | "authors": [ 3127 | { 3128 | "name": "Kore Nordmann", 3129 | "email": "mail@kore-nordmann.de" 3130 | }, 3131 | { 3132 | "name": "Sebastian Bergmann", 3133 | "email": "sebastian@phpunit.de" 3134 | } 3135 | ], 3136 | "description": "Diff implementation", 3137 | "homepage": "https://github.com/sebastianbergmann/diff", 3138 | "keywords": [ 3139 | "diff" 3140 | ], 3141 | "time": "2015-12-08 07:14:41" 3142 | }, 3143 | { 3144 | "name": "sebastian/environment", 3145 | "version": "1.3.3", 3146 | "source": { 3147 | "type": "git", 3148 | "url": "https://github.com/sebastianbergmann/environment.git", 3149 | "reference": "6e7133793a8e5a5714a551a8324337374be209df" 3150 | }, 3151 | "dist": { 3152 | "type": "zip", 3153 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6e7133793a8e5a5714a551a8324337374be209df", 3154 | "reference": "6e7133793a8e5a5714a551a8324337374be209df", 3155 | "shasum": "" 3156 | }, 3157 | "require": { 3158 | "php": ">=5.3.3" 3159 | }, 3160 | "require-dev": { 3161 | "phpunit/phpunit": "~4.4" 3162 | }, 3163 | "type": "library", 3164 | "extra": { 3165 | "branch-alias": { 3166 | "dev-master": "1.3.x-dev" 3167 | } 3168 | }, 3169 | "autoload": { 3170 | "classmap": [ 3171 | "src/" 3172 | ] 3173 | }, 3174 | "notification-url": "https://packagist.org/downloads/", 3175 | "license": [ 3176 | "BSD-3-Clause" 3177 | ], 3178 | "authors": [ 3179 | { 3180 | "name": "Sebastian Bergmann", 3181 | "email": "sebastian@phpunit.de" 3182 | } 3183 | ], 3184 | "description": "Provides functionality to handle HHVM/PHP environments", 3185 | "homepage": "http://www.github.com/sebastianbergmann/environment", 3186 | "keywords": [ 3187 | "Xdebug", 3188 | "environment", 3189 | "hhvm" 3190 | ], 3191 | "time": "2015-12-02 08:37:27" 3192 | }, 3193 | { 3194 | "name": "sebastian/exporter", 3195 | "version": "1.2.1", 3196 | "source": { 3197 | "type": "git", 3198 | "url": "https://github.com/sebastianbergmann/exporter.git", 3199 | "reference": "7ae5513327cb536431847bcc0c10edba2701064e" 3200 | }, 3201 | "dist": { 3202 | "type": "zip", 3203 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e", 3204 | "reference": "7ae5513327cb536431847bcc0c10edba2701064e", 3205 | "shasum": "" 3206 | }, 3207 | "require": { 3208 | "php": ">=5.3.3", 3209 | "sebastian/recursion-context": "~1.0" 3210 | }, 3211 | "require-dev": { 3212 | "phpunit/phpunit": "~4.4" 3213 | }, 3214 | "type": "library", 3215 | "extra": { 3216 | "branch-alias": { 3217 | "dev-master": "1.2.x-dev" 3218 | } 3219 | }, 3220 | "autoload": { 3221 | "classmap": [ 3222 | "src/" 3223 | ] 3224 | }, 3225 | "notification-url": "https://packagist.org/downloads/", 3226 | "license": [ 3227 | "BSD-3-Clause" 3228 | ], 3229 | "authors": [ 3230 | { 3231 | "name": "Jeff Welch", 3232 | "email": "whatthejeff@gmail.com" 3233 | }, 3234 | { 3235 | "name": "Volker Dusch", 3236 | "email": "github@wallbash.com" 3237 | }, 3238 | { 3239 | "name": "Bernhard Schussek", 3240 | "email": "bschussek@2bepublished.at" 3241 | }, 3242 | { 3243 | "name": "Sebastian Bergmann", 3244 | "email": "sebastian@phpunit.de" 3245 | }, 3246 | { 3247 | "name": "Adam Harvey", 3248 | "email": "aharvey@php.net" 3249 | } 3250 | ], 3251 | "description": "Provides the functionality to export PHP variables for visualization", 3252 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 3253 | "keywords": [ 3254 | "export", 3255 | "exporter" 3256 | ], 3257 | "time": "2015-06-21 07:55:53" 3258 | }, 3259 | { 3260 | "name": "sebastian/recursion-context", 3261 | "version": "1.0.2", 3262 | "source": { 3263 | "type": "git", 3264 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 3265 | "reference": "913401df809e99e4f47b27cdd781f4a258d58791" 3266 | }, 3267 | "dist": { 3268 | "type": "zip", 3269 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791", 3270 | "reference": "913401df809e99e4f47b27cdd781f4a258d58791", 3271 | "shasum": "" 3272 | }, 3273 | "require": { 3274 | "php": ">=5.3.3" 3275 | }, 3276 | "require-dev": { 3277 | "phpunit/phpunit": "~4.4" 3278 | }, 3279 | "type": "library", 3280 | "extra": { 3281 | "branch-alias": { 3282 | "dev-master": "1.0.x-dev" 3283 | } 3284 | }, 3285 | "autoload": { 3286 | "classmap": [ 3287 | "src/" 3288 | ] 3289 | }, 3290 | "notification-url": "https://packagist.org/downloads/", 3291 | "license": [ 3292 | "BSD-3-Clause" 3293 | ], 3294 | "authors": [ 3295 | { 3296 | "name": "Jeff Welch", 3297 | "email": "whatthejeff@gmail.com" 3298 | }, 3299 | { 3300 | "name": "Sebastian Bergmann", 3301 | "email": "sebastian@phpunit.de" 3302 | }, 3303 | { 3304 | "name": "Adam Harvey", 3305 | "email": "aharvey@php.net" 3306 | } 3307 | ], 3308 | "description": "Provides functionality to recursively process PHP variables", 3309 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 3310 | "time": "2015-11-11 19:50:13" 3311 | }, 3312 | { 3313 | "name": "sebastian/version", 3314 | "version": "1.0.6", 3315 | "source": { 3316 | "type": "git", 3317 | "url": "https://github.com/sebastianbergmann/version.git", 3318 | "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" 3319 | }, 3320 | "dist": { 3321 | "type": "zip", 3322 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", 3323 | "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", 3324 | "shasum": "" 3325 | }, 3326 | "type": "library", 3327 | "autoload": { 3328 | "classmap": [ 3329 | "src/" 3330 | ] 3331 | }, 3332 | "notification-url": "https://packagist.org/downloads/", 3333 | "license": [ 3334 | "BSD-3-Clause" 3335 | ], 3336 | "authors": [ 3337 | { 3338 | "name": "Sebastian Bergmann", 3339 | "email": "sebastian@phpunit.de", 3340 | "role": "lead" 3341 | } 3342 | ], 3343 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 3344 | "homepage": "https://github.com/sebastianbergmann/version", 3345 | "time": "2015-06-21 13:59:46" 3346 | }, 3347 | { 3348 | "name": "squizlabs/php_codesniffer", 3349 | "version": "1.5.6", 3350 | "source": { 3351 | "type": "git", 3352 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", 3353 | "reference": "6f3e42d311b882b25b4d409d23a289f4d3b803d5" 3354 | }, 3355 | "dist": { 3356 | "type": "zip", 3357 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/6f3e42d311b882b25b4d409d23a289f4d3b803d5", 3358 | "reference": "6f3e42d311b882b25b4d409d23a289f4d3b803d5", 3359 | "shasum": "" 3360 | }, 3361 | "require": { 3362 | "ext-tokenizer": "*", 3363 | "php": ">=5.1.2" 3364 | }, 3365 | "suggest": { 3366 | "phpunit/php-timer": "dev-master" 3367 | }, 3368 | "bin": [ 3369 | "scripts/phpcs" 3370 | ], 3371 | "type": "library", 3372 | "extra": { 3373 | "branch-alias": { 3374 | "dev-phpcs-fixer": "2.0.x-dev" 3375 | } 3376 | }, 3377 | "autoload": { 3378 | "classmap": [ 3379 | "CodeSniffer.php", 3380 | "CodeSniffer/CLI.php", 3381 | "CodeSniffer/Exception.php", 3382 | "CodeSniffer/File.php", 3383 | "CodeSniffer/Report.php", 3384 | "CodeSniffer/Reporting.php", 3385 | "CodeSniffer/Sniff.php", 3386 | "CodeSniffer/Tokens.php", 3387 | "CodeSniffer/Reports/", 3388 | "CodeSniffer/CommentParser/", 3389 | "CodeSniffer/Tokenizers/", 3390 | "CodeSniffer/DocGenerators/", 3391 | "CodeSniffer/Standards/AbstractPatternSniff.php", 3392 | "CodeSniffer/Standards/AbstractScopeSniff.php", 3393 | "CodeSniffer/Standards/AbstractVariableSniff.php", 3394 | "CodeSniffer/Standards/IncorrectPatternException.php", 3395 | "CodeSniffer/Standards/Generic/Sniffs/", 3396 | "CodeSniffer/Standards/MySource/Sniffs/", 3397 | "CodeSniffer/Standards/PEAR/Sniffs/", 3398 | "CodeSniffer/Standards/PSR1/Sniffs/", 3399 | "CodeSniffer/Standards/PSR2/Sniffs/", 3400 | "CodeSniffer/Standards/Squiz/Sniffs/", 3401 | "CodeSniffer/Standards/Zend/Sniffs/" 3402 | ] 3403 | }, 3404 | "notification-url": "https://packagist.org/downloads/", 3405 | "license": [ 3406 | "BSD-3-Clause" 3407 | ], 3408 | "authors": [ 3409 | { 3410 | "name": "Greg Sherwood", 3411 | "role": "lead" 3412 | } 3413 | ], 3414 | "description": "PHP_CodeSniffer tokenises PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 3415 | "homepage": "http://www.squizlabs.com/php-codesniffer", 3416 | "keywords": [ 3417 | "phpcs", 3418 | "standards" 3419 | ], 3420 | "time": "2014-12-04 22:32:15" 3421 | }, 3422 | { 3423 | "name": "symfony/browser-kit", 3424 | "version": "v2.8.0", 3425 | "source": { 3426 | "type": "git", 3427 | "url": "https://github.com/symfony/browser-kit.git", 3428 | "reference": "589f32fe4f43155ea303d505171634c45f15e876" 3429 | }, 3430 | "dist": { 3431 | "type": "zip", 3432 | "url": "https://api.github.com/repos/symfony/browser-kit/zipball/589f32fe4f43155ea303d505171634c45f15e876", 3433 | "reference": "589f32fe4f43155ea303d505171634c45f15e876", 3434 | "shasum": "" 3435 | }, 3436 | "require": { 3437 | "php": ">=5.3.9", 3438 | "symfony/dom-crawler": "~2.0,>=2.0.5|~3.0.0" 3439 | }, 3440 | "require-dev": { 3441 | "symfony/css-selector": "~2.0,>=2.0.5|~3.0.0", 3442 | "symfony/process": "~2.3.34|~2.7,>=2.7.6|~3.0.0" 3443 | }, 3444 | "suggest": { 3445 | "symfony/process": "" 3446 | }, 3447 | "type": "library", 3448 | "extra": { 3449 | "branch-alias": { 3450 | "dev-master": "2.8-dev" 3451 | } 3452 | }, 3453 | "autoload": { 3454 | "psr-4": { 3455 | "Symfony\\Component\\BrowserKit\\": "" 3456 | }, 3457 | "exclude-from-classmap": [ 3458 | "/Tests/" 3459 | ] 3460 | }, 3461 | "notification-url": "https://packagist.org/downloads/", 3462 | "license": [ 3463 | "MIT" 3464 | ], 3465 | "authors": [ 3466 | { 3467 | "name": "Fabien Potencier", 3468 | "email": "fabien@symfony.com" 3469 | }, 3470 | { 3471 | "name": "Symfony Community", 3472 | "homepage": "https://symfony.com/contributors" 3473 | } 3474 | ], 3475 | "description": "Symfony BrowserKit Component", 3476 | "homepage": "https://symfony.com", 3477 | "time": "2015-11-02 20:29:24" 3478 | }, 3479 | { 3480 | "name": "symfony/css-selector", 3481 | "version": "v2.8.0", 3482 | "source": { 3483 | "type": "git", 3484 | "url": "https://github.com/symfony/css-selector.git", 3485 | "reference": "b600fec37c0efca08046d481d79e7eabc07108ff" 3486 | }, 3487 | "dist": { 3488 | "type": "zip", 3489 | "url": "https://api.github.com/repos/symfony/css-selector/zipball/b600fec37c0efca08046d481d79e7eabc07108ff", 3490 | "reference": "b600fec37c0efca08046d481d79e7eabc07108ff", 3491 | "shasum": "" 3492 | }, 3493 | "require": { 3494 | "php": ">=5.3.9" 3495 | }, 3496 | "type": "library", 3497 | "extra": { 3498 | "branch-alias": { 3499 | "dev-master": "2.8-dev" 3500 | } 3501 | }, 3502 | "autoload": { 3503 | "psr-4": { 3504 | "Symfony\\Component\\CssSelector\\": "" 3505 | }, 3506 | "exclude-from-classmap": [ 3507 | "/Tests/" 3508 | ] 3509 | }, 3510 | "notification-url": "https://packagist.org/downloads/", 3511 | "license": [ 3512 | "MIT" 3513 | ], 3514 | "authors": [ 3515 | { 3516 | "name": "Jean-François Simon", 3517 | "email": "jeanfrancois.simon@sensiolabs.com" 3518 | }, 3519 | { 3520 | "name": "Fabien Potencier", 3521 | "email": "fabien@symfony.com" 3522 | }, 3523 | { 3524 | "name": "Symfony Community", 3525 | "homepage": "https://symfony.com/contributors" 3526 | } 3527 | ], 3528 | "description": "Symfony CssSelector Component", 3529 | "homepage": "https://symfony.com", 3530 | "time": "2015-10-30 20:15:42" 3531 | }, 3532 | { 3533 | "name": "symfony/dependency-injection", 3534 | "version": "v2.8.0", 3535 | "source": { 3536 | "type": "git", 3537 | "url": "https://github.com/symfony/dependency-injection.git", 3538 | "reference": "1ac8ce1a1cff7ff9467d44bc71b0f71dfa751ba4" 3539 | }, 3540 | "dist": { 3541 | "type": "zip", 3542 | "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/1ac8ce1a1cff7ff9467d44bc71b0f71dfa751ba4", 3543 | "reference": "1ac8ce1a1cff7ff9467d44bc71b0f71dfa751ba4", 3544 | "shasum": "" 3545 | }, 3546 | "require": { 3547 | "php": ">=5.3.9" 3548 | }, 3549 | "conflict": { 3550 | "symfony/expression-language": "<2.6" 3551 | }, 3552 | "require-dev": { 3553 | "symfony/config": "~2.2|~3.0.0", 3554 | "symfony/expression-language": "~2.6|~3.0.0", 3555 | "symfony/yaml": "~2.1|~3.0.0" 3556 | }, 3557 | "suggest": { 3558 | "symfony/config": "", 3559 | "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", 3560 | "symfony/yaml": "" 3561 | }, 3562 | "type": "library", 3563 | "extra": { 3564 | "branch-alias": { 3565 | "dev-master": "2.8-dev" 3566 | } 3567 | }, 3568 | "autoload": { 3569 | "psr-4": { 3570 | "Symfony\\Component\\DependencyInjection\\": "" 3571 | }, 3572 | "exclude-from-classmap": [ 3573 | "/Tests/" 3574 | ] 3575 | }, 3576 | "notification-url": "https://packagist.org/downloads/", 3577 | "license": [ 3578 | "MIT" 3579 | ], 3580 | "authors": [ 3581 | { 3582 | "name": "Fabien Potencier", 3583 | "email": "fabien@symfony.com" 3584 | }, 3585 | { 3586 | "name": "Symfony Community", 3587 | "homepage": "https://symfony.com/contributors" 3588 | } 3589 | ], 3590 | "description": "Symfony DependencyInjection Component", 3591 | "homepage": "https://symfony.com", 3592 | "time": "2015-11-30 06:56:28" 3593 | }, 3594 | { 3595 | "name": "symfony/dom-crawler", 3596 | "version": "v2.8.0", 3597 | "source": { 3598 | "type": "git", 3599 | "url": "https://github.com/symfony/dom-crawler.git", 3600 | "reference": "740c98235f5b6e2b0b13df2fb97c7a1c7d1a18fc" 3601 | }, 3602 | "dist": { 3603 | "type": "zip", 3604 | "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/740c98235f5b6e2b0b13df2fb97c7a1c7d1a18fc", 3605 | "reference": "740c98235f5b6e2b0b13df2fb97c7a1c7d1a18fc", 3606 | "shasum": "" 3607 | }, 3608 | "require": { 3609 | "php": ">=5.3.9", 3610 | "symfony/polyfill-mbstring": "~1.0" 3611 | }, 3612 | "require-dev": { 3613 | "symfony/css-selector": "~2.8|~3.0.0" 3614 | }, 3615 | "suggest": { 3616 | "symfony/css-selector": "" 3617 | }, 3618 | "type": "library", 3619 | "extra": { 3620 | "branch-alias": { 3621 | "dev-master": "2.8-dev" 3622 | } 3623 | }, 3624 | "autoload": { 3625 | "psr-4": { 3626 | "Symfony\\Component\\DomCrawler\\": "" 3627 | }, 3628 | "exclude-from-classmap": [ 3629 | "/Tests/" 3630 | ] 3631 | }, 3632 | "notification-url": "https://packagist.org/downloads/", 3633 | "license": [ 3634 | "MIT" 3635 | ], 3636 | "authors": [ 3637 | { 3638 | "name": "Fabien Potencier", 3639 | "email": "fabien@symfony.com" 3640 | }, 3641 | { 3642 | "name": "Symfony Community", 3643 | "homepage": "https://symfony.com/contributors" 3644 | } 3645 | ], 3646 | "description": "Symfony DomCrawler Component", 3647 | "homepage": "https://symfony.com", 3648 | "time": "2015-11-02 20:29:39" 3649 | }, 3650 | { 3651 | "name": "symfony/event-dispatcher", 3652 | "version": "v2.8.0", 3653 | "source": { 3654 | "type": "git", 3655 | "url": "https://github.com/symfony/event-dispatcher.git", 3656 | "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc" 3657 | }, 3658 | "dist": { 3659 | "type": "zip", 3660 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a5eb815363c0388e83247e7e9853e5dbc14999cc", 3661 | "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc", 3662 | "shasum": "" 3663 | }, 3664 | "require": { 3665 | "php": ">=5.3.9" 3666 | }, 3667 | "require-dev": { 3668 | "psr/log": "~1.0", 3669 | "symfony/config": "~2.0,>=2.0.5|~3.0.0", 3670 | "symfony/dependency-injection": "~2.6|~3.0.0", 3671 | "symfony/expression-language": "~2.6|~3.0.0", 3672 | "symfony/stopwatch": "~2.3|~3.0.0" 3673 | }, 3674 | "suggest": { 3675 | "symfony/dependency-injection": "", 3676 | "symfony/http-kernel": "" 3677 | }, 3678 | "type": "library", 3679 | "extra": { 3680 | "branch-alias": { 3681 | "dev-master": "2.8-dev" 3682 | } 3683 | }, 3684 | "autoload": { 3685 | "psr-4": { 3686 | "Symfony\\Component\\EventDispatcher\\": "" 3687 | }, 3688 | "exclude-from-classmap": [ 3689 | "/Tests/" 3690 | ] 3691 | }, 3692 | "notification-url": "https://packagist.org/downloads/", 3693 | "license": [ 3694 | "MIT" 3695 | ], 3696 | "authors": [ 3697 | { 3698 | "name": "Fabien Potencier", 3699 | "email": "fabien@symfony.com" 3700 | }, 3701 | { 3702 | "name": "Symfony Community", 3703 | "homepage": "https://symfony.com/contributors" 3704 | } 3705 | ], 3706 | "description": "Symfony EventDispatcher Component", 3707 | "homepage": "https://symfony.com", 3708 | "time": "2015-10-30 20:15:42" 3709 | }, 3710 | { 3711 | "name": "symfony/translation", 3712 | "version": "v2.8.0", 3713 | "source": { 3714 | "type": "git", 3715 | "url": "https://github.com/symfony/translation.git", 3716 | "reference": "6772657767649fc3b31df12705194fb4af11ef98" 3717 | }, 3718 | "dist": { 3719 | "type": "zip", 3720 | "url": "https://api.github.com/repos/symfony/translation/zipball/6772657767649fc3b31df12705194fb4af11ef98", 3721 | "reference": "6772657767649fc3b31df12705194fb4af11ef98", 3722 | "shasum": "" 3723 | }, 3724 | "require": { 3725 | "php": ">=5.3.9", 3726 | "symfony/polyfill-mbstring": "~1.0" 3727 | }, 3728 | "conflict": { 3729 | "symfony/config": "<2.7" 3730 | }, 3731 | "require-dev": { 3732 | "psr/log": "~1.0", 3733 | "symfony/config": "~2.8", 3734 | "symfony/intl": "~2.4|~3.0.0", 3735 | "symfony/yaml": "~2.2|~3.0.0" 3736 | }, 3737 | "suggest": { 3738 | "psr/log": "To use logging capability in translator", 3739 | "symfony/config": "", 3740 | "symfony/yaml": "" 3741 | }, 3742 | "type": "library", 3743 | "extra": { 3744 | "branch-alias": { 3745 | "dev-master": "2.8-dev" 3746 | } 3747 | }, 3748 | "autoload": { 3749 | "psr-4": { 3750 | "Symfony\\Component\\Translation\\": "" 3751 | }, 3752 | "exclude-from-classmap": [ 3753 | "/Tests/" 3754 | ] 3755 | }, 3756 | "notification-url": "https://packagist.org/downloads/", 3757 | "license": [ 3758 | "MIT" 3759 | ], 3760 | "authors": [ 3761 | { 3762 | "name": "Fabien Potencier", 3763 | "email": "fabien@symfony.com" 3764 | }, 3765 | { 3766 | "name": "Symfony Community", 3767 | "homepage": "https://symfony.com/contributors" 3768 | } 3769 | ], 3770 | "description": "Symfony Translation Component", 3771 | "homepage": "https://symfony.com", 3772 | "time": "2015-11-18 13:45:00" 3773 | } 3774 | ], 3775 | "aliases": [], 3776 | "minimum-stability": "alpha", 3777 | "stability-flags": { 3778 | "ckeditor/ckeditor": 20, 3779 | "composer/composer": 15, 3780 | "behat/mink": 0, 3781 | "drupal/devel_themer": 20 3782 | }, 3783 | "prefer-stable": false, 3784 | "prefer-lowest": false, 3785 | "platform": [], 3786 | "platform-dev": [] 3787 | } 3788 | --------------------------------------------------------------------------------