dep 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. data/README.1 +115 -0
  2. data/bin/dep +2 -2
  3. metadata +5 -5
  4. data/README +0 -89
data/README.1 ADDED
@@ -0,0 +1,115 @@
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "DEP" "1" "April 2012" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBDEP\fR \- basic dependency tracking
8
+ .
9
+ .SH "SYNOPSIS"
10
+ .
11
+ .nf
12
+
13
+ dep check
14
+ dep add libname [\-\-pre]
15
+ dep rm libname
16
+ dep install
17
+ .
18
+ .fi
19
+ .
20
+ .SH "DESCRIPTION"
21
+ .
22
+ .TP
23
+ check
24
+ Checks that all dependencies are met\.
25
+ .
26
+ .TP
27
+ add
28
+ Fetches the latest version of the library in question and automatically adds it to your \.gems file\.
29
+ .
30
+ .TP
31
+ rm
32
+ Simply removes the corresponding entry in your \.gems file\.
33
+ .
34
+ .TP
35
+ install
36
+ Installs all the missing dependencies for you\. An important point here is that it simply does a \fBgem install\fR for each dependency you have\. Dep assumes that you use some form of sandboxing like gs, RVM or rbenv\-gemset\.
37
+ .
38
+ .SH "INSTALLATION"
39
+ .
40
+ .nf
41
+
42
+ $ gem install dep
43
+ .
44
+ .fi
45
+ .
46
+ .SH "HISTORY"
47
+ dep is actually more of a workflow than a tool\. If you think about package managers and the problem of dependencies, you can summarize what you absolutely need from them in just two points:
48
+ .
49
+ .IP "1." 4
50
+ When you build an application which relies on 3rd party libraries, it\'s best to explicitly declare the version numbers of these libraries\.
51
+ .
52
+ .IP "2." 4
53
+ You can either bundle the specific library version together with your application, or you can have a list of versions\.
54
+ .
55
+ .IP "" 0
56
+ .
57
+ .P
58
+ The first approach is handled by vendoring the library\. The second approach typically is done using Bundler\. But why do you need such a complicated tool when all you need is simply listing version numbers?
59
+ .
60
+ .P
61
+ We dissected what we were doing and eventually reached the following workflow:
62
+ .
63
+ .IP "1." 4
64
+ We maintain a \.gems file for every application which lists the libraries and the version numbers\.
65
+ .
66
+ .IP "2." 4
67
+ We omit dependencies of dependencies in that file, the reason being is that that should already be handled by the package manager (typically rubygems)\.
68
+ .
69
+ .IP "3." 4
70
+ Whenever we add a new library, we add the latest version\.
71
+ .
72
+ .IP "4." 4
73
+ When we pull the latest changes, we want to be able to rapidly check if the dependencies we have is up to date and matches what we just pulled\.
74
+ .
75
+ .IP "" 0
76
+ .
77
+ .P
78
+ So after doing this workflow manually for a while, we decided to build the simplest tool to aid us with our workflow\.
79
+ .
80
+ .IP "\(bu" 4
81
+ The first point is handled implicitly by dep\. You can also specify a different file by doing dep \-f\.
82
+ .
83
+ .IP "\(bu" 4
84
+ The second point is more of an implementation detail\. We thought about doing dependencies, but then, why re\-implement something that\'s already done for you by rubygems?
85
+ .
86
+ .IP "\(bu" 4
87
+ The third point (and also the one which is most inconvenient), is handled by dep add\.
88
+ .
89
+ .IP "" 0
90
+ .
91
+ .P
92
+ The manual workflow for \fBdep add\fR would be:
93
+ .
94
+ .IP "" 4
95
+ .
96
+ .nf
97
+
98
+ gem search \-r "^ohm$" [\-\-pre] # check and remember the version number
99
+ echo "ohm \-v X\.x\.x" >> \.gems
100
+ .
101
+ .fi
102
+ .
103
+ .IP "" 0
104
+ .
105
+ .P
106
+ If you try doing that repeatedly, it will quickly become cumbersome\.
107
+ .
108
+ .P
109
+ The fourth and final point is handled by typing dep check or simply dep\. Practically speaking it\'s just:
110
+ .
111
+ .P
112
+ \fBgit pull dep\fR
113
+ .
114
+ .P
115
+ And that\'s it\. The dep command typically happens in 0\.2 seconds which is something we LOVE\.
data/bin/dep CHANGED
@@ -5,7 +5,7 @@ require_relative "../lib/dep"
5
5
  require "fileutils"
6
6
  require "clap"
7
7
 
8
- help = File.expand_path("../README", File.dirname(__FILE__))
8
+ help = File.expand_path("../README.1", File.dirname(__FILE__))
9
9
  file = nil
10
10
 
11
11
  commands = Clap.run ARGV,
@@ -72,7 +72,7 @@ end
72
72
 
73
73
  commands = Clap.run commands,
74
74
  "--pre" => lambda { @prerelease = true },
75
- "--help" => lambda { exec "${PAGER:-less} #{help}" }
75
+ "--help" => lambda { exec "man #{help}" }
76
76
 
77
77
  Clap.run commands,
78
78
  "add" => method(:add),
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dep
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-03-28 00:00:00.000000000 Z
13
+ date: 2012-04-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: clap
17
- requirement: &70327220901300 !ruby/object:Gem::Requirement
17
+ requirement: &70133804725260 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: 0.0.2
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70327220901300
25
+ version_requirements: *70133804725260
26
26
  description: Specify your project's dependencies in one file.
27
27
  email:
28
28
  - cyx.ucron@gmail.com
@@ -32,7 +32,7 @@ executables:
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
- - README
35
+ - README.1
36
36
  - bin/dep
37
37
  - lib/dep.rb
38
38
  - test/dep.rb
data/README DELETED
@@ -1,89 +0,0 @@
1
- DEP(1)
2
-
3
- NAME
4
- dep -- Basic dependency tracking
5
-
6
- SYNOPSIS
7
- dep check
8
- dep add libname [--pre]
9
- dep rm libname
10
- dep install
11
-
12
- DESCRIPTION
13
- check
14
- Checks that all dependencies are met.
15
-
16
- add
17
- Fetches the latest version of the library in question
18
- and automatically adds it to your .gems file.
19
-
20
- rm
21
- Simply removes the corresponding entry in your .gems file.
22
-
23
- install
24
- Installs all the missing dependencies for you. An important
25
- point here is that it simply does a `gem install` for each
26
- dependency you have. Dep assumes that you use some form of
27
- sandboxing like RVM or rbenv-gemset.
28
-
29
-
30
- INSTALLATION
31
- $ gem install dep
32
-
33
- HISTORY
34
- dep is actually more of a workflow than a tool. If you think about
35
- package managers and the problem of dependencies, you can summarize
36
- what you absolutely need from them in just two points:
37
-
38
- 1. When you build an application which relies on 3rd party libraries,
39
- it's best to explicitly declare the version numbers of these
40
- libraries.
41
-
42
- 2. You can either bundle the specific library version together with
43
- your application, or you can have a list of versions.
44
-
45
- The first approach is handled by vendoring the library. The second
46
- approach typically is done using Bundler. But why do you need such
47
- a complicated tool when all you need is simply listing version numbers?
48
-
49
- We dissected what we were doing and eventually reached the following
50
- workflow:
51
-
52
- 1. We maintain a .gems file for every application which lists the
53
- libraries and the version numbers.
54
- 2. We omit dependencies of dependencies in that file, the reason being
55
- is that that should already be handled by the package manager
56
- (typically rubygems).
57
- 3. Whenever we add a new library, we add the latest version.
58
- 4. When we pull the latest changes, we want to be able to rapidly
59
- check if the dependencies we have is up to date and matches what
60
- we just pulled.
61
-
62
- So after doing this workflow manually for a while, we decided to
63
- build the simplest tool to aid us with our workflow.
64
-
65
- The first point is handled implicitly by dep. You can also specify
66
- a different file by doing dep -f.
67
-
68
- The second point is more of an implementation detail. We thought about
69
- doing dependencies, but then, why re-implement something that's already
70
- done for you by rubygems?
71
-
72
- The third point (and also the one which is most inconvenient), is
73
- handled by dep add.
74
-
75
- The manual workflow for that would be:
76
-
77
- gem search -r "^ohm$" [--pre] # check and remember the version number
78
- echo "ohm -v X.x.x" >> .gems
79
-
80
- If you try doing that repeatedly, it will quickly become cumbersome.
81
-
82
- The fourth and final point is handled by typing dep check or simply dep.
83
- Practically speaking it's just:
84
-
85
- git pull
86
- dep
87
-
88
- And that's it. The dep command typcially happens in 0.2 seconds which
89
- is something we LOVE.