metanorma / metanorma-plugin-glossarist

Glossarist plugin for Metanorma
BSD 2-Clause "Simplified" License
1 stars 0 forks source link

GHA: Release of version should always pass tests #8

Closed ronaldtse closed 1 year ago

ronaldtse commented 1 year ago

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.

CAMOBAP commented 1 year ago

Need to propagate this change for other repos

ronaldtse commented 1 year ago

Thanks @CAMOBAP ! Please feel free to close this once done.

CAMOBAP commented 1 year ago

All repos' workflows will be updated in the scope of https://github.com/metanorma/metanorma-cli/issues/273

opoudjis commented 1 year ago

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.

ronaldtse commented 1 year ago

@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".

opoudjis commented 1 year ago
ronaldtse commented 1 year ago

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...

opoudjis commented 1 year ago

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.