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]