Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
elexis
elexis-3-core
Commits
c92605cc
Commit
c92605cc
authored
Oct 12, 2021
by
Niklaus Giger
Browse files
[21759] Emit first fixed version
parent
3e1c45b4
Pipeline
#22727
passed with stages
in 4 minutes and 26 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
ch.elexis.core.releng/update_changelog.rb
View file @
c92605cc
...
...
@@ -2,7 +2,6 @@
require
'bundler/inline'
puts
"It may take some time for bundler/inline to install the dependencies"
$argv_copy
=
ARGV
.
clone
gemfile
do
source
'https://rubygems.org'
...
...
@@ -28,6 +27,8 @@ require 'csv'
require
'fileutils'
require
'active_support/all'
DATE_FORMAT
=
'%Y.%m.%d'
AUFRUF
=
"# Generated by
#{
File
.
basename
(
__FILE__
)
}
#{
ARGV
}
on
#{
Time
.
now
.
strftime
(
DATE_FORMAT
)
}
"
.
gsub
(
"["
,
''
).
gsub
(
"]"
,
''
).
gsub
(
'"'
,
''
)
ISSUE_URL
=
'https://redmine.medelexis.ch/issues'
CACHE_FILE
=
File
.
join
(
Dir
.
home
,
'.cache/redmine_issues.yaml'
)
IGNORE_ISSUE_STATUS
=
/Abgewiesen|erledigt|zur*ckgestell/i
...
...
@@ -58,7 +59,6 @@ end
require
'rugged'
MAX_ID
=
999
FORCE_TAG_NUMERIC
=
(
MAX_ID
.
to_s
*
4
).
to_i
DATE_FORMAT
=
'%Y.%m.%d'
MEDIAWIKI_FILE
=
'Changelog.mediawiki'
Issue
=
Struct
.
new
(
:id
,
:subject
,
:fixed_version
,
:git_version
,
:status
,
:project
,
:last_api_fetch
)
CommitInfo
=
Struct
.
new
(
:repo
,
:ticket
,
:author_date
,
:committer_date
,
:text
)
...
...
@@ -176,8 +176,13 @@ def get_history(old_id, newer_id, git_version)
walker
.
each
do
|
commit
|
author
=
commit
.
author
[
:name
]
ticket_id
=
(
m
=
/^\[(\d*)\]/
.
match
(
commit
.
message
))
&&
m
[
1
]
ticket
=
ticket_id
?
read_issue
(
ticket_id
)
:
Issue
.
new
ticket
.
git_version
=
git_version
if
ticket
ticket
=
ticket_id
?
read_issue
(
ticket_id
)
:
Issue
.
new
(
ticket_id
)
# Handle cases like Issue 19635 not found
ticket
||=
Issue
.
new
(
ticket_id
)
ticket
.
id
||=
ticket_id
ticket
.
fixed_version
||=
"Keine Zielversion"
ticket
.
subject
||=
"Keine Titel"
ticket
.
git_version
=
git_version
line
=
"
#{
commit
.
oid
}
#{
commit
.
author
[
:time
]
}
#{
sprintf
(
'%20s'
,
author
)
}
#{
commit
.
message
.
split
(
"
\n
"
).
first
}
"
info
.
commits
<<
CommitInfo
.
new
(
File
.
basename
(
File
.
dirname
(
@repo
.
path
)),
ticket
,
commit
.
author
[
:time
].
strftime
(
DATE_FORMAT
),
commit
.
committer
[
:time
].
strftime
(
DATE_FORMAT
),
line
)
info
.
authors
[
author
]
||=
0
...
...
@@ -186,7 +191,6 @@ def get_history(old_id, newer_id, git_version)
info
end
def
read_issue
(
id
=
5760
)
@nr_loaded
||=
0
unless
ENV
[
'REDMINE_MEDEXIS_API'
]
...
...
@@ -235,7 +239,9 @@ def emit_mediawiki_changelog(all_commits, file)
short_version
=
/[\d\.]+$/
.
match
(
@options
[
:to
])[
0
]
mediawiki
.
puts
"= Changelog für Elexis
#{
short_version
}
ab
#{
@options
[
:from
]
}
bis
#{
@options
[
:to
]
}
="
mediawiki
.
puts
""
mediawiki
.
puts
AUFRUF
.
sub
(
'# '
,
''
)
mediawiki
.
puts
"Die Zahlen in Klammern beziehen sich auf das nicht öffentlich zugängliche Ticket-System der Firma Medelexis AG"
mediawiki
.
puts
" gefolgt von der Version in der das Problem zuerst geflickt, resp. zurückportiert wurde. Leer falls keine Zielversion erfasst"
mediawiki
.
puts
""
if
@options
[
:by_week
]
sorted
=
all_commits
.
sort
{
|
left
,
right
|
left
.
committer_date
<=>
right
.
committer_date
}
...
...
@@ -258,18 +264,23 @@ def emit_mediawiki_changelog(all_commits, file)
mediawiki
.
puts
""
end
else
to_sort
=
all_commits
.
find_all
{
|
x
|
x
.
ticket
&
.
fixed_version
.
eql?
(
short_version
)}
to_sort
=
all_commits
.
find_all
{
|
x
|
x
.
ticket
&
.
fixed_version
.
eql?
(
short_version
)
||
x
.
ticket
&
.
git_version
.
sub
(
/.*\//
,
''
).
eql?
(
short_version
)
}
if
to_sort
to_sort
.
sort
{
|
left
,
right
|
left
.
committer_date
<=>
right
.
committer_date
}
sorted_by_ticket
=
to_sort
.
sort
{
|
left
,
right
|
left
.
ticket
.
id
<=>
right
.
ticket
.
id
}
sorted_by_ticket
=
to_sort
.
sort
{
|
left
,
right
|
left
.
ticket
.
id
.
to_i
<=>
right
.
ticket
.
id
.
to_i
}
emitted_ids
=
[]
sorted_by_ticket
.
each
do
|
commit
|
next
if
emitted_ids
.
index
(
commit
.
ticket
.
id
)
proprietary
=
!
sorted_by_ticket
.
find_all
{
|
x
|
x
.
ticket
.
id
==
commit
.
ticket
.
id
}.
collect
{
|
x
|
x
.
repo
}.
uniq
.
find
{
|
x
|
x
.
match
(
/^elexis/
)}
line
=
"*
#{
proprietary
?
'Medelexis:'
:
'OpenSource'
}
#{
sprintf
(
"%14s"
,
"'''([https://redmine.medelexis.ch/issues/"
+
commit
.
ticket
.
id
+
' '
+
commit
.
ticket
.
id
+
"])'''"
)
}#{
commit
.
ticket
.
subject
.
gsub
(
/\n|\r\n/
,
','
).
strip
}
"
commit_id
=
commit
.
ticket
.
id
?
commit
.
ticket
.
id
:
"unkown"
binding
.
pry
unless
commit
.
ticket
.
subject
line
=
"*
#{
proprietary
?
'Medelexis:'
:
'OpenSource'
}
#{
sprintf
(
"%14s"
,
"'''([https://redmine.medelexis.ch/issues/"
+
commit_id
+
' '
+
commit_id
+
"])'''"
)
}
"
+
"
#{
commit
.
ticket
.
fixed_version
}
"
+
"
#{
commit
.
ticket
.
subject
.
gsub
(
/\n|\r\n/
,
','
).
strip
}
"
mediawiki
.
puts
line
emitted_ids
<<
commit
.
ticket
.
id
end
puts
"Emitted
#{
emitted_ids
.
size
}
tickets for
#{
short_version
}
"
end
end
mediawiki
.
close
...
...
@@ -315,7 +326,7 @@ def emit_history(filename, from = nil, to = nil)
walk
=
@history
filename
+=
"-
#{
from
.
sub
(
/(release|origin)\//
,
''
)
}
-
#{
to
.
sub
(
/(origin|release)\//
,
''
)
}
"
if
from
&&
to
File
.
open
(
filename
,
'w+'
)
do
|
ausgabe
|
ausgabe
.
puts
"# Generated by
#{
File
.
basename
(
__FILE__
)
}
#{
$argv_copy
}
on
#{
Time
.
now
.
strftime
(
DATE_FORMAT
)
}
"
.
gsub
(
"["
,
''
).
gsub
(
"]"
,
''
).
gsub
(
'"'
,
''
)
ausgabe
.
puts
AUFRUF
ausgabe
.
puts
"# similar to git log --date=iso --pretty=format:'%H %ad %an %s' release/3.0.25..release/3.1.0"
if
from
&&
to
emit_changes
(
ausgabe
,
from
,
to
)
...
...
@@ -361,7 +372,7 @@ if @options[:mediawiki]
from_id
=
from_tag
.
commit_id
else
from_tag
||=
@repo
.
branches
[
@options
[
:from
]]
from_id
=
from_tag
&
.
target
.
oid
from_id
=
from_tag
&
.
target
&
.
oid
end
unless
from_tag
puts
"Skipping
#{
repo
}
as there is no tag
#{
@options
[
:from
]
}
"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment