jtrupiano-capistrano-extensions 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,8 +1,14 @@
1
- # Created 2008-08-20
1
+ === v0.1.4 / 2008-09-12
2
+ * In local:restore_db, the db import would previously fail if the username was not specified in your database.yml
3
+ file. I have corrected this and set it to default to 'root' now (as rails does).
4
+
5
+ * Moved a lot of the information/instructions out of the README and onto the github wiki
6
+ (http://github.com/jtrupiano/capistrano-extensions/wikis/home).
7
+
8
+ * Started hosting the gem at rubyforge. You can now install directly from gem without downloading the source!
2
9
 
3
10
  === v0.1.3 / 2008-08-25
4
- * 2008-08-25 : VERSION BUMP
5
- Introduced a new property :shared_content, which is intended to completely replace :content_directories
11
+ * Introduced a new property :shared_content, which is intended to completely replace :content_directories
6
12
  eventually. All directories previously specified by :content_directories go through a simple transformation
7
13
  to match the new hash construct that is :shared_content. Now, we can specify non-public directories (though
8
14
  they are still limited to within RAILS_ROOT), e.g.
@@ -13,10 +19,10 @@
13
19
  Then, on successive deployments, this symlink is just recreated, and all of our feeds are still accessible
14
20
  (because they were stored outside of RAILS_ROOT and then symlinked in).
15
21
 
16
- === v0.1.2 / 2008-07-20
17
- 2008-08-20
18
22
  * Fixed a mysql bug that was encountered in "sync" operations. When passing a password on the command-line
19
23
  (e.g. mysqldump -uuser -ppass), $'s in the password need to be escaped. I also fixed the scenario where
20
24
  there was no password (common for restoring to the development environment). Previously you would be
21
25
  prompted for a password only in the case where there was no password required. This was a result of
22
- the way the mysql commands were being built: "mysql -u#{user} -p#{password}" where password was nil or ""
26
+ the way the mysql commands were being built: "mysql -u#{user} -p#{password}" where password was nil or ""
27
+
28
+ === v0.1.2 / 2008-07-20
data/README.txt CHANGED
@@ -12,170 +12,7 @@ This gem provides a base set of Capistrano extensions including the following:
12
12
  * tasks for working with remote logfiles
13
13
  * tasks for database/asset synchronization from production back to local environments
14
14
 
15
- == INCOMPLETE:
16
- * Missing a detailed sample config file
17
- * Describe the shortcomings (or rather my dissatisfaction) with the remote syncing executables for
18
- assets/db. It works fine for now, but is a little wasteful.
19
- * Database synchronization _only_ works for MySQL. (not sure if I intend to change this any time soon)
20
- * This has really only been tested on single-server deployments, so I'm not sure how well it will work
21
- on more complex environments -- I'll personally be able to test that in the coming month or two, but
22
- that will be dictated by necessity.
23
- * Still no support for user-uploaded assets stored outside of the public/ directory
24
- * Need to automate the generation of this document: the descriptions for each attribute/task
25
- should mirror the description in the deploy script (in other words, I should only have to update the
26
- the documentation in one place).
27
-
28
- == CAPISTRANO CODE EXTENSIONS:
29
- * new RemoteDependency type :gemfile
30
-
31
- depend(:remote, :gemfile, "config/geminstaller.yml")
32
-
33
- Aliases the depend method (with depend_without_gemfile). Proxies all calls with :type != :gemfile
34
- to the aliased method. When :type == :gemfile, the gems file is parsed (using geminstaller
35
- codebase) to iteratively call depend_without_gemfile with each gem found in the YAML file.
36
-
37
- This is still really only suitable for single-server deployments. The idea would be to add new
38
- options to the geminstaller.yml config syntax that would allow us to reference specific
39
- capistrano roles for a given gem. For instance, the database server won't need all of our rails
40
- gems. A separate ferret server may require it's own set of gems, etc.
41
-
42
- == NEW RECIPE PROPERTIES --> DEFAULTS
43
- # Provides a way to specify which uploadable asset directories (that live in public/)
44
- # should be retrievable via the local:copy_production_content and local:copy_production
45
- # tasks described below. Note that this parameter is also utilized by the
46
- # passenger-recipes gem to keep these uploadable assets in the shared/ context.
47
- :content_directories --> []
48
-
49
- # This property is similar to :content_directories, except it doesn't assume that the symlinks
50
- # exist in the public/ directory (the default location for FileColumn file storage).
51
- #
52
- # This property is a hash of remote => local mappings, e.g.
53
- #
54
- # "feeds" => "content" (or "uploaded_assets/meal" => "public/meal")
55
- #
56
- # These examples will effectively create the following symlinks in a deployable environment:
57
- # ln -sf \#{shared_path}/feeds RAILS_ROOT/content
58
- # ln -sf \#{shared_path}/uploaded_assets/meal RAILS_ROOT/public/meal
59
- #
60
- # Each key (the "remote" directory) must be a directory found in \#{shared_path} (in a deployable environment)
61
- # Each value (the "local" directory) must be a directory found in RAILS_ROOT (in a local environment)
62
- :shared_content --> {}
63
-
64
- # Which environments are deployable-- for each environment specified in this array,
65
- # a helper function by the same name is created that is executed only if RAILS_ENV
66
- # is set to that value. See examples/sample_deploy.rb for a code sample.
67
- :deployable_environments --> [:production]
68
-
69
- # We at SLS use a different config structure than rails does out of the box.
70
- # Setting this value to :sls will alter some of the expected paths. Normally,
71
- # you will not have to set this variable. To see a discussion of the SLS config
72
- # file structure, see http://blog.smartlogicsolutions.com/2008/06/02/better-setup-for-environments-in-rails/
73
- :config_structure --> :rails
74
-
75
- == NEW RECIPES:
76
- * deploy:create_shared_file_column_dirs
77
-
78
- Creates shared filecolumn directories and symbolic links to them by
79
- reading the :content_directories property. Note that this task is not invoked by default,
80
- but rather is exposed to you as a helper. To utilize, you'll want to override
81
- deploy:default and invoke this yourself.
82
-
83
- * deploy:gem_update
84
-
85
- Invokes geminstaller to ensure that the proper gem set is installed on the target server.
86
- Note that this task is not invoked by default, but rather is exposed to you as a helper.
87
-
88
- * log:pull
89
-
90
- Tarballs deployable environment's rails logfile (identified by
91
- RAILS_ENV environment variable, which defaults to 'production') and copies it to the local
92
- filesystem
93
-
94
- * local:backup_db
95
-
96
- Backs up deployable environment's database (identified by the
97
- RAILS_ENV environment variable, which defaults to 'production') and copies it to the local machine
98
-
99
- * local:restore_db
100
-
101
- Untars the backup file downloaded from local:backup_db (specified via the FROM env
102
- variable, which defalts to RAILS_ENV), and imports (via mysql command line tool) it back into the database
103
- defined in the RAILS_ENV env variable.
104
-
105
- ToDo: implement proper rollback: currently, if the mysql import succeeds, but the rm fails,
106
- the database won't be rolled back. Not sure this is even all that important or necessary, since
107
- it's a local database that doesn't demand integrity (in other words, you're still going to have to
108
- fix it, but it's not mission critical).
109
-
110
- * local:backup_content
111
-
112
- Downloads a tarball of uploaded content (that lives in public/ directory, as specified by
113
- the :content_directories property) from the production site back to the local filesystem
114
-
115
- * local:restore_content
116
-
117
- Restores the backed up content (evn var FROM specifies which environment was backed up,
118
- defaults to RAILS_ENV) to the local development environment app
119
-
120
- * local:sync_db
121
-
122
- Wrapper for local:backup_db and local:restore_db
123
-
124
- $> cap local:sync_db RAILS_ENV=production RESTORE_ENV=development
125
-
126
- * local:sync_content
127
-
128
- Wrapper for local:backup_content and local:restore_content
129
-
130
- $> cap local:sync_content RAILS_ENV=production RESTORE_ENV=development
131
-
132
- * local:sync
133
-
134
- Wrapper for local:sync_db and local:sync_content
135
-
136
- $> cap local:sync RAILS_ENV=production RESTORE_ENV=development
137
-
138
- * remote:restore_db
139
-
140
- Uploads the backup file downloaded from local:backup_db (specified via the FROM env variable),
141
- copies it to the remove environment specified by RAILS_ENV, and imports (via mysql command line
142
- tool) it back into the remote database.
143
-
144
- * remote:sync_db
145
-
146
- Backs up target deployable environment's database (identified by the FROM environment variable,
147
- which defaults to 'production') and restores it to the remote database identified by the TO
148
- environment variable, which defaults to "staging."
149
-
150
- Because multiple capistrano configurations must be loaded, an external executable
151
- (capistrano-extensions-sync_db) is invoked, which independently calls capistrano. See the
152
- executable at $GEM_HOME/capistrano-extensions-0.1.3/bin/capistrano-extensions-sync_db
153
-
154
- $> cap remote:sync_db FROM=production TO=staging
155
-
156
- * remote:restore_content
157
-
158
- Uploads the backup file downloaded from local:backup_content (specified via the FROM env variable),
159
- copies it to the remote environment specified by RAILS_ENV, and unpacks it into the shared/
160
- directory.
161
-
162
- * remote:sync_content
163
-
164
- Backs up target deployable environment's shared content (identified by the FROM environment
165
- variable, which defaults to 'production') and restores it to the remote environment identified
166
- by the TO envrionment variable, which defaults to "staging."
167
-
168
- Because multiple capistrano configurations must be loaded, an external executable
169
- (capistrano-extensions-sync_content) is invoked, which independently calls capistrano. See the
170
- executable at $GEM_HOME/capistrano-extensions-0.1.2/bin/capistrano-extensions-sync_content
171
-
172
- $> cap remote:sync_content FROM=production TO=staging
173
-
174
- * remote:sync
175
-
176
- Wrapper fro remote:sync_db and remote:sync_content.
177
-
178
- $> cap remote:sync FROM=production TO=staging
15
+ For a detailed exploration of these features, check out the wiki: http://github.com/jtrupiano/capistrano-extensions/wikis/home
179
16
 
180
17
  == SYNOPSIS:
181
18
 
@@ -183,13 +20,12 @@ This gem provides a base set of Capistrano extensions including the following:
183
20
 
184
21
  == REQUIREMENTS:
185
22
 
186
- * Capistrano = 2.4.3
23
+ * Capistrano >= 2.4.3
187
24
  * GemInstaller = 0.4.3
188
25
 
189
26
  == INSTALL:
190
27
 
191
- * rake gem
192
- * sudo gem install pkg/capistrano-extensions-0.1.3.gem --local
28
+ * sudo gem install capistrano-extensions
193
29
 
194
30
  == LICENSE:
195
31
 
data/Rakefile CHANGED
@@ -1,17 +1,3 @@
1
- # GEM_SPEC = eval(File.read("#{File.dirname(__FILE__)}/#{PKG_NAME}.gemspec"))
2
- #
3
- # Rake::GemPackageTask.new(GEM_SPEC) do |p|
4
- # p.gem_spec = GEM_SPEC
5
- # p.need_tar = true
6
- # p.need_zip = true
7
- # end
8
- #
9
- # desc "Clean up generated directories and files"
10
- # task :clean do
11
- # rm_rf "pkg"
12
- # end
13
-
14
-
15
1
  # -*- ruby -*-
16
2
 
17
3
  require 'rubygems'
@@ -19,24 +5,26 @@ require 'hoe'
19
5
  require './lib/capistrano-extensions.rb'
20
6
  require "./lib/capistrano-extensions/version"
21
7
 
22
-
23
8
  PKG_NAME = "capistrano-extensions"
24
9
  PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
25
- PKG_VERSION = CapistranoExtensions::Version::STRING + PKG_BUILD
10
+ version = CapistranoExtensions::Version::STRING.dup
11
+ if ENV['SNAPSHOT'].to_i == 1
12
+ version << "." << Time.now.utc.strftime("%Y%m%d%H%M%S")
13
+ end
14
+ PKG_VERSION = version
26
15
  PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
27
16
 
28
-
29
- Hoe.new('capistrano-extensions', PKG_VERSION) do |p|
30
- # p.rubyforge_name = 'capistrano-extensionsx' # if different than lowercase project name
31
- # p.developer('FIX', 'FIX@example.com')
32
- p.name = "capistrano-extensions"
17
+ Hoe.new(PKG_NAME, PKG_VERSION) do |p|
18
+ p.rubyforge_name = 'johntrupiano' # if different than lowercase project name
19
+ p.developer('John Trupiano', 'jtrupiano@gmail.com')
20
+ p.name = PKG_NAME
33
21
  p.version = PKG_VERSION
34
22
  #p.platform = Gem::Platform::RUBY
35
23
  p.author = "John Trupiano"
36
24
  p.email = "jtrupiano@gmail.com"
37
25
  p.description = %q(A base set of Capistrano extensions-- aids with the file_column plugin, the GemInstaller gem, multiple deployable environments, logfile helpers, and database/asset synchronization from production to local environment)
38
26
  p.summary = p.description # More details later??
39
- p.remote_rdoc_dir = 'capistrano-extensions' # Release to /capistrano-extensions
27
+ p.remote_rdoc_dir = PKG_NAME # Release to /PKG_NAME
40
28
  # p.changes = p.paragraphs_of('CHANGELOG', 0..1).join("\n\n")
41
29
  p.extra_deps << ["capistrano", ">= 2.4.3"]
42
30
  p.extra_deps << ["geminstaller", ">= 0.4.3"]
@@ -238,7 +238,7 @@ Capistrano::Configuration.instance(:must_exist).load do
238
238
 
239
239
  env = ENV['RESTORE_ENV'] || 'development'
240
240
  y = YAML.load_file(local_db_conf(env))[env]
241
- db, user = y['database'], y['username'] # update me!
241
+ db, user = y['database'], (y['username'] || 'root') # update me!
242
242
 
243
243
  pass_str = pluck_pass_str(y)
244
244
 
@@ -12,7 +12,7 @@ module CapistranoExtensions
12
12
 
13
13
  MAJOR = 0
14
14
  MINOR = 1
15
- TINY = 3
15
+ TINY = 4
16
16
 
17
17
  STRING = [MAJOR, MINOR, TINY].join(".")
18
18
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jtrupiano-capistrano-extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Trupiano
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-26 00:00:00 -07:00
12
+ date: 2008-09-12 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -83,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  version:
84
84
  requirements: []
85
85
 
86
- rubyforge_project: capistrano-extensions
86
+ rubyforge_project: johntrupiano
87
87
  rubygems_version: 1.2.0
88
88
  signing_key:
89
89
  specification_version: 2