Skip to content

0.2.0

Choose a tag to compare

@dmccoystephenson dmccoystephenson released this 29 Oct 01:16
1a3e335

0.2.0

For a server running v0.1.0, this is a drop-in update. Commands, permissions and configuration are unchanged, and usage reporting can still be turned off the same way as before. The only difference is how anonymous usage reports are sent: repeated identical events are now batched instead of sent one by one. A busy server, or another plugin dispatching Faction-Map commands in a loop, can no longer flood the trace server.

Changes

Usage reporting

  • Updated the bundled trace client to 0.7.0 (#12).
  • Repeats of the same event (same name, value and tags) within one minute are counted rather than sent individually. The first is sent immediately, and the rest follow as a single event when the minute ends. That event is tagged coalesced with the number of repeats. Startup reports are never delayed (#12).
  • Memory use stays bounded: at most 256 distinct events are tracked at once, and further new events are dropped silently, just as reports are when the send queue is full (#12).
  • On shutdown, any pending counts are sent before the reporting thread stops (#12).
  • If you analyse the collected usage data, a row tagged coalesced now stands for multiple occurrences. For events without a value, the total is the sum of COALESCE(value, 1) (#12).

Version

v0.1.0 → 0.2.0 — MINOR. Mechanical floor from comparing the two jars: PATCH.
Judgment: The vendored trace client (#12) changes runtime behaviour beyond the added constants. Repeated identical usage events within a 60-second window are now counted locally and sent as one event carrying a new coalesced tag with the repeat count. This is new behaviour and new data sent, which the API diff does not show, so it warrants minor. It is not major: commands, permissions, config keys, the usage-reporting opt-outs and on-disk files are unchanged, and startup events are still sent immediately.

  • no interface or storage difference observed between the jars
Java API changes (informational — nothing depends on this plugin)
  • com.dansplugins.factionmap.trace.TraceClient: added public static final int MAX_COALESCED_EVENTS;
  • com.dansplugins.factionmap.trace.TraceClient: added public static final java.lang.String COALESCED_TAG;
  • com.dansplugins.factionmap.trace.TraceClient: added public static final long COALESCE_WINDOW_MS;

Verification

Verified on a real Spigot server before publication; this release carries the exact jar that was verified.

  • boot gate run: booted twice on a fresh Spigot server running Minecraft 1.21.11 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 26.2 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 26.3 (11 assertions passed).
  • save-compatibility gate run: data written by v0.1.0 was loaded by this release across two restarts with nothing lost (16 assertions passed).

Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.


drafted by Claude on behalf of Daniel Stephenson