-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathindex.html
226 lines (204 loc) · 11.1 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Kraftwagen | Drupal for developers</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Kraftwagen enables the use of Drupal with large (distributed) development teams and staged deployments.">
<meta name="keywords" content="drupal, kraftwagen, drush, developers, deployment, collaborate, version control, git, svn">
<meta name="author" content="Rolf van de Krol">
<link href="/css/bootstrap.css" rel="stylesheet">
<link href="/css/bootstrap-responsive.css" rel="stylesheet">
<link href="/css/font-awesome.css" rel="stylesheet">
<link href="/css/kraftwagen.css" rel="stylesheet">
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/img/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon-precomposed" href="/img/apple-touch-icon-57x57.png">
<link rel="shortcut icon" href="/img/favicon.ico">
</head>
<body>
<div class="container">
<div class="hero-unit">
<h1><img src="/img/logo.png" alt="Kraftwagen" /></h1>
<p class="tag-line">
Drupal for (distributed) development teams
<br/>
and reliable, staged, single-command deployments
</p>
<p>
<ul>
<li><i class="icon-hand-right"></i> Storing configuration as code, in version control; instead of in the database.</li>
<li><i class="icon-hand-right"></i> <em>Referring</em> to <abbr title="Drupal core, contrib modules and external libraries">3rd party code</abbr> instead of copying them into your project.</li>
<li><i class="icon-hand-right"></i> Multiple deployment targets (local, staging, production, etc.)</li>
<li><i class="icon-hand-right"></i> Single-command deployments with <a href="https://github.com/kraftwagen/capwagen">Capistrano</a>.</li>
<li><i class="icon-hand-right"></i> Kick-start new projects from <a href="https://github.com/kraftwagen/skeleton">skeletons</a>.</li>
</ul>
</p>
<p>
<a href="/get-started.html" class="btn btn-kraftwagen btn-huge"><i class="icon-cogs"></i> Get started!</a>
</p>
</div>
<div class="announce drupal8">
<h2>Drupal 8</h2>
<p>
With Drupal 8 beta releases being pumped out by our beloved core developers and the number of critical issues only decreasing, it is time to think about the future of Kraftwagen.
</p>
<p>
Kraftwagen in its current form only works for Drupal 7. We need to think about if Kraftwagen or parts of it are still needed for Drupal 8. And if we still need Kraftwagen, how we are going to implement this.
</p>
<p>
Please join the discussion on <a href="https://trello.com/b/cWd3ECSa/kraftwagen-drupal-8" target="_blank">Trello</a>.
</p>
</div>
<div class="page-header">
<h2>Drupal + Kraftwagen = Drupal for developers</h2>
</div>
<p>
One of <a href="http://drupal.org/">Drupal</a>’s core values is
“easy to use”. Yet what that means to
end-users (who use FTP to upload Drupal to a web host, and customize
it through the admin interface), is different from what that means to
developers (who customize Drupal extensively, need staged deployments
and use version control systems to collaborate).
</p>
<p>
Kraftwagen makes Drupal “easy to use” for developers.
</p>
<div class="page-header">
<h2>How does it work?</h2>
</div>
<p>
Kraftwagen consists of a <a href="http://drupal.org/project/drush">Drush</a>
extension and set of Drupal modules, all
<a rel="license" href="http://www.gnu.org/licenses/gpl">open source</a>
and <a href="https://github.com/kraftwagen">hosted on github</a>.
It reuses existing work where possible, for example:
<a href="http://drupal.org/project/distributions">install profiles</a>,
<a href="https://github.com/drush-ops/drush">Drush</a> Make,
<a href="http://drupal.org/project/features">Features</a>,
version control systems (git, subversion, mercurial, etc.) and
<a href="http://capistranorb.com">Capistrano</a>.
</p>
<p>
Because Drupal stores a lot a configuration details in the database,
version control systems cannot be used to track changes. This makes it
hard for a team of developers to collaborate, or to stage changes to a
separate deployment target before rolling them out in production.
Kraftwagen primarily solves this issue by using
<a href="https://github.com/kraftwagen/kw-manifests">manifests</a>
to sync aspects of Drupal project’s different installations
to the same state. These aspects can be: configuration details in the
database, creation of base-line content, setting up static files or
any other aspect of a Drupal project that can be controlled from PHP.
</p>
<p>
Kraftwagen extends Drupal with:
<ul>
<li>The <b><a href="https://github.com/kraftwagen/kraftwagen">kraftwagen</a></b> Drush extension
— provides a set of Drush commands to manage an install
profile based Drupal development and deployment workflow.</li>
<li>The <b><a href="https://github.com/kraftwagen/kw-itemnames">kw-itemnames</a></b> Drupal module
— allowes human names to be assigned to items that are
mapped to numeric primary keys.</li>
<li>The <b><a href="https://github.com/kraftwagen/kw-manifests">kw-manifests</a></b> Drupal module
— adds support idempotent migrations (manifests).</li>
</ul>
Besides these extensions an <a href="https://github.com/kraftwagen/capwagen">integration with Capistrano</a>
facilitates single-command deployments. A must in the age of continuous delivery.
</p>
<div class="page-header">
<h2>Goals</h2>
</div>
<p>
The following goals were set when developing Krafwagen:
<dl>
<dt>Everything in code™</dt>
<dd>We wanted to make sure all the required information to run an
application or website is in source code. If some developer checks
out the project from a repository, he should be able the get it
running, without manual steps in Drupal’s admin interface or copying
database dumps.
</dd>
<dt>Don’t reinvent the wheel</dt>
<dd>A lot of effort has already been done in this area and we wanted to
build on top of that. That’s why Kraftwagen is built on top of Drush.
Kraftwagen commands are only thin convience wrappers around existings
commands or sequences of commands. This also means that most concepts
in Kraftwagen should sound familiar to any seasoned Drupal developer.
</dd>
<dt>Version control independence</dt>
<dd>
We didn’t want a tool that completely locks us into Subversion, Git or
any other version control mechanism. Of course we all love version control
and use it whenever we can, but a toolchain should not depend on a specific
flavor of version control. <em>Currently there is one Git dependent
command: the command to start a new project uses Git to download the
<a href="https://github.com/kraftwagen/skeleton">skeleton</a>.</em>
</dd>
<dt>Environment awareness</dt>
<dd>
Drupal itself doesn’t make any difference between staging, production
and development environments. In production you’ll want the
<a href="http://drupal.org/project/devel">Devel</a> module disabled,
while in development environments it should be enabled. When copying
around database dumps this is almost impossible to do automatically.
Kraftwagen’s <a href="https://github.com/kraftwagen/kw-environment">kw-environment</a>
module extends Drupal with the notion of environments.
<dt>
<dt>Transparent in use</dt>
<dd>
Developers should naturally understand the workflows that Kraftwagen
facilitates. Therefore Kraftwagen’s command line commands report
what they are doing and error messages are constructive.
<a href="/get-started.html">Getting started</a> with Kraftwagen
should be a breeze for any seasoned Drupal developer.
<dt>
</dl>
</p>
<div class="page-header">
<h2>Contribute</h2>
</div>
<p>
Kraftwagen is a open source project that welcomes contributions from the community.
All development happens on our <a href="https://github.com/kraftwagen">Github</a>
respositories; needless to say that we welcome pull-requests and issue tickets.
</p>
<p>
There is also a <a href="https://groups.google.com/forum/#!forum/kraftwagen">mailing list for Kraftwagen</a>,
it allows for discussions, sharing of insights and posts of otherwise Kraftwagen related
stuff. We will also announce release there, so make sure to subscribe.
</p>
<p> </p>
<p> </p>
<p class="center">
<a href="/get-started.html" class="btn btn-kraftwagen btn-huge"><i class="icon-cogs"></i> Get started!</a>
</p>
<p> </p>
<footer>
<hr />
<p>
Spread the news: <span class="st_twitter"></span><span class="st_facebook" ></span><span class="st_googleplus"></span><span class="st_linkedin"></span>
</p>
<p>
Development of Kraftwagen is sponsored by <a href="http://hoppinger.com/" class="hoppinger"><img src="img/hoppinger.png" alt="Hoppinger" /></a>
</p>
<p>
This work is licensed under the <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_US">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>
</p>
</footer>
</div>
<a href="https://github.com/kraftwagen" class="fork-me"><i class="icon-github"></i> Fork me on Github</a>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="/js/bootstrap.js"></script>
<script src="/js/app.js"></script>
<script type="text/javascript">var _gaq = [['_setAccount', 'UA-36687951-1'], ['_trackPageview']];</script>
<script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>
<script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script>
<script type="text/javascript">stLight.options({publisher: "23d62cc2-75a8-4f7a-8bc0-ef6411540241"});</script>
</body>
</html>