Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Many modules doesn't mean you have a modular system #49

Open
2 of 5 tasks
bertfrees opened this issue Jun 10, 2015 · 0 comments
Open
2 of 5 tasks

Many modules doesn't mean you have a modular system #49

bertfrees opened this issue Jun 10, 2015 · 0 comments
Assignees

Comments

@bertfrees
Copy link
Member

But it should! We are in the situation that we have a lot of modules (bundles) that are all coupled to each other. You don't actually have the choice to include a module or not. A further problem of having many modules is that it can become unclear what the functionality of each modules is. The fact is that often the only reason two components are in separate modules is to avoid circular dependencies (one component depends on another via a third component from another module).

Some things we can do to improve the situation:

  • The reason why modules like liblouis-saxon and liblouis-calabash modules exist is to make the system not tied to specific XSLT/XPath/XProc engines. I still think this is a good idea. What's not so nice about this is that these modules are coupled with other modules using 'Require-Bundle'. They could be coupled more loosely using 'Require-/Provide-Capability'. (Also I think Require-Bundle doesn't allow circular dependencies while Require-Capability does.)
  • Modules like liblouis-utils and liblouis-core may be merged if we can solve the problem of circular dependencies. Making use of 'Require-/Provide-Capability' (see above) may help with that. 'Declarative Services' is another means.
    • Modules such as liblouis-native and liblouis-tables already make 100% use of DS. Other modules such as liblouis-formatter and liblouis-mathml not yet but they could.
  • Possibly merge foo-saxon and foo-calabash with foo-utils to simplify things, because we're not using multiple XSLT/XProc engines anyway. The modules can be split again at any time later.
  • Make dependencies optional using resolution:=optional and throw runtime exceptions when needed.

Related issues:

@bertfrees bertfrees mentioned this issue Jun 10, 2015
@bertfrees bertfrees self-assigned this Jun 10, 2015
bertfrees added a commit to daisy/pipeline-mod-braille that referenced this issue Jun 19, 2015
notably liblouis-formatter, liblouis-mathml, dotify-formatter

see issue snaekobbi#49
bertfrees added a commit to daisy/pipeline-mod-braille that referenced this issue Jun 19, 2015
This also implies making calabash and saxon modules
API-less. pef-to-html had to be merged into pef-utils.

-> see issue snaekobbi#49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant