Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
a5f078c6
Commit
a5f078c6
authored
May 07, 2014
by
David Baumgold
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
include commits-without-prs table
parent
edab57d6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
56 additions
and
11 deletions
+56
-11
scripts/release.py
+56
-11
No files found.
scripts/release.py
View file @
a5f078c6
...
@@ -5,7 +5,7 @@ a release-master multitool
...
@@ -5,7 +5,7 @@ a release-master multitool
from
__future__
import
print_function
,
unicode_literals
from
__future__
import
print_function
,
unicode_literals
import
sys
import
sys
from
path
import
path
from
path
import
path
from
git
import
Repo
from
git
import
Repo
,
Commit
from
git.refs.symbolic
import
SymbolicReference
from
git.refs.symbolic
import
SymbolicReference
import
argparse
import
argparse
from
datetime
import
date
,
timedelta
from
datetime
import
date
,
timedelta
...
@@ -290,13 +290,8 @@ def prs_by_email(start_ref, end_ref):
...
@@ -290,13 +290,8 @@ def prs_by_email(start_ref, end_ref):
branch
=
SymbolicReference
(
repo
,
ref
)
branch
=
SymbolicReference
(
repo
,
ref
)
try
:
try
:
merge
=
get_merge_commit
(
branch
.
commit
,
end_ref
)
merge
=
get_merge_commit
(
branch
.
commit
,
end_ref
)
except
DoesNotExist
as
err
:
except
DoesNotExist
:
message
=
(
pass
# this commit will be included in the commits_without_prs table
"Warning: could not find merge commit for {commit}. "
"The pull request containing this commit will not be included "
"in the table."
.
format
(
commit
=
err
.
commit
)
)
print
(
colorize
(
"red"
,
message
),
file
=
sys
.
stderr
)
else
:
else
:
unordered_data
[
merge
.
author
.
email
]
.
add
((
pr_num
,
merge
))
unordered_data
[
merge
.
author
.
email
]
.
add
((
pr_num
,
merge
))
...
@@ -307,9 +302,9 @@ def prs_by_email(start_ref, end_ref):
...
@@ -307,9 +302,9 @@ def prs_by_email(start_ref, end_ref):
return
ordered_data
return
ordered_data
def
generate_table
(
start_ref
,
end_ref
):
def
generate_
pr_
table
(
start_ref
,
end_ref
):
"""
"""
Return a string corresponding to a
commi
t table to embed in Confluence
Return a string corresponding to a
pull reques
t table to embed in Confluence
"""
"""
header
=
"|| Merged By || Author || Title || PR || JIRA || Verified? ||"
header
=
"|| Merged By || Author || Title || PR || JIRA || Verified? ||"
pr_link
=
"[#{num}|https://github.com/edx/edx-platform/pull/{num}]"
pr_link
=
"[#{num}|https://github.com/edx/edx-platform/pull/{num}]"
...
@@ -343,6 +338,41 @@ def generate_table(start_ref, end_ref):
...
@@ -343,6 +338,41 @@ def generate_table(start_ref, end_ref):
return
"
\n
"
.
join
(
rows
)
return
"
\n
"
.
join
(
rows
)
@memoized
def
get_commits_not_in_prs
(
start_ref
,
end_ref
):
"""
Return a list of commits that exist between start_ref and end_ref,
but were not merged to the end_ref. If everyone is following the
pull request process correctly, this should return an empty list.
"""
return
list
(
Commit
.
iter_items
(
repo
,
"{start}..{end}"
.
format
(
start
=
start_ref
,
end
=
end_ref
),
first_parent
=
True
,
no_merges
=
True
,
))
def
generate_commit_table
(
start_ref
,
end_ref
):
"""
Return a string corresponding to a commit table to embed in Comfluence.
The commits in the table should only be commits that are not in the
pull request table.
"""
header
=
"|| Author || Summary || Commit || JIRA || Verified? ||"
commit_link
=
"[commit|https://github.com/edx/edx-platform/commit/{sha}]"
rows
=
[
header
]
commits
=
get_commits_not_in_prs
(
start_ref
,
end_ref
)
for
commit
in
commits
:
rows
.
append
(
"| {author} | {summary} | {commit} | {jira} | {verified} |"
.
format
(
author
=
commit
.
author
.
email
,
summary
=
commit
.
summary
.
replace
(
"|"
,
"
\
|"
),
commit
=
commit_link
.
format
(
sha
=
commit
.
hexsha
),
jira
=
", "
.
join
(
parse_ticket_references
(
commit
.
message
)),
verified
=
""
,
))
return
"
\n
"
.
join
(
rows
)
def
generate_email
(
start_ref
,
end_ref
,
release_date
=
None
):
def
generate_email
(
start_ref
,
end_ref
,
release_date
=
None
):
"""
"""
Returns a string roughly approximating an email.
Returns a string roughly approximating an email.
...
@@ -389,7 +419,22 @@ def main():
...
@@ -389,7 +419,22 @@ def main():
"in your release wiki page"
"in your release wiki page"
)
)
print
(
"
\n
"
)
print
(
"
\n
"
)
print
(
generate_table
(
args
.
previous
,
args
.
current
))
print
(
generate_pr_table
(
args
.
previous
,
args
.
current
))
commits_without_prs
=
list
(
get_commits_not_in_prs
(
args
.
previous
,
args
.
current
))
if
commits_without_prs
:
num
=
len
(
commits_without_prs
)
plural
=
num
>
1
print
(
"
\n
"
)
print
(
"There {are} {num} {commits} in this release that did not come in "
"through pull requests!"
.
format
(
num
=
num
,
are
=
"are"
if
plural
else
"is"
,
commits
=
"commits"
if
plural
else
"commit"
)
)
print
(
"
\n
"
)
print
(
generate_commit_table
(
args
.
previous
,
args
.
current
))
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
main
()
main
()
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