project_releaser 0.0.1 → 0.0.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4f30d253fc85c95986faf137ae4dccd4de546fc4
4
- data.tar.gz: d8dc32e00467b6710790f42ba6962f0f8eb5afec
3
+ metadata.gz: de9d1d21e70f467e26540f91e0f255b10685c402
4
+ data.tar.gz: 3f5a133c270756c2679d01de2fe40a91fdf6b383
5
5
  SHA512:
6
- metadata.gz: adaee8550f6562864b3cc98617d4292bbb6c3d99c93418fdf5c4c0b1e36e31f4f9a325b2a49fcee24afd884202644837fb2da06f5572e7f7e9cebe288e12ed39
7
- data.tar.gz: edf3aa85e3b00c1ce5347b998e62b3c57460e762179f422418551b575a2009d949ff95e1227d6aee245073e5d21168476777a81202a01775528cced98f66e165
6
+ metadata.gz: a0f58ad856370e553a4c488744843e144eca8f85af1a6482f564242c7ca9b54b5e72accd47e700d5d284289d4c29117e20926de5be60c6b93fe96d1b96caceb1
7
+ data.tar.gz: 1f89f0b9273f884e65267fa37cfc3c93d57350211ddc37020aaf50820fa0a9a1b2e46d40ad0a65b37e4473122473290b892c7a4723e3fb2e8ba9def1de0776d0
data/.rubocop.yml ADDED
@@ -0,0 +1,16 @@
1
+ Documentation:
2
+ Enabled: false
3
+ Metrics/LineLength:
4
+ Max: 120
5
+ Metrics/MethodLength:
6
+ Max: 1000
7
+ Metrics/ClassLength:
8
+ Max: 99999
9
+ Style/SignalException:
10
+ AutoCorrect: false
11
+ Style/SpecialGlobalVars:
12
+ AutoCorrect: false
13
+ Lint/UnusedBlockArgument:
14
+ AutoCorrect: false
15
+ Lint/UnusedMethodArgument:
16
+ AutoCorrect: false
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-2.2.4
data/README.md CHANGED
@@ -1,10 +1,17 @@
1
1
  # Project Releaser
2
2
 
3
3
  CLI command to make releases of your semantic versioned project a breeze.
4
- It merges your development branch into release and tags with next `major`, `minor` or `patch` version.
4
+
5
+ Running `project release` in the root of your project:
6
+ * updates and `release` and `development` (if present) branches from all remotes
7
+ * merges `development` branch with `release` (again, if `development` is present)
8
+ * tags project with next `patch` version (which is the default one, `major` and `minor` are also available)
9
+ * pushes both branches and tags to all remotes
10
+
11
+ Please, refer to [Usage](#usage) section for more commands and examples.
5
12
 
6
13
  Currently branches are not configurable:
7
- * development is `staging`
14
+ * development is `develop`
8
15
  * release is `master`
9
16
 
10
17
  ## Installation
@@ -17,7 +24,7 @@ And then execute:
17
24
 
18
25
  $ bundle install
19
26
 
20
- ## Usage
27
+ ## <a name="usage"></a>Usage
21
28
  ```
22
29
  project [command]
23
30
 
@@ -28,8 +35,8 @@ Available commands:
28
35
 
29
36
  * `version` Current production version of the project
30
37
  * `name` Project name
31
- * `update` Updates master and staging branches from all reomtes
32
- * `release` Merges staging into master and pushes master with new version
38
+ * `update` Updates master and develop branches from all reomtes
39
+ * `release` Merges develop into master and pushes master with new version
33
40
 
34
41
 
35
42
  ### Release Command
@@ -45,4 +52,5 @@ project release 7.10.5
45
52
  ## TODO
46
53
 
47
54
  * Configurable branches
55
+ * Notifications on release (i.e. to Slack)
48
56
  * Improve logs
@@ -1,5 +1,6 @@
1
1
  require 'git'
2
2
  require 'ostruct'
3
+ require 'project_releaser/version'
3
4
  require 'project_releaser/logger/loggable'
4
5
  require 'project_releaser/logger/console'
5
6
  require 'project_releaser/logger/colored_console'
@@ -24,8 +24,8 @@ module ProjectReleaser
24
24
  end
25
25
 
26
26
  def merge_branches
27
- logger.info "merging 'staging' into 'master'"
28
- @git.merge :master, :staging
27
+ logger.info "merging 'develop' into 'master'"
28
+ @git.merge :master, :develop
29
29
  end
30
30
 
31
31
  def push_release(version)
@@ -36,7 +36,7 @@ module ProjectReleaser
36
36
  def branches
37
37
  @branches ||=begin
38
38
  branches = [:master]
39
- branches += [:staging] if @git.has_branch? :staging
39
+ branches += [:develop] if @git.has_branch? :develop
40
40
  branches
41
41
  end
42
42
  end
@@ -10,7 +10,7 @@ module ProjectReleaser
10
10
  def update
11
11
  logger.info 'updating local release and develop branches'
12
12
  @git.returning_to_current_branch do |git|
13
- git.pull [:master, :staging]
13
+ git.pull [:master, :develop]
14
14
  end
15
15
  end
16
16
  end
@@ -1,3 +1,3 @@
1
1
  module ProjectReleaser
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -10,16 +10,16 @@ describe ProjectReleaser::Project::Releaser do
10
10
  end
11
11
 
12
12
  it 'releases project with provided version name' do
13
- allow(yielded_repository).to receive(:has_branch?).with(:staging).and_return(true)
14
- expect(yielded_repository).to receive(:pull).with([:master, :staging]).ordered
15
- expect(yielded_repository).to receive(:merge).with(:master, :staging).ordered
13
+ allow(yielded_repository).to receive(:has_branch?).with(:develop).and_return(true)
14
+ expect(yielded_repository).to receive(:pull).with([:master, :develop]).ordered
15
+ expect(yielded_repository).to receive(:merge).with(:master, :develop).ordered
16
16
  expect(yielded_repository).to receive(:push).with(:master, 'v2.3.5').ordered
17
17
 
18
18
  subject.release 'v2.3.5'
19
19
  end
20
20
 
21
21
  it 'doesnt pull and skips merging when there is no staging branch' do
22
- allow(yielded_repository).to receive(:has_branch?).with(:staging).and_return(false)
22
+ allow(yielded_repository).to receive(:has_branch?).with(:develop).and_return(false)
23
23
  expect(yielded_repository).to receive(:pull).with([:master]).ordered
24
24
  expect(yielded_repository).not_to receive(:merge)
25
25
  expect(yielded_repository).to receive(:push).with(:master, 'v1.2.4').ordered
@@ -5,9 +5,9 @@ describe ProjectReleaser::Project::Updater do
5
5
  let(:yielded_repository) { double 'repository' }
6
6
  let(:subject) { ProjectReleaser::Project::Updater.new repository }
7
7
 
8
- it 'updates master and staging branches from all remotes' do
8
+ it 'updates master and develop branches from all remotes' do
9
9
  allow(repository).to receive(:returning_to_current_branch).and_yield(yielded_repository)
10
- expect(yielded_repository).to receive(:pull).with([:master, :staging])
10
+ expect(yielded_repository).to receive(:pull).with([:master, :develop])
11
11
 
12
12
  subject.update
13
13
  end
@@ -2,7 +2,7 @@
2
2
  sudo: yes
3
3
  vars:
4
4
  ruby_gemset: 'releaser'
5
- rvm1_rubies: [ 'ruby-2.1.5' ]
5
+ rvm1_rubies: [ 'ruby-2.2.4' ]
6
6
  rvm1_gpg_key_server: 'pgp.uni-mainz.de'
7
7
  rvm1_rvm_check_for_updates: False
8
8
  app_home_path: /vagrant
@@ -1,7 +1,2 @@
1
1
  rvm_io.rvm1-ruby
2
- ANXS.mysql
3
- JasonGiedymin.nodejs
4
2
  kagux.dev_environment
5
- kagux.docker
6
- kagux.docker_compose
7
- DavidWittman.redis
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: project_releaser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - kagux
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-07 00:00:00.000000000 Z
11
+ date: 2016-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -118,6 +118,8 @@ extra_rdoc_files: []
118
118
  files:
119
119
  - ".gitignore"
120
120
  - ".rspec"
121
+ - ".rubocop.yml"
122
+ - ".ruby-version"
121
123
  - Gemfile
122
124
  - Gemfile.lock
123
125
  - LICENSE.txt
@@ -145,7 +147,6 @@ files:
145
147
  - spec/project_releaser_spec.rb
146
148
  - spec/spec_helper.rb
147
149
  - todo
148
- - vagrant/.ruby-version
149
150
  - vagrant/ansible/app.yml
150
151
  - vagrant/ansible/inventory
151
152
  - vagrant/ansible/requirements.galaxy
@@ -170,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
171
  version: '0'
171
172
  requirements: []
172
173
  rubyforge_project:
173
- rubygems_version: 2.4.7
174
+ rubygems_version: 2.4.8
174
175
  signing_key:
175
176
  specification_version: 4
176
177
  summary: Make project release painless
File without changes