├── houston.profile ├── makefiles ├── themes.make.yml ├── profile.make.yml ├── stubs │ ├── local-dev.make.yml │ ├── build.make.yml │ └── dev.make.yml └── modules.make.yml ├── config └── install │ ├── node.settings.yml │ ├── system.theme.yml │ ├── user.role.administrator.yml │ ├── block.block.help.yml │ ├── block.block.pagetitle.yml │ ├── block.block.userlogin.yml │ ├── block.block.primaryadminactions.yml │ ├── block.block.tabs.yml │ ├── block.block.tabs_2.yml │ ├── block.block.messages.yml │ ├── block.block.breadcrumbs.yml │ ├── block.block.mainpagecontent.yml │ └── user.settings.yml ├── .gitignore ├── houston.install ├── houston.info.yml ├── src └── Tests │ └── HoustonTest.php ├── houston.make ├── README.md └── LICENSE /houston.profile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /makefiles/themes.make.yml: -------------------------------------------------------------------------------- 1 | api: 2 2 | core: 8.x 3 | -------------------------------------------------------------------------------- /config/install/node.settings.yml: -------------------------------------------------------------------------------- 1 | use_admin_theme: true 2 | -------------------------------------------------------------------------------- /config/install/system.theme.yml: -------------------------------------------------------------------------------- 1 | admin: seven 2 | default: stark 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | modules/contrib/* 2 | modules/custom/* 3 | themes/contrib/* 4 | -------------------------------------------------------------------------------- /makefiles/profile.make.yml: -------------------------------------------------------------------------------- 1 | api: 2 2 | core: 8.x 3 | 4 | defaults: { projects: { subdir: contrib } } 5 | 6 | includes: 7 | - modules.make.yml 8 | - themes.make.yml -------------------------------------------------------------------------------- /makefiles/stubs/local-dev.make.yml: -------------------------------------------------------------------------------- 1 | api: 2 2 | core: 8.x 3 | 4 | defaults: 5 | projects: { contrib_destination: profiles/houston } 6 | 7 | projects: { drupal: { version: ~ } } 8 | 9 | includes: { - ../profile.make.yml } 10 | -------------------------------------------------------------------------------- /config/install/user.role.administrator.yml: -------------------------------------------------------------------------------- 1 | uuid: fee7e3e8-7afd-4919-8731-49a86ee0fdfe 2 | langcode: en 3 | status: true 4 | dependencies: { } 5 | id: administrator 6 | label: Administrator 7 | weight: 2 8 | is_admin: true 9 | permissions: { } 10 | -------------------------------------------------------------------------------- /makefiles/stubs/build.make.yml: -------------------------------------------------------------------------------- 1 | api: 2 2 | core: 8.x 3 | 4 | defaults: { projects: { subdir: contrib } } 5 | 6 | projects: 7 | drupal: { version: ~ } 8 | houston: 9 | type: profile 10 | subdir: ~ 11 | download: 12 | url: git@github.com:poetic/houston.git 13 | branch: master 14 | -------------------------------------------------------------------------------- /makefiles/stubs/dev.make.yml: -------------------------------------------------------------------------------- 1 | api: 2 2 | core: 8.x 3 | 4 | defaults: { projects: { subdir: contrib } } 5 | 6 | projects: 7 | drupal: { version: ~ } 8 | houston: 9 | type: profile 10 | subdir: ~ 11 | download: 12 | url: git@github.com:poetic/houston.git 13 | branch: master 14 | working-copy: true 15 | -------------------------------------------------------------------------------- /config/install/block.block.help.yml: -------------------------------------------------------------------------------- 1 | uuid: fd001695-863a-47c0-9a01-1f5ab3a23f51 2 | langcode: en 3 | status: true 4 | dependencies: 5 | module: 6 | - help 7 | theme: 8 | - seven 9 | id: help 10 | theme: seven 11 | region: help 12 | weight: -5 13 | provider: null 14 | plugin: help_block 15 | settings: 16 | id: help_block 17 | label: Help 18 | provider: help 19 | label_display: '0' 20 | visibility: { } 21 | -------------------------------------------------------------------------------- /config/install/block.block.pagetitle.yml: -------------------------------------------------------------------------------- 1 | uuid: 8497445d-1fd4-4f5a-bb00-d823a35154d8 2 | langcode: en 3 | status: true 4 | dependencies: 5 | theme: 6 | - seven 7 | id: pagetitle 8 | theme: seven 9 | region: header 10 | weight: -5 11 | provider: null 12 | plugin: page_title_block 13 | settings: 14 | id: page_title_block 15 | label: 'Page title' 16 | provider: core 17 | label_display: '0' 18 | visibility: { } 19 | -------------------------------------------------------------------------------- /config/install/block.block.userlogin.yml: -------------------------------------------------------------------------------- 1 | uuid: 03b81ea4-b0e7-43c7-9e47-71362295b6a3 2 | langcode: en 3 | status: true 4 | dependencies: 5 | module: 6 | - user 7 | theme: 8 | - seven 9 | id: userlogin 10 | theme: seven 11 | region: content 12 | weight: -2 13 | provider: null 14 | plugin: user_login_block 15 | settings: 16 | id: user_login_block 17 | label: 'User login' 18 | provider: user 19 | label_display: '0' 20 | visibility: { } 21 | -------------------------------------------------------------------------------- /config/install/block.block.primaryadminactions.yml: -------------------------------------------------------------------------------- 1 | uuid: 0efb3104-9ed0-41b5-8900-ad78af75304c 2 | langcode: en 3 | status: true 4 | dependencies: 5 | theme: 6 | - seven 7 | id: primaryadminactions 8 | theme: seven 9 | region: content 10 | weight: -4 11 | provider: null 12 | plugin: local_actions_block 13 | settings: 14 | id: local_actions_block 15 | label: 'Primary admin actions' 16 | provider: core 17 | label_display: '0' 18 | visibility: { } 19 | -------------------------------------------------------------------------------- /config/install/block.block.tabs.yml: -------------------------------------------------------------------------------- 1 | uuid: 30e6fbed-a3ef-42a9-875d-93fbf3411fdf 2 | langcode: en 3 | status: true 4 | dependencies: 5 | theme: 6 | - seven 7 | id: tabs 8 | theme: seven 9 | region: header 10 | weight: -5 11 | provider: null 12 | plugin: local_tasks_block 13 | settings: 14 | id: local_tasks_block 15 | label: 'Primary Tabs' 16 | provider: core 17 | label_display: '0' 18 | primary: true 19 | secondary: false 20 | visibility: { } 21 | -------------------------------------------------------------------------------- /config/install/block.block.tabs_2.yml: -------------------------------------------------------------------------------- 1 | uuid: 03d13c8d-38a2-4129-9800-a374b41178bf 2 | langcode: en 3 | status: true 4 | dependencies: 5 | theme: 6 | - seven 7 | id: tabs_2 8 | theme: seven 9 | region: pre_content 10 | weight: -5 11 | provider: null 12 | plugin: local_tasks_block 13 | settings: 14 | id: local_tasks_block 15 | label: 'Secondary Tabs' 16 | provider: core 17 | label_display: '0' 18 | primary: false 19 | secondary: true 20 | visibility: { } 21 | -------------------------------------------------------------------------------- /config/install/block.block.messages.yml: -------------------------------------------------------------------------------- 1 | uuid: 2b2147bb-90eb-4937-b604-4b51d6a498b4 2 | langcode: en 3 | status: true 4 | dependencies: 5 | module: 6 | - system 7 | theme: 8 | - seven 9 | id: messages 10 | theme: seven 11 | region: highlighted 12 | weight: -5 13 | provider: null 14 | plugin: system_messages_block 15 | settings: 16 | id: system_messages_block 17 | label: 'Status Messages' 18 | provider: system 19 | label_display: '0' 20 | visibility: { } 21 | -------------------------------------------------------------------------------- /config/install/block.block.breadcrumbs.yml: -------------------------------------------------------------------------------- 1 | uuid: 21985327-64b1-4fc2-9f00-ca5fba0d455e 2 | langcode: en 3 | status: true 4 | dependencies: 5 | module: 6 | - system 7 | theme: 8 | - seven 9 | id: breadcrumbs 10 | theme: seven 11 | region: breadcrumb 12 | weight: -5 13 | provider: null 14 | plugin: system_breadcrumb_block 15 | settings: 16 | id: system_breadcrumb_block 17 | label: Breadcrumbs 18 | provider: system 19 | label_display: '0' 20 | visibility: { } 21 | -------------------------------------------------------------------------------- /config/install/block.block.mainpagecontent.yml: -------------------------------------------------------------------------------- 1 | uuid: 1a2116b1-142f-44fe-ae00-db92f1bd18d5 2 | langcode: en 3 | status: true 4 | dependencies: 5 | module: 6 | - system 7 | theme: 8 | - seven 9 | id: mainpagecontent 10 | theme: seven 11 | region: content 12 | weight: -3 13 | provider: null 14 | plugin: system_main_block 15 | settings: 16 | id: system_main_block 17 | label: 'Main page content' 18 | provider: system 19 | label_display: '0' 20 | visibility: { } 21 | -------------------------------------------------------------------------------- /config/install/user.settings.yml: -------------------------------------------------------------------------------- 1 | anonymous: Anonymous 2 | verify_mail: true 3 | notify: 4 | cancel_confirm: true 5 | password_reset: true 6 | status_activated: true 7 | status_blocked: false 8 | status_canceled: false 9 | register_admin_created: true 10 | register_no_approval_required: true 11 | register_pending_approval: true 12 | register: admin_only 13 | cancel_method: user_cancel_block 14 | password_reset_timeout: 86400 15 | password_strength: true 16 | langcode: en 17 | -------------------------------------------------------------------------------- /makefiles/modules.make.yml: -------------------------------------------------------------------------------- 1 | api: 2 2 | core: 8.x 3 | 4 | projects: 5 | admin_toolbar: { version: ~ } 6 | composer_manager: { branch: 1.x-dev, revision: b5da8d1 } 7 | clutch: 8 | type: module 9 | subdir: custom 10 | download: 11 | type: git 12 | url: https://github.com/poetic/clutch.git 13 | branch: development 14 | working-copy: true 15 | coffee: { version: ~ } 16 | ctools: { version: 3.x-dev } 17 | devel: 18 | download: { branch: 1.x-dev, revision: c0b5c5f } 19 | entity_reference_revisions: { version: ~ } 20 | linkit: { version: ~ } 21 | metatag: { version: ~ } 22 | pathauto: { version: ~ } 23 | paragraphs: { version: ~ } 24 | token: { version: ~ } 25 | -------------------------------------------------------------------------------- /houston.install: -------------------------------------------------------------------------------- 1 | applyUpdates(); 22 | 23 | // Assign user 1 the "administrator" role. 24 | $user = User::load(1); 25 | $user->roles[] = 'administrator'; 26 | $user->save(); 27 | } 28 | -------------------------------------------------------------------------------- /houston.info.yml: -------------------------------------------------------------------------------- 1 | name: Houston 2 | type: profile 3 | description: 'An opinionated install profile focused on developer happiness.' 4 | core: 8.x 5 | 6 | dependencies: 7 | - admin_toolbar 8 | - admin_toolbar_tools 9 | - block 10 | - block_content 11 | - breakpoint 12 | - ckeditor 13 | - coffee 14 | - color 15 | - composer_manager 16 | - config 17 | - contextual 18 | - ctools 19 | - datetime 20 | - dblog 21 | - editor 22 | - entity_reference 23 | - field_ui 24 | - file 25 | - help 26 | - history 27 | - image 28 | - linkit 29 | - menu_link_content 30 | - menu_ui 31 | - metatag 32 | - node 33 | - options 34 | - page_cache 35 | - path 36 | - pathauto 37 | - quickedit 38 | - responsive_image 39 | - rdf 40 | - search 41 | - shortcut 42 | - taxonomy 43 | - telephone 44 | - token 45 | - toolbar 46 | - tour 47 | - views 48 | - views_ui 49 | - clutch 50 | #- webform # disabled until it gets more stable and doesn't cause the test suite to fail 51 | themes: 52 | - classy 53 | - seven 54 | -------------------------------------------------------------------------------- /src/Tests/HoustonTest.php: -------------------------------------------------------------------------------- 1 | drupalGet(''); 34 | $this->assertResponse(200); 35 | 36 | // Create a user with the administrator role 37 | $user = $this->drupalCreateUser(); 38 | $user->roles[] = 'administrator'; 39 | $user->save(); 40 | 41 | // Login with the administrator user account and make sure the toolbar is 42 | // visible 43 | $this->drupalLogin($user); 44 | $this->drupalGet(''); 45 | $this->assertText(t('Manage')); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /houston.make: -------------------------------------------------------------------------------- 1 | ; This file was auto-generated by drush make 2 | core = 8.x 3 | api = 2 4 | 5 | ; Core 6 | ; Modules 7 | projects[admin_toolbar][subdir] = "contrib" 8 | projects[admin_toolbar][version] = "1.14" 9 | 10 | projects[composer_manager][subdir] = "contrib" 11 | projects[composer_manager][branch] = "1.x-dev" 12 | projects[composer_manager][revision] = "b5da8d1" 13 | 14 | projects[clutch][subdir] = "custom" 15 | projects[clutch][download][type] = "git" 16 | projects[clutch][download][url] = "https://github.com/poetic/clutch.git" 17 | projects[clutch][download][branch] = "development" 18 | projects[clutch][download][working-copy] = "1" 19 | 20 | projects[coffee][subdir] = "contrib" 21 | projects[coffee][version] = "1.0-beta1" 22 | 23 | projects[ctools][subdir] = "contrib" 24 | projects[ctools][version] = "3.x-dev" 25 | 26 | projects[devel][subdir] = "contrib" 27 | projects[devel][download][branch] = "1.x-dev" 28 | projects[devel][download][revision] = "c0b5c5f" 29 | projects[devel][download][type] = "git" 30 | 31 | projects[entity_reference_revisions][subdir] = "contrib" 32 | projects[entity_reference_revisions][version] = "1.0-rc4" 33 | 34 | projects[linkit][subdir] = "contrib" 35 | projects[linkit][version] = "4.1" 36 | 37 | projects[metatag][subdir] = "contrib" 38 | projects[metatag][version] = "1.0-beta4" 39 | 40 | projects[pathauto][subdir] = "contrib" 41 | projects[pathauto][version] = "1.0-alpha1" 42 | 43 | projects[paragraphs][subdir] = "contrib" 44 | projects[paragraphs][version] = "1.0-rc4" 45 | 46 | projects[token][subdir] = "contrib" 47 | projects[token][version] = "1.0-alpha2" 48 | 49 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Houston 2 | 3 | ## Usage 4 | To build the distribution atop the latest Drupal core, run: 5 | 6 | drush make https://raw.githubusercontent.com/poetic/houston/master/makefiles/stubs/build.make.yml?token=AFnkxe_tP5BbmbD0QCBR5a7n2sVCKwj_ks5WzIpCwA%3D%3D [platform_name] 7 | 8 | To build for development (includes working copy of the profile): 9 | 10 | drush make https://raw.githubusercontent.com/poetic/houston/master/makefiles/stubs/dev.make.yml?token=AFnkxWa3CTHIvg9aII8j62KYJjxpQkIIks5WzIonwA%3D%3D [platform_name] 11 | 12 | To re-build an existing platform installed using one of the above commands, run this from your platform root: 13 | 14 | drush make profiles/houston/makefiles/stubs/local-dev.make.yml 15 | 16 | This will rebuild Drupal core and contrib in an existing code-base without 17 | touching the houston profile itself. This is useful when working on houston. 18 | 19 | To make sure you can use Composer Manager to download third party libraries, run this from your platform root: 20 | 21 | php profiles/houston/modules/contrib/composer_manager/scripts/init.php 22 | 23 | then run this to install all libraries: 24 | 25 | composer drupal-update 26 | 27 | If you have trouble with houston/vendor/jcalderonzumba/gastonjs, remove gastonjs then re-run `composer drupal-update` 28 | 29 | ## Maintenance 30 | The makefiles that define the various requirements for this installation 31 | profile are structured for easy readability and maintenance. 32 | 33 | For dev builds, Drush Make will prefer the latest versions of contrib modules, 34 | except for those specifying pinned versions. 35 | 36 | For production builds, we use a makefile with all versions locked down. To 37 | update this makefile, run the following command from the profile root: 38 | 39 | drush make --no-build --no-core makefiles/profile.make.yml --lock=houston.make 40 | 41 | 42 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU LESSER GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | 9 | This version of the GNU Lesser General Public License incorporates 10 | the terms and conditions of version 3 of the GNU General Public 11 | License, supplemented by the additional permissions listed below. 12 | 13 | 0. Additional Definitions. 14 | 15 | As used herein, "this License" refers to version 3 of the GNU Lesser 16 | General Public License, and the "GNU GPL" refers to version 3 of the GNU 17 | General Public License. 18 | 19 | "The Library" refers to a covered work governed by this License, 20 | other than an Application or a Combined Work as defined below. 21 | 22 | An "Application" is any work that makes use of an interface provided 23 | by the Library, but which is not otherwise based on the Library. 24 | Defining a subclass of a class defined by the Library is deemed a mode 25 | of using an interface provided by the Library. 26 | 27 | A "Combined Work" is a work produced by combining or linking an 28 | Application with the Library. The particular version of the Library 29 | with which the Combined Work was made is also called the "Linked 30 | Version". 31 | 32 | The "Minimal Corresponding Source" for a Combined Work means the 33 | Corresponding Source for the Combined Work, excluding any source code 34 | for portions of the Combined Work that, considered in isolation, are 35 | based on the Application, and not on the Linked Version. 36 | 37 | The "Corresponding Application Code" for a Combined Work means the 38 | object code and/or source code for the Application, including any data 39 | and utility programs needed for reproducing the Combined Work from the 40 | Application, but excluding the System Libraries of the Combined Work. 41 | 42 | 1. Exception to Section 3 of the GNU GPL. 43 | 44 | You may convey a covered work under sections 3 and 4 of this License 45 | without being bound by section 3 of the GNU GPL. 46 | 47 | 2. Conveying Modified Versions. 48 | 49 | If you modify a copy of the Library, and, in your modifications, a 50 | facility refers to a function or data to be supplied by an Application 51 | that uses the facility (other than as an argument passed when the 52 | facility is invoked), then you may convey a copy of the modified 53 | version: 54 | 55 | a) under this License, provided that you make a good faith effort to 56 | ensure that, in the event an Application does not supply the 57 | function or data, the facility still operates, and performs 58 | whatever part of its purpose remains meaningful, or 59 | 60 | b) under the GNU GPL, with none of the additional permissions of 61 | this License applicable to that copy. 62 | 63 | 3. Object Code Incorporating Material from Library Header Files. 64 | 65 | The object code form of an Application may incorporate material from 66 | a header file that is part of the Library. You may convey such object 67 | code under terms of your choice, provided that, if the incorporated 68 | material is not limited to numerical parameters, data structure 69 | layouts and accessors, or small macros, inline functions and templates 70 | (ten or fewer lines in length), you do both of the following: 71 | 72 | a) Give prominent notice with each copy of the object code that the 73 | Library is used in it and that the Library and its use are 74 | covered by this License. 75 | 76 | b) Accompany the object code with a copy of the GNU GPL and this license 77 | document. 78 | 79 | 4. Combined Works. 80 | 81 | You may convey a Combined Work under terms of your choice that, 82 | taken together, effectively do not restrict modification of the 83 | portions of the Library contained in the Combined Work and reverse 84 | engineering for debugging such modifications, if you also do each of 85 | the following: 86 | 87 | a) Give prominent notice with each copy of the Combined Work that 88 | the Library is used in it and that the Library and its use are 89 | covered by this License. 90 | 91 | b) Accompany the Combined Work with a copy of the GNU GPL and this license 92 | document. 93 | 94 | c) For a Combined Work that displays copyright notices during 95 | execution, include the copyright notice for the Library among 96 | these notices, as well as a reference directing the user to the 97 | copies of the GNU GPL and this license document. 98 | 99 | d) Do one of the following: 100 | 101 | 0) Convey the Minimal Corresponding Source under the terms of this 102 | License, and the Corresponding Application Code in a form 103 | suitable for, and under terms that permit, the user to 104 | recombine or relink the Application with a modified version of 105 | the Linked Version to produce a modified Combined Work, in the 106 | manner specified by section 6 of the GNU GPL for conveying 107 | Corresponding Source. 108 | 109 | 1) Use a suitable shared library mechanism for linking with the 110 | Library. A suitable mechanism is one that (a) uses at run time 111 | a copy of the Library already present on the user's computer 112 | system, and (b) will operate properly with a modified version 113 | of the Library that is interface-compatible with the Linked 114 | Version. 115 | 116 | e) Provide Installation Information, but only if you would otherwise 117 | be required to provide such information under section 6 of the 118 | GNU GPL, and only to the extent that such information is 119 | necessary to install and execute a modified version of the 120 | Combined Work produced by recombining or relinking the 121 | Application with a modified version of the Linked Version. (If 122 | you use option 4d0, the Installation Information must accompany 123 | the Minimal Corresponding Source and Corresponding Application 124 | Code. If you use option 4d1, you must provide the Installation 125 | Information in the manner specified by section 6 of the GNU GPL 126 | for conveying Corresponding Source.) 127 | 128 | 5. Combined Libraries. 129 | 130 | You may place library facilities that are a work based on the 131 | Library side by side in a single library together with other library 132 | facilities that are not Applications and are not covered by this 133 | License, and convey such a combined library under terms of your 134 | choice, if you do both of the following: 135 | 136 | a) Accompany the combined library with a copy of the same work based 137 | on the Library, uncombined with any other library facilities, 138 | conveyed under the terms of this License. 139 | 140 | b) Give prominent notice with the combined library that part of it 141 | is a work based on the Library, and explaining where to find the 142 | accompanying uncombined form of the same work. 143 | 144 | 6. Revised Versions of the GNU Lesser General Public License. 145 | 146 | The Free Software Foundation may publish revised and/or new versions 147 | of the GNU Lesser General Public License from time to time. Such new 148 | versions will be similar in spirit to the present version, but may 149 | differ in detail to address new problems or concerns. 150 | 151 | Each version is given a distinguishing version number. If the 152 | Library as you received it specifies that a certain numbered version 153 | of the GNU Lesser General Public License "or any later version" 154 | applies to it, you have the option of following the terms and 155 | conditions either of that published version or of any later version 156 | published by the Free Software Foundation. If the Library as you 157 | received it does not specify a version number of the GNU Lesser 158 | General Public License, you may choose any version of the GNU Lesser 159 | General Public License ever published by the Free Software Foundation. 160 | 161 | If the Library as you received it specifies that a proxy can decide 162 | whether future versions of the GNU Lesser General Public License shall 163 | apply, that proxy's public statement of acceptance of any version is 164 | permanent authorization for you to choose that version for the 165 | Library. 166 | --------------------------------------------------------------------------------