Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
9b16164
Translation updates (#4027)
FabricMCBot Aug 26, 2024
3fc0e55
Dont invoke ItemGroupEvents.MODIFY_ENTRIES_ALL for the OP tab, when t…
AshyBoxy Aug 26, 2024
2122d82
After Damage Event (#4051)
TheDeathlyCow Aug 26, 2024
f054fb5
Bump version
modmuss50 Aug 26, 2024
3d2379b
Add `c:animal_foods` tag (#4080)
TelepathicGrunt Sep 10, 2024
aa34100
New Crowdin updates (#4059)
FabricMCBot Sep 10, 2024
4053855
Add missing `minecraft:enchantable/vanishing` to `c:enchantables` (#4…
TelepathicGrunt Sep 10, 2024
d38f898
Add TransferVariant.getComponentMap() (#4074)
modmuss50 Sep 10, 2024
427f7cb
Use unix line endings on all files (#4079)
modmuss50 Sep 10, 2024
e521378
Bump version
modmuss50 Sep 10, 2024
d5debae
Modify Enchantment and Fabric Component Map Builder Extensions (#4085)
TheDeathlyCow Sep 23, 2024
9d3173d
New Crowdin updates (#4086)
FabricMCBot Sep 23, 2024
9d22c5f
Create `c:obsidians` block and item tag (#4088)
TelepathicGrunt Sep 23, 2024
c7469b2
Add access to ClientConfigurationNetworkHandler in context (#4097)
Earthcomputer Sep 23, 2024
5253a6d
Add ItemVariant#withComponentChanges and FluidVariant#withComponentCh…
BasiqueEvangelist Sep 23, 2024
d831205
Fix cherry pick issues
modmuss50 Sep 23, 2024
3b9245a
Bump version
modmuss50 Sep 23, 2024
9176687
Quiltify the Fabric API
OroArmor Aug 12, 2024
7100fad
Add core:qsl_base
OroArmor Aug 16, 2024
effa407
Add core:crash_info
OroArmor Aug 16, 2024
87ec422
Add core:lifecycle_events
OroArmor Aug 16, 2024
a2db1df
Add core:networking
OroArmor Sep 27, 2024
66ac4cd
Add core:registry
OroArmor Sep 18, 2025
b306e85
Add core:resource_loader
OroArmor Sep 2, 2024
be8d022
Add block:block_content_registry
OroArmor Sep 1, 2024
705af1c
Add block:block_entity
OroArmor Sep 1, 2024
0ffc64f
Add block:block_extensions
OroArmor Sep 1, 2024
4f71fa3
Add entity:entity_events
OroArmor Sep 27, 2024
c0889dd
Add entity:entity_extensions
OroArmor Sep 27, 2024
5cd4791
Add gui:screen
OroArmor Sep 28, 2024
94acc6e
Add gui:tooltip
OroArmor Sep 28, 2024
0cd96f2
Add item:item_content_registry
OroArmor Sep 15, 2025
857f3b1
Add item:item_setting
OroArmor Sep 15, 2025
c451b93
Add management:client_command
OroArmor Sep 15, 2025
5be9d83
Add management:command
OroArmor Sep 15, 2025
e1f960d
Add rendering:entity_rendering
OroArmor Sep 15, 2025
8e9a97b
Add worldgen:biome
OroArmor Sep 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 2 additions & 3 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
*.java text eol=lf
*.json text eol=lf
*.bat text eol=crlf
* text=auto eol=lf
*.bat text eol=crlf
33 changes: 0 additions & 33 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,39 +33,6 @@ jobs:
name: Maven Local ${{ matrix.java }}
path: /root/.m2/repository/net/fabricmc/

client_test:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-java@v4
with:
distribution: 'microsoft'
java-version: '21'
- name: Run Auto test Client
uses: modmuss50/xvfb-action@v1
with:
run: ./gradlew runProductionAutoTestClient --stacktrace --warning-mode=fail
- uses: actions/upload-artifact@v4
if: always()
with:
name: Test Screenshots
path: run/screenshots

server_test:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-java@v4
with:
distribution: 'microsoft'
java-version: '21'
- run: mkdir run && echo "eula=true" >> run/eula.txt
- run: ./gradlew runProductionAutoTestServer --stacktrace --warning-mode=fail

check_resources:
runs-on: ubuntu-22.04
steps:
Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
options: --user root
steps:
- run: apt update && apt install git -y && git --version
- run: git config --global --add safe.directory /__w/fabric/fabric
- run: git config --global --add safe.directory /__w/quilted-fabric-api/quilted-fabric-api
- uses: actions/checkout@v4
with:
fetch-depth: 0
Expand All @@ -27,10 +27,7 @@ jobs:
MAVEN_URL: ${{ secrets.MAVEN_URL }}
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
CURSEFORGE_API_KEY: ${{ secrets.CURSEFORGE_API_KEY }}
CURSEFORGE_API_KEY: ${{ secrets.CURSEFORGE_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
CHANGELOG: ${{ steps.changelog.outputs.changelog }}
SIGNING_SERVER: ${{ secrets.SIGNING_SERVER }}
SIGNING_PGP_KEY: ${{ secrets.SIGNING_PGP_KEY }}
SIGNING_JAR_KEY: ${{ secrets.SIGNING_JAR_KEY }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,7 @@ $RECYCLE.BIN/

# Mac
.DS_Store

# Files generated by tests
config/
.cache/
17 changes: 17 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
# Contributing

This document outlines best-practices and contributing guidelines to the Quilted Fabric API.

Please keep a CLEAN git history.
There should be one commit per added QSL module along with one commit for the Quiltification.

<!-- By contributing to Quilted Fabric API you agree with the [Developer Certificate of Origin (DCO)][DCO]. -->

## Guide: Pull Requests

Please talk to OroArmor about how to best make a PR!

The CONTRIBUTING.md is still unfinished!

<!-- Fabric Contributing guide:
# Fabric API development guidelines

This document describes the development guidelines for Fabric API. It may be amended at any time. Therefore you should refer to the development guidelines when working on any contributions.
Expand Down Expand Up @@ -437,3 +453,4 @@ The supported values for the `ModuleLifecycle` are:

### Testing
See the Testing section above. Make sure to describe in the pull request body how you tested your code, and include relevant test mod code with your pull request.
-->
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# Quilted Fabric API

Quilted Fabric API is a Quilt reimplementation of the [Fabric API](https://github.com/FabricMC/fabric) on top of the [Quilt Standard Libraries](https://github.com/QuiltMC/quilt-standard-libraries).

The main objective is to aid both players and mod developers with the migration to the [Quilt toolchain](https://quiltmc.org) by allowing Fabric mods who depended on the Fabric API to work seamlessly and by letting Fabric API modules who doesn't yet have a QSL equivalent co-exist with other QSL modules.

While we try our best, **keep in mind that mod compatibility might not be 100%!** If you find any issues specific to Quilted Fabric API, please report them on our issue tracker. If you are a developer or player who needs support, check out our [community Discord server](https://discord.quiltmc.org)!

<!-- Fabric Readme
# Fabric API

Essential hooks for modding with Fabric.
Expand Down Expand Up @@ -73,13 +82,13 @@ setOf(
}
```

<!--Linked to gradle documentation on properties-->
<!--Linked to gradle documentation on properties--\>
Instead of hardcoding version constants all over the build script, Gradle properties may be used to replace these constants. Properties are defined in the `gradle.properties` file at the root of a project. More information is available [here](https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#declare_properties_in_gradle_properties_file).

## Contributing

See something Fabric API doesn't support, a bug or something that may be useful? We welcome contributions to improve Fabric API.
Make sure to read [the development guidelines](./CONTRIBUTING.md).
Make sure to read [the development guidelines](./FABRIC_CONTRIBUTING).

## Modules

Expand All @@ -88,3 +97,4 @@ Fabric API is designed to be modular for ease of updating. This also has the adv
Each module contains its own `README.md`* explaining the module's purpose and additional info on using the module.

\* The README for each module is being worked on; not every module has a README at the moment
-->
51 changes: 51 additions & 0 deletions UPDATING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Updating Quilted Fabric API

Quilted Fabric API is a quite interesting project, because it isn't any project, it is simultaneously a fork of Fabric API, a repackaging of Fabric API, a collection of bridges that connect Fabric's APIs to QSL, and a mixture of both!
Comment thread
OroArmor marked this conversation as resolved.

On this document, the different processes of updating Quilted Fabric API and how they work will be explained here.


<!-- TODO: Fill this out more -->
## Guide
Always keep clean git history.
Make a branch to cherry-pick from. Make the needed changes at each commit.

<!-- Old Guide.
## Updating the Quilt Standard Libraries dependency

Quilted Fabric API is both a distributor of QSL (Quilt Standard Libraries) through the [QSL/QFAPI bundle](https://modrinth.com/mod/qsl) as well as an user of it. As mentioned before, Quilted Fabric API is also a collection of bridges between Fabric APIs and QSL equivalents, which means that an update isn't always straightforward!

When a QSL update is released, this is the cue to update it on Quilted Fabric API as well, due to it being the main distribution that both developers and users use. Do note that dependending of the circumstances, an update on QFAPI's side can be delayed if waiting for something else is beneficial for the developer's well-being.

In order to update? It's simple! Just update the version definition of the QSL dependency contained on `gradle.properties`. Depending of the update? That's all you need to do! But usually, the update may contain a new API that Fabric API might have an equivalent of, which does mean that Fabric's equivalent might need to be bridged to QSL's if it's necessary and feasible.

It is recommended to bridge all APIs that have an equivalent when that is possible, in order to reduce potential conflicts, allow for a bigger interoperability with QSL's APIs, as well as allow the QSL equivalent to be battle-tested through mods that do use Fabric API.

The bridging process really is up to the developer. We have Quilted Fabric API Base's `QuiltCompatEvent` utility class for directly bridging Fabric API and QSL events, something that sometimes can be a straightforward connection of dots, although it can be more than that on some cases, so do be aware of that!

Another important note is that your mileage may vary with each update. Some APIs will barely need work at all, but others might end with you architecturing a workaround like Quilted Fabric Content Registries' deferred queues! Do expect that some ports will require more effort than usual, but do note that once a bridge is built? It'll last for quite a long time!

## Syncing with upstream Fabric API

To be rewritten!

The process of syncing with the upstream can sometimes be a job so simple that all you need to do is fix the license headers and the gradle.properties conflict that pops up, but other times? It can be a quite complicated job that involves bridging major APIs in order to ensure intercompatibility.

The upstream sync process itself is one that in theory is simple, but due to the potential extra work needed, make sure to always consult with us on the toolchain discord!

The process is simple: you merge in the equivalent Fabric API branch into the Quilt one and fix all conflicts, as well as any potential trouble. FMJs that belong to main mods (not testmod ones) are to be translated into QMJ and the naming scheme is to be updated in order to have the `quilted_` prefix and in order to follow the snake cake convention.

A proper step-by-step tutorial will be written later, since it can involve Git knowledge!

## Porting to a new Minecraft version

The Minecraft update porting process is still one that we still have to refine ourselves. However, we still have some things set on stone.

Currently, the decision is that Quilted Fabric API ports are a low priority on the beginning of snapshot cycles, with the focus being getting QSL up-to-date with the latest snapshot, getting Quilt Mappings mapped, and maintaining the current maintained stable versions. This is to make life easier for the active maintainers, who already have to deal with many Quilt projects and has to deal with a QSL that is still growing up instead of being set in stone.

However, once a good point for porting has been found, progress on a Quilted Fabric API update should begin, with the priority being that ideally something should be done before the pre-releases begin.

### Porting

TBD
-->
Loading
Loading