stevedlawrence commented on a change in pull request #532:
URL: https://github.com/apache/daffodil/pull/532#discussion_r617621051



##########
File path: .github/workflows/main.yml
##########
@@ -25,30 +25,64 @@ jobs:
       matrix:
         java_version: [ 8, 11, 16 ]
         scala_version: [ 2.12.11 ]
-        os: [ 'ubuntu-latest', 'windows-latest' ]
-    env:
-      SBT: sbt -J-Xms1024m -J-Xmx5120m -J-XX:ReservedCodeCacheSize=512m 
-J-XX:MaxMetaspaceSize=1024m ++${{ matrix.scala_version }} coverage
-      SBTNOCOV: sbt -J-Xms1024m -J-Xmx5120m -J-XX:ReservedCodeCacheSize=512m 
-J-XX:MaxMetaspaceSize=1024m ++${{ matrix.scala_version }}
+        os: [ ubuntu-20.04, windows-2019 ]
+        include:
+          - os: ubuntu-20.04
+            shell: bash
+          - os: windows-2019
+            shell: msys2 {0}
 
     runs-on: ${{ matrix.os }}
     defaults:
       run:
-        shell: bash
-
+        shell: ${{ matrix.shell }}
+    env:
+      SBT: sbt -J-Xms1024m -J-Xmx5120m -J-XX:ReservedCodeCacheSize=512m 
-J-XX:MaxMetaspaceSize=1024m ++${{ matrix.scala_version }} coverage
+      SBTNOCOV: sbt -J-Xms1024m -J-Xmx5120m -J-XX:ReservedCodeCacheSize=512m 
-J-XX:MaxMetaspaceSize=1024m ++${{ matrix.scala_version }}
     steps:
 
       ############################################################
       # Setup
       ############################################################
 
-      - name: Checkout Repository
-        uses: actions/[email protected]
+      - name: Install Dependencies (Linux)
+        if: runner.os == 'Linux'
+        run: sudo apt-get install -y libmxml-dev
+
+      - name: Install Dependencies (Windows)
+        if: runner.os == 'Windows'
+        uses: msys2/setup-msys2@v2
+        with:
+          install: gcc libargp-devel make pkgconf

Review comment:
       As to libargb being widely distributed, I dont' think that matters to 
ASF policy. The [license page](https://www.apache.org/legal/resolved.html) says 
the following about dependencies to components with restricted licenses:
   
   > Apache projects can rely on components under prohibited licenses if the 
component is only needed for optional features. When doing so, a project shall 
provide the user with instructions on how to obtain and install the 
non-included work. Optional means that the component is not required for 
standard use of the product or for the product to achieve a desirable level of 
quality. The question to ask yourself in this situation is:
   >
   > "Will the majority of users want to use my product without adding the 
optional components?"
   
   So we just need to answer this question.
   
   From my perspective, if we generate code, I would think most users would 
expect that code to compile to the daffodil/daffodil.exe binary and then use 
that binary, even if libargp weren't installed. If a user doesn't have that 
installed, I suspect right now compilation will fail?
   
   Perhaps if we could split things up so we don't build the CLI by default, I 
think that makes it more clear that the CLI is not required and not expected to 
be used, and that additional actions are required. I would say by default, 
tests shouldn't fail if the dependency isn't installed unless the user wants to 
explicitly enable this feature.
   
   I would also argue that if we truly don't expect users to use the CLI, then 
we don't need all the capabilities that libargp provides. Short options that 
something like getopt provides seems reasonable from a functionality 
perspective.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to