Compare commits
6 commits
d63a8bd37b
...
8a1d6ef65b
Author | SHA1 | Date | |
---|---|---|---|
8a1d6ef65b | |||
a578cbff0d | |||
|
512728bf30 | ||
|
53b0fb3732 | ||
|
0975561df9 | ||
694641c1da |
18 changed files with 490 additions and 391 deletions
99
.gitea/ISSUE_TEMPLATE/bug_report.yaml
Normal file
99
.gitea/ISSUE_TEMPLATE/bug_report.yaml
Normal file
|
@ -0,0 +1,99 @@
|
|||
# SPDX-FileCopyrightText: 2023 Johannes Loher
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Bug Report
|
||||
about: File a bug report
|
||||
labels: ["bug", "to be confirmed"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Your issue may already have been reported! Please search on the [issue tracker](https://git.f3l.de/dungeonslayers/tickwerk/issues) before submitting a new one.
|
||||
|
||||
Thanks for taking the time to fill out this bug report! In order to make it effective, please provide the following information.
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
## Issue Description
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: What is the behavior that you expected?
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: current
|
||||
attributes:
|
||||
label: Current Behavior
|
||||
description: What is the current behavior, i.e., what happens actually?
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: steps
|
||||
attributes:
|
||||
label: Steps to Reproduce
|
||||
description: What are the steps to reproduce the problem?
|
||||
placeholder: |
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: context
|
||||
attributes:
|
||||
label: Context
|
||||
description: Please provide any additional context that might be helpful, e.g. log messages, screenshots, videos, or exports of problematic scenes or worlds.
|
||||
validations:
|
||||
required: false
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
## Environment Details
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: Which version(s) of Tickwerk are you seeing the problem on?
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: foundry-version
|
||||
attributes:
|
||||
label: Foundry VTT Version
|
||||
description: Which version(s) and build of Foundry VTT are you seeing the problem on?
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: Which operating system are you using? (Windows, OS X, Linux (which distro))
|
||||
placeholder: Windows
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: browser
|
||||
attributes:
|
||||
label: Browser / App
|
||||
description: Are you using a Browser or the native Electron application? (Select all that apply)
|
||||
multiple: true
|
||||
options:
|
||||
- Native Electron App
|
||||
- Chrome
|
||||
- Firefox
|
||||
- Microsoft Edge
|
||||
- Safari
|
||||
- Other
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: modules
|
||||
attributes:
|
||||
label: Relevant Modules
|
||||
description: Please list any other active modules (including their versions) that you think might be relevant.
|
||||
validations:
|
||||
required: false
|
5
.gitea/ISSUE_TEMPLATE/config.yaml
Normal file
5
.gitea/ISSUE_TEMPLATE/config.yaml
Normal file
|
@ -0,0 +1,5 @@
|
|||
# SPDX-FileCopyrightText: 2023 Johannes Loher
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
blank_issues_enabled: false
|
28
.gitea/ISSUE_TEMPLATE/feature_request.yaml
Normal file
28
.gitea/ISSUE_TEMPLATE/feature_request.yaml
Normal file
|
@ -0,0 +1,28 @@
|
|||
# SPDX-FileCopyrightText: 2023 Johannes Loher
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Feature Request
|
||||
description: Submit a feature request
|
||||
labels: ["feature"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Your issue may already have been reported! Please search on the [issue tracker](https://git.f3l.de/dungeonslayers/tickwerk/issues) before submitting a new one.
|
||||
|
||||
In order to submit an effective feature request, please provide the following information.
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: Please describe the proposal in as much detail as you feel is necessary.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: context
|
||||
attributes:
|
||||
label: Context
|
||||
description: Is there anything else you can add about the proposal? You might want to link to related issues here if you haven't already.
|
||||
validations:
|
||||
required: false
|
173
.gitlab-ci.yml
173
.gitlab-ci.yml
|
@ -1,173 +0,0 @@
|
|||
# SPDX-FileCopyrightText: 2021 Johannes Loher
|
||||
# SPDX-FileCopyrightText: 2021 Oliver Rümpelein
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
workflow:
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
|
||||
when: never
|
||||
- if: $CI_COMMIT_BRANCH
|
||||
- if: $CI_COMMIT_TAG
|
||||
|
||||
variables:
|
||||
PACKAGE_NAME: tickwerk
|
||||
PACKAGE_TYPE: module
|
||||
PACKAGE_REGISTRY_URL: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/$PACKAGE_NAME
|
||||
|
||||
stages:
|
||||
- check
|
||||
- build
|
||||
- prepare-release
|
||||
- release
|
||||
- publish
|
||||
|
||||
image: node:lts
|
||||
|
||||
cache: &global_cache
|
||||
paths:
|
||||
- .yarn/cache
|
||||
|
||||
lint:
|
||||
stage: check
|
||||
before_script:
|
||||
- yarn install --immutable
|
||||
script:
|
||||
- yarn lint
|
||||
cache:
|
||||
<<: *global_cache
|
||||
|
||||
reuse:
|
||||
stage: check
|
||||
image:
|
||||
name: fsfe/reuse:latest
|
||||
entrypoint: ['']
|
||||
script:
|
||||
- reuse lint
|
||||
|
||||
commitlint:
|
||||
stage: check
|
||||
before_script:
|
||||
- yarn install --immutable
|
||||
script:
|
||||
- yarn run commitlint --from $CI_MERGE_REQUEST_DIFF_BASE_SHA
|
||||
rules:
|
||||
- if: "$CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_DIFF_BASE_SHA"
|
||||
|
||||
build:
|
||||
stage: build
|
||||
before_script:
|
||||
- yarn install --immutable
|
||||
- if [[ ! -z ${CI_COMMIT_TAG+x} ]]; then export NODE_ENV=production; fi
|
||||
script:
|
||||
- yarn build
|
||||
cache:
|
||||
<<: *global_cache
|
||||
artifacts:
|
||||
paths:
|
||||
- dist
|
||||
expire_in: 1 week
|
||||
|
||||
publish-artifacts:
|
||||
stage: prepare-release
|
||||
image: alpine:latest
|
||||
before_script:
|
||||
- apk update
|
||||
- apk add zip curl
|
||||
script: |
|
||||
cd dist
|
||||
zip -r ../$PACKAGE_TYPE.zip .
|
||||
cd ..
|
||||
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file $PACKAGE_TYPE.zip "$PACKAGE_REGISTRY_URL/$CI_COMMIT_TAG/$PACKAGE_TYPE.zip"
|
||||
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file dist/$PACKAGE_TYPE.json "$PACKAGE_REGISTRY_URL/$CI_COMMIT_TAG/$PACKAGE_TYPE.json"
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/'
|
||||
|
||||
changelog:
|
||||
stage: prepare-release
|
||||
before_script:
|
||||
- yarn install --immutable
|
||||
script:
|
||||
- yarn changelog
|
||||
cache:
|
||||
<<: *global_cache
|
||||
artifacts:
|
||||
paths:
|
||||
- CHANGELOG.md
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/'
|
||||
|
||||
.release-template: &release-template
|
||||
stage: release
|
||||
before_script:
|
||||
- yarn install
|
||||
- apt update
|
||||
- apt install --yes jq
|
||||
- REPOSITORY_URL=$(echo "${CI_REPOSITORY_URL}" | sed -e "s|gitlab-ci-token:.*@|${RELEASE_TOKEN}:${RELEASE_TOKEN_SECRET}@|g")
|
||||
- git remote set-url origin $REPOSITORY_URL
|
||||
- git config user.name $GITLAB_USER_LOGIN
|
||||
- git config user.email $GITLAB_USER_EMAIL
|
||||
- git branch -D ci-processing || true
|
||||
- git checkout -b ci-processing
|
||||
cache:
|
||||
<<: *global_cache
|
||||
script: |
|
||||
yarn bump-version --release=${RELEASE_TYPE}
|
||||
RELEASE_VERSION=$(jq -r '.version' < package.json)
|
||||
git add package.json module.json
|
||||
git --no-pager diff
|
||||
git commit -m "chore(release): ${RELEASE_VERSION}"
|
||||
git tag -f ${RELEASE_VERSION}
|
||||
git push origin ci-processing:${CI_BUILD_REF_NAME} -o ci.skip
|
||||
git push origin ${RELEASE_VERSION}
|
||||
only:
|
||||
- main
|
||||
when: manual
|
||||
|
||||
release-patch:
|
||||
variables:
|
||||
RELEASE_TYPE: patch
|
||||
<<: *release-template
|
||||
|
||||
release-minor:
|
||||
variables:
|
||||
RELEASE_TYPE: minor
|
||||
<<: *release-template
|
||||
|
||||
release-major:
|
||||
variables:
|
||||
RELEASE_TYPE: major
|
||||
<<: *release-template
|
||||
|
||||
release:
|
||||
stage: release
|
||||
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
||||
script:
|
||||
- echo 'release job'
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/'
|
||||
release:
|
||||
tag_name: $CI_COMMIT_TAG
|
||||
description: './CHANGELOG.md'
|
||||
assets:
|
||||
links:
|
||||
- name: '$PACKAGE_TYPE.zip'
|
||||
url: '$PACKAGE_REGISTRY_URL/$CI_COMMIT_TAG/$PACKAGE_TYPE.zip'
|
||||
filepath: /$PACKAGE_TYPE.zip
|
||||
link_type: package
|
||||
- name: '$PACKAGE_TYPE.json'
|
||||
url: '$PACKAGE_REGISTRY_URL/$CI_COMMIT_TAG/$PACKAGE_TYPE.json'
|
||||
filepath: /$PACKAGE_TYPE.json
|
||||
link_type: other
|
||||
|
||||
publish-latest-manifest:
|
||||
stage: publish
|
||||
image: alpine:latest
|
||||
before_script:
|
||||
- apk update
|
||||
- apk add zip curl
|
||||
script: |
|
||||
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file dist/$PACKAGE_TYPE.json "$PACKAGE_REGISTRY_URL/latest/$PACKAGE_TYPE.json"
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/'
|
|
@ -1,48 +0,0 @@
|
|||
Your issue may already have been reported! Please search on the issue tracker (https://git.f3l.de/dungeonslayers/tickwerk/-/issues) before submitting a new one.
|
||||
|
||||
Thanks for taking the time to fill out this bug report! In order to make it effective, please provide the following information.
|
||||
|
||||
# Issue Description
|
||||
|
||||
## Expected Behavior
|
||||
|
||||
(What is the behavior that you expected?)
|
||||
|
||||
## Current Behavior
|
||||
|
||||
(What is the current behavior, i.e., what happens actually?)
|
||||
|
||||
## Steps to Reproduce
|
||||
|
||||
(What are the steps to reproduce the problem?)
|
||||
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
|
||||
## Context
|
||||
|
||||
(Please provide any additional context that might be helpful, e.g. log messages,
|
||||
screenshots, videos, or exports of problematic scenes or worlds.)
|
||||
|
||||
# Environment Details
|
||||
|
||||
## Version
|
||||
|
||||
(Which version(s) of Tickwerk are you seeing the problem on?)
|
||||
|
||||
## Foundry VTT Version
|
||||
|
||||
(Which version(s) and build of Foundry VTT are you seeing the problem on?)
|
||||
|
||||
## Operating System
|
||||
|
||||
(Which operating system are you using? (Windows, OS X, Linux (which distro)))
|
||||
|
||||
## Browser / App
|
||||
|
||||
(Are you using a Browser or the native Electron application?)
|
||||
|
||||
## Relevant Modules
|
||||
|
||||
(Please list any active modules (including their versions) that you think might be relevant.)
|
|
@ -1,3 +0,0 @@
|
|||
SPDX-FileCopyrightText: 2022 Johannes Loher
|
||||
|
||||
SPDX-License-Identifier: MIT
|
|
@ -1,11 +0,0 @@
|
|||
Your issue may already have been reported! Please search on the issue tracker (https://git.f3l.de/dungeonslayers/tickwerk/-/issues) before submitting a new one.
|
||||
|
||||
In order to submit an effective feature request, please provide the following information.
|
||||
|
||||
# Description
|
||||
|
||||
(Please describe the proposal in as much detail as you feel is necessary.)
|
||||
|
||||
# Context
|
||||
|
||||
(Is there anything else you can add about the proposal? You might want to link to related issues here if you haven't already.)
|
|
@ -1,3 +0,0 @@
|
|||
SPDX-FileCopyrightText: 2022 Johannes Loher
|
||||
|
||||
SPDX-License-Identifier: MIT
|
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
|
@ -5,7 +5,7 @@
|
|||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "pwa-chrome",
|
||||
"type": "chrome",
|
||||
"request": "launch",
|
||||
"runtimeExecutable": "/usr/bin/chromium",
|
||||
"name": "Launch Chrome against localhost",
|
||||
|
|
6
.vscode/settings.json
vendored
6
.vscode/settings.json
vendored
|
@ -5,10 +5,4 @@
|
|||
},
|
||||
"eslint.nodePath": ".yarn/sdks",
|
||||
"prettier.prettierPath": ".yarn/sdks/prettier/index.js",
|
||||
"importSorter.generalConfiguration.sortOnBeforeSave": true,
|
||||
"importSorter.importStringConfiguration.maximumNumberOfImportExpressionsPerLine.type": "newLineEachExpressionAfterCountLimitExceptIfOnlyOne",
|
||||
"importSorter.importStringConfiguration.maximumNumberOfImportExpressionsPerLine.count": 120,
|
||||
"importSorter.importStringConfiguration.tabSize": 2,
|
||||
"importSorter.importStringConfiguration.quoteMark": "single",
|
||||
"importSorter.importStringConfiguration.trailingComma": "multiLine"
|
||||
}
|
||||
|
|
45
.woodpecker/checks.yaml
Normal file
45
.woodpecker/checks.yaml
Normal file
|
@ -0,0 +1,45 @@
|
|||
# SPDX-FileCopyrightText: 2023 Johannes Loher
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
$schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/master/pipeline/schema/schema.json
|
||||
|
||||
variables:
|
||||
- &node_image node:lts
|
||||
|
||||
when:
|
||||
- event: push
|
||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||
- event: pull_request
|
||||
- event: tag
|
||||
- event: manual
|
||||
|
||||
steps:
|
||||
install:
|
||||
image: *node_image
|
||||
commands:
|
||||
- yarn install --immutable
|
||||
lint:
|
||||
group: check
|
||||
image: *node_image
|
||||
commands:
|
||||
- yarn lint
|
||||
reuse:
|
||||
group: check
|
||||
image: fsfe/reuse:latest
|
||||
commands:
|
||||
- reuse lint
|
||||
commitlint:
|
||||
group: check
|
||||
image: *node_image
|
||||
commands:
|
||||
- git fetch
|
||||
- yarn run commitlint --from origin/${CI_COMMIT_TARGET_BRANCH}
|
||||
when:
|
||||
event: pull_request
|
||||
build:
|
||||
group: build
|
||||
image: *node_image
|
||||
commands:
|
||||
- export APPDATA=$(pwd)
|
||||
- yarn build
|
92
.woodpecker/publish.yaml
Normal file
92
.woodpecker/publish.yaml
Normal file
|
@ -0,0 +1,92 @@
|
|||
# SPDX-FileCopyrightText: 2023 Johannes Loher
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
$schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/master/pipeline/schema/schema.json
|
||||
|
||||
variables:
|
||||
- &node_image node:lts
|
||||
|
||||
when:
|
||||
event: tag
|
||||
evaluate: CI_COMMIT_TAG matches "^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(-[0-9]+)?$"
|
||||
|
||||
depends_on:
|
||||
- checks
|
||||
|
||||
steps:
|
||||
install:
|
||||
image: *node_image
|
||||
commands:
|
||||
- yarn install --immutable
|
||||
build:
|
||||
image: *node_image
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
commands:
|
||||
- export APPDATA=$(pwd)
|
||||
- yarn build
|
||||
package:
|
||||
group: prepare-release
|
||||
image: alpine:latest
|
||||
commands:
|
||||
- apk update
|
||||
- apk add zip curl
|
||||
- mv dist ${CI_REPO_NAME}
|
||||
- zip -r ${CI_REPO_NAME}.zip ${CI_REPO_NAME}/*
|
||||
changelog:
|
||||
group: prepare-release
|
||||
image: *node_image
|
||||
commands:
|
||||
- yarn changelog
|
||||
choose-latest-channel:
|
||||
group: prepare-release
|
||||
image: alpine:latest
|
||||
commands:
|
||||
- echo latest > .RELEASE_CHANNEL
|
||||
when:
|
||||
evaluate: CI_COMMIT_TAG matches "^[0-9]+\\\\.[0-9]+\\\\.[0-9]+$"
|
||||
choose-beta-channel:
|
||||
group: prepare-release
|
||||
image: alpine:latest
|
||||
commands:
|
||||
- echo beta > .RELEASE_CHANNEL
|
||||
when:
|
||||
evaluate: CI_COMMIT_TAG matches "^[0-9]+\\\\.[0-9]+\\\\.[0-9]+-[0-9]+$"
|
||||
release:
|
||||
image: woodpeckerci/plugin-gitea-release
|
||||
settings:
|
||||
base_url: ${CI_FORGE_URL}
|
||||
title: ${CI_COMMIT_TAG}
|
||||
note: CHANGELOG.md
|
||||
files:
|
||||
- ${CI_REPO_NAME}.zip
|
||||
- ${CI_REPO_NAME}/module.json
|
||||
api_key:
|
||||
from_secret: forge_token
|
||||
publish-manifest:
|
||||
group: publish
|
||||
image: alpine:latest
|
||||
commands:
|
||||
- apk update
|
||||
- apk add curl
|
||||
- export RELEASE_CHANNEL=$(cat .RELEASE_CHANNEL)
|
||||
- 'curl --header "Authorization: token $${FORGE_TOKEN}" -X "DELETE" "${CI_FORGE_URL}/api/packages/${CI_REPO_OWNER}/generic/${CI_REPO_NAME}/$${RELEASE_CHANNEL}/module.json"'
|
||||
- 'curl --fail --header "Authorization: token $${FORGE_TOKEN}" --upload-file ${CI_REPO_NAME}/module.json "${CI_FORGE_URL}/api/packages/${CI_REPO_OWNER}/generic/${CI_REPO_NAME}/$${RELEASE_CHANNEL}/module.json"'
|
||||
secrets:
|
||||
- forge_token
|
||||
publish-to-foundry-admin:
|
||||
group: publish
|
||||
image: johannesloher/foundry-publish
|
||||
environment:
|
||||
FVTT_DELETE_OBSOLETE_VERSIONS: 'true'
|
||||
commands:
|
||||
- export FVTT_MANIFEST_PATH=${CI_REPO_NAME}/module.json
|
||||
- export FVTT_MANIFEST_URL=${CI_REPO_URL}/releases/download/${CI_COMMIT_TAG}/module.json
|
||||
- foundry-publish
|
||||
secrets:
|
||||
- fvtt_package_id
|
||||
- fvtt_username
|
||||
- fvtt_password
|
||||
when:
|
||||
evaluate: CI_COMMIT_TAG matches "^[0-9]+\\\\.[0-9]+\\\\.[0-9]+$"
|
41
.woodpecker/release.yaml
Normal file
41
.woodpecker/release.yaml
Normal file
|
@ -0,0 +1,41 @@
|
|||
# SPDX-FileCopyrightText: 2023 Johannes Loher
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
$schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/master/pipeline/schema/schema.json
|
||||
|
||||
variables:
|
||||
- &node_image node:lts
|
||||
|
||||
when:
|
||||
event: manual
|
||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||
|
||||
depends_on:
|
||||
- checks
|
||||
|
||||
steps:
|
||||
install:
|
||||
image: *node_image
|
||||
commands:
|
||||
- yarn install --immutable
|
||||
release:
|
||||
image: *node_image
|
||||
commands:
|
||||
- apt-get update
|
||||
- apt-get install --yes jq
|
||||
- export REPOSITORY_URL=$(echo "${CI_REPO_CLONE_URL}" | sed -e "s|://|://$${FORGE_TOKEN_NAME}:$${FORGE_TOKEN}@|g")
|
||||
- git remote set-url origin $${REPOSITORY_URL}
|
||||
- git config user.name woodpecker[bot]
|
||||
- git config user.email woodpecker[bot]@${CI_SYSTEM_HOST}
|
||||
- yarn bump-version --release=${RELEASE_TYPE}
|
||||
- export RELEASE_VERSION=$(jq -r '.version' < package.json)
|
||||
- git --no-pager diff
|
||||
- git add package.json module.json
|
||||
- 'git commit -m "chore(release): $${RELEASE_VERSION}"'
|
||||
- git tag -f $${RELEASE_VERSION}
|
||||
- git push origin ${CI_COMMIT_BRANCH}
|
||||
- git push origin $${RELEASE_VERSION}
|
||||
secrets:
|
||||
- forge_token_name
|
||||
- forge_token
|
|
@ -7,6 +7,12 @@ SPDX-License-Identifier: MIT
|
|||
|
||||
# Tickwerk
|
||||
|
||||
[![status-badge](https://ci.f3l.de/api/badges/10/status.svg)](https://ci.f3l.de/repos/10)
|
||||
[![REUSE status](https://api.reuse.software/badge/git.f3l.de/dungeonslayers/tickwerk)](https://api.reuse.software/info/git.f3l.de/dungeonslayers/tickwerk)
|
||||
[![Forge installs](https://img.shields.io/badge/dynamic/json?label=Forge%20Installs&query=package.installs&suffix=%25&url=https%3A%2F%2Fforge-vtt.com%2Fapi%2Fbazaar%2Fpackage%2Ftickwerk&colorB=4aa94a)](https://forge-vtt.com/bazaar#package=tickwerk)
|
||||
[![Supported foundry versions](https://img.shields.io/endpoint?url=https://foundryshields.com/version?url=https://git.f3l.de/api/packages/dungeonslayers/generic/tickwerk/latest/module.json)](https://git.f3l.de/dungeonslayers/tickwerk)
|
||||
[![Ko-fi](https://img.shields.io/badge/Ko--fi-ghostfvtt-00B9FE?logo=kofi)](https://ko-fi.com/ghostfvtt)
|
||||
|
||||
A tick based combat system for [Foundry Virtual Tabletop].
|
||||
|
||||
This module adjusts the combat to use ticks instead of rounds for tracking time.
|
||||
|
@ -19,7 +25,7 @@ To install and use the Tickwerk module for Foundry Virtual Tabletop,
|
|||
find it in the list in the **Install Module** dialog on the Setup menu of the
|
||||
application. Alternatively, paste the following Manifest URL in that dialog:
|
||||
|
||||
https://git.f3l.de/api/v4/projects/dungeonslayers%2Ftickwerk/packages/generic/tickwerk/latest/module.json
|
||||
https://git.f3l.de/api/packages/dungeonslayers/generic/tickwerk/latest/module.json
|
||||
|
||||
## Development
|
||||
|
||||
|
|
14
module.json
14
module.json
|
@ -11,11 +11,11 @@
|
|||
}
|
||||
],
|
||||
"url": "https://git.f3l.de/dungeonslayers/tickwerk",
|
||||
"license": "https://git.f3l.de/dungeonslayers/tickwerk/-/raw/1.3.0/LICENSE.md",
|
||||
"readme": "https://git.f3l.de/dungeonslayers/tickwerk/-/raw/1.3.0/README.md",
|
||||
"bugs": "https://git.f3l.de/dungeonslayers/tickwerk/-/issues",
|
||||
"changelog": "https://git.f3l.de/dungeonslayers/tickwerk/-/releases/1.3.0",
|
||||
"version": "1.3.0",
|
||||
"license": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.3.2/LICENSE.md",
|
||||
"readme": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.3.2/README.md",
|
||||
"bugs": "https://git.f3l.de/dungeonslayers/tickwerk/issues",
|
||||
"changelog": "https://git.f3l.de/dungeonslayers/tickwerk/releases/tag/1.3.2",
|
||||
"version": "1.3.2",
|
||||
"compatibility": {
|
||||
"minimum": "10.290",
|
||||
"verified": "10"
|
||||
|
@ -38,7 +38,7 @@
|
|||
"path": "lang/de.json"
|
||||
}
|
||||
],
|
||||
"manifest": "https://git.f3l.de/dungeonslayers/tickwerk/-/releases/permalink/latest/downloads/module.json",
|
||||
"download": "https://git.f3l.de/dungeonslayers/tickwerk/-/releases/1.3.0/downloads/module.zip",
|
||||
"manifest": "https://git.f3l.de/api/packages/dungeonslayers/generic/tickwerk/latest/module.json",
|
||||
"download": "https://git.f3l.de/dungeonslayers/tickwerk/releases/download/1.3.2/tickwerk.zip",
|
||||
"manifestPlusVersion": "1.2.0"
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"private": true,
|
||||
"name": "tickwerk",
|
||||
"description": "A tick based combat system for Foundry Virtual Tabletop",
|
||||
"version": "1.3.0",
|
||||
"version": "1.3.2",
|
||||
"license": "https://git.f3l.de/dungeonslayers/tickwerk#licensing",
|
||||
"homepage": "https://git.f3l.de/dungeonslayers/tickwerk",
|
||||
"repository": {
|
||||
|
@ -10,7 +10,7 @@
|
|||
"url": "https://git.f3l.de/dungeonslayers/tickwerk"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://git.f3l.de/dungeonslayers/tickwerk/-/issues"
|
||||
"url": "https://git.f3l.de/dungeonslayers/tickwerk/issues"
|
||||
},
|
||||
"contributors": [
|
||||
{
|
||||
|
@ -40,7 +40,7 @@
|
|||
"@swc/core": "1.3.62",
|
||||
"conventional-changelog-cli": "2.2.2",
|
||||
"conventional-changelog-conventionalcommits": "5.0.0",
|
||||
"eslint": "8.42.0",
|
||||
"eslint": "8.44.0",
|
||||
"eslint-config-prettier": "8.8.0",
|
||||
"eslint-plugin-prettier": "4.2.1",
|
||||
"fs-extra": "11.1.1",
|
||||
|
|
|
@ -7,15 +7,21 @@ import semver from 'semver';
|
|||
import yargs from 'yargs';
|
||||
import { hideBin } from 'yargs/helpers';
|
||||
|
||||
const repository = 'dungeonslayers/tickwerk';
|
||||
const gitlabURL = 'https://git.f3l.de';
|
||||
const packageType = 'module';
|
||||
const repositoryOwner = process.env.CI_REPO_OWNER;
|
||||
const repositoryName = process.env.CI_REPO_NAME;
|
||||
const repositoryURL = process.env.CI_REPO_LINK;
|
||||
const forgeURL = process.env.CI_FORGE_URL;
|
||||
|
||||
const getLicenseURL = (version) => `${gitlabURL}/${repository}/-/raw/${version}/LICENSE.md`;
|
||||
const getReadmeURL = (version) => `${gitlabURL}/${repository}/-/raw/${version}/README.md`;
|
||||
const getChangelogURL = (version) => `${gitlabURL}/${repository}/-/releases/${version}`;
|
||||
const getDownloadURL = (version) => `${gitlabURL}/${repository}/-/releases/${version}/downloads/module.zip`;
|
||||
const getManifestUrl = (channel) =>
|
||||
`${forgeURL}/api/packages/${repositoryOwner}/generic/${repositoryName}/${channel}/${packageType}.json`;
|
||||
const getDownloadURL = (version) => `${repositoryURL}/releases/download/${version}/${repositoryName}.zip`;
|
||||
const bugsURL = `${repositoryURL}/issues`;
|
||||
const getChangelogURL = (version) => `${repositoryURL}/releases/tag/${version}`;
|
||||
const getReadmeURL = (version) => `${repositoryURL}/raw/tag/${version}/README.md`;
|
||||
const getLicenseURL = (version) => `${repositoryURL}/raw/tag/${version}/LICENSE.md`;
|
||||
|
||||
const manifestPath = './module.json';
|
||||
const manifestPath = `${packageType}.json`;
|
||||
|
||||
/**
|
||||
* Get the contents of the manifest file as object.
|
||||
|
@ -41,6 +47,15 @@ function getTargetVersion(currentVersion, release) {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the channel for a given version.
|
||||
* @param {string} version The version for which to get the channel
|
||||
* @returns {"latest" | "beta"} The channel for the version
|
||||
*/
|
||||
function getChannel(version) {
|
||||
return version.includes('-') ? 'beta' : 'latest';
|
||||
}
|
||||
|
||||
/**
|
||||
* Update version and download URL.
|
||||
* @param {semver.ReleaseType | string} release Either a semver release type or a valid semver version
|
||||
|
@ -66,13 +81,16 @@ function bumpVersion(release) {
|
|||
|
||||
console.log(`Bumping version number to '${targetVersion}'`);
|
||||
packageJson.version = targetVersion;
|
||||
fs.writeJSONSync('package.json', packageJson, { spaces: 2 });
|
||||
manifest.license = getLicenseURL(targetVersion);
|
||||
manifest.readme = getReadmeURL(targetVersion);
|
||||
manifest.changelog = getChangelogURL(targetVersion);
|
||||
fs.writeJSONSync('package.json', packageJson, { spaces: 4 });
|
||||
manifest.version = targetVersion;
|
||||
manifest.url = repositoryURL;
|
||||
manifest.manifest = getManifestUrl(getChannel(targetVersion));
|
||||
manifest.download = getDownloadURL(targetVersion);
|
||||
fs.writeJSONSync(manifestPath, manifest, { spaces: 2 });
|
||||
manifest.bugs = bugsURL;
|
||||
manifest.changelog = getChangelogURL(targetVersion);
|
||||
manifest.readme = getReadmeURL(targetVersion);
|
||||
manifest.license = getLicenseURL(targetVersion);
|
||||
fs.writeJSONSync(manifestPath, manifest, { spaces: 4 });
|
||||
}
|
||||
|
||||
const argv = yargs(hideBin(process.argv)).usage('Usage: $0').option('release', {
|
||||
|
|
81
yarn.lock
81
yarn.lock
|
@ -5,6 +5,13 @@ __metadata:
|
|||
version: 6
|
||||
cacheKey: 8
|
||||
|
||||
"@aashutoshrathi/word-wrap@npm:^1.2.3":
|
||||
version: 1.2.6
|
||||
resolution: "@aashutoshrathi/word-wrap@npm:1.2.6"
|
||||
checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/code-frame@npm:^7.0.0":
|
||||
version: 7.21.4
|
||||
resolution: "@babel/code-frame@npm:7.21.4"
|
||||
|
@ -256,27 +263,27 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/eslintrc@npm:^2.0.3":
|
||||
version: 2.0.3
|
||||
resolution: "@eslint/eslintrc@npm:2.0.3"
|
||||
"@eslint/eslintrc@npm:^2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "@eslint/eslintrc@npm:2.1.0"
|
||||
dependencies:
|
||||
ajv: ^6.12.4
|
||||
debug: ^4.3.2
|
||||
espree: ^9.5.2
|
||||
espree: ^9.6.0
|
||||
globals: ^13.19.0
|
||||
ignore: ^5.2.0
|
||||
import-fresh: ^3.2.1
|
||||
js-yaml: ^4.1.0
|
||||
minimatch: ^3.1.2
|
||||
strip-json-comments: ^3.1.1
|
||||
checksum: ddc51f25f8524d8231db9c9bf03177e503d941a332e8d5ce3b10b09241be4d5584a378a529a27a527586bfbccf3031ae539eb891352033c340b012b4d0c81d92
|
||||
checksum: d5ed0adbe23f6571d8c9bb0ca6edf7618dc6aed4046aa56df7139f65ae7b578874e0d9c796df784c25bda648ceb754b6320277d828c8b004876d7443b8dc018c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/js@npm:8.42.0":
|
||||
version: 8.42.0
|
||||
resolution: "@eslint/js@npm:8.42.0"
|
||||
checksum: 750558843ac458f7da666122083ee05306fc087ecc1e5b21e7e14e23885775af6c55bcc92283dff1862b7b0d8863ec676c0f18c7faf1219c722fe91a8ece56b6
|
||||
"@eslint/js@npm:8.44.0":
|
||||
version: 8.44.0
|
||||
resolution: "@eslint/js@npm:8.44.0"
|
||||
checksum: fc539583226a28f5677356e9f00d2789c34253f076643d2e32888250e509a4e13aafe0880cb2425139051de0f3a48d25bfc5afa96b7304f203b706c17340e3cf
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -704,7 +711,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"acorn@npm:^8.4.1, acorn@npm:^8.8.0":
|
||||
"acorn@npm:^8.4.1":
|
||||
version: 8.8.2
|
||||
resolution: "acorn@npm:8.8.2"
|
||||
bin:
|
||||
|
@ -713,6 +720,15 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"acorn@npm:^8.9.0":
|
||||
version: 8.10.0
|
||||
resolution: "acorn@npm:8.10.0"
|
||||
bin:
|
||||
acorn: bin/acorn
|
||||
checksum: 538ba38af0cc9e5ef983aee196c4b8b4d87c0c94532334fa7e065b2c8a1f85863467bb774231aae91613fcda5e68740c15d97b1967ae3394d20faddddd8af61d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"add-stream@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "add-stream@npm:1.0.0"
|
||||
|
@ -1935,14 +1951,14 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint@npm:8.42.0":
|
||||
version: 8.42.0
|
||||
resolution: "eslint@npm:8.42.0"
|
||||
"eslint@npm:8.44.0":
|
||||
version: 8.44.0
|
||||
resolution: "eslint@npm:8.44.0"
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils": ^4.2.0
|
||||
"@eslint-community/regexpp": ^4.4.0
|
||||
"@eslint/eslintrc": ^2.0.3
|
||||
"@eslint/js": 8.42.0
|
||||
"@eslint/eslintrc": ^2.1.0
|
||||
"@eslint/js": 8.44.0
|
||||
"@humanwhocodes/config-array": ^0.11.10
|
||||
"@humanwhocodes/module-importer": ^1.0.1
|
||||
"@nodelib/fs.walk": ^1.2.8
|
||||
|
@ -1954,7 +1970,7 @@ __metadata:
|
|||
escape-string-regexp: ^4.0.0
|
||||
eslint-scope: ^7.2.0
|
||||
eslint-visitor-keys: ^3.4.1
|
||||
espree: ^9.5.2
|
||||
espree: ^9.6.0
|
||||
esquery: ^1.4.2
|
||||
esutils: ^2.0.2
|
||||
fast-deep-equal: ^3.1.3
|
||||
|
@ -1974,24 +1990,24 @@ __metadata:
|
|||
lodash.merge: ^4.6.2
|
||||
minimatch: ^3.1.2
|
||||
natural-compare: ^1.4.0
|
||||
optionator: ^0.9.1
|
||||
optionator: ^0.9.3
|
||||
strip-ansi: ^6.0.1
|
||||
strip-json-comments: ^3.1.0
|
||||
text-table: ^0.2.0
|
||||
bin:
|
||||
eslint: bin/eslint.js
|
||||
checksum: 07105397b5f2ff4064b983b8971e8c379ec04b1dfcc9d918976b3e00377189000161dac991d82ba14f8759e466091b8c71146f602930ca810c290ee3fcb3faf0
|
||||
checksum: d06309ce4aafb9d27d558c8e5e5aa5cba3bbec3ce8ceccbc7d4b7a35f2b67fd40189159155553270e2e6febeb69bd8a3b60d6241c8f5ddc2ef1702ccbd328501
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"espree@npm:^9.5.2":
|
||||
version: 9.5.2
|
||||
resolution: "espree@npm:9.5.2"
|
||||
"espree@npm:^9.6.0":
|
||||
version: 9.6.0
|
||||
resolution: "espree@npm:9.6.0"
|
||||
dependencies:
|
||||
acorn: ^8.8.0
|
||||
acorn: ^8.9.0
|
||||
acorn-jsx: ^5.3.2
|
||||
eslint-visitor-keys: ^3.4.1
|
||||
checksum: 6506289d6eb26471c0b383ee24fee5c8ae9d61ad540be956b3127be5ce3bf687d2ba6538ee5a86769812c7c552a9d8239e8c4d150f9ea056c6d5cbe8399c03c1
|
||||
checksum: 1287979510efb052a6a97c73067ea5d0a40701b29adde87bbe2d3eb1667e39ca55e8129e20e2517fed3da570150e7ef470585228459a8f3e3755f45007a1c662
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -3793,17 +3809,17 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"optionator@npm:^0.9.1":
|
||||
version: 0.9.1
|
||||
resolution: "optionator@npm:0.9.1"
|
||||
"optionator@npm:^0.9.3":
|
||||
version: 0.9.3
|
||||
resolution: "optionator@npm:0.9.3"
|
||||
dependencies:
|
||||
"@aashutoshrathi/word-wrap": ^1.2.3
|
||||
deep-is: ^0.1.3
|
||||
fast-levenshtein: ^2.0.6
|
||||
levn: ^0.4.1
|
||||
prelude-ls: ^1.2.1
|
||||
type-check: ^0.4.0
|
||||
word-wrap: ^1.2.3
|
||||
checksum: dbc6fa065604b24ea57d734261914e697bd73b69eff7f18e967e8912aa2a40a19a9f599a507fa805be6c13c24c4eae8c71306c239d517d42d4c041c942f508a0
|
||||
checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -5330,7 +5346,7 @@ __metadata:
|
|||
"@swc/core": 1.3.62
|
||||
conventional-changelog-cli: 2.2.2
|
||||
conventional-changelog-conventionalcommits: 5.0.0
|
||||
eslint: 8.42.0
|
||||
eslint: 8.44.0
|
||||
eslint-config-prettier: 8.8.0
|
||||
eslint-plugin-prettier: 4.2.1
|
||||
fs-extra: 11.1.1
|
||||
|
@ -5635,13 +5651,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"word-wrap@npm:^1.2.3":
|
||||
version: 1.2.3
|
||||
resolution: "word-wrap@npm:1.2.3"
|
||||
checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"wordwrap@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "wordwrap@npm:1.0.0"
|
||||
|
|
Loading…
Reference in a new issue