Commit Graph
52 Commits
Author SHA1 Message Date
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