Skip to content

Commit 6b22e81

Browse files
Julian Dehmm4ra
Julian Dehm
authored andcommitted
release v2407.1
1 parent 9523a5d commit 6b22e81

File tree

2 files changed

+88
-0
lines changed

2 files changed

+88
-0
lines changed

Diff for: CHANGELOG.md

+29
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,35 @@ All notable changes to this project will be documented in this file.
55
Since version v2306 the format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
This project (not yet) adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## v2407.1
9+
10+
###
11+
12+
- script top automatically create changelog from files in the changelog folder
13+
14+
### Changed
15+
16+
- update django rest to 3.15.1 to avoid bigger versions coming from wagtail and incompatible with django 3.2
17+
- update wagtail to 5.2.5
18+
- add wagtail hook to make richtext toolbar sticky by default
19+
- webpack: don't output entrypoints as library, we don't need it and it will
20+
just print errors on the console
21+
- Django from 3.2.20 to 4.0
22+
- `re_path` with `path` for included urls.
23+
- Django from 4.0 to 4.2
24+
- production settings for storage
25+
- from psycopg2 to psycopg3
26+
- sentry to 2.3.1
27+
28+
### Fixed
29+
30+
- fix calendar not shown because Flatpickr constructor changed
31+
32+
### Removed
33+
34+
- `USE_L10N` in settings as it is now True by default
35+
- deprecated stylelint rules (15.x)
36+
837
## v2306 - 2023-06-27
938

1039
### Added

Diff for: changelog/parse_changelogs.py

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#!/bin/python3
2+
3+
import logging
4+
import os
5+
import re
6+
from collections import OrderedDict
7+
8+
logger = logging.getLogger(__name__)
9+
10+
11+
def combine_sections_in_folder(folder_path):
12+
"""Parser for changelog files following the https://keepachangelog.com
13+
format.
14+
"""
15+
allowed_section_headers = [
16+
"Added",
17+
"Changed",
18+
"Deprecated",
19+
"Removed",
20+
"Fixed",
21+
"Security",
22+
]
23+
sections = OrderedDict()
24+
25+
for filename in os.listdir(folder_path):
26+
if filename.endswith(".md") and filename != "README.md":
27+
filepath = os.path.join(folder_path, filename)
28+
with open(filepath, "r") as file:
29+
current_section = None
30+
for line in file:
31+
# find all headings starting with # (they should always
32+
# start with ### but we seem to sometimes use # or ##)
33+
match = re.match(r"^#+ (.*)", line)
34+
if match:
35+
section_header = match.group(1).strip().capitalize()
36+
if section_header not in allowed_section_headers:
37+
logger.warning(
38+
f"warning: section_header {section_header} "
39+
f"in file {filename} is invalid, "
40+
"see https://keepachangelog.com for a list of "
41+
"allowed types."
42+
)
43+
current_section = sections.get(section_header, [])
44+
elif current_section is not None and line.strip():
45+
current_section.append(line)
46+
sections[section_header] = current_section
47+
48+
combined_md = ""
49+
for section_header, lines in sections.items():
50+
combined_md += "### " + section_header + "\n\n"
51+
combined_md += "".join(lines) + "\n"
52+
53+
return combined_md
54+
55+
56+
if __name__ == "__main__":
57+
folder_path = "."
58+
combined_md = combine_sections_in_folder(folder_path)
59+
print(combined_md)

0 commit comments

Comments
 (0)