Skip to content

Hard fork process #11735

@kennytv

Description

@kennytv

We have to:

  • Apply all per-file patches (about 800)
  • Apply all feature-based patches (about 30, but REALLY large ones)
  • Publish an initial test build outside the API to fix less obvious issues
  • After fixing issues, push to main and publish initial builds
  • Push paperweight-patcher - see here for exampless
  • Provide a script and info to contributors on how to update their pull requests
  • Do more fixing before exiting experimental builds
  • Non-beta paperweight release

Applying all patches will likely take a few weeks. Make sure to join our Discord for discussion and more fine-grained updates!

See our forum post for more information: https://forums.papermc.io/threads/the-future-of-paper-hard-fork.1451/.
You can also see our previous prep work on here: Repository restructure (view)
Aaand you can see the current update branch here: https://github.com/PaperMC/Paper/tree/dev/hard-fork

For our dev team:

  • clone into dev/hard-fork, set cleanPaperRepo in ~/.gradle/gradle.properties to a pre hard fork 1.21.4 Paper project sources root (Paper-Server/src/main/java)
  • gradlew applyPatches
  • Repeat:
    • gradlew gibWork
    • Tick the entry in the per-file patches issue immediately
    • if it applied correctly, continue, else look at the rejects file and apply the missing hunks
    • open the patched files and see if they compile, if they don't gradlew checkWork to move the file to the old repo; fix up compile issues; press enter (which will copy the files back)
    • git commit --amend in the paper-server/src/vanilla/java dir
  • gradlew rebuildPatches

make sure IJ detected the new git repos:
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions