Skip to content

Conversation

@bhargav-j47
Copy link

@bhargav-j47 bhargav-j47 commented Nov 8, 2025

this PR adds feature #2297, fixes #2297

PR introduces following changes:
Automates the generation of the release roadmap SVG using a Python script and json.
changes download page from release-roadmap.png to release-roadmap.svg

Copy link
Contributor

@sarahboyce sarahboyce left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the PR! This is really strong

I have added some suggestions to make it easier to generate future svgs and how to make the generated image a little closer to the existing image

I think once we're happy with the generated image, we might want to consider writing a few tests

@bhargav-j47
Copy link
Author

Hi , thank you for the review . I have added suggested changes , please do let me know if anything needs to be added

Copy link
Contributor

@sarahboyce sarahboyce left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have suggested changes which would end up generating the following image

image

After commiting suggestions you will need to update the current image committed by re-running the command.
A nice to have would be if we can end the graph one line earlier and add a fade out 🤔
We still have some minor discrepancies but I think it's "close enough"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You need to change near the top of this page

-{% block og_image %}{% static "img/release-roadmap.png" %}{% endblock %}
+{% block og_image %}{% static "img/release-roadmap.svg" %}{% endblock %}

Comment on lines +40 to +43
"grid": "#333333",
"text": "#FFFFFF",
"text_lts": "#0C4B33",
"bg": "#000000",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"grid": "#333333",
"text": "#FFFFFF",
"text_lts": "#0C4B33",
"bg": "#000000",
"grid": "#666666",
"text": "#000000",
"text_lts": "#0C4B33",
"bg": "none",

Comment on lines +47 to +49
"pixels_per_year": 120,
"bar_height": 20,
"bar_v_spacing": 20,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"pixels_per_year": 120,
"bar_height": 20,
"bar_v_spacing": 20,
"pixels_per_year": 180,
"bar_height": 28,
"bar_v_spacing": 10,

Comment on lines +55 to +56
"font_size": 12,
"font_size_small": 10,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"font_size": 12,
"font_size_small": 10,
"font_size": 18,

"font_weight": "bold",
"font_weight_lts": "600",
"font_style_lts": "italic",
"legend_box_size": 14,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"legend_box_size": 14,
"legend_box_size": 16,
"legend_padding": 5,

Comment on lines +62 to +64
<rect x="{{ release.extended_bar.x }}" y="{{ release.extended_bar.y }}"
width="{{ release.extended_bar.width }}" height="{{ release.extended_bar.height }}"
fill="{{ release.extended_bar.fill }}" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<rect x="{{ release.extended_bar.x }}" y="{{ release.extended_bar.y }}"
width="{{ release.extended_bar.width }}" height="{{ release.extended_bar.height }}"
fill="{{ release.extended_bar.fill }}" />
<rect
x="{{ release.extended_bar.x }}"
y="{{ release.extended_bar.y }}"
width="{{ release.extended_bar.width }}"
height="{{ release.extended_bar.height }}"
fill="{{ release.extended_bar.fill }}"
stroke="{{ colors.mainstream }}"
stroke-width="2"
/>

Comment on lines +78 to +81
<rect x="{{ legend.mainstream_box.x }}" y="{{ legend.mainstream_box.y }}"
width="{{ legend.mainstream_box.size }}" height="{{ legend.mainstream_box.size }}"
fill="{{ legend.mainstream_box.fill }}" />
<text x="{{ legend.mainstream_text.x }}" y="{{ legend.mainstream_text.y }}" class="legend-text">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<rect x="{{ legend.mainstream_box.x }}" y="{{ legend.mainstream_box.y }}"
width="{{ legend.mainstream_box.size }}" height="{{ legend.mainstream_box.size }}"
fill="{{ legend.mainstream_box.fill }}" />
<text x="{{ legend.mainstream_text.x }}" y="{{ legend.mainstream_text.y }}" class="legend-text">
<rect
x="{{ legend.mainstream_box.x + config.legend_padding }}"
y="{{ legend.mainstream_box.y }}"
width="{{ legend.mainstream_box.size }}"
height="{{ legend.mainstream_box.size }}"
fill="{{ legend.mainstream_box.fill }}"
stroke="{{ colors.mainstream }}" stroke-width="2"
/>
<text
x="{{ legend.mainstream_text.x + config.legend_padding }}"
y="{{ legend.mainstream_text.y }}"
class="legend-text"
>

Comment on lines +85 to +88
<rect x="{{ legend.extended_box.x }}" y="{{ legend.extended_box.y }}"
width="{{ legend.extended_box.size }}" height="{{ legend.extended_box.size }}"
fill="{{ legend.extended_box.fill }}" />
<text x="{{ legend.extended_text.x }}" y="{{ legend.extended_text.y }}" class="legend-text">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<rect x="{{ legend.extended_box.x }}" y="{{ legend.extended_box.y }}"
width="{{ legend.extended_box.size }}" height="{{ legend.extended_box.size }}"
fill="{{ legend.extended_box.fill }}" />
<text x="{{ legend.extended_text.x }}" y="{{ legend.extended_text.y }}" class="legend-text">
<rect
x="{{ legend.mainstream_box.x + config.legend_padding }}"
y="{{ legend.mainstream_box.y + legend.mainstream_box.size + 12 }}"
width="{{ legend.extended_box.size }}"
height="{{ legend.extended_box.size }}"
fill="{{ legend.extended_box.fill }}"
stroke="{{ colors.mainstream }}" stroke-width="2"
/>
<text
x="{{ legend.mainstream_text.x + config.legend_padding }}"
y="{{ legend.mainstream_text.y + legend.extended_box.size + 12 }}"
class="legend-text"
>

Comment on lines +91 to +92


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

(nit)


if __name__ == "__main__":
render_svg()

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Generate the release roadmap image

2 participants