feat: support local wrangler.toml

EDIT: Instead of using a config object, and to support production, the user wrangler configuration file will be read.
Hello 👋,
Actually, you use the module nitro-cloudflare-dev under the hood to access to the Wrangler environment API. To setup this module, you create a wrangler.tom file.
However, if I want to access to another binding like AI or Email, it's not possible since I do not have any access to the wrangler.toml file.
This PR allows to customize the wrangler file.
For example:
nuxt.config.ts
export default defineNuxtConfig({
  hub: {
    wranglerConfiguration: {
      ai: {
        binding: 'AI'
      }
    }
  },
})

Will write the following wrangler.toml file:
[[r2_buckets]]
binding = "BLOB"
bucket_name = "default"

[[kv_namespaces]]
binding = "KV"
id = "kv_default"

[[kv_namespaces]]
binding = "CACHE"
id = "cache_default"

[[d1_databases]]
binding = "DB"
database_name = "default"
database_id = "default"

[ai]
binding = "AI" // <-- Here

Then, I can access to the AI binding with the following code:
globalThis.__env__['AI']

With a console.log(globalThis) we got:
 __env__:
   { AI: ProxyStub { name: 'Ai', poisoned: false },
     DB: ProxyStub { name: 'D1Database', poisoned: false },
     KV: ProxyStub { name: 'KvNamespace', poisoned: false },
     CACHE: ProxyStub { name: 'KvNamespace', poisoned: false },
     BLOB: ProxyStub { name: 'R2Bucket', poisoned: false } },

Without the custom config, the AI binding disapears:
  __env__:
   { DB: ProxyStub { name: 'D1Database', poisoned: false },
     KV: ProxyStub { name: 'KvNamespace', poisoned: false },
     CACHE: ProxyStub { name: 'KvNamespace', poisoned: false },
     BLOB: ProxyStub { name: 'R2Bucket', poisoned: false } },

related to #84

Thank you for the PR and idea, your solution works well in development but we also need to think about production too.
@pi0 and I discussed and he worked on generating the wrangler.toml in Nitro directly for production, but still very alpha stage, see https://github.com/unjs/nitro/pull/2353
I think we should instead start by supporting reading the rootDir wrangler.toml and merge it into .data/hub/wrangler.toml instead.
Then for production, in the modules:done hook, we pull the config from NuxtHub and add it to nuxt.options.nitro.cloudflare.wrangler so Nitro can merge with the local wrangler.toml
This is currently only in the Nitro nightly build ⚠

Happy to update your PR to read from the local wrangler.toml @Barbapapazes ?

I think we should instead start by supporting reading the rootDir wrangler.toml and merge it into .data/hub/wrangler.toml instead.

I've just updated the PR to support that.

Then for production, in the modules:done hook, we pull the config from NuxtHub and add it to nuxt.options.nitro.cloudflare.wrangler so Nitro can merge with the local wrangler.toml

Is this for another PR?

Is this for another PR?

I would keep this PR as pending until we can also have the production wrangler generation, otherwise it will break for production once CF will detect a wrangler.toml (it won't take the storage bindings into account)


Add Blend Import

Fixes https://github.com/godotengine/godot-proposals/issues/3529
Discussed with the Godot Discord community and with Reduz.

Just chatted with @fire and I think it would make more sense to move the blender path into EditorSettings, since I do not want to input my blender executable path in every single project on windows, and also would not want to check it into version control by mistake.
I am also apprehensive about the settings for the blender python scripts being per-project. There was an idea of some use-case where a user customizes the blender export to hack in additional features, but my opinion is that level of customization would be best left to custom GDScript addons.
Hardcoding the python strings would be easiest. I'd also be ok with having the scripts as an editor setting.

QA tested reports

skeletons sometimes loses mesh
exporting godot uses the default cube, light and camera.

Filled in the description xml for EditorSceneFormatImporterBlend.

Todo: add an explicit enable per project.

Due to non-consensus, I'll move export to a separate branch. https://github.com/V-Sekai/godot/tree/blend-export

I'll leave a message with @aaronfranke and @neikeq asking if they have an idea how to resolve the cicd error.

Before merging, please wait until #54976 is merged.

Since now you can add options for blend files, I suggest the following:

Always export GLTF Separate with the "Keep Original" setting on (do not let user choose).
Custom Properties, Cameras and Punctual lights should be exported by default (on by default)
Limit to should probably limit to visible objects by default (what does Unity do here?)
+Y-Up should be always on and not exposed to the user.
UVs, Normals and Tangents should be exposed, but on by default.
Materials and Images setting should not be exposed (use Default and Automatic).
Compression should not be exposed because we do away with the GLTF file anyway.
Animations options all exposed, on by default.
Shape Keys not exposed. Shape key tangets always on
Skinning exposed by Include all bone influences on by default.

Additionally, It would be ideal that we use the the code from the ESCN exporter and hook it into the Blender GLTF2 export hooks that converts Blender materials to Godot shaders, and we expose it as an option "Export materials as Godot shaders". This can be done at a later stage, though.

List of options. Please help craft the wording.
{
"cameras": true,
"custom_properties": true,
"punctual_lights": true,
"export": { EXPORT_VISIBLE, EXPORT_ALL },
"uvs": true,
"normals": true,
"tangents": true,
"animation/limit_playback_range": true,
"animation/always_sample_animations": true,
"animation/group_tracks": true,
"animation/export_bones_deforming_mesh_only": true,
"skins": { SKIN_COMPATIBLE_INFLUENCES, SKIN_ALL_BONE_INFLUENCES },
}

I'd really love the apply_modifiers option to be exposed as well, though it might contradict with @reduz's request for:

Shape Keys not exposed (always export if they exist). Shape key tangets always on

Would you be open to one of the following options?

Expose options for export_modifiers and export_shapekeys only allow one to be selected
Expose options for export_modifiers and export_shapekeys, warn if both are selected
Write some extra python to detect if shapekeys are present, and automatically set the options appropriately (maybe warning if you have both shapekeys and unapplied modifiers)

If you want to clean this up? https://github.com/V-Sekai/V-Sekai-Blender-tools/tree/main/addons/ApplyModifierForObjectWithShapeKeys

I think getting apply modifers to work with blend shapes is out of scope for this pr.

Oh yeah, I wasn't suggesting that at all. ApplyModifierForObjectWithShapeKeys looks neat, but I'd be perfectly happy with the option to apply modifiers on models that don't use shapekeys (which is most models, for me).

There's also the question of triangulation: should we perform it automatically on export? In general, triangulating a mesh before exporting it is recommended to ensure the triangle layout is deterministic across applications. This is especially important if you're using 3D painting software on the same mesh.

I remember some Blender exporters featuring a built-in triangulate option which doesn't require you to add a modifier

https://github.com/godotengine/godot-blender-exporter/blob/c1136facd90c3f1336c86e7a9921de889e46af5b/io_scene_godot/converters/utils.py#L35-L46 for reference

While I wait for cicd in ~40 minutes, I'll do some QA.

I'm not sure if the Map can be exposed to GDScript. I would suggest using Dictionary instead of Map<StringName, Variant>.

Please see the awful conversion code here. https://github.com/godotengine/godot/pull/54886/files#diff-849438ec58c77afcf1e87ce436d91f8dac1325c98ae9c9d6488707d0ca055517R78-R84 @lyuma for Dictionary to Map.

Fire explained that reduz specifically requested Map<StringName, Variant> instead of Dictionary, so you can ignore my comment about this. I see the conversion code in three places for the virtual
Also, @fire noted that import_scene_from_other_importer was removed because _import_scene could be called from GDScript instead, for example manually invoking the FBX importer can be done with:
var fbx = EditorSceneFormatImporterFBX.new()
fbx._import_scene()

Unfortunately, _import_scene is virtual and cannot be called.
I attempted the above code snippet but got this error instead:
 Invalid call. Nonexistent function '_import_scene' in base 'EditorSceneFormatImporterFBX'.

So I think we need another API or some other way to invoke the importer of our choosing.

Importing .blend files causes heap corruption on Windows. It is reproducible 100% of the time on my computer on every blend file. I have not had any successfully import yet.
The thread 0x12658 has exited with code 0 (0x0).
Critical error detected c0000374
godot.windows.tools.64.exe has triggered a breakpoint.

Run 1 stacktrace (where the error is detected, after it happened):
 	ntdll.dll!RtlReportCriticalFailure()	Unknown
 	ntdll.dll!RtlpHeapHandleError()	Unknown
 	ntdll.dll!RtlpHpHeapHandleError()	Unknown
 	ntdll.dll!RtlpLogHeapFailure()	Unknown
 	ntdll.dll!RtlpAnalyzeHeapFailure()	Unknown
 	ntdll.dll!RtlpFreeHeap()	Unknown
 	ntdll.dll!RtlpFreeHeapInternal()	Unknown
 	ntdll.dll!RtlFreeHeap()	Unknown
 	godot.windows.tools.64.exe!_free_base(void * block) Line 105	C++
 	godot.windows.tools.64.exe!Memory::free_static(void * p_ptr, bool p_pad_align) Line 169	C++
>	godot.windows.tools.64.exe!LocalVector<Vector3,unsigned int,0>::reset() Line 115	C++
 	godot.windows.tools.64.exe!LocalVector<Vector3,unsigned int,0>::~LocalVector<Vector3,unsigned int,0>() Line 254	C++
 	godot.windows.tools.64.exe!ImporterMesh::generate_lods(float p_normal_merge_angle, float p_normal_split_angle) Line 613	C++
 	godot.windows.tools.64.exe!ResourceImporterScene::_generate_meshes(Node * p_node, const Dictionary & p_mesh_data, bool p_generate_lods, bool p_create_shadow_meshes, ResourceImporterScene::LightBakeMode p_light_bake_mode, float p_lightmap_texel_size, const Vector<unsigned char> & p_src_lightmap_cache, Vector<Vector<unsigned char> > & r_lightmap_caches) Line 1612	C++
 	godot.windows.tools.64.exe!ResourceImporterScene::_generate_meshes(Node * p_node, const Dictionary & p_mesh_data, bool p_generate_lods, bool p_create_shadow_meshes, ResourceImporterScene::LightBakeMode p_light_bake_mode, float p_lightmap_texel_size, const Vector<unsigned char> & p_src_lightmap_cache, Vector<Vector<unsigned char> > & r_lightmap_caches) Line 1698	C++
 	godot.windows.tools.64.exe!ResourceImporterScene::_generate_meshes(Node * p_node, const Dictionary & p_mesh_data, bool p_generate_lods, bool p_create_shadow_meshes, ResourceImporterScene::LightBakeMode p_light_bake_mode, float p_lightmap_texel_size, const Vector<unsigned char> & p_src_lightmap_cache, Vector<Vector<unsigned char> > & r_lightmap_caches) Line 1698	C++
 	godot.windows.tools.64.exe!ResourceImporterScene::import(const String & p_source_file, const String & p_save_path, const Map<StringName,Variant,Comparator<StringName>,DefaultAllocator> & p_options, List<String,DefaultAllocator> * r_platform_variants, List<String,DefaultAllocator> * r_gen_files, Variant * r_metadata) Line 2036	C++
 	godot.windows.tools.64.exe!EditorFileSystem::_reimport_file(const String & p_file, const Map<StringName,Variant,Comparator<StringName>,DefaultAllocator> * p_custom_options, const String & p_custom_importer) Line 1901	C++
 	godot.windows.tools.64.exe!EditorFileSystem::reimport_files(const Vector<String> & p_files) Line 2151	C++
 	godot.windows.tools.64.exe!EditorFileSystem::_update_scan_actions() Line 627	C++
 	godot.windows.tools.64.exe!EditorFileSystem::_notification(int p_what) Line 1224	C++

and run 2 stacktrace:
 	ntdll.dll!RtlReportCriticalFailure()	Unknown
 	ntdll.dll!RtlpHeapHandleError()	Unknown
 	ntdll.dll!RtlpHpHeapHandleError()	Unknown
 	ntdll.dll!RtlpLogHeapFailure()	Unknown
 	ntdll.dll!RtlpAllocateHeap()	Unknown
 	ntdll.dll!RtlpAllocateHeapInternal()	Unknown
 	ntdll.dll!RtlpAllocateUserBlockFromHeap()	Unknown
 	ntdll.dll!RtlpAllocateUserBlock()	Unknown
 	ntdll.dll!RtlpLowFragHeapAllocFromContext()	Unknown
 	ntdll.dll!RtlpAllocateHeapInternal()	Unknown
 	godot.windows.tools.64.exe!_malloc_base(unsigned __int64 size) Line 34	C++
 	[Inline Frame] godot.windows.tools.64.exe!_aligned_offset_malloc_base(unsigned __int64 align, unsigned __int64) Line 169	C++
 	[Inline Frame] godot.windows.tools.64.exe!_aligned_malloc_base(unsigned __int64) Line 122	C++
 	godot.windows.tools.64.exe!_aligned_malloc(unsigned __int64 size, unsigned __int64 alignment) Line 555	C++
>	godot.windows.tools.64.exe!embree::alignedMalloc(unsigned __int64 size, unsigned __int64 align) Line 23	C++
 	[Inline Frame] godot.windows.tools.64.exe!embree::Scene::operator new(unsigned __int64) Line 29	C++
 	godot.windows.tools.64.exe!rtcNewScene(RTCDeviceTy * hdevice) Line 163	C++
 	godot.windows.tools.64.exe!StaticRaycasterEmbree::StaticRaycasterEmbree() Line 128	C++
 	godot.windows.tools.64.exe!StaticRaycasterEmbree::create_embree_raycaster() Line 42	C++
 	godot.windows.tools.64.exe!StaticRaycaster::create() Line 37	C++
 	godot.windows.tools.64.exe!ImporterMesh::generate_lods(float p_normal_merge_angle, float p_normal_split_angle) Line 401	C++
 	godot.windows.tools.64.exe!ResourceImporterScene::_generate_meshes(Node * p_node, const Dictionary & p_mesh_data, bool p_generate_lods, bool p_create_shadow_meshes, ResourceImporterScene::LightBakeMode p_light_bake_mode, float p_lightmap_texel_size, const Vector<unsigned char> & p_src_lightmap_cache, Vector<Vector<unsigned char> > & r_lightmap_caches) Line 1612	C++
 	godot.windows.tools.64.exe!ResourceImporterScene::_generate_meshes(Node * p_node, const Dictionary & p_mesh_data, bool p_generate_lods, bool p_create_shadow_meshes, ResourceImporterScene::LightBakeMode p_light_bake_mode, float p_lightmap_texel_size, const Vector<unsigned char> & p_src_lightmap_cache, Vector<Vector<unsigned char> > & r_lightmap_caches) Line 1698	C++
 	godot.windows.tools.64.exe!ResourceImporterScene::_generate_meshes(Node * p_node, const Dictionary & p_mesh_data, bool p_generate_lods, bool p_create_shadow_meshes, ResourceImporterScene::LightBakeMode p_light_bake_mode, float p_lightmap_texel_size, const Vector<unsigned char> & p_src_lightmap_cache, Vector<Vector<unsigned char> > & r_lightmap_caches) Line 1698	C++
 	godot.windows.tools.64.exe!ResourceImporterScene::import(const String & p_source_file, const String & p_save_path, const Map<StringName,Variant,Comparator<StringName>,DefaultAllocator> & p_options, List<String,DefaultAllocator> * r_platform_variants, List<String,DefaultAllocator> * r_gen_files, Variant * r_metadata) Line 2036	C++
 	godot.windows.tools.64.exe!EditorFileSystem::_reimport_file(const String & p_file, const Map<StringName,Variant,Comparator<StringName>,DefaultAllocator> * p_custom_options, const String & p_custom_importer) Line 1901	C++
 	godot.windows.tools.64.exe!EditorFileSystem::reimport_files(const Vector<String> & p_files) Line 2151	C++

are two example stacktraces of when the error was DETECTED. I have no information on when the heap corruption OCCURRED. Please take these stacktraces with a dose of salt.
Crash 3: Did not crash in the allocator, but similar issue
Exception thrown at 0x00007FF66F755F0D in godot.windows.tools.64.exe: 0xC0000005: Access violation writing location 0x0000021FD3A03000.

>	godot.windows.tools.64.exe!ImporterMesh::generate_lods(float p_normal_merge_angle, float p_normal_split_angle) Line 299	C++
 	godot.windows.tools.64.exe!ResourceImporterScene::_generate_meshes(Node * p_node, const Dictionary & p_mesh_data, bool p_generate_lods, bool p_create_shadow_meshes, ResourceImporterScene::LightBakeMode p_light_bake_mode, float p_lightmap_texel_size, const Vector<unsigned char> & p_src_lightmap_cache, Vector<Vector<unsigned char> > & r_lightmap_caches) Line 1612	C++
 	godot.windows.tools.64.exe!ResourceImporterScene::_generate_meshes(Node * p_node, const Dictionary & p_mesh_data, bool p_generate_lods, bool p_create_shadow_meshes, ResourceImporterScene::LightBakeMode p_light_bake_mode, float p_lightmap_texel_size, const Vector<unsigned char> & p_src_lightmap_cache, Vector<Vector<unsigned char> > & r_lightmap_caches) Line 1698	C++
 	godot.windows.tools.64.exe!ResourceImporterScene::_generate_meshes(Node * p_node, const Dictionary & p_mesh_data, bool p_generate_lods, bool p_create_shadow_meshes, ResourceImporterScene::LightBakeMode p_light_bake_mode, float p_lightmap_texel_size, const Vector<unsigned char> & p_src_lightmap_cache, Vector<Vector<unsigned char> > & r_lightmap_caches) Line 1698	C++
 	godot.windows.tools.64.exe!ResourceImporterScene::import(const String & p_source_file, const String & p_save_path, const Map<StringName,Variant,Comparator<StringName>,DefaultAllocator> & p_options, List<String,DefaultAllocator> * r_platform_variants, List<String,DefaultAllocator> * r_gen_files, Variant * r_metadata) Line 2036	C++
 	godot.windows.tools.64.exe!EditorFileSystem::_reimport_file(const String & p_file, const Map<StringName,Variant,Comparator<StringName>,DefaultAllocator> * p_custom_options, const String & p_custom_importer) Line 1901	C++
 	godot.windows.tools.64.exe!EditorFileSystem::reimport_files(const Vector<String> & p_files) Line 2151	C++
 	godot.windows.tools.64.exe!EditorFileSystem::_update_scan_actions() Line 627	C++

Also, it seems to be using the absolute path of the texture, but putting res in front.
For example, a texture located at S:\Projects\assets\blender 1\Textures\Body Texture.png will cause godot to load
res://Projects/assets/blender 1/Textures/Body Texture.png
this error:
ERROR: Resource file not found: res://Projects/assets/blender 1/Textures/Body Texture.png.
   at: (core\io\resource_loader.cpp:210)
ERROR: Condition "array_len == 0" is true. Returning: ERR_INVALID_DATA
   at: RenderingServer::mesh_create_surface_data_from_arrays (servers\rendering_server.cpp:903)

Additionally, it is causing GLTF errors when importing blend files:
ERROR: Invalid image definition in glTF file, it should specific an 'uri' or 'bufferView'.
   at: (modules\gltf\gltf_document.cpp:3032)
ERROR: Invalid image definition in glTF file, it should specific an 'uri' or 'bufferView'.
   at: (modules\gltf\gltf_document.cpp:3032)
ERROR: Invalid image definition in glTF file, it should specific an 'uri' or 'bufferView'.
   at: (modules\gltf\gltf_document.cpp:3032)
ERROR: Invalid image definition in glTF file, it should specific an 'uri' or 'bufferView'.
   at: (modules\gltf\gltf_document.cpp:3032)
ERROR: Index image = 0 is out of bounds (state->images.size() = 0).
   at: GLTFDocument::_get_texture (modules\gltf\gltf_document.cpp:3221)
ERROR: Index image = 0 is out of bounds (state->images.size() = 0).
   at: GLTFDocument::_get_texture (modules\gltf\gltf_document.cpp:3221)
ERROR: Index image = 1 is out of bounds (state->images.size() = 0).
   at: GLTFDocument::_get_texture (modules\gltf\gltf_document.cpp:3221)
ERROR: Index image = 1 is out of bounds (state->images.size() = 0).
   at: GLTFDocument::_get_texture (modules\gltf\gltf_document.cpp:3221)
ERROR: Index image = 2 is out of bounds (state->images.size() = 0).
   at: GLTFDocument::_get_texture (modules\gltf\gltf_document.cpp:3221)
ERROR: Index image = 3 is out of bounds (state->images.size() = 0).
   at: GLTFDocument::_get_texture (modules\gltf\gltf_document.cpp:3221)
ERROR: Index image = 0 is out of bounds (state->images.size() = 0).
   at: GLTFDocument::_get_texture (modules\gltf\gltf_document.cpp:3221)

Finally, I had to fix a couple lines to get the new _import_scene api working.

The scope was too much because of the addition of the importer options map api. Will revisit in a weeks time. Was recommended to split the pr into the import opens map pr and a blend api.

@lyuma import_scene_from_other_importer  was removed because it was only used for importing GLTF2, which you can do with the directly exposed classes now.

I completely agree with you, @reduz
The thing that confused me was that the API which replaces it, namely _import_scene starts with an underscore, and was previously only exposed to GDScript as a virtual call, in other words, could only be overridden but not called.
With the most recent revision, @fire bound the underscore function such that it can be called by GDScript, but that's not the usual convention I'm familiar with. Should the public API not be named import_scene without underscore?
With the most recent PR, this code works:
var fbx = EditorSceneFormatImporterFBX.new()
var node = fbx._import_scene(fbx_path, 0, {}, 30)

Separating the change for import_scene to another pr.

Did more testing of blender. Removed the LOD override and fixed various bugs.
I think it still breaks godot-vrm. Am still working on that.

Pending on https://github.com/godotengine/godot/pull/56479.

Test plan:

check every import option
no crashes
see if artists can use blender import

I just built https://github.com/godotengine/godot/pull/54886/commits/599da9d7297e0d98c5f23be60e6e6df49029961a, and I'm not seeing filesystem/blender under the Editor Settings. Is there something I'm missing? I'm compiling with scons -j16 platform=x11 target=release_debug tools=yes use_llvm=no

https://github.com/godotengine/godot/blob/599da9d7297e0d98c5f23be60e6e6df49029961a/modules/gltf_blend/register_types.cpp#L41
Hardcoding that to true works, but enabled doesn't seem to show up in ProjectSettings (the path config does show up in EditorSettings after hardcoding the former).

After opening a project a few times, it crashed with "corrupted double-linked list". I'm unsure if this was related to blend import.
#0  0x00007fc071a9dd22 in raise () from /usr/lib/libc.so.6
#1  0x00007fc071a87862 in abort () from /usr/lib/libc.so.6
#2  0x00007fc071adfd28 in __libc_message () from /usr/lib/libc.so.6
#3  0x00007fc071ae792a in malloc_printerr () from /usr/lib/libc.so.6
#4  0x00007fc071ae880c in unlink_chunk.constprop () from /usr/lib/libc.so.6
#5  0x00007fc071aeb27a in _int_malloc () from /usr/lib/libc.so.6
#6  0x00007fc071aec4e1 in malloc () from /usr/lib/libc.so.6
#7  0x00005633b5534383 in Memory::alloc_static (p_bytes=80, p_pad_align=<optimized out>) at core/os/memory.cpp:75
#8  0x00005633b4735f42 in Map<Vector3, LocalVector<Pair<int, int>, unsigned int, false>, Comparator<Vector3>, DefaultAllocator>::_insert (this=this@entry=0x7ffdd27137b0, p_key=..., p_value=...) at ./core/templates/map.h:411
#9  0x00005633b473643c in Map<Vector3, LocalVector<Pair<int, int>, unsigned int, false>, Comparator<Vector3>, DefaultAllocator>::insert (p_value=..., p_key=..., this=0x7ffdd27137b0) at ./core/templates/map.h:624
#10 Map<Vector3, LocalVector<Pair<int, int>, unsigned int, false>, Comparator<Vector3>, DefaultAllocator>::operator[] (this=this@entry=0x7ffdd27137b0, p_key=...) at ./core/templates/map.h:673
#11 0x00005633b47256ca in ImporterMesh::generate_lods (this=<optimized out>, p_normal_merge_angle=p_normal_merge_angle@entry=60, p_normal_split_angle=p_normal_split_angle@entry=25) at ./core/templates/local_vector.h:230
#12 0x00005633b338ea7c in ResourceImporterScene::_generate_meshes (this=0x5633bc695a00, p_node=0x5633bbf4a4a0, p_mesh_data=..., p_generate_lods=true, p_create_shadow_meshes=true,
    p_light_bake_mode=ResourceImporterScene::LIGHT_BAKE_STATIC, p_lightmap_texel_size=0.100000001, p_src_lightmap_cache=..., r_lightmap_caches=...) at ./core/object/ref_counted.h:100
#13 0x00005633b338e23c in ResourceImporterScene::_generate_meshes (this=0x5633bc695a00, p_node=0x5633c5789790, p_mesh_data=..., p_generate_lods=true, p_create_shadow_meshes=true,
    p_light_bake_mode=ResourceImporterScene::LIGHT_BAKE_STATIC, p_lightmap_texel_size=0.100000001, p_src_lightmap_cache=..., r_lightmap_caches=...) at editor/import/resource_importer_scene.cpp:1635
#14 0x00005633b338e23c in ResourceImporterScene::_generate_meshes (this=0x5633bc695a00, p_node=0x5633c6d80770, p_mesh_data=..., p_generate_lods=true, p_create_shadow_meshes=true,
    p_light_bake_mode=ResourceImporterScene::LIGHT_BAKE_STATIC, p_lightmap_texel_size=0.100000001, p_src_lightmap_cache=..., r_lightmap_caches=...) at editor/import/resource_importer_scene.cpp:1635
#15 0x00005633b339540a in ResourceImporterScene::import (this=0x5633bc695a00, p_source_file=..., p_save_path=..., p_options=..., r_platform_variants=<optimized out>, r_gen_files=<optimized out>, r_metadata=0x7ffdd27142e0)
    at editor/import/resource_importer_scene.cpp:1971
#16 0x00005633b2f07b1d in EditorFileSystem::_reimport_file (this=0x5633bd4309e0, p_file=..., p_custom_options=<optimized out>, p_custom_importer=...) at editor/editor_file_system.cpp:1878
#17 0x00005633b2f0e709 in EditorFileSystem::reimport_files (this=0x5633bd4309e0, p_files=...) at editor/editor_file_system.cpp:2127
#18 0x00005633b2f105d5 in EditorFileSystem::_update_scan_actions (this=0x5633bd4309e0) at editor/editor_file_system.cpp:626
#19 0x00005633b2f1202c in EditorFileSystem::_notification (this=0x5633bd4309e0, p_what=<optimized out>) at editor/editor_file_system.cpp:1214
#20 0x00005633b59c99a4 in Object::notification (this=0x5633bd4309e0, p_notification=17, p_reversed=<optimized out>) at core/object/object.cpp:846
#21 0x00005633b3e0e812 in SceneTree::_notify_group_pause (this=<optimized out>, p_group=..., p_notification=17) at scene/main/scene_tree.cpp:855
#22 0x00005633b3e100cf in SceneTree::process (this=0x5633bac40b40, p_time=0.14964233333333332) at scene/main/scene_tree.cpp:453
#23 0x00005633b1ee7327 in Main::iteration () at main/main.cpp:2687
#24 0x00005633b1eba469 in OS_LinuxBSD::run (this=this@entry=0x7ffdd2714d60) at platform/linuxbsd/os_linuxbsd.cpp:342
#25 0x00005633b1ea9172 in main (argc=2, argv=0x7ffdd2715278) at platform/linuxbsd/godot_linuxbsd.cpp:58

The code fails at ImporterMesh::generate_lods @JFonS any ideas?

I pushed updates (for now as a separate commit) to https://github.com/akien-mga/godot/tree/blend-io to move the class in modules/gltf/editor/ as discussed, and I did some cleanup, adding comments and improving overall code quality and settings validation.
It's still not perfect though, whether the import can be done is validated on editor init, so enabling Blend import requires first setting the Blender path, and then enabling the option. Otherwise before my changes you would enter import hell since it would fail repeatedly until you kill Godot, and now after my changes it will just not register the importer. But that's part of what @reduz is going to improve in a follow-up.
Otherwise, I tested the version check and it doesn't seem to work. Picking a Blender 2.93 binary, I did not see Blender is 3.0 or higher is required., and instead it proceeded to run the script and fail (also repeatedly since Godot always retries after failing, but that's a separate issue).

I saw your message. I'll update the V-Sekai fork promptly.

Can leave the version check and the validation on editor initialization to future commits.
Thanks!

Seems like I broke the editor with a last minute change, will fix.

@fire I updated my branch if you can push to this PR again: https://github.com/akien-mga/godot/tree/blend-io

Thanks!

When I start the editor, I only see "Blender Path" in EditorSettings, not "Import Enabled", and just setting "Blender Path" does not seem to enable blend imports.

Where do I find the docs on this? Does this support geometry nodes?

@Zireael07 it just exports to gltf behind-the-scenes, so feature-wise it is the same as https://docs.godotengine.org/en/3.4/tutorials/assets_pipeline/importing_scenes.html.


Q-learning Example Has No @expected

I noticed  in the cliff_walking.py, line 126 you mention q_learning function has a  @expected param when this only applies to Sarsa.

Updated. Thanks!


Feature-11: storeMetadata Public API method

Summary of Changes:

Implement storeMetadata()Public API method in FileHashStore  (plus other supporting protected methods)
Add junit tests to ensure all new methods are behaving as expected, including confirming that header and body sections are correctly written and that calling storeMetadata() on the same hash(id+formatId) only writes one file in total without any collisions (pid synchronization)
Bug fix and updated junit tests for storeObject where checksumAlgorithm is supplied but never utilized in writeToTmpFileAndGenerateChecksums

After reviewing the test logs from my last PR Feature-20: Customized Exceptions, the threads in the storeObject_objectLockedIds test encountered RuntimeException exceptions - which would not have triggered the AssertionError seen here in this PR for the commits above.
This AssertionError was caused due to a PidObjectExistsException being thrown instead of a FileAlreadyExistsException that was defined in the test (which is an error in hindsight, and not identified initially because I did not have customized exceptions to provide better context).
To ensure confidence in the storeObject() pid synchronization, I have refactored the existing test storeObject_objectLockedIds to storeObject_objectLockedIds_FiveThreads, which is my attempt at forcing a race condition to cause the pid synchronization process to behave unexpectedly - and ensuring that the two exceptions that I expect to be thrown are always thrown.

If a call is made to 'storeObject' for a pid that is already in progress of being stored (pid is found in objectLockedIds), a RunTimeException should be thrown (caught by the pid synchronization block).

if (objectLockedIds.contains(pid)) {
    String errMsg = "FileHashStore.storeObject - Duplicate object request encountered for pid: " + pid + ". Already in progress.";
    logFileHashStore.warn(errMsg);
    throw new RuntimeException(errMsg);
}

If another thread calls 'storeObject' for an object that has already been stored, it will eventually call putObject, which will check for the existence of a given data object before it attempts to generate a temp file (write to it, generate checksums, etc.), and consequently encounter a PidObjectExistsException since the object already exists in the store.

// If file (pid hash) exists, reject request immediately
if (Files.exists(objHashAddressPath)) {
    String errMsg = "FileHashStore.putObject - File already exists for pid: " + pid + ". Object address: " + objHashAddressString + ". Aborting request.";
    logFileHashStore.warn(errMsg);
    throw new PidObjectExistsException(errMsg);
}
// Generate tmpfile, write and get hex digests, etc.

If the FileAlreadyExistsException is thrown, it would be at the move level, which would mean that we would have already calculated the default hex digest map (and is inefficient for an object that has already been stored). It should technically be never thrown.
The FileAlreadyExistException can potentially be thrown because it is the result of an additional check I added to the very last step of the storeObject process move() to be safe and double check that the target destination for a data file does not already exist before moving.

I will review the tests once more with fresh eyes tomorrow morning, then merge this branch into develop.


Update concept-environments-key-concepts.md

Switching to contributor and user access admin roles and assigning owner should be limited.

#sign-off


csx parsing problems

I found a few problems with csx parsing:

#load directive with next expression start with string

#nullable enable
#load "ScriptHelper.csx"

"Hello world".Dump();

Produce error:
Could not find file '/Users/mark/Code/CSharpLab/ScriptHelper.csx"'.
Although it works:
#nullable enable
#load "ScriptHelper.csx"

;
"Hello world".Dump();

using statement without parenthesis or a block on top level

using var connection = new SqliteConnection($"Data Source={dbPath}");

Produce errors:
error CS0103: The name 'connection' does not exist in the current context
error CS1002: ; expected
Although it works:
void Func()
{
  using var connection = new SqliteConnection($"Data Source={dbPath}");
}

Reference to Microsoft.NET.Sdk.Web not work · Issue #716 · dotnet-script/dotnet-script

@atifaziz  Want to take a look at this? 😃

@atifaziz Want to take a look at this? 😃

Had a quick look and proposed a fix in PR #724 for the "#load directive with next expression start with string" problem.

using statement without parenthesis or a block on top level

I do believe this is not allowed in a script so not sure anything can be done about it. While not officially documented, see dotnet/roslyn#28588 where it says:

test scripting (should disallow using-declaration, maybe some additional complications)

I try to transform my LINQPad queries to dotnet-script. In LINQPad 1, 2 work without problems.

I try to transform my LINQPad queries to dotnet-script. In LINQPad 1, 2 work without problems.

LINQPad doesn't use C# scripting like this tool so it's not bound by the same restrictions. LINQPad turns your query/script into whole C# programs, very approximately like how I emulate the same in LINQPadless.

I try to transform my LINQPad queries to dotnet-script. In LINQPad 1, 2 work without problems.

@i-mark LINQPad doesn't use C# scripting like this tool so it's not bound to the same restrictions. LINQPad turns your query/script into a whole C# program, somewhat like what I emulate in LINQPadless.

Ok, thx.
I run it with c# scripting and this code throw (1,11): error CS1002
var options = ScriptOptions.Default
		.AddReferences(typeof(Console).Assembly)
		.AddImports("System")
		.AddImports("System.IO");

//var statement = "using (var ms = new System.IO.MemoryStream()) {};";
var statement = "using var ms = new System.IO.MemoryStream();";
await CSharpScript.RunAsync(statement);


KRKNWK-6261 fix

