Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 63 additions & 34 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
## [v1.1.0] - 2025-09-08

### Added

- Update api documentation to match latest backend implementation (79c1094)
- Enhance national historical data documentation (ae9edbb)
- Implement gitflow workflow automation following pico-api-go pattern (1178589)
- Complete api documentation overhaul with logo-matching design (04a2e51)
- Update api documentation with correct parameters and new endpoints (03eba28)

### Changed

- Redesign documentation sections with clean table-based layout (3b9de06)

### Fixed

- Workflow syntax and formatting improvements (5a0dca6)
- Remove outdated exclude_latest_case parameter from provinces endpoint (f1828d5)

### Maintenance

- Prepare v1.1.0 release (c269896)
- Remove unnecessary image.png file (e7807a8)

### Style

- Add trailing newlines to all source files (a970f94)

# Changelog for v1.0.0

Generated on 2025-09-08
Expand All @@ -8,94 +36,95 @@ All changes
## ✨ Features

- implement complete i18n translations for documentation sections (
c24cc38)
c24cc38)
- redesign Documentation page with sidebar layout (
7b7f287)
7b7f287)
- implement comprehensive national endpoint documentation (
94f6aab)
94f6aab)
- add MIT license and API source code reference (
95ed65b)
95ed65b)
- create reusable Navigation component with mobile support (
49f042a)
49f042a)
- implement comprehensive responsive design and mobile navigation (
073591f)
073591f)
- add comprehensive deployment system with health checks and rollback (
ecafbf5)
ecafbf5)
- include version in backmerge PR titles (
a2f029c)
a2f029c)
- add changelog generation script and release automation workflow (
05d2b27)
05d2b27)
- add htaccess with api proxy and spa routing configuration (
fe0d0e3)
fe0d0e3)
- add partner logos and maintenance page (
fd23051)
fd23051)
- implement vue spa with modern hero, features, and responsive design (
cee2d15)
cee2d15)
- add html entry point with comprehensive seo meta tags (
1fc22b6)
1fc22b6)

## πŸ› Bug Fixes

- create separate branch for release preparation to avoid conflicts (c197f16f)
- handle multiline commit messages in changelog generation for first release (
5edb93c)
5edb93c)
- update API response examples to match actual response structure (
3d09518)
3d09518)
- update branding and contact links (
3f1961d)
3f1961d)
- resolve CSS conflict in DataSources component (
136a545)
136a545)
- update data source URLs to correct endpoints (
25ee3b8)
25ee3b8)
- update backmerge PR titles to use conventional commit style (
99f59c7)
99f59c7)

## πŸ“ Documentation

- update README with MIT license and API source references (
17c22a2)
17c22a2)

## πŸ’Ž Style

- add trailing newlines to all code files (
71dcbee)
71dcbee)

## πŸ“¦ Build System

- add vite, typescript, and tailwind configuration (
9876bed)
9876bed)

## πŸ‘· CI/CD

- add github action workflow for automatic backmerge to develop branch (
8f7f494)
8f7f494)

## πŸ”§ Chores

- Fix LaTeX rendering and clean up duplicate i18n setup (
cc77722)
cc77722)
- Add LaTeX rendering for mathematical formulas in Rt calculation (
495256f)
495256f)
- Fix glossary section by removing broken i18n implementation (
031088b)
031088b)
- Fix i18n implementation in GlossarySection component (
0aff2ef)
0aff2ef)
- Add Rt formula, references, and Vue i18n internationalization (
98933e0)
98933e0)
- Add Indonesian COVID-19 terminology to glossary (
2ea7fde)
2ea7fde)
- Refactor Documentation into subcomponents and add Glossary (
5eed45c)
5eed45c)
- Fix mobile layout spacing and improve Coming Soon styling (
0685343)

685343.

- initial project setup with gitignore and readme (
2960bc5)
2960bc5)

---

## πŸ“Š Statistics

- Total commits: 33
---


---
40 changes: 29 additions & 11 deletions scripts/generate_changelog.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ class ChangelogGenerator
'chore' => { category: 'Maintenance', breaking: false },
'ci' => { category: 'CI/CD', breaking: false },
'build' => { category: 'Build', breaking: false },
'revert' => { category: 'Reverted', breaking: false }
'revert' => { category: 'Reverted', breaking: false },
'merge' => { category: 'Merged Features', breaking: false }
}.freeze

# Release and hotfix branch patterns
Expand Down Expand Up @@ -226,20 +227,20 @@ def fetch_commits_since_last_release

puts "πŸ“‹ Fetching commits since #{last_tag || 'beginning'}..."

commit_format = '%H|%s|%b|%an|%ae|%ad'
commit_format = '%H|%s|%an|%ae|%ad'
commits_output = `git log #{range} --pretty=format:"#{commit_format}" --date=iso`

commits = commits_output.split("\n").map do |line|
parts = line.split('|', 6)
next if parts.length < 6
parts = line.split('|', 5)
next if parts.length < 5

{
hash: parts[0],
subject: parts[1],
body: parts[2],
author_name: parts[3],
author_email: parts[4],
date: parts[5]
body: '',
author_name: parts[2],
author_email: parts[3],
date: parts[4]
}
end.compact

Expand Down Expand Up @@ -301,6 +302,26 @@ def categorize_commits(commits)
# @param subject [String] Commit subject line
# @return [Array] [type, scope, description, breaking]
def parse_conventional_commit(subject)
# Handle merge commits from pull requests
if subject.start_with?('Merge pull request')
# Extract PR info and try to parse meaningful content
pr_match = subject.match(/Merge pull request #(\d+) from .+\/(.+)/)
if pr_match
branch_name = pr_match[2]
# Try to infer type from branch name (feature/fix/etc)
if branch_name.match(/^(feature|feat)\//)
return ['feat', nil, "Merge #{branch_name}", false]
elsif branch_name.match(/^(fix|bugfix|hotfix)\//)
return ['fix', nil, "Merge #{branch_name}", false]
elsif branch_name.match(/^chore\//)
return ['chore', nil, "Merge #{branch_name}", false]
else
return ['merge', nil, "Merge #{branch_name}", false]
end
end
return ['merge', nil, subject, false]
end

# Match conventional commit format: type(scope): description
match = subject.match(/^(\w+)(?:\(([^)]+)\))?(!)?: (.+)$/)

Expand All @@ -327,9 +348,6 @@ def parse_conventional_commit(subject)
# @param commit [Hash] Commit information
# @return [Boolean] true if commit should be skipped
def should_skip_commit?(type, commit)
# Skip merge commits
return true if commit[:subject].start_with?('Merge ')

# Skip certain types if configured
skip_types = options[:skip_types] || []
skip_types.include?(type)
Expand Down