[SPARK-47002][Python] Return better error message if UDTF 'analyze' method 'orderBy' field accidentally returns a list of strings

What changes were proposed in this pull request?
This PR updates the Python UDTF API to check and return a better error message if the analyze method returns an AnalyzeResult object with an orderBy field erroneously set to a list of strings, rather than OrderingColumn instances.
For example, this UDTF accidentally sets the orderBy field in this way:
from pyspark.sql.functions import AnalyzeResult, OrderingColumn, PartitioningColumn
from pyspark.sql.types import IntegerType, Row, StructType
class Udtf:
    def __init__(self):
        self._partition_col = None
        self._count = 0
        self._sum = 0
        self._last = None

    @staticmethod
    def analyze(row: Row):
        return AnalyzeResult(
            schema=StructType()
                .add("user_id", IntegerType())
                .add("count", IntegerType())
                .add("total", IntegerType())
                .add("last", IntegerType()),
            partitionBy=[
                PartitioningColumn("user_id")
            ],
            orderBy=[
                "timestamp"
            ],
            )

    def eval(self, row: Row):
        self._partition_col = row["partition_col"]
        self._count += 1
        self._last = row["input"]
        self._sum += row["input"]

    def terminate(self):
        yield self._partition_col, self._count, self._sum, self._last

Why are the changes needed?
This improves error messages and helps keep users from getting confused.
Does this PR introduce any user-facing change?
Yes, see above.
How was this patch tested?
This PR adds test coverage.
Was this patch authored or co-authored using generative AI tooling?
No.

cc @ueshin here is the follow-up PR to add more checks for analyze result ordering fields.

The CI looks passing, the one failure is unrelated:

Thanks! merging to master.


Added missing countries

Just added the rest of the countries.

Awesome, thanks :+1:

Awesome, thanks :+1:


Order of operations in the Tutorials is incorrect.

Before you can Access a newly created private cloud, you must first perform the one-time network configuration.  My suggestion is to reverse the current order of:
3 - Access a private cloud
4 - Configure networking    <-- this would come before Access a private cloud
in the Tutorials section.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 53c9e78f-7448-605e-4231-530cad0fdc78
Version Independent ID: 0382cf81-d644-68b3-62fc-9741859052ee
Content: Tutorial - Configure networking for your VMware private cloud in Azure - Azure VMware Solution
Content Source: articles/azure-vmware/tutorial-configure-networking.md
Service: azure-vmware
GitHub Login: @suzizuber
Microsoft Alias: v-szuber

Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.

@rvandenbedem is this an issue you could take a look at and provide feedback for?

Great feedback, yes, the sequence needs to be changed. PR: https://github.com/MicrosoftDocs/azure-docs/pull/97398

@suzizuber - Can you please close this Issue?

#please-close


InsertSelectors and InsertPassives errors

Hey there :)
So I'm a lua newbie so it can very well be the issue but I wanted to try editing spell lists and adding selectors and passives to vanilla classes using CLCF so I would not run in any compatibility issue with other mods.
I set up my personal mod for SE and did BootstrapClient/Server like this (S1 being the UUID of sorcerer lvl1 progression):
local CLCF ="67fbbd53-7c7d-4cfa-9409-6d737b4d92a9"
local BG3H = "143ed971-72c8-4d11-a749-2d01a9badaff"

local S1 = "42af9bda-9ac0-4564-920b-f9ca1588d6ee"

local SorcererCSL = "485a68b4-c678-4888-be63-4a702efbe391"
local mySorcererC = {
  "Projectile_Jolt",
  "Shout_ArcaneEmpower",
}

local SorcererSL1 = "92c4751f-6255-4f67-822c-a75d53830b27"
local mySorcererL1 = {
  "Shout_Rituals",
}

local DruidCSL = "b8faf12f-ca42-45c0-84f8-6951b526182a"
local myDruidC = {
  "Projectile_Jolt",
}

if Ext.Mod.IsModLoaded(CLCF) then
  local lists = {
    SorcererCantripUpdate = {
      modGuid = BG3H,
      ListType = "SpellList",
      TargetList = SorcererCSL,
      ListItems = mySorcererC
    },
	SorcererSL1Update = {
      modGuid = BG3H,
      ListType = "SpellList",
      TargetList = SorcererSL1,
      ListItems = mySorcererL1
    },
    DruidCantripUpdate = {
      modGuid = BG3H,
      ListType = "SpellList",
      TargetList = DruidCSL,
      ListItems = myDruidC
    },
  }
  local S1passives = {
	  modGuid = BG3H,
	  Target = S1,
	  FileType = "Progression",
	  Type = "PassivesAdded",
	  Strings = {
		"DualCasting",
		"SculptSpells",
		"WrathOfTheStorm",
	}
}
	local DruidspelltoSorcerer1 = {
	  DescriptiveSelectorName = {
		modGuid = BG3H,
		Target = S1,
		FileType = "Progression",
		Function = "SelectSpells",
		Overwrite = "0",
		Params = {
		  Guid = "2cd54137-2fe5-4100-aad3-df64735a8145",
		  Amount = "5",
		  Prepared = "0",
		  SelectorId = "",
		  CastingAbility = "",
		  ActionResource = "",
		  PrepareType = "",
		  CooldownType = ""
		}
	  }
	}
  local function OnSessionLoaded()
    Mods.SubclassCompatibilityFramework.Api.InsertToList(lists)
	Mods.SubclassCompatibilityFramework.API.InsertSelectors(DruidspelltoSorcerer1)
	Mods.SubclassCompatibilityFramework.Api.InsertPassives(S1passives)
  end
  Ext.Events.SessionLoaded:Subscribe(OnSessionLoaded)
end

Good thing is spell lists are good so it launches (hooray!)
Issue is InsertSelectors and InsertPassives do not...
The console logs are :
Error while dispatching event SessionLoaded:    [string "SubclassCompatibilityFramework/CompatibilityS..."]:103: Cannott
stack traceback:
        [C++ Code]: in metamethod '__index'
        SubclassCompatibilityFramework/CompatibilitySupport/SelectorSupport/_SelectorAddition.lua:103: in upvalue 'IsPa'
        SubclassCompatibilityFramework/CompatibilitySupport/SelectorSupport/_SelectorAddition.lua:118: in upvalue 'AddS'
        SubclassCompatibilityFramework/CompatibilitySupport/SelectorSupport/_SelectorAddition.lua:126: in global 'Handl'
        SubclassCompatibilityFramework/API/SelectorApi.lua:7: in field 'InsertSelectors'
        BG3H/BootstrapServer.lua:75: in function <BG3H/BootstrapServer.lua:73>
        [C++ Code]: in function 'xpcall'
        builtin://Libs/Event.lua:129: in method 'Throw'
        builtin://Libs/Event.lua:184: in function <builtin://Libs/Event.lua:183>

If I swap InsertSelectors and InsertPassives I have this :
Error while dispatching event SessionLoaded:    [string "SubclassCompatibilityFramework/API/StringApi...."]:7: bad argu)
stack traceback:
        [C++ Code]: in field 'IsModLoaded'
        SubclassCompatibilityFramework/API/StringApi.lua:7: in field 'InsertStrings'
        SubclassCompatibilityFramework/API/StringApi.lua:36: in field 'InsertPassives'
        BG3H/BootstrapServer.lua:75: in function <BG3H/BootstrapServer.lua:73>
        [C++ Code]: in function 'xpcall'
        builtin://Libs/Event.lua:129: in method 'Throw'
        builtin://Libs/Event.lua:184: in function <builtin://Libs/Event.lua:183>

Sorry for the wall of text... all this mainly to be able to :

add feats selections at any given level,
add spellslots,
change number of spells/level

without having to overwrite the entire progression of all classes (spell list editing is a nice bonus^^)

For the strings, you'll want to wrap the string in curly braces, like so:
  local S1passives = {
    pasive = {
	  modGuid = BG3H,
	  Target = S1,
	  FileType = "Progression",
	  Type = "PassivesAdded",
	  Strings = {
		"DualCasting",
		"SculptSpells",
		"WrathOfTheStorm",
	}
  }
}

I messed up in the documentation, it's fixed there now :) Looking into the Selector issue further - can you widen your console window before hitting new game? It may show a bit more information. I think I've fixed it in 2.4.2, but will be good to make sure.

So same syntax than spell lists, makes sense ^^
I change it to this (just changing payload) :
  local S1passives = {
    SorcererP1 = {
	  modGuid = BG3H,
	  Target = S1,
	  FileType = "Progression",
	  Type = "PassivesAdded",
	  Strings = {
		"DualCasting",
		"SculptSpells",
		"WrathOfTheStorm",
	}
  },
}

But with the same kind of error I think ?
Error while dispatching event SessionLoaded:    [string "SubclassCompatibilityFramework/Utils/StringUt..."]:2: bad argu)stack traceback:
        [C++ Code]: in function 'string.find'
        SubclassCompatibilityFramework/Utils/StringUtils.lua:2: in field 'IsInString'
        SubclassCompatibilityFramework/CompatibilitySupport/StringSupport/_StringAddition.lua:9: in upvalue 'stripDupli'        SubclassCompatibilityFramework/CompatibilitySupport/StringSupport/_StringAddition.lua:24: in upvalue 'AddString'        SubclassCompatibilityFramework/CompatibilitySupport/StringSupport/_StringAddition.lua:34: in global 'HandleProg'        SubclassCompatibilityFramework/API/StringApi.lua:8: in field 'InsertStrings'
        SubclassCompatibilityFramework/API/StringApi.lua:36: in field 'InsertPassives'
        BG3H/BootstrapServer.lua:77: in function <BG3H/BootstrapServer.lua:75>
        [C++ Code]: in function 'xpcall'
        builtin://Libs/Event.lua:129: in method 'Throw'
        builtin://Libs/Event.lua:184: in function <builtin://Libs/Event.lua:183>

Will make a try by swapping functions to see if selectors are fixed with new version!

Well an error again, I guess I messed somewhere -_-
Error while dispatching event SessionLoaded:    [string "SubclassCompatibilityFramework/CompatibilityS..."]:103: Cannottstack traceback:
        [C++ Code]: in metamethod '__index'
        SubclassCompatibilityFramework/CompatibilitySupport/SelectorSupport/_SelectorAddition.lua:103: in upvalue 'IsPa'
        SubclassCompatibilityFramework/CompatibilitySupport/SelectorSupport/_SelectorAddition.lua:120: in upvalue 'AddS'
        SubclassCompatibilityFramework/CompatibilitySupport/SelectorSupport/_SelectorAddition.lua:128: in global 'Handl'
        SubclassCompatibilityFramework/API/SelectorApi.lua:7: in field 'InsertSelectors'
        BG3H/BootstrapServer.lua:77: in function <BG3H/BootstrapServer.lua:75>
        [C++ Code]: in function 'xpcall'
        builtin://Libs/Event.lua:129: in method 'Throw'
        builtin://Libs/Event.lua:184: in function <builtin://Libs/Event.lua:183>

Usually I learn directly by looking into some mods that do the same thing but I don't know some that would?

Since I'm on it, how would you insert :
<attribute id="AllowImprovement" type="bool" value="true"/>
Or something similar?
Just a seletor with the entire feat list?

Feats are not done through selectors. I am on my phone, so give me a moment to get the correct syntax.

For the record, here is the entire error for InsertPassives (I guess I made some syntax mistake?)
Error while dispatching event SessionLoaded:    [string "SubclassCompatibilityFramework/Utils/StringUt..."]:2: bad argument #2 to 'find' (string expected, got no value)
stack traceback:
        [C++ Code]: in function 'string.find'
        SubclassCompatibilityFramework/Utils/StringUtils.lua:2: in field 'IsInString'
        SubclassCompatibilityFramework/CompatibilitySupport/StringSupport/_StringAddition.lua:9: in upvalue 'stripDuplicates'
        SubclassCompatibilityFramework/CompatibilitySupport/StringSupport/_StringAddition.lua:24: in upvalue 'AddString'
        SubclassCompatibilityFramework/CompatibilitySupport/StringSupport/_StringAddition.lua:34: in global 'HandleProgressionString'
        SubclassCompatibilityFramework/API/StringApi.lua:8: in field 'InsertStrings'
        SubclassCompatibilityFramework/API/StringApi.lua:36: in field 'InsertPassives'
        BG3H/BG3H_CLCF.lua:256: in function <BG3H/BG3H_CLCF.lua:254>
        [C++ Code]: in function 'xpcall'
        builtin://Libs/Event.lua:129: in method 'Throw'
        builtin://Libs/Event.lua:184: in function <builtin://Libs/Event.lua:183>

I can't help to think the new mod update can be related to my questions and/but I'm so glad it's a thing !
This will consume all my free time...but you are the bests :)
A last question then, before you close this post, the new json file has to be beside the Bootstrap files?

The Boolean part was, specifically - I probably should have added that a while ago, but knowing it's something that's needed raised the priority on it 😄
Still looking into the String and Selector issues, though, fwiw. Hopefully it was just syntax, but I want to make sure I didn't break anything at some point. One thing, if you're using the API, any field that is blank, you'll want to leave out - the Framework should set up defaults, so for example this:
  local DruidspelltoSorcerer = {
    DS1 = {
      modGuid = BG3H,
      Target = S1,
      FileType = "Progression",
      Function = "SelectSpells",
      Overwrite = "0",
      Params = {
        Guid = DruidSL1,
        Amount = "5",
        Prepared = "0",
        SelectorId = "",
        CastingAbility = "",
        ActionResource = "",
        PrepareType = "",
        CooldownType = ""
	}
  },

Can be reduced to this:
  local DruidspelltoSorcerer = {
    DS1 = {
      modGuid = BG3H,
      Target = S1,
      FileType = "Progression",
      Function = "SelectSpells",
      Overwrite = "0",
      Params = {
        Guid = DruidSL1,
        Amount = "5",
        Prepared = "0"
	}
  },
``

If the selector piece here still gives trouble, does it work if you change `Guid` to `UUID`? I thought I set up handling to support both but that may have slipped my mind

The new json file would be in the folder above the Bootstrap files, so structure would look something like this:

Mods/ModName/ScriptExtender/
CompatibilityFrameworkConfig.json
Lua/
BootstrapServer.lua
BootstrapClient.lua

Ah, and for the Strings one, I just noticed - for HBPassives, using the API you'll want to make sure you add a FileType field that's either "Feat" or "Progression"

Will check and try this tomorrow, before testing with JSON file.

Have to be quick this morning but I tried to trim code to the bare minimum to avoid syntax errors :
local CLCF ="67fbbd53-7c7d-4cfa-9409-6d737b4d92a9"
local BG3H = "143ed971-72c8-4d11-a749-2d01a9badaff"

-- Sorcerer
local S1 = "42af9bda-9ac0-4564-920b-f9ca1588d6ee"

-- Druid
local DruidSL1 = "2cd54137-2fe5-4100-aad3-df64735a8145"

if Ext.Mod.IsModLoaded(CLCF) then
  local DruidspelltoSorcerer = {
    DS1 = {
      modGuid = BG3H,
      Target = S1,
      FileType = "Progression",
      Function = "SelectSpells",
      Overwrite = "0",
      Params = {
        UUID = DruidSL1,
        Amount = "5",
        Prepared = "0",
        }
  },
};

  local function OnSessionLoaded()
	Mods.SubclassCompatibilityFramework.API.InsertSelectors(DruidspelltoSorcerer)
	  end
  Ext.Events.SessionLoaded:Subscribe(OnSessionLoaded)
end

But yet again the same error :
Error while dispatching event SessionLoaded: 	[string "SubclassCompatibilityFramework/CompatibilityS..."]:103: Cannot get property: resource::Progression::Spell.UUID - property does not exist
stack traceback:
	[C++ Code]: in metamethod '__index'
	SubclassCompatibilityFramework/CompatibilitySupport/SelectorSupport/_SelectorAddition.lua:103: in upvalue 'IsPayloadInSelector'
	SubclassCompatibilityFramework/CompatibilitySupport/SelectorSupport/_SelectorAddition.lua:120: in upvalue 'AddSelector'
	SubclassCompatibilityFramework/CompatibilitySupport/SelectorSupport/_SelectorAddition.lua:128: in global 'HandleSelector'
	SubclassCompatibilityFramework/API/SelectorApi.lua:7: in field 'InsertSelectors'
	BG3H/BG3H_CLCF.lua:27: in function <BG3H/BG3H_CLCF.lua:26>
	[C++ Code]: in function 'xpcall'
	builtin://Libs/Event.lua:129: in method 'Throw'
	builtin://Libs/Event.lua:184: in function <builtin://Libs/Event.lua:183>

I'll drop the full log file (I'll try without the mod that spam it :p )
Extender Runtime 2023-10-24 07-14-02.log

I'm cursed :p
With a brand new CombatibilityFrameworkConfig.json I have this error :
[string "SubclassCompatibilityFramework/JsonLayer/_Jso..."]:30: Unable to parse JSON: * Line 12, Column 22
  Missing '}' or object member name

stack traceback:
	[C++ Code]: in field 'Parse'
	SubclassCompatibilityFramework/JsonLayer/_JsonLoader.lua:30: in function <SubclassCompatibilityFramework/JsonLayer/_JsonLoader.lua:28>
	[C++ Code]: in function 'xpcall'
	SubclassCompatibilityFramework/JsonLayer/_JsonLoader.lua:43: in global 'LoadConfigFiles'
	SubclassCompatibilityFramework/Init/_InitDefaults
[Extender Runtime 2023-10-24 16-17-38.log](https://github.com/BG3-Community-Library-Team/BG3-Compatibility-Framework/files/13121017/Extender.Runtime.2023-10-24.16-17-38.log)
.lua:2: in function <SubclassCompatibilityFramework/Init/_InitDefaults.lua:1>
	[C++ Code]: in function 'xpcall'
	builtin://Libs/Event.lua:129: in method 'Throw'
	builtin://Libs/Event.lua:184: in function <builtin://Libs/Event.lua:183>

Json looks like it's throwing a syntax error, missed curly brace. Can you post the Json you attempted with? I might be able to help with that piece 😄
In the meantime, I'm investigating the Selector API. What was the error you were getting with the Passives this morning?

The passive error was this :
Error while dispatching event SessionLoaded: 	[string "SubclassCompatibilityFramework/Utils/StringUt..."]:2: bad argument #2 to 'find' (string expected, got no value)
stack traceback:
	[C++ Code]: in function 'string.find'
	SubclassCompatibilityFramework/Utils/StringUtils.lua:2: in field 'IsInString'
	SubclassCompatibilityFramework/CompatibilitySupport/StringSupport/_StringAddition.lua:9: in upvalue 'stripDuplicates'
	SubclassCompatibilityFramework/CompatibilitySupport/StringSupport/_StringAddition.lua:24: in upvalue 'AddString'
	SubclassCompatibilityFramework/CompatibilitySupport/StringSupport/_StringAddition.lua:34: in global 'HandleProgressionString'
	SubclassCompatibilityFramework/API/StringApi.lua:8: in field 'InsertStrings'
	SubclassCompatibilityFramework/API/StringApi.lua:36: in field 'InsertPassives'
	BG3H/BG3H_CLCF.lua:25: in function <BG3H/BG3H_CLCF.lua:24>
	[C++ Code]: in function 'xpcall'
	builtin://Libs/Event.lua:129: in method 'Throw'
	builtin://Libs/Event.lua:184: in function <builtin://Libs/Event.lua:183>

The LUA was just this :
local CLCF ="67fbbd53-7c7d-4cfa-9409-6d737b4d92a9"
local BG3H = "143ed971-72c8-4d11-a749-2d01a9badaff"

-- Sorcerer
local S1 = "42af9bda-9ac0-4564-920b-f9ca1588d6ee"

if Ext.Mod.IsModLoaded(CLCF) then
   local HBPassives = {
    SorcererP1 = {
	  modGuid = BG3H,
	  Target = S1,
	  FileType = "Progression",
	  Type = "PassivesAdded",
	  Strings = {
		"RDM_Dual_Casting_Passive",
		"SculptSpells",
		"WrathOfTheStorm",
	}
  },
};

  local function OnSessionLoaded()
	Mods.SubclassCompatibilityFramework.Api.InsertPassives(HBPassives)
	  end
  Ext.Events.SessionLoaded:Subscribe(OnSessionLoaded)
end

Will check the braces, was quite sur I check them but well^^

CompatibilityFrameworkConfig.json

I should have a fix up shortly

2.4.6 Should fix the issues you're running into 😄

Well, you will hate me...but I cannot seem to use the last version since it's automatically inactive in BG3 mod manager at each launch, never had this with any mod -_-

Might need to export/save the load order again, or fully uninstall the mod then reinstall - sometimes that's the only way I can get some mods to work after an update

Fully uninstalled, reloaded, reloaded the mod list, even loaded just this mod but each time it goes back to inactive.
It does not even appear in the SE console on launch
So I guess it's time for a little break ^^.

I just checked : the meta file of the new version does not have UUID string anymore, so I guess that's why it is ignored

Good catch! Updated to 2.4.8. Not sure how I missed that

Ok so finally :

I added the UUID string to meta file and then it loads (you fixed it in the meantime^^)
The selectors are ok since I can see my druid spell on sorceror character creation (YEAH!)
still cannot make passives to work but there is something strange in the logs : the list of passives that should be inserted, and then the string with all passives for this level progression are displayed in SE console (not very clear but could see at lines 209 and 299 of the attached logs)
Extender Runtime 2023-10-24 22-05-05.log

In the console, if you hit enter and then type _D(Ext.StaticData.Get("42af9bda-9ac0-4564-920b-f9ca1588d6ee", "Progression")), do the passive entries display in the PassivesAdded` field of the object it shows?

They are but with a ; at the end :
"PassivesAdded" : "UnlockedSpellSlotLevel1;RDM_Dual_Casting_Passive;SculptSpells;WrathOfTheStorm;",
Perhaps that's the problem?
I thought it coulb be because I let a comma at the end of  the third passive here :
local HBPassives = {
    SorcererP1 = {
	  modGuid = BG3H,
	  Target = S1,
    FileType = "Progression",
	  Type = "PassivesAdded",
	  Strings = {
		"RDM_Dual_Casting_Passive",
		"SculptSpells",
		**"WrathOfTheStorm,"**
	}
  },
};

But removing it does not change anything.

Semicolons are meant to be there - that's how Passives are separated in the PassivesAdded/PassivesRemoved section. That they're being shown is a good sign, that means they've been inserted correctly. Not sure exactly why they wouldn't be showing up though, SculptSpells and WrathOfTheStorm are vanilla passives, right? What happens if you only send through those two?

I tried and nothing change with only the vanilla passives.
Does the same thing with config json or API (it shows in SE console but not ingame)
I pointed only the last semicolon of the line since it can mess the progression file IIRC.
Regarding the other functions :

Just saw that when I use selectors and SelectSpell (did not try others) there is a weird behaviour

At level 1, with my modded progression i have to choose 4 cantrips and 9 lvl1 spells.
With API I add 5 lvl1 druid spells
In game I now have to choose 9 lvl1 sorc spells, 5 druid spells and then again 9 sorc spells but no cantrips
(and yes, in console i can see that the first selector (cantrips) is overwritten by another one (sorc spells) that I did not use in the LUA file !

Could not test this with the config json since I cannot make selectors works,  I tried
"Selectors": [
        {
          "Action": "Insert",
          "Function": "SelectSpells",
          "Overwrite": false,
          "UUID": "2cd54137-2fe5-4100-aad3-df64735a8145",
          "Params": {
              "Amount" : "5",
              "Prepared" : "0"
          }
        }
      ],

I change the parameters syntax to be the same and not the Amount = "5" form LUA is it right?
Show no error in console but nothing in game except the previously reported one
bg3se::ExtensionStateBase::LuaLoadGameFile(): Script file could not be opened: Mods/SubclassCompatibilityFramework/ScriptExtender/Lua/API/RaceApi.lua

The config json Lists do work, very minor issue : the wiki page and example file shows "Type": "Spells, Skills, or Passives", but it's actually SpellList, SkillList, or PassiveList (at least it did not work with "Spells" but does work with "SpellList" for me)

2.4.10 should resolve the issues with Selectors and Strings 🤞 There was an issue with my table-merging logic, which has been resolved. For Strings to work, you'll also have to switch SessionLoaded out for StatsLoaded - I'll be updating documentation momentarily.
For Selectors, going forward this will be the correct syntax (your example specifically):
"Selectors": [
        {
          "Action": "Insert",
          "Function": "SelectSpells",
          "Params": {
            "Guid": "2cd54137-2fe5-4100-aad3-df64735a8145",
            "Amount": "5",
            "Prepared": "0"
          }
        }
      ],

It works !!!
Just some random issues with spell lists in game but that's probably more of a problemen with Spell List Combiner (I guess 5e Spells self insertion + your API + Spell List Combiner is a bit much x) )
Last question, a "how to" and not a bug for once :
Regarding selectors if I want to, say, choose 4 spells instead of 2 in the same list I can set "Overwrite": true, ?
But what if the were multiple selectors in this progression Guid, will it overwrite all of them so I have to had them back (without overwrite?) ?

Overwrite isn't implemented yet, so at the moment it won't do anything, but the plan is for it to remove all existing Selectors, and then add its own. At the moment there's nothing for modifying the individual amounts for existing Selectors - an eventual removal feature (or just using overwrite) is planned to handle that use case, though
For lists, the UUID field isn't currently set up to handle arrays, but that's on the roadmap, and will likely be in one of the next versions 😄

Thanks for the clarification, that's why I could not make it work then ^^
Was wondering how it I should code it with multiple selectors, but it' a moot point.
And ok for arrays, that's good news :)
Then I think this Issue can finally be closed, thank you so much !

@NellsRelo
Sorry a laaaast point before I spend hours pouring my 2500 lines progression file into the config json...
Can I safely add a comment without messing with something?
Something like (or after the uuid?)
"Comment": "Sorcerer 1",
"UUID": "42af9bda-9ac0-4564-920b-f9ca1588d6ee",

Inside progression there is the class/level but not there ^^

Yes, you should be able to - it won't get parsed into anything, so shouldn't break anything

I know there's nothing technically wrong with doing this, but it breaks my heart a little bit, but I guess we are limited by somewhat by UUIDs not being clear indicators.

Why JSON Does Not Support Comments? According to the JSON specification, a JSON document should only contain data structures like arrays and objects and not include comments. This is because JSON is intended to be a simple, easily parsable data format that can be quickly and efficiently processed

Feats are not done through selectors. I am on my phone, so give me a moment to get the correct syntax.

Really no rush, I'm just cleaning my personal mod using CLCF instead of barging through all class progressions and spell lists, nothing vital ^^
PS : I uploaded my Bootstrap if simpler to read

I am SO sorry for not getting back to you about this; I made some changes to my email filtering and I completely missed so much stuff. I haven't caught up on everything that has happened in this issue, but Nells has implemented the feat support in one of the recent releases... amongst 400 other things.

No prob really, I've had time to beta test each release x)
Agree with you about comments, but my progression file go through near every class/level since it adds some feats and spell slots, and it's hard to remember what class you are modding with just UUID ^^
Regarding booleans it was indeed implemented !
But for a change I have an error doing so, I guess it's time for a new post :p

Yes your are right, nearly all lists are related to other mods.
With last release lists, booleans, passives and selectors seem to be okay but one : boosts (spellslots in my file) are applied twice.
Perhaps that's my fault :
To double spellslots I inserted a boost that is identical to the vanilla one, IE lvl1 bard has "ActionResource(SpellSlot,2,1)" twice instead of only one "ActionResource(SpellSlot,4,1)"
Is it better to do this, if even possible ? :
"Action": "Remove",
                    "Type": "Boosts",
                    "Strings": [
                        "ActionResource(SpellSlot,2,1)"
                    ],
"Action": "Insert",
                    "Type": "Boosts",
                    "Strings": [
                        "ActionResource(SpellSlot,4,1)"
                    ]


[examples] Add new log example using consensus::simplex

Blocked: #180
Randomly append data to an ever-growing log. If any data is missing, just skip it.

It may be more fun to frame this around "secret agreement". All we ensure is that one hash (i.e. secret) is agreed upon each view. If you want to sync that hash, you have to go fetch it from someone.

Use (Next,Past) as the digest.

Resolved by #221


Vulkan: VoxelGI Indirect Lighting from Static Omni Light is broken until manually re-setting gi data in Rendering Server

Godot version
4.0.3 stable, 4.1 beta 2
System information
Windows 10 Vulkan forward+ Radeon RX 6700xt
Issue description
VoxelGI doesn't seem to show any bounce light from a static baked omni light on loading a scene. This happens both in the editor and when running the game.
Immediately after baking the voxelGI data the bounce light is visible and working properly, but it breaks as soon as you reload the scene, switch to another scene tab in the editor, and is also broken in the game window when run.
Once the baked data exists and is saved to a resource file, the lighting can be fixed by simply using the "load" option on the VoxelGIData and selecting the file it's already assigned to.
Calling DisplayServer.instance_set_base() or just using the set_base() method of the voxelGI node to re-set the GI data works to fix the issue in a running game (after a short period of starting the game)
This does not happen with bounce lighting from directional lights. EDIT SpotLight3D also seems to be unaffected by this issue.

Steps to reproduce
Create new forward+ project

In a 3d scene disable the preview sun and add 2 cube meshes positioned close enough to see bounce light.
Add an omniLight3D set the bake mode to static and set the light energy high so that bounce light is easily visible, position it so that it doesn't directly illuminate the gap between the meshes.
Add a VoxelGI node, create the voxelGIData resource and bake the GI
bounce lighting is visible
click Scene -> new scene, then click the tab to go back to the 3d scene with the GI
bounce lighting is now gone
bounce lighting is also not present when you run the scene

Minimal reproduction project
BrokenIL_MRP.zip
The VoxelGI node in this scene has an exported checkbox that if selected does the fix of re-setting the gi data in the display server when the scene is run for comparison

I came across #74134 which seemed similar but this seems to be specifically bounce light from static omni lights only

I'm actually currently working on a fix to this, I'll see if I can make a PR soon. I ran into this bug too.


fix show-text-modal number display(#3821)

What's the purpose of this PR
修复整数精度展示问题
Which issue(s) this PR fixes:
Fixes #3821
Brief changelog
XXXXX
Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Read the Contributing Guide before making this pull request.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit tests to verify the code.
[ ] Run mvn clean test to make sure this pull request doesn't break anything.
[ ] Update the CHANGES log.

修改效果如下：

recheck

hi，thanks your contributions again. But, do you have time to sign the CLA by leaving a "I have read the CLA Document and I hereby sign the CLA" comment.:-P

I have read the CLA Document and I hereby sign the CLA

please fix conflicts.


Fixes bug in CHIP GPIO cleanup function

Because the output function looks up the _pin_mapping, we don't need to do it when calling output from cleanup.

This fix is outdated as we're now dependent on CHIP_IO for all of the underlying CHIP specific code.  The port was initially constructed with all of the logic in the main Adafruit code as I wanted to get something done quick for the community and fix it later.

Whoops, you're right -- didn't see the changes!

No worries!  If I hadn't updated the code, I totally would have accepted the pull request. :)


Replaced double quote chars

This fix allows successfully install in Windows

Thanks for the quick fix! :+1:


Export API: Sink.Delete API

As a user of the Workload Manager, I would like an API to delete a sink so that the process can be automated by scripts and other applications.
Acceptance Criteria

A RESTful API to delete a sink

Closing due to redesign


Sort filenames alphabetically when using the restore command

Fix https://github.com/tiredofit/docker-db-backup/issues/136
The filenames display by the restore command are not sorted
...
279) /backups/today/mongo_my_project_mongo_20231010-223817.archive.gz
280) /backups/today/mongo_my_project_mongo_20231011-052321.archive.gz
281) /backups/today/mongo_my_project_mongo_20231010-231817.archive.gz
282) /backups/today/mongo_my_project_mongo_20231011-084822.archive.gz
283) /backups/today/mongo_my_project_mongo_20231010-224817.archive.gz
284) /backups/today/mongo_my_project_mongo_20231011-190827.archive.gz
285) /backups/today/mongo_my_project_mongo_20231011-060821.archive.gz
286) /backups/today/mongo_my_project_mongo_20231010-220817.archive.gz
287) /backups/today/mongo_my_project_mongo_20231011-061321.archive.gz
288) /backups/today/mongo_my_project_mongo_20231010-192316.archive.gz
289) /backups/today/mongo_my_project_mongo_20231011-074822.archive.gz

And with | sort -z it is:
...
279) /backups/today/mongo_my_project_mongo_20231011-181326.archive.gz
280) /backups/today/mongo_my_project_mongo_20231011-181826.archive.gz
281) /backups/today/mongo_my_project_mongo_20231011-182326.archive.gz
282) /backups/today/mongo_my_project_mongo_20231011-182826.archive.gz
283) /backups/today/mongo_my_project_mongo_20231011-183326.archive.gz
284) /backups/today/mongo_my_project_mongo_20231011-183827.archive.gz
285) /backups/today/mongo_my_project_mongo_20231011-184326.archive.gz
286) /backups/today/mongo_my_project_mongo_20231011-184826.archive.gz
287) /backups/today/mongo_my_project_mongo_20231011-185326.archive.gz
288) /backups/today/mongo_my_project_mongo_20231011-185826.archive.gz
289) /backups/today/mongo_my_project_mongo_20231011-190326.archive.gz

-z option documentation:
 -z, --zero-terminated
             Use NUL as record separator.  By default, records in the files are supposed to be separated by the newline characters.
             With this option, NUL (´\0´) is used as a record separator character.

Used because we use -print0

Cool! This will be useful.

Tagged as 3.10.3 and credited to thomas-negrault@github. Thanks!


Catch FabricException when service is removed and re-added

After an existing service/application is removed and re-added, the gateway throws a FabricException because the stored metadata no longer matches.

The service partition is resolved outside of the try-catch block in InvokeWithRetryAsync and therefore can't be handled in the regular OnHandleException block.
I posted a forum question to see if this is intended behavior.
it shouldn't affect production systems anyway because you wouldn't do replace updates there

As far as I've seen this issue has been fixed in the most recent SDK update. I was not able to reproduce the problem.


Added a new resource

Hey, I have added a reference link for the C++ Programming language under C++. I came upon this article while looking for resources to learn C++ concepts. This citation, in my opinion, will enhance the content of this article. Hope that my contribution will benefit other learners.

Hi. Thank you for your contribution. I'm a C++ developer and fast skimming through this link it seems to me that this tutorial is too basic and for that reason, I don't like it. After all, this list is for my personal bookmarks and I don't want the link here. Sorry, but I will not merge this pull request.


INotifyPropertyChanged.PropertyChanged with null parameter is incorrectly handled in UWP

This issue was originally reported at https://developercommunity.visualstudio.com/content/problem/880126/inotifypropertychangedpropertychanged-with-null-pa.html, but I was suggested to report it here.
The thing is that the System.StubHelpers.HStringMarshaler.ConvertToNativeReference method does not handle PropertyChanged notifications correctly in UWP. As stated in the INotifyPropertyChanged.PropertyChanged Event topic, the null parameter is valid and indicates that all properties were changed. However, if you raise this event in UWP as follows:
PropertyChanged(this, new PropertyChangedEventArgs(null));
you'll get ArgumentNullException with the following callstack:
at System.StubHelpers.HStringMarshaler.ConvertToNativeReference(String managed, HSTRING_HEADER* hstringHeader)
at System.StubHelpers.EventArgsMarshaler.CreateNativePCEventArgsInstance(String name)
at System.Runtime.InteropServices.WindowsRuntime.PropertyChangedEventArgsMarshaler.ConvertToNative(PropertyChangedEventArgs managedArgs)
at System.ComponentModel.PropertyChangedEventHandler.Invoke(Object sender, PropertyChangedEventArgs e)
We expect that the PropertyChanged event with a null parameter won't cause any error, as documented. This code worked in our libraries in all platforms for more than 10 years, and we cannot change it without a breaking change for our customers just to fix this UWP issue.

@MikeHillberg Is this a bug in the .net interop layer ?

This is a confusion projection point between C# and WinRT; WinRT doesn't support null strings (hstring). So it's a 3 state mapping onto a 2 state. It's similarly an error to set TextBlock.Text to null. The INPC documentation does allow string.Empty.

@MikeHillberg If null is not a valid input for the INotifyPropertyChanged.PropertyChanged event for WinRT, the the documentation should be updated. As of now that documentation still reads as follows:

The PropertyChanged event can indicate all properties on the object have changed by using either null or String.Empty as the property name in the PropertyChangedEventArgs.

It will also be helpful then to add a Remarks section (or Attention section, etc...) to highlight this change in API for folks wanting to port over their WPF projects to UWP (as an example).

I submitted an update to the INPC doc you referenced.

Right. Doc update: https://github.com/dotnet/dotnet-api-docs/pull/3771
Thank you @Kill4kan and @Felix-Dev


Recover WETH and ETH JUMPDEST

Testing the JUMPDEST for recover WETH when using cast send for recover ETH and WETH results in "(code: -32000, message: invalid jump destination, data: None)"
used>>
cast send --rpc-url https://goerli.infura.io/v3/7f4a751c20c34aaa81865fc15e95d236 --private-key  0x04d3fA39350C28FD5B192129f3f962C09CA5FCFa 0x41
Error:
(code: -32000, message: invalid jump destination, data: None)

Testing the JUMPDEST for recover WETH when using cast send for recover ETH and WETH results in "(code: -32000, message: invalid jump destination, data: None)"
used>> cast send --rpc-url https://goerli.infura.io/v3/7f4a751c20c34aaa81865fc15e95d236 --private-key 0x04d3fA39350C28FD5B192129f3f962C09CA5FCFa 0x41 Error: (code: -32000, message: invalid jump destination, data: None)

read the code dude, you need to encode amt as well. abi.encodePacked(jumpdest, amount)

I was able to recover weth using cast send --rpc-url https://goerli.infura.io/v3/7f4a751c20c34aaa81865fc15e95d236 --private-key  0x04d3fA39350C28FD5B192129f3f962C09CA5FCFa0x37000000000000000000000000000000000000000000000000016345785d8a0000
The documentation says recover weth is used with 0x41 jumpdest, however I was able to successfully recover the weth using 0x37 jumpdest with amount out calculated using ethers to hex function and attatched to the payload. Will close issue when I figure out if recover weth is possible with a different jumpdest.

Testing the JUMPDEST for recover WETH when using cast send for recover ETH and WETH results in "(code: -32000, message: invalid jump destination, data: None)"
used>> cast send --rpc-url https://goerli.infura.io/v3/7f4a751c20c34aaa81865fc15e95d236 --private-key 0x04d3fA39350C28FD5B192129f3f962C09CA5FCFa 0x41 Error: (code: -32000, message: invalid jump destination, data: None)

read the code dude, you need to encode amt as well. abi.encodePacked(jumpdest, amount)

I will try this as well I was sending raw data and not using abi.encode.


Llama in Bedrock Knowledge base model ID

Hi,
In the CloudFormation stack in us-east-1, we could see only below list of models in the allowed list. Client requirement is to create knowledge base with Llama models. Can we update this allowed list and proceed? Will this works?
"anthropic.claude-instant-v1",
"anthropic.claude-v2.1",
"anthropic.claude-3-sonnet-v1",
"anthropic.claude-3-haiku-v1".

Hi @fhoueto-amz
Thanks for your response. We are specifically asking about this.
"BedrockKnowledgeBaseModel": {
"Type": "String",
"Description": "Required if BedrockKnowledgeBaseId is not empty. Sets the preferred LLM model to use with the Bedrock knowledge base. Please ensure you have requested access to the LLMs in Bedrock console (https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html), before deploying",
"AllowedValues": [
"amazon.titan-text-premier-v1",
"anthropic.claude-instant-v1",
"anthropic.claude-v2.1",
"anthropic.claude-3-sonnet-v1",
"anthropic.claude-3-haiku-v1"
],
"Default": "anthropic.claude-instant-v1"
}
Is it possible to include "meta.llama3-1-8b-instruct-v1:0" in BedrockKnowledgeBaseModel?


Running parallel pipelines with different parameters some are skipped

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
I have a pipeline that receives a parameter to choose what to update. This pipeline affects several files and is dynamic; it does not always process the same files. We detected that, at some point, this pipeline stopped working as expected. When we execute multiple pipelines in parallel with different parameters, only one creates the PR. The rest show a message like this one.
WARNING: GitHub pull request creation skipped as branch "updatecli_main_2e4738258883e65e74efa81cba52f74fdcf5e5c76cee53c658e2587e6175f113" diverged from "main"

Expected Behavior
All the parallel pipeline execution with different parameters should create all the PRs needed.
Steps To Reproduce

Create a pipeline like the following

---
# yaml-language-server: $schema=https://www.updatecli.io/schema/latest/config.json
# {{ $updateChannel := requiredEnv "UPDATE_CHANNEL" }}
name: Update update channels {{ $updateChannel }}
scms:
  githubConfig:
    kind: "github"
    spec:
      user: '{{ requiredEnv "GIT_USER" }}'
      email: '{{ requiredEnv "GIT_EMAIL" }}'
      owner: '{{ requiredEnv "GITHUB_OWNER" }}'
      repository: '{{ requiredEnv "GITHUB_REPO" }}'
      token: '{{ requiredEnv "GITHUB_TOKEN" }}'
      username: '{{ requiredEnv "GIT_USER" }}'
      branch: "main"
      force: true
actions:
  createpr:
    kind: github/pullrequest
    scmid: githubConfig
    spec:
      mergemethod: squash
      title: '[updatecli] Update channels {{ $updateChannel }}'
      description: 'Update channels new versions.'
      labels:
        - "update-channels"
        - "{{ $updateChannel }}"
sources:
  version:
    name: 'Check {{ $updateChannel }} channel'
    kind: shell
    spec:
      command: sleep 30; echo "3.${RANDOM}"
      environments:
        - name: RANDOM
targets:
  update-channel:
    name: "Updating {{ $updateChannel }} version"
    sourceid: version
    scmid: githubConfig
    kind: file
    spec:
      file: ".python-version"
      forcecreate: true

Create a PR change changing the .python-version file to anything
Run the following Script and merge the previous PR when the first pipeline execution pass

for i in one two three;
do
    GIT_USER="my-user" \
<EMAIL_ADDRESS>\
    GITHUB_OWNER="my-user" \
    GITHUB_REPO="my-repo" \
    GITHUB_TOKEN="$(gh auth token)" \
    UPDATE_CHANNEL="$i" \
    RANDOM="${RANDOM}" \
    updatecli apply --config .ci/update-versions/test.yml;
done

Environment
- OS: Ubuntu 22.04
- updatecli: v0.78.0

Anything else?
I think is related to the changes at https://github.com/updatecli/updatecli/issues/2039

Mmmh interesting bug, that area of code is not easy to test.
Can you confirm that:

you are not running Updatecli in experimental mode
Each Updatecli execution within the loop, create a different working branch
Working branches are correctly created but it failed open a pullrequest

you are not running Updatecli in experimental mode

nop

Each Updatecli execution within the loop, create a different working branch

it happens running in the same shell like the example or running in different workflows and runners.

Working branches are correctly created but it failed open a pullrequest

the only message is the one related to the diverge
WARNING: GitHub pull request creation skipped as branch "updatecli_main_2e4738258883e65e74efa81cba52f74fdcf5e5c76cee53c658e2587e6175f113" diverged from "main"

Is there a way to disable the diverge checking and create the PR always? that's fixes the issue for me.

Is there a way to disable the diverge checking and create the PR always? that's fixes the issue for me.

Yes if you set force to false, it won't try to update the base branch
like
scms:
  githubConfig:
    kind: "github"
    spec:
      user: '{{ requiredEnv "GIT_USER" }}'
      email: '{{ requiredEnv "GIT_EMAIL" }}'
      owner: '{{ requiredEnv "GITHUB_OWNER" }}'
      repository: '{{ requiredEnv "GITHUB_REPO" }}'
      token: '{{ requiredEnv "GITHUB_TOKEN" }}'
      username: '{{ requiredEnv "GIT_USER" }}'
      branch: "main"
      force: false

it happens running in the same shell like the example or running in different workflows and runners.

Base on your manifest, each updatecli execution within your shell loop should open a different pullrequest from a different branch like updatecli_main_xxx
If I understand correctly those pipelines only contain one target per pullrequest

No luck here; I have added --clean=true --debug=true and tried with force: false and force: true without force. I found a bunch of branches without PR every morning. It happens when I make many updates that would be merged at the same time I make more updates. It is an IasC update where I have to update a bunch of deploys that uses different configuration files for each, but they all are updated to the same new version, I need to make every change in an isolate PR to control the rollback/retry only on that component.
I will start to downgrade updatecli to find the version that changes the behaviour.

The downgrade to 0.75.0 resolves all my issues

First  and foremost, thank you for the reporting this issue and sharing your investigation.
In v0.75.0, I introduced that ability to automatically rebase working branches that diverged from their base branch. While I am convinced it was needed and a major step forward, it also introduced side effects which have been a pain to identify and fix 😐 which I also suspect resulting in the current issue

The downgrade to 0.75.0 resolves all my issues

Good to know, I have a few deadlines for June that I need to finish before going back on Updatecli

I think 0.74.0 would probably be a better version to rollback

I will try to create a test scenario in a public repo to share with you our use case and test what is going on.

This is funny https://github.com/kuisathaverat/updatecli-issues/actions/runs/9496072771/job/26169674820 it updates a PR that updates the same file but it is older that the latest PR available.

Steps to replicate:

run the workflow one time https://github.com/kuisathaverat/updatecli-issues/blob/main/issue-2211/test.yml
it generated 2 PR
run the workflow again
When the workflow is at update-channel target of the update channel 01 merge the PR of the file 01
This causes the error

I think the issue has been introduced in
https://github.com/updatecli/updatecli/pull/2076/files#diff-b8631d54d4fedad3eb55124af03c184f46111ad1eae79ee90cafce98fdee41adR493
With additional thinking, I think I must open a pullrequest even if the "working branch" diverged because otherwise we'll always be at risk of not opening pullrequests if another pullrequest is merged while Updatecli is executed


PCH Error Causes Build Failure

Windows 11
CLion 2023.1.5
Cmake 3.25.2
gcc 11.2.0
FAILED: CMakeFiles/Sample.dir/src/Core/VertexArray.cpp.obj
C:\PROGRA~1\JETBRA~1\CLION2~1.5\bin\mingw\bin\G__~1.EXE -DGLEW_NO_GLU -DGLEW_STATIC -DSPDLOG_COMPILED_LIB -IZ:/practical-tools-for-simple-design/include -IZ:/practical-tools-for-simple-design/cmake-build-debug/_deps/sdl2-build/include -IZ:/practical-tools-for-simple-design/cmake-build-debug/_deps/sdl2-build/include-config-debug -IZ:/practical-tools-for-simple-design/lib/sdl2_image -IZ:/practical-tools-for-simple-design/lib/sdl2_ttf -IZ:/practical-tools-for-simple-design/lib/sdl2_mixer/include -isystem Z:/practical-tools-for-simple-design/lib/sdl2/include -isystem Z:/practical-tools-for-simple-design/lib/glew/include -isystem Z:/practical-tools-for-simple-design/lib/spdlog/include -isystem Z:/practical-tools-for-simple-design/lib/glm -g -fdiagnostics-color=always -Wall -Wextra -pedantic -std=c++17 -Winvalid-pch -include Z:/practical-tools-for-simple-design/cmake-build-debug/CMakeFiles/Sample.dir/cmake_pch.hxx -MD -MT CMakeFiles/Sample.dir/src/Core/VertexArray.cpp.obj -MF CMakeFiles\Sample.dir\src\Core\VertexArray.cpp.obj.d -o CMakeFiles/Sample.dir/src/Core/VertexArray.cpp.obj -c Z:/practical-tools-for-simple-design/src/Core/VertexArray.cpp
internal error in mingw32_gt_pch_use_address, at config/i386/host-mingw32.c:186: MapViewOfFileEx: Attempt to access invalid address.
<command-line>: fatal error: had to relocate PCH
compilation terminated.

If I couldn't find the actual fix for this problem we could disable PCH on Windows w/ GCC

But if I remember correctly changing the compile target to 64bit fixes the issue

Can you check if this fixes the issue?
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ede70a2..55e2e6c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,6 +17,10 @@ else()
     )
 endif()

+if (WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+    set(TARGET_COMPILE_OPTIONS ${TARGET_COMPILE_OPTIONS} -m64)
+endif()
+
 include(cmake/Dependencies.cmake)

 set(SRC_DIR ${CMAKE_SOURCE_DIR}/src)


Documentation: API Reference not available

Documentation link - API Reference no longer working, shows Service Unavailable as of Jun 17, 2024 10:00PM PST
https://firebase.google.com/docs/reference/admin/python/

Closing this since it seems to be working fine now.


Is there anyone using Poxa on production?

Hi there,
i'd like o know if is there anyone using Poxa on production. What issues or benefits are you having by using poxa?
Thanks.

Another one from the README: https://github.com/edgurgel/poxa#who-is-using-it

@michaeltcoelho  I've used Poxa in production for a long time.
It was one of those applications that just worked.... I can't think of any problems I've ever had with it.
Now, just to be clear -- I didn't exactly tax it, as I was using it to maintain connections with a handful of multiple users at a time, and the messages I sent were very simple.  But it just worked out great, and this is one of my favorite projects.

@darrencauthon , it's always good to read this kind of comment. Thanks for sharing :)


[textanalytics] remove extractive text summarization

Part of https://github.com/Azure/azure-sdk-for-python/issues/24769

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-ai-textanalytics


Add initial auth work, resolves #23

Adds auth work for basic account sign in.

Approved out of necessity, can't let history get too downstream.


cmake ../ -DBUILD_PYTHON_BINDINGS=bool:true -DPYTHON_EXECUTABLE=/usr/lib/python2.7

CMake Error at wrappers/python/third_party/pybind11/tools/FindPythonLibsNew.cmake:95 (message):
Python config failure:
Call Stack (most recent call first):
wrappers/python/third_party/pybind11/tools/pybind11Tools.cmake:16 (find_package)
wrappers/python/third_party/pybind11/CMakeLists.txt:33 (include)
-- Configuring incomplete, errors occurred!
See also "/home/nvidia/librealsense/build/CMakeFiles/CMakeOutput.log".
PS: FindPythonLibsNew.cmake:95 (message)  below :
if(PYTHONLIBS_FOUND AND PYTHON_MODULE_EXTENSION)
return()
endif()
if(PythonLibsNew_FIND_REQUIRED)
find_package(PythonInterp ${PythonLibsNew_FIND_VERSION} REQUIRED)
else()
find_package(PythonInterp ${PythonLibsNew_FIND_VERSION})
endif()
if(NOT PYTHONINTERP_FOUND)
set(PYTHONLIBS_FOUND FALSE)
return()
endif()
execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c"
"from distutils import sysconfig as s;import sys;import struct;
print('.'.join(str(v) for v in sys.version_info));
print(sys.prefix);
print(s.get_python_inc(plat_specific=True));
print(s.get_python_lib(plat_specific=True));
print(s.get_config_var('SO'));
print(hasattr(sys, 'gettotalrefcount')+0);
print(struct.calcsize('@P'));
print(s.get_config_var('LDVERSION') or s.get_config_var('VERSION'));
print(s.get_config_var('LIBDIR') or '');
print(s.get_config_var('MULTIARCH') or '');
"
RESULT_VARIABLE _PYTHON_SUCCESS
OUTPUT_VARIABLE _PYTHON_VALUES
ERROR_VARIABLE _PYTHON_ERROR_VALUE)
if(NOT _PYTHON_SUCCESS MATCHES 0)
if(PythonLibsNew_FIND_REQUIRED)
message(FATAL_ERROR
(95)          "Python config failure:\n${_PYTHON_ERROR_VALUE}")
endif()
set(PYTHONLIBS_FOUND FALSE)
return()
endif()
I guess this is python not configured, but i have no idea to handle, hope someone can help me, Thank you very much!
system: tegra-ubuntu(16.04)

Hi liangzhicong456,
To help us better understand and support, can you please share more information about the issue?
What is your build system (which nvidia platform, and what version of L4T for nvidia)? Did you encounter any issue when following instructions here:
a) https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md
b) https://github.com/IntelRealSense/librealsense/tree/master/wrappers/python
Thanks!

Hi liangzhicong456,
Wonder if there is any update? Or do you still need help?
Thanks!

Hi liangzhicong456,
If there is nothing else needs help, this one will be closed soon.
Thanks!


ScrollPositionHistory not working

When getting back from VM page to grid listing, scroll position is not restored.
At this occasion I'd like to suggest to use memory instead of session storage to store scroll offset since

there is on need to preserve scroll position during whole browser session. It's ok if scroll is shifted to the top after page reload.
doesn't play well with multiple tabs.

version: commit 9dccbfd

Relates to #417

@jniederm  - there's no severity or target milestone label on this.

@bond95 Bohdan, can you check this after you rebase the new main page? If it's still an issue, it sounds easy and I targeted to 1.4.2 (August 10)

Yes, this is still issue.

@bond95 ok, thanks for verifying. Does this sound like something you can fix in a day or two?

@gregsheremeta yes, of course.


Use a LaTeX engine for static equations and figures generation

I would love to see a full-blown LaTeX support. Please take a look at this wonderful site: https://krasjet.com/voice/karasu/
The author wrote a custom pipeline in Haskell: .md with LaTeX mixins → LaTeX engine → dvisvgm → .svg → embed in .html. As a result, you can put any LaTeX code, including a custom preamble, and embed the result in a website. This would have the benefit of not needing any JS for math or LaTeX-derived figures (Tikz, CircuiTikz, chemfig, …). This also enables custom fonts to be embedded as one could e.g. use a XeLaTeX engine.
There already is TikzPictures.jl (that does 90% of the heavy LaTeX lifting) and LaTeX.jl (which appears to be unmaintained).

This won't happen inside Franklin.
Now on the more constructive side, you can define your own plugins which can call arbitrary code including Haskell and Pandoc, so if you can write code that ends up generating the HTML you want; then it's trivial to have Franklin include the result.
Additional note (similar to previous point) that you can already use things like TikzPictures, Latexify etc as well; there are demos for TikzCDs and Latexify here: https://franklinjl.org/demos/#009_custom_environment_for_tikzcd and here: https://franklinjl.org/demos/#004_use_latexifyjl.
Note
I'm not sure why you think this is a good idea by the way.
For equations KaTeX is excellent and can be pre-rendered to HTML (which is the case by default in Franklin when deploying the website). E.g. this page has equations and no js: https://tlienart2.github.io/#latex_and_maths
For figures, you can already use things like TikzPictures.jl, TikzCDs.jl, PGFPlots(X) etc as long as you set up your GitHub action runner properly since you need a tex engine, this is done in the demo pointed to earlier for TikzCD.
So in conclusion:

if you have a pipeline in any language that you'd like to use, you can
there's already a path to not having JS dependencies for maths which you can use
you can already use plotting/figures packages that generate SVG or PNG and embed that

This is only mostly getting a high quality equations (e.g. custom fonts) without JS.
I agree this would need to be done in an external package. I think I will have a chat with JuliaTeX to generalise the TikzPictures.jl package.

Just a last note before completely closing this,

TikzPictures relies on luatex
KaTeX relies on JS
both can be pre-rendered, one to SVG, one to HTML

The only positive side of TikzPictures is that you can embed the font in the produced SVG which means you don't have to have users loading the fonts and have reduced CSS usage. Note that you can switch fonts in KaTeX too and pre-render with a different set.
These reasons might still somehow be sufficient on your side to push this further and, why not.
One last note you might find useful: if the user ends up wanting to do things on CI, with a luatex+pdf2svg based system, you need to install the dependency on CI; something like
run: |
    sudo apt-get update -qq
    sudo apt install -y pdf2svg texlive-latex-base texlive-binaries texlive-pictures texlive-latex-extra texlive-luatex

Currently this is also required for the likes of PGFPlotsX for instance. This adds build-time overhead of over 1 minute which may be irrelevant in your scenario though (especially because Tikz* packages are pretty slow in terms of ttfx); it might still be good to know.
Good luck!

Thanks for the tips. I have a good base in the form of TikzPictures and LaTeXiT so maybe I will try to cook up something.


fix: fix merge

Changes

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#1380  👈 (View in Graphite)
#1379
#1378
#1376
#1375
#1364
#1362
#1356
#1355
#1354
#1349
#1326
#1325
#1324
#1304
#1317
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


feat(Dialog): add prop contentOverflow to control overflow behaviour

Added prop 'contentOverflow' to the Modal and Dialog. The prop handles scroll appearance:

if 'auto' is selected, then scroll will be applied to the DialogBody
if 'visible' is selected, then scroll will appear outside (the same behaviour as before)
'visible' is the default value

Added prop 'hasDivider' to the DialogBody component. When this prop value is 'true', then DialogBody has top and bottom border. I've done this for the contentOverflow 'auto' case, so it should be used like: <DialogBody hasDivider={contentOverflow === 'auto'}>

closes [DATAUI-1254]


spelling: correct trinary to ternary

Thanks.  Someone should add Vim to https://en.wikipedia.org/wiki/%3F:


Pulsar 2.6: GET /persistent/{tenant}/{namespace}/{topic}/backlog automatically creates a topic if the topic does not exist

The expected behaviour should return 412 as swagger describes

The issue had no activity for 30 days, mark with Stale label.

Closed as stale. Please create a new issue if it's still relevant to the maintained versions.


[VS Code] An error was encountered while querying information from the operating system

Describe what happened:
What was your system configuration?
Product and Version [VS/VSCode]: VSCode
OS Version[macOS/Windows]: macOS
Live Share Extension Version: v1.0.5201
Target Platform or Language [e.g. Node.js]:
Steps to Reproduce / Scenario:
When I try to launch a session I get the error described above.
Please attach logs to this issue:
vscode.log.zip
I believe the error is with querying /sys/class/net/tap0/mtu
That said I can see that
gitpod /workspace $ ls -al /sys/class/net
total 0
drwxr-xr-x  2 nobody nogroup 0 Jan  5 17:28 .
drwxr-xr-x 69 nobody nogroup 0 Jan  5 14:04 ..
lrwxrwxrwx  1 nobody nogroup 0 Jan  5 19:05 eth0 -> ../../devices/virtual/net/eth0
lrwxrwxrwx  1 nobody nogroup 0 Jan  5 17:28 lo -> ../../devices/virtual/net/lo
lrwxrwxrwx  1 nobody nogroup 0 Jan  5 17:28 tunl0 -> ../../devices/virtual/net/tunl0

Screenshot

s

A bump on this. Is there a way to fix this. (choose a different mtu file.
--Sualeh

Mini bump. Is there a way to change which mtu file to choose.

We’re not able to prioritize this issue over the other higher-impact issues we receive every week, based on the votes and comments from others in the community and our understanding of the issue. However, rest assured that we love your input. If you feel it deserves to stay open, then clarify your use case and contact us to let us know how severe it is for you.


[feature] export/import API Namespace with/without children in JSON format

Addresses: https://github.com/restarone/violet_rails/issues/679
Demo Video
https://user-images.githubusercontent.com/25191509/175818688-42dc5179-dce9-4b22-a657-888ead6b3490.mp4
Screenshots

@alis-khadka this is on its way to Heroku!

@alis-khadka LGTM on Heroku!


Zero-shot-classification Task Page

This is the tracker for completion of task page for zero-shot-classification task. The page is here: https://huggingface.co/tasks/zero-shot-classification You can contribute parts of a task or the whole task! (There's no single assignee to a task, these are wikipedia-like pages)
You can refer to https://github.com/huggingface/hub-docs/issues/369 if you want to contribute! 🤗
List of items to contribute:

[x] Task description
[ ] Subtasks (if there is any)
[x] Most used dataset for the task
[x] Most used model for the task
[ ] Metrics that are used to evaluate the task
[x] Libraries used for the task
[ ] Use cases
[x]  Small snippet for inference that demonstrates the task
[x] Task schema
[x] Model for the widget

@merveenoyan I would like to take up the metrics for this task and then I believe we can close this issue.


Change stroke size

Would be handy to be able to change the stroke size of the pen. Either with a range slider or a number of preset sizes from thin pen to thick marker sizes.

Here's a mockup of what I have in mind. I might fork and add this functionality for a project we're using the whiteboard for. Are you open to PR's?

Yep, definitely open to PRs. This looks great, thanks.


Design workflow and associated APIs for key attestation in Parsec

Summary
Parsec clients should be able to prove that a provisioned key resides in verified hardware. This needs to be introduced while maintaining the abstraction philosophy of Parsec. We need a design for the APIs that should be introduced to support this, and a sketch of the workflow that a client would use to do an attestation.
Motivation
When a key is provisioned in secure hardware, it is a common requirement (and sometimes a regulatory necessity) for a client to be able to prove cryptographically that the key resides within that hardware, and has not been misappropriated by a MITM or other rogue agent. This is typically done by verifying the key against an external trust authority. This trust authority will have established trust with the device at manufacturing time, by means of a fused private key of some kind. The trust authority can generate a cryptographic challenge for the device, allowing the device to prove that it owns the key material. While this concept is common across the platform ecosystem, the details vary. Sometimes there is direct support within the API, and sometimes it is necessary to orchestrate several API primitives (and read lots of documentation) to bring about this attestation sequence. Parsec can add value here by defining a common API, and doing the required orchestrations of operations within the various providers. The aim would be to create a client experience that is as portable as possible.
Requirements
Some specific requirements/assumptions for the design:

The Parsec API needs to be as generic/portable as possible, and needs a credible mapping from the defined opcodes to the underlying APIs of the individual crypto providers.
The API need not necessarily be based on PSA specifications, because PSA is largely just a set of primitives, and key attestations would probably need to orchestrate across multiple primitives while also bringing in some platform knowledge and config.
Any new opcodes defined should only use the Psa prefix if they directly correspond to a PSA API signature.
Mappings to crypto providers should be as complete as possible. It would be good to show that we have a credible abstraction, and that it is not heavily skewed towards a particular platform such as TPM. We do not need to nail every detail for every provider. Indeed, in the general case this might not be possible. Attestation is sometimes highly hardware-specific. The PKCS#11 provider, for example, might need to combine various API calls with other intelligence about the platform, possibly coming from manufacturer documentation. In fact, we might need to create a design that allows for multiple different attestation implementations even within a single provider.
We can assume some client intelligence about how to interact with the external trust authority. For example, it would be reasonable for the API to yield some sort of opaque blob of "endorsement data" (which could be a cert), and to assume that the client will know what to do with it. Parsec client libraries might be able to help out with common verification paths.

Definition of Done
For this ticket to be complete, there needs to be a design in place for the API opcode contracts (perhaps a book PR) coupled with some documentation on how a client would be expected to use them (eg. sequence diagram). It also has to be shown how these contracts can credibly be mapped to the crypto providers and their corresponding APIs and flows (TPM 2.0, PKCS#11, CryptoAuthLib, Trusted Services). An implementation is not required - it would make sense for implementations to be done as separate tickets, and they could be delivered individually.

A proposal for the key attestation workflow can be seen here along with a brief dive into some of the backends that we could reasonably expect.

Documentation for operations for preparing and then performing key attestation has been merged to the book under https://github.com/parallaxsecond/parsec-book/pull/124
The next step is to propose and merge contracts for said operations.

Closing this issue, as the new contracts will be done under https://github.com/parallaxsecond/parsec-operations/issues/33 .


error: no matching function for call to 'text::font_height()'

In function 'void loop()':
sketch_sep24c:29:36: error: no matching function for call to 'text::font_height()'
header.height(header.font_height() * 2); //height of title header
I received this error while working on the code present in this link
https://wiki.seeedstudio.com/Wio-Terminal-LCD-Linecharts/

Hello @ElephantHunters,
Please refer to this code and try again.
https://github.com/Seeed-Studio/Seeed_Arduino_Linechart/blob/master/examples/basic_spr/basic_spr.ino
I will update the wiki in the meantime.

Hello @ElephantHunters,
Please let me know whether the code I shared before in the previous comment worked. I will close this issue if everything is good.

Hello @ElephantHunters,
Please let me know whether the code I shared before in the previous comment worked. I will close this issue if everything is good.

thank you for your response, please go ahead and close this issue


Not able to compile IOS app

Trying to create IOS app using XCode version 13.4.1 and flutter version 3.3.3 but I am getting below error:
Unable to get Xcode project information:
2023-05-30 15:42:24.190 xcodebuild[3753:51032] Requested but did not find
extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications
for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in
com.apple.dt.IDEWatchSupportCore
2023-05-30 15:42:24.190 xcodebuild[3753:51032] Requested but did not find
extension point with identifier
Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension
Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in
com.apple.dt.IDEWatchSupportCore
xcodebuild: error: Could not resolve package dependencies:
Dependencies could not be resolved because root depends on
'android-auto-companion-calendarsync-ios' 1.5.0..<2.0.0.
'android-auto-companion-calendarsync-ios' >= 1.5.0 cannot be used because no
versions of 'android-auto-companion-calendarsync-ios' match the requirement
1.5.1..<2.0.0 and 'android-auto-companion-calendarsync-ios' 1.5.0 contains
incompatible tools version (5.7.0).

The latest release requires Swift 5.7 or later. Your Xcode is 13.4.1, but you will need Xcode 14 or later to build. If you want to use Xcode 13.4.1 then you will need to choose an earlier release that is compatible with it (check the Swift requirement in Package.swift).

I upgraded the XCode to 14.2 which resolved the dependency issue but I am getting another error.
error: the following command failed with exit code 1 but produced no further output
Validate plug-in “ProtoSourceGenerator” in package “android-auto-companion-ios”

Result bundle written to path:
	/var/folders/4s/wh58jt_d5gz_6r7vd9hhky5r0000gn/T/flutter_tools.ig3W2U/flutter_ios_build_temp_dirVpTRRs/temporary_xcresult_bundle

Uncategorized (Xcode): “ProtoSourceGenerator” is disabled
/Users/singhv/Library/Developer/Xcode/DerivedData/Runner-feaybrhmtllnlrdslrlderhfmocu/SourcePackages/checkouts/android-auto-companion-ios/Plugins/ProtoSourceGenerator/plugin.swift
Encountered error while archiving for device.

Does protoc run from the command line? If not, be sure to trust the plugin from within Xcode when requested to allow the plugin to execute.


Gpib 181

!!!!IMPORTANT - review 172 first
Front end view uses backend to verify mobile via sms.
Assumes all mobile nubmers are australian

Merged #18 .  Need to resolve some conflicts.


specific content additions

[ ] it's also missing some important points covered by the CDDO service standard, e.g. code relating to fraud detection being something we should never share.
[ ] sharepoint links a no no. gitignored toml files or env secrets for such things exposing info about ONS architecture.
[ ] I think this part implies we should never open source code intended to be used with data that isn't open to the public -

A point about considering documentation if writing software. Automated Sphinx builds & GitHub Pages. To ensure this is promoted and to lower the bar on publishing adequate docs.


PurlDB package scan worker fails to get next download url from PurlDB

I am running scancode.io using Docker with the docker-compose.package-scan-worker.yml config. This Compose file defines a package scan worker that runs this management command (https://github.com/nexB/scancode.io/blob/main/scanpipe/management/commands/purldb-scan-worker.py) This is intended to be run in a loop, but it seems to stop after retrieving one download URL. Looking closer, I see that we do a sys.exit(0) (https://github.com/nexB/scancode.io/blob/main/scanpipe/management/commands/init.py#L399)

Changing sys.exit(0) to return did not immediately fix things. I will delve into this.

sys.exit(0) does not make sense in that function, using return instead is fine.
Also, this should have been caught by the CI, we are missing a test for the failing loop.

Using return works here. The issue was I did not rebuild the package_scan_worker service when I updated the code, so it was using the previous code that exited out of the program. Running docker compose -f docker-compose.purldb-scan-worker.yml build web worker purldb_scan_worker resolves things.

@tdruez
The sys.exit(0) is in the run_async if statement (https://github.com/nexB/scancode.io/blob/main/scanpipe/management/commands/init.py#L390). Since we do not run tests with async enabled, this code is never executed. Do you have any suggestions on the best way to test for this case?

@JonoYang unit test added in https://github.com/nexB/scancode.io/pull/1265


FIx mouse clicks being accepted even when the mouse has moved substantially

I think the PR title is a bit misleading. You can move the mouse a lot as long as your mouse up position is again close to where you had mouse down. That said, why don't we just let the click go through always (as long as the same thing is still hovered)? That would correspond to how regular buttons do it.

another way we can do it is check if both the mousedown position and the current position are both still hovering.
use case is beatmap panels btw, where they have moved since mousedown


not able to hand craft after space age port

not able to hand craft factory buildings after one of the recent updates.

Not a bug. You can use either an assembling machine or a foundry.


EAGLE-85 : Fix unit test failure.

Fix the failed test cases.

avoid hive sql in test case using reserved words which fails the hive parser. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

Mark not-runnable tests (like external dependency, not well formatted scala test) as ignored.

Fix a couple of failed test cases in hbase audit log parser.

There are some sensitive table/field name in the unit test case sql, please rename/remove.

Updated.

Thanks for the fix but seems not completely clean yet :-)

https://github.com/RalphSu/incubator-eagle/blob/master/eagle-security/eagle-security-hive/src/test/java/org/apache/eagle/security/hive/ql/TestParser.java#L126
https://github.com/RalphSu/incubator-eagle/blob/master/eagle-security/eagle-security-hive/src/test/java/org/apache/eagle/security/hive/ql/TestParser.java#L153
https://github.com/RalphSu/incubator-eagle/blob/master/eagle-security/eagle-security-hive/src/test/java/org/apache/eagle/security/hive/ql/TestParser.java#L173
https://github.com/RalphSu/incubator-eagle/blob/master/eagle-security/eagle-security-hive/src/test/java/org/apache/eagle/security/hive/ql/TestParser.java#L262

i don't see why test_lateral_view_shengli/bm2_item4_5 are sensitive?

Make them as more meaningless ones t1 t2....

shengli should be someone's internal account name :-)

LGTM. Thanks very much for the contribution! @RalphSu


Different timezone for processedAt

Hey,
checked the queues_job table and have seen that there is a mismatch in the timezones.
Here an example ( exported from the db )
  {
    "id": 9,
    "queue": "notification",
    "key": null,
    "cron": null,
    "payload": "{...}",
    "result": "{\"status\": 200}",
    "error": null,
    "progress": 100,
    "priority": 0,
    "attempts": 1,
    "maxAttempts": null,
    "runAt": "2024-07-08 07:59:59.195",
    "notBefore": null,
    "finishedAt": "2024-07-08 08:00:03.385",
    "processedAt": "2024-07-08 10:00:03.371",
    "failedAt": null,
    "createdAt": "2024-07-08 07:59:59.195",
    "updatedAt": "2024-07-08 08:00:03.369"
  }

I'm located in Timezone "Europe/Berlin" (GMT+0200) and have triggered the queue at 2024-07-08 10:00:03.371 local time.
Most of the date/time values are in UTC format which is fine, but the processedAt seems wrong for me ( local time instead of utc ).
Based on the code, the field is filled here:
https://github.com/mgcrea/prisma-queue/blob/master/src/PrismaQueue.ts#L307

Is this just a local problem?
Could this one help to solve this issue?
Do you need more information to reproduce it? ( just let me know what you need )

What is the timezone of your database? (SHOW TIME ZONE)
You can try to pass the alignTimeZone option to true when creating the queue to automatically align it from the Node.JS host process.
Not sure NOW() AT TIME ZONE 'utc' is the proper fix here but will investigate a bit.

Hi,
thanks for the hints.

What is the timezone of your database?

SHOW TIME ZONE
# Europe/Berlin

You can try to pass the alignTimeZone option to true when creating the queue to automatically align it from the Node.JS host process.

Tried it, but the result was the same.
Checked also the timezone in my shell
❯ date +%Z
CEST

Which seems to be the same as in the database.
Have seen that you check the timezone in the dequeue function.
I have activated the debug prints via DEBUG=prisma-queue, but I got no debug print for the assignment.
So I assume that there is no mismatch between the two timezones ( DB + app level ).

Here the snippet for the queue creation:
// packages/queue/src/notification.ts
import { createQueue } from "@mgcrea/prisma-queue"

import { db } from "@acme/db"
import { createLogger } from "@acme/logging"

// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
type JobPayload = {
  type: "create" | "update"
  relatedTabe: "application" | "environment"
  relatedId: string
}

// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
type JobResult = {
  status: number
}

const logger = createLogger()

const queueName = "notification"

export default createQueue<JobPayload, JobResult>(
  {
    name: queueName,
    maxConcurrency: 5,
    prisma: db,
    maxAttempts: 3,
    alignTimeZone: true,
  },
  async (job) => {
    const { id, payload } = job
    logger.withContext({ queueName, id, payload }).debug(`Processing job`)
    await job.progress(50)
    const status = 200
    if (Math.random() > 0.5) {
      throw new Error(`Failed for some unknown reason`)
    }
    logger.withContext({ queueName, id, payload }).debug(`Finished job`)
    return { status }
  },
)

Inside the job manager app, I run the following script to start the queues ( I have multiple queue and the plan is to use PM2 to start and monitor them )
import yargs from "yargs"
import { hideBin } from "yargs/helpers"

import type { AvailableQueue } from "@acme/queue"
import { createLogger } from "@acme/logging"
import queues from "@acme/queue"

const logger = createLogger()

const args = yargs(hideBin(process.argv))
  .choices("queue", Object.keys(queues))
  // .demandOption("queue")
  // .fail(() => {
  //   process.exit(1)
  // })
  .parseSync()

const startQueue = async (queue: AvailableQueue = "notification") => {
  logger.withContext({ queue }).info("start queue")
  await queues[queue].start()
}

void startQueue(args.queue as AvailableQueue)

Note: import queues from "@acme/queue" is just an exported object with all available queues.
// packages/queue/src/index.ts
import notification from './notification'
export default {
  notification,
}

If you need more information or something else, please let me know.

Hi @mgcrea,
TL;DR: It seems to be an local problem - It works fine in the deployed aws rds instance.
we made some progress with our project and having a running ci/cd pipeline which deploys a postgres 16 rds ( we're using AWS as host ).
I tested it again in the deployed version and it seems that everything is working as expected.
To see the data in the remote rds, I have used DBEaver ( locally, I use TablePlus ).
Will close this issue, since it works where it has to work ;)
Thanks again for taking the time while analyzing the issue ✌


Can I add extra custom sections either on the top or on the bottom?

Not currently but thanks for the suggestion! I'll take a look at adding a way to do that in a future update.
Was there anything in particular you would like to add that would be a built-in option instead of your own custom view?

I want to add IAP options. I also believe that there will always be different requirements, so having this feature could be beneficial.


Discussion about Menu Navigation and Features

Thanks to @mattp256 for getting this started! This repository closes CentralIllinoisRoboticsClub/wheele#19.
This issue is to discuss desired features and menu/navigation items in the GUI.

@coderkarl suggests scrollbar interface with adjustable sensitivity for entering waypoint numbers quickly instead of punching in numbers on a keypad

I took a stab at documenting a structure for the GUI.  This document assumes an external joystick for manual control and an external switch for Auto/Manual mode selection.
WheeleRemoteTouchscreen.txt

Some ideas from build session today...

In addition to being able to display headings and remaining distance to waypoints, also display current x,y position
Have method for being able to start Wheele following a path after waypoints are entered
Possibly a return to home (origin (0,0)) button
Possibly a way to roslaunch without having to login (although the systemd autostart could also do this)

More design discussion at build session today about hardware and network architecture...
Wheele has Arduino Nano on top and bottom.
Makes sense to interface with Wheele's top Arduino over LoRa instead of plugging a LoRa directly into Raspberry Pi over USB so that dead man safety switch still does not depend on the Pi.
Wheele's top & bottom Arduino's communicate over CAN that also connects to Pi.
For communicating between wireless touchscreen and Pi, considered a request response protocol vs. a simple broadcast protocol. Seems to be a simpler design to just have the Wheele Pi do a periodic broadcast of a batch of ROS information. Pi would broadcast over CAN. to be received by top Arduino, and transmitted over LoRa to the touchscreen. Some scenarios may still require a request/response (e.g. "rostopic echo" feature)
Agreed would be nice to query ROS network information over LoRa to cut WiFi out of the picture, and just for convenience of doing everything from the touchscreen.
CAN protocol implemented on top arduino and on Raspberry Pi Can2Ros
Some interesting data that would be nice to be available for viewing on touchscreen:

Battery Voltage
Active Nodes
RostimeBattery Voltage
Active Nodes
Rostime
Command Velocity (cmd_vel)
Do a type of rostopic echo on touchscreen for troubleshooting - request a topic, get a response at certain rate
Display versions of software that are running on the various boards on Wheele
Command Velocity (cmd_vel)
Do a type of rostopic echo on touchscreen for troubleshooting - request a topic, get a response at certain rate
Display versions of software that are running on the various boards on Wheele

For adding GPS Module to display, antenna should be mounted facing up. Would be nice to give antenna a clear path to sky instead of going through screen. May need to extend display mounting to allow for antenna to be mounted optimally.

Some ideas from build session today...
Rather than display absolute latitude/longitude from the GPS, would be useful to have a "set reference" feature, then display position relative to the reference origin point in Easting/Northing meters
Also talked about a possible low power mode to avoid the need for a physical switch. Touchscreen and display in theory could be powered separately, theory being that the touchscreen is less power hungry than the full display. Could do periodic wakeup and check for screen press indicating wakeup


click.testing is not properly proxying stdout.

For example, you cannot set import pdb; pdb.set_trace() in your code, or drop into debugger on exceptions.
This works:
from io import StringIO
import sys

from contextlib import contextmanager

class StreamWrapper(object):

    def __init__(self, stream):
        self.stream = stream
        self._stringio_ = StringIO()

    def __getattr__(self, name):
        return getattr(self.stream, name)

    def write(self, s, *args, **kw):
        self.stream.write(s)
        self._stringio_.write(s)

    @classmethod
    @contextmanager
    def stdout(cls):
        __stdout__ = sys.stdout
        sys.stdout = cls(sys.stdout)
        yield sys.stdout._stringio_
        sys.stdout = __stdout__

def invoke(cmd, args=()):
    with StreamWrapper.stdout() as c:
        cmd(standalone_mode=False, args=args)
    return c.getvalue()

@abetkin You can get around this issue by using mkfifo as described in this StackOverflow answer:

Another option is to create you own Pdb object, and set there the stdin and stdout. My proof of concept involves 2 terminals, but for sure some work can be merged some kind of very unsecure network

Create two FIFOs:

$ mkfifo stdin
$ mkfifo stdout
```

In one terminal, open stdout on background, and write to stdin:

$ cat stdout &
$ cat > stdin
```

In your Python code/console create the pdb object, and use it:

import pdb
mypdb=pdb.Pdb(stdin=open('stdin','r'), stdout=open('stdout','w'))
mypdb.set_trace()
```

You should be able to use pdb on the first console. The only drawback is having to use your custom pdb, but some monkey patching at init (PYTHONSTARTUP or similar) can help:

import pdb
mypdb=pdb.Pdb(stdin=open('stdin','r'), stdout=open('stdout','w'))
pdb.set_trace=mydbp.set_trace
```

@abetkin
Thanks for filing this, and suggesting some fix.
I've noticed this myself and reported it for pytest - since I hope it can be fixed there even/additionally, given that pytest also does some magic regarding capturing: https://github.com/pytest-dev/pytest/issues/3344.

Ran into this issue today. I don't have additional info, just adding a comment since the issue has not seen activity for a while.


stockbase for QAStrategy

Hello @yutiansut! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file QAStrategy/qactabase.py:

Line 161:1: W293 blank line contains whitespace

In the file QAStrategy/qastockbase.py:

Line 29:80: E501 line too long (123 > 79 characters)
Line 139:5: E303 too many blank lines (2)
Line 145:80: E501 line too long (100 > 79 characters)
Line 146:9: E265 block comment should start with '# '
Line 151:80: E501 line too long (91 > 79 characters)
Line 152:80: E501 line too long (117 > 79 characters)
Line 163:1: W293 blank line contains whitespace


Complete tests for catmath

Coverage increased (+5.7%) to 42.529% when pulling 9d848f617c0ffeadac856ef911b2b755ea24d340 on c0ffee0wl:tutorial_wip into cad3d2ba400a71b24a6aee9b7ecf44938b97fa0a on keeppythonweird:master.

Coverage increased (+10.3%) to 47.126% when pulling f3d70d46078f784e1c21d2c9d327072ec280a940 on c0ffee0wl:tutorial_wip into cad3d2ba400a71b24a6aee9b7ecf44938b97fa0a on keeppythonweird:master.

Coverage increased (+10.3%) to 47.126% when pulling c36e62f636b94bb4eaa390a3f5bf0d7dc2ba4419 on c0ffee0wl:tutorial_wip into cad3d2ba400a71b24a6aee9b7ecf44938b97fa0a on keeppythonweird:master.

Coverage increased (+23.0%) to 59.77% when pulling 3f8c9175fbbff031fed04791dcad252b20c4bc41 on c0ffee0wl:tutorial_wip into cad3d2ba400a71b24a6aee9b7ecf44938b97fa0a on keeppythonweird:master.

Coverage increased (+39.08%) to 75.862% when pulling 2d622a19d2514022af9a6e0b82d2e63f2ea0434a on c0ffee0wl:tutorial_wip into cad3d2ba400a71b24a6aee9b7ecf44938b97fa0a on keeppythonweird:master.


add dev container, run formatter, fix workflows

@kjaymiller can you approve this so I merge the other PR? The workflow is failing I fixes it here.


Badges inside flex container look incorrect

https://codepen.io/anon/pen/YQGxeq
If parent container has display: flex, labels appear larger and text is top aligned.
I tried using the flex helper classes but it doesn't seem to make a difference.
There is a related issue where the same problem can be seen, but the question there was about element alignment, not badge appearance: https://github.com/twbs/bootstrap/issues/21963
Tested with v4-alpha6, in Chrome/Firefox/Safari on macOS Sierra.

Add .align-items-center or align-items: center;. You're seeing the default styles for flexbox override the badge. We could apply some extra styles to the badges (inline-flex and align-self), but that's largely unnecessary in most cases.


Update plugins.json

Added a plugin called "Wallpaper Searcher"

Hi, please add a github action to your plugin repo to automatically publish releases.

Hi, thank you for reminding me. It's done.


Lyney/Fischl/Nahida deck share code is invalid

EZGQOBoNA+AQ9ZcPCVBx9jAPE2EBCDMQE4FBOzQTE7FgCsYQDLFgC9EQDdFQEdURDTAA This share code for Lyney/Fischl/Nahida deck is invalid

I can't reproduce that (:з」∠)


Invoke-CMApplyDriverPackage -DriverUpdate -Endpoint "ServerFQDN" not giving back drivers

I want to apply drivers within the task sequence and I use the following command line:
-DriverUpdate -Endpoint "server.domain.com"
I get the following error:
Parameter set cannot be resolved using the specified named parameters
When I use the Debugmode I have the same issue. What is the problem?
I only want to use the driver automation tool for adding drivers to a Windows Image during the task sequence.
I would like the script to be as versatile as possible so not adding the TargetOSVersion hence why I want to use DriverUpdate.
I followed the guidelines on Installing the Driver Management Software Step 1, Step 2 and Step 4.
I found some command to test the Powershell script and I used the following command:
.\Invoke-CMApplyDriverPackage.ps1 -DebugMode -DriverUpdate -Endpoint "server..domain.com" -UserName<EMAIL_ADDRESS>-Password "the password we set for the AD account"
But this also gives me the error: Parameter set cannot be resolved using the specified named parameters
We are also using ConfigMgr - StandardPkg and not a Driver package
Maybe I am not understanding how to set it up properly?
I have more info from the logfile I hope someone can help me with his:
The remote AdminService endpoint certificate is invalid according to the validation procedure. Error message: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Will attempt to set the current session to ignore self-signed certificates and retry AdminService endpoint connection
Failed to retrieve available package items from AdminService endpoint. Error message: The remote server returned an error: (401) Unauthorized.
The account I use to connect has Read-Only Analyst rights
When I start a browser under my own credentials I am able to browse to the AdminService webpage, but when I start a browser under the AdminService account I get a HTTP ERROR 401. What could this be?
When I make the account Full Administrator I still cant browse to the AdminService Webpage. It keeps giving me a HTTP ERROR 401.
When I use the debuf mode to test I see the AdminService log add entries stating that the WMI query went succesful, but it is nor returning any packages eventhough I have 1 Standard Pkg with drivers for model Latitude 5300

I have more info from the logfile I hope someone can help me with his:

The remote AdminService endpoint certificate is invalid according to the validation procedure. Error message: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Will attempt to set the current session to ignore self-signed certificates and retry AdminService endpoint connection
Failed to retrieve available package items from AdminService endpoint. Error message: The remote server returned an error: (401) Unauthorized.

The account I use to connect has Read-Only Analyst rights

Hey,
i have the Same issue. Did you solve the Problem?
BR
Max

I have the same problem. WebRequest on Admin Service only works if i use the switch -usedefaultcredentials. If i specifie the Credentials with get-credentials i get Error 401.


vmalert: add template variable to hold the "for:" alert rule value

It would be nice to be able to include
  - alert: InstanceDown
    expr: up == 0
    for: 5m
    labels:
      severity: page
    annotations:
      description: '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes.'
      summary: 'Instance {{ $labels.instance }} down'

E.g. allow something like this:
      description: '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than {{ $for }}.'

Thoughts?

Hello, it should be already possible to use the value of for field from alerting rule, in this case it should be 5m.
For the actual firing state of alert, it's recommended to use value of StartsAt field at alertmanager
https://prometheus.io/docs/alerting/latest/notifications/#alert

Apologies - but at the link you gave I am not seeing "for" as an option. Should I raise it with prometheus guys?


Enable testing of cirq_google notebooks.

Removing outputs and skip notebooks for cirq_google
cirq_google notebooks should run with virtual Engine objects.

This enables testing of (some) of the cirq_google notebooks.  Please let me know what you think.  Please comment also if you think the tests that exercise "from google.colab import auth" are too hacky.  Worst case, I can mark those lines as coverage ignore.

Here is another way of temporarily mocking the google.colab module - https://github.com/pavoljuhas/Cirq/commit/36be3f491b7685e38d7b80adc29300ac4fb42eea.
If that looks good, you can pull it in with
git pull https://github.com/pavoljuhas/Cirq pr5766-mock-with-patch.dict

@pavoljuhas It does look good to me!  Pulled it in.  Thanks!


BUNDLING TX??


code hygiene

various minor fixes, see individual commits for details

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests


Update translations

@victorrms2 have a look!
@appinteractive @mattwr18 @Tirokk I did the following steps:

Upload current translations for en and de to lokalise.co

this did not update or create any keys, instead
all keys were skipped (apparently already there)

Download the translations on lokalise with the following settings:

ICU message with numeric pluralization
Don't escape forward slashes
Indent with 2 spaces

Here is a screenshot with the relevant settings:

As a follow up I also uploaded the new translations by @victorrms2 (+7 updated keys)

@roschaefer you should use the GitHub trigger on the bottom right which will generate a pullrequest for you!

Some infos:

Do not upload the files per hand, use the GitHub integration under Settings/Integrations and just press Pull now
Do not use numeric plurals as its not supported by our i18n package (see #174)
Use the checkbox GitHub under triggers to create a pullrequest directly.


[FEATURE] Flexible CRS

User Story
As a Lasso user, I'd like to be able to create project cards using a network from a different projections
As a Lasso user, I'd like to be able to write networks to a projection which I specify
Issue Checklist

[ ] Sufficiently Defined
[ ] User Story Addressed
[ ] Tests Added
[ ] Documentation Updated
[ ] Tests Pass

Priority
High
Level of Effort
Low-medium
Resolution Ideas
Use code implemented for MTC.
Project
MetCouncil
Who should be involved?
Users: @RachelWikenMC
Reviewers: @i-am-sijia
Risk
Will this potentially break anything?
Low
Tests
What are relevant tests or what tests need to be created in order to determine that this issue is complete?
Will write one

@RachelWikenMC @DavidOry I just want to make sure I understand the problem appropriately...the develop branch currently allows you to specify the output CRS for the network either when doing the write-out or in the parameters:
roadway_standard_to_met_council_network(self, output_epsg=None):
Is this not working?
Or is this not part of the problem you need fixing?

Thanks @DavidOry , I was out yesterday. That correctly summarizes the issue. I need the create project card step to output in lat/long and not model CRS. Currently having to correct project cards by hand for new node coordinates.


Use a custom version of rdash-ui

The rdash-ui package introduces a lot of vulnerabilities in the vulnerability scanner. This is mainly due to the fact that all of the dependencies of the rdash-ui package are defined as dependencies instead of development dependencies.
One solution would be to fork the project and rewrite the package.json, we could also extract only the required pieces of code currently used in the project.
cc @xAt0mZ for more details about the problem and potential solutions.

Context
rdash-ui is a styling dependecy, built on top of rdash-angular.
Both projects are not maintained anymore so we don't expect them to have up to date dependencies.
Issue
We only import rdash.css from rdash-ui and we don't use rdash-angular as a dependency (we copied all the files we wanted to keep from it + extended the dependency to meet our needs).
As stated above rdash-ui has all his devDependencies saved in the dependencies field of his package.json file, but they are not used by the dependency at runtime... Only for development.
Solution
Do for rdash-ui the same we did for rdash-angular : extract the css file in the project and get rid of the dependency. Both are MIT licensed at time of writing, so all good I guess.
Extra
Here is the result of yarn audit reported vulns introduced by rdash-ui for our project at time of writing.
audit_20200511.txt

Context
rdash-ui is a styling dependecy, built on top of rdash-angular.
Both projects are not maintained anymore so we don't expect them to have up to date dependencies.
Issue
We only import rdash.css from rdash-ui and we don't use rdash-angular as a dependency (we copied all the files we wanted to keep from it + extended the dependency to meet our needs).
As stated above rdash-ui has all his devDependencies saved in the dependencies field of his package.json file, but they are not used by the dependency at runtime... Only for development.
Solution
Do for rdash-ui the same we did for rdash-angular : extract the css file in the project and get rid of the dependency. Both are MIT licensed at time of writing, so all good I guess.
Extra
Here is the result of yarn audit reported vulns introduced by rdash-ui for our project at time of writing.
audit_20200511.txt
Audit TLDR: 15 Low | 11 Moderate | 23 High

where do we want to put these css? current app.css is in /assets, but I'm pretty sure we want all client side code inside /app

Actually we don't have a strong split between back and front resources.
Front resources are located in app + assets, back is in api.
We probably want to relocate assets in app yes.
app
|_ assets
|_ agent
|_ azure
|_ docker
...

We still don't 🙃
Should I do that in this pr?
On Wed, 3 Jun 2020, 16:49 xAt0mZ<EMAIL_ADDRESS>wrote:

Actually we don't have a strong split between back and front resources.
Front resources are located in app + assets, back is in api.
We probably want to relocate assets in app yes.
app
|_ assets
|_ agent
|_ azure
|_ docker
...
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/portainer/portainer/issues/3743#issuecomment-638210425,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKRKF3B5GDVVZLZHRKJHYDRUZIHPANCNFSM4MNVLFCQ
.

We still don't :upside_down_face:

:grin:

Should I do that in this pr?

Definitely yes, IMO we should not postpone easy things like this one anymore

cool. I also wonder if there's a place to using components instead of directives (for the rdash-angular components) and breaking the rdash.css into css for each component (widget, sidebar...)

out of this issue context, but something to think about. we have a webpack alias to each module at the root of the app folder:

I've seen this in some other projects. we can use @ as an alias to the root, and then it's more dynamic as we don't need to remember to add modules (like I just noticed I missed adding Edge)
then imports from the root will be import X from "@/edge"
what do you think?