public
Description: a tool to organize and maintain an internal gem distribution server
Clone URL: git://github.com/copiousfreetime/stickler.git
documentation cleanup in preparation for first release
Thu Oct 09 21:12:41 -0700 2008
commit  c17151933bc4551635c84b22c8731d03cca86786
tree    65d17a83d1cec358228c9d94f027dc76a6359890
parent  fa687d19fb93bee26e732f1bee0d1007216b0559
0
...
6
7
8
9
 
10
11
12
...
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
...
45
46
47
 
48
49
...
6
7
8
 
9
10
11
12
...
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
...
81
82
83
84
85
86
0
@@ -6,7 +6,7 @@
0
 
0
 == DESCRIPTION
0
 
0
-Stickler is a tool to organize and maintain an internal gem distribution server.
0
+Stickler is a tool to organize and maintain an internal gem distribution.
0
 
0
 At times it is useful to have complete control over the availability of the gems
0
 for you testing, staging and production environments. In these cases you
0
@@ -14,29 +14,65 @@ probably do not want to accidentally type 'gem update' and get a new untested
0
 version of a gem installed on your machines. This is where Stickler helps.
0
 
0
 Configure stickler with the the names and versions of the gems you require for
0
-your deployment and it will organize and setup a gem server to serve up only
0
-those gems.
0
+your deployment and it will organize and setup everything that is necessary for
0
+a standard web server to function as your internal gem distribution server.
0
 
0
 == INSTALLATION
0
 
0
 Install as a gem:
0
 
0
- sudo gem install stickler
0
+ gem install stickler
0
 
0
 Or Get it from RubyForge[http://rubyforge.org/projects/copiousfreetime/]
0
 or github[http://github.com/copiousfreetime/stickler/tree/master]
0
 
0
-== FEATURES
0
+== SYNOPSIS
0
 
0
-* Serve up a custom collection of gems for your own use.
0
-* Generation of a custom 'sources' gem to have your rubygems installations point
0
- to your custom gem server.
0
-* Tracking of the gems you care about and notification when a new version of those
0
- are released on rubyforge.
0
-* Integrates with your internal build system so your internal gems can be
0
- deployed to the stickler gem server
0
+Using stickler is fairly simple. First install it, then create a new stickler
0
+repository with the setup command:
0
 
0
-== SYNOPSIS
0
+ stickler setup /var/stickler
0
+
0
+This will create a stickler repository in /var/stickler, assuming you have the
0
+correct permissions to create that directory. Now you need to populate it with
0
+some gems. You can add and remove both gems and sources. The best way to do
0
+this is to change into stickler repository and run other commands.
0
+
0
+ cd /var/stickler
0
+ stickler add gem ramaze
0
+
0
+This will prompt you for the gem version requirement for 'ramaze' and then
0
+download ramaze and everything it depends upon into the stickler repository.
0
+
0
+You can also add your own upstream gem repository to stickler. This enables you
0
+to merge multiple upstream repositories into a single repository.
0
+
0
+ stickler add source http://gems.example.com/
0
+
0
+Now you can add gems to your stickler repository that are found in the default
0
+upstream repository (rubygems) and your custom upstream repositories. It will
0
+even resolve dependencies between them.
0
+
0
+When you are ready to distribute the gems found in your stickler repository,
0
+edit the 'stickler.yml' file found in the root of your repository and set the
0
+'downstream_source' configuration variable. This is the location that your
0
+installed rubygems clients will contact to download gems. Most likely something
0
+like 'http://gems.example.com' or whatever your company / organization name is.
0
+
0
+Then run the index command to generate the distributable gem repository.
0
+
0
+ stickler generate index
0
+
0
+This generates a directory structure under the 'dist' directory that you can
0
+rsync to a web server or otherwise push to some location for your managed
0
+machines to contact for gems.
0
+
0
+If you want to setup a system gem source configuration, use the 'generate
0
+sysconfig' command to generate the text file you can put on your systems so that
0
+they contact the 'downstream_source' as the default gem server. The command
0
+informs you of where to install the file.
0
+
0
+ stickler generate sysconfig
0
 
0
 == CREDITS
0
 
0
@@ -45,5 +81,6 @@ or github[http://github.com/copiousfreetime/stickler/tree/master]
0
 == LICENSE
0
 
0
 Copyright (c) 2008 Jeremy Hinegardner
0
+
0
 All rights reserved. Licensed under the same terms as Ruby. No warranty is
0
 provided. See LICENSE and COPYING for details.
...
6
7
8
9
 
10
11
12
...
6
7
8
 
9
10
11
12
0
@@ -6,7 +6,7 @@
0
 
0
 # The source that other rubygems installations will use to access the gems
0
 # collected and managed by stickler.
0
-downstream_source: "http://gems.collectiveintellect.com/"
0
+downstream_source: "http://gems.example.com/"
0
 
0
 # The upstream locations that stickler should look for gems.
0
 sources:
...
14
15
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
18
19
20
21
...
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
33
34
35
0
@@ -14,8 +14,22 @@ Stickler::GEM_SPEC = Gem::Specification.new do |spec|
0
   spec.description = proj.description
0
   spec.platform = Gem::Platform::RUBY
0
 
0
+ spec.post_install_message = <<-msg
0
+ ============================================================
0
+
0
+ Thank you for installing Stickler!
0
+
0
+ * Create a new stickler repository:
0
+ stickler setup /path/to/repo
0
+
0
+ * Look at the help:
0
+ stickler help
0
+
0
+ ============================================================
0
+ msg
0
+
0
+
0
   spec.required_rubygems_version = [ ">= 1.2.0" ]
0
- spec.post_install_message = "Run `stickler help` for more information"
0
 
0
   spec.add_runtime_dependency( 'highline', "~> 1.4" )
0
   spec.add_runtime_dependency( 'logging', "~> 0.9" )
...
42
43
44
45
46
47
48
49
 
 
 
 
 
 
50
51
52
...
221
222
223
224
 
225
226
227
228
 
229
230
231
...
42
43
44
 
 
 
 
 
45
46
47
48
49
50
51
52
53
...
222
223
224
 
225
226
227
228
229
230
231
232
233
0
@@ -42,11 +42,12 @@ module Stickler
0
 
0
     examples <<-txt
0
       . stickler setup
0
- . stickler delete rails
0
- . stickler add ramaze
0
- . stickler add keybox --version 1.2.1
0
- . stickler check --email 'admin@example.com'
0
- . stickler list
0
+ . stickler remove gem rails
0
+ . stickler add gem ramaze
0
+ . stickler add gem keybox --version 1.2.1
0
+ . stickler sync
0
+ . stickler info
0
+ . stickler generate index
0
     txt
0
 
0
     option( :quiet, "q" ) {
0
@@ -221,11 +222,12 @@ module Stickler
0
       desc
0
 
0
       example <<-txt
0
- . sticker sync
0
+ . sticker sync --rebuild
0
       txt
0
 
0
       mixin :option_directory
0
       option( :rebuild ) {
0
+ description "Rebuild the repository from scratch"
0
         default false
0
       }
0
 

Comments

    No one has commented yet.