Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changelog for 1.15.1 #15406

Merged
merged 11 commits into from
Feb 4, 2025
47 changes: 47 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,52 @@
# Changelog

## [1.15.1] (2025-02-04)

[1.15.1]: https://github.com/crystal-lang/crystal/releases/1.15.1

### Bugfixes

#### stdlib

- *(networking)* Disable directory path redirect when `directory_listing=false` ([#15393], thanks @straight-shoota)
- *(runtime)* **[regression]** abstract `EventLoop::Polling#system_add` invalid signature ([#15380], backported from [#15358], thanks @straight-shoota)
- *(system)* **[regression]** Fix GC `sig_suspend`, `sig_resume` for `gc_none` ([#15382], backported from [#15349], thanks @ysbaddaden)

[#15393]: https://github.com/crystal-lang/crystal/pull/15393
[#15380]: https://github.com/crystal-lang/crystal/pull/15380
[#15358]: https://github.com/crystal-lang/crystal/pull/15358
[#15382]: https://github.com/crystal-lang/crystal/pull/15382
[#15349]: https://github.com/crystal-lang/crystal/pull/15349

### Documentation

#### stdlib

- *(system)* Fix code example in `Process::Status#exit_code` docs ([#15381], backported from [#15351], thanks @zw963)

[#15381]: https://github.com/crystal-lang/crystal/pull/15381
[#15351]: https://github.com/crystal-lang/crystal/pull/15351

### Infrastructure

- Changelog for 1.15.1 ([#15406], thanks @straight-shoota)
- Update distribution-scripts ([#15385], backported from [#15368], thanks @straight-shoota)
- Update distribution-scripts ([#15388], thanks @straight-shoota)
- Add backports to changelog generator ([#15402], thanks @straight-shoota)
- *(ci)* Add build shards to `mingw-w64` workflow ([#15344], thanks @straight-shoota)
- *(ci)* Update shards 0.19.1 ([#15384], backported from [#15366], thanks @straight-shoota)
- *(ci)* Add check for shards binary in `test_dist_linux_on_docker` ([#15394], thanks @straight-shoota)

[#15406]: https://github.com/crystal-lang/crystal/pull/15406
[#15385]: https://github.com/crystal-lang/crystal/pull/15385
[#15368]: https://github.com/crystal-lang/crystal/pull/15368
[#15388]: https://github.com/crystal-lang/crystal/pull/15388
[#15402]: https://github.com/crystal-lang/crystal/pull/15402
[#15344]: https://github.com/crystal-lang/crystal/pull/15344
[#15384]: https://github.com/crystal-lang/crystal/pull/15384
[#15366]: https://github.com/crystal-lang/crystal/pull/15366
[#15394]: https://github.com/crystal-lang/crystal/pull/15394

## [1.15.0] (2025-01-09)

[1.15.0]: https://github.com/crystal-lang/crystal/releases/1.15.0
Expand Down
48 changes: 4 additions & 44 deletions scripts/github-changelog.cr
Original file line number Diff line number Diff line change
Expand Up @@ -271,18 +271,6 @@ record PullRequest,
md = title.match(/\[fixup #(.\d+)/) || return
md[1]?.try(&.to_i)
end

def clean_title
title.sub(/^\[?(?:#{type}|#{sub_topic})(?::|\]:?) /i, "").sub(/\s*\[Backport [^\]]+\]\s*/, "")
end

def backported?
labels.any?(&.starts_with?("backport"))
end

def backport?
title.includes?("[Backport ")
end
end

def query_milestone(api_token, repository, number)
Expand Down Expand Up @@ -324,9 +312,8 @@ end

milestone = query_milestone(api_token, repository, milestone)

class ChangelogEntry
struct ChangelogEntry
getter pull_requests : Array(PullRequest)
property backported_from : PullRequest?

def initialize(pr : PullRequest)
@pull_requests = [pr]
Expand Down Expand Up @@ -355,18 +342,13 @@ class ChangelogEntry
if pr.deprecated?
io << "**[deprecation]** "
end
io << pr.clean_title
io << pr.title.sub(/^\[?(?:#{pr.type}|#{pr.sub_topic})(?::|\]:?) /i, "")

io << " ("
pull_requests.join(io, ", ") do |pr|
pr.link_ref(io)
end

if backported_from = self.backported_from
io << ", backported from "
backported_from.link_ref(io)
end

authors = collect_authors
if authors.present?
io << ", thanks "
Expand All @@ -379,26 +361,15 @@ class ChangelogEntry

def collect_authors
authors = [] of String

if backported_from = self.backported_from
if author = backported_from.author
authors << author
end
end

pull_requests.each_with_index do |pr, i|
next if backported_from && i.zero?

pull_requests.each do |pr|
author = pr.author || next
authors << author unless authors.includes?(author)
end

authors
end

def print_ref_labels(io)
pull_requests.each { |pr| print_ref_label(io, pr) }
backported_from.try { |pr| print_ref_label(io, pr) }
end

def print_ref_label(io, pr)
Expand All @@ -409,7 +380,7 @@ class ChangelogEntry
end

entries = milestone.pull_requests.compact_map do |pr|
ChangelogEntry.new(pr) unless pr.fixup? || pr.backported?
ChangelogEntry.new(pr) unless pr.fixup?
end

milestone.pull_requests.each do |pr|
Expand All @@ -423,17 +394,6 @@ milestone.pull_requests.each do |pr|
end
end

milestone.pull_requests.each do |pr|
next unless pr.backported?

backport = entries.find { |entry| entry.pr.backport? && entry.pr.clean_title == pr.clean_title }
if backport
backport.backported_from = pr
else
STDERR.puts "Unresolved backport: #{pr.clean_title.inspect} (##{pr.number})"
end
end

sections = entries.group_by(&.pr.section)

SECTION_TITLES = {
Expand Down
2 changes: 1 addition & 1 deletion shard.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: crystal
version: 1.15.0
version: 1.15.1

authors:
- Crystal Core Team <[email protected]>
Expand Down
2 changes: 1 addition & 1 deletion src/SOURCE_DATE_EPOCH
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1736380800
1738627200
2 changes: 1 addition & 1 deletion src/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.15.0
1.15.1