For a6316a757e9d6483598dc12042ac4108886d1c28, please add [nrf fromlist] prefix to the commit title (also would be good to mention PR number in the commit body.
For a62cd8d66bb883d0a2ca4bcdb07b8078e889f0ad I'm not sure, is it targeting upstream? In any case it needs a downstream prefix as well, as described in the docs:
https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_dev_model.html#oss-repositories-downstream-project-history

For a6316a7, please add [nrf fromlist] prefix to the commit title (also would be good to mention PR number in the commit body.
For a62cd8d I'm not sure, is it targeting upstream? In any case it needs a downstream prefix as well, as described in the docs:
https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_dev_model.html#oss-repositories-downstream-project-history

@rlubos do you think we can target a62cd8d upstream? It definitely would be easier for us.

@lmaciejonczyk I think that we should try at least. If it's not allowed in the current form, we'll need to find acceptable solution (make a Kconfig switch between preemptive/cooparative thread). Worst case, we'll keep it downstream.

Shouldn't 0ecddee be a [nrf toup] instead of [nrf noup]?


Added option networking.wireless.networks.*.priority

It is literal 'priority' option of wpa_supplicant.conf
Motivation for this change
More of system configuration managed by NixOS.
wpa_supplicant have 'priority' option of section network. This commit introduces it into configuration.nix.
Things done

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

Thanks!


SURVIVOR simreads

Hi,
Thanks for the solving the problem of scanreads funciton yesterday.
However, I have the similar problem with simreads module:

/home/wyzhang/opt/biosoftware/ONT_Analysis_Tools/SURVIVOR/Debug/SURVIVOR simreads ../../1.Deletion_Simulation/mm10_Chr1_Homo_DEL.fa ./ONT_error.txt 4 mm10_Chr1_Homo_DEL_ONT

I still got the help info on the screen:
No parameters provided:
1: Reference fasta file
2: error profile file (see scan)
3: Coverage
4: output prefix
I think I have given the program all the neccessary information, but it did not work again.
Best,
Wenyu

Hi Wenyu,
facepalm
so sorry for that. I have checked again all the modules and this should now been finally resolved.
Cheers
Fritz


Zooz motion detection unavailable in 1.13.1

Problem/Motivation

When updating to v1.13.1, the motion detection entity in Zooz 4in1 sensors (ZSE40) becomes unavailable

Expected behavior

No change to entities

Actual behavior

Motion detection entity became unavailable. All other entities ok

Steps to reproduce

Update Zwave JS UI to 1.13.1

Proposed changes

(If you have a proposed change, workaround or fix,
describe the rationale behind it)

Hi there 👋
Add-ons wrap existing software in a way they are easy to use and install with a Home Assistant instance. In this case, it wraps Z-Wave JS UI. The issue you are reporting is with the upstream software packaged, not the add-on itself.
Please report this issue upstream with the Z-Wave JS project. Once they address the issue and release a fix for it, the add-on will be updated.
Thanks 👍
../Frenck


Generate codewind json

We need to be able to consolidate / generate codewind json configuration.

Codewind index is generated from consolidated index using the create_codewind_index.py script.
These index.json files are created if the environment variable CODEWIND_INDEX is set to true, ie export CODEWIND_INDEX=true.


[Feature Request] Improving Microsoft.IdentityModel Observability

Improving Microsoft.IdentityModel Observability
There have been some internal asks for Microsoft.IdentityModel and dependent libraries to offer a better observability surface. Currently logging is possible but good hooks for metrics and thus alerting aren't as readily available.
Observability areas to consider

Logging signals to monitor

Additional logs that can clarify behavior for consumers
Metrics/Counters which can hopefully represent some dimensional slices

System Resources to Monitor

While the library won't be able to monitor its own system resource usage, it may be able to emit information that will allow consumers to better correlate operations with resource consumption.

Anything which could assist in making Safe Deployment Practices more straightforward for services which consume the library
Alerting

Addition of metrics/counters will likely make this easier however anything else that can make alerting easier should be considered

Areas of focus for observability
Some metrics/counters around time taken in validation and its dependencies (crypto calls etc.) as well as information about internal caching crypto cache/LRU info.
Means of communicating the logs/metrics
Microsoft.IdentityModel.Tokens.CallContext would appear the most promising place since it already contains the log collection.
Another possibility would be to extend scenario specific return values, e.g. TokenValidationResult so they could be decorated with metrics/logs specific to the scenario. I'm currently partial to using CallContext.

@kevinchalet , @leastprivilege -- I was hoping either of you might share your feedback ideas on anything you'd like to see improved w.r.t. observability in the library. Additionally if you know of anyone else who you feel would be useful to solicit feedback for improvements on observability in the library, it would be much appreciated if you could tag them for their attention. Thanks.

@TimHannMSFT thank you for reaching out!
One of the biggest complaints I have with IdentityModel regarding logging is the fact that the error messages became useless OOTB since the introduction of the PII protection (that is enabled by default). Messages like IDX10205: Issuer validation failed. Issuer: 'System.String'. Did not match: validationParameters.ValidIssuer: 'System.String' or validationParameters.ValidIssuers: 'System.String' are cryptic for users trying to debug them. It's a huge source of bug reports for libraries built on top of IdentityModel, like OpenIddict.
Potential ways to improve that:

https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/1741 helped a bit but most exception messages are still crude and don't clearly mention that "System.String" values are actually redacted data that can be logged by using the static ShowPII property. I'd recommend making the exception messages more explicit about this option.
Making PII logging configurable per token handler instance would be a great way to allow libraries leveraging IM to enable or disable it in a non-static way. In OpenIddict, this is typically the kind of thing that could be leveraged to include PII in log messages when IHostEnvironment.Environment indicates a development environment.

Also, IIRC, the assumption is that the Trace level of logging can contain sensitive values -- so just always include the details at that level.

I agree that the PII model is very confusing for users, IDX10205: Issuer validation failed. Issuer: 'System.String'. Did not match: validationParameters.ValidIssuer: 'System.String' or validationParameters.ValidIssuers: 'System.String' looks like a bug, not a feature. Even something like IDX10205: Issuer validation failed. Issuer: '[PII redacted]'. Did not match: validationParameters.ValidIssuer: '[PII redacted]' or validationParameters.ValidIssuers: '[PII redacted]' would at least better communicate the intent.

Is there any integration available with Microsoft.Extensions.Logging? That would be helpful to ASP.NET Core consumers, and others.

@Tratcher we currently use System.Diagnostics.Tracing.EventSource, does  Microsoft.Extensions.Logging play well with that OR would we need to re-tool?

@brockallen yes one has to assume sensitive info in log messages.
Are you suggesting that different levels should expose more or less details?

@Tratcher we currently use System.Diagnostics.Tracing.EventSource, does Microsoft.Extensions.Logging play well with that OR would we need to re-tool?

@shirhatti?

@Tratcher / @kevinchalet , was #1725 helpful to that end. Agreed we still have improvements to be made around this but hopefully that was a step forward on this journey, there's a message which points folks towards https://aka.ms/IdentityModel/PII as well as no longer stripping the arguments that really aren't PII.

Are you suggesting that different levels should expose more or less details?

ASP.NET Core documents that trace level can contain sensitive info, so don't enable it in prod.

@Tratcher / @kevinchalet , was #1725 helpful to that end. Agreed we still have improvements to be made around this but hopefully that was a step forward on this journey, there's a message which points folks towards https://aka.ms/IdentityModel/PII as well as no longer stripping the arguments that really aren't PII.

It's a start. I think some visual changes like those suggested above would help make this more understandable.
https://aka.ms/IdentityModel/PII should also give an example of an error message with PII on vs off so people understand what to expect.

For the obfuscation, I am linking an issue I filed on MSAL. There are opportunities to provide even more obfuscation levers into the customers hands.
Some of the 1P libraries for example do the job of categorizing the data and then the lib user might decide that tenant metadata will never be obfuscated, only data relevant to user.

This will be done as part of #2568 .


fixed empty user tag in xml

Small bugfix

Looks good. Damned shame we didn't check this on friday.

Needed this!


[Bug]: Repeated opening of plans may result in errors

ODC version
odc423
OB version

What happened?
https://github.com/oceanbase/odc/assets/143492234/5794edbb-6e16-4288-97a1-243bf59648b0
What did you expect to happen?
No duplicate fields will appear
How can we reproduce it (as minimally and precisely as possible)?
Repeatedly opening the plan
Anything else we need to know?
No response
Cloud
No response

Fixed In Commit 453431776fefd059c5dc4374c388f57e5eafba01

pass


Footnotes not working in Pico 2

Hello and happy 2019 to all!
I used new year's vacations to upgrade my blog from Pico 1 to Pico 2 via pre-bundled package and everything worked fine.
The only things I can't make work are footnotes, both in the remote Apache server and in my local one I use for testing.
The same .md file that gets parsed correctly under v1, under v2 outputs what looks like raw html
1.
custom footnote text  ↩

I checked, the new config.yml file tells Pico to use Markdown Extra; if it didn't, footnotes wouldn't appear at all and markers in the text would look like this ^1 rather than this^1.
I also copied over the vendor folder once again to make sure nothing was corrupted.
Checking the html from the browser, the
 element is present and shows up correctly.
Html for the above referenced note reads:

<p>custom footnote text &#160;<a href="#fnref1:1" rev="footnote" class="footnote-backref">&#8617;</a></p>

Am I missing something, what am I doing wrong?
Thank you very much

Pico uses Parsedown as Markdown parser (resp. Parsedown Extra, Parsedown's extension for Markdown Extra), so to put a long story short: Regarding Markdown, Pico does, what Parsedown does.
Unfortunately there's a known issue with footnotes in Parsedown Extra since Parsedown 1.7, see https://github.com/erusev/parsedown-extra/issues/118. Development of Parsedown Extra isn't very active, but there's a beta release of Parsedown Extra (v0.8.0-beta.1) that seems to fix the issue. Since it doesn't seem that there's going to be a stable release soon, I've just released a beta release of Pico (v2.0.5-beta.1 (not yet released, see below)) that uses Parsedown Extra 0.8 and Parsedown 1.8 (as said, both currently in beta).
Some extra testing is required before deploying this as a stable bugfix release of Pico 2.0. Please keep in mind that this is a rather outstanding move; stability is very important to Pico, depending on a beta release of a library is bad. However, the fact that this is a long-living issue in Parsedown Extra (and that apparently not much is happening) is bad, too. Thus extra testing is required. Please test v2.0.5-beta.1 (not yet released, see below) whether it fixes your issue and doesn't break your other Markdown files.
@all: There were pretty massive changes in Parsedown 1.8, there might be issues with existing Markdown files in the wild, so: Additional testing is highly appreciated! Not just related to footnotes, but all your Markdown files in general.

Note about v2.0.5-beta.1: v2.0.5-beta.1 has not been released yet because Travis CI seems to have a major outage: jobs start with major delays only, making it virtually impossible to deploy a release (the latest build is running for over an hour now...). Will release v2.0.5-beta.1 tomorrow.

v2.0.5-beta.1 is out now.
@ALL: There were pretty massive changes in Parsedown 1.8, there might be issues with existing Markdown files in the wild, so: Additional testing is highly appreciated! Not just related to footnotes, but all your Markdown files in general.

First of all, thanks for releasing a new beta following my issue!
I tried v2.0.5-beta.1 on my existing md files and this is what turned out:

footnotes work!

headings kind of work, but the bug is minor since the closing hashes aren't necessary. Anyway, closing # show up in parsed html, but only if followed by some character - including white spaces. So, for example, these get rendered correctly
## heading 2 and heading 2 #
while these
## heading 2 ##  and ## heading 2 #s
get rendered as
heading 2 ##  and heading 2 #s
now, putting letters after the closing hash is pointless, but I used to put space space return after closing hashes when I began writing with markdown. Nowadays, I don't use closing hashes anymore, but still use space space return even after headings as a habit.
This output is obtained even if breaks in the markup are set to be reflected in the parsed output too.
Again, this bug is very minor, but it exists nonetheless.
Setext-style headers with = and - work just fine even with space space return

images show up

inline html works

I tried to read some of the comments on ongoing work on parsedown, but I think I understood 30% of what was being said. So, if I can be of any further help, please let me know since I can't get any further than this for now in understanding what might be some weak points to test.

Greetings. I joined GitHub so I could post this.
I noticed two problems with the generated footnotes. The first and most obvious is that they aren't rendering correctly. The second is that the anchor links aren't working properly.
After reading through everything in this thread I upgraded Parsedown to the 0.8 beta and that fixed all of the footnote rendering issues for me just as it did for you guys, but the anchors still don't work. Taking a look at the generated HTML directly everything looks fine with the  tags being formatted correctly, but when I hover my mouse over the link I noticed the web addresses were too short. I'm wondering if this could be caused by how Pico generates pages? I don't know.
For example: I have Pico currently installed under html/cms-staging/ while I build my site, and am working on a file that generates the address mywebsite.com/html/cms-staging/dev-journals/app-journal/page-name in my browser address bar when being viewed.
Footnotes generate HTML id attributes like #fn:1 and when you hover your mouse over the link you'd expect it to be mywebsite.com/html/cms-staging/dev-journals/app-journal/page-name#fn:1, but instead you just get the base url, plus a slash, plus the anchor id, resulting in mywebsite.com/html/cms-staging/#fn:1 which isn't a valid address (Well, actually it's the home page, but there's no #fn:1 anchor there, nor is that the expected destination URL for a same-page anchor.) The footnote return links that are also doing the same.
Your thoughts?

Sounds like your theme creates a <base href="" /> element in your website's . Remove this element and make sure to use absolute URIs instead.

That fixed it! Thank you!


Specifying string length does not appear to generate proper schema (sqlite3)

If using the "@Column" attribute with DataType.String(someLength) the model does not appear to generate the correct schema and instead generates a column in the sqlite database with an incorrect "[object Object]" column type, very bizarre. I've tried using @Column({type: DataType.String(someLength)}) and have used the raw Sequelize.STRING type as well. With no arguments the column generates properly with a VARCHAR(255) data type but when length is specified it does not appear to work. Thoughts?

This is a bug, thank you for reporting. I will solve this tomorrow morning.

@taicho It should work now. I published a new version to npm<EMAIL_ADDRESS>

@RobinBuschmann can confirm works like a charm now! Thanks for such a quick fix.


added gradient noise optimizer hook

This hook function simply adds time-dependent annealed Gaussian noise
to the gradient at every training step. See: Adding Gradient Noise
Improves Learning for Very Deep Networks

Do you think it is possible to separate the mechanism that determines the quantity of the noise added from the one that does inject the noise to the gradient? Currently these two mechanisms are strongly tied to each other.

@delta2323 yes I could do that... but can you kindly let me know where to add the two functions? At the moment the noise is very dependent on the time step of the optimisation, so it made sense to me to confound the two together into this single gradient noise hook function. but if you can tell me where to add the noise helper, then I can try to separate it. Thanks!

One option is to extract the calculation of noise as a function as follows:
def exponential_decay_noise(xp, shape, dtype, hook, opt):
    std = numpy.sqrt(hook.eta / numpy.power(1 + opt.t, 0.55))
    return xp.random.normal(0, std, shape).astype(dtype)

class GradientNoise(object):
    def __init__(self, eta, noise_func=exponential_decay_noise):
        self.eta = eta
        self.noise_func = noise_func

    def __call__(self, opt):
        ...
        for param in opt.target.params():
            g = param.grad
            xp = cuda.get_array_module(g)
            with cuda.get_device(g) as dev:
                noise = self.noise_func(xp, g.shape, g.dtype, self, opt)
                ...

The function name (exponential_decay_noise) and its arguments are not yet considered well. The arguments are the most "informative" ones in the sense that the function takes the hook and optimizer themselves and extract the information that is necessary. I guess shape and dtype are the most essential arguments.

thanks @delta2323 my question was about the noise helper, in which file should it be? would it make sense to put it in optimizer.py or somewhere else? thanks!

@kashif Sorry, I forgot to answer the question. I think we put the helper function in optimizer.py, or same location as GradientNoise hook. We need not to separate it from the hook because we can expect we do not use it other than for this hook.

@delta2323 thanks changed as per your suggestion.

Sorry for my late response. LGTM except comments.

@kashif Sorry, I have one more comments. Could you check that?

LGTM 👍

Thank you for your contribution!

thank you 🙇


Exception with --ssh-user/--user CLI option and click<7.0

Describe the bug
# pipenv run -- pyinfra <IP_ADDRESS> --ssh-user root --ssh-key my_key files.put scripts/shred_disks.sh /tmp/shred_disks.sh
--> An unexpected internal exception occurred:

  File "/home/foobar/.virtualenvs/myvenv/lib/python3.9/site-packages/pyinfra_cli/main.py", line 236, in cli
    _main(*args, **kwargs)
TypeError: _main() got an unexpected keyword argument 'user'

--> The full traceback has been written to pyinfra-debug.log
--> If this is unexpected please consider submitting a bug report on GitHub, for more information run `pyinfra --support`.

To Reproduce

Install click <= 6.7
Install pyinfra >= 1.4
Run the CLI with any of the --ssh-blah or corresponding --blah  option

Expected behavior
No exception is raised :-D
Meta

Include output of pyinfra --support.

$ pipenv run pyinfra --support
--> Support information:

    If you are having issues with pyinfra or wish to make feature requests, please
    check out the GitHub issues at https://github.com/Fizzadar/pyinfra/issues .
    When adding an issue, be sure to include the following:

    System: Linux
      Platform: Linux-5.13.0-28-generic-x86_64-with-glibc2.34
      Release: 5.13.0-28-generic
      Machine: x86_64
    pyinfra: v1.6.3
    Executable: /home/foobar/.virtualenvs/myvcenv/bin/pyinfra
    Python: 3.9.10 (CPython, GCC 11.2.0)

How was pyinfra installed (source/pip)?
Pipenv (pip), pipfile extract:

[packages]
click = "~=6.7"
pyinfra = "~=1.2, !=1.14.14"

Include pyinfra-debug.log (if one was created)

  File "/home/germain/.virtualenvs/autoprovision-mkr5ct_t/lib/python3.9/site-packages/pyinfra_cli/main.py", line 236, in cli
    _main(*args, **kwargs)
TypeError: _main() got an unexpected keyword argument 'user'

Consider including output with -vv and --debug.
Same output as pyinfra-debug.log content

I've also come down further to the bottom of this issue.It is a side effect of:

the prefixing of the SSH options with ssh- while keeping the old option available (in this PR)
the fixing of the selection of the long option name in Click (in this PR)

So this is a bit borderline bugfix on click side that broke backwards compatibility (and is not documented in the CHANGELOG :-1: ) but this causes a bug in pyinfra.
I think there are a couple of options to improve the situation and they're both quite simple:

update pyinfra install requirements to need click>=7.0.
make pyinfra compatible with both click situations by specifying explicitely the name of the option.

I think option 2 is the nicest as it introduces explicit naming, and avoids forcing users to upgrade both pyinfra and click

PR #765 Implements the change for option 2. above


⚠ Processors has degraded performance

In c7ea208, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 93 ms

Resolved: Processors performance has improved in de2d36d.


Fix non-direct openai call for CSV and improve handling in conversation_to_metadata

This PR addresses issues with handling non-direct calls for CSV data in openai_prompt_call_csv and improves the conversation_to_metadata function to ensure it processes responses from OpenAI SDK calls correctly. Here are the key changes:
Changes:

Improved CSV Handling:

Standardized output format for both non-direct and direct calls in openai_prompt_call_csv.
Ensured consistent response parsing.

Enhanced conversation_to_metadata:

Added better response type validation and error handling.
Improved tag processing and cleaning.

Resolved OpenAI Library Conflicts:

Fixed conflicts caused by using an outdated OpenAI library due to pip dependencies.
Updated requirements.txt with the correct versions to ensure compatibility and proper functionality.

Testing:
Miner & validator tests have passed

Verified that OpenAI, Groq, and Anthropic integrations do not break with these changes.

If you have any questions or need further clarifications, feel free to ask

Looks good. Will test. Thanks!


Adjust CI runIf conditions for framework and engine-specific tasks

Description:
This PR refines the CI YAML configuration to ensure that engine builds are not triggered for framework-related updates. Previously, engine builds were scheduled for every PR, even when the changes only affected framework code. This update modifies the runIf conditions to exclude engine tasks for framework-related changes, improving the workflow by reducing unnecessary builds and allowing quicker identification of exceptions for framework-related commits.
Key Changes:
Added logic to skip engine-related tasks for framework-related builds by modifying the runIf conditions.
Ensured that engine builds are only triggered when changes specifically affect the engine, improving CI efficiency.
Related Issue:
Fixes issue #160643, where engine builds were scheduled unnecessarily for framework updates, leading to delayed workflow.

This change does the opposite of what you're suggesting.  Engine builds and tests are triggered via engine/src/flutter/.ci.yaml. What this instead does is stop the framework tests from running if the engine has been modified; which is opposite of what we want - we want framework tests to run if we make changes to the engine.
RBE accelerated builds of the engine are required and will be built in stages before the presubmits. We will work on making these builds faster in the new year by moving certain tests out of them so they can be parallelized better.

@jtmcdole Got it, thank you for the clarification! I reviewed the config, and it looks like engine/ is already included in the right places for framework-related tasks. The engine builds are correctly set up, so the issue may be elsewhere (like build stages or test parallelization). Please let me know if I’m missing anything or any other changes are needed.


Side TOC doesn't wrap

Thank you for this beautiful theme.  I am having an odd issue where the text for the headings in the toc sidebar on the post page does not wrap and instead overflows into the post itself.
Thanks again.

Hi,
thanks for reporting. I will fix it in the 1-2 days and let you know

Hey that's great thank you.  I figured it had more to do with cactus.

Hey, Just fixed it.
Please try and let me know if it works for you.
You need to make 'git pull' from solar folder with the repo and  regenerate 'hexo generate'

Fabulous!  I did have to end up just redownloading (maybe not necessary), then hexo clean and hexo generate.  It could have been an issue with something the previous theme was doing but it worked after that.  Thank you!


Can fit_generator() declare an epoch by the whole data in a generator (finite number of data) instead of steps_per_epoch?

fit_generator() does a good job to pre-load data batches, avoid the problem of memory insufficiency, and fit for continuously available data. I was wondering, when passing a generator with finite number of outputs, is it possible to add an option to fit_generator() so that it can behavior like the fit() function which declares all the data as an epoch instead of using steps_per_epoch? Because I have no idea if the whole data are seen total epochs or something like 5.6 epochs when I use fit_generator(), and if I use train_on_batch, I need a thread to pre-load the batches because the preprocessing costs time.
Thanks.

I think that yes!
See: https://github.com/fchollet/keras/issues/7462


Dome Rotator Dimension Set

I am wondering if it could be added, and maybe I am missing where it can be done, a way to have the rotator dimension set persistent with ASCOM.  Currently I have 287 teeth, instead of default 288 teeth on this dome, and so run the command @RWR,54889 to set this, but powercycle it looses this each time.  Default 55080.
I'm sure if anyone is off on the dimensions here, it would be a good addition to adjust, or even if you use the NexDome rotator on another application.
Or maybe there already is a way to set this and have it stick on powercycle?  I don't believe there is config files with this that can be read during boot?

I believe this can be closed, I am checking after hard boots and power cycling and it seems to be persisting?  maybe someone can chime in for sure, but it does look like 4.0+ does persist the dome roation @RWR,....
awesome.


API redesign

Completes BRE-8 adding the capability to add multiple actions per rule.
Closes BRE-12 to not use language reserved keywords in the api models.
Completes BRE-22 adding audit logs to the backend.

Current dependencies on/for this PR:

main

PR #9   👈

This comment was auto-generated by Graphite.

Merge Activity

Aug 26, 7:48 PM: @nadilas merged this pull request with Graphite.


Added v0 of container healthchecks

Surprising to me, users can add healthchecks to their docker images
today! We just don't do anything except report it on the updates channel.
This PR adds support for accepting liveness probes from the pod spec
and converting them to use docker healthchecks on the backend.
This is a feature we get "for free" because of the C&W design (using
docker natively as the executor).
This currently doesn't help the user very much, because I don't have
the wiring in place to see health events. I'm waiting on my big
refactor PR to plumb that through.
However, soon we'll need to address a big elephant, which is "what"
to do with this data. Surprising to me (TIL), healthchecks don't
have anything to do with restart policy!
We will have to implement our own connector, like kubelet does
to kill the container once it goes unhealthy, and let the restart
policy take effect.
https://github.com/moby/moby/issues/28400
But that can be in v1 (this is v0).

This PR is safe to merge, but it won't have any real effect on anything until we can easily expose or kill the container.
For that (v1), I would like to block on https://github.com/Netflix/titus-executor/pull/670 so that we have a more formal place to put extra sidecar data and status.
But this PR can be merged in now, and at least the health data of a sidecar will be available in the raw titus-executor logs.


issue when building solution

I press build solution and get this error
Severity	Code	Description	Project	File	Line	Suppression State	Details
Error	C1083	Cannot open include file: 'Platform/Macros/PlatformSpecific.h': No such file or directory	Osiris	C:\Users.....\OneDrive\Desktop\Tools ;)\csgo\Osiris\Source\CS2\Constants\DllNames.h	3

no way, you are using onedrive only cloud mode and the files are missing? who would've thought....

no way, you are using onedrive only cloud mode and the files are missing? who would've thought....

99% sure he is using a laptop with win 11, maybe low storage which automatically uses onedrive for everything.
and where u manually need to go to every real location and or make ur on pins outside of onedrive

@OzymoGit idk why its like that whenever i copy the patch from file explorer its not like that i think its trying to find it through onedrive


How do you get data on the pokemon you just caught?

Using pokeAPI.CatchPokemon, I just get back a CatchPokemonResponse with a status and MissPercent.
Other than checking the inventory, how do I get information (id, type, cp, etc) on the Pokemon that was caught?

I enabled CapturedPokemonId in pokemon.proto and changed to a fixed64. I also enabled CaptureAward in pokemon.proto.
Now I at least get something good.
  CapturedPokemonId: Long { low: 231617896, high: -1834732217, unsigned: true },
  CaptureAward:
   { ActivityType: [ 1, 12, 13 ],
     XP: [ 100, 100, 10 ],
     Candy: [ 3, 0, 0 ],
     Stardust: [ 100, 0, 0 ] } }

But now how would I take that Pokemon ID and get info on that pokemon?

how do you get CaptureAward?
when you EncounterPokemon it's will callback some data like pokemon ID

EncounterPokemon  second callback like this
{ WildPokemon:
{ EncounterId: Long { low: -69370227, high: -664151409, unsigned: true },
LastModifiedMs: Long { low: -1859329067, high: 342, unsigned: false },
Latitude: 24.979762628558674,
Longitude:<PHONE_NUMBER>4371163,
SpawnPointId: '34681d1ebe3',
pokemon: { Id: null, PokemonId: 120, cp: 37 },
TimeTillHiddenMs: 727191 },
EncounterBackground: null,
EncounterStatus: 1 }

To enable CaptureAward I just went into pokemon.proto and enabled it. It is commented out for some reason.

Thanks for this!


Proposal: Integrate structured logging

So far the logs are pretty minimalistic, I think it is a good idea to integrate a structured logger which also gets metadata attached. By default it's human-readable formatted and optionally can get switched to json output.
Options could be the recent golang slog package or github.com/rs/zerolog.

This would be an excellent improvement, the company I work for has recently been evaluating Semaphore UI and would be interested in Premium+/Enterprise support but coming from AWX/AAP the logging is lacking. Particularly the task metadata is important for us to have (who ran the task, survey options, cli options, playbook name, template name, repo, etc - particularly survey/vars). It'd also be cleaner to be able to get more verbosity per task without having to set the whole template output to debug (-vvvv), or at least be able to set the verbosity lower (-vvv).
Overall I think it meets our needs for the majority of tasks. I like the simplicity of it, single rpm upgrades are awesome and caching Galaxy collections locally has been a bonus. Keep up the good work!


Workspace icon svg

Added SVG icon for Workspace, which was missing.

added workspace svg in #13 . closing this.


[T6A1][W14-B1]Lim Jie

I assumed that the question purposely asked us to leave save() blank so that it will fail the testcases

Some comments added. Feel free to add more comment if you have any questions. Once you are done, you may close the PR after reading comments.


Sentry tripped while car is already in an unlocked state

To reproduce
Scenario 1

car is in locked state
unlock car
enter car , shut the door
wait for a min
open door

Scenario 2

car is in unlocked state
enter car , shut the door

Result : sentry warning tripped
Vid: https://streamable.com/kqchpa
Hybrid RAV4 2021
Let me know what other information you need

The problem is I want it to arm after being inactive for a bit as I don't have the lock signals for other cars coded. I can raise the timer to 5 minutes though if that'll help. Right now it's only 2 minutes

Same issue for me, would it be possible to enable the timer only for unsupported cars?

Another problem is if you start the C3 while the car is already locked, it has no idea what the lock status is, as it's only published when it changes when the car is off. Feel free to make a PR to make it easy to stop the alarm if it's a verified user, or raise the timeout.


Add C# distribtests for dotnet CLI project.

And test things work properly under
-- "net45" target
-- "netcoreapp1.0" target

Basic distribtest were added in https://github.com/grpc/grpc/pull/8039.


[WIP] remove erasures (should rely on DCE)

The following compilation of an iree model
jamesn@wsl:~/iree/samples/models $ ~/iree-build/tools/iree-compile --iree-hal-target-backends=amd-aie simple_abs.mlir --mlir-print-ir-before-all --print-module-scope > dump.mlir

fails with report:
// -----// IR Dump Before AIRDependency (air-dependency) //----- //
module {
  func.func @abs_dispatch_0_generic() {
    %c0 = arith.constant 0 : index
    %0 = hal.interface.binding.subspan set(0) binding(0) type(storage_buffer) alignment(64) offset(%c0) flags(ReadOnly) : !flow.dispatch.tensor<readonly:tensor<f32>>
    %1 = hal.interface.binding.subspan set(0) binding(1) type(storage_buffer) alignment(64) offset(%c0) : !flow.dispatch.tensor<writeonly:tensor<f32>>
    %2 = flow.dispatch.tensor.load %0, offsets = [], sizes = [], strides = [] : !flow.dispatch.tensor<readonly:tensor<f32>> -> tensor<f32>
    %3 = tensor.empty() : tensor<f32>
    %4 = linalg.generic {indexing_maps = [affine_map<() -> ()>, affine_map<() -> ()>], iterator_types = []} ins(%2 : tensor<f32>) outs(%3 : tensor<f32>) {
    ^bb0(%in: f32, %out: f32):
      %5 = math.absf %in : f32
      linalg.yield %5 : f32
    } -> tensor<f32>
    flow.dispatch.tensor.store %4, %1, offsets = [], sizes = [], strides = [] : tensor<f32> -> !flow.dispatch.tensor<writeonly:tensor<f32>>
    return
  }
}

LLVM ERROR: operation destroyed but still has uses
Please report issues to https://github.com/openxla/iree/issues and include the crash backtrace.
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  libIREECompiler.so 0x00007ff6f0bd5f57 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 39
1  libIREECompiler.so 0x00007ff6f0bd4180 llvm::sys::RunSignalHandlers() + 80
2  libIREECompiler.so 0x00007ff6f0bd661a
3  libc.so.6          0x00007ff6ea7eb520

This patches fixes this: compilation gets further, fails with
simple_abs.mlir:2:13: error: failed to legalize operation 'builtin.unrealized_conversion_cast' that was explicitly marked illegal
  %result = math.absf %input : tensor<f32>
            ^
simple_abs.mlir:1:1: note: called from
func.func @abs(%input : tensor<f32>) -> (tensor<f32>) {
^
simple_abs.mlir:2:13: note: see current operation: %1 = "builtin.unrealized_conversion_cast"(%0) : (i64) -> index
  %result = math.absf %input : tensor<f32>
            ^
simple_abs.mlir:2:13: error: 'builtin.module' op failed to lower to LLVM dialect
  %result = math.absf %input : tensor<f32>

Note that this probably doesn't fix the real error, which is probably that there is a use which doesn't end up getting removed?

Thanks @stephenneuendorffer , I agree this isn't a good fix yet, I'll look into it deeper.

Closing in favor of alternative approach https://github.com/Xilinx/mlir-air/pull/376


adding minify option in Parser, so the parsed Document  occupies less memory.

When parsing large html, the memory usage of the parsed Document is huge.
So maybe we can add minify option in Parser,
so the parsed Document could have less nodes, and occupies less memory.

I'm always interested in new ideas on how to use less memory! Can you tell me more about your idea and your use case?

What memory budget per Document do you have / need?
What size are the input documents?
What are you actually doing with the documents (selecting / editing / outputting...?)
What nodes do you not want to retain when parsing? How would you consider controlling that?

One feature I've been thinking about for a while is to implement a streaming type parser that would just emit tokens / nodes, and perhaps the current stack, but not retain a full DOM. But I see this as being a difficult interface for users of the library to work with. So am interested in hearing your use case (and everyone's! Others please feel free to comment also) and what developer experience would be best.

Thanks -- it makes sense. Have you measured the memory impact of removing those nodes?
Would you be able to share an example of the document? Please contact me directly<EMAIL_ADDRESS>if you can. Or, is there an example file I could use as a proxy?
I have been thinking of adding a stream() function to the Parser that would emit a stream of Elements / Nodes as the document is consumed. And one could then node.remove() the unneeded content. Or, just process the content in a streaming mode and delete the processed content.
Would be keen to get real-world examples and beta testers for this functionality.

I've built out a new feature -- StreamParser -- that should address this. Take a look at the examples in #2096. Would be great if you can give it a try.


Fix deceleration in CharacterBody 2D and 3D templates

https://github.com/godotengine/godot/pull/73873 is stalled for more than a year, so I thought addressing small but concrete parts of the problem could help making progress.

The bugfix this PR does is definitely welcome. I'm not completely sure about the name "deceleration" though, since it is a number and not a vector. (But maybe simplicity is more important than mathematical accuracy.)
Sorry for all the nitpicking but this code will be seen by many first-time users, so we want to get it right.

I don't mind renaming that, what do you suggest? Slowdown? MomentumForce?
Changing into a vector feels like it's going to open a can of worms to me, but your call.

Changing into a vector feels like it's going to open a can of worms to me, but your call.

I think the point is that deceleration isn't a scalar but a vector, so the name not the type is in question

Changing into a vector feels like it's going to open a can of worms to me, but your call.

I think the point is that deceleration isn't a scalar but a vector, so the name not the type is in question

Sure, I'm happy to rename to anything, please let me know what you'd prefer.

Also, alternatively, we could use the incoming move_toward_smooth() (https://github.com/godotengine/godot/pull/92236) unconditionally; something like:
	velocity.x = move_toward_smooth(velocity.x, direction.x * SPEED, delta * 10.0)
	velocity.z = move_toward_smooth(velocity.z, direction.z * SPEED, delta * 10.0)

This handles both the acceleration and the deceleration at the same time and actually simplifies the code by removing the branching

That'd be something for a separate PR, would be good to get this fix in 4.3 and the other method won't be in 4.3

https://github.com/godotengine/godot/blob/fc6d8e6338aa9d207a73bea5bb452dd8a9c6eff3/modules/gdscript/editor/script_templates/CharacterBody2D/basic_movement.gd#L22-L26
Why do we even need smooth deceleration here if there is no smooth acceleration? Changing velocity.x from 0 to SPEED is instantaneous.
Why not just https://docs.godotengine.org/en/latest/tutorials/physics/using_character_body_2d.html#platformer-movement
	# Get the input direction.
	var direction = Input.get_axis("ui_left", "ui_right")
	velocity.x = direction * speed

if anything I'd say to add acceleration as well

Even given that this is intended to be a simple character controller, making available the possibility to set both acceleration and deceleration rates seems preferable.
Example from kidscancode, noteworthy also for showing how to enable modification of values in the inspector (@export).
https://kidscancode.org/godot_recipes/4.x/2d/platform_character/index.html#friction-and-acceleration

The point of this PR is to fix the code that has been broken for years, not rewrite it. A PR to rewrite it has been stalled forever, so the idea here is that making the code correct in the first place so that it can later be improved starting from a correct foundation.
There are many opinions on how the default template could be, and this could take a very long time before reaching a consensus, but I don't think it should prevent important fixes in the meantime.


Fixes bug with serialized access-token

Description

``

## Related Issue
<!--- This project only accepts pull requests related to open issues -->
<!--- If suggesting a new feature or change, please discuss it in an issue first -->
<!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!--- Please link to the issue here: -->

## Motivation and Context
<!--- Why is this change required? What problem does it solve? -->

## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->

## Screenshots (if appropriate):

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] 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 change)

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] This PR is on the ``develop`` branch.
- [ ] My code follows the code style of this project. (run `php vendor/bin/phpcs`)
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have updated the **CHANGELOG** document.
- [ ] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.

Hi, thanks for the PR! Could you rebase it on develop please? Thanks! 👍

Yeah, already done.

I don't see it, it still shows it as pointing to master

Please explain, because I don't understand what you want.
According this image - my branch is on develop point http://imgur.com/a/5PEKQ.

It seems like the changes you've made are on the master branch, at least from my side.

Ah, ok. I will make new pull request.


Investigate breaking changes to creating webhooks

GitHub Developer Announcement:
https://developer.github.com/changes/2017-08-09-breaking-changes-to-webhook-creation/
It looks to me like this might be a simple or possibly even a NO-OP issue for this repo, but needs investigation and is a great opportunity for a new contributor to take on an issue and contribute (for which we greatly appreciate).
To resolve this issue, the following endpoints need to be investigated:
* POST /repos/:owner/:repo/hooks
* PATCH /repos/:owner/:repo/hooks/:id
* POST /orgs/:org/hooks
* PATCH /orgs/:org/hooks/:id

and make sure that none of the following events are being sent:
* download
* follow
* fork_apply
* gist

If that is the case, this issue can be closed and we are good to go.
If, however, one or more of these events is capable of being sent through this package, then they need to be removed (or commented that they are illegal if the events are user-supplied as strings, which I highly doubt).
Feel free to ask to be assigned as owner for this issue to investigate and potentially fix, and you will be sent an invite to contribute to this repo (if you aren't already a contributor).
Thank you!

@gmlewis Can i take this up ?.

Absolutely!  Sending invite.  Thank you, @scriptonist!

We have some useful information for contributing here:
https://github.com/google/go-github/blob/master/CONTRIBUTING.md

@gmlewis I dont't know if i did it right.But these are the steps that i followed

Created a webhook for one of my personnel repo.
Accessed this with the ListHooks and GetHook functions.
Studied the response

I did the same for an organizational repository.
I found that none of these responses had

download
follow
fork_apply
gist

in their events array.
Was my approach right ? what more should I do ? please correct me for any mistakes.

Thank you, @scriptonist!  You went above and beyond.
I didn't actually expect GitHub to be sending those responses.
I wanted to make sure that we weren't simulating those responses anywhere or expecting them in our package.
It looks like we are totally in the clear.
Thanks again for investigating this, @scriptonist... we really appreciate it.
I'm going to close this issue as resolved.
Feel free to reopen if you (anyone) thinks that this issue has not been addressed correctly.


HTML5 word wrap issues

I've encountered 2 issues with multiline text in HTML5.

Spacing between lines is inconsistent. For example, with Verdana size 12 lines will sometimes be 7px and sometimes 8px away from each other.

Wrapping of words of another color can break line formatting, see the example below (click to trigger).

import openfl.display.Sprite;
import openfl.text.TextField;

class Main extends Sprite {

	public function new () {

		super ();

		var textField = new TextField ();
		textField.multiline = true;
		textField.wordWrap = true;
		textField.htmlText = "1111<PHONE_NUMBER>3 444444 5 666666666 AAAAA-BBBBB and some other characters.";
		textField.width = 250;
		addChild(textField);

		var border:Sprite = new Sprite();
		border.graphics.lineStyle(5, 0xFFFF00);
		border.graphics.drawRect(textField.width, 0, 0, 500);
		addChild(border);

		stage.addEventListener ("click", function (_) {
			textField.htmlText = "1111<PHONE_NUMBER>3 444444 5 666666666 AAAAA-BBBBB and some other characters.";
		});
	}
}

12pt Verdana has non-integer ascents and descents, so it's likely a floating point subpixel thing. On OpenFL's end, every line is sent to the browser the same, and there is no rounding/etc involved.

What does "break line formatting" mean?

Assuming what I saw is what you saw, try the latest dev OpenFL out: https://github.com/openfl/openfl/commit/50bc7066379c3ad13ac7750d43033e514d2613e3

Thanks, it is now fixed.

and there is no rounding/etc involved.

I see. Well, texts with multiple lines would definitely look better if some kind of rounding was performed then, as there is no such issue with Flash target.

@jgranick what do you think here? Rendering is a step out of my domain

It probably comes from the "ascent" and "descent" calculations (which really should be ascender/descender, which are a bit different) in here:
https://github.com/openfl/openfl/blob/master/src/openfl/_internal/text/TextEngine.hx
It factors into calculations like:
https://github.com/openfl/openfl/blob/master/src/openfl/_internal/text/TextEngine.hx#L741-L742
Then it is now used in the canvas rendering, like here:
https://github.com/openfl/openfl/blob/master/src/openfl/_internal/renderer/canvas/CanvasTextField.hx#L189

I tested with another font, it also has this 1px difference.

It would be interesting to see what ascent and descent values we are getting, and consider if it should be a bit different.

In https://github.com/openfl/openfl/blob/master/src/openfl/_internal/renderer/canvas/CanvasTextField.hx#L189 all ascent values are integers. offsetY is integer for the 1st line and float for all subsequent lines.
I found that I could fix it by changing https://github.com/openfl/openfl/blob/master/src/openfl/_internal/text/TextEngine.hx#L1240 to
offsetY += Math.floor(maxHeightValue);

The first offsetY is always 2, so it’s no surprise all of the rest are floats. We could round the lineHeights, but we’d have to see what Flash does since that may be an incorrect thing to do.
Flash aligns everything on twips, so maybe render code should too. That wouldn’t completely remove all decimals like you’re suggesting but place it on the nearest 0.05 multiple.

Based on textField.getCharBoundaries(), it looks like Flash puts text on integer pixels. So your fix would work, and I can PR that since I know TextEngine well, but I'll have to look at ceil vs floor vs round. Fonts in Flash and CPP don't scale the same way, so we might just be able to pick whichever.

https://try.haxe.org/#3FDa2
In addition to integer line heights, it does also look like Flash renders text on ints or something. The try.haxe example shows a visible difference between a tf at y=10.7 and another at y=10.8 and no difference between 10.7 and 10.6. I have a commit for integer heights, but this is also something to look at.


Detection of Trojan ZkarletFlash

I’d like to report that during a recent scan, the program detected a Trojan named ZkarletFlash on my device. I’d appreciate clarification on whether this is a false positive or a legitimate threat.
Thanks in advance for your assistance.

Hey, it's a false positive, it's because the exe is compiled with pyinstaller, i'm still not sure why but i think it's because i used the --onefile flag which bundles all necessary libraries inside the exe, which then makes it load dll files at runtime and that might be what's causing it to get flagged, i'll try to bundle required libraries separately in the next update and hopefully that fixes it.
If you don't trust my releases, the whole code is open source and not too complicated to understand, and it's also automatically compiled by Github actions, so you can grab the artefact from there and it also gets flagged so yeah, false positive.

Hey, it's a false positive, it's because the exe is compiled with pyinstaller, i'm still not sure why but i think it's because i used the --onefile flag which bundles all necessary libraries inside the exe, which then makes it load dll files at runtime and that might be what's causing it to get flagged, i'll try to bundle required libraries separately in the next update and hopefully that fixes it.
If you don't trust my releases, the whole code is open source and not too complicated to understand, and it's also automatically compiled by Github actions, so you can grab the artefact from there but it also gets flagged so yeah, false positive.

Thank you for the clarification!


Correct booking url domain

closes #386
LiveURL: https://smartfaq-correct-bookingURL-domain.surge.sh

Is this closing #386?

@git-toni yes, thanks

I think it's simpler to merge this PR than to change the graphql sever as suggested by @jaroslav-kubicek. Agree Jarda?

oh yes, I forgot to mention, haha. I considered changing graphql as well, but it seemed much more problematic than doing this. With graphql the base domain would have to be supplied or inferred.
A mixed solution would be to add a directAccessPath along directAccessURL on GraphQL, eliminating the need to parse the URL on the frontend

Agree, that was exactly what I intended to do @kantord as suggested here. And also agree that this can be a refactor later on once we really need it, so I'd go with your PR as well :slightly_smiling_face:

@jaroslav-kubicek let's merge this?

Pls also check if it’s working with older browsers, I am not sure if this is handled by babel or not

How?

Shouldn't babel-preset-env take care of browser compatibility?

Regexp implementation pushed!

rebased

Tests finally green :-)


Investigate transition to CSS grid layout

Currently the grid is implemented using CSS classes and <div>s, which goes against DRY: replicated code is sandwiched between unpredictable code and so cannot be (easily) refactored. Switching to CSS grid layout will also allow us to move closer to 100% content in html.

CSS Grid on caniuse: http://caniuse.com/#feat=css-grid
Browser support is still pretty shaky but from memory, our users are mostly using modern browsers (worth checking the analytics).

Yeah usage-relative statistics show Edge (and obviously Android) as the only two difficulties. Edge just got grid layout six days ago though so I could start work on this and merge later once the update has gotten through

On 23 Oct 2017, at 07:49, Christian Silver<EMAIL_ADDRESS>wrote:
CSS Grid on caniuse: http://caniuse.com/#feat=css-grid
Browser support is still pretty shaky but from memory, our users are mostly using modern browsers (worth checking the analytics).
―
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub, or mute the thread.


openjdk: Clean up platform conditionals

Motivation for this change
Better style, more robust with an eye towards cross compilation / portability.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

Failure on aarch64-linux (full log)
Partial log (click to expand)
error: while evaluating the attribute 'buildInputs' of the derivation 'openjdk-8u172b02' at /var/lib/gc-of-borg/nix-test-rs-2/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-2/pkgs/stdenv/generic/make-derivation.nix:148:11:
while evaluating the attribute 'buildCommand' of the derivation 'openjdk-bootstrap' at /var/lib/gc-of-borg/nix-test-rs-2/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-2/pkgs/stdenv/generic/make-derivation.nix:148:11:
No bootstrap for system

Failure on x86_64-darwin (full log)
Partial log (click to expand)
cannot build derivation '/nix/store/x8kg2z0wzqhmd1a7vsj4j1lba94hlfai-hook.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/6klpzkg42ik557195k563zm5r76sdi6z-stdenv-darwin.drv': 35 dependencies couldn't be built
cannot build derivation '/nix/store/z689fa6lk02wlv7vgdh1kz94w7q4di5r-libiconv-osx-10.11.6.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/biam5gxmaxz0w1i1kldnj4gc9i0fdcf7-libpng-apng-1.6.34.drv': 3 dependencies couldn't be built
cannot build derivation '/nix/store/jncbhqasqbpr3474jbfq47y39varvfm4-unzip-6.0.drv': 3 dependencies couldn't be built
cannot build derivation '/nix/store/hw3fpbqzldx68irn1fm1cnl3p3by95k0-which-2.21.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/sddwz2zaslwm2rmn74imngy8jz2x3v8f-pkg-config-0.29.2.drv': 3 dependencies couldn't be built
cannot build derivation '/nix/store/p9za9v427w7c36mvyhc9js8p1vqnr8wa-freetype-2.7.1.drv': 8 dependencies couldn't be built
cannot build derivation '/nix/store/20a1ybgzwnkav2s53vhshw6d777pwnrf-zulu1.8.0_121-<IP_ADDRESS>.drv': 5 dependencies couldn't be built
error: build of '/nix/store/20a1ybgzwnkav2s53vhshw6d777pwnrf-zulu1.8.0_121-<IP_ADDRESS>.drv' failed

cc @andir

Failure on x86_64-linux (full log)
Partial log (click to expand)
cannot build derivation ‘/nix/store/h20bassi7qvmmamn2yfy07f9pqzpk8h9-texlive-core-big.bin-2017.drv’: 3 dependencies couldn't be built
cannot build derivation ‘/nix/store/0yvdvqbvns5hq8kpm990x8fbb6pl4prr-gtk+-2.24.32.drv’: 5 dependencies couldn't be built
cannot build derivation ‘/nix/store/lgkrn9a129dwikzpq7qz6sbjr4hr1kys-texlive-combined-2017.drv’: 2 dependencies couldn't be built
cannot build derivation ‘/nix/store/lk0cnnnc3z08lxn1icm5r4ryzfnv4bx0-dblatex-0.3.10.drv’: 1 dependencies couldn't be built
cannot build derivation ‘/nix/store/zr5v1aq6aq8gac6hhl1a6v8g8nl94f07-gtk-doc-1.25.drv’: 1 dependencies couldn't be built
cannot build derivation ‘/nix/store/8bm6krb7hc9cisk1g0sij155b48qiwdr-polkit-0.113.drv’: 2 dependencies couldn't be built
cannot build derivation ‘/nix/store/gqcmdm8gv03irg4yf4p66q2di0pfwdkh-gconf-2.32.4.drv’: 1 dependencies couldn't be built
cannot build derivation ‘/nix/store/2pg0c4g81bsv9l8pmvahhbw78qzjjhgs-gnome-vfs-2.24.4.drv’: 1 dependencies couldn't be built
cannot build derivation ‘/nix/store/511l31mnwxji2wgflk1iahy7svrkx966-openjdk-8u172b02.drv’: 3 dependencies couldn't be built
error: build of ‘/nix/store/511l31mnwxji2wgflk1iahy7svrkx966-openjdk-8u172b02.drv’ failed

Failure on aarch64-linux (full log)
Partial log (click to expand)
error: while evaluating the attribute 'buildInputs' of the derivation 'openjdk-8u172b02' at /var/lib/gc-of-borg/nix-test-rs-3/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-3/pkgs/stdenv/generic/make-derivation.nix:148:11:
while evaluating the attribute 'buildCommand' of the derivation 'openjdk-bootstrap' at /var/lib/gc-of-borg/nix-test-rs-3/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-3/pkgs/stdenv/generic/make-derivation.nix:148:11:
No bootstrap for system

Success on x86_64-darwin (full log)
Partial log (click to expand)
  inflating: ZuluJCEPolicies/DISCLAIMER
  inflating: ZuluJCEPolicies/local_policy.jar
  inflating: ZuluJCEPolicies/US_export_policy.jar
post-installation fixup
moving /nix/store/5qa4b4x1dckarlh7x3gsc938k3dchlab-zulu1.8.0_121-<IP_ADDRESS>/man to /nix/store/5qa4b4x1dckarlh7x3gsc938k3dchlab-zulu1.8.0_121-<IP_ADDRESS>/share/man
gzipping man pages under /nix/store/5qa4b4x1dckarlh7x3gsc938k3dchlab-zulu1.8.0_121-<IP_ADDRESS>/share/man/
strip is /nix/store/s9jx32z9rbvzqaaa4fyndfz0zjfvl646-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/5qa4b4x1dckarlh7x3gsc938k3dchlab-zulu1.8.0_121-<IP_ADDRESS>/lib  /nix/store/5qa4b4x1dckarlh7x3gsc938k3dchlab-zulu1.8.0_121-<IP_ADDRESS>/bin
patching script interpreter paths in /nix/store/5qa4b4x1dckarlh7x3gsc938k3dchlab-zulu1.8.0_121-<IP_ADDRESS>
/nix/store/5qa4b4x1dckarlh7x3gsc938k3dchlab-zulu1.8.0_121-<IP_ADDRESS>

Failure on x86_64-linux (full log)
Partial log (click to expand)
checking for lftp... no
checking for ftp... no
checking headful support... include support for both headful and headless
configure: Found potential Boot JDK using configure arguments
configure: Potential Boot JDK found at /nix/store/g436csvys387lx4imxgwq85rw0rmrrhk-openjdk-bootstrap/lib/openjdk is incorrect JDK version (./common/autoconf/generated-configure.sh: line 11397: /nix/store/g436csvys387lx4imxgwq85rw0rmrrhk-openjdk-bootstrap/lib/openjdk/bin/java: No such file or directory); ignoring
configure: (Your Boot JDK must be version 7 or 8)
configure: error: The path given by --with-boot-jdk does not contain a valid Boot JDK
configure exiting with result code 1
builder for ‘/nix/store/zapvp47dljw48cyfq3v3msh0rm10yy3y-openjdk-8u172b02.drv’ failed with exit code 1
error: build of ‘/nix/store/zapvp47dljw48cyfq3v3msh0rm10yy3y-openjdk-8u172b02.drv’ failed

Failure on aarch64-linux (full log)
Partial log (click to expand)
error: while evaluating the attribute 'buildInputs' of the derivation 'openjdk-8u172b02' at /var/lib/gc-of-borg/nix-test-rs-1/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-1/pkgs/stdenv/generic/make-derivation.nix:148:11:
while evaluating the attribute 'buildCommand' of the derivation 'openjdk-bootstrap' at /var/lib/gc-of-borg/nix-test-rs-1/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-1/pkgs/stdenv/generic/make-derivation.nix:148:11:
No bootstrap for system

Failure on x86_64-darwin (full log)
Partial log (click to expand)
cannot build derivation '/nix/store/l0y8axrl76193ajv5cyhk7jbzx4axhq1-hook.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/8py9i1sxksyjiimnskilhcjiqvz68g08-stdenv-darwin.drv': 35 dependencies couldn't be built
cannot build derivation '/nix/store/f0pg5l7rp68xhi6m7l23kgnmkvdmpj0w-libiconv-osx-10.11.6.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/y9im4a59ig0wfvp332bcfsh2kiincdlg-libpng-apng-1.6.34.drv': 3 dependencies couldn't be built
cannot build derivation '/nix/store/8qlsfagzkz4s01fj2d1d6wy3psjgypry-unzip-6.0.drv': 3 dependencies couldn't be built
cannot build derivation '/nix/store/brldapwhv9bqxfndcsqgd472av382ais-which-2.21.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/22c87286av8qxn0l0xjfgr3c7avi913y-pkg-config-0.29.2.drv': 3 dependencies couldn't be built
cannot build derivation '/nix/store/2rsy0mjfhgkrjyli9nmxmna78fw99hsv-freetype-2.7.1.drv': 8 dependencies couldn't be built
cannot build derivation '/nix/store/qa1vdh409i1mp4v4cbv8jszkqg585z05-zulu1.8.0_121-<IP_ADDRESS>.drv': 5 dependencies couldn't be built
error: build of '/nix/store/qa1vdh409i1mp4v4cbv8jszkqg585z05-zulu1.8.0_121-<IP_ADDRESS>.drv' failed

Failure on x86_64-linux (full log)
Partial log (click to expand)
cannot build derivation ‘/nix/store/rc7klscg5683ddxmk5qwsqk067qz8rh3-texlive-core-big.bin-2017.drv’: 19 dependencies couldn't be built
cannot build derivation ‘/nix/store/s41wvpg8ff742zfqfr3di4ammmdmd4d6-gtk+-2.24.32.drv’: 18 dependencies couldn't be built
cannot build derivation ‘/nix/store/1s2rz0d1zzc0q1mmha8rvvil4ixxiwx5-texlive-combined-2017.drv’: 7 dependencies couldn't be built
cannot build derivation ‘/nix/store/2wkffm4vjpj35xkcmjgc7yahhxzc8bvb-dblatex-0.3.10.drv’: 5 dependencies couldn't be built
cannot build derivation ‘/nix/store/2ahkwnvs908b8s5ihhkcfiwj07nw8pai-gtk-doc-1.25.drv’: 15 dependencies couldn't be built
cannot build derivation ‘/nix/store/wlqfr23hqql3jb8v7nazn0mbnlshqjbv-polkit-0.113.drv’: 15 dependencies couldn't be built
cannot build derivation ‘/nix/store/4kgv0dhiw8p9aqw9jhpkghsfwz1m4y6d-gconf-2.32.4.drv’: 10 dependencies couldn't be built
cannot build derivation ‘/nix/store/jk9783wn8rfs0p3fmbjviypf91n988zv-gnome-vfs-2.24.4.drv’: 15 dependencies couldn't be built
cannot build derivation ‘/nix/store/bbjy65pgxf06g75pyj5f92pyjyzlkvap-openjdk-8u172b02.drv’: 32 dependencies couldn't be built
error: build of ‘/nix/store/bbjy65pgxf06g75pyj5f92pyjyzlkvap-openjdk-8u172b02.drv’ failed

Built manually.


MH-13361, Fix Scheduler Item Serialization

Opencast cannot serialize Long whcih are used in a few scheduler
messages given the right (or wrong) circumstances.  We need to use
native data types (long) or Stings instead.
This patch fixes the sending of some scheduler related messages via
ActiveMQ.

Looks good. Tested in conjunction with #614


docs: minor improvements

This PR adds a small update to the docs

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks a lot for this contribution @johannesschobel 🙌

Dear @nikolasburk
you're welcome.. awesome work on prisma.. like it so far..
maybe i can work on the (already pretty good!) docs, if you like to flesh out some chapters..

That sounds great, we could certainly need some help! 💪  Would you mind joining our Slack and pinging me there (I'm @nikolasburk), should be easier to discuss some details there! :)