You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since Samuel left NixOS, we were left with a massive SVG file that sort of still works but is hard to work with and can break at any moment.
There are plenty of PRs adding new icons to that SVG, but they either have merge conflicts or will have merge conflicts once another icon is merged. This has already happened when #130 was merged, causing a conflict in #137.
Proposed Solution
Redesign the whole icon generator.
Lessons learned:
Use separate, small SVG files for each channel.
These can be optimised individually, significantly reducing the total directory size.
Have documentation available for how to create new icons that follow a cohesive style guide.
Don't pin a Nixpkgs revision, otherwise it'll never be unpinned again and will break as soon as something is deprecated in Nix (i.e. URL literals)
We can ensure that the icons stay consistent by having CI build and display the icons in a PR that adds new icons, or build and check the icon hashes for PRs that update the flake.lock in the matrix/ directory.
I am hoping that converting SVG to PNG is deterministic.
What next?
Split the main SVG into separate files — one for each channel.
Write simple, extensible derivations that simply convert the files into PNGs.
A simple flake is perfect for this, IMO.
We can leverage lib.filesystem.listFilesRecursive to allow new icons to be created without any Nix knowledge.
Based on the output of those derivations, we can write CI checks and use GitHub apps to display them in a PR's thread.
Also write an action to automatically update the flake every few days.
Naturally, I am volunteering to maintain the matrix icon tree. This issue is for community input, as well as an invite for anyone who would like to help.
The text was updated successfully, but these errors were encountered:
Problem
Since Samuel left NixOS, we were left with a massive SVG file that sort of still works but is hard to work with and can break at any moment.
There are plenty of PRs adding new icons to that SVG, but they either have merge conflicts or will have merge conflicts once another icon is merged. This has already happened when #130 was merged, causing a conflict in #137.
Proposed Solution
Redesign the whole icon generator.
Lessons learned:
matrix/
directory.What next?
lib.filesystem.listFilesRecursive
to allow new icons to be created without any Nix knowledge.Naturally, I am volunteering to maintain the matrix icon tree. This issue is for community input, as well as an invite for anyone who would like to help.
The text was updated successfully, but these errors were encountered: