Mike Auty
afd28575ca
Re-check constraints when building the tree, in case they change. Also comment on why we don't use that when trimming the possibilties for windows automagic.
2016-02-25 22:03:49 +00:00
Mike Auty
0298df3569
Convert visitors to HierarchicalVisitors, keeping a stack of children's results for the dependency resolver.
2016-02-22 01:05:16 +00:00
Mike Auty
ba9eb0716a
Make output on requirement nodes a little more readable.
2016-02-22 01:03:41 +00:00
Mike Auty
a123572701
Add in debugging tools for the dependency tree.
2016-02-21 01:24:34 +00:00
Mike Auty
665ba8946b
Fix a logic error in the resolver that meant it might not visit every node.
2016-02-21 01:19:42 +00:00
Mike Auty
c6a3c2d6b1
Add in the automagic and allow mid-deptree resolution (without trying to re-fulfill already populated requirements).
2016-02-21 00:42:04 +00:00
Mike Auty
9d7e777c28
Fix up the validity class and enable short_circuiting.
2016-02-21 00:17:44 +00:00
Mike Auty
01ac22bac2
Ensure that the success or failure does not affect the ability for a visitor to change the shortcircuiting.
2016-02-20 23:35:16 +00:00
Mike Auty
a9ff081da5
Fix a few bugs and re-add a visitor pattern for traversing the tree.
2016-02-20 23:01:41 +00:00
Mike Auty
71b540f6db
Draft up a system to tag the configuration tree with useful information based on the context so far.
2016-02-20 21:36:12 +00:00
Mike Auty
1e8c55bfdd
Remove all the visitor pattern stuff, that's likely to bloat rather than help.
2016-02-20 21:35:31 +00:00
Mike Auty
ba2083fc7c
Refactor the RequirementTreeNode to put it in the interfaces file.
2016-02-20 21:35:05 +00:00
Mike Auty
da7774ee92
Refactor and add in a node type for multiple requirements. Lays the groundwork for the hierarchical visitor pattern.
2016-02-20 20:19:36 +00:00
Mike Auty
03cb131260
Add a priority ordering for testing layers (high priority trumps lower priority).
2016-01-21 00:06:39 +01:00
Mike Auty
139a6b610e
Add in an appropriate requirement for BufferLayers.
2016-01-16 22:20:10 +00:00
Mike Auty
590304ed1f
Improve debugging in the dependency resolver.
2016-01-16 22:00:16 +00:00
Mike Auty
78cd3c84c0
Add in a NativeSymbolTable validator.
2016-01-16 21:38:00 +00:00
Mike Auty
84815d204e
Refactor and clarify exactly what the dependency resolver's doing.
...
Also includes requirements and a provider to support adding the
symbol spaces required for XP SP2.
2016-01-16 21:05:37 +00:00
Mike Auty
00660f2a2b
Refactor requirements to their own file.
2016-01-16 21:04:41 +00:00
Mike Auty
a8d6fd5647
Refactor windows code to windows basic to avoid import loops.
2016-01-16 20:09:18 +00:00
Mike Auty
7db739279f
Refactor configuration interfaces.
2016-01-16 13:24:25 +00:00
Mike Auty
dc066d3d29
Add in validate function for symbol requirements.
2016-01-15 02:10:50 +00:00
Mike Auty
8e1602c02e
Refactor constrained to constraint.
2016-01-15 01:53:08 +00:00
Mike Auty
cc2770e88c
Make build_caches private.
2016-01-15 01:51:59 +00:00
Mike Auty
21cdc08092
Remove the last traces of metadata.
2016-01-15 01:51:17 +00:00
Mike Auty
b36d84ab0d
Move metadata to providers variable, and genericize the rudimentary resolver.
2016-01-15 01:50:02 +00:00
Mike Auty
3a8decd57c
Add in the interfaces for constraints/providers.
2016-01-15 01:49:18 +00:00
Mike Auty
1c2cb77ea3
Refactor the DataLayerDepResolver into just a generic DepResolver.
2016-01-15 01:47:58 +00:00
Mike Auty
1e48527096
Refactor Leaf/Node structures.
2016-01-13 00:50:51 +00:00
Mike Auty
603769cd3d
Tidy up useful debugging output.
2016-01-13 00:49:12 +00:00
Mike Auty
ffcacaec7d
Refactor SchemaNodes into RequirementInterface.
2016-01-13 00:48:54 +00:00
Mike Auty
5697428770
Move accessing the configuration to an attribute of the configurable itself.
2016-01-13 00:41:17 +00:00
Mike Auty
55a93073eb
Use the data level to produce the class initialization variables.
2016-01-13 00:11:30 +00:00
Mike Auty
415a0948a0
Rename the SCHEMA_NAME_DIVIDER, and ensure all paths are flat strings.
2016-01-12 23:44:55 +00:00
Mike Auty
629dfe2653
Remove paths from the DepTree structures, since we don't actually use them (save for debugging) and we're trying to minimize the use of the separator constant.
2016-01-12 23:20:53 +00:00
Mike Auty
56710a3483
Fix up a small set logic issue.
2016-01-12 23:16:46 +00:00
Mike Auty
cb3f42f0e9
Rework the CLI a little to actually call the plugin, but the config system needs improving/fixing/rewriting. 5:S
2016-01-11 00:18:16 +00:00
Mike Auty
321064f387
Improve documentation.
2016-01-11 00:09:04 +00:00
Mike Auty
62eff8242d
Include an initial version of the dependency resolver.
2016-01-11 00:03:54 +00:00
Mike Auty
3e9ae60d15
Remove the no-longer needed layer requirements.
2016-01-11 00:01:26 +00:00
Mike Auty
3bf336df41
Rework the dependency section and contemplate how to thread it all together a little more.
2016-01-10 16:29:47 +00:00
Mike Auty
82a145200f
Add in the next tasks for the dep resolver.
2016-01-10 12:36:28 +00:00
Mike Auty
f49f047e55
Clear up the dependency resolver.
2016-01-05 23:26:20 +00:00
Mike Auty
b2be217a13
Add in an initial draft of the dependency resolver
...
Some gotchas:
* Classes can't update attributes that they inherit, because the
inheritance happens after class construction
* The dep resolver can go in circle if the constraints in a layer are
too permissive
2016-01-04 01:17:51 +00:00
Mike Auty
bef0689982
Add in constraints for dependency solving.
2016-01-04 01:17:23 +00:00
Mike Auty
ff1e326a9c
Rip out layer factories, and replace them with a single dependency resolver.
2015-12-30 21:58:41 +00:00
Mike Auty
bcbfee9016
Refactor the validity function names to make it easier for autocomplete to find.
2015-12-29 22:24:32 +00:00
Mike Auty
cf66d0b447
Start building a dependency resolver for translation layers.
2015-12-29 22:13:10 +00:00
Mike Auty
f7cc2ef00e
Add a third layer to the requirement system
...
Now:
1. ConfigSchemaNode Class (pre-plugin instantiation)
2. ConfigSchemaNode Instance (plugin instantiated)
3. ConfigurationItem Instance (tree linking schema nodes to configuration value locations)
2015-12-27 01:12:38 +00:00
Mike Auty
cf2b7b7c01
Update more ideas, getting closer to a suitable setup.
2015-12-07 09:23:20 +00:00