Skip to content

Add new daffodilPlugin and daffodilBin ModuleID implicit enrichments#147

Merged
stevedlawrence merged 1 commit intoapache:mainfrom
stevedlawrence:daffodil-146-module-id-functions
Jan 6, 2026
Merged

Add new daffodilPlugin and daffodilBin ModuleID implicit enrichments#147
stevedlawrence merged 1 commit intoapache:mainfrom
stevedlawrence:daffodil-146-module-id-functions

Conversation

@stevedlawrence
Copy link
Member

This adds two new implicit enrichments to ModuleId, which allows projects to more easily specify dependencies to Daffodil plugins or saved parsers without needing to know the details of how to reference them (e.g. Artifacts, classifiers, types, extensions).

For example, depending on a plugin and saved parser now looks like this:

libraryDependences ++= Seq(
  "org.example" % "dfdl-plugin" % "1.0.0" daffodilPlugin(daffodilVersion.value),
  "org.example" % "dfdl-fmt" % "1.0.0"  daffodilBin(daffodilVersion.value)
)

This causes SBT to download the the specified plugin and saved parser, allowing for easy testing or creationg of relase bundles.

Note that this also removes the daffodilPluginDependences setting--the daffodilPlugin enrichment provides the same core functionality.

Also updates the cross-version-03 testto use the new enrichments. A new "bundle" project is added to the test to depend on saved parsers and show how to copy the plugin and parsers to a directory. This mimicks one possible way to automate creating releases of pre-compiled artifacts.

Closes #146

@stevedlawrence stevedlawrence force-pushed the daffodil-146-module-id-functions branch from 70f7694 to f1bd5c7 Compare December 18, 2025 15:29
Copy link

@jadams-tresys jadams-tresys left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

This will be nice to have. Definitely good to have a more automate-able way to download saved parsers for use in other SBT projects.

Copy link

@olabusayoT olabusayoT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1. Minor typos

README.md Outdated
)
```

This example adds a dependency to a saved parser for dfdm-fmt compatible with

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo dfdl

This adds two new implicit enrichments to ModuleId, which allows
projects to more easily specify dependencies to Daffodil plugins or
saved parsers without needing to know the details of how to reference
them (e.g. Artifacts, classifiers, types, extensions).

For example, depending on a plugin and saved parser now looks like this:

    libraryDependences ++= Seq(
      "org.example" % "dfdl-plugin" % "1.0.0" daffodilPlugin(daffodilVersion.value),
      "org.example" % "dfdl-fmt" % "1.0.0"  daffodilBin(daffodilVersion.value)
    )

This causes SBT to download the the specified plugin and saved parser,
allowing for easy testing or creationg of relase bundles.

Note that this also removes the daffodilPluginDependences setting--the
daffodilPlugin enrichment provides the same core functionality.

Also updates the cross-version-03 testto use the new enrichments. A new
"bundle" project is added to the test to depend on saved parsers and
show how to copy the plugin and parsers to a directory. This mimicks one
possible way to automate creating releases of pre-compiled artifacts.

Closes apache#146
@stevedlawrence stevedlawrence force-pushed the daffodil-146-module-id-functions branch from f1bd5c7 to 5f83d7d Compare January 6, 2026 20:35
@stevedlawrence stevedlawrence merged commit ef87057 into apache:main Jan 6, 2026
7 checks passed
@stevedlawrence stevedlawrence deleted the daffodil-146-module-id-functions branch January 6, 2026 20:50
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.

Add support for getting published daffodilPackageBin artifacts

3 participants