JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 19
  • Score
    100M100P100Q65223F
  • License MIT

A tool to publish packages for Foundry Virtual Tabletop

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

Checks npm downloads Docker pulls REUSE status Ko-fi

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 install

or

fnm install

in the project's root directory.

You also need to install the project's dependencies. To do so, run

npm install

Building

You can build the project by running

npm run build

Alternatively, you can run

npm run watch

to 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!