-
Notifications
You must be signed in to change notification settings - Fork 5
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
Potentially move flavor dependencies to metanorma
gem?
#120
Comments
My comments from discussion with @opoudjis
|
The situation today is the My intention of the a = Metanorma::Document.new
a.title = "ISO 1234"
a.to_xml => <XML document output>
b = Metanorma::Document.parse("./metanorma-document.xml")
b.title => "ISO 1234" Here's what I think:
|
In my opinion the key problems are as follows. It appears that @ronaldtse disagrees with it, at least partially. Also I'm disagreeing with myself as well, because some of my observations are contradictory. Anyway, here are my comments. Metanorma-CLI has a huge amount of runtime dependenciesAs of current master, spec.add_runtime_dependency "thor", "~> 0.20.3"
spec.add_runtime_dependency "metanorma-iso", "~> 1.3.0"
spec.add_runtime_dependency 'metanorma-ietf', "~> 1.0.1"
spec.add_runtime_dependency 'metanorma-gb', "~> 1.3.0"
spec.add_runtime_dependency 'metanorma-iec', "~> 0.0.5"
spec.add_runtime_dependency 'metanorma-csd', "~> 1.3.0"
spec.add_runtime_dependency 'metanorma-csand', "~> 1.3.0"
#spec.add_runtime_dependency 'metanorma-rsd', "~> 1.1.0"
spec.add_runtime_dependency 'metanorma-m3d', "~> 1.3.0"
spec.add_runtime_dependency 'metanorma-acme', "~> 1.3.0"
spec.add_runtime_dependency 'metanorma-standoc', "~> 1.3.0"
#spec.add_runtime_dependency 'metanorma-mpfd', "~> 0.1.0"
spec.add_runtime_dependency 'metanorma-unece', "~> 0.2.0"
spec.add_runtime_dependency 'metanorma-ogc', "~> 0.2.0"
spec.add_runtime_dependency 'metanorma-nist', "~> 0.2.0"
spec.add_runtime_dependency 'metanorma-itu', "~> 0.2.0"
spec.add_runtime_dependency 'isodoc', "~> 1.0.0"
spec.add_runtime_dependency 'metanorma', "~> 0.3.9"
#spec.add_runtime_dependency 'nokogiri', ">= 1"
spec.add_runtime_dependency "git", "~> 1.5" Multiple flavours and Git integration. That means that you cannot have any CLI interface without installing all of that. Managing compatibility between Metanorma and Metanorma-CLI will be difficultCLI is nothing but another interface for Metanorma. Every new feature in Metanorma is likely to trigger CLI update, and every update to CLI will typically be a consequence of changes in Metanorma. Both gems need to be maintained together. Moreover, they'll always be tightly coupled. IMO these are strong arguments for merging them into one thing. In Ruby world, extracting CLI gems is not a common practiceRails' CLI is provided by This is not without reason. Extracting CLI features only increases maintenance burden (see managing compatibility difficulties) without actually giving much in return. It doesn't even make code base noticeably smaller. Separate CLI packages are typical for JavaScript world for a reason unknown to me. Metanorma-CLI actually does thingsMetanorma-CLI is not a thin wrapper for a Metanorma's public API (well, non-existence of such API is another thing). Instead, it is performing file operations itself. Perhaps it's just a misleading gem name? Or separation of concerns went wrong? |
The biggest issue here is this:
There should be a defined Metanorma library API. Metanorma is supposed to be a library first, then the CLI attached to it second. |
From @skalee
I'm open. Let's discuss for a better alternative.
The text was updated successfully, but these errors were encountered: