missing NULL terminator in set_config_x
[geda-gaf.git] / docs / wiki / pcb-roadmap.html
blobf0f23d0dfa1750e4173b0f9d0813d47b9955c00c
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html>
4 <head>
5 <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
6 <link rel="stylesheet" media="screen" type="text/css" href="./design.css" />
7 <link rel="stylesheet" media="print" type="text/css" href="./print.css" />
9 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10 </head>
11 <body>
13 <p>
14 <em>Translations of this page are also available in the following languages:</em> <a href="pcb-roadmap.ru.html" class="wikilink1" title="pcb-roadmap.ru.html">Русский</a>
15 </p>
17 <h1 class="sectionedit1" id="pcb_roadmap">PCB Roadmap</h1>
18 <div class="level1">
20 <p>
21 This is a guide to the future direction of the PCB layout editor.
22 </p>
23 <ul>
24 <li class="level1"><div class="li"> <a href="geda-design_flow_and_hierarchy_roadmap.html" class="wikilink1" title="geda-design_flow_and_hierarchy_roadmap.html"> gEDA roadmap</a> has some PCB items.</div>
25 </li>
26 <li class="level1"><div class="li"> <a href="pcb-projects.html" class="wikilink1" title="pcb-projects.html"> PCB Projects</a> lists some wish-list items.</div>
27 </li>
28 </ul>
30 </div>
31 <!-- EDIT1 SECTION "PCB Roadmap" [109-352] -->
32 <h2 class="sectionedit2" id="general_guidelines_for_releases">General Guidelines for Releases</h2>
33 <div class="level2">
35 <p>
36 In general, there are three types of changes that go into PCB - bug
37 fixes, new features, and incompatible changes.
38 </p>
39 <ul>
40 <li class="level1"><div class="li"> A <em>bug fix</em> is when PCB doesn&#039;t do what it&#039;s supposed to do - this includes documentation bugs as well as code problems.</div>
41 </li>
42 </ul>
43 <ul>
44 <li class="level1"><div class="li"> A <em>new feature</em> is something that adds functionality to PCB but doesn&#039;t change any existing functionality.</div>
45 </li>
46 </ul>
47 <ul>
48 <li class="level1"><div class="li"> An <em>incompatible change</em> is anything that causes (intentional) compatibility issues with older versions of PCB, and usually means a large design change.</div>
49 </li>
50 </ul>
52 <p>
53 Note that a new feature that
54 adds a backwards-incompatible change to the file format <em>when it&#039;s
55 used</em> is not in this category.
56 </p>
58 <p>
59 Bugs, patches, and feature requests should be added to the
60 <a href="https://bugs.launchpad.net/pcb" class="urlextern" title="https://bugs.launchpad.net/pcb" rel="nofollow">PCB Launchpad bugs
61 tracker</a>.
62 </p>
64 <p>
65 The default status <strong>undecided</strong>, bug reports with that priority will be considered “unreviewed”.
66 </p>
68 </div>
69 <!-- EDIT2 SECTION "General Guidelines for Releases" [353-1268] -->
70 <h2 class="sectionedit3" id="current_plans">Current plans</h2>
71 <div class="level2">
73 <p>
74 The current plan is as follows:
75 </p>
76 <ul>
77 <li class="level1"><div class="li"> Releases every three … four months or so, until we clear the backlog.</div>
78 </li>
79 <li class="level1"><div class="li"> Start on a PCB 5.x release that folds in some large design changes.</div>
80 </li>
81 </ul>
83 </div>
84 <!-- EDIT3 SECTION "Current plans" [1269-1477] -->
85 <h2 class="sectionedit4" id="pcb_release_schedule">pcb release schedule</h2>
86 <div class="level2">
88 <p>
89 The pcb release schedule can be found <a href="https://launchpad.net/pcb/+milestones" class="urlextern" title="https://launchpad.net/pcb/+milestones" rel="nofollow"> here</a>.
90 </p>
92 <p>
93 The remainder of this page will list the various wishes that are
94 planned (or at least hoped for) for upcoming and future releases.
95 </p>
97 </div>
98 <!-- EDIT4 SECTION "pcb release schedule" [1478-1735] -->
99 <h2 class="sectionedit5" id="wish_list">Wish List</h2>
100 <div class="level2">
103 This section lists possible projects for future releases, which either
104 haven&#039;t been agreed on, or haven&#039;t been scheduled. If you&#039;d like to
105 work on one of these, go ahead <img src="images/smileys/icon_smile.gif" align="middle" alt=":-)" />
106 </p>
107 <ul>
108 <li class="level1"><div class="li"> <a href="geda-pcb_layers.html" class="wikilink1" title="geda-pcb_layers.html"> New Layers</a> proposal is here.</div>
109 </li>
110 <li class="level1"><div class="li"> Multiple fonts in a design (<a href="geda-pcb_fonts.html" class="wikilink1" title="geda-pcb_fonts.html"> description of feature branch</a>)</div>
111 </li>
112 <li class="level1"><div class="li"> Other <abbr title="Graphical User Interface">GUI</abbr> cleanups. Gtk upgraded to “best practices”. Importer config.</div>
113 </li>
114 <li class="level1"><div class="li"> import/wizard plugins (as well as exports)</div>
115 </li>
116 <li class="level1 node"><div class="li"> <a href="pcb-drc.html" class="wikilink1" title="pcb-drc.html"> Design Rule Checker</a></div>
117 <ul>
118 <li class="level4"><div class="li"> status report active on drawing space when “DRC Active” toggled &#039;on&#039; in Connects menu.</div>
119 </li>
120 <li class="level4"><div class="li"> DRC profile files (for different mfg processes).</div>
121 </li>
122 <li class="level4"><div class="li"> General code clean up</div>
123 </li>
124 <li class="level4"><div class="li"> Modularization</div>
125 </li>
126 </ul>
127 </li>
128 <li class="level1 node"><div class="li"> Variable-angle arcs. </div>
129 <ul>
130 <li class="level4"><div class="li"> file footprints support this, it&#039;s a graphics issue.</div>
131 </li>
132 </ul>
133 </li>
134 <li class="level1"><div class="li"> Better support for free-rotated components: assert that pads at funky angles are rendered correctly, fix autorouter for components at weird angles (the latest git version has a tendency to either ignore the route command or to segfault, depending on the specifics), add rotation to the <kbd>Ctrl</kbd>+<kbd>R</kbd> report, etcetera.</div>
135 </li>
136 <li class="level1 node"><div class="li"> Ability to copy a footprint&#039;s name from the library dialogue (so it can be pasted into gschem&#039;s attribute list).</div>
137 <ul>
138 <li class="level3"><div class="li"> it should be a feature of gschem to open .fp libraries.</div>
139 </li>
140 </ul>
141 </li>
142 <li class="level1"><div class="li"> Ability to edit netlist in-situ (possibly by drawing on the rat lines layer) - e.g, when you want to add a heatsink soldered to ground, it will always show up as shorted until the netlist is edited to incorporate it.</div>
143 </li>
144 <li class="level1"><div class="li"> Trace impedance calculator, with automatic adjustment capability (fill in thickness, stray capacitance and desired impedance, and the width is adjusted to satisfy the conditions).</div>
145 </li>
146 <li class="level1"><div class="li"> Integrated footprint lookup and fetch from gedasymbols.org.</div>
147 </li>
148 <li class="level1"><div class="li"> Hierarchical pcb model - subcells, footprints-as-pcb, etc.</div>
149 </li>
150 <li class="level1 node"><div class="li"> A shape I&#039;ve often wanted on a pad is circle with the sides cut off. This is slightly different than an oval. Something like Inkscape&#039;s boolean operations would be excellent.</div>
151 <ul>
152 <li class="level2"><div class="li"> PCB file footprints support &#039;obround&#039; or pill shaped pads.</div>
153 </li>
154 </ul>
155 </li>
156 <li class="level1"><div class="li"> How about text at not-90 degree angles? Or support for rotated square pads (I know, the file format doesn&#039;t support those two.)</div>
157 </li>
158 <li class="level1"><div class="li"> Editing on the grid has got to go! Counting grid points is the worst possible way to enter positional information into a computer.</div>
159 </li>
160 <li class="level1"><div class="li"> Make every field in object reports editable.</div>
161 </li>
162 <li class="level1"><div class="li"> Allow direct entry of offsets and absolute positions when editing.</div>
163 </li>
164 <li class="level1"><div class="li"> Add “offset” and “trim” feature à la 2D CAD programs.</div>
165 </li>
166 <li class="level1"><div class="li"> Add “point to tangent” and “tangent to tangent” line drawing feature à la 2D CAD programs.</div>
167 </li>
168 <li class="level1 node"><div class="li"> When silk layer is off, show refdeses in very thin, small type for all footprints, say over pin 1, or the diamond mark.</div>
169 <ul>
170 <li class="level3"><div class="li"> similar to &#039;lock names&#039;, but done in order to clear up the board real-estate.</div>
171 </li>
172 <li class="level3"><div class="li"> this would be &#039;drafting mode&#039; as opposed to &#039;output mode&#039; where silk would be 1:1.</div>
173 </li>
174 </ul>
175 </li>
176 <li class="level1"><div class="li"> Selection improvements: make it possible to select the endpoint of a specific trace, if two endpoints are coincident, you can&#039;t know which will be selected.</div>
177 </li>
178 <li class="level1"><div class="li"> Trace centerline dissappears when moving trace endpoint in thin-draw mode. this is undesirable behaviour.</div>
179 </li>
180 <li class="level1 node"><div class="li"> Filled circles</div>
181 <ul>
182 <li class="level3"><div class="li"> Currently, to get a filled circle you create a zero-length trace of the right width.</div>
183 </li>
184 <li class="level3"><div class="li"> Are there actually electronics components that require filled circle copper?</div>
185 </li>
186 </ul>
187 </li>
188 <li class="level1"><div class="li"> Unification of shortcuts in gschem and PCB, or at least an easy option for PCB to mimic gschem&#039;s shortcuts.</div>
189 </li>
190 <li class="level1"><div class="li"> CAM engine? (i.e. ability to say “draw outline on top soldermask” via script/config)</div>
191 </li>
192 <li class="level1"><div class="li"> Automatic least version required file saving. (goal: accomodate new features gracefully)</div>
193 </li>
194 <li class="level1"><div class="li"> Put various commands which are only accessible via a :command(foo) into the top menu. Newbies want to see what actions are in the menus since that way they know what PCB can do.</div>
195 </li>
196 <li class="level1"><div class="li"> Make the difference between editing footprints and PCBs much more obvious. If you&#039;re in footprint editing mode, then perhaps make the background color change. (Architectural)</div>
197 </li>
198 </ul>
200 </div>
201 <!-- EDIT5 SECTION "Wish List" [1736-] --></body>
202 </html>