forked from kraftwagen/kraftwagen.github.com
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
162 lines (146 loc) · 7.59 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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Kraftwagen</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="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]-->
</head>
<body>
<div class="container">
<div class="hero-unit">
<h1><img src="/img/logo.png" alt="Kraftwagen" /></h1>
<p class="tag-line">
Drupal for large (distributed) development teams and staged
deployments.
</p>
<p>
<ul>
<li><i class="icon-hand-right"></i> Everything in code™, under version control</li>
<li><i class="icon-hand-right"></i> Multiple deployment targets (local, staging, production, etc.)</li>
<li><i class="icon-hand-right"></i> Kick-starting new projects from <a href="https://github.com/kraftwagen/skeleton">skeletons</a></li>
</ul>
</p>
<p>
<a href="/get-started.html" class="btn btn-success btn-large"><i class="icon-cogs"></i> Get started!</a>
</p>
</div>
<h2>Drupal + Kraftwagen = Drupal for developers</h2>
<p>
One of the core values of <a href="http://drupal.org/">Drupal</a> is
"easy to use", but what that means
end-users (who uses FTP to upload Drupal to a web host, and customizes
it though the admin interface), is something else then what it means for
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>
<h2>How does it work?</h2>
<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: install profiles,
drush make, <a href="http://drupal.org/project/features">Features</a>,
version control and soon <a href="https://github.com/capistrano/capistrano">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 'manifests' sync aspects
different installations of a Drupal project to the same state, these
aspects could 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-environment">kw-environment</a></b> Drupal module
— makes the current deployment environment available in Drupal.</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>
</p>
<h2>Goals</h2>
<p>
The following goals where 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 the source code. If some developer checks
out the project from our Git repository, she should be able the get it
running, without a lot of manual steps in Drupal or copying around
large 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 uses the Features module
and is build completely on top of Drush. Some of the most used
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 locks us completely with Subversion, Git or
any other version control mechanism. Of course with serious projects
you'll really want some sort of version control, but your toolchain
should not depend on it. <em>Currently, there is one Git dependend
command. The command to start a new project uses Git to download the
skeleton. We are looking at a way to elegantly solve this, while
keeping the convenience of the current command.</em>
</dd>
<dt>Environment awareness</dt>
<dd>
Drupal itself doesn't make any difference between staging, production
and development enviroments. 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.
<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>
<hr>
<footer>
<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>
</body>
</html>