diff --git a/.github/dependabot.yml b/.github/dependabot.yml index e269a7ce..4d7bafba 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -26,6 +26,9 @@ updates: schedule: interval: "weekly" target-branch: "dev" + labels: + - "dependencies" + - "build:patch" registries: - magemonkey-releases - magemonkey-snapshots diff --git a/.github/workflows/devbuild.yml b/.github/workflows/devbuild.yml index aca87b4a..cca26908 100644 --- a/.github/workflows/devbuild.yml +++ b/.github/workflows/devbuild.yml @@ -1,16 +1,28 @@ name: Dev Build +# Weekly X.Y.Z-SNAPSHOT build of dev, where X.Y.Z is the next release (see release.yml). +# Skipped when nothing was committed that week; run it by hand to publish one sooner. on: - push: - branches: [ dev ] - paths: [ '**/src/**' ] + schedule: + - cron: '17 12 * * 1' # Mondays 12:17 UTC + workflow_dispatch: + inputs: + dry_run: + description: 'Only compute and print the version' + type: boolean + default: false + +permissions: + contents: write + pull-requests: read jobs: deploy: - uses: magemonkeystudio/.github/.github/workflows/reusable-build.yml@main + uses: magemonkeystudio/.github/.github/workflows/reusable-semver-build.yml@main secrets: inherit with: - is_dev: true + mode: dev + dry_run: ${{ inputs.dry_run || false }} maven_args: '-DskipNms' java_version: '25' artifact_filter: 'codex' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0a339b5d..6be068e1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,16 +1,30 @@ name: Release Build +# Monthly X.Y.Z release of dev. The bump is the highest build:major/minor/patch label among +# the PRs merged since the last release. Tags the release, publishes it, creates a +# GitHub release and fast-forwards main to it. Skipped when nothing changed. on: - push: - branches: [ main ] - paths: [ '**/src/**' ] + schedule: + - cron: '23 13 1 * *' # 1st of the month 13:23 UTC, before Fabled and Divinity + workflow_dispatch: + inputs: + dry_run: + description: 'Only compute and print the version' + type: boolean + default: false + +permissions: + contents: write + pull-requests: read jobs: deploy: - uses: magemonkeystudio/.github/.github/workflows/reusable-build.yml@main + uses: magemonkeystudio/.github/.github/workflows/reusable-semver-build.yml@main secrets: inherit with: - is_dev: false + mode: release + release_branch: main + dry_run: ${{ inputs.dry_run || false }} build_spigot: true java_version: '25' artifact_filter: 'codex' diff --git a/.github/workflows/semver-label.yml b/.github/workflows/semver-label.yml new file mode 100644 index 00000000..d8a7c32e --- /dev/null +++ b/.github/workflows/semver-label.yml @@ -0,0 +1,11 @@ +name: Semver Label + +# Every PR into dev needs exactly one of: build:major, build:minor, build:patch +on: + pull_request: + types: [ opened, reopened, labeled, unlabeled, synchronize ] + branches: [ dev ] + +jobs: + label: + uses: magemonkeystudio/.github/.github/workflows/reusable-semver-label.yml@main diff --git a/.gitignore b/.gitignore index 552cb86f..398664ef 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ settings.xml toolchains.xml log.txt logs/ -**/build/*.jar \ No newline at end of file +**/build/*.jar +.flattened-pom.xml diff --git a/README.md b/README.md index 8c926644..99747e16 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,15 @@ -[![Build](https://github.com/magemonkeystudios/codex/actions/workflows/release.yml/badge.svg?branch=main)](https://repo.travja.dev/releases/studio/magemonkey/codex/1.2.0-R0.7-SNAPSHOT) -[![Build](https://github.com/magemonkeystudios/codex/actions/workflows/devbuild.yml/badge.svg?branch=dev)](https://repo.travja.dev/snapshots/studio/magemonkey/codex/1.2.0-R0.7-SNAPSHOT) +[![Release](https://img.shields.io/github/v/release/magemonkeystudio/codex?label=release)](https://github.com/magemonkeystudio/codex/releases/latest) +[![Release Build](https://github.com/magemonkeystudio/codex/actions/workflows/release.yml/badge.svg?branch=dev)](https://github.com/magemonkeystudio/codex/actions/workflows/release.yml) +[![Dev](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Frepo.travja.dev%2Fsnapshots%2Fstudio%2Fmagemonkey%2Fcodex%2Fmaven-metadata.xml&strategy=highestVersion&label=dev)](https://repo.travja.dev/#/snapshots/studio/magemonkey/codex) +[![Dev Build](https://github.com/magemonkeystudio/codex/actions/workflows/devbuild.yml/badge.svg?branch=dev)](https://github.com/magemonkeystudio/codex/actions/workflows/devbuild.yml) [![Discord](https://dcbadge.limes.pink/api/server/mQrkW4htUA?style=flat)](https://discord.gg/mQrkW4htUA) # Codex (Formerly ProMCCore) If you wish to use Codex as a dependency in your projects, Codex is available through our repository at [repo.travja.dev](https://repo.travja.dev). +Use the latest release version shown above, or `X.Y.Z-SNAPSHOT` (the next release) for the weekly dev build. + ```xml magemonkey-snapshots @@ -15,7 +19,7 @@ If you wish to use Codex as a dependency in your projects, Codex is available th studio.magemonkey codex - 1.2.0-R0.7-SNAPSHOT + VERSION ``` diff --git a/codex-api/pom.xml b/codex-api/pom.xml index 5e36457d..f1b7ae51 100644 --- a/codex-api/pom.xml +++ b/codex-api/pom.xml @@ -6,7 +6,7 @@ studio.magemonkey codex-parent - 1.2.0-R0.8-SNAPSHOT + ${revision}${changelist} codex-api diff --git a/codex-api/src/main/java/studio/magemonkey/codex/api/items/providers/ItemsAdderProvider.java b/codex-api/src/main/java/studio/magemonkey/codex/api/items/providers/ItemsAdderProvider.java index 7aae2686..726ce132 100644 --- a/codex-api/src/main/java/studio/magemonkey/codex/api/items/providers/ItemsAdderProvider.java +++ b/codex-api/src/main/java/studio/magemonkey/codex/api/items/providers/ItemsAdderProvider.java @@ -82,7 +82,7 @@ public Category getCategory() { @Override public ItemStack create() { - return this.customStack.getItemStack(); + return this.customStack.getItemStack().clone(); } @Override diff --git a/codex-bungee/pom.xml b/codex-bungee/pom.xml index 5af6f58d..3c7f8268 100644 --- a/codex-bungee/pom.xml +++ b/codex-bungee/pom.xml @@ -6,7 +6,7 @@ studio.magemonkey codex-parent - 1.2.0-R0.8-SNAPSHOT + ${revision}${changelist} codex-bungee diff --git a/codex-core/pom.xml b/codex-core/pom.xml index 05207f5c..dba57ce6 100644 --- a/codex-core/pom.xml +++ b/codex-core/pom.xml @@ -6,7 +6,7 @@ studio.magemonkey codex-parent - 1.2.0-R0.8-SNAPSHOT + ${revision}${changelist} codex-core diff --git a/codex-plugin/pom.xml b/codex-plugin/pom.xml index b2fa4e77..07543edb 100644 --- a/codex-plugin/pom.xml +++ b/codex-plugin/pom.xml @@ -6,7 +6,7 @@ studio.magemonkey codex-parent - 1.2.0-R0.8-SNAPSHOT + ${revision}${changelist} codex diff --git a/doc/README.md b/doc/README.md index 6b250bea..cca58884 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,11 +1,15 @@ -[![Build](https://github.com/magemonkeystudios/codex/actions/workflows/release.yml/badge.svg?branch=main)](https://repo.travja.dev/releases/studio/magemonkey/codex/${project.version}) -[![Build](https://github.com/magemonkeystudios/codex/actions/workflows/devbuild.yml/badge.svg?branch=dev)](https://repo.travja.dev/snapshots/studio/magemonkey/codex/${project.version}) +[![Release](https://img.shields.io/github/v/release/magemonkeystudio/${project.artifactId}?label=release)](https://github.com/magemonkeystudio/${project.artifactId}/releases/latest) +[![Release Build](https://github.com/magemonkeystudio/${project.artifactId}/actions/workflows/release.yml/badge.svg?branch=dev)](https://github.com/magemonkeystudio/${project.artifactId}/actions/workflows/release.yml) +[![Dev](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Frepo.travja.dev%2Fsnapshots%2Fstudio%2Fmagemonkey%2F${project.artifactId}%2Fmaven-metadata.xml&strategy=highestVersion&label=dev)](https://repo.travja.dev/#/snapshots/studio/magemonkey/${project.artifactId}) +[![Dev Build](https://github.com/magemonkeystudio/${project.artifactId}/actions/workflows/devbuild.yml/badge.svg?branch=dev)](https://github.com/magemonkeystudio/${project.artifactId}/actions/workflows/devbuild.yml) [![Discord](https://dcbadge.limes.pink/api/server/mQrkW4htUA?style=flat)](https://discord.gg/mQrkW4htUA) # Codex (Formerly ProMCCore) If you wish to use Codex as a dependency in your projects, Codex is available through our repository at [repo.travja.dev](https://repo.travja.dev). +Use the latest release version shown above, or `X.Y.Z-SNAPSHOT` (the next release) for the weekly dev build. + ```xml magemonkey-snapshots @@ -15,7 +19,7 @@ If you wish to use Codex as a dependency in your projects, Codex is available th ${project.groupId} codex - ${project.version} + VERSION ``` diff --git a/pom.xml b/pom.xml index 935a6969..486f005a 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,10 @@ codex-parent - 1.2.0-R0.8-SNAPSHOT + + ${revision}${changelist} pom CodexParent The core plugin for VoidEdge plugins @@ -24,6 +27,8 @@ + 1.2.0 + -SNAPSHOT ${project.build.directory}/javadoc-delombok @@ -190,6 +195,32 @@ + + + org.codehaus.mojo + flatten-maven-plugin + 1.7.3 + + true + resolveCiFriendliesOnly + + + + flatten + process-resources + + flatten + + + + flatten-clean + clean + + clean + + + +