Closed ronaldtse closed 1 year ago
Need to propagate this change for other repos
Thanks @CAMOBAP ! Please feel free to close this once done.
All repos' workflows will be updated in the scope of https://github.com/metanorma/metanorma-cli/issues/273
This was attempted before, and I demanded it be rescinded, because of mutual dependency errors: in cases of mutual dependency, it ends up being impossible to release a gem at all. This applies to mn-requirements, for example, which is tested against isodoc and standoc. If there is a major version update of mn-requirements, then those tests do not work until after mn-requirements is updated, and then isodoc and standoc are updated.
I'm going to demand it be rescinded again. @ronaldtse you do not know what is involved in the release workflows, you do not know the extent of mutual dependencies and why they are there; and we have had several iterations of me removing dependencies; for major version releases, this remains an issue because of development-level circular releases, which cannot be removed. And I have tried.
Once again, you are intervening to break things that are not broken, out of misbegotten purism.
@CAMOBAP Please undo this.
@opoudjis please state where those mutual dependencies exist and @CAMOBAP will address them. This is excellent work that involves a lot of work, and is not to be just "rescinded".
Thanks.
metanorma-plugin-lutaml > metanorma-standoc
We now have other metanorma-plugin-*
gems so they should not create mutual dependencies. One way is to make metanorma-standoc
not depend on metanorma-plugin-lutaml
, but instead make metanorma-cli
depend on it to have it installed together.
metanorma > metanorma-standoc > metanorma-iso
I think there's something wrong with this dependency tree. The metanorma
gem shouldn't depend on standoc, and standoc should not require iso.
It should be:
mn-requirements > isodoc > metanorma-standoc
This seems to require some refactoring...
As I have said repeatedly, these are testing dependencies, not code dependencies:
spec.add_development_dependency "metanorma"
spec.add_development_dependency "metanorma-standoc"
I do not maintain metanorma-plugin-lutaml, but I do maintain mn-requirements, and if I remove the testing dependency on metanorma-standoc, there is nothing left to test within the gem. The gem outputs are uninterpretable and unusable outside the context of standoc.
Similarly, I cannot test collections (under metanorma) unless I test them in an existing flavour (ISO).
We have been through this already in September, and determined that moving all the testing dependencies around was not worth it; I moved the mn-requirements to standoc on September 5, and moved them back on September 23.
Alex and I have already discussed this, and agreed that it is not necessary to remove the testing dependencies.
Right now the "release" vs "rake" workflows are separate, which means that if a version is tagged, it is immediately released without testing. This means that if the build fails, the broken release is pushed to Rubygems.
I think we should integrate both so that the "release" workflow incorporates the "rake" workflow, such that the release only happens when all tests pass.