captive-release 0.9.0 → 0.10.0

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
  SHA256:
3
- metadata.gz: 766da20e3b1cd49bbc782ea4a7dbf483bc852b025daf791c70a69b6bedc02088
4
- data.tar.gz: 4b01cdae087a0c6b8990843d076b76325e158578df44278e40f28b6b7364b660
3
+ metadata.gz: 9814ab9187493f6122ec99042578ab98456b44581b22b6c2925a5d1985cdc46f
4
+ data.tar.gz: dedfed153b9ca6fa4a4b43eb1a844d3733053828eb24b0b2582ae62d1451a2ad
5
5
  SHA512:
6
- metadata.gz: 0f6d0e2c5c1e1fe133c7260b0ad9dba99c99d6224efe152250f9472fb95f19a3ad367d45222f0f27afec06a0d2e89101f4ae851b395e4adc89763fb4741b8ff9
7
- data.tar.gz: cafef79eae71b7c328cefe468d83981723967bdc2a49f0bb2cf4294c59f217aad8204c9e42f60d109eebe296d4793fb99f0b6fed0a68810ee3fd8eaa040ee343
6
+ metadata.gz: cea079ba56805defa3e5380cc9d145edceaa8acf799c16d859ed01da7910490b00696e2a4fee3e0b73037ca2a8db3198c93026e2f65eca2307670e65c6c73326
7
+ data.tar.gz: 1c74d0e65fa4634858556cb06caa312b6dd654d366bf3bd85ad1cb0fa1c181da5c295c8e7907aef47fb80bec606ae9f6dc52400b422608e4eba520f58c5c30e5
@@ -5,7 +5,7 @@ en:
5
5
 
6
6
  Usage:
7
7
  captive-release init [--files path[:type],...]
8
- captive-release new [patch|minor|major|promote|x.y.z] [--yes]
8
+ captive-release new [patch|minor|major|promote|pre|x.y.z] [--yes]
9
9
  captive-release build [--profile staging|production]
10
10
  captive-release version
11
11
 
@@ -85,11 +85,13 @@ en:
85
85
  bump_patch: Patch
86
86
  bump_minor: Minor
87
87
  bump_major: Major
88
+ bump_pre: Iterate
89
+ nothing_to_iterate: 'No pre-release to iterate: enter x.y.z-alpha.1'
88
90
  bump_promote: Promote
89
91
  bump_from_prerelease: 'Cannot %{type} from a pre-release: promote it or enter a version.'
90
92
  prerelease_on_app: 'Cannot release pre-release %{version}: %{path} carries an app version, which allows no suffix.'
91
93
  enter_version: 'Enter version (x.y.z or x.y.z-alpha.1): '
92
- invalid_bump_type: 'Invalid bump type: %{type}. Use patch|minor|major|x.y.z'
94
+ invalid_bump_type: 'Invalid bump type: %{type}. Use patch|minor|major|promote|pre|x.y.z'
93
95
  invalid_semver: 'Invalid semver: %{value}'
94
96
  invalid_version: 'Invalid version: %{value}'
95
97
  bump_warning: "⚠️ Commits suggest a %{suggestion} bump, but the chosen version is only a %{chosen}."
@@ -5,7 +5,7 @@ fr:
5
5
 
6
6
  Utilisation :
7
7
  captive-release init [--files path[:type],...]
8
- captive-release new [patch|minor|major|promote|x.y.z] [--yes]
8
+ captive-release new [patch|minor|major|promote|pre|x.y.z] [--yes]
9
9
  captive-release build [--profile staging|production]
10
10
  captive-release version
11
11
 
@@ -85,11 +85,13 @@ fr:
85
85
  bump_patch: Patch
86
86
  bump_minor: Minor
87
87
  bump_major: Major
88
+ bump_pre: Itérer
89
+ nothing_to_iterate: 'Pas de pré-release à itérer : saisissez x.y.z-alpha.1'
88
90
  bump_promote: Promouvoir
89
91
  bump_from_prerelease: 'Impossible de faire un %{type} depuis une pré-release : promouvez-la ou saisissez une version.'
90
92
  prerelease_on_app: "Pré-release %{version} impossible : %{path} porte une version d'app, qui n'admet pas de suffixe."
91
93
  enter_version: 'Saisissez la version (x.y.z ou x.y.z-alpha.1) : '
92
- invalid_bump_type: 'Type de bump invalide : %{type}. Utilisez patch|minor|major|x.y.z'
94
+ invalid_bump_type: 'Type de bump invalide : %{type}. Utilisez patch|minor|major|promote|pre|x.y.z'
93
95
  invalid_semver: 'Semver invalide : %{value}'
94
96
  invalid_version: 'Version invalide : %{value}'
95
97
  bump_warning: "⚠️ Les commits suggèrent un bump %{suggestion}, mais la version choisie n'est qu'un %{chosen}."
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CaptiveRelease
4
- VERSION = "0.9.0"
4
+ VERSION = "0.10.0"
5
5
  end
@@ -4,6 +4,7 @@ module CaptiveRelease
4
4
  class VersionBumper
5
5
  BUMP_TYPES = %w[patch minor major].freeze
6
6
  PROMOTE = "promote"
7
+ ITERATE = "pre"
7
8
 
8
9
  def self.bump(current, type)
9
10
  new(current).bump(type)
@@ -25,6 +26,7 @@ module CaptiveRelease
25
26
  when "minor" then "#{@major}.#{@minor + 1}.0"
26
27
  when "patch" then "#{@major}.#{@minor}.#{@patch + 1}"
27
28
  when PROMOTE then promouvoir
29
+ when ITERATE then iterer
28
30
  else saisie(type)
29
31
  end
30
32
  end
@@ -45,6 +47,16 @@ module CaptiveRelease
45
47
  Semver.core(@current)
46
48
  end
47
49
 
50
+ # Même canal, dernier identifiant + 1 ; sans numéro final, on en ouvre un (.1).
51
+ def iterer
52
+ raise ArgumentError, Messages.t(:nothing_to_iterate) unless Semver.prerelease?(@current)
53
+
54
+ dernier = @current[/\d+\z/]
55
+ return "#{@current}.1" unless dernier && @current.match?(/[.-]\d+\z/)
56
+
57
+ @current.delete_suffix(dernier) + (dernier.to_i + 1).to_s
58
+ end
59
+
48
60
  def saisie(type)
49
61
  raise ArgumentError, Messages.t(:invalid_version, value: type) unless Semver.valid?(type)
50
62
 
@@ -7,7 +7,7 @@ module CaptiveRelease
7
7
  # Cette unité change quand les façons de nommer une version changent, ReleaseCommand quand
8
8
  # le geste de release change.
9
9
  class VersionChoice
10
- BUMP_TYPES = (VersionBumper::BUMP_TYPES + [ VersionBumper::PROMOTE ]).freeze
10
+ BUMP_TYPES = (VersionBumper::BUMP_TYPES + [ VersionBumper::PROMOTE, VersionBumper::ITERATE ]).freeze
11
11
  CUSTOM = "Custom"
12
12
 
13
13
  def initialize(terminal:)
@@ -32,10 +32,10 @@ module CaptiveRelease
32
32
  end
33
33
 
34
34
  # La valeur rendue est la version elle-même, sauf pour Custom qui n'en a pas encore une.
35
- # Depuis une pré-release, seule la promotion est proposée : patch, minor et major y
35
+ # Depuis une pré-release, seules l'itération et la promotion sont proposées : patch, minor et major y
36
36
  # prêteraient à confusion.
37
37
  def candidates_for(current)
38
- types = Semver.prerelease?(current) ? [ VersionBumper::PROMOTE ] : VersionBumper::BUMP_TYPES
38
+ types = Semver.prerelease?(current) ? [ VersionBumper::ITERATE, VersionBumper::PROMOTE ] : VersionBumper::BUMP_TYPES
39
39
  candidats = types.to_h do |type|
40
40
  version = VersionBumper.bump(current, type)
41
41
  [ "#{Messages.t(:"bump_#{type}")} → #{@terminal.bold(version)}", version ]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: captive-release
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Captive Studio