metanorma/metanorma-cli

View on GitHub
README.adoc

Summary

Maintainability
Test Coverage
= Metanorma command-line interface (CLI)

image:https://img.shields.io/gem/v/metanorma-cli.svg["Gem Version", link="https://rubygems.org/gems/metanorma-cli"]
image:https://github.com/metanorma/metanorma-cli/workflows/rake/badge.svg["Build Status", link="https://github.com/metanorma/metanorma-cli/actions?workflow=rake"]
image:https://codeclimate.com/github/metanorma/metanorma-cli/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-cli"]
image:https://img.shields.io/github/issues-pr-raw/metanorma/metanorma-cli.svg["Pull Requests", link="https://github.com/metanorma/metanorma-cli/pulls"]
image:https://img.shields.io/github/commits-since/metanorma/metanorma-cli/latest.svg["Commits since latest",link="https://github.com/metanorma/metanorma-cli/releases"]

== Installation

[TIP]
====
To use Metanorma, normally you *don’t manually install this gem*.
Depending on your setup, you may find quicker ways to get started:
please refer to https://www.metanorma.com/docs/getting-started/[Getting Started] instead.
====

To install this gem, simply run:

[source,sh]
----
gem install metanorma-cli
----

This will install the `metanorma` executable, which you can use with all
officially supported Metanorma flavors (such as ISO, CalConnect, IETF, etc).

However, a number of <<external-dependencies,dependencies>> are not
installed with this gem, and have to be installed separately.
The process of installing the full suite can be a little more complex.

Generally, we recommend you to follow steps given at
https://www.metanorma.com/author/topics/install/[Metanorma Installation].

But if you aren't afraid of tinkering deeply, please see the
https://www.metanorma.com/install/manual-installation/[Developer Installation Notes]
for advanced details regarding dependencies and Windows installation notes.


=== External dependencies

The Metanorma toolchain supports certain features when optional dependencies
are installed. Please refer to the following table for them.

[cols="1,1,1"]
|===
|Dependency |Mandatory? | Target component / purpose

|https://git-scm.com/[`git`]
| :white_check_mark:
|`metarnoma-cli` (templates), https://github.com/fontist/fontist[`fontist`]

|https://www.oracle.com/java/technologies/[`java`]
| :white_check_mark:
|https://github.com/metanorma/mn2pdf[`mn2pdf`], https://github.com/metanorma/metanorma-standoc[`metanorma-standoc`]

|https://xml2rfc.tools.ietf.org/[`xml2rfc`] (`python`)
| :white_large_square:
|https://github.com/metanorma/metanorma-ietf[`metanorma-ietf`]

|https://inkscape.org/[`inkscape`]
| :white_large_square:
|https://github.com/metanorma/isodoc[`isodoc`], SVG to EMF functionality (for inserting SVGs into Word)

|https://graphviz.org/[`graphviz`]
| :white_check_mark:
|https://github.com/lutaml/lutaml[`lutaml`] generation of LutaML diagrams

|http://www.plantuml.com/[`plantuml`]
| :white_large_square:
|https://github.com/metanorma/metanorma-standoc[`metanorma-standoc`] generation of PlantUML diagrams

|===


== Usage

Refer to https://www.metanorma.org/install/usage[Metanorma CLI usage].


== Release

=== General overview

Once we are ready for release of `metanorma-cli`, it means:

. required all `metanorma-cli`'s dependencies are released or ready for upcoming release
. last `rake` workflow for `main` branch is green (can be started https://github.com/metanorma/metanorma-cli/actions/workflows/rake.yml[manually])

Simply bump `metanorma-cli` gem version and push. This will initiate rake workflow that:

. run `rake` tests
. run `template`s compilation tests
. run `sample`s compilation tests

The test matrix defined as JSON files in link:./.github/workflows/samples-smoke-matrix.json[samples test matrix] and link:./.github/workflows/templates-smoke-matrix.json[templates test matrix]

One all tests is passed, `packed-mn` 's and `docker` 's releases will be initiated

=== Responsibility

[cols="1,1"]
|===
|Repositories | Responsible

|`metanorma-cli`'s dependencies (including transitive) from the GitHub `metanorma` organization
|@opoudjis

|`packed-mn`, `docker`, `chocolatey`, `snap`, `brew` and any other unusual CI failures
|@CAMOBAP

|===

== Credits

This gem is developed, maintained and funded by https://www.metanorma.com/docs/getting-started/[Ribose Inc.]

== License

The gem is available under the terms of the http://opensource.org/licenses/MIT[MIT License].