Skip to content

Rebrand to "Amecs Core" #25

@Siphalor

Description

@Siphalor

Rationale

The name Amecs' API was inspired by Fabric's choice of naming their core modding utility libraries "API".

It didn't take long for me to regret the naming since the naming is gramtically incoherent (Amecs API vs. Amecs' API) and generally doesn't describe the difference between both parts of the projects well enough.

Amecs' API contains the core functionality that people think of when using Amecs (the keybinding modifiers).
Alongside it contains a bunch of useful utilities for custom keybindings, like descriptions, the ability to bind mouse scrolls to keybindings and "priority" keybindings that fire before any processing.

Amecs on the other hand only adds some user facing functionality, the search bar in the keybindings list and a bunch of extra utility keybindings that the base game is missing.

Effects

  • the repository, the user facing mod name and the maven coordinates will be renamed.
  • the mod ID will be changed to amecs-core and the Java package to de.siphalor.amecs.core.(api|impl).

While the former shouldn't cause many problems, the latter changes would break compatibility with existing dependent mods.

Graceful migration

For the migration period, probably something about a year, Amecs Core should remain under the mod ID amecsapi, but will ship a jij-ed mod with the ID amecs-core.

The main code of Amecs Core will remain in the main amecsapi jar as this allows Fabric Loader to correctly replace older versions of Amecs API with Amecs Core.

The existing classes in the api package should all be deprecated, new wrapper APIs will be created in the Amecs Core jij-ed mod.
These should be the way forward for dependent mods.

The existing amecsapi classes may start emitting warnings during some point of the migration.

To-dos for dependent mods

  • Change the maven coordinates, the change will be announced using Maven relocation so that hopefully everyone notices it.
  • Replace amecsapi with amecs-core inside the depends section of your fabric.mod.json
  • If you're having a breaking relationship with Amecs Core, add it alongside amecsapi in the breaks section
  • Migrate to using the Java classes in the new package.

To-dos for this project

  • Rename the user-facing mod names
  • Create the jij-ed amecs-core pseudo-mod with the new package
  • Add documentation about the migration in the README and a separate file explaining the details
  • Change the Maven coordinates with a Maven relocation linking to the documentation
  • Create a follow-up issue for completing the migration when the graceful migration period is over

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions