crackin 0.1.0 → 0.1.1.alpha0
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.
- data/.crackin.yml +2 -1
- data/CHANGELOG.md +8 -0
- data/README.md +113 -2
- data/lib/crackin/ext/core/hash.rb +4 -0
- data/lib/crackin/release.rb +7 -0
- data/lib/crackin/scm/git.rb +7 -1
- data/lib/crackin/version.rb +2 -2
- metadata +22 -7
- checksums.yaml +0 -15
data/.crackin.yml
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
---
|
2
2
|
crackin:
|
3
3
|
name: crackin
|
4
|
+
debug: true
|
4
5
|
scm: git
|
5
6
|
changelog: CHANGELOG.md
|
6
7
|
branch:
|
7
8
|
production: master
|
8
9
|
development: develop
|
9
10
|
status:
|
10
|
-
verbose:
|
11
|
+
verbose: false
|
11
12
|
version: lib/crackin/version.rb
|
12
13
|
build:
|
13
14
|
command: rake build
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
### Changelog
|
2
2
|
|
3
|
+
##### v0.1.1.alpha0:
|
4
|
+
* disable verbose status
|
5
|
+
* better debug handling for git
|
6
|
+
* add debug option. setup logging for Git if debug true
|
7
|
+
* add pull method
|
8
|
+
* do source.pull to make sure things are up to date
|
9
|
+
* add some basic documentation
|
10
|
+
|
3
11
|
##### v0.1.0:
|
4
12
|
* add 'add' method to scm api
|
5
13
|
* add some more inforation to initialization. fix bug with name of method in scm: git. make sure *all* files are added before commit during a crackin release finish.
|
data/README.md
CHANGED
@@ -1,6 +1,23 @@
|
|
1
1
|
# Crackin
|
2
2
|
|
3
|
-
|
3
|
+
Simple, generalized way to handle gem releases.
|
4
|
+
|
5
|
+
Much of this code has been developing over time
|
6
|
+
in a bunch of my projects. I decided to pull it
|
7
|
+
all together into one place.
|
8
|
+
|
9
|
+
## Philosophy
|
10
|
+
|
11
|
+
* Use semantic versioning, as much as possible. http://semver.org
|
12
|
+
* doesn't currently support build numbers or architectures.
|
13
|
+
* Support MAJOR _1_.0.0 releases
|
14
|
+
* Support MINOR 0._1_.0 releases
|
15
|
+
* Support TINY 0.0._1_ releases
|
16
|
+
* Support TAG (pre) releases
|
17
|
+
* release candidate: 0.1.0._rc1_
|
18
|
+
* beta: 0.1.0._beta1_
|
19
|
+
* alpha: 0.1.0._alpha1_
|
20
|
+
* Manage the release process similar to git flow.
|
4
21
|
|
5
22
|
## Installation
|
6
23
|
|
@@ -18,7 +35,101 @@ Or install it yourself as:
|
|
18
35
|
|
19
36
|
## Usage
|
20
37
|
|
21
|
-
|
38
|
+
Once `Crackin` has been added to your bundle or installed, you can do the following:
|
39
|
+
|
40
|
+
`crackin init`
|
41
|
+
|
42
|
+
This will create a `.crackin.yml` file and a `CHANGELOG.md` file (if it doesn't already exist).
|
43
|
+
The command's output will prompt with you further inforamtion.
|
44
|
+
|
45
|
+
## Status
|
46
|
+
|
47
|
+
Use the `crackin status` command to get more information. The general idea is:
|
48
|
+
|
49
|
+
1. work on code in your development branch (default: 'develop')
|
50
|
+
or work on code in feature branches and merge to development branch
|
51
|
+
2. once everything is merged to development and pushed, you can start a release.
|
52
|
+
|
53
|
+
3. `crackin release <type>`
|
54
|
+
* create a temporary release branch from master
|
55
|
+
* merge from develop
|
56
|
+
* update version file
|
57
|
+
* update changelog file
|
58
|
+
* allow you to make any final updates (this is normally for customizing the changelog)
|
59
|
+
4. Once you're finished with changes (you don't need to commit them).
|
60
|
+
5. `crackin release finish`
|
61
|
+
* add and commit changes to release branch
|
62
|
+
* merge release branch to master
|
63
|
+
* create a tag
|
64
|
+
* run a gem build (currently uses bundler gem task)
|
65
|
+
* push master
|
66
|
+
* push tags
|
67
|
+
* push gem
|
68
|
+
* merge master to develop
|
69
|
+
* delete release branch (this should be configurable)
|
70
|
+
* push develop (not working currently)
|
71
|
+
|
72
|
+
## Files
|
73
|
+
|
74
|
+
### Configuration file
|
75
|
+
|
76
|
+
An example of the configuration file. _Subject to change_
|
77
|
+
|
78
|
+
```
|
79
|
+
---
|
80
|
+
crackin:
|
81
|
+
name: crackin
|
82
|
+
version: lib/crackin/version.rb
|
83
|
+
scm: git
|
84
|
+
changelog: CHANGELOG.md
|
85
|
+
branch:
|
86
|
+
production: master
|
87
|
+
development: develop
|
88
|
+
status:
|
89
|
+
verbose: true
|
90
|
+
build:
|
91
|
+
command: rake build
|
92
|
+
after: []
|
93
|
+
```
|
94
|
+
|
95
|
+
Pay special attention to `name` and `version`, these values must be set after initialization.
|
96
|
+
|
97
|
+
### Version file
|
98
|
+
|
99
|
+
The format that `Crackin` expects for the version.rb file of your gem.
|
100
|
+
|
101
|
+
```
|
102
|
+
module Crackin
|
103
|
+
module Version
|
104
|
+
MAJOR = 0
|
105
|
+
MINOR = 1
|
106
|
+
TINY = 0
|
107
|
+
TAG = nil
|
108
|
+
LIST = [MAJOR, MINOR, TINY, TAG]
|
109
|
+
STRING = LIST.compact.join(".")
|
110
|
+
end
|
111
|
+
end
|
112
|
+
```
|
113
|
+
|
114
|
+
It uses this format to manipulate the values during releases.
|
115
|
+
|
116
|
+
### Changelog file
|
117
|
+
|
118
|
+
The format of the changelog file.
|
119
|
+
|
120
|
+
```
|
121
|
+
### Changelog
|
122
|
+
|
123
|
+
##### v0.1.0:
|
124
|
+
* add 'add' method to scm api
|
125
|
+
* add some more inforation to initialization. fix bug with name of method in scm: git. make sure *all* files are added before commit during a crackin release finish.
|
126
|
+
|
127
|
+
##### v0.0.1.rc0:
|
128
|
+
* initial
|
129
|
+
```
|
130
|
+
|
131
|
+
Currently, `Crackin` just includes all commit *subjects* for each tag. It does this by walking the tags
|
132
|
+
and getting the commits between them.
|
22
133
|
|
23
134
|
## Contributing
|
24
135
|
|
@@ -10,4 +10,8 @@ class Hash
|
|
10
10
|
def deep_stringify_keys
|
11
11
|
deep_transform_keys{ |key| key.to_s }
|
12
12
|
end unless Hash.respond_to?(:deep_stringify_keys)
|
13
|
+
|
14
|
+
def deep_symbolize_keys
|
15
|
+
deep_transform_keys{ |key| key.to_sym }
|
16
|
+
end unless Hash.respond_to?(:deep_symbolize_keys)
|
13
17
|
end
|
data/lib/crackin/release.rb
CHANGED
@@ -65,6 +65,13 @@ module Crackin
|
|
65
65
|
|
66
66
|
def start_actions
|
67
67
|
actions = []
|
68
|
+
# update current branch
|
69
|
+
actions << {
|
70
|
+
name: "update branch",
|
71
|
+
do: -> { @source.pull },
|
72
|
+
undo: -> { @source.change_branch(@config['branch']['development']) },
|
73
|
+
if: @current == @config['branch']['development']
|
74
|
+
}
|
68
75
|
# change branch
|
69
76
|
actions << {
|
70
77
|
name: "change to production branch",
|
data/lib/crackin/scm/git.rb
CHANGED
@@ -8,7 +8,9 @@ module Crackin
|
|
8
8
|
def initialize(config={})
|
9
9
|
super
|
10
10
|
#@git = ::Git.open(@options[:working], log: Logger.new(STDOUT))
|
11
|
-
|
11
|
+
o = {}
|
12
|
+
o['log'] = Logger.new(STDOUT) if config['debug']
|
13
|
+
@git = ::Git.open(@options[:working], o.deep_symbolize_keys)
|
12
14
|
end
|
13
15
|
|
14
16
|
def add(options={})
|
@@ -67,6 +69,10 @@ module Crackin
|
|
67
69
|
@git.branch(Shellwords.escape(name)).delete
|
68
70
|
end
|
69
71
|
|
72
|
+
def pull
|
73
|
+
@git.pull
|
74
|
+
end
|
75
|
+
|
70
76
|
def push
|
71
77
|
@git.push
|
72
78
|
end
|
data/lib/crackin/version.rb
CHANGED
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crackin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1.alpha0
|
5
|
+
prerelease: 6
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Shawn Catanzarite
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2014-02-05 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: git
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -27,6 +30,7 @@ dependencies:
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: clamp
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -41,6 +46,7 @@ dependencies:
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: activesupport
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
51
|
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
@@ -48,6 +54,7 @@ dependencies:
|
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
59
|
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
@@ -55,6 +62,7 @@ dependencies:
|
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: bundler
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ~>
|
60
68
|
- !ruby/object:Gem::Version
|
@@ -62,6 +70,7 @@ dependencies:
|
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
75
|
- - ~>
|
67
76
|
- !ruby/object:Gem::Version
|
@@ -69,6 +78,7 @@ dependencies:
|
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
79
|
name: rake
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
83
|
- - ! '>='
|
74
84
|
- !ruby/object:Gem::Version
|
@@ -76,6 +86,7 @@ dependencies:
|
|
76
86
|
type: :development
|
77
87
|
prerelease: false
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
79
90
|
requirements:
|
80
91
|
- - ! '>='
|
81
92
|
- !ruby/object:Gem::Version
|
@@ -113,25 +124,29 @@ files:
|
|
113
124
|
homepage: http://github.com/shawncatz/crackin
|
114
125
|
licenses:
|
115
126
|
- MIT
|
116
|
-
metadata: {}
|
117
127
|
post_install_message:
|
118
128
|
rdoc_options: []
|
119
129
|
require_paths:
|
120
130
|
- lib
|
121
131
|
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
122
133
|
requirements:
|
123
134
|
- - ! '>='
|
124
135
|
- !ruby/object:Gem::Version
|
125
136
|
version: '0'
|
137
|
+
segments:
|
138
|
+
- 0
|
139
|
+
hash: 3441222254428678362
|
126
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
127
142
|
requirements:
|
128
|
-
- - ! '
|
143
|
+
- - ! '>'
|
129
144
|
- !ruby/object:Gem::Version
|
130
|
-
version:
|
145
|
+
version: 1.3.1
|
131
146
|
requirements: []
|
132
147
|
rubyforge_project:
|
133
|
-
rubygems_version:
|
148
|
+
rubygems_version: 1.8.25
|
134
149
|
signing_key:
|
135
|
-
specification_version:
|
150
|
+
specification_version: 3
|
136
151
|
summary: release the crackin - gem release management
|
137
152
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
YzQ0ZGVlMjc1NjM2YzI0ZDdkMWNjNGMwNTdjMDg3ZjRjYjI0Y2Q1Yg==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YjZmYWNjNDExNGNlODYzODhkZTFmNTE2M2JiMjFlYzYyNDc1YzBhOA==
|
7
|
-
SHA512:
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
ZmM1MjBmMmEyMTdjNjNiZDE1YzE3NjA2ZTU2YzE2M2M5YzQ1OWU4NWYxZjkz
|
10
|
-
Y2FlMmI3N2YwNjNmZWViYmZlNGRiMjEzNjYzOTEyMmY2ZTI1ZTU0MWNmOWYy
|
11
|
-
ZjgwNTYyOTlhNGE3MWY5YTExMjE5ZDAyZjA0ZDhlMmJiMTBhNjA=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
OWI0ZTg1NDFjNWFmY2E5YmNhNjcxOTlmOWY1MjZhYjU4ZjQzNjZiZTFmZDcy
|
14
|
-
M2QzM2RiNjhkYmZmY2E1YWVhOGJhMjNmNTM0OTM1ZmYyMTBiNDRmM2QzOTll
|
15
|
-
MWQ3ZGM1NjExYmU3YzJiYWFmYjhmNGY5MmE3MDNhODJlMmQ0ZjQ=
|