From 7f5e5e754428c9156f982caf81ebc13cef5365e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1n=20D=C3=A9nes?= Date: Tue, 18 Jan 2022 22:07:34 +0100 Subject: [PATCH] Roadmap update --- roadmap.md | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/roadmap.md b/roadmap.md index 599dff8..b024237 100644 --- a/roadmap.md +++ b/roadmap.md @@ -6,21 +6,26 @@ ### Major -- Generalize what shapes to be repeated when outlining `keys` +- Restructure pcb point/footprint filtering + - Use the same `what`/`where` infrastructure as outlines + - Collapse params/nets/anchors into a single hierarchy from the user's POV + - Add per-footprint mirror support + - Add some way for footprints to be able to "resist" the mirroring-related special treatment of negative X shift, rotation, etc. +- Add auto-bind +- Recursive-ize anchors + - This will potentially cause `ref` to be ambiguous, so maybe introduce a separate `refs` plural? + - Plus add `orient`/`rotate` **towards** other anchors (again, recursively) - Merge, generalize, and uniform-ize footprints - Template for creating them, built-in variables they can use, documentation, external links, etc. - Also considering how (or, on which layer) they define their silks, universal mirroring behaviour, etc. - - https://en.wikipedia.org/wiki/Reference_designator#Designators -- Kill glue -- Revamp binding?? + - Rename class to designator in this context (https://en.wikipedia.org/wiki/Reference_designator#Designators) ### Minor - 3D orient for cases - Post-process anchor for global (post-mirror!) orient/shift/rotate for everything -- Allow shift/rotate for outlines (via `anchor_def`, probably) -- More generic anchors or distances? - - Intersect support for anchor affects clauses, which (combined with the math formulas and possible trigonometric functions) should allow for every use case we've discussed so far +- Even more extreme anchor stuff + - Checkpoints, intersects, distances, weighted combinations? - Allow both object (as well as arrays) in multiple anchor refs - SVG input (for individual outlines, or even combinations parsed by line color, etc.) - And once that's done, possibly even STL or other input for cases or pcb renders @@ -28,33 +33,25 @@ - Maybe a partial markdown preprocess to support bold and italic? - Look into gr_curve to possibly add beziers to the kicad conversion - Support curves (arcs as well as Béziers) in polygons -- Support specifying keys/labels for the pcb section (not just blindly assuming all) - Add snappable line footprint -- Layer-aware export from Maker.JS, so we can debug in the webui more easily +- Figure out a manual, but still reasonably comfortable routing method directly from the config - Add filleting syntax with `@`? - Eeschema support for pcbs -- Outline expand and shrink access from makerjs -- Resurrect and/or add wider tagging support - - Also add subtractive tagging filters (exclude) - - Also expand this to footprints (so, which footprints get applied to which pcb) - - Or, at least, allow skipping per-key footprints - Generate ZMK shield from config - Export **to** KLE? -- Per-footprint mirror support -- A flag for footprints to be able to "resist" the mirroring-related special treatment of negative X shift, rotation, etc. -- Include 3D models for kicad output for visualization +- Include 3D models paths in kicad output for visualization + - Also, provide 3D models for built-in footprints - Look into kicad 5 vs. 6 output format - Update json schema and add syntax highlight to editors +- Support different netclasses ### Patch - Check unexpected keys at top level, too - Better error handling for the fillet option? -- Implement `glue.extra` - Integration and end2end tests to get coverage to 100% -- Fix the intersection of parallel lines when gluing -- Add custom fillet implementation that considers line-line connections only +- Add custom fillet implementation that considers line-line connections only? @@ -65,6 +62,8 @@ - Change over to Cache's live preview implementation - Add missing KLE functionality - Create browserified version of semver lib + - Or at least a shim with a console warning +- Visualizing multiple outlines at once, with different colors ### Minor @@ -72,12 +71,13 @@ - Attempt to auto-compile (if inactive for n secs, or whatever) - Support saving to gists - Add kicad_pcb visualization as well +- Get dropdown examples from a separate repo - Expand the config dropdown with opensource stuff: corne, lily, ergodox, atreus... ### Patch -- Streamlining (and documenting) an update pipeline -- Puppeteer tests +- Streamline (and document) an update pipeline +- Add puppeteer tests @@ -87,18 +87,18 @@ - With a progression of increasingly complex steps - And lots of illustrations! - Complete reference - - some known deficiencies: + - Some known deficiencies: - Units separated to their own block at the front - Key-level `width` and `height` are supported during visualization - This key-level example should probably be added from discord: https://discord.com/channels/714176584269168732/759825860617437204/773104093546676244 - Change outline fields to have their full anchor support documented - Mention the ability to opt out of gluing! - Key-level defaults are based around u's, not 19! - - change over to built, per-chapter docs, like how Cache has them - Contribution guidelines - - including test commands (npm test, npm run coverage, --what switch, --dump switch) + - Include test commands (npm test, npm run coverage, --what switch, --dump switch) - Changelog, Roadmap - A public catalog of real-life ergogen configs + - Probably could be the same as the separate examples repo for the dropdown