0. old, still waiting for ack
+ BUG: using image2footprint parametric footprint, choose 0.25mm pixel size, white silk, black soldermask, yes to dithering and yes to FR4, choose either of the vader .pngs from bug files as the image and place on layout, then change .png to other png, place on layout, and continue alternating. segfault will typically ensue after a period. backtrace included as big-subc-bt.txt [report: erich]

1. For the upcoming release ===============================================================================

2. For later releases ===============================================================================
- BUG: bug_files/tc-mult-attr.pcb: load, save, load: wrror messages on duplicate element attr [report: John Wehle ml:6363]
- RELEASE: enable polybool2 for dev, disable polybool2 by default before the release
- FEATURE: DRC: minimum mask bridge width check [report: John Wehle]
	- need to use find.c to get "nets" of mask objects (including padstacks)
	- then use the normal bloat-intersect code to see if two of them are closer than the required value
- poly lib rewrite (fixed means it works with polybool):
	- BUG: aron's private board, aron_*, self-isc inf loop with polybool [report: aron]
	+ BUG: Bdale's disappearing poly bugreport, hosted in librnd/work/poly_broken
		- BUG: test_poly/bdale4: broken clipping
	+ BUG: test_poly/bdale3: dicer bug: disappearing clearance: place a signal via right to the rectangular pin with no clarance overlap, rectangular pin's clearance disappears [report: Igor2]
	+ BUG: test_poly/out-extract*.rf, on which is not autocropped, triggers assert with scrolling, but the autocropped version does not. Polygon vertex coords are well under size limit for 32 bit coords in both cases. out-minimal.rf is a more minimal polygon version of the subc which triggers assert in footprint edit mode with {ze} and scroll bar use. [Report: Erich]
	+ BUG: thermal tool poly assert. test_poly/thermal-assert.rp and use thermal tool and shift click to start cycling through thermal types on padstack. Assert eventually occurs. [report: Erich]
	- BUG: test_poly/polyclpoly.lht: excess clearing into the corner of the outer poly; move the line a bit and it tends to disappear ml=3493 [report: gpaubert]
	+ BUG: test_poly/intersect.* (thin hair gerber bug) [report: cuvoodoo]
	+ BUG: test_poly/line-arc-del-assert.rp load layout, delete right most vertical, line, poly validity assert ensues [report: Erich]
	+ BUG: test_poly/line-arc-del-assert.rp load layout, delete bottom most horizontal line, note strange clipping that shorts across adjacent arc [report: Erich]
	+ BUG: test_poly/line-arc-del-assert.rp load layout, delete bottom most arc, note strange clipping that across where arc used to be [report: Erich]
	- BUG: test_poly/phatch.lht: maybe {m d t} and PolyHatch(0, c) -> poly offseting bug on sharp corners ml=4159 [report: Majenko]
	+ BUG: test_poly/derive.rp, edit pstk proto, add mask shape, derive -> derived polygon is broken (invalid coords) [report: Scott]
	/ BUG: test_poly/clipping-2154-1676.* see txt [report: Erich]
		-> not a bug:
		-> remove the upper polygon it doesn't play any role, but confuses the user
		-> observe the tiny bridge of the remaining bottom poly above the vertical line's clearance
		-> perform the move of the rightmost vertex down
		-> the upper edge is now cut in half by the line's clearance; the whole poly is cut in half
		-> so removing the smaller half of the poly is the proper thing to do
	- at the end of the full rewrite, remove /local/pcb/want_polybool and PCB_WANT_POLYBOOL (from scconfig and config.h too!)
- FEATURE: hierarhic: subc-in-subc syntax: refdes-refdes-term? probably a bad idea
	- search for '-' and centralize parsing refdes-term id
- BUG: extended object "bus" bugs:
	- BUG: new doc layer; draw line on it; convert to extended obj bus; "E" mark doesn't appear (but does after a reload or copy&paste) [report: aron]
	- BUG: box-select the whole bus, copy to buffer, rotate buffer -> bus is not regenerated in buffer [report: aron]
- revise release/packaging:
	- remove suggesting geda-gnetlist from the debian package
	- add suggesting sch-rnd and camv-rnd and route-rnd
	- consider a ringdove metapackage?
- librnd 4.3: search for TODO("librnd 4.3.0
- FEATURE: svg colorspaces: bug_files/TODO/SVG.patch (requires librnd 4.2)
- DOC: pool node on how to use pixmap for breadboading
- BUG: bug_files/TODO/ppc_full.*: poly-clear-poly should respect full-poly flag and apply all islands only if full-poly is set
- BUG?: enforce style clearance doesn't work with middle-line rubber band move, see bug_files/TODO/drag.rs [report: Majenko]
	-> may be a non-bug, if we take this as a line move operation (doesn't enforce)
- DEL: remove c-pcb support in favor of the more generic external autorouter plugin
- CLEANUP: rewrite query's parent_net_len_found_cb() to collect objects in a tree (from->to objects, at most 2 'to' objects from a single 'from'); use slab allocation for tree elems; see bug_files/revp.lht: {n l o} on the long horizontal line causes zig-zagging map that a single segment reverse won't fix; also revise pads ascii write with this [report: cuvoodoo]
- CLEANUP: TODO27: undo's removed list shouldn't depend on object IDs but probably remove list index because IDs are not unique if we want our operations to retrain IDs. Repro: shift-click subc replace twice, then undo; or drag&drop move selected object and undo [report: Igor2]
- CLEANUP/BUG: undo operation while drawing a multiple segment line doesn't change segment attached to the crosshair [report:wojciechk8]
	- tool_line.c depends on pcb_undo()'s return value; can be fixed only when the old undo system is removed
- CLEANUP: think over how to handle subc selection: selecting all parts automatically is bad for propedit; bug_files/subcsel.bug [report: Wojciech]
	- BUG: propedit adding/deleting attributes inconsistency; search depth problem (see TODO#28)  bug_files/subcsel.bug [report: Ade]
	- BUG: select a subc, propedit selection: padstacks are counted twice (e.g. for lid/thermal) [report: gpaubert]
- CLEANUP: layer order from data
	- build a list of layers rendered, in the order of rendering while drawing layer groups; maybe use gdl and move the group to the end and use a terminator item;  get pcb_search_obj_by_location_() to use this list for ordering
	- BUG?: Far-side silk text can be selected and moved when the mouse is over front-side subcircuit. (but this is what we had with elements too! -> rewrite search.c to be a 'script' config) bug_files/TODO/farsilk.lht [report: Ade]
- CLEANUP: revise dialog boxes for string/integer input box character length
- BUG: Lihata persistent save:
	- flag compatibility: save unknown, string-flags as loaded by io_pcb
	- ind: FONTS: second font indents incorrectly
	- ind: indentation bug in inline struct therm: closing } is preceded by indentation whitespace for some reason
	- keep numeric format: test all
	- keep unknown subtrees
	- BUG: lhtpers indentation: bug_files/lhtpers_ins/; breakpoint in pers_table.c:34 and debug why the newline is getting in [report: Igor2]
- BUG: I/O bugs:
	- eagle:
		- BUG: xml: eagle XML import fails on polygon import reported by miloh, test file pcb-rnd-aux poly_selfi/eagle_polygon_crash.brd [report: erich], due to input file containing an invalid polygon: a self intersecting poly in line 156 - consider handling "width"?
		- bin: eagle binary format v3 and libraries do not have a DRC block specifying restring or minimum feature widths. Binary loader should add a DRC block in these cases to the tree with the minimum settings needed for padstacks and features to load sensibly. [erich].
		- bin: padstack clearances for element pins will rely on connectivity to other polygons layer by layer defined in the netlist; test case: alien_fmt_test/io_eagle_bin/net_poly_conn
- rubber stretch routing:
	- IGNORE: BUG: Rubberband move line endpoints ignores connected arc endpoints. [Fixing:Ade]
	- remove auto_via from the conf and code
- librnd later:
	- FEATURE: librnd API: library window: allow long tags and long location text to split: rich text widget in librnd [report: Igor2]

3. Long term ===============================================================================
- multi: merge sch-rnd r4718 for proper multiboard support later
- FEATURE: copy sch-rnd's RtreeList action in act_read
- CLEANUP: footprint lib rework
	- BUG: bug_files/TODO/TO247.rp, { w l }, select TO247, shift click onto subc in TO247.rp layout: 90 degree error [report: Erich]
		-> wrong subx-aux x and y lines (names mixed up)
		-> apply patch in bug_files/fp_rework to fix that, check with the script in the same dir
	- revise sil graphics for at least smd
	- add assy drawing
	- add keepout
	- revise pad sizes and hole sizes, maybe starting from bedrock
	- revise 3d (openscad) models if they still line up
- BUG: start new layout: pcb-rnd foo.rp, export scad model, will export to foo.scad by default; then start new layout, save layout as bar.rp. When using export dialogue, dialogue defaults to previous filename foo.XXX for any of the export options. [report: Erich]
- FEATURE: "thermal recipe" so a padstack thermal can be put in a padstack or subc and it is changed with the layer binding [report: jg]
- FEATURE: netlist2: bug_files/ratside.txt optional rats constraints [report: Vuokko]
- FEATURE: openems mesher: do not ignore padstack copper [report: Evan]
- FEATURE: netlist import's ElementList(): [report: aron]
	- postpone actions, present a list of changes only to the user (GUI)
	- each item of the list should contain the corresponding actions to make the change
	- the user can execute these items one by one
- CLEANUP: move pcb_pixmaps into the board struct, board free should free it, and it should call rnd_render->pixmap_free()
- CLEANUP: padstack bbox:
	- per layer: keep a bbox per transformed shape per prototype, then getting the bbox of a padstack ref on a specific layer is looking up the shape, then 4 integer additions [report: Wojciech]
	- when calculating overall padstack bbox, ignore layers that are not present? but then a layer change would require a recalc (but this is true for subcs too!) [report: Wojciech]
- FEATURE: depth controlled mech layers (routed) for internal cavities: http://www.saturnelectronics.com/products_capabilities/internal-cavity_boards.html -> user script, similar to on_every_layer: convert lines into bbvia slot padstacks; only when we already export bbvia in excellon; alternative: layer attribute on mech layers
- XOR rendering upgrade:
		- experiment with 'emboss' kind of drawing instead of xor so rendering can stay 'direct'
		- if worked: allow padstack xor draw to draw all shapes on all layers
- CLEANUP: layer group rewrite: remove PCB_MAX_LAYERGRP and PCB_MAX_LAYER and make them dynamic - use libualloc stack with reasonable page size and local var first page
	- make pcb_layervis_save_stack() reentrant by letting the caller allocate the save buffer
- CLEANUP: reduce: get rid of autorouter/vector.[ch]

4. Low prio ===============================================================================
- BUG: elliptic: gtk2_gl: RTT/arc_sizes.lht - elliptical arc corner case render bug [report: Wed]
- BUG: elliptic: RTT/arc_sizes.lht - unable to move arcs which have different width and height [report: Ade] - rewrite pcb_is_point_on_arc() elliptical case at the bottom
- BUG: if foo() v0 exists in ~/.pcb-rnd/footprint and foo() v1 exists in ~/pcblib the tree view in the left paane of {w l} will load foo() v0 in ~/.pcb-rnd even if foo() v1 under ~/pcblib is being selected in the GUI with a mouse click. GUI selection fail.  [report: Erich] 
- FEATURE: DRC should warn for thin poly hair
- FEATURE: scconfig: menuconfig and a config file for scconfig: requires a more declarative dependency handling system -> being done in scconfig2
