diff --git a/.forgejo/workflows/release.yml b/.forgejo/workflows/release.yml index cb8ec81..506a392 100644 --- a/.forgejo/workflows/release.yml +++ b/.forgejo/workflows/release.yml @@ -79,16 +79,18 @@ jobs: - name: Release run: lune run src/init -- release jecs --pesde-scope marked/jecs_nightly --wally-scope mark-marks/jecs-nightly - - name: Cleanup Luau - run: rm -rf luau-install + - name: Cleanup + run: | + rm -rf luau-install + rm jecs_nightly.rbxm - name: Create Pull Request id: create_pull_request uses: https://git.devmarked.win/actions/create-pull-request@7174d368c2e4450dea17b297819eb28ae93ee645 with: - title: Sync to upstream Jecs ${{ steps.read_jecs_version.outputs.JECS_VERSION }} + title: Sync to released Jecs ${{ steps.read_jecs_version.outputs.JECS_VERSION }} body: | - Sync to upstream Jecs ${{ steps.read_jecs_version.outputs.JECS_VERSION }} + Sync to released Jecs ${{ steps.read_jecs_version.outputs.JECS_VERSION }} - This pull request is **auto-generated** branch: auto/synchronize commit-message: Sync to upstream Jecs ${{ steps.read_jecs_version.outputs.JECS_VERSION }} diff --git a/README.md b/README.md index d9abee7..cda6b26 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,26 @@ -# jecs-nightly +
+
+
+
+
= number & {
+ __P: P,
+ __O: O,
+}
+
+type Item (first: P, second: O) -> Pair ,
+
+ -- Inwards facing API for testing
+ ECS_ID = ECS_ENTITY_T_LO,
+ ECS_GENERATION_INC = ECS_GENERATION_INC,
+ ECS_GENERATION = ECS_GENERATION,
+ ECS_ID_IS_WILDCARD = ECS_ID_IS_WILDCARD,
+
+ IS_PAIR = ECS_IS_PAIR,
+ pair_first = ecs_pair_first,
+ pair_second = ecs_pair_second,
+ entity_index_get_alive = entity_index_get_alive,
+
+ archetype_append_to_records = archetype_append_to_records,
+ id_record_ensure = id_record_ensure,
+ archetype_create = archetype_create,
+ archetype_ensure = archetype_ensure,
+ find_insert = find_insert,
+ find_archetype_with = find_archetype_with,
+ find_archetype_without = find_archetype_without,
+ archetype_init_edge = archetype_init_edge,
+ archetype_ensure_edge = archetype_ensure_edge,
+ init_edge_for_add = init_edge_for_add,
+ init_edge_for_remove = init_edge_for_remove,
+ create_edge_for_add = create_edge_for_add,
+ create_edge_for_remove = create_edge_for_remove,
+ archetype_traverse_add = archetype_traverse_add,
+ archetype_traverse_remove = archetype_traverse_remove,
+
+ entity_move = entity_move,
+
+ entity_index_try_get = entity_index_try_get,
+ entity_index_try_get_any = entity_index_try_get_any,
+ entity_index_try_get_fast = entity_index_try_get_fast,
+ entity_index_is_alive = entity_index_is_alive,
+ entity_index_new_id = entity_index_new_id,
+
+ query_iter = query_iter,
+ query_iter_init = query_iter_init,
+ query_with = query_with,
+ query_without = query_without,
+ query_archetypes = query_archetypes,
+ query_match = query_match,
+
+ find_observers = find_observers,
+}
diff --git a/jecs/pesde.toml b/jecs/pesde.toml
new file mode 100644
index 0000000..aaf953e
--- /dev/null
+++ b/jecs/pesde.toml
@@ -0,0 +1,13 @@
+authors = ["jecs authors"]
+includes = ["init.luau", "pesde.toml", "README.md", "CHANGELOG.md", "LICENSE", ".luaurc"]
+license = "MIT"
+name = "marked/jecs_nightly"
+repository = "https://git.devmarked.win/marked/jecs-nightly"
+version = "0.5.5-nightly.20250302T183456Z"
+
+[indices]
+default = "https://github.com/pesde-pkg/index"
+
+[target]
+environment = "luau"
+lib = "jecs.luau"
diff --git a/jecs/test.txt b/jecs/test.txt
new file mode 100644
index 0000000..adeb04b
--- /dev/null
+++ b/jecs/test.txt
@@ -0,0 +1,2 @@
+passed = true
+timestamp = "20250304T001102Z"
diff --git a/jecs/test_fulllog.txt b/jecs/test_fulllog.txt
new file mode 100644
index 0000000..8042c78
--- /dev/null
+++ b/jecs/test_fulllog.txt
@@ -0,0 +1,114 @@
+[38;1m9.0[0m [33;1mus[0m [38;1m 3[0m [33;1mkB[0m[38;1m│[0m [38;1mdelete children of entity[0m
+[38;1m9.4[0m [33;1mus[0m [38;1m 1[0m [33;1mkB[0m[38;1m│[0m [38;1mremove friends of entity[0m
+[38;1m329[0m [32;1mns[0m [38;1m 0[0m [32;1m B[0m[38;1m│[0m [38;1msimple deletion of entity[0m
+removing
+[37;1marchetype[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m[0m
+
+[37;1mworld:cleanup()[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m[0m
+
+[37;1mworld:entity()[0m
+[32;1mPASS[0m[38;1m│[0m [38;1munique IDs[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mgenerations[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mpairs[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mRecycling[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mRecycling max generation[0m
+
+[37;1mworld:set()[0m
+[32;1mPASS[0m[38;1m│[0m [38;1marchetype move[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mpairs[0m
+
+[37;1mworld:remove()[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould allow remove a component that doesn't exist on entity[0m
+
+[37;1mworld:add()[0m
+[32;1mPASS[0m[38;1m│[0m [38;1midempotent[0m
+[32;1mPASS[0m[38;1m│[0m [38;1marchetype move[0m
+
+[37;1mworld:query()[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mcached[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mmultiple iter[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mtag[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mpairs[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mquery single component[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mquery missing component[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mquery more than 8 components[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould be able to get next results[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould query all matching entities when irrelevant component is removed[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould query all entities without B[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould allow querying for relations[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould allow wildcards in queries[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould match against multiple pairs[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould only relate alive entities[0m
+[38;5;208mNONE[0m[38;1m│[0m [38;1mshould error when setting invalid pair[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould find target for ChildOf[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mdespawning while iterating[0m
+[38;5;208mNONE[0m[38;1m│[0m [38;1miterator invalidation[0m
+[33;1mSKIP[0m[38;1m│[0m [38;1madding[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mspawning[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould not find any entities[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mwithout[0m
+
+[37;1mworld:each[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m[0m
+
+[37;1mworld:children[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m[0m
+
+[37;1mworld:clear()[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould remove its components[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould move last record[0m
+
+[37;1mworld:has()[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould find Tag on entity[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould return false when missing one tag[0m
+
+[37;1mworld:component()[0m
+[32;1mPASS[0m[38;1m│[0m [38;1monly components should have EcsComponent trait[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mtag[0m
+
+[37;1mworld:delete[0m
+[32;1mPASS[0m[38;1m│[0m [38;1minvoke OnRemove hooks[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mdelete recycled entity id used as component[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mbug: Empty entity does not respect cleanup policy[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould allow deleting components[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mdelete entities using another Entity as component with Delete cleanup action[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mdelete children[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mfast delete[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mcycle[0m
+
+[37;1mworld:target[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mnth index[0m
+[32;1mPASS[0m[38;1m│[0m [38;1minfer index when unspecified[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mloop until no target[0m
+
+[37;1mworld:contains[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mshould not exist after delete[0m
+
+[37;1mHooks[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mOnAdd[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mOnSet[0m
+[32;1mPASS[0m[38;1m│[0m [38;1mOnRemove[0m
+
+[37;1mchange tracking[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m#1[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m#2[0m
+
+[37;1mrepro[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m#1[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m#2[0m
+
+[37;1mwildcard query[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m#1[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m#2[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m#3[0m
+
+[37;1mworld:delete() invokes OnRemove hook[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m#1[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m#2[0m
+[32;1mPASS[0m[38;1m│[0m [38;1m#3[0m
+
+[38;1m68/68 test cases passed in 31.565 ms.[0m
+[32;1m0 fails[0m
diff --git a/jecs/wally.toml b/jecs/wally.toml
new file mode 100644
index 0000000..0c3963d
--- /dev/null
+++ b/jecs/wally.toml
@@ -0,0 +1,8 @@
+[package]
+exclude = ["**"]
+include = ["default.project.json", "jecs.luau", "wally.toml", "README.md", "CHANGELOG.md", "LICENSE"]
+license = "MIT"
+name = "mark-marks/jecs-nightly"
+realm = "shared"
+registry = "https://github.com/UpliftGames/wally-index"
+version = "0.5.5-nightly.20250302T183456Z"
diff --git a/jecs_nightly.rbxm b/jecs_nightly.rbxm
deleted file mode 100644
index 6c0f21e..0000000
Binary files a/jecs_nightly.rbxm and /dev/null differ