Index: index_user.html =================================================================== --- index_user.html (revision 2109) +++ index_user.html (revision 2110) @@ -70,7 +70,10 @@ a single integer, string or a single "yes/no" or "on/off" value (e.g. the background color or whether polygons are thin-drawn). For scalars the rule is simple: the higher priority value wins and all lower priority -values are discarded when putting the values into the hash. +values are discarded when putting the values into the hash. More +details: how different roles and priorities +can be used with scalars. +
There are some settings that are represented as an array or list of values. They are described in a lihata list item ("li:") in the config @@ -79,4 +82,11 @@ in each source, just like the prioirty is set. Check out the list merging section for more details. -
role | priority | policy | content + |
---|---|---|---|
system | 200 | overwrite | A,B,C + |
user | 400 | overwrite | (not defined) + |
project | 600 | overwrite | D,E + |
Merge iterations: +
step | description | output list after executing this step | remarks + |
---|---|---|---|
0. | reset the output | (empty) | + |
1. | apply system | A,B,C | + |
2. | apply user | A,B,C | "not defined" doesn't mean "empty", so the list is not deleted - no change + |
3. | apply project | D,E | replace the original output because of the overwrite policy + |
Situation: the project is restricted to local footprint libs; this setup +makes sure no system or user configuration injects external footprint paths. + +
role | priority | policy | content + |
---|---|---|---|
system | 200 | overwrite | A,B,C + |
user | 400 | overwrite | (not defined) + |
project | 600 | overwrite | defined to be an empty list + |
Merge iterations: +
step | description | output list after executing this step | remarks + |
---|---|---|---|
0. | reset the output | (empty) | + |
1. | apply system | A,B,C | + |
2. | apply user | A,B,C | "not defined" doesn't mean "empty", so the list is not deleted - no change + |
3. | apply project | (empty) | replace the original output because of the overwrite policy + |
role | priority | policy | content + |
---|---|---|---|
system | 200 | overwrite | A,B,C + |
user | 400 | prepend | (not defined) + |
project | 600 | prepend | D,E + |
Merge iterations: +
step | description | output list after executing this step | remarks + |
---|---|---|---|
0. | reset the output | (empty) | + |
1. | apply system | A,B,C | + |
2. | apply user | A,B,C | "not defined" doesn't mean "empty", so the list is not deleted - no change + |
3. | apply project | D,E,A,B,C | + |
Situation: the project has its own footprint libs with two paths; these +should be searched before system and user paths, still, system path is also +kept so stock footprints can be found. +
+This is better than hardwiring A,B,C in the project's list: A, B and C may +depend on the installation on a given system. A project file has no idea +about how the system is installed but it is assumed system installation +and the system configuration file are consistent. + +
role | priority | policy | content + |
---|---|---|---|
system | 200 | overwrite | A,B,C + |
user | 400 | append | (not defined) + |
project | 600 | append | D,E + |
Merge iterations: +
step | description | output list after executing this step | remarks + |
---|---|---|---|
0. | reset the output | (empty) | + |
1. | apply system | A,B,C | + |
2. | apply user | A,B,C | "not defined" doesn't mean "empty", so the list is not deleted - no change + |
3. | apply project | A,B,C,D,E | + |
Situation: the project has its own footprint libs with two paths; these +should be searched after system and user paths. This means the local footprint +lib has lower priority than the stock footprints. See system-dependent +installation remarks in the previous point. + + +
role | priority | policy | content + |
---|---|---|---|
system | 200 | overwrite | A,B,C + |
user | 400 | prepend | X,Y,Z + |
project | 600 | append | D,E + |
Merge iterations: +
step | description | output list after executing this step | remarks + |
---|---|---|---|
0. | reset the output | (empty) | + |
1. | apply system | A,B,C | + |
2. | apply user | X,Y,Z,A,B,C | + |
3. | apply project | X,Y,Z,A,B,C,D,E | + |
role | priority | policy | content + |
---|---|---|---|
system | 200 | overwrite | A + |
user | 400 | overwrite | (not defined) + |
project | 600 | overwrite | Q + |
+Merge iterations: +
step | description | output list after executing this step | remarks + |
---|---|---|---|
0. | reset the output | (empty) | + |
1. | apply system | A | + |
2. | apply user | A | "not defined" doesn't mean "empty", so the list is not deleted - no change + |
3. | apply project | Q | replace the original output because of the overwrite policy + |
Situation: system default overriden by a project setting. + +
role | priority | policy | content + |
---|---|---|---|
system | 200 | overwrite | A + |
user | 650 | overwrite | E + |
project | 600 | overwrite | Q + |
+Merge iterations: +
step | description | output list after executing this step | remarks + |
---|---|---|---|
0. | reset the output | (empty) | + |
1. | apply system | A | + |
2. | apply project | Q | + |
3. | apply user | E | + |
Situation: user preference enforced: even if the project file would use +'Q' for the given setting, the user prefers 'E'. This affects runtime +(the value of the setting after the merge, in other words how pcb-rnd works), +but does nto change the project configuration. This allows the given user to +always use 'E' for the given setting while lets other users working on the +same project use the value set in the project file. + + +