Skip to content

Adventure 5.0Β #1202

Open
Open
@kezz

Description

@kezz

We're coming up to 5 years since the initial release of Adventure 4.0 and it's about time for us to think about a new major version release to Adventure 5.0. This issue documents our goals for a 5.0 update, as well as clarifying what our non-goals (i.e. things that we do not want to do).

Goals

  • Cleaner codebase with a modern Java version. For reference, we currently run on Java 8. We will likely bump to the latest LTS version of Java at the time of Adventure 5.0's release.
  • Removal of the many deprecated methods we've been stuck with over the years. This includes old Minecraft features that have reasonable modern replacements.
  • Clean up of the API to remove duplicated methods that do the same thing, e.g. component constructor methods. These will require a recompile as ABI/API breaking, open for discussion on this.
  • A seamless update with zero code changes for developers not using deprecated methods.
  • Remove the extra-kotlin module. It doesn't follow good Kotlin practices and tying it to our monorepo means we can't easily version it to follow Kotlin releases and updates. It should, if we intend to maintain a Kotlin extra module, be split out into a new repo with independent versioning that can follow Kotlin releases.

Non-goals

  • Changing the package. We don't want to do any giant changes so we're aiming for a seamless update for those not using deprecated code.
  • Renaming things. We've already done all the renaming that we could want already with said methods being deprecated for a long time.
  • A complicated update for developers. We want a migration to be as smooth as possible for developers, only requiring the removal of deprecated methods and potentially a recompile.
  • Removing support for old Minecraft versions. If there are replacements that can reasonably be converted behind the scenes then I'm happy for us to remove said features (e.g. old vs new translation arguments), but otherwise we may be keeping some of these deprecations around if people are using them. Open to discussion though.
  • Staying on Adventure 5 for another half a decade. I'd like us to do more regular major version changes if we need to - keeping stuff around for as long as we have done already is probably a mistake.
  • Removing the legacy serializer. Despite it being recommended that you do not use legacy serialisation, we do not intend to use it as it is still useful for certain contexts that do not support components or for migrating legacy text.

What's next?

Please let me know your thoughts, even if it's a simple thumbs-up react and moving on. At this stage nothing is committed and we are open to any changes, additions, things you want to break but haven't had the balls to suggest, etc. Our current timeline would be to aim to release Adventure 5.0 with the next "major" Minecraft release (i.e. 1.22). If we don't have any changes to make within the next few weeks we will begin work on Adventure 5.0!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions