# Release Checklist for Modrinth Use this checklist before uploading a new release to Modrinth. ## Pre-Release Verification ### Build & Code Quality - [ ] Code compiles without errors (`mvn clean package`) - [ ] No critical warnings in compiler output - [ ] All tests pass (if applicable) - [ ] Plugin JAR is created in `target/communitymarket-x.x.x.jar` ### Functional Testing - [ ] Plugin loads without errors on a fresh Paper 1.21+ server - [ ] Economy detection works: - [ ] Scenario A: Vault + EssentialsX → Uses Vault - [ ] Scenario B: Vault only (no economy) → Clear error message, plugin disables - [ ] Scenario C: EssentialsX only (no Vault) → Uses EssentialsX directly - [ ] Scenario D: Neither installed → Clear error message, plugin disables - [ ] `/market` command opens the main menu - [ ] `/cmarket` alias works ### Feature Testing - [ ] **Listings**: Create, browse, purchase, cancel, expire - [ ] **Auctions**: Create, bid, buyout, anti-snipe extension, expire - [ ] **Claim Storage**: Items delivered correctly, claim GUI works - [ ] **Earnings**: Earnings accumulate, withdraw works - [ ] **Admin**: View all, remove listings, cancel auctions, reload config ### Configuration - [ ] Default config.yml has safe values - [ ] Language files (en_US.yml, pt_PT.yml) are complete - [ ] Config reload (`/market admin` → reload) works ### Documentation - [ ] README.md is up to date - [ ] CHANGELOG.md has current version entry - [ ] LICENSE file is present --- ## Modrinth Upload Checklist ### Project Information - [ ] Project name: `CommunityMarket` - [ ] Summary: "A GUI-only marketplace plugin for fixed-price listings and auctions" - [ ] Description: Use content from README.md - [ ] Categories: Economy, Miscellaneous - [ ] Client-side: No (Server-side only) - [ ] Server-side: Required - [ ] License: MIT ### Version Details - [ ] Version number matches pom.xml and CHANGELOG.md - [ ] Version type: Release (or Alpha/Beta if applicable) - [ ] Game versions: 1.21, 1.21.1 (add newer as supported) - [ ] Loaders: Paper, Purpur - [ ] Changelog: Copy from CHANGELOG.md ### Files - [ ] Upload primary JAR: `communitymarket-x.x.x.jar` - [ ] Do NOT upload `original-communitymarket-x.x.x.jar` (doesn't include shaded dependencies) ### Dependencies (Modrinth) - [ ] Mark Vault as optional dependency (if available on Modrinth) - [ ] Mark EssentialsX as optional dependency (if available on Modrinth) ### Gallery (Optional) - [ ] Screenshot of main menu - [ ] Screenshot of browse listings - [ ] Screenshot of create listing flow --- ## Post-Release - [ ] Verify download works correctly - [ ] Test downloaded JAR on a clean server - [ ] Announce release (if applicable) - [ ] Tag release in Git: `git tag -a v1.0.0 -m "Release 1.0.0"` - [ ] Push tag: `git push origin v1.0.0` --- ## Version Naming Convention - **Major.Minor.Patch** (e.g., 1.0.0) - Major: Breaking changes or major feature additions - Minor: New features, backwards compatible - Patch: Bug fixes, small improvements --- ## Quick Commands ```bash # Clean build mvn clean package # Run local test server (if configured) # Place JAR in test-server/plugins/ # Create Git tag git tag -a v1.0.0 -m "Release 1.0.0" git push origin v1.0.0 ```