diff --git a/extra/release.py b/extra/release.py index 16e2e860e..647cc49c9 100755 --- a/extra/release.py +++ b/extra/release.py @@ -105,10 +105,6 @@ def create_rst_replacements() -> list[Replacement]: r.split("/")[-1] for r in refs if r.startswith("plugins/") ) return [ - # Fix nested bullet points indent: use 2 spaces consistently - (r"(?<=\n) {3,4}(?=\*)", " "), - # Fix nested text indent: use 4 spaces consistently - (r"(?<=\n) {5,6}(?=[\w:`])", " "), # Replace Sphinx :ref: and :doc: directives by documentation URLs # :ref:`/plugins/autobpm` -> [AutoBPM Plugin](DOCS/plugins/autobpm.html) ( @@ -124,9 +120,6 @@ def create_rst_replacements() -> list[Replacement]: # Convert plugin references to documentation URLs # `fetchart` plugin -> [fetchart](DOCS/plugins/fetchart.html) (rf"`+({plugins})`+", lambda m: make_ref_link(f"plugins/{m[1]}")), - # Add additional backticks around existing backticked text to ensure it - # is rendered as inline code in Markdown - (r"(?<=[\s])(`[^`]+`)(?!_)", r"`\1`"), # Convert bug references to GitHub issue links (r":bug:`(\d+)`", r":bug: (#\1)"), # Convert user references to GitHub @mentions @@ -135,13 +128,12 @@ def create_rst_replacements() -> list[Replacement]: MD_REPLACEMENTS: list[Replacement] = [ - (r"]+>([^<]+)", r"_\1"), # remove a couple of wild span refs (r"^(\w[^\n]{,80}):(?=\n\n[^ ])", r"### \1"), # format section headers (r"^(\w[^\n]{81,}):(?=\n\n[^ ])", r"**\1**"), # and bolden too long ones (r"### [^\n]+\n+(?=### )", ""), # remove empty sections ] order_bullet_points = partial( - re.compile("(\n- .*?(?=\n(?! *- )|$))", flags=re.DOTALL).sub, + re.compile(r"(\n- .*?(?=\n(?! *(-|\d\.) )|$))", flags=re.DOTALL).sub, lambda m: "\n- ".join(sorted(m.group().split("\n- "))), ) diff --git a/test/test_release.py b/test/test_release.py index 62986fa95..62b32a714 100644 --- a/test/test_release.py +++ b/test/test_release.py @@ -22,29 +22,36 @@ pytestmark = pytest.mark.skipif( def rst_changelog(): return """New features: -* :doc:`/plugins/substitute`: Some substitute +- :doc:`/plugins/substitute`: Some substitute multi-line change. :bug:`5467` -* :ref:`list-cmd` Update. +- :ref:`list-cmd` Update. -You can do something with this command:: +You can do something with this command: + +:: $ do-something Bug fixes: -* Some fix that refers to an issue. +- Some fix that refers to an issue. :bug:`5467` -* Some fix that mentions user :user:`username`. -* Some fix thanks to +- Some fix that mentions user :user:`username`. +- Some fix thanks to :user:`username`. :bug:`5467` -* Some fix with its own bullet points using incorrect indentation: - * First nested bullet point - with some text that wraps to the next line - * Second nested bullet point -* Another fix with its own bullet points using correct indentation: - * First - * Second +- Some fix with its own bullet points using incorrect indentation: + + - First nested bullet point + with some text that wraps to the next line + - Second nested bullet point + +- Another fix with an enumerated list + + 1. First + and some details + 2. Second + and some details Section naaaaaaaaaaaaaaaaaaaaaaaammmmmmmmmmmmmmmmeeeeeeeeeeeeeee with over 80 characters: @@ -53,7 +60,7 @@ Empty section: Other changes: -* Changed `bitesize` label to `good first issue`. Our `contribute`_ page is now +- Changed ``bitesize`` label to ``good first issue``. Our `contribute`_ page is now automatically populated with these issues. :bug:`4855` .. _contribute: https://github.com/beetbox/beets/contribute @@ -63,7 +70,7 @@ Other changes: Bug fixes: -* Fixed something.""" +- Fixed something.""" @pytest.fixture @@ -79,9 +86,9 @@ You can do something with this command: ### Bug fixes -- Another fix with its own bullet points using correct indentation: - - First - - Second +- Another fix with an enumerated list + 1. First and some details + 2. Second and some details - Some fix thanks to @username. :bug: (#5467) - Some fix that mentions user @username. - Some fix that refers to an issue. :bug: (#5467)