Package Exports
- @ghost-fvtt/foundry-publish
- @ghost-fvtt/foundry-publish/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@ghost-fvtt/foundry-publish) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Foundry Publish
Foundry Publish is a CLI tool that developers can use to add new versions of their packages for Foundry Virtual Tabletop to the Package Administration.
Usage
You can run Foundry Publish with npx:
npx @ghost-fvtt/foundry-publish [options]Alternatively you can install it globally and then execute it:
npm install -g @ghost-fvtt/foundry-publish
foundry-publish [options]Note: On November 11th, Foundry Staff announced that they are changing how packages are managed (including publishing versions).
From December 6th, the old way will stop working. Foundry Publish already supports the new package administration
interface, but for backwards compatibility, you need to opt into using it. You can do so by providing the
--useNewPackageAdministrationInterface command line flag, or setting the
FVTT_USE_NEW_PACKAGE_ADMINISTRATION_INTERFACE environment variable to true. When using the new flow, the package ID
needs to be the id from the manifest, instead of the numeric ID, which was needed for the legacy flow. For more
details, see the explanation of the options below.
As soon as the new flow has been battle tested, it will become the default in a new major version of Foundry Publish.
Options
In order to use Foundry Publish, you need to provide several parameters. They can be provided either as environment variables or as command line options, with one exception: For security reasons, the password required to authenticate with the Package Administration can only be provided as environment variable. Additionally, a couple of options can also be read from a manifest file.
| Command Line Parameter | Environment Variable | Manifest Property | Description | Required |
|---|---|---|---|---|
--changelogURL |
FVTT_CHANGELOG_URL |
changelog |
The URL of the changelog of the package version being published | No |
--deleteObsoleteVersions |
FVTT_DELETE_OBSOLETE_VERSIONS |
Delete obsolete versions, i.e., all versions with the same compatible core version as the version being published | No | |
--dryRun |
FVTT_DRY_RUN |
Just perform a dry run instead of actually publishing the package | No | |
--headed |
FVTT_HEADED |
Run in headed mode, to be able to see the browser interaction | No | |
--manifestURL |
FVTT_MANIFEST_URL |
manifest |
The URL of the manifest of the package version being published | Yes |
--manifestPath |
FVTT_MANIFEST_PATH |
A path to a manifest file to read information from | No | |
--maximumCoreVersion |
FVTT_MAXIMUM_CORE_VERSION |
compatibility.maximum, |
The maximum version of the core Foundry software which is allowed to use the package | No |
--minimumCoreVersion |
FVTT_MINIMUM_CORE_VERSION |
compatibility.minimum, minimumCoreVersion |
The minimum version of the core Foundry software which is required to use the package | Yes |
--packageID |
FVTT_PACKAGE_ID |
id (only read when using the new flow) |
The ID of the package—use the numeric ID for the legacy flow and the id from the manifest for the new flow |
Yes |
--packageVersion |
FVTT_PACKAGE_VERSION |
version |
The version of the package | Yes |
FVTT_PASSWORD |
The password of the account for accessing the Foundry VTT administration page | Yes | ||
--useNewPackageAdministrationInterface |
FVTT_USE_NEW_PACKAGE_ADMINISTRATION_INTERFACE |
Use the new flow for publishing a package version (requires the package id to be the id from the manifest) |
No | |
--username |
FVTT_USERNAME |
The username of the account for accessing the Foundry VTT administration page (you may need to use the email address) | Yes | |
--verifiedCoreVersion, --compatibleCoreVersion |
FVTT_VERIFIED_CORE_VERSION, FVTT_COMPATIBLE_CORE_VERSION |
compatibility.verified, compatibleCoreVersion |
The maximum version of the core Foundry software for which compatibility of the package has been verified | Yes |
Development
Prerequisites
In order to build this project, recent versions of node and npm are
required. We recommend using the latest lts version of node. If you use nvm
of fnm to manage your node versions, you can simply run
nvm installor
fnm installin the project's root directory.
You also need to install the project's dependencies. To do so, run
npm installBuilding
You can build the project by running
npm run buildAlternatively, you can run
npm run watchto watch for changes and automatically build as necessary.
Contributing
Contributions via pull requests are very welcome. If you find any issues, please report them in the issue tracker.
Licensing
This project uses REUSE to specify the used licenses. Currently, everything is licensed under the MIT license. More information (including the copyright holders) can be found in the individual files.
Acknowledgment
This project is heavily based on eXaminator's foundry-auto-release. Thanks for the great work!