gitlab-releases 0.2.6 → 0.2.7
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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +5 -1
- data/lib/gitlab_releases/patch_date_calculator.rb +42 -0
- data/lib/gitlab_releases/release_versions.rb +7 -0
- data/lib/gitlab_releases/version.rb +1 -1
- data/lib/gitlab_releases.rb +5 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba2a507b7f62c3bca97c047552db82c0fce54aaa86dec916d3a1287ef6876a53
|
4
|
+
data.tar.gz: aa4ef249135d59e250253959baabd9de000784c730a1392db5672230dc479457
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef1b10c9b7cefbac34aeb42dab2ec5926ae7a8852739a94b41b994e076c703ca7ab6950f03a72df58337cdd95e8fdf3cb67182f4bbc085a2adfc6a1002ae3ce0
|
7
|
+
data.tar.gz: 560e30af0ca8b466dfddd70300e29d6c6fda4a4ba2752b9eabf4a15d06339bffa0418c8fb2a67456fcecc136e728ef71905caa1728f6f0f1bf4467a6dfd96d61
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -12,7 +12,7 @@ Library to interact with GitLab releases and versions. The information is fetche
|
|
12
12
|
Gemfile:
|
13
13
|
|
14
14
|
```
|
15
|
-
gem 'gitlab-releases', '~> 0.2.
|
15
|
+
gem 'gitlab-releases', '~> 0.2.7'
|
16
16
|
```
|
17
17
|
|
18
18
|
Install:
|
@@ -39,6 +39,7 @@ There are different methods available:
|
|
39
39
|
* `version_for_date` - Returns the active GitLab version for the given date
|
40
40
|
* `current_minor_for_date` - Returns the current GitLab minor for the given date
|
41
41
|
* `previous_minors` - Returns the previous minors for the given version
|
42
|
+
* `next_patch_release_date` - Calculates the next best effort date for a GitLab patch release.
|
42
43
|
|
43
44
|
To make use of it:
|
44
45
|
|
@@ -80,6 +81,9 @@ To make use of it:
|
|
80
81
|
=> "16.6"
|
81
82
|
> GitlabReleases.previous_minors('16.6')
|
82
83
|
=> ["16.6", "16.5", "16.4"]
|
84
|
+
> GitlabReleases.next_patch_release_date
|
85
|
+
=> "2024-03-13"
|
86
|
+
|
83
87
|
```
|
84
88
|
|
85
89
|
## Contributing
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_support/all'
|
4
|
+
|
5
|
+
# Calculates the next patch release date. Patch releases are scheduled
|
6
|
+
# twice a month based on the monthly release:
|
7
|
+
#
|
8
|
+
# - On the second Wednesday of the month (the week before the monthly release)
|
9
|
+
# - On the fourth Wednesday of the month (the week after the monthly release)
|
10
|
+
class PatchDateCalculator
|
11
|
+
def initialize
|
12
|
+
@next_release_date = ReleaseVersions.upcoming_release_date
|
13
|
+
end
|
14
|
+
|
15
|
+
def execute
|
16
|
+
next_patch_date.strftime('%Y-%m-%d')
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
attr_reader :next_release_date
|
22
|
+
|
23
|
+
def next_patch_date
|
24
|
+
if current_date >= prev_wednesday
|
25
|
+
next_wednesday
|
26
|
+
else
|
27
|
+
prev_wednesday
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def current_date
|
32
|
+
Date.today
|
33
|
+
end
|
34
|
+
|
35
|
+
def prev_wednesday
|
36
|
+
next_release_date.prev_week(:wednesday)
|
37
|
+
end
|
38
|
+
|
39
|
+
def next_wednesday
|
40
|
+
next_release_date.next_week(:wednesday)
|
41
|
+
end
|
42
|
+
end
|
@@ -78,6 +78,13 @@ class ReleaseVersions
|
|
78
78
|
Date.parse(date)
|
79
79
|
end
|
80
80
|
|
81
|
+
# Returns the release date of the upcoming (active) version
|
82
|
+
def self.upcoming_release_date
|
83
|
+
releases_yaml
|
84
|
+
.find { |release| release['version'] == active_version }
|
85
|
+
.fetch('date')
|
86
|
+
end
|
87
|
+
|
81
88
|
# Returns the active minor GitLab Version
|
82
89
|
def self.active_version
|
83
90
|
version_for_date(DateTime.now)
|
data/lib/gitlab_releases.rb
CHANGED
@@ -4,6 +4,7 @@ require_relative 'gitlab_releases/version'
|
|
4
4
|
require_relative 'gitlab_releases/release_version'
|
5
5
|
require_relative 'gitlab_releases/release_versions'
|
6
6
|
require_relative 'gitlab_releases/release_calculator'
|
7
|
+
require_relative 'gitlab_releases/patch_date_calculator'
|
7
8
|
|
8
9
|
module GitlabReleases
|
9
10
|
def self.upcoming_releases
|
@@ -45,6 +46,10 @@ module GitlabReleases
|
|
45
46
|
ReleaseVersions.available_versions
|
46
47
|
end
|
47
48
|
|
49
|
+
def self.next_patch_release_date
|
50
|
+
PatchDateCalculator.new.execute
|
51
|
+
end
|
52
|
+
|
48
53
|
def self.release_date
|
49
54
|
ReleaseVersions.previous_release_date
|
50
55
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab-releases
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mayra Cabrera
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -105,6 +105,7 @@ files:
|
|
105
105
|
- Rakefile
|
106
106
|
- lib/gitlab_releases.rb
|
107
107
|
- lib/gitlab_releases/date_calculator.rb
|
108
|
+
- lib/gitlab_releases/patch_date_calculator.rb
|
108
109
|
- lib/gitlab_releases/release_calculator.rb
|
109
110
|
- lib/gitlab_releases/release_version.rb
|
110
111
|
- lib/gitlab_releases/release_version_client.rb
|