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

ogma-core: Reimplement DB parser using JSON Spec parser. Refs #122. #124

Merged
merged 6 commits into from
Jan 25, 2024

Conversation

ivanperez-keera
Copy link
Member

Replace the ad hoc DB parser with a parser based on the generic JSON parser, as prescribed in the solution proposed for #122.

…. Refs #122.

Not all kinds of input files that use the JSON parsing library will
provide all information. In some, information is implicit or simply not
available, yet we should be able to deal with such files.

This commit modifies the JSON spec parsing library so that some fields
can be optional. In general, we assume we'll still have the essential
fields (requirements, IDs, specs), but not all auxiliary information.
A prior commit has modified the JSON Spec parsing library to make some
fields in input JSON files optional. This will make the library more
versatile.

This commit modifies the existing modules that use the JSON parsing
library to use the new interface with optional types for some JSON
Format spec fields. The extensional behavior of these modules does not
change, compared to their behavior prior to the modification of the JSON
Format Spec definition to make some fields optional.
The JSON parsing functions currently used by ogma-core to parse
requirement DBs are very specific to the formats supported.

This commit replaces the existing FRET DB parser and converter by one
that is based on the new generic JSON-based parsing library. The old
module implementing the ad hoc converter, as well as the dependency on
the ad hoc parser, are removed.
The library ogma-language-fret-reqs is no longer needed, since its
functions have been generalized in other libraries. Therefore, this
library can be completely removed.
@ivanperez-keera ivanperez-keera marked this pull request as ready for review January 24, 2024 23:03
@ivanperez-keera
Copy link
Member Author

Change Manager: The function decode is imported but not really used in the code. It is necessary to review the implementation to minimize the introduction of technical debt (even if, extensionally, it works).

@ivanperez-keera
Copy link
Member Author

Implementor: Fix implemented, review requested.

@ivanperez-keera
Copy link
Member Author

Change Manager: Verified that:

  • Solution is implemented:
    • The code proposed compiles passes the tests. Details:
      Docker image:
      FROM ubuntu:trusty
      
      RUN apt-get update
      
      RUN apt-get install --yes software-properties-common
      RUN add-apt-repository ppa:hvr/ghc
      RUN apt-get update
      
      RUN apt-get install --yes ghc-8.6.5 cabal-install-2.4
      RUN apt-get install --yes libz-dev
      
      ENV PATH=/opt/ghc/8.6.5/bin:/opt/cabal/2.4/bin:$PWD/.cabal-sandbox/bin:$PATH
      
      RUN cabal update
      RUN cabal v1-sandbox init
      RUN cabal v1-install alex happy
      RUN apt-get install --yes git
      
      # We install the application first and then test it, in case any tests need to
      # run the tool.
      CMD git clone $REPO && \
          cd $NAME && \
          git checkout $COMMIT && \
          cd .. && \
          cabal v1-install $NAME/$PAT**/ --enable-tests && \
          cabal v1-install $NAME/$PAT**/ --enable-tests --run-tests -j1
      Command:
      $ docker run -e "REPO=https://github.com/NASA/ogma" -e "NAME=ogma" -e PAT="ogma-" -e "COMMIT=a590ae61f83e2a91fbbd4b5212caa228c3c0cf07" -it ogma-test
    • The solution proposed fixes the issues described. Details:
      Not applicable (not a bug). The tests above run the parser modified as part of this PR on a test file.
  • Implementation is documented. Details:
    No changes needed.
  • Change history is clear.
  • Commit messages are clear.
  • Changelogs are updated.
  • Examples are updated. Details:
    No examples affected.
  • Required version bumps are evaluated. Details:
    Bump needed (libraries disappear).

@ivanperez-keera ivanperez-keera merged commit 713d0b8 into develop Jan 25, 2024
@ivanperez-keera ivanperez-keera deleted the develop-json-db branch January 25, 2024 00:42
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

Successfully merging this pull request may close these issues.

1 participant