partial rewrite and major bugfix

It's become time for me to focus on cleaning up moreblocks and fixing a bunch of outstanding, (long-standing!) issues.
the major motivation is to make it easier to add "cut" shapes of various nodes without blowing up the node count too much, because the 32767 node id limit is a real problem. the minor motivation is that there's currently a lot of ways to end up losing material (or even generating it ex nihilo!) when using the circular saw.
I want to invite other people to comment on the changes I'm making, because I'm having to make a bunch of critical choices. Because moreblocks is in used by a huge number of people, I'm trying to make my changes not cause crashes on current servers, or result in any unknown nodes, but at the same time, I've made (and will continue to make) some serious structural changes to the mod, and would appreciate some extra eyes to check for situations that may escape my attempts to think things through or test things.
I anticipate the work I've got planned may take a couple more days to a couple more weeks, depending on time and health.
Some goals:

[x] don't break existing functionality, at least for servers which are somewhat up-to-date, and at least sometimes used (in progress, see https://github.com/fluxionary/minetest-moreblocks/issues/9 for current issues)
[x] reduce the implicit nodecount penalty of making nodes usable w/ the circular saw (via default-on "legacy" settings)
[x] make game-independent. properly, without breaking existing functionality. by parameterizing texture/sound/craftitems.
[x] remove dead code
[x] adopt current game features which didn't exist when moreblocks was first made
[x] fix a number of unreported bugs
[x] create new API features
[x] turn the mod into a modpack, separating the additional blocks from stairsplus
[x] stricter luachecking
[x] API for registering moreblocks variants (all faces, no faces, trap)
[x] proper integration w/ i3, unified_inventory, and possibly other inventory managers
[x] more crafting schemata
[x] hide individual crafting schemata recipes (via config option)
[x] API for adding new stations which respect the existing mechanics, so that other mods can take advantage e.g. Facade

fix certain bugs:

[x] #108
[x] #151
[x] #177
[x] #178
[x] #179 (config option to affect behavior)
[x] #187
[x] #188 - no plan to actually make moreblocks mineclone-aware, but laid the groundwork to make this very easy.
[x] #189
[x] #190

maybe:

#112

maybe some of the other bugs/PRS, but they mostly either seem to be fixed or unfixable
other remaining TODOs:

[x] update user documentation
[x] update API documentation
[x] update i18n files
[x] test legacy support some more

pie in the sky stuff, which i'll probably not fix in this PR:

create a tool to help server owners reduce the # of registered shaped nodes
create a tool to help server owners easily add more shapes for specific nodes or groups

outstanding PRs:

https://github.com/minetest-mods/lavastuff/pull/18
https://github.com/runsy/jonez/pull/5
https://github.com/SwissalpS/replacer/pull/44

you've set yourself some goals there :thinking: are you sure you don't want to solve one thing after another instead?
In any case: good luck, take your time and feel free to ping me up for testing or feedback :+1:

Query: does anyone know if any mods use the exported "circular_saw" global? I'd prefer to remove the circular saw as a distinct namespace vs. stairsplus. I haven't personally seen any evidence it's used, but the minetest ecosystem is quite diverse and hard to grep.

are you sure you don't want to solve one thing after another instead?

at the moment, i think it'll be easier to achieve all the goals than to split it into distinct stages. i also admit that one of my common areas of failure is biting off more than i can chew. let's see if i can get this done in a week or two, as i expect.

In any case: good luck, take your time and feel free to ping me up for testing or feedback 👍

will do :)

Query: does anyone know if any mods use the exported "circular_saw" global?

Did a quick grep in our modpack (https://github.com/pandorabox-io/pandorabox-mods/) and the following popped up:

https://github.com/BuckarooBanzay/mtinfo/blob/master/items.lua#L47
https://github.com/SwissalpS/replacer/blob/65a10412158176aea6b77d5df31150ef4fea2ea4/compat/moreblocks.lua#L30-L32

I don't think that's a problem if just the global name changes :+1:

Query: does anyone know if any mods use the exported "circular_saw" global?

Relayed search result from @rubenwardy from the cdb: https://content.minetest.net/zipgrep/a831eba5-af21-4c4a-9cc9-c45981f21141/ (thanks)

Relayed search result from @rubenwardy from the cdb: https://content.minetest.net/zipgrep/a831eba5-af21-4c4a-9cc9-c45981f21141/ (thanks)

that's a fantastic tool i didn't know existed. wish i had access to run new queries, but i can certainly see why it would be restricted.
i'll review the code usage and make a decision about whether to publish the old API as well, or submit PRs for those mods (if necessary)

Things are at a point where I wouldn't mind having people test this to find bugs and integration issues. Please report the issues on my fork https://github.com/fluxionary/minetest-moreblocks/issues

I've finished the manual integration testing with other mods, and ended up with only 2 outstanding PRs:

https://github.com/runsy/jonez/pull/5
https://github.com/SwissalpS/replacer/pull/44

Please review https://github.com/fluxionary/minetest-moreblocks/issues/9 for the reasons why I don't consider other incompatibilities necessary to fix rn - mostly, things were already incompatible, or there is no reasonable "correct" way to solve the issues due to engine limitations. Maybe I should write a script to crawl the server list to see who's using the affected mods...
Other than that, I mostly need to write documentation and proof-read the code.

I've finished all the parts of this that I intend to do for now, and have tested things reasonably thoroughly, and have removed the [WIP] tag. Please let me know what I can do to get this pulled :)

I assume this is due to letting mods specify e.g. 'nodetype = "node"' and letting them override what we're trying to do.
this is a blocking bug and needs to be fixed before this should be accepted. but i probably need 12 hours to sleep and wake up again.

this is a blocking bug and needs to be fixed before this should be accepted. but i probably need 12 hours to sleep and wake up again.

I assume this is due to letting mods specify e.g. 'nodetype = "node"' and letting them override what we're trying to do.
this is a blocking bug and needs to be fixed before this should be accepted. but i probably need 12 hours to sleep and wake up again.

fixed via https://github.com/minetest-mods/moreblocks/pull/191/commits/21a374b8dd07108c4066d950c9a0b4c9826421da

this is a blocking bug and needs to be fixed before this should be accepted. but i probably need 12 hours to sleep and wake up again.

Fixed in https://github.com/minetest-mods/moreblocks/pull/191/commits/2163a39844683ce0b93eae51bdf83940c1433772.
This was partially because moreblocks used to register some nodes using the "technic" modname even when technic wasn't installed.
https://github.com/minetest-mods/moreblocks/pull/191/commits/2163a39844683ce0b93eae51bdf83940c1433772

player request: allow picking up a stack from the player inventory, and replacing the "source" nodes in the saw (either full node or microblock). i tried to make this work in the early stages of the project, and hit a wall, but i think i might have a better handle on the mechanics now, and will try to do this tomorrow.

player request: allow picking up a stack from the player inventory, and replacing the "source" nodes in the saw (either full node or microblock). i tried to make this work in the early stages of the project, and hit a wall (what to do w/ microblocks?), but i think i might have a better handle on the mechanics now, and will try to do this tomorrow.

implemented this here https://github.com/minetest-mods/moreblocks/pull/191/commits/59b36fc6d1983c35cb5de0dbd67172a44f694196

I updated the moreblocks repo in a PR to the pandorabox-mods repo (https://github.com/pandorabox-io/pandorabox-mods/pull/2343)
There are a few integration tests running for every mod-update/PR in that repo
One of those tests is a check if every previously registered node/tool/item is still registered or at least has an alias/LBM.
I'm not sure it even got to that test but here are the first results:
Lots of those warnings:
...
2022-06-24 05:10:42: WARNING[Main]: [stairsplus] removing group overrides from scifi_nodes:stair_blackplate_inner
2022-06-24 05:10:42: WARNING[Main]: [stairsplus] removing group overrides from scifi_nodes:stair_blackplate_outer
2022-06-24 05:10:42: WARNING[Main]: [stairsplus] removing group overrides from scifi_nodes:stair_blackplate_alt_1
2022-06-24 05:10:42: WARNING[Main]: [stairsplus] removing group overrides from scifi_nodes:stair_blackplate_alt_2
2022-06-24 05:10:42: WARNING[Main]: [stairsplus] removing group overrides from scifi_nodes:stair_blackplate_alt_4
2022-06-24 05:10:42: WARNING[Main]: [stairsplus] removing group overrides from scifi_nodes:stair_blackplate_alt_8

And a fatal error in the homedecor modpack:
2022-06-24 05:10:43: ERROR[Main]: ModError: Failed to load and run script from /var/lib/minetest/.minetest/worlds/world/worldmods/homedecor_modpack/building_blocks/init.lua:
2022-06-24 05:10:43: ERROR[Main]: ...ld/worldmods/homedecor_modpack/building_blocks/alias.lua:13: bad argument #1 to 'ipairs' (table expected, got nil)
2022-06-24 05:10:43: ERROR[Main]: stack traceback:
2022-06-24 05:10:43: ERROR[Main]: 	[C]: in function 'ipairs'
2022-06-24 05:10:43: ERROR[Main]: 	...ld/worldmods/homedecor_modpack/building_blocks/alias.lua:13: in main chunk
2022-06-24 05:10:43: ERROR[Main]: 	[C]: in function 'dofile'
2022-06-24 05:10:43: ERROR[Main]: 	...rld/worldmods/homedecor_modpack/building_blocks/init.lua:3: in main chunk

Looks like it tries to iterate over stairsplus.shapes_list and fails: https://github.com/mt-mods/homedecor_modpack/blob/master/building_blocks/alias.lua#L13

Lots of those warnings:
2022-06-24 05:10:42: WARNING[Main]: [stairsplus] removing group overrides from scifi_nodes:stair_blackplate_inner

that's expected - stairsplus now tries to automatically adapt the groups of the base node. overriding groups is currently not possible when using the "old" API, though it can be done via the new API: https://github.com/fluxionary/minetest-moreblocks/blob/2774e54a70d2efa83994303261cf30ce222bd138/stairsplus/API.md?plain=1#L89-L90

Looks like it tries to iterate over stairsplus.shapes_list and fails: https://github.com/mt-mods/homedecor_modpack/blob/master/building_blocks/alias.lua#L13

https://github.com/mt-mods/homedecor_modpack/pull/38/files
not sure why i didn't try to do a test against the full pandorabox modpack yet, or how homedecor escaped my previous audit, i'll get on that.

Thanks for fixing the homedecor issue :+1:
Another thing popped up though :wink: (no pressure)
2022-06-24 16:11:30: ERROR[Main]: ModError: Failed to load and run script from /var/lib/minetest/.minetest/worlds/world/worldmods/basic_streets/init.lua:
2022-06-24 16:11:30: ERROR[Main]: ...orlds/world/worldmods/moreblocks/stairsplus/api/node.lua:59: cannot register "basic_streets:street_straight" w/ paramtype2 "colorwallmounted" w/ stairsplus
2022-06-24 16:11:30: ERROR[Main]: stack traceback:
2022-06-24 16:11:30: ERROR[Main]: 	[C]: in function 'error'
2022-06-24 16:11:30: ERROR[Main]: 	...orlds/world/worldmods/moreblocks/stairsplus/api/node.lua:59: in function 'check_node_validity'
2022-06-24 16:11:30: ERROR[Main]: 	...orlds/world/worldmods/moreblocks/stairsplus/api/node.lua:88: in function 'register_single'
2022-06-24 16:11:30: ERROR[Main]: 	...orlds/world/worldmods/moreblocks/stairsplus/api/node.lua:76: in function 'register_single'
2022-06-24 16:11:30: ERROR[Main]: 	...orlds/world/worldmods/moreblocks/stairsplus/api/node.lua:249: in function 'register_group'
2022-06-24 16:11:30: ERROR[Main]: 	...rldmods/moreblocks/stairsplus/compat2/old_moreblocks.lua:60: in function 'register_group'
2022-06-24 16:11:30: ERROR[Main]: 	...rldmods/moreblocks/stairsplus/compat2/old_moreblocks.lua:70: in function 'register_all'
2022-06-24 16:11:30: ERROR[Main]: 	....minetest/worlds/world/worldmods/basic_streets/nodes.lua:60: in main chunk
2022-06-24 16:11:30: ERROR[Main]: 	[C]: in function 'dofile'
2022-06-24 16:11:30: ERROR[Main]: 	.../.minetest/worlds/world/worldmods/basic_streets/init.lua:3: in main chunk

is it disallowed now to register nodes with colorwallmounted as param2type?

next crash:
ModError: Failed to load and run script from /home/flux/.minetest/worlds/pandorabox/worldmods/basic_streets/init.lua:
.../pandorabox/worldmods/moreblocks/stairsplus/api/node.lua:59: cannot register "basic_streets:street_straight" w/ paramtype2 "colorwallmounted" w/ stairsplus
stack traceback:
	[C]: in function 'error'
	.../pandorabox/worldmods/moreblocks/stairsplus/api/node.lua:59: in function 'check_node_validity'
	.../pandorabox/worldmods/moreblocks/stairsplus/api/node.lua:88: in function 'register_single'
	.../pandorabox/worldmods/moreblocks/stairsplus/api/node.lua:76: in function 'register_single'
	.../pandorabox/worldmods/moreblocks/stairsplus/api/node.lua:251: in function 'register_group'
	...rldmods/moreblocks/stairsplus/compat2/old_moreblocks.lua:60: in function 'register_group'
	...rldmods/moreblocks/stairsplus/compat2/old_moreblocks.lua:70: in function 'register_all'
	...test/worlds/pandorabox/worldmods/basic_streets/nodes.lua:60: in main chunk
	[C]: in function 'dofile'
	...etest/worlds/pandorabox/worldmods/basic_streets/init.lua:3: in main chunk
Check debug.txt for details.

i was already aware of this issue, but i deemed it "unfixable" https://github.com/fluxionary/minetest-moreblocks/issues/9 given that nodes can't have a paramtype2 of both "colorwallmounted" and "facedir". i suppose the correct thing to do here is have stairsplus just ignore that value when someone uses the legacyapi (same with just "color")

Another thing popped up though 😉 (no pressure)

i'm running a local clone of pandorabox now, i'll try to shake things out and make fixes, and let you know when i'm done so we don't end up doing the same work =D (see the comment above)

ModError: Failed to load and run script from /home/flux/.minetest/worlds/pandorabox/worldmods/lavastuff/init.lua:
...rldmods/moreblocks/stairsplus/compat2/old_moreblocks.lua:56: cannot register stairs for lavastuff:ingot before the node is defined
stack traceback:
	[C]: in function 'error'
	...rldmods/moreblocks/stairsplus/compat2/old_moreblocks.lua:56: in function 'register_group'
	...rldmods/moreblocks/stairsplus/compat2/old_moreblocks.lua:77: in function 'register_all'
	....minetest/worlds/pandorabox/worldmods/lavastuff/init.lua:338: in main chunk
Check debug.txt for details.

... it really registers stairs for an ingot? i have to see what that looks like...

i committed some more tweaks for compatibility w/ mods using the old API. other than the existing PRs, i'm now able to run the pandorabox mod collection locally.

Bug w/ mineclone from the forums:
2022-06-26 22:29:13: ERROR[Main]: ModError: Failed to load and run script from C:\Games\minetest\bin\..\mods\moreblocks\stairsplus_legacy\init.lua:
2022-06-26 22:29:13: ERROR[Main]: ...\minetest\bin\..\mods\moreblocks\stairsplus\api\node.lua:71: node "wool:white" is not defined
2022-06-26 22:29:13: ERROR[Main]: stack traceback:
2022-06-26 22:29:13: ERROR[Main]: 	[C]: in function 'error'
2022-06-26 22:29:13: ERROR[Main]: 	...\minetest\bin\..\mods\moreblocks\stairsplus\api\node.lua:71: in function 'register_single'
2022-06-26 22:29:13: ERROR[Main]: 	...\minetest\bin\..\mods\moreblocks\stairsplus\api\node.lua:251: in function 'register_group'
2022-06-26 22:29:13: ERROR[Main]: 	...netest\bin\..\mods\moreblocks\stairsplus_legacy\init.lua:39: in function 'register_legacy'
2022-06-26 22:29:13: ERROR[Main]: 	...netest\bin\..\mods\moreblocks\stairsplus_legacy\wool.lua:7: in main chunk
2022-06-26 22:29:13: ERROR[Main]: 	[C]: in function 'dofile'
2022-06-26 22:29:13: ERROR[Main]: 	...netest\bin\..\mods\moreblocks\stairsplus_legacy\init.lua:47: in main chunk
2022-06-26 22:29:13: ERROR[Main]: Check debug.txt for details.
2022-06-26 22:29:13: ACTION[Main]: Server: Shutting down

Do you plan backwards compatibility with moreblocks 2.0?

Do you plan backwards compatibility with moreblocks 2.0?

it should be, at least mostly. i've tested it w/ a wide variety of mods. in the description, towards the bottom, you can see the outstanding PRs against other mods where compatibility has broken.

I had 3.0 on my server for testing, now back to 2.0. I don't see any backwards compatibility there.

I had 3.0 on my server for testing, now back to 2.0. I don't see any backwards compatibility there. All stairplus nodes are unknown nodes

oh i see. 3.0 is backwards compatible as in you can upgrade existing worlds to it, and use mods designed for the 2.* API with it, but you certainly can't downgrade to 2.* and expect things to work right, because e.g. a lot of node names have changed.

Tested this on a local copy of pandorabox again, everything seems to work and all previously registered nodes were available :+1:

I have not yet understood why 2 circular saw categories are created in unified_inventory

I have not yet understood why 2 circular saw categories are created in unified_inventory

one for cuttable nodes, one for cut nodes.

Outstanding work :slightly_smiling_face:
Is this ready to merge, or should we wait for more servers to test this PR?

Why have nodes which have neither a stairplus or stairs api call to register stairs also stairplus-stairs? I thought you wanted to reduce unnecessary nodes

Why have nodes which have neither a stairplus or stairs api call to register stairs also stairplus-stairs? I thought you wanted to reduce unnecessary nodes

i'm confused. which nodes?

Is this ready to merge, or should we wait for more servers to test this PR?

to me, this feels mature, but i also don't mind waiting for other servers to test.

i'm confused. which nodes?
Nodes of mods that do not use stairsplus or stairs.

For example: for the nodes from the mod "titanium" are registered stairsplus stairs. However, there is no call for this in the mod.
https://github.com/Niklp09/titanium

For example: for the nodes from the mod "titanium" are registered stairsplus stairs. However, there is no call for this in the mod. https://github.com/Niklp09/titanium

how is anything being registered as a stair (stairsplus or otherwise) in that "fork" of the titanium mod? the point of this PR isn't to keep server operators from creating node model variants, but to reduce the number of useless variants that using this mod currently forces server operators from adopting by default.

In the titanium mod is no call to register stairs. If I deactivate "moreblocks" no more stairs are registered.

In the titanium mod is no call to register stairs. If I deactivate "moreblocks" no more stairs are registered.

but even when moreblocks is enabled, stairs shouldn't be registered for titanium nodes. are you saying that when you use the 2 mods together, magically there's stairs? is a third mod doing the actual stairs registration for titanium?

are you saying that when you use the 2 mods together, magically there's stairs?

yes

is a third mod doing the actual stairs registration for titanium?
no

are you saying that when you use the 2 mods together, magically there's stairs?

yes

doesn't happen for me:

@fluxionary Forget it, was a mistake from me

If xdecor is also turned on, you will be able to reproduce my problem.
Maybe an issue should be made at xdecor.

ahh, i see them now

it's xdecor's accursed workbench, which creates all sorts of fun:
https://github.com/minetest-mods/xdecor/blob/3b5b3f0c11c441b9667949194b671fc6aa72b843/src/workbench.lua#L299-L303
fortunately it only registers the basic variants, not all the possibilities for all possible nodes O_O

When I open the circular saw formspec I get this warning:
ERROR[Main]: Ignoring out-of-bounds argument escape sequence in translation

When I open the circular saw formspec I get this warning: ERROR[Main]: Ignoring out-of-bounds argument escape sequence in translation

ugh just discovered this issue w/ smartshops, seems to cause the same issue here, i think
https://github.com/minetest/minetest/issues/12566
just to check, what node from what mod was in the saw, if any?

Problem exists with and without node in the saw

Problem exists with and without node in the saw

hm, i can't replicate the issue. what version of the minetest client/server are you using?

Problem exists with and without node in the saw

hm, i can't replicate the issue. what version of the minetest client/server are you using?

figured out how to replicate it - set the client language to non-default. i'll see what i can figure out.

hm, i can't replicate the issue. what version of the minetest client/server are you using?

server: 5.6.0-dev-master
client: 5.5.1

When I open the circular saw formspec I get this warning: ERROR[Main]: Ignoring out-of-bounds argument escape sequence in translation

the most recent commit should fix the issue.

I found another bug:
Many homedecor recipes are broken because the names of the half stairs have changed.
For example:
In moreblocks 2.x building_blocks:slab_hardwood works but now it's building_blocks:slab_hardwood_8

Slabs which are registered with stairsplus.compat.override_stairs have no sounds

Many homedecor recipes are broken because the names of the half stairs have changed.

they're still craftable, but unified_inventory seems confused:

Slabs which are registered with stairsplus.compat.override_stairs have no sounds

it's not just override_stairs, it's everything. not entirely sure how i missed that before, the fix is trivial:
https://github.com/minetest-mods/moreblocks/pull/191/commits/f7f6c79f74376874cd7db3f3d1c491c6f84ae709

they're still craftable, but unified_inventory seems confused:

i created an issue upstream: https://github.com/minetest-mods/unified_inventory/issues/207
i don't see that issue as something that should block this PR.

Another bug 😕  :
when i dig "moretrees:stair_fir_trunk", i get back "fir_trunk" which is an unknown item.

apparently something broke when using a 5.6.0 client/server/game vs. 5.5.1:

i've also gotten at least one report that loading a schematic using worldedit which contained moreblocks/stairsplus nodes crashed someone's server, but i haven't been able to replicate that locally.
@Niklp09 sorry i missed your comment, i'll look into that.

when i dig "moretrees:stair_fir_trunk", i get back "fir_trunk" which is an unknown item.

should be handled by the most recent commit

apparently something broke when using a 5.6.0 client/server/game vs. 5.5.1:

apparently what broke was related to having "autoscale_mode = true" set, so that's an upstream client (engine?) issue

i've also gotten at least one report that loading a schematic using worldedit which contained moreblocks/stairsplus nodes crashed someone's server, but i haven't been able to replicate that locally.

this was due to doing a //save on a machine w/ the code from this PR, and trying to //load it on a machine w/out it. WE crashes the game if you try to load something w/ nodes that the engine isn't aware of. i created an upstream issue: https://github.com/Uberi/Minetest-WorldEdit/issues/210

I think the PR is ready for merging. I've not found any other bugs

I think the PR is ready for merging. I've not found any other bugs

I'll try to find some time next week for a cursory review, then I think we can merge this and release 3.0.0 :slightly_smiling_face:

Can you check that the micronodes are still collapsed using the i3 inventory mod?

Can you check that the micronodes are still collapsed using the i3 inventory mod?

i'm not sure i understand what you mean by collapsed. do you mean "hidden" by adding them to the not_in_creative_inventory group? the name of the setting has changed to stairsplus.in_creative_inventory, but the old name (moreblocks.stairsplus_in_creative_inventory) still works as well.

By collapsed I mean that they're hidden behind a button that "groups" them. Clicking the item button expand the inventory list.

By collapsed I mean that they're hidden behind a button that "groups" them. Clicking the item button expand the inventory list.

got it, i don't use i3 so i didn't even realize that was a feature. that stops working because i3 tries to handle "compressing" the groups itself. i'll try to write a fix to incorporate that mechanism, though i3 doesn't seem to provide a real API for that feature.

By collapsed I mean that they're hidden behind a button that "groups" them. Clicking the item button expand the inventory list.

should work now w/ the commit i just pushed, please verify if you want

though i3 doesn't seem to provide a real API for that feature

API

https://github.com/minetest-mods/unified_inventory/issues/207 needs to be fixed

Also ensure that the slopes still represent the groups.

microblocks (1/8th node) now represent groups. slopes are no longer guaranteed to even exist, and microblocks are.

minetest-mods/unified_inventory#207 needs to be fixed

fixing unified_inventory is left as an exercise for the reader.

next Issue. Only appears with default:stone

next Issue. Only appears with default:stone

i removed the attempt to register craft schemata w/ inventory managers. that never worked the way i wanted it to.

more crafting schemata

This will break a lot of recipes that used by other mods

more crafting schemata

This will break a lot of recipes that used by other mods

can you provide an example?

techage:ta1_board1_xx

I found a fix for https://github.com/minetest-mods/unified_inventory/issues/207

outcomment line 38 in stairsplus/init.lua
Set stairsplus.in_craft_guide to true

I know its hacky but it works

I know its hacky but it works

doesn't work for me

outcomment line 38 in stairsplus/init.lua

i'm guessing the locus is moreso https://github.com/fluxionary/minetest-moreblocks/blob/635f0af8e2e14c44dacf67468fc18eb484777d40/stairsplus/api/node.lua#L318-L334
it's certainly possible to do that synchronously (when variants and schemas are registered), but is much more complicated... but i guess i'll do that work.

techage:ta1_board1_xx

i see. i'm not quite sure what i'll do about this yet. on the one hand, i don't want to break stuff, but

recipe conflicts are inevitable and are inherently an integration problem
recipe conflicts don't even have to be an "one or the other" thing, inventory managers could absolutely provide a means to pick a particular output of a recipe. however, none do.

i will at the very least provide a config option to disable the crafting schemata.
p.s. why in the world does techage come w/ an outdated version of the stamina mod? O_o

it's certainly possible to do that synchronously (when variants and schemas are registered), but is much more complicated... but i guess i'll do that work.

did that in https://github.com/minetest-mods/moreblocks/pull/191/commits/6e16c54cc365f37fb0236cd2b27b2deb25fe589a

i will at the very least provide a config option to disable the crafting schemata.

did that in https://github.com/minetest-mods/moreblocks/pull/191/commits/7414e274afb9768df70f6f42cf35ac978132c9db

doesn't work for me

actually, i figured out what was going on there, i confused stairsplus.in_craft_guide and stairsplus.in_creative_inventory. i'm going to set stairsplus.in_craft_guide to default to true to avoid this sort of issue.

With my settings i can see mtg stairs but actually should there be only the "real" crafting recipe (only happens with blocks what are converted from mtg stairs to stairs+)

Settings:
stairsplus.in_creative_inventory = false
stairsplus.in_craft_guide = true
stairsplus.crafting_schemata_enabled = false

With my settings i can see mtg stairs but actually should there be only the "real" crafting recipe (only happens with blocks what are converted from mtg stairs to stairs+)

i'm don't understand. what do you mean, you can see them? and what's wrong w/ the crafting recipe?

With my settings i can see mtg stairs but actually should there be only the "real" crafting recipe (only happens with blocks what are converted from mtg stairs to stairs+)

i'm don't understand. what do you mean, you can see them? and what's wrong w/ the crafting recipe?

oh i see, you disabled the crafting schemas, but you still get the recipes that the stairs mod creates.
hm... one solution would be to disable the stairs mod?

hm... one solution would be to disable the stairs mod
I'm testing

That works, but makes a lot of other things broken so also not a good solution

That works, but makes a lot of other things broken so also not a good solution

yeah, fair point, so now i am removing the recipes if crafting schemas are disabled. possibly a better solution would have been to have completely overridden stairs as a distinct mod in this pack. maybe at a later date.

a better solution would have been to have completely overridden stairs as a distinct mod in this pack. maybe at a later date.

i decided that's a much better solution actually, it simplifies a lot of the legacy code.
however, it doesn't work because of a dependency loop. for some reason unified_inventory depends on farming. *#@!

I have this PR running on my server for a few weeks without any further issues. I would say the PR is ready for merging

MT Expansion however is still a valid issue.

this is because mt_expansion tries to register stairs for nodes that don't exist... which i suppose was a valid use of the "stairs" mod. i'll have to do some work to fix that.

pushed a fix, which still requires work on the part of the player, and will create a dependency cycle (stairs -> stairsplus -> unified_inventory -> farming -> stairs) until this PR against unified_inventory is accepted: https://github.com/minetest-mods/unified_inventory/pull/219

Are you only available on IRC?

i'm fluxionary on libera.chat and am usually in the #minetest channel. i can't use discord because they keep blocking me w/out telling me why.
in this case, the solution is actually in the error message:

attempt to register stairs for unknown node "wood:black". set stairs.legacy_stairs_without_recipeitem = true in minetest.conf to enable this behavior.

@Calinou please don't merge this and let @fluxionary fork this project with their changes. This is too disruptive and there are apparently too much issues... Sorry man but I'm not fan of these changes packed up in a gigantic PR :-1:

Next issue: All textures are missing on nodes generated from moreblocks.

cf.

https://github.com/minetest-mods/moreblocks/pull/191#issuecomment-1208551792
https://github.com/minetest/minetest/issues/12672

this was a bug in the engine that this PR unearthed, which has been fixed, but isn't yet part of a proper release.

See the compression feature in i3 is nested, and the nested group can't be expanded since it collapses everything on click.

i will work on understanding why that's behaving wrong, but i3 is not designed to work well w/ other mods, and i won't promise to try to fix it.

please don't merge this and let @fluxionary fork this project with their changes.

i'd rather not take over the entire minetest mod ecosystem, but it seems like maybe i have to in order to fix it. i certainly can't maintain all the mods forever, but a lot of "fixes" are just making the ecosystem worse.

in any event, it'd be more useful for me to respond to individual issues on my own fork of moreblocks, vs. trying to fix everything in this PR.

if the community wants me to actually fork moreblocks, it will end up w/ an AGPL license get have the structure and API normalized according to my own current standards. i want to find a compromise where this mod doesn't become my personal responsibility, but i'm getting the feeling that that's the only way forward.

Flux, if you don't want to be the maintainer for this, and if this pr gets rejected, I can maintain it.

Flux, if you don't want to be the maintainer for this, and if this pr gets rejected, I can maintain it.

i want minetest-mods to be the maintainer. i think that something as crucial as moreblocks ought to have more than one set of eyes on its maintenance. creating a hard fork won't solve that, but at the same time, i'd rather do that than just have this passed over indefinitely.
what's my alternative, creating yet another minetest mods collective? i'd have to recruit active mod maintainers that i respect? i have no desire to administrate such a project, i'd rather get existing community to sign off on my changes.
but when a single issue like this becomes its own meta-bug-tracker for everything wrong w/ a project, forking the project very much a reasonable option.
:\

Another issue, but I don't know if it's related to this PR? Something weird is going on with groups. See the compression feature in i3 is nested, and the nested group can't be expanded since it collapses everything on click.

i can't replicate this locally; can you give more detailed instructions, involving which versions of i3/moreblocks/other things?

is there anything i can do to get this accepted? if i don't get a response about what is still needed by 2023-02-01, i will abort this PR and do a hard fork, and commit to maintaining that.

is there anything i can do to get this accepted? if i don't get a response about what is still needed by 2023-02-01, i will abort this PR and do a hard fork, and commit to maintaining that.

pinging @Calinou since i believe this is primarily there mod

Good luck with your fork Flux! :)

@fluxionary, @Calinou said they'd accept this pr on irc.

wait, did they? apologies if i missed it. if they can post a list of things i need to do to get it accepted, i'll re-open it.

unnecessary aliases (https://github.com/fluxionary/minetest-moreblocks/issues/18)


DNT tokens are removed in translations

Hi MMT team,
I have a question / possible bug report In relation to #385, and the addition of the ${DNTX} tokens.
I've noticed in some cases that MMT isn't preserving the ${DNTX} token in the output translation. (Also another observation which really isn't an issue is the casing of the token gets modified)
I assume that when training engines, the training content should have these ${DNT} tokens, we train engines with these tokens in the training content.  (If they don't need to be there do let me know)
Regardless, I have been able to reproduce the issue against both our engines and your public engines.
Take for example:
EN:

Same as ${DNT1}, however, if the Authorization header is not ${DNT2}, ${DNT3}, or ${DNT4}, then the ${DNT5} considers the authentication method as ${DNT6}, and then passes the browser request.

ZH_CN:

然而，如果授权标题不是${Dnt2}、${dnt3}或${dnt4} ，则${dnt5}将认证方法视为${dnt6} ，然后传递浏览器请求。

As you can see the ${DNT1} token has been completely removed.
If I look at MMT source code as I did in #385, I see that ${DNT%d}_ is the token that gets added in /src/decoder-neural/src/main/python/nmmt/t2t/problem.py make_reserved_tokens(self). If I translate with ${DNTX}_ the tokens seem to be preserved, against our engines and your engines, see below:
EN:

Same as ${DNT1}_ , however, if the Authorization header is not ${DNT2}_ , ${DNT3}_ , or ${DNT4}_ , then the ${DNT5}_ considers the authentication method as ${DNT6}_ , and then passes the browser request.

ZH_CN:

然而，与${Dnt1}_ ，如果授权标题不是${dnt2}_ 、${dnt3}_ ，或${dnt4}_ ，则${dnt5}_ 将认证方法视为${dnt6}_ ，然后传递浏览器请求。

Is this just a coincidence or should the tokens we put in the source text actually be ${DNTX}_ instead of ${DNTX}?
Thanks,
Rob

Hi again,
Expanding on the above, in src/textprocessing/src/main/jflex/eu/modernmt/processing/tokenizer/jflex/annotators/CommonTermsTokenAnnotator.pyflex you have a rule for DNT tokens of the format ${DNT_X} where the _ is optional.
It's quite hard to figure out what DNT token format should actually be used.
Could you enlighten me?
Rob.

We will double-check as soon as possible.

It is correct that the input must contain   ${DNTX}  and not   ${DNTX}_
${DNTX}_ is an internal representation of the bpe subtokens, which close of original tokens
The regular expression in CommonTermsTokenAnnotator would allow to match both ${DNTX}  and ${DNT_X}, but the system actually handles ${DNTX}

With the transformer model it is actually possible that some tags are not translated. In fact, it is not mandatory for the decoder to "cover" (translate) all source tokens, but it can choose to not translate some (portions of) words. This is due to the attention mechanism.
In the second scenario, when you use ${DNTX}_ it is basically by chance that they occur in the translation.
By the way, in next days we will double-check to definitely confirm the above-mentioned behaviour.

The presence of tags of type ${DntX} or ${dntX} (instead of the expected ${DNTX}) is much likely a signal that the ModernMT version used is too old and/or that the system was trained with an old and incompatible version.
The DoNotTranslate facility was introduced in release 3.0.
I would remind that:

the usage of DNT tags is effective only if the system has been trained on a training corpus containing such tags;
the system interprets DNT tags as any other "standard" tokens; so, it translates them correctly if the system is trained reasonably well; but however it is still possible that DNT tags are wrongly translated or even not translated at all, like any other tokens;
the system is trained well if the training corpus contains a reasonable amount of sentence pairs with DNT tags;
the correct format of the DNT tags is ${DNTX}, where X ranges from 0 to 9.

Hi @nicolabertoldi

The presence of tags of type ${DntX} or ${dntX} (instead of the expected ${DNTX}) is much likely a signal that the ModernMT version used is too old and/or that the system was trained with an old and incompatible version.
The DoNotTranslate facility was introduced in release 3.0.

The engines in question were trained with ModernMT 3.0.

the system is trained well if the training corpus contains a reasonable amount of sentence pairs with DNT tags;

The corpus did contain DNT placeholders. In fact before training the engines, we pre-processed the entire corpus inserting these DNT tokens where applicable.
The token format we used was ${DNTX}.

it is still possible that DNT tags are wrongly translated or even not translated at all, like any other tokens

So, there is no guarantee that DNT tokens in the source text, will actually exist in the translation. We have already designed some validation around this, but it is quite a common occurrence.
Would there be any way to always make the engine preserve the placeholders, otherwise it is a lottery as to whether the translation will be in any way valid?
Rob

Hi @robertBrnnn,
could you please provide us a subset of your training corpus, and the exact versions (commit number) of the code you used?
I would like to replicate the behaviour you observed, because in my test I always see the expected outputs.

Hi @nicolabertoldi
The training corpus is proprietary data, I am unable provide even a subset of it.
As for the exact version number, we used the 3.0 docker image release, which I assume corresponds with the one from your releases page https://github.com/ModernMT/MMT/releases/tag/v3.0
When you are running tests, are you checking CJK languages or European languages? There seems to be very little if any issues with European from our experience, it's the CJK languages that tend to have issues.
Thanks,
Rob

Hi @robertBrnnn
actually I tested on Western languages
I will debug CJK asap
Nicola

Hi @robertBrnnn
thanks to your help, I identify a small problem with DNT protected tokens and CJK languages.
I am working to implement the solution, which will be available very soon.

solved in commit 40a29dc9032ee78cc323c34b2abb4decfa8877ab


[video_player plugin] Get the aspect ratio/witdth-height or preserve the aspect ratio of a video

Hi, I have to download multiple online videos of different and unknown aspect ratio, and I would like to know if there is a way or if there will be a way to get the aspect ratio (or resolution) of the video, or simply have a bool that let's you decide if to resize the video (like images).
Thank you.

Nevermind.. it's the value property

Can you explain how you did it.
Thanks in advance.

@Ivaskuu , could you elaborate please?


fix: Move deps that were incorrectly listed as dev deps

A couple of deps were mistakenly in devDependencies when they should have been in dependencies.

did you want to add package-lock.json to .gitignore as well?

Nope it should be in git.

This file is intended to be committed into source repositories, and serves various purposes
– https://docs.npmjs.com/cli/v6/configuring-npm/package-lock-json

did you want to add package-lock.json to .gitignore as well?

Nope it should be in git.

This file is intended to be committed into source repositories, and serves various purposes
– https://docs.npmjs.com/cli/v6/configuring-npm/package-lock-json

Yeah, sorry, I misinterpreted what Github was showing me in the diff and mistook the file as being removed.


running on Java desktop app

i have a problem to use library in my java desktop application , im not sure which libraries i need to add . please help me on this

Depends on what you need to do. The library package contains everything you need to interact with Spotify, but cannot play music on its own. The player package is built on top of library and can play music, that's also used as the default standalone versione. The api package is built on top of player and adds a REST API that you can use to control the client outside of the program itself.
More details can be found inside each package README.

Depends on what you need to do. The library package contains everything you need to interact with Spotify, but cannot play music on its own. The player package is built on top of library and can play music, that's also used as the default standalone versione. The api package is built on top of player and adds a REST API that you can use to control the client outside of the program itself.
More details can be found inside each package README.


Minimal Parachain Upgrade PVFCheckRejected on Rococo Local Relaychain with Alice and Bob. Why?

Description
We are having an issue upgrading our parachain on the rococo-local which is causing our parachain upgrade to be rejected on the relaychain side.
We do not necessarily think this is a relaychain bug, because when we restart our rococo-local with alice and bob, and our restart our parachain, we are able to perform all upgrades up to and including the current live parachain version 1.4.3 with no rejections.
We have been attempting to update our test parachain with work from other branches but these are getting paras.PVFCheckRejected, on rococo-local.

The upgrade is 660kb so should pass.
We created a very minimal upgrade on a new branch, bumped to the implementation version 1.4.4 and made a small change in order to test - but this gets rejected on the rococo-local relaychain.
We also tried bumping the implementation version 1.5.0 with this same change but this also gets rejected. We did not push this change to the branch.
Each time we test, we restart networks from scratch to be clean about testing.
We need to understanding why this is failing in our test relaychain and what possible reasons there could be for parachain runtime upgrades to get rejected. It isn't clear from the documentation, but moreso, a cause is available, unfortunately it is not used in the event.
The message in the screenshot is somewhat strange because it shows and extrinsic success and an extrinsic failure.
This appears therefore that the PVF is not receiving sufficient votes from alice and bob validators on the relaychain hence it is rejected.
Other reasons that we can think of but may not be true are that:

the basic rococo-local does not have enough validators assigned to the parachain (2 maximum?) and therefore cannot acheive enough votes or,

at least one of the validators is voting against this upgrade for reasons unknown.

Block production is not affected by a PVF rejection, but the parachain is in a state whereby it has overlapping upgrades

i.e. an upgrade that has been authorized but not enacted, the PVF code remains in the parachainSystem.PendingValidationCode.

Setup
Our Rococo Local Relaychain
When extracting the rococo-local in raw format on the current
polkadot 1.2 version using this:
./target/release/polkadot build-spec --chain rococo-local --disable-default-bootnode --raw > rococo-pdk-local-raw.json

we see this message on extraction just for information:
2023-10-09 10:22:35 Building chain spec
2023-10-09 10:22:35 Took active validators from set with wrong size
2023-10-09 10:22:35 Took active validators from set with wrong size
2023-10-09 10:22:35 Took active validators from set with wrong size.
2023-10-09 10:22:35 Took active validators from set with wrong size

Notice the third message contains a . at the end so actually there are at least two reasons why this message is produced.

Our rococo-local relaychain is running here
Our Lego Parachain
Our totem-lego parachain is running here
The main branch is the current kapex network on polkadot.
It contains all the wasm upgrades here
The minimal upgrade branch is here, version 1.4.4
We can share the keys privately if anyone wants to access lego as sudo.
What actions should be taken when this happens?

what are the cleanup steps on the parachain side?

are there steps to be taken on the relaychain side?

Can the authorized PVF be removed from parachainSystem.PendingValidationCode on the parachain? If so, how?

Our process is that we bump the versions in the node manifest, runtime manifest and runtime lib.rs file. This should be sufficient, and hasn't caused problems in the past.

The issue related to a number of issues on Substrate / Polkadot which required an update to the Wasm build code. Our code was out of date.
The issues are:
https://github.com/paritytech/polkadot-sdk/issues/1755
https://github.com/paritytech/frontier/issues/1038
https://github.com/chevdor/subwasm/issues/79
https://github.com/paritytech/substrate/pull/13804/commits/d601709d4ce21ede2398901901e3dd1427af3b1e
We fixed the issue in this commit


New nodes fail to bootstrap after 1000 nodes and certain time

Overview / Motivation
We've noticed home nodes and even our own nodes failing to bootstrap. this is noticed mainly in our AWS env, though we haven't went up to this scale and haven't tried home miners in GCP.
The Task
Analyze the issue and fix.
Implementation Notes
this might be related to timing or to amount of bootstraps or amount of bootstrapping nodes.
Contribution Guidelines
Important: Issue assignment to developers will be by the order of their application and proficiency level according to the tasks complexity. We will not assign tasks to developers who haven't introduced themselves on our Gitter dev channel

Introduce yourself on go-spacemesh dev chat channel - ask our team any question you may have about this task
Fork branch develop to your own repo and work in your repo
You must document all methods, enums and types with godoc comments
You must write go unit tests for all types and methods when submitting a component, and integration tests if you submit a feature
When ready for code review, submit a PR from your repo back to branch develop
Attach relevant issue to PR

some investigations found that the bootstrap node is successfully sending answers, it just that the receivers fail to unbox (NaCl) the encrypted messages when it comes to getaddresses message. though they are able to unbox ping messages. still investigating what causes this and why only in AWS.


Bug and Intro Update

Please check off the following things BEFORE submitting a new issue. Any issues that do not properly follow this format will be closed without discussion. If you're requesting to have your app added to the list, you can erase the list and provide your app's name and play store listing link. Thanks!
[ ] What you've tried (include code snippets, or whole files as necessary):
Please check out my error image.
Also I want you to help me connect the AppIntro to my Login Sc

reen

You are extending the wrong class, extend android.support.v4.app.Fragment;

So how can I extend the right class

@niilante read the Readme, and you'll figure it out. I'm just gonna close this pointless question now.

I am new with android studio, so please take time and explain the things into details. Andrew I will be happy if you help me out, since you understand the ReadMe better than I do.

@niilante first off, you've provided us with no code at all. The error you've shown us makes me assume you're extending the wrong library class. As I said, refer to the readme and it will tell you which class you need to extend to be able to use AppIntro. If you need help with extending classes, refer to the (Java documentation)[https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html].


GCP Authentication Filter should be able to use the token endpoint to inject access token

Title: GCP Authentication Filter should be able to use the token endpoint to inject access token
Description:
The GCP Authentication filter injects the id_token (JWT) from http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity into the Authorization header of the request.
However, some Google services seem to expect the access_token from http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token instead. One example is the https://healthcare.googleapis.com APIs.
When the URI is changed to the token endpoint, the response from computeMetadata/v1/instance/service-accounts/default/token is JSON:
 {"access_token":"ya29.c.redacted","expires_in":3400,"token_type":"Bearer"}

The GCP Authentication filter seems to inject the JSON response directly like so:
Authorization: Bearer {\"access_token\":\"ya29.c.redacted\",\"expires_in\":3400,\"token_type\":\"Bearer\"}

The correct access token can be retrieved using the following curl / jq commands:
curl \
"http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token" \
-H "Metadata-Flavor: Google" | jq -r '.access_token'

and the expected header is:
Authorization: ya29.c.redacted

Currently, I am getting over this by using a Lua filter in tandem with the GCP Authentication filter like so to strip the access_token:
http_filters:
  - name: 'envoy.filters.http.gcp_authn'
    typed_config:
      '@type': type.googleapis.com/envoy.extensions.filters.http.gcp_authn.v3.GcpAuthnFilterConfig
      http_uri:
        uri: 'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token?audience=[AUDIENCE]'
        cluster: 'gcp_authn'
        timeout: 10s
  #  Lua filter to extract the access token from the GCP metadata server response
  - name: envoy.filters.http.lua
    typed_config:
      '@type': type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
      inline_code: |
        function envoy_on_request(request_handle)
            local auth_header = request_handle:headers():get("Authorization")

            if auth_header then
                local access_token = string.match(auth_header, '"access_token":"([^"]+)"')
                if access_token then
                    request_handle:headers():replace("Authorization", "Bearer " .. access_token)
                end
            end
        end
  - name: envoy.filters.http.router
    typed_config:
      '@type': type.googleapis.com/envoy.extensions.filters.http.router.v3.Router

However, it'll be great to have this as a configuration option in the GCP Authentication Filter to automatically use the access_token / manipulate the response body using JSON path expressions to inject the right header.

@tyxia @yanavlasov

@sidharthramesh Thanks for your interest in gcp_authn_filter!
The support for access_token is definitely good to have. It was not implemented because we don't have use case for this. So it has been scoped as future work in my original design.  This support was also discussed here.
I can check with team again but I guess most likely we don't have bandwidth for this at the moment. If you want to contribute to this filter, that will be very welcomed. I can help with any questions, code review and so on.

Thank you @tyxia!
We don’t see this as an immediate blocker because of the Lua filter workaround.
However, I’ll check with my team and let you know if there’s any bandwidth on our side to contribute.
Thank you again for all the good work!

@tyxia @sidharthramesh
I can try to help implement this with some guidance if you folks are occupied.
From what I see in the current implementation on the first pass, we would just need to extend the logic to be able to parse access_token correctly from response (oauth2 type response). Is that correct? Is there an existing design doc to extend it to access_token?

@kanurag94  Thanks for your interest in contribution! I will be happy to help here.
I think the first step is request path (rather than response). Currently, this filter only supports query of id_token from metadata server.  Access token will be queried by different command/request. Here is the doc about more details. @sidharthramesh probably could also share more details since his team has retrieved access token?
Once request path is done, we can then work on response path.
Then next step is using cache to store the valid token avoid redundant query when token is still valid

Thanks @tyxia for the detailed steps.
I could see that in this issue and on https://github.com/envoyproxy/envoy/issues/24612#issue-1501303743 -- users have been able to use the same URL with instead of requesting identity they query for token.

If we don't wish to change the API:
When I see the code, I think we can make it more generic to include this case. Right now, AFAIU, this is working by accident. There we can either hard code finding id_token or access_token in response and parse accordingly. Or we use the cluster URI to figure the kind of request (I don't have much idea about metadata server but all examples seem to point it is usually standard).
If we should change the API:

Add support for access_token: We add TYPE: enum(ID_TOKEN, ACCESS_TOKEN) and accordingly extract the value and handle request. We find the expiry time from parsing the JWT (like it happens currently) and for access_token look for expires_in which is oauth standard response.
Add Generic Type: We introduce TYPE: enum(ID_TOKEN, GENERIC) where GENERIC may mean we provide  a way to parse the response as mentioned by @sidharthramesh using json path expression (genericConfig) for eg. $.access_token. It may look like:

genericConfig:
   jsonTokenPath: (REQUIRED)
   jsonTokenExpiryPath: (Optional -- can be taken from $.expires_in by default or by parsing the token)

Alternatively, we can consider the case to be GENERIC without introducing type, if genericConfig is present.
Would love to know your thoughts on this.


Fix loading images upside down when using dlib

Fixes #98

And I thought, it's only my problem.
Thank you!
Your fix was just in time for me.


Any new features?

Hello everyone,
If you want any new features in the rating system please write it down below.

readonly mode?

Can you briefly explain about the mode please?

@goops17 Sometimes you might want to show the rating but not let the user edit it. For example, a rating bar might be shown to display the average rating from a number of reviews; obviously the user cannot edit this rating directly.

Sounds like good idea. Anyone wants to implement it?

Seems easy enough; I will try to submit a PR tonight

I agree with @franzejr
vertical, horizontal mode.
They are your rival ;>
https://github.com/buraktabn/starreviews
https://github.com/buraktabn/give-star-reviews

@goops17
original Icon or Image options.

@shinriyo do you want to work on any of these?

@goops17 Wow. Quick response.
I desire readonly mode.

@shinriyo go ahead with readonly mode.
I can improve this plugin on weekends.

@goops17 Do you mean that I fix and pull-request for it?

sure

just commented out them. it will be read-only
//              onRatingChanged: (rating) => setState(
//                    () {
//                      this.rating = rating;
//                    },
//                  ),

@goops17
fill or border option for empty star

updated with latest commit


SSO automation

Automation of Secondary Scheduler Operator

Please add this role in the playbook/main.yml file.

Added.


52 pop plot no uc

Description

Bug fix to resolve issue with generating population folium plots without an urban centre. Fixes #52
Motivation and Context

Fixing the bug so that folium population plots can be built without defining an urban centre
Type of change

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

How Has This Been Tested?

Tested locally with and without an urban centre. AttributeError no longer raised, and the expected plots are returned (no urban centre when one isn't provided). The fix has had no impact on the original functionality (checked that providing and urban centre still works too). No unit tests yet for RasterPop plotting function, see #57. Linking this PR back to that issue so that one will be added when the tech-debt is re-payed.
Test configuration details:

OS: macOS
Python version: 3.9.13
Java version: 11
Python management system: conda/pip

Advice for reviewer

Cherry-picked commit d385bd4 into this branch in advance. This brings in docstring changes into RasterPop, that were made in 105-setup-sphinx to check restructured text parsing inside docstrings. This was done so that these docstring changes do not influence the 105-setup-sphinx PR by changing the line numbers, and vice versa. This way, both open PRs can be reviewed in any order without introducing a merge conflict.
Checklist:

[X] My code follows the intended structure of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Additional comments

None

Codecov Report
Patch coverage has no change and project coverage change: -0.64% :warning:

Comparison is base (3d0a776) 85.52% compared to head (f6d92dd) 84.88%.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev     #113      +/-   ##
==========================================
- Coverage   85.52%   84.88%   -0.64%
==========================================
  Files          10       10
  Lines         670      675       +5
==========================================
  Hits          573      573
- Misses         97      102       +5

Flag
Coverage Δ

unittests
84.88% <0.00%> (-0.64%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Changed
Coverage Δ

src/transport_performance/population/rasterpop.py
52.59% <0.00%> (-1.77%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Ledger live desktop

Description of changes
ledger-live-desktop: 2.49.0 -> 2.49.2

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

oops, didn't notice this pr https://github.com/NixOS/nixpkgs/pull/198252

No problem, i am happy to see you provide updates too


Add 'assets:' loader for Pages Functions

Adds 'assets:' loader for Pages Functions.
This lets users and Plugin authors include a folder of static assets in Pages Functions.
export { onRequest } from "assets:../folder/of/static/assets";

More information in our docs.

Hi, can you document how to add this "assets" loader to my webpack configuration?
I am trying to include @cloudflare/pages-plugin-graphql and am unable to build my project without this.


Build error when using @import when modules are disabled

Build error in NBPhoneNumberDefines.h:
/var/folders/01/qpbck_0j79g966q8qkfw1ch0002rry/T/CocoaPods/Lint/Pods/Headers/Private/libPhoneNumber-iOS/NBPhoneNumberDefines.h:7:1: error: use of '@import' when modules are disabled
@import Foundation;
^

#import <Foundation/Foundation.h> can be used for static libs and dynamic frameworks since all #import and #include directives are mapped to use @import automatically if modules are used: http://stackoverflow.com/questions/18947516/import-vs-import-ios-7

I can PR an update for this if you agree with the issue.

👍

Sure, please

See PR: https://github.com/iziz/libPhoneNumber-iOS/pull/133

Thanks


additional information to use an existing private DNS on another subscription

Hi There,
In order to create MySQL Flexible server with an existing private DNS on another subscription, the "reader" role is required on subscription level
if we can add this information, then it will be great and very helpful, as we were facing some difficulties and error msg is very general which is only mention "forbidden".
thank you.
<EMAIL_ADDRESS>
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: ab572d66-e131-dcf9-8754-d8f8eea01cd5
Version Independent ID: 75e64b41-cd3e-7bc1-a391-fad2b9a956da
Content: az mysql flexible-server
Content Source: latest/docs-ref-autogen/mysql/flexible-server.yml
Service: mysql
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

route to service team

Hi @yonzhan - can u please assign this to @dimadhu. He is the author as well for this documentation. Thanks @maadityo for sharing this feedback.


Question: possible to determine the deepest destination

I have 2 DestinationsNavHost. The top level one is displaying the Root nav graph, and the second one is displaying a deeper nav graph.
When I'm in the top level one, I'm using the function appCurrentDestinationAsState to determine which route the user is currently on. This works fine for the 'flat destinations', however if the user then navigates to the destination which is hosting the second nav graph, and then navigates inside that second graph, the appCurrentDestinationAsState won't reflect that change, and the destination reported is still just the host destination for the second graph.
Is there any way to determine the 'deepest destination' the user is on, from that top level?
Thanks

Hi!
So.. each NavHost is tied to a different NavController. So you’d need the NavController of your deeper NavHost to check what destination the user is on in that NavHost.
Also, the two NavHosts don’t have any relation between them. They’re two completely separate things.. one is not the parent of the other and no one is nested in the other. If that is what you’re looking for, then you still only use a single NavHost and pass to it a NavGraph that contains multiple levels of nested graphs.
All of this is not specific to compose destinations, it is how jetpack compose navigation works.

Yeah that makes sense. Thanks for your help :)


Update

@greenrivers

@MajorKuprich

Hi @Justman10000,
Thanks for translations. :-)
Changes available in new release: https://github.com/greenrivers/grav-plugin-hotjar/releases/tag/1.0.1

Hi @Justman10000,
Thanks for translations. :-) Changes available in new release: https://github.com/greenrivers/grav-plugin-hotjar/releases/tag/1.0.1

Instead of simply merging🤦

As You can see :-)

As You can see :-)

I meant, you can simply merge PRs

I know it perfectly man.

I know it perfectly man.

You do know where I'm talking about?


Observable.combineLatest2 return no result on rxdart 0.21.0

no issues on rxdart 0.18.0 and working fine,
issuse with new flutter rxdart package 0.21.0 only
issues reside in flutter_architecture_samples-master\blocs\lib\src\todos_list_bloc.dart
// To calculate the visible todos, we combine the todos with the current
// visibility filter and return the filtered todos.
//
// Every time the todos or the filter changes the visible items will emit
// once again. We also convert the normal Stream into a BehaviorSubject
// so the Stream can be listened to multiple times
final visibleTodosController = BehaviorSubject<List<Todo>>();

Observable.combineLatest2<List<Todo>, VisibilityFilter, List<Todo>>(
  interactor.todos,
  updateFilterController.stream,
  _filterTodos,
).pipe(visibleTodosController);

Is the issue there? or up further due to the use removal of (seedValue, ...) in rxdart v0.21.
Replace final updateFilterController line to:
final updateFilterController = BehaivourSubject.seeded(...
Refer to the rxdart changelog for details.

what is the error that you are getting?
I am having error with the Injector not being passed in, or being passed in as null

Hey all -- I've updated to the latest RxDart 0.23.x and think I've fixed all these issues. Please let me know if you run into more trouble!


Linkify telephone numbers

In some messaging apps on mobile (including Android Messages, iMessage, and Signal), if some text in a message looks like a phone number, it turns into effectively a link for the phone number.
A user requested the same feature for Zulip today in chat.
The behavior seen in other apps is a bit different between iOS and Android: see details, with screenshots, in the chat thread.
It's not yet clear just how we'd want this to work. One possibility is that the server would linkify these when the message is sent, like we do for bare URLs. That'd mean it appears as a link on all platforms, even desktop; might be annoying for many users, but at least some users want that behavior.

Let's look into making this conditional on whether the device actually has an app that can open tel: links.
We should be able to check that with a query to url_launcher.canLaunchUrl. Looking at that API and the linked platform APIs, I think we'd want to do just one query, on startup, and remember the result.


MacOS AppleSilicon: OS reports application as damaged after installing from dmg

MacOS security settings is blocking aplication from running reporting it as damaged. Currently the only working solution is to run following command from Terminal after installation:
xattr -cr /Applications/AbracaDABra.app
Better solution to be found.

Issue should be fixed using Xcode to build release.


DOC: stats: remove NumericalInverseHermite from scipy.stats API docs

Reference issue
follow-up of #15083
What does this implement/fix?
NumericalInverseHermite has been shifted to scipy.stats.sampling and deprecated from scipy.stats. gh-15083 forgot to remove the entry of NumericalInverseHermite from scipy.stats API docs.

Hi, there is a warning in the build_docs job:
release/1.7.0-notes.rst:263: WARNING: py:obj reference target not found: scipy.stats.NumericalInverseHermite

another question: should we already remove the link now or only once the method has been removed?

should we already remove the link now or only once the method has been removed?

I thought deprecated functionality needs to be removed from API docs. But I checked how deprecations have been handled before (pinv2 being deprecated in 1.7) and the docs still list them. So, I think it's OK to keep it as it is until we completely remove it. I will close this. Sorry for the noise.

@tirthasheshpatel I think something still needs to be done because the docs aren't rendering properly. Not sure what to do offhand, though?


Not able to deploy dev.yml file for next steps in installation

Below is the image, not able able to achieve this step of my installation of Service Workbench on AWS.

Serverless Error ---------------------------------------
Stack with id dev-va-sw-preDeployment does not exist
Above error is coming while deploying dev.yml file. I'm performing all the steps of installation using cloud9 on lab learner using aws academy lab.
please help ASAP!

hi thanks for reply.
this is what i am using, https://github.com/awslabs/service-workbench-on-aws/blob/mainline/docs/Service_Workbench_Install_Guide.pdf, stuck at pg 5 of this guide.
as i am using AWS Console through a learner lab from AWS academy.
while deploying my dev.yml, stacks are creating but deleting as i do not have authorized access for creating a role as i am not a root user or any other user.
below is the dev.yml file.

Target AWS region, defaults to us-east-1 if not provided.  Note thet some global system components
(e.g. Lambda@Edge) are always deployed via a stack in us-east-1 no matter the setting here.
Note: Please delete the hashtag and empty space for settings to be in effect
awsRegion: us-east-1
AWS profile to use for deployment; if not specified here, defaults to using the same credentials
the AWS CLI is set up to use (either a profile in ~/.aws/config or an instance role if on EC2).
#awsProfile: sw-main
The short solution name is used to namespace a few AWS resources. Try to keep this
setting short to avoid hitting long strings issues; the default should be fine in most cases,
but if multiple separate instances of the system are deployed within a single account,
this name can be changed to ensure they are disambiguated.
solutionName: sw
The environment name where you want to deploy the solution to. Normally this defaults to
the serverless stage name and should be left unchanged here.
This is also used for creating a namespace for resources. Usually, this is same as serverless "stage".
All resource names reference "envName" instead of directly using "opt:stage".
This indirection allows for easy incorporation of extra variables in the "envName", if required.
For example, if the same solution needs to be deployed across multiple AWS accounts we can easily
add account specific variable in "envName" for keeping the namespace specific to each account.
#envName: ${opt:stage}
The environment type (e.g. dev, demo, prod). This is for grouping multiple environments
into types. For example, all developers' environments can be of type "dev". This can be
used for enabling conditionals in code that might need to be different between dev and
production builds (for example, enabling CORS for localhost for local development).
Defaults to prod if unspecified.
envType: dev
Enable this to create a Service Catalog portfolio and populate workspace products
Override and disable this setting if you wish to create your portfolio manually
createServiceCatalogPortfolio: true
Root user's email address. Currently unused, and can be left unspecified for test environments,
though future features might use it for capabilities such as usage reports and system alerts.
#rootUserEmail<EMAIL_ADDRESS>THIS SETTING IS ONLY APPLICABLE FOR LOCAL DEVELOPMENT
A flag indicating if lambda function role's trust policy (assume role policy) should be automatically adjusted to
allow assuming the role from local machine (applicable only for local development)
localRoleAutoAdjustTrust: true
To use a custom domain name, provide the following two values, the domain name
itself, and the ARN for the manually-created TLS certificate to use from ACM.
Note the current implementation assumes that DNS is handled elsewhere; a future
improvement will automatically handle creation of the cert and Route53 entries.
#domainName: sw.example.com
#certificateArn: arn:aws:acm:us-east-1:123456789012:certificate/abcdef01-abcd-ef01-2345-abcdef012345
Array of identity provider ids.
The usual practice is to keep this same as the domain name of the idp.
For example, when connecting with an IdP that has users<EMAIL_ADDRESS><EMAIL_ADDRESS>etc then
the id should be set to "example.com"

If you do not want to connect to Active Directory then leave this setting as its default.
#fedIdpIds: '["datalake.example.com"]'
Array of identity provider names. This array should be in same order as the "fedIdpIds"
Some name for the IdPs. (such as 'com.ee', 'EEAD' etc)

If you do not want to connect to Active Directory then leave this setting as its default.
#fedIdpNames: '["DataLake"]'
Array of identity provider display names. This array should be in same order as the "fedIdpIds"
Display name (such as 'Employee Login', 'AD Login' etc). This can be used in UI to login options.

If you do not want to connect to Active Directory then leave this setting as its default.
#fedIdpDisplayNames: '["Login using Active Directory"]'
Array of identity provider SAML metadata. This array should be in same order as the "fedIdpIds".
The array should contain either
1. S3 or http(s) url pointing to the IdP metadata.
If S3 URL then it must be accessible by the post-deployment lambda
(i.e., the lambda must have getObject permission to read the specified metadata file location from S3)
The GetObject permission is given by the "RolePostDeploymentLambda" in "post-deployment/config/infra/cloudformation.yml"
If it's http(s) URL then it must be reachable over the public internet.
(TODO: Add support for metadata URLs accessible only in private network.)
OR
2. the metadata content XML blob as string
The current implementation looks for the file in "solution/post-deployment/config/saml-metadata" directory and
uploads the file to the S3 directory (prefix) "${self:custom.settings.deploymentBucketName}/saml-metadata/".
The uploading of the file is done using serverless s3-sync plugin. See "post-deployment/serverless.yml"
file and search for "s3Sync" to see which files are uploaded to the "${self:custom.settings.deploymentBucketName}" S3
bucket.

If you do not want to connect to Active Directory then leave this setting as its default.
TODO: Remove saml-metadata/datalake-example-idp-metadata.xml file and replace this setting to use sample file
#fedIdpMetadatas: '["s3://${self:custom.settings.deploymentBucketName}/saml-metadata/datalake-example-idp-metadata.xml"]'
Enable the Egress Store feature would allow researchers to securely egress data from lockdown Workspace
NOTE: Once the enableEgressStore is set to true, the egress store feature will be enabled and can NOT be toggled off.
If you toggle the egress store from true to false and redeploy the whole solution, the backend stack deployment should error out with following message:
Error validating existing stack policy: Unknown logical id 'LogicalResourceId/EgressStore*' in statement {} - stack policies can only be applied to logical ids referenced in the template
Stack policies are applied here: addons/addon-stack-policy/packages/stack-policy/lib/steps/update-cfn-stack-policy.js
#enableEgressStore: false
Determine whether workspace should be accessible only through AppStream
NOTE: Once the isAppStremEnabled is set to true, the AppStrem feature will be enabled and can NOT be toggled off.
If you toggle the AppStream feature from true to false and redeploy the whole solution, the backend stack deployment should error out with following message:
Error validating existing stack policy: Unknown logical id 'LogicalResourceId/AppStream*' in statement {} - stack policies can only be applied to logical ids referenced in the template
Stack policies are applied here: addons/addon-stack-policy/packages/stack-policy/lib/steps/update-cfn-stack-policy.js
#isAppStreamEnabled: false
Enable the AMI sharing feature so the AMIs and Appstream images can be maintained in a central devops account
enableAmiSharing: false
The images will be shared using the AWS CLI profile mentioned below.
Please make sure that the profile has necessary permissions to create images and create IAM role
devopsProfile: devops
If you want to restrict the administrator to accessing the user's workspace then to enable the flag by setting it to true. Also, It will also allow the admin to connect with his own workspace.
restrictAdminWorkspaceConnection: false
Disable the create study button and upload files button in the studies to the researchers, the data will flow through BYOB workflow only. To enable this feature by setting it to true
disableStudyUploadByResearcher: false
Application admin should not be a study admin in the creation of BYOB study. To enable this feature by setting it to true
disableAdminBYOBSelfAssignment: false
Version number of current release
versionNumber: 'Beta'
Release date of current release
versionDate: 'Latest Release Version: 5.2.0'

please guide me how can i resolve this problem, let me know ASAP!

I am receiving the same error: dev-va-sw-preDeployment. Could you help @shres3007 @Bingjiling @gazzyt @shres3007

@shres3007 Did you come right with this issue ? I am having a similar issue. Could you share your resolution on this case please.

Hello @shres3007, @ebrahim989,
The AWS credentials performing the installation is suggested to have admin permissions over the main account so as to make deployment go smoothly. These permissions are a must for deploying SWB. This would allow creating the various AWS resources listed out in the solution's CloudFormation templates; whereas insufficient permissions will make the CloudFormation stack to rollback and delete.
Regards,
Sanket

Thank you, I managed to come right with this issue. Was definitely credentials I needed to change.

Hey Sanket, Thank you!
I understood, but I don't have access for main account. I can only use AWS Console through AWS Learner Lab which does not have admin permissions.
So you are saying i can only deploy through main account of AWS console.

Hello, I haven't tested on lab account but I would say main account works better.

hello, yes correct but i don't have access of main account. that's why i asked how can i implement with Learner Lab AWS Console.
thank you

i'm using an admin account and i still get the same error. How do you check in Cloud9 which account is doing the execution?

I found the account under the AWS credentials directory. It rotates the keys automatically. I preferred the EC2 method rather than Cloud9

thanks @ebrahim989 . I've dug deeper into why the stack create was failing and found it it was due to a known node version issue (it's required to use v14 and my version was v16). That particular issue is recorded here: https://github.com/awslabs/service-workbench-on-aws/issues/879

Aah I see, yes correct. I had similar issues at first.

Hi all! Is there any remaining issues here or can this issue be closed? We also have recently published a release that would work with node version v16 during deployment.
Thanks,
Marianna


iOS Light Node

Can anyone explain to me in more details about the use of these functions?
txutils.createContractTx(fromAddress, txObject)
txutils.functionTx(abi, functionName, args, txObject)
Actually, at first I thought these functions are use to deploy and interact with smart contracts on light node. I thought this light wallet is similar to Geth's light node wherein it can run light node and doesn't really need to run a full node on a server that we need to maintain.

@dominic-cei Lightwallet is not a light client, it is simply a key management solution. :)


MNT: Re-rendered with conda-build 3.21.8, conda-smithy 3.19.0, and co…

…nda-forge-pinning 2<IP_ADDRESS>.03.34

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Assertions in meshletization when using uncommon meshlet_triangles values

Hi,
nVidia recommends meshlets with 126 primitives according to this page https://developer.nvidia.com/blog/advanced-api-performance-mesh-shaders. The problem is that the meshopt_buildMeshletsXXX functions are not designed to work with a value like 126. Passing 126 will hit the following assertions:
assert(max_triangles % 4 == 0); // ensures the caller will compute output space properly as index data is 4b aligned

Not sure if it would be a good idea to remove that limitation.

The code would technically work with 126, but because each meshlet aligns the index data by 4 bytes for performance, using values that aren't divisible by 4 is dangerous as they complicate the computation for worst case index buffer size and the caller might not correctly perform this; for example, for max_triangles 126, the worst case effective amount of index data per meshlet is not 126*3=378 bytes - it's 380 bytes. If the caller allocates 378 bytes per meshlet, degenerate inputs may result in an overflow of that buffer.
This limitation could of course be removed; the documentation could be adjusted to reflect this (the documentation doesn't seem to mention this restriction so it needs to be updated either way...). However, in practice I think you should not observe performance degradation between 126 and the next lowest value divisible by 4 (124) because with a configuration that NVidia recommends (64v 126t), meshlets should almost never reach 124 triangles because of topology constraints.

Thanks for the explanation. An update in the README might be enough then.


Version 1.10

First api-minor at
#8912 [api-minor] Replace DOMParser with SimpleXMLParser

Looks good. Merge it whenever you have time to make the release.

It looks like this will fix #9059 too. Is there progress on this, @yurydelendik?

We can release beta release later.


Outdated docs on the website

The following section is missing from the website version:
https://github.com/electron/electron/blob/f595443a22a01b61750942532cbf38bef12626f3/docs/api/base-window.md#resource-management

Seems like we need to backport https://github.com/electron/electron/commit/72802c374b8fa719fbd2ec69cf25079a3db67df3 to 33-x-y :)

Opened https://github.com/electron/electron/pull/44874

Thanks for explaining, @erickzhao! I didn't know docs PRs needed to be backported.
Is there a way to have trop do it or do I have to do it manually?
This will also be relevant for all future PRs of mine that someone merges without applying proper backport tags. (Unfortunately, I can't apply them myself.)

Thanks again for explaining and for the backport! I also backported another PR to 33 to make it show up on the website: https://github.com/electron/electron/pull/44875
I'll keep this in mind going forward and check that my docs PRs are backported properly.

Is there a way to have trop do it or do I have to do it manually?

@nikwen Unfortunately, the best way would be to ping a maintainer or do it manually. Without the ability to add labels or run trop manually.
The [e backport](https://github.com/electron/build-tools?tab=readme-ov-file#e-backport-pr) command in Electron Build Tools makes this task slightly easier as well.

Thanks! I didn't know about e backport. Will check it out.
If I ping a maintainer, can they run Trop to do a backport of a PR that has already been merged? Or would I just be putting the burden on them to do a manual backport?


Functions accessing other resources?

** Which Category is your question related to? **
Amplify functions
** What AWS Services are you utilizing? **
Amplify
** Provide additional details e.g. code snippets **
In Amplify 1.7, we're asked this question when adding a function:

Is there any documentation on how to take advantage of the that?
The only difference I notice when I select access to other resources, is some additional roles for the lambda and process.env making some values available.

@rawadrifai In addition to adding policies to the lambda execution role, you can also access amplify managed resources like your AppSync API through your lambda function through environment variables. For more details around this support, checkout - https://aws.amazon.com/blogs/mobile/amplify-framework-adds-support-for-aws-lambda-functions-and-amazon-dynamodb-custom-indexes-in-graphql-schemas/


NoMethodError: undefined method `push' for nil:NilClass

I'm not able to run logstash with logstash-input-kafka plugin.
This is error log from my docker:
logstash_1       | {:timestamp=>"2016-09-18T15:31:10.948000+0000", :message=>"Pipeline aborted due to error", :exception=>"LogStash::ConfigurationError", :backtrace=>["/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-kafka-2.0.9/lib/logstash/inputs/kafka.rb:127:inregister'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:330:in start_inputs'", "org/jruby/RubyArray.java:1613:ineach'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:329:in start_inputs'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:180:instart_workers'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:136:in run'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/agent.rb:491:instart_pipeline'"], :level=>:error}
logstash_1       | {:timestamp=>"2016-09-18T15:31:13.953000+0000", :message=>"stopping pipeline", :id=>"main"}
logstash_1       | {:timestamp=>"2016-09-18T15:31:13.980000+0000", :message=>"An unexpected error occurred!", :error=>#<NoMethodError: undefined method push' for nil:NilClass>, :class=>"NoMethodError", :backtrace=>["/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-kafka-2.0.9/lib/logstash/inputs/kafka.rb:171:in stop'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/inputs/base.rb:83:indo_stop'", "org/jruby/RubyArray.java:1613:in each'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:385:inshutdown'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/agent.rb:413:in stop_pipeline'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/agent.rb:406:inshutdown_pipelines'", "org/jruby/RubyHash.java:1342:in each'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/agent.rb:406:inshutdown_pipelines'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/agent.rb:402:in shutdown'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/agent.rb:233:inexecute'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/runner.rb:94:in run'", "org/jruby/RubyProc.java:281:incall'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/runner.rb:99:in run'", "org/jruby/RubyProc.java:281:incall'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/task.rb:24:in initialize'"], :level=>:warn}`
My logstash input config:
input {         kafka {         } }

This issue can be closed. I didn't notice that I have to set at least one of: topic_id, white_list or black_list.

glad to see this was resolved for you, but it should have really caught that requirement up front so that you wouldn't get a NoMethodError.
I will leave this open until we modify the startup of the plugin to check the appropriate settings were set, and provide a meaninful error message

Closing due to an update in the client and how topics are managed using the topics and topics_pattern configuration options.


[Masthead] Create functional specifications

User Story

As a [user role below]:
IBM.com Library tester

I need to:
have functional specifications available for the Masthead

so that I can:
create test cases for the Masthead and begin testing the component in ernest

Additional information

We may want to break this down into multiple specifications
Current Masthead: https://ibmdotcom-react.mybluemix.net/?path=/story/components-masthead--default
We may want to think about L1 in a separate story or series of stories entirely

Acceptance criteria

[ ] Functional specification documentation created and added to the IBM.com Library folder in Box
[ ] Walkthrough of the functional specifications with the QA team
[ ] Walkthrough of the functional specifications with DDS leadership

Abstract migration of the designs are needed.

An epic (#884) was created to manage this work.  This is duplicate.  Closing this issue.


CARLA 0.9.15 fails to build Houdini Engine

CARLA version: 0.9.15
Platform/OS: Windows 10 - Visual Studio 2022
Problem you have experienced:
After running Update.bat, I get this error
-[BuildCarlaUE4]: Building Unreal Editor...
Using 'git status' to determine working set for adaptive non-unity build (D:\Programs\UnrealEngine-0.9.15).
Creating makefile for CarlaUE4Editor (UnrealBuildTool.exe is newer)
While compiling D:\Programs\carla_0.9.15\Unreal\CarlaUE4\Intermediate\Build\BuildRules\CarlaUE4ModuleRules.dll:
d:\Programs\carla_0.9.15\Unreal\CarlaUE4\Plugins\HoudiniEngine\Source\HoudiniEngine\HoudiniEngine.Build.cs(44,7) : error CS0246: The type or namespace name 'EpicGames' could not be found (are you missing a using directive or an assembly reference?)
UnrealBuildTool: ERROR: Unable to compile source files.

which I attempted to fix by replacing using EpicGames.core with using Tools.DotNETCommon as suggested here (not sure if this is the correct fix). After this, I get a different error:
-[BuildCarlaUE4]: [Batch params]: --build --all
--build
--all
ECHO is off.
-[BuildCarlaUE4]: Building Unreal Editor...
Using 'git status' to determine working set for adaptive non-unity build (D:\Programs\UnrealEngine-0.9.15).
Creating makefile for CarlaUE4Editor (UnrealBuildTool.exe is newer)
Houdini Engine : Houdini 20.0.556 could not be found. Houdini Engine will not be available in this build.
UnrealBuildTool: ERROR: Could not find definition for module 'EditorFramework', (referenced via Target -> CarlaTools.Build.cs -> HoudiniEngine.Build.cs -> HoudiniEngineRuntime.Build.cs)
make: *** [CarlaUE4Editor] Error 6

I should add that if I remove Houdini Engine and all references to it, the build finishes successfully and I'm able to run CARLA 0.9.15

I should add that if I remove Houdini Engine and all references to it, the build finishes successfully and I'm able to run CARLA 0.9.15

hihi can you please explain how you did it? I have the same issue.

I should add that if I remove Houdini Engine and all references to it, the build finishes successfully and I'm able to run CARLA 0.9.15

hihi can you please explain how you did it? I have the same issue.

Hi @PierceG6,
This was a while ago but if I remember correctly these were the changes - I removed the files in red, and made these changes to the files with the yellow icon. Then rebuild and hopefully it'll work!

I have builded the carla && unreal engine successfully but when i am running the "make Launch" i facing bellow issue:
Unreal engine 4.26
carla 0.9.15
ubuntu 20.04 with all required prerequsites

We deprecated houdini en CARLA, if you get the last dev code would not have issues with houdini anymore.

I have builded the carla && unreal engine successfully but when i am running the "make Launch" i facing bellow issue: Unreal engine 4.26 carla 0.9.15 ubuntu 20.04 with all required prerequsites

did you solve the problem? ım facing the same issue