Panic with 'No device name' on macOS when an external audio output is selected

Like the title says i get a panic when i select a secondary device on the audio menu on macOS.

Also when audio is playing if i change my output device it still plays on the previous device. I think it is an issue with the cpal library but i want to be sure. I will also try with the master branch.
macOS version: macOS Catalina 10.15.3
Rust version: v1.47.0-nightly

Full Backtrace
```rust
thread 'main' panicked at 'No device name: BackendSpecific { err: BackendSpecificError { description: "core foundation unexpectedly returned null string" } }', /Users/dvtkrlbs/.cargo/registry/src/github.com-1ecc6299db9ec823/rodio-0.11.0/src/engine.rs:113:46
stack backtrace:
   0:        0x10b1c0fd4 - std::backtrace_rs::backtrace::libunwind::trace::he9497f4525a08d2b
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:96
   1:        0x10b1c0fd4 - std::backtrace_rs::backtrace::trace_unsynchronized::h10a0a59d96f4a16b
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/../../backtrace/src/backtrace/mod.rs:66
   2:        0x10b1c0fd4 - std::sys_common::backtrace::_print_fmt::h6fd8fbf82b7783c5
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/sys_common/backtrace.rs:79
   3:        0x10b1c0fd4 - ::fmt::hfb2db7374ccd4d34
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/sys_common/backtrace.rs:58
   4:        0x10b1d815c - core::fmt::write::h7e381316a10f5e82
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/core/src/fmt/mod.rs:1117
   5:        0x10b1bf2ab - std::io::Write::write_fmt::h53862e22ed93af5e
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/io/mod.rs:1514
   6:        0x10b1c2b95 - std::sys_common::backtrace::_print::h5642011e0f38c919
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/sys_common/backtrace.rs:61
   7:        0x10b1c2b95 - std::sys_common::backtrace::print::hbcc5d5a374cdc250
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/sys_common/backtrace.rs:48
   8:        0x10b1c2b95 - std::panicking::default_hook::{{closure}}::h1a87f1c0565a051b
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/panicking.rs:200
   9:        0x10b1c28d2 - std::panicking::default_hook::he29ab2038604c86f
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/panicking.rs:219
  10:        0x10b1c3135 - std::panicking::rust_panic_with_hook::h9dab6d214201c5da
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/panicking.rs:569
  11:        0x10b1c2ccb - std::panicking::begin_panic_handler::{{closure}}::hf4bcec37fb7265f5
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/panicking.rs:476
  12:        0x10b1c1418 - std::sys_common::backtrace::__rust_end_short_backtrace::h8c49942bd9c628f8
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/sys_common/backtrace.rs:153
  13:        0x10b1c2c8a - rust_begin_unwind
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/panicking.rs:475
  14:        0x10b1ed92f - core::panicking::panic_fmt::hc5e2a0be1d842c94
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/core/src/panicking.rs:85
  15:        0x10b1ed835 - core::option::expect_none_failed::hc897e7630c12c4bc
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/core/src/option.rs:1221
  16:        0x10b0854cd - core::result::Result::expect::hdac8e024070ad1b4
                               at /Users/dvtkrlbs/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:933
  17:        0x10b0ac439 - rodio::engine::start::hd5a96c55e447d6f6
                               at /Users/dvtkrlbs/.cargo/registry/src/github.com-1ecc6299db9ec823/rodio-0.11.0/src/engine.rs:113
  18:        0x10b0acaef - rodio::engine::play_raw::he6d61b49fa680179
                               at /Users/dvtkrlbs/.cargo/registry/src/github.com-1ecc6299db9ec823/rodio-0.11.0/src/engine.rs:54
  19:        0x10b0c1067 - rodio_mac::main::hffeaa4e44607a427
                               at /Users/dvtkrlbs/Desktop/DEV/temp/rodio-mac/src/main.rs:10
  20:        0x10b0e740e - core::ops::function::FnOnce::call_once::h207d319bbec054d7
                               at /Users/dvtkrlbs/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:233
  21:        0x10b0bd8b1 - std::sys_common::backtrace::__rust_begin_short_backtrace::hb0df4cd60914d4fb
                               at /Users/dvtkrlbs/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:137
  22:        0x10b0c0f44 - std::rt::lang_start::{{closure}}::h83d0e06c6ea88c60
                               at /Users/dvtkrlbs/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs:66
  23:        0x10b1c3410 - core::ops::function::impls:: for &F>::call_once::hdadc43748186d6df
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/core/src/ops/function.rs:265
  24:        0x10b1c3410 - std::panicking::try::do_call::h406c54ffe57091dd
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/panicking.rs:373
  25:        0x10b1c3410 - std::panicking::try::hdba70b2e71b1fbd6
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/panicking.rs:337
  26:        0x10b1c3410 - std::panic::catch_unwind::h499f8b48272a4f5e
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/panic.rs:379
  27:        0x10b1c3410 - std::rt::lang_start_internal::h3a85459a31d0467d
                               at /rustc/de521cbb303c08febd9fa3755caccd4f3e491ea3/library/std/src/rt.rs:51
  28:        0x10b0c0f21 - std::rt::lang_start::h73e8f94be63c5e1b
                               at /Users/dvtkrlbs/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs:65
  29:        0x10b0c1092 - _main
```

Source code
```rust
use std::fs::File;
use std::io::BufReader;
use rodio::Source;
fn main() {
let device = rodio::default_output_device().unwrap();
let file = File::open("audio.mp3").unwrap();
let source = rodio::Decoder::new(BufReader::new(file)).unwrap();
rodio::play_raw(&device, source.convert_samples());

loop {}

}

</details>

Tried it with master branch and it works i will try the sink now since i got the actual crash on sink when i tried it on a library that used rodio

Ok it works without any panic. But still when i change the output device it continues to play on the previous device and i dont think it is the expected behaviour.

And since the latest crates.io release does not work when can i expect a new release happening ?

The issue seems to be coming from the old version of cpal while current master covers more corner cases when opening the output

@dvtkrlbs the reason why it works on master is due to a fix implemented in #280. the version published on crates.io does not include this fix yet.
As a workaround, you can use rodio = { git = "https://github.com/RustAudio/rodio" } in your Cargo.toml in the meanwhile.

I opened this issue for the rust game emgine bevy and using the git version is put of questions since the engine itself is published on crates.io. and they dont allow git dependencies

I see. I might be wrong about this, but I think it should be still possible for you to provide the git dependency using the [patch] section.

@dvtkrlbs fyi a new version has been published to crates.io

Hmm it does not panics anymore but it does not respect this audio device selection menu on macOS.
 everything else switches device but rodio still uses the old device.

What would you recommend for handling the OutputStream object? We are currently upgrading to the new version on bevy engine. And for a proof of concept i just mem::forget the OutputStream. How would you handle it?


Revostae bug reports

Making a new ticket to consolidate the most up-to-date info I have on the bugged melee stuff. Closed/deleted the old one because I lost some of the logs. I'll be sure to keep these this time. I also am going to include videos of the full battles where the logs are from. The descriptions have clickable links for time-stamps on the video where the "important" stuff happens as well as a brief description of what is going on at that time stamp for easier viewing. May also help navigate to the important parts in the log based on the order of events.
Battle #1 Logs: https://drive.google.com/file/d/1hZ4jJe0DAwYwSAgqxD1LUNogaopLm2Df
Battle #1 Video: https://www.youtube.com/watch?v=VTTE8XmDvgI

Battle #2 Logs: https://drive.google.com/file/d/1VTDM5_0IooSbyABGA6DO9o8w1fdqEC0X
Battle #2 Video: https://www.youtube.com/watch?v=_zGAOH7L6iY

Auto-Select Melee Bug:
I've been able to figure out more, mechanically (at least in game) how the auto-select melee thing seems to get broken and how it "fixes itself" as well as how to re-break it. It almost certainly allows clan mechs to ignore the clan negative melee quirk as I landed 16 melee attacks successfully in these two battles. This is in addition to at least another 15-20 clan mech melee attacks I have landed using this bug. It's unlikely I'm just lucky enough to land a 10% or so chance 30-40 times in a row.
Essentially it seems to be failing to properly auto-select a melee attack. If you manually select an attack it "fixes itself" even if you choose another target, change off Move to Sprint and back, or do other things. However, you can reliably break it again to not properly auto-selecting an attack if you activate any ability (even if you cancel it before using it). This includes Battlelord, Sensor Lock, Attack Ground, etc. Once you do that, it is "broken" again and you can use the auto-selected melee attack to ignore the clan negative quirk.
I could not accurately determine which melee attack it would select, it might be random if it's in range? If you're at max melee range it will always charge so it doesn't seem to completely ignore the melee rules.
.
Weapon Attacks After DFA Bug:
This one is a bit weird and I am having trouble reliably reproducing it, it seems random. I have seen it occur with flamers and with medium pulse lasers. So it has happened to me with both support and energy weapons. The location of the weapons doesn't seem to matter either.
 Nevermind, previously I have video of weapons firing after DFA where the enemy did not die to it. However, the DFA killing the enemy does not guarantee the weapons will fire.
Other DFA video and logs: https://www.youtube.com/watch?v=q5Qoe1UnJD4
https://drive.google.com/file/d/1nwjI8EupGklQ7f-lJGP2--upCimaMRlA/view?usp=sharing (Note this video and logs were using the old DLL as the first one t-bone sent in the zip was the old version by mistake)

Uploading MeleeDebuggingBTALogs-20210516_163052.zip…

2021-05-16T16:14:04 CombatLog.MechDFASequence [LOG] DFASequence ExecuteJump
2021-05-16T16:14:04 CombatLog.ActorActivation [LOG] Actor Stormcrow (b5a4f55e-c235-4ac0-a13c-e5f067910690.0) - Activated by Team Player 1
2021-05-16T16:14:04 CombatLog.ActorActivation [LOG] Actor Stormcrow jumping
2021-05-16T16:14:08 CombatLog.MechDFASequence [LOG] OnMoveComplete. msg id: b5a4f55e-c235-4ac0-a13c-e5f067910690.0
2021-05-16T16:14:08 CombatLog.MechDFASequence [LOG] DFASequence ExecuteMelee
2021-05-16T16:14:08 CombatLog.AttackDirector [DEBUG] [OnAttackSequenceBegin] needs to face target!
2021-05-16T16:14:08 CombatLog.AttackDirector [LOG] [AttackSequenceSetupCallback]
2021-05-16T16:14:08 CombatLog.Attacking [WARNING] OnAttackSequenceImpact is dealing <= 0 damage: base dmg: 25, total: 0
2021-05-16T16:14:08 CombatLog.Attacking [WARNING] OnAttackSequenceImpact is dealing <= 0 damage: base dmg: 25, total: 0
2021-05-16T16:14:09 CombatLog.MechImpacts [LOG] All messages completed as expected!
2021-05-16T16:14:09 CombatLog.MechImpacts [LOG] All messages completed as expected!
2021-05-16T16:14:16 CombatLog.MechDFASequence [LOG] OnMeleeComplete. msg id: 2030, our id: 2024, our rootid: 2024
2021-05-16T16:14:16 GameInfo [ERROR] Weapon Flamer has already pre fired! Has fired? False
2021-05-16T16:14:16 GameInfo [ERROR] Weapon Flamer has already pre fired! Has fired? False
2021-05-16T16:14:16 GameInfo [ERROR] Weapon Flamer has already pre fired! Has fired? False
2021-05-16T16:14:16 GameInfo [ERROR] Weapon Flamer has already pre fired! Has fired? False
2021-05-16T16:14:16 GameInfo [ERROR] Weapon Flamer has already pre fired! Has fired? False
2021-05-16T16:14:16 GameInfo [ERROR] Weapon Flamer has already pre fired! Has fired? False
2021-05-16T16:14:16 GameInfo [ERROR] Weapon Flamer has already pre fired! Has fired? False
2021-05-16T16:14:16 CombatLog.MechDFASequence [LOG] DFASequence FireWeapons
A similar section in the logs seems to occur whenever DFA + Weapons Fire occurs.

i dont see the error message i added, exactly... so if the try-catch is working, its not working the way i expected. @FrostRaptor i see this in the first set of logs:
2021-05-16T23:06:58 GameInfo [ERROR] Attempted to set a melee target that we could not path to!
2021-05-16T23:06:58 MessageCenter [ERROR] CRITICAL ERROR, PLEASE REPORT:
Delegate OnCombatantHovered - Standard for message type ActorHoveredMessage failed with exception
Object reference not set to an instance of an object
at (wrapper dynamic-method) BattleTech.Pathing.UpdateMeleePath_Patch2(object,bool)
at BattleTech.Pathing.Update (UnityEngine.Vector3 mousePos, System.Boolean calledFromUI) [0x00008] in <4184af8dbeb44635831353f4d349631c>:0
at BattleTech.UI.SelectionStateMove.SetPotentialTarget (BattleTech.ICombatant target) [0x00033] in <4184af8dbeb44635831353f4d349631c>:0
at BattleTech.UI.SelectionStateMoveBase.ProcessHoveredCombatant (BattleTech.ICombatant target) [0x00043] in <4184af8dbeb44635831353f4d349631c>:0
at BattleTech.UI.CombatSelectionHandler.OnCombatantHovered (MessageCenterMessage message) [0x0002b] in <4184af8dbeb44635831353f4d349631c>:0
at MessageCenter.SendMessagesForType (MessageCenterMessageType messageType, MessageCenterMessage message) [0x00037] in <4184af8dbeb44635831353f4d349631c>:0
so we're still getting an NRE in UpdateMeleePath, but it isn't with the try-catch message I added to CU. it isn't even registering as coming from either CBTBE or CU. are we just pushing the NRE further down the stack somehow, or is this a completely separate issue?

that seems a completely different one
2021-05-16T21:56:24 MessageCenter [ERROR] CRITICAL ERROR, PLEASE REPORT:
Delegate AddStackSequence - Standard for message type AddSequenceToStackMessage failed with exception
Object reference not set to an instance of an object
at (wrapper dynamic-method) BattleTech.Pathing.UpdateMeleePath_Patch2(object,bool)
at BattleTech.Pathing.Update (UnityEngine.Vector3 mousePos, System.Boolean calledFromUI) [0x00008] in <4184af8dbeb44635831353f4d349631c>:0
at BattleTech.MechMeleeSequence.GenerateMeleePath () [0x0005e] in <4184af8dbeb44635831353f4d349631c>:0
at (wrapper dynamic-method) BattleTech.MechMeleeSequence.OnAdded_Patch1(object)
or not completely
same method but different message
Ⓕ-bone — 05/17/2021
yeah same method...which didn't get caught by the CU try-catch either. so it could be NRE-ing in the vanilla method somehow. why i was wondering if its the same root issue, just relocated where the NRE crops up
Granner — 05/17/2021
This one doesn't cause lock up at least
FrostRaptor — 05/17/2021
The NRE in both cases in a patch
Patch2, second listed in the harmony_summary, which is probably CU?
Ⓕ-bone — 05/17/2021
BattleTech.Pathing.UpdateMeleePath:
Postfixes:
io.mission.customunits
us.frostraptor.CBTBehaviorsEnhanced
nope...CBTBE
wtf
oh... makes sense though. CBTBE dependsOn CU, and harmony is still shitting the bed wrt priority annotations
FrostRaptor — 05/17/2021
No
That's an older CBTBE version, 0.8.4 not 0.8.6
I'm checking to see if that matters.
No, 0.8.4 should be fine - I should be try/catching pretty much everything.
Ⓕ-bone — 05/17/2021
looks like you are at leaste for UpdateMeleePath
but the order is still CU -> CBTBE, so that NRE is CBTBE and the try-catch isn't...working?
FrostRaptor — 05/17/2021
Or that your premise was correct, and it's vanilla that's erroring
As I see this in the logs right before the end:
21:25:51.083 UpdateMeleePath diagnostics failed - CU patch may NRE shortly!
21:25:51.083   -- OwningActor != null? True  owningActor: Bushwacker_Slapdash_5E2A019C
21:25:51.083   -- CurrentGrid != null? True  ResultDestination != null? True
21:25:51.083   -- CurrentPath != null? False
Ⓕ-bone — 05/17/2021
yeah... is the Patch2 actually supposed to be the patch number in harmony? is that normally what those Patch# mean?
FrostRaptor — 05/17/2021
Yes
Ⓕ-bone — 05/17/2021
huh... TIL :smile:
FrostRaptor — 05/17/2021
Actually, I'm confused

so even when the actual dll isnt references in the error, you should be able to see where it came f rom by checking harmony
FrostRaptor — 05/17/2021
Which logs are you all looking at? the last ones?
Ⓕ-bone — 05/17/2021
the first set
FrostRaptor — 05/17/2021
MeleeDebuggingBTALogs-20210516_163052.zip ?
Oh
Granner — 05/17/2021
My snippet was from RT log
Ⓕ-bone — 05/17/2021
MeleeDebuggingMission2BTALogs-20210516_232552.zip
FrostRaptor — 05/17/2021
MeleeDebuggingMission1BTALogs-20210516_232552.zip then?
Granner — 05/17/2021
just to get the old error to compare
FrostRaptor — 05/17/2021
No wonder timestamps didn't line up
Granner — 05/17/2021
sorry for the confusion
I just wanted to see if there's anything different
Ⓕ-bone — 05/17/2021
fuck. yes. that one :smile: MeleeDebuggingMission1BTALogs-20210516_232552.zip
FrostRaptor — 05/17/2021
No worries, just couldn't understand why things weren't matching

So best I can tell
During that time frame a second AI controlled Raptor activated
2021-05-16T23:06:32 CombatLog.ActorActivation [LOG] Actor Raptor (d6da469a-a846-4c67-b83b-898a80dea61b.0) - ends activation
2021-05-16T23:06:32 CombatLog.RoundSequence [DEBUG] [ShouldCompleteActivationSequence] 'this is AITeam' true
2021-05-16T23:06:32 CombatLog.RoundSequence [DEBUG] [CompleteActivation] ActivationSequence.ForceComplete = true
2021-05-16T23:06:32 CombatLog.ActorActivation [DEBUG] [think] AI Team isComplete (HasActivatedThisRound)
2021-05-16T23:06:33 CombatLog.RoundSequence [LOG] [SendTurnActorActivateMessage] turnActorIndex 8
2021-05-16T23:06:33 CombatLog.RoundSequence [LOG] [_SendTurnActorActivateMessage]
2021-05-16T23:06:33 CombatLog.RoundSequence [LOG] Team TargetTeam becoming active
2021-05-16T23:06:39 CombatLog.InvocationHandler [DEBUG] [GenericInvoke]
2021-05-16T23:06:39 CombatLog.Invocations [LOG] Invoking a MOVE!
So AI turn goes and completes, then Revostate activates at 06:46, then the escape key
2021-05-16T23:06:58 GameInfo [ERROR] Attempted to set a melee target that we could not path to! comes from Pathing.SetMeleeTarget, which is invoked by SelectionStateMove.SetPotentialTarget
Along with MechMeleeSequence.GenerateMeleePath
Only thing in the melee logs between then is:
04:06:45.627 Invalidated meleeStates for actor: Hunchback_Sentinel_548A795B
04:06:46.726 Invalidated meleeStates for actor: Raptor_Defender_D4C67737
04:07:04.516 Checking available animations for attacker: Valkyrie II_Exodus_68BECF7F from position: (-204.0, 408.1, 478.0) versus target: Wasp LAM_Gunner_9620933A at position: (-180.0, 410.8, 478.0) with distance: 24.14352
04:07:04.516 Evaluating melee attack height for Valkyrie II_Exodus_68BECF7F at position: (-204.0, 408.1, 478.0) vs. target: Wasp LAM_Gunner_9620933A
The errors are all from 'OnCombatantHovered'
So definitely the SelectionStateMoveBase.ProcessHOveredCombatant -> SelectionStateMove.SetPotentialTarget -> Pathing.SetMeleeTarget flow
Revostae — 05/17/2021
To clarify: This particular set has the old non-try/catch CustomUnits.dll.  The other sets have the try/catch updated CustomUnits.dll. Hope that isn't too confusing!
FrostRaptor — 05/17/2021
Thanks for the clarification, and especially for the video with timestamps
That's really helpful and was a bit of work, I would think
Always have to appreciate such thorough reports
Revostae — 05/17/2021
Yay! I was hoping it would be helpful haha. I was trying to think of what I would find useful (although this is of course way beyond my understanding of the inner workings of the game and mods). I was trying to come up with a way to direct link the logs to the video but my brain started to melt at that point lol
I plan to do a few more test runs with the new DLL. I haven't managed to soft lock with it yet but weirdly enough I wasn't soft-locking with the old one either. I'm not sure if I'm doing something that is letting me "get away" with charging/meleeing like crazy that most players aren't doing?
I'll try doing a few melee-only missions with none of the special actuators and TSMs and stuff that I put on to make it easier heh

MeleeDebuggingMission2BTALogs-20210516_232552.zip

Uploading MeleeDebuggingMission1BTALogs-20210516_232552.zip…


Fix/unit options not displaying

Description
Music year: 2005

Removed references to duplicated data in tab and curric visualiser
Updated tests
Sorted data by exam board

Issue(s)
The unit options were not displaying correctly after filtering for duplicate units
Fixes #
Sorted data by exam board so that the first option being filtered is the correct one for secondary units
How to test

Go to https://deploy-preview-2439--oak-web-application.netlify.thenational.academy
Click on ______
You should see ______

Screenshots
How it used to look (delete if n/a):
{screenshots}

How it should now look:
{screenshots}

Checklist

[ ] Added or updated tests where appropriate
[ ] Manually tested across browsers / devices
[ ] Considered impact on accessibility
[ ] Design sign-off
[ ] Approved by product owner
[ ] Does this PR update a package with a breaking change

:tada: This PR is included in version 1.439.6 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


In Angular version 16 not working

I have updated my project angular version 16 after update agmCodeModule not gives errors, so plz can you update this package

I do have problems using angular 16.1.0 too.
When try to use the lib as described in the getting started
AgmCoreModule does not appear to be an NgModuleClass (-996002)

Same issue

Actually this is nothing new, you might want to check #2032 #2018 #2000 #1999 #1987 #1956 #1938 #1932

Actually this is nothing new, you might want to check #2032 #2018 #2000 #1999 #1987 #1956 #1938 #1932

In the end I do use their WebsSrvices approach:  https://developers.google.com/maps/documentation/places/web-service/autocomplete and dropped all client side libraries.


Log a selected range of data

Currently, the log will log all of the column/s
Maybe have a way to log only the first 10 or give a range 10 to 20 rows
- log:
    row: 13   # or 13:26 similar to python slicing
    columns:
      - muCol

Closing this. Due to add where option that should work for this purpose.


Is your feature request related to a problem? Please describe.
可以缓存embeding吗
Describe the solution you'd like.
可以缓存embeding吗
Describe an alternate solution.
可以缓存embeding吗
Anything else? (Additional Context)
可以缓存embeding吗

No, it is not practical to cache embeddings in a similar way as complete matching caching is required. Instead, you can convert the embeddings into bytes and store them in traditional databases such as SQLite, MySQL, and others.


JOINDIN-600 Dont email author their own comments

This ensures that speakers do not get an email telling them they have
just replied.
The method is currently un tested, happy to add some but the function is
a mess too so would probably need refactoring. Another ticket ?

Can one of the admins verify this patch?

Closed as duplicate.


Phase out passwords in favor of google SSO

I'd like to move us entirely toward single sign on, so we can hop on google's security entirely and reduce the terror factor. Here are the hurdles we need to overcome to get to SSO-only:

How do we get everyone google SSO keys to developers who need them without exposing them?
How can we account for training needs, when a whole slew of people will show up and need accounts in a sandbox environment?

possible solution: can we allow a regular sign-in just in sandbox and take it away in full prod? Something to consider.

I don't think there's a world where we get out of having to have some sort of password entry, but I do think there's a way we can offer a carrot. I think we just make the Sign In With Google link bigger, add recommended so it looks like 'Sign in with Google (recommended)', and call this good.

This is on the sign in form in app/views/devise/sessions/new.html.erb

on it!


Alias field allows user to enter dash

The feedback received during NASA validation testing was:

The Alias field does not allow entry of dashes

Acceptance Criteria

[ ] Alias field allows the user to enter dashes

Alternatively, we could remove this field.

@wrynearson @deborahUAH Do we have a status on this?

@bwbaker1 @deborahUAH what's the value/rational for this ticket?
Currently, if you type out the name of a document, spaces are converted into dashes in the alias field. Users can't enter dashes manually into the alias field.

@wrynearson The user instructions should just be updated to "Only alphanumeric characters are allowed."
The current instructions read as though users can manually enter dashes.

We had this discussion with a previous team....   The issue is that having the alias field present suggests a user can alter it.  When they try, they can not add dashes and therefore get frustrated.  At that time, we suggested removing the alias from user view thinking that no one really needs to see the alias.  Is this true, do you all agree?  @wrynearson @bwbaker1 @ashleyriddle92 ?

@deborahUAH I think the title is more important and visible, but the alias is what is in the URL, so users might care a bit about it. I don't know if users need to have dashes, and we tell them that only alphanumeric characters are allowed, so I'm not sure if our current approach is frustrating for users.

The frustration was mentioned by users in testing a year ago.

Let's assess the effort required to remove it from the user view.  If too much (> 1hr effort) then leave as is. We will adjust the UI text to improve user understanding.

@wrynearson After some testing, there is a workaround to add dashes by using cursor control keys. Not sure if this justifies not removing the field from users view though. See screen recording.
https://user-images.githubusercontent.com/56319064/230166241-db0185db-047d-429f-b067-80b21d607657.mov

Nice find @bwbaker1 🙌

This wasn't on the value Miro board. I made a new sticky note for this. Could you let me know the value of this and I'll put in on the board?

@wrynearson Let's just update the UI text from "Only alphanumeric characters and dashes are allowed." to "Only alphanumeric characters are allowed." There is the workaround to add dashes, but let's just keep this simple for now.

Closed with https://github.com/NASA-IMPACT/nasa-apt/issues/510


TypeError: cannot pickle 'mappingproxy' object

Attemping to use libraries such as RLlib which seems to accept custom environments the same way stable_baselines3 does. While I don't have any trouble initializing and training stable_baselines3 agents and passing a custom environment either using ChallengeWrapper or OpenAIGymWrapper, I get an error that has to do with copy.deepcopy.
Wondering if anyone has experienced similar and has any insight to share.
My env setup looks like this:
cyborg_version = '1.2'
scenario = 'Scenario1b'
agent_name = 'Blue'
lines = inspect.getsource(wrap)
wrap_line = lines.split('\n')[1].split('return ')[1]
path = str(inspect.getfile(CybORG))
path = path[:-10] + '/Shared/Scenarios/Scenario1b.yaml'
cyborg = CybORG(path, 'sim', agents={'Red': B_lineAgent})
env = wrap(cyborg)

config = { "env": env, ... }
trainer = PPOTrainer(env=OpenAIGymWrapper, config=config)

And the output:
  File "train-complex.py", line 94, in <module>
    trainer = PPOTrainer(env=OpenAIGymWrapper, config=config)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\site-packages\ray\rllib\agents\trainer.py", line 746, in __init__
    super().__init__(config, logger_creator, remote_checkpoint_dir,
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\site-packages\ray\tune\trainable.py", line 124, in __init__
    self.setup(copy.deepcopy(self.config))
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Users\Rafael\Anaconda3\envs\cyborg\lib\copy.py", line 161, in deepcopy
    rv = reductor(4)
TypeError: cannot pickle 'mappingproxy' object

I believe I've patched the code to be compatible with RLlib. Let me know if you continue to experience problems.

@djbow2 Thanks for the quick response, unfortunately I'm still getting the same issue as above.

Try again, I found a mistake in my patch.

Same error!

Any update with this? Or any insight for attemping to debug myself?

trainer = PPOTrainer(env=OpenAIGymWrapper, config=config)
I notice in the code above your are passing OpenAIGymWrapper into the PPOTrainer without passing in the environment. Try:
trainer = PPOTrainer(env=env, config=config)

I'm passing the environment in config, while I believe the env argument in PPOTrainer is supposed to be the environment class itself. My entire training code is below.
from os import environ
import sys
from os.path import dirname, abspath
sys.path.append(dirname(dirname(abspath(__file__))))

# Needed because libiomp5md error gets thrown
# https://stackoverflow.com/questions/64209238/error-15-initializing-libiomp5md-dll-but-found-libiomp5md-dll-already-initial
environ['KMP_DUPLICATE_LIB_OK']='True'

from CybORG import CybORG
from CybORG.Agents import B_lineAgent
from CybORG.Agents.Wrappers.EnumActionWrapper import EnumActionWrapper
from CybORG.Agents.Wrappers.FixedFlatWrapper import FixedFlatWrapper
from CybORG.Agents.Wrappers.OpenAIGymWrapper import OpenAIGymWrapper
from CybORG.Agents.Wrappers.ReduceActionSpaceWrapper import ReduceActionSpaceWrapper
from CybORG.Agents.Wrappers import ChallengeWrapper
import inspect

from ray.rllib.agents.ppo import PPOTrainer

# def wrap(env):
#     return ChallengeWrapper('Blue', env)

def wrap(env):
   return OpenAIGymWrapper('Blue', EnumActionWrapper(FixedFlatWrapper(ReduceActionSpaceWrapper(env))))

cyborg_version = '1.2'
scenario = 'Scenario1b'
agent_name = 'Blue'
lines = inspect.getsource(wrap)
wrap_line = lines.split('\n')[1].split('return ')[1]
path = str(inspect.getfile(CybORG))
path = path[:-10] + '/Shared/Scenarios/Scenario1b.yaml'
cyborg = CybORG(path, 'sim', agents={'Red': B_lineAgent})
print(type(cyborg))
env = wrap(cyborg)
print(type(env))

# Configure the algorithm.
config = {
    # Environment (RLlib understands openAI gym registered strings).
    "env": env,
    # Use 2 environment workers (aka "rollout workers") that parallelly
    # collect samples from their own environment clone(s).
    "num_workers": 2,
    # Change this to "framework: torch", if you are using PyTorch.
    # Also, use "framework: tf2" for tf2.x eager execution.
    "framework": "tf",
    # Tweak the default model provided automatically by RLlib,
    # given the environment's observation- and action spaces.
    "model": {
        "fcnet_hiddens": [64, 64],
        "fcnet_activation": "relu",
    },
    # Set up a separate evaluation worker set for the
    # `trainer.evaluate()` call after training (see below).
    "evaluation_num_workers": 1
}

# Create our RLlib Trainer.
trainer = PPOTrainer(env=CybORG, config=config)

# Run it for n training iterations. A training iteration includes
# parallel sample collection by the environment workers as well as
# loss calculation on the collected batch and a model update.
for _ in range(3):
    print(trainer.train())

# Evaluate the trained Trainer (and render each timestep to the shell's
# output).
trainer.evaluate()

Are you aware if others have been able to use RLlib successfully? Is it possible that the environment isn't compatible with it?

Rl-lib has been succesfully used with CybORG and it is something we want to support.
Based on the example in the documentation, try putting in this function into the PPO trainer:
def cyborg(env_config):      cyborg = CybORG(path, 'sim', agents={'Red': B_lineAgent})      return ChallengeWrapper(env=cyborg, agent_name='Blue')

Seems like that did the trick, I'm past the errors and back to training. For future reference, this is was the portion of code that made it to actual training.
import inspect
from CybORG import CybORG
from CybORG.Agents import B_lineAgent
from CybORG.Agents.Wrappers import ChallengeWrapper
from ray.tune.registry import register_env

def cyborg(env_config):
    path = str(inspect.getfile(CybORG))
    path = path[:-10] + '/Shared/Scenarios/Scenario1b.yaml'
    cyborg = CybORG(path, 'sim', agents={'Red': B_lineAgent})
    return ChallengeWrapper(env=cyborg, agent_name='Blue')

# Register a custom env creator function with a string name.
register_env("cyborg_env", cyborg)

# Create our RLlib Trainer.
trainer = PPOTrainer(env="cyborg_env")

for _ in range(3):
    print(trainer.train())

Thanks for your help @djbow2! One last question, assuming you're continuing to build upon this challenge, is there an opportunity to contribute starter code for others to quickly get up and running with libraries like stable_baselines3 or RLlib?

Seems like that did the trick! For future reference, this is was the portion of code that made it past errors and to model training.
import inspect
from CybORG import CybORG
from CybORG.Agents import B_lineAgent
from CybORG.Agents.Wrappers import ChallengeWrapper
from ray.tune.registry import register_env

def cyborg(env_config):
    path = str(inspect.getfile(CybORG))
    path = path[:-10] + '/Shared/Scenarios/Scenario1b.yaml'
    cyborg = CybORG(path, 'sim', agents={'Red': B_lineAgent})
    return ChallengeWrapper(env=cyborg, agent_name='Blue')

# Register a custom env creator function with a string name.
register_env("cyborg_env", cyborg)

# Create our RLlib Trainer.
trainer = PPOTrainer(env="cyborg_env")

for _ in range(3):
    print(trainer.train())

Thanks for your help @djbow2! One last question, assuming you're continuing to build upon this challenge, is there an opportunity to contribute starter code for others to quickly get up and running with libraries like stable_baselines3 or RLlib?

Thanks for this code, @rafvasq - were you also able to modify the competition evaluation script evaluation.py and get that running?
Did you use agent.compute_actions() to get the next action?

@rafvasq Apologies for missing your final question. We welcome development but recommend you build upon our new challenge CAGE Challenge 2.


fix: allow Puppeteer 4

Summary

Test plan

@gregberge any chance this could be reviewed?

@gregberge @jsfez Sorry to ping again - do you mind reviewing this? This issue is resulting in a warning whenever someone installs packages in my company's repo. Should be a very quick review - I can attest that this package already works with Puppeteer 4. 😄

@gregberge @jsfez Sorry to ping again - do you mind reviewing this? This issue is resulting in a warning whenever someone installs packages in my company's repo. Should be a very quick review - I can attest that this package already works with Puppeteer 4. 😄

@gregberge @jsfez I as well would very much appreciate having this reviewed and merged.
Thanks guys.

Puppeteer in version 5 already, would it be good to update the pr @FezVrasta to that?

@FezVrasta any plans to update this PR to Puppeteer v5 and merge it?
@gregberge FYI

What's the point of updating the PR if none of the maintainers ever bothered to take a look at it?

Please @gregberge update this. It currently blocks me from running my tests. 😢

Puppeteer is now in v7. I am able to use this package with v7 (though I have only not used this much).
With the new version of npm (also v7) now also installing peer dependencies, npm install on a project with puppeteer >3 and jest-puppeteer fails completely.
It would be great if this can be fixed now.

Guys, there is 0 backer on this project from the start, when it was actually maintain. I don't use it, so I don't maintain it. Become maintainer or do you own Puppeteer integration, sorry!


DRILL-6622: Fixed a NullPointerException in a query with Union

@Ben-Zvi, can you please review the fix?
Thanks!
There were two bugs in the Aggregator batch sizing logic:
Issue I

The aggregator runs in a loop to consume all input batches
The loop was updating the batch sizing stats after they were consumed
Assume output-row-count is 1 and we receive a batch with at least 32k + 1 records
The code would create 32k output batches (one per incoming record) and then fails because of overflow
Fix - Now updating the batch sizing logic when a non-empty batch is received and before the processing loop

Issue II

The Aggregator has two main modules: AggregatorBatch and Aggregator objects
Both share the same "incoming" record batch instance
Though there is logic to spill incoming batches when under pressure
The batch sizing logic was not aware that when batches are spilled the shared "incoming" object instance will diverge; that is, the Aggregator object will mutate the incoming object
The batch sizer was being invoked with a stale "incoming" object (the one from the AggregatorBatch)
Fix - Update the  Aggregator code to always pass the active incoming object explicitly

@Ben-Zvi , thank you for the review!


Typo on PostgreSQL documentation page 'automatic schema evolution' settings description.

Hello,
There might be a small typo in the PostgreSQL documentation page  like :
You can switch of automatic schema evolution -> You can switch off automatic schema evolution
Just an 'f' is missing.
https://cap.cloud.sap/docs/guides/databases-postgres

Thanks @ozgurkadir ! I fixed the typo in the referenced PR. :)
All the best,
René


WIP V0.11.2.x yet another toolbar styling fix attempt - dummy toolbar

I moved toolbar from toolbar area to centralwidget area (to fix Qt styling bug) in https://github.com/darkcoin/darkcoin/pull/239 but walletwallet has way too big height for some reason (I'm not sure if this connected - looks like not, I compiled 11.1.25 and behavior seems similar). You can shrink wallet manually but next time you start wallet it will not keep that size and will increase height back to some "unnormal" value. Surprisingly that can be "fixed" in Mac OS with dummy toolbar but this has no effect for Linux (and I guess for Windows too) so logic is platform specific now.

do not merge this yet, will try to find more universal solution


Composable Matchers - Negative Form

PR: https://github.com/rspec/rspec-expectations/pull/505
see end of comment:
module RSpec
  module Matchers
    module Composable
      # Creates a compound `and` expectation. The matcher will
      # only pass if both sub-matchers pass.
      # This can be chained together to form an arbitrarily long
      # chain of matchers.
      #
      # @example
      #   expect(alphabet).to start_with("a").and end_with("z")
      #
      # @note The negative form (`expect(...).not_to matcher.and other`)
      #   is not supported at this time.

@myronmarston what are the plans for this?
seems reasonably straight forward...

define_negated_matcher feels awkward to me as a solution for this issue.
One solution that I don't think has been suggested is do define and_not_to and or_not_to methods. I'm less sure about or_not_to since that might be hard to reason about when reading specs.
Anyway, and_not_to would allow us to write things like
expect( foo ).
  not_to be_even.
  and_not_to be_between(5, 15)

@stevecj: At this point, define_negated_matcher shipped nearly 2 years ago and has seen plenty of usage in the wild, so we can't really consider removing it.  Your suggestion also doesn't really help when it comes to supporting composition...for example, with negated matchers you can do:
RSpec::Matchers.define_negated_matcher :an_array_excluding, :an_array_including

# ...

expect(result).to match [an_array_including(:foo), an_array_excluding(:foo)]

So I'd say that the approach that we went with is more composable and powerful than adding methods that would support negation in compound expectations but nowhere else.
If you want experiment with the API you've suggested I'd encourage you to create an extension gem that adds it.

I feel like define_negated_matcher is very useful in any case, but and_not is a much simpler solution to cases like the example that I gave.
In any case, I like your suggestion of writing an extension gem. I believe I will take your advice and do that. 😄

@Lukom RSpec has a feature that provides something like what you want that also avoids the trap @pirj refers to: define negated forms of the matchers you want to use.  In your spec_helper.rb (or a similar file), add this:
RSpec::Matchers.define_negated_matcher :make_no_db_query_matching, :make_db_query

Then you can use the negated matcher like so:
expect { subject }
  .to make_no_db_query_matching(/something 1/)
  .and make_no_db_query_matching(/something 2/)

That'll do what you want and provide nicer (and less confusing) failure output than we ever could have provided with and_not.   Note that the name of the negated matcher is entirely up to you; I thought make_no_db_query_matching reads nicely given the argument (but would probably better be paired with make_db_query_matching(...)) but you could just call it make_no_db_query or avoid_making_db_query or whatever you want.  RSpec will take care of producing a failure message (and matcher description) for the negated matcher that is based on the phrasing you use for the matcher name.

@pirj Sorry, your point is not convincing, all programming languages have tools for negation, in which way RSpec is different and shouldn't have it?
@myronmarston Imagine that you have 100 matchers, and you have to write ~garbage~ 100 custom negation forms of them, and then also remember all negation forms, was it not_make_db_query or avoid_make... or avoid_making or make_no...?
currently when I have
expect { subject }.not_to make_db_query(/something/)

and matcher is triggered I have this error message:
expected #<Proc:0x00007f8afd5f73e8 ...:172> not to make db query /something/

It reads perfectly well
When I define negation matcher not_make_db_query and have this:
expect { subject }.to not_make_db_query(/something/)

I get this:
expected #<Proc:0x00007f8ae1d879a8 ...:172> to not make db query /something/

which reads a bit worse, but still ok. We could have avoid_making_db_query matcher and have ... to avoid making db query which reads better, agree, though it's less intuitive – you have to not just add not_ to matcher name but also slightly change the verb, also you have to agree on the new convention with the team
When I have this:
expect { subject }.
  to not_make_db_query(/not_triggered/).
    and not_make_db_query(/something/)

I get:
expected #<Proc:0x00007f8ae754f000 ...:151> to not make db query /something/

Basically the same message as previous, it doesn't matter if matcher is after to or and
I imagine that if and_not is implemented we'd have the same perfect message as in the first case

Makes sense. I like solution with dont – you don't need parentheses and don't need custom code 🙌 why is it not yet implemented in RSpec? 😅
Still I think and_not may be ok if implement a warning whenever there is complex condition inside.


Setup: Document the process of creating social networking connections

Following http://docs.readthedocs.io/en/latest/install.html, once you have your local webserver running, if you follow the instructions on http://docs.readthedocs.io/en/latest/getting_started.html#import-your-docs (Go to your dashboard, click Import) you can end up with this:

This is a step required for allauth set up, there isn't a good way for us to automate this. Docs here are probably the best case.

2 years on, multiple issues stemming from this, and no progress. Amazing. I am sure someone would have added it to the documentation by now if we could figure it out. I have added a socialapp for gitlab with the keys and everything, migrated db, still same error.
Very ironic that a documentation software has poor documentation...

@jslay88 contributions are welcome, please see https://docs.readthedocs.io/en/latest/open-source-philosophy.html and https://docs.readthedocs.io/en/latest/custom_installs/index.html

You completely missed my point.

I get your point, @jslay88. I think it could be phrased a bit nicer, though. I'd personally appreciate that; a lot of good work happens here, and a lot of us love this project. Slamming it isn't really all that useful.
We'd be super happy to work with you to write docs for this, if you're willing to do so and if you're stuck. It doesn't look like there's been a lot of interest in this, so far, which may have been why we haven't prioritized it. We'll fix this issue when we can, but other issues have a higher priority right now. The fastest way for this to be fixed would most likely be for you to suggest a pull request, which would really be great. Let us know if it's something you need help with, and will review the PR and try and help you land it.

I wasn't concerned about being nice when all I see to all the other issues that have been closed for this, have the same copy paste response without actually providing an answer.
As stated in my initial comment, I have no issue, nor do most of the others that have run into this problem, with adding it to the documentation, but there is NO posted solution for how to actually solve this problem. Therefore, due to chronological order of logic, I am unable to create a pull request, because I cannot produce working documentation, because there has been no provided solution....

I understand that you're frustrated; but being nice is in the Code of Conduct, which defines how we interact on RTD. We want a friendly community. Please be respectful of our efforts. Rude comments don't make anyone happy, and unhappy people don't code well.
Regarding the issue: Ok. Let's ask one of the other maintainers (I don't personally know) - what's the best way to get started with documenting this process? If we could get you some pointers for how to get started, then we should be able to solve the chicken-egg user-documentation problem you're mentioning.

@jslay88 the rtd team doesn't support custom installations and the respective documentation is maintained by the community (I know there are some users that already has his/her local rtd installation working). I only setup this in my development environment with this steps https://github.com/rtfd/readthedocs.org/issues/3573#issuecomment-362632502 but I'm not sure if that will work if you don't load the test_data.

That was the one (your comment specifically) that I followed. I have the test_data loaded from the get go. I have added the gitlab socialapp, provided the keys and callbacks, shutdown rtd server, made migrations, it showed changes related to gitlab, migrated, fired back up, same error, even after clearing caches. I have verified that I have it attached to the site as well.
Any more insight as to what is happening?

I also searched for a solution to this problem with no knowledge of Django. Found it's actually the allauth setup that is missing, and a tutorial with screenshots at allauth tutorial.
Furthermore, the allauth git repo has more info on additional auth providers: allauth github
Might be helpful to someone finding this issue.

Thanks, @kwosie for the links - it helped my get my installation going..
Here's a bit of info on how i got it to work :

Edit readthedocs/settings/base.py
Add  entry to the authentication backend section: 'allauth.account.auth_backends.AuthenticationBackend

AUTHENTICATION_BACKENDS = (         # Needed to login by username in Django admin, regardless ofallauth        'django.contrib.auth.backends.ModelBackend',         #allauth specific authentication methods, such as login by e-mail         'allauth.account.auth_backends.AuthenticationBackend',         'guardian.backends.ObjectPermissionBackend'     )

Start your installation
I'm using port 80 and run in a private ip range: <IP_ADDRESS>:80
sudo python3 manage.py runserver <IP_ADDRESS>:80

Visit your RTD DJANGO Admin site :
http://localhost:8000/admin
http://<yourIP>:<PORT>/admin

or http://<IP_ADDRESS>:80/admin for me :-)

EDIT the SITES section

Visit the SITES section of the Django admin UI and modify the example.com domain to be your :
http://localhost:8000/admin/sites
Note: The ID of your site has to be the same as the SITE_ID key in
5readthedocs/settings/base.py ( it's SITE_ID = 1 by default) . You can check your site_id with sqlite3 :
cd readthedocs.org
sqlite3 dev.db
 select * from django_site
If you choose to delete the example.com entry and add a new one, you have to edit the base.py file and change SITE_ID to the id of your site in the django_sites table.

Example: connect github acccount
First, head over to github and register a new OAuth application - you will retrieve a client id / client secret which you need for step 6:

https://github.com/settings/applications/new

Add a social account ( client id + secret ) to your RTD installation via the Django Admin UI

visit  http://<IP_ADDRESS>/admin/socialaccount/  and click on a social account.
choose provider = github , enter client id and client secret
make sure you add "available site" : : and move this over to the chosen sites tab

verify if it works by clicking connect github account in RTD UI.

This video helped me : https://www.youtube.com/watch?v=1yqKNQ3ogKQ&feature=youtu.be
thanks , good luck !

Does anyone actually know how to set this up?  Jeez.


unique username(nickname) validation

Any users can insert same nickname which is invalid.

Solving unique Username and Validation of Username(Nickname)


bruh

https://user-images.githubusercontent.com/131070261/232622653-ca8e50a3-cce6-4109-9c1c-894eb63b23d4.png
unsupported:(
guess who am i, im one of you classmate

im the first comment yay

ah yes hello, alfie!
currently, ra1nm8 exploits macOS with CVE-2022-46689 (MacDirtyCow), which only supports up to iOS 16.1.2 and macOS macOS 10.13.6 - 12.6.1 // 13.0-13.0.1. Looks like you are on a version above 13.0.1. ra1nm8 currently does not support that version.
A new vulnerability has dropped recently, and once a proper exploit for that vulnerability gets released, I will update ra1nm8 to support your version.
Until then, don't upgrade!

ok im 13.1

can i downgrade? L


allow copy command to not change input

The global handler would steal focus to the input box but we want to allow command+c copy in the chat body
@keybase/react-hackers

The commits 59de17806729...d8ffac7e09d5 introduce visual changes on linux. :mag_right: 1 changed

Changed: Menubar-Private_Async_Writing (before) (after)

We're probably busting some other useful key combos too at the moment. Might make sense to change it to a whitelist of printable characters + backspace/delete/arrows

what can you do other than copy?

I think  to copy is still broken on Linux. Another thing that I might expect to work is <shift+arrow> to move the highlight around?


chore(ci): reduce number of jobs, remove build from lighthouse pipeline

Motivation
As @slorber noticed the increased number of jobs cause the CI to choke a bit, so I was advice to reduce the job count (at least for now).
This PR removes Node 14 from yarn-v1 E2E job and Node 10 from yarn-v2 E2E to retain at least one job on both version of Node.
Additionally I have removed the Node, install and build steps, since it looks like that they are redundant.
Have you read the Contributing Guidelines on pull requests?
Yes.
Test Plan
Run the CI.
Related PRs

#3849

thanks 👍


Fixes a memory leak in fragmentMol

addResult was leaking the core and side_chains (verified with valgrind)
The raw core and side_chain pointers were converted to RWMOL_SPTR so if they are not pushed onto the result vector, they will be cleaned up regardless of code path.

Commit https://github.com/bp-kelley/rdkit/commit/39b69b360009625c156ab2ca038d409d7646e979
adds a new API point (maxCutBonds) to limit the combinatorial explosion.  The current setting is 20 bonds (roughly equivalent to 90 atoms for a selection of standard drug-like molecules) but is a much better prediction of computation complexity.


fix: check pre-release and build versions

Summary
This PR adds some additional checks when  figuring out if the given version is a build or a prerelease.
For a pre-release version . '-' should come before '+' ( if plus exists).
For a build version: '+' should come before '-' (if minus exists)
Test plan
Added unit tests
Issues

"THING-1234" or "Fixes #123"

Coverage increased (+0.001%) to 99.584% when pulling 4850438a76e7cdacc14886c686b7e2836fed42a6 on oakbani/semver-2 into bc09647bf27bd09397db65ac6d9b8e9000121b8a on master.


How to modify continuous integration for an application that uses Citus

Why are we implementing it? (sales eng)
People create Rails/Django apps with Citus as the backend and wish to run their integration tests on Circle or Travis. Provide instructions for how to set up a Citus cluster on CI for the application.
Communication goals (e.g. detailed howto vs orientation)
Example Circle and Travis config files showing the migration from Postgres to Citus.
Good locations for content in docs structure
New subsection in https://docs.citusdata.com/en/v7.1/migration/transitioning.html#app-migration
How does this work? (devs)
Example sql
Corner cases, gotchas
Are there relevant blog posts or outside documentation about the concept/feature?
Link to relevant commits and regression tests if applicable

Circle config file inspiration:
version: 2
jobs:
  build:
    working_directory: /app
    docker:
      - image: YOUR BASE IMAGE
        environment:
          PGUSER: postgres
      - image: citusdata/citus:7.1.0
      - image: citusdata/citus:7.1.0
        environment:
          PGPORT: 5433
      - image: citusdata/citus:7.1.0
        environment:
          PGPORT: 5434
    steps:
      - run: dockerize -wait tcp://localhost:5432 -timeout 1m
      - run: dockerize -wait tcp://localhost:5433 -timeout 1m
      - run: dockerize -wait tcp://localhost:5434 -timeout 1m

      - run:
          name: Add workers
          command: |
            psql -c "SELECT * from master_add_node('localhost', 5433);";
            psql -c "SELECT * from master_add_node('localhost', 5434);";

Simply starts a coordinator and two workers, and the app can then connect to 5432.


Relationship between phrase list and entities

Can a phrase list be applied and improve intent recognition results when no entities are labeled? Or does it have to be associated with some machine learned entity? (as in the simple entity tutorial https://docs.microsoft.com/en-us/azure/cognitive-services/luis/luis-quickstart-primary-and-secondary-data).
For that matter, can labeling entities improve intent recognition results or do I label entities for the purpose of data extraction only (that is entity recognition and intent recognition are completely separate processes and do not rely on one another)?

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

ID: 4c3e434a-13f9-07b8-294a-34971a205011
Version Independent ID: 7b525559-5bb4-c82e-84c8-31945f059f6a
Content: Features - Language Understanding - Azure Cognitive Services
Content Source: articles/cognitive-services/LUIS/luis-concept-feature.md
Service: cognitive-services
GitHub Login: @diberry
Microsoft Alias: diberry

@bankotsu Thank you for asking these questions. Please see the other issue. I'll keep everything in a single issue to reduce the duplication. #in-progress

@bankotsu Labeling entities doesn't impact intent prediction. Phrase lists boost the vocabulary of the app. Generally, I've seen interchangeable phrase lists used with the purpose of helping boost the signal of machine-learned entities. I've seen non-interchangeable phrase lists used as general app domain vocabulary.

#please-close


[bug] Failed to install tauri v2.0

Describe the bug
When I run cargo install tauri-cli --version "=2.0.0-beta.15", I recieve an error:
error[E0425]: cannot find function `apply_metadata` in module `schemars::_private`
   --> /Users/jafioti/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tauri-utils-2.0.0-beta.13/src/config.rs:216:27
    |
216 |       schemars::_private::apply_metadata(
    |                           ^^^^^^^^^^^^^^ not found in `schemars::_private`

error[E0425]: cannot find function `apply_metadata` in module `schemars::_private`
   --> /Users/jafioti/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tauri-utils-2.0.0-beta.13/src/config.rs:223:27
    |
223 |       schemars::_private::apply_metadata(
    |                           ^^^^^^^^^^^^^^ not found in `schemars::_private`

For more information about this error, try `rustc --explain E0425`.
error: could not compile `tauri-utils` (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
error: failed to compile `tauri-cli v2.0.0-beta.15`, intermediate artifacts can be found at `/var/folders/23/6hcsrljj2wgdf6mj8r4f0m580000gn/T/cargo-installx7eM5o`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.

Reproduction
Run cargo install tauri-cli --version "=2.0.0-beta.15"
Expected behavior
I would expect this to correctly install the tauri cli.
Full tauri info output
N/A. Tauri isn't installed

Stack trace
No response
Additional context
No response

I just updated dependencies with cargo update  and have the same error:
error[E0425]: cannot find function `apply_metadata` in module `schemars::_private`
   --> /home/brainless/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tauri-utils-2.0.0-beta.13/src/config.rs:216:27
    |
216 |       schemars::_private::apply_metadata(
    |                           ^^^^^^^^^^^^^^ not found in `schemars::_private`

error[E0425]: cannot find function `apply_metadata` in module `schemars::_private`
   --> /home/brainless/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tauri-utils-2.0.0-beta.13/src/config.rs:223:27
    |
223 |       schemars::_private::apply_metadata(
    |                           ^^^^^^^^^^^^^^ not found in `schemars::_private`

I am using Tauri v2 (2.0.0-beta.17).
I tried creating a new project with pnpm create tauri-app --beta and I get the same error after running pnpm install and pnpm tauri dev.

can confirm, just got hit by that approximately at the same time as you.
Though I'm new to Tauri so I though it was a me issue
pnpm install @tauri-apps/cli@next @tauri-apps/api@next
pnpm create tauri-app --beta

# because Android Studio and other crap
$env:NDK_HOME="C:\Users\user\AppData\Local\Android\Sdk\ndk\27.0.11718014"

pnpm tauri android init
pnpm tauri android dev

Got the same error.


CSS background-image renders fine in Safari, but not Firefox or Chrome

A background-image in Layout.css will not render correctly in Firefox or Chrome, but does render correctly in Safari.
I have created a fork of master that adds only a background-image to Layout that demonstrates the problem.
Fork189-n8sabes/react-static-boilerplate
See:

/components/Layout/Layout.js
/components/Layout/Layout.css
/public/assets/.

It is unclear as to the cause and may very well be an oversight on my part.
Inline style works fine, but this is impractical as a global project solution.

This is a known webpack problem. I have a temporary workaround, but you have to rebuild anytime you change the publicURL (or port). Additionally, I can only make it work with relative paths, not absolute paths in RSB. Here is the workaround:

webpack.config.js must set the publicURL to the full path. publicPath: 'http://localhost:3000/dist/', but this doesn't work serving it up from another port.
I've gotten the url to work with a relative path, but not an absolute path. background-image: url("../../public/assets/bg_pattern.jpg");

Here are a few discussions on the issue:
sourceMap css does not function for background-image (maybe stylus-loader issue)
Generated image urls must be absolute for style!css?sourceMap to work?
Webpack - background images not loading

I have the exact same issue, setting the publicPath solve the problem but as I want to test from other devices on the same network I don’t want to hardcode it. I ended up disabling sourceMaps for now which also solves the problem. Thanks for the hint !

Hi, I have the same issue, and even strange is using your fork and change in webpack.config.js, the background is still not appear this is what I changed
  output: {
    path: path.resolve(__dirname, './public/dist'),
    publicPath: 'http://localhost:3000/dist/',
    filename: isDebug ? '[name].js?[hash]' : '[name].[hash].js',
    chunkFilename: isDebug ? '[id].js?[chunkhash]' : '[id].[chunkhash].js',
    sourcePrefix: '  ',
  },

Am I doing something wrong?
Thanks


Log in not working

Error: SyntaxError: Unexpected token Y in JSON at position 0
I see this error and I believe it's coming from Bot.prototype.login which invokes this._api('rtm.start'). Seems the response body isn't being properly parsed.

Having dived deeper, it looks like my bot hit Slack's rate limit and the response body isn't in JSON, rather it's just a string "Error: You are sending too many requests. Please relax."

this one https://github.com/mishk0/slack-bot-api/issues/57 is similar but with a more suitable title.


Nuget pipeline is not picking up the tag

@lauxjpn
Can you check the nuget push pipeline. Trying to push alpha 2 out and have it tagged so it should pick that up to set the officalbuild value to true.
This is the first nuget release since switching from AZDO to Github Actions so something may have changed somewhere

Quick update. The checkout action did not checkout any tags by default.
That is now updated to fetch tags.
Still have an error with the nuget pack section
/home/runner/work/EntityFrameworkCore.Jet/EntityFrameworkCore.Jet/Version.props(50,9): error : The 'OfficialVersion' property needs to be identical to the 'VersionPrefix' property or to a combination of the 'VersionPrefix' and the 'VersionSuffix' properties.

It looks like the package was not published on NuGet because this returned False:
$officialBuild = 'refs/tags/v8.0.0-alpha.2' -match '(?<=^v)\d+\.\d+\.\d+.*$'

Could it be that the regex is wrong and should be (?<=v)\d+\.\d+\.\d+.*$ instead, i.e. without the ^?

@0xced Release pipeline is now all fixed so alpha 2 is on nuget


Add hover title to post-meta list elements

date: we show days/weeks ago. it would be nice to also see the exact date on hover
number of words: the reading time is calculated based on an estimated number of words per minute. it would be nice to also see the exact number of words as label on hover

Won'f fix


atom folding bug

atom folding bug

win7 x64
atom 1.53.0 x64
3rd party packages not installed

vs code no bug for this text

It must be a package bug because I was unable to reproduce it.

if you disable the standardpackage language-html , it works correctly

https://github.com/atom/language-html/issues/246

Could you paste the snippet so I can use it for reproduction?


[$30] Nice to have: Failure message with the reason for failure.

Description:
Currently if there was a failure in scheduling the payment, we are getting the error message "Failed to schedule payments for (n) resources" for all below reason,

If member Rate is 0 or null
If the RB.billingaccount is null.
If status='no days'

It will be nice if there is a reason added for the failure as it would be easier to find the reason

Sum up:

I suggest another approach, instead of showing error after attempt of processing the payment we should disable the checkboxes if we cannot process the payment for a known reason.

disable checkboxes for the rows for which we cannot process a payment because of one of the reasons shown below
when we put mouse on a disabled checkbox show the Tooltip with the message describing the reason why we cannot process the payment for this row
if we click checkbox to select all it should not select disabled checkboxes.

Possible Reasons:

RB.mamberRate is 0 or null, message: Member Rate should be more than 0.
RB.billingAccount is null, message: Billing Account is not set for the Resorce Booking.
if RB.workPeriods[0].daysWorked - RB.workPeriods[0].daysPaid === 0, message: There are no days to pay.

@MadOPcode all good now, nothing has been changed.

@maxceem 1. The 'Resource' spelling is incorrect in the tooltip.

Also can we have a bulletin point or similar one to display these messages if they are more than one?

Other than the above two, it is working fine

@sandhiyakavi both are fixed now and pushed to DEV.

Verified on Dev Env.

Paid via https://www.topcoder.com/challenges/ed92a075-8557-47ac-9a86-d0955ea472bf

Verified on Prod Env with @nkumar-topcoder


Support multipart PUT requests

It would appear there's nothing in the specs that restricts multipart requests to only POST.
In fact the documentation for the Netty HttpPostRequestDecoder (used by finatra for multipart parsing) states it "will decode Body and can handle POST BODY (or for PUT, PATCH or OPTIONS)." [1]
Given that, should finatra check for multipart bodies in all those methods?
[1] http://netty.io/4.0/api/io/netty/handler/codec/http/multipart/package-summary.html

This was added in https://github.com/twitter/finatra/commit/ec94853ed3791ab27180f8870010a0afd9a0a38b. Let me know if that does not solve your use case.


Card description is still lagging behind

The implemented fix for this issue did not solve the problem.
The "fix" only worked when clicking on the SideBarContent close button, need to also be implemented for when user closes the SideBar by clicking on the background.

Also noticed that description value for the selectedObject remain the old value even after the query have been invalidated.

Take a look at this:
// components/MarkdownEditor.tsx
// Sets local state to display text instantly and updates the API
  const setAndPatchText = (text: string) => {
    // Patching the text via the API is debounced in the onChange
    onChange(text);
    setText(text);
  };

This issue will most likely be solved by this ongoing task:
https://github.com/orgs/equinor/projects/87/views/8?pane=issue&itemId=11345805

Update: This is still an issue in Flyt 2.0

@SayyareHamit Ready for test in DEV/QA poc. This should also fix an issue where sidebar description was not being updated when other users made changes to it.

Works good as required. @nesadrian

Tested in qa-graph-poc. Card description get updated without lagging.


Automated UI Tests for the Scientific Calculator Mode

Problem Statement
Currently, the basic smoke tests for Scientific calculator mode are all manual.  There aren't any automated UI tests for calculator modes other than the standard calculator mode.  Automation testing is faster than manual testing. Repeated test that can be automated, should be automated.
Evidence or User Insights
It would be helpful to developers and testers to have some streamlined, reliable UI tests for the Scientific calculator mode.
Proposal

These tests would allow developers to know that their feature/code change, when introduced to the application, does not break other aspects of the application.
These tests allow testers to focus on more creative, testing scenarios during manual testing rather than spending a lot of extra time executing tests that an automaton could complete.

Goals

Replace basic, repeatable manual tests, with streamlined, reliable automated UI tests for the Scientific calculator mode
Use these tests as a gate when checking in new features

Non-Goals

The UI automated tests are not a replacement for Unit tests
The UI automated tests will not cover end-to-end testing (It will cover smoke/BVT type tests)

Low-Fidelity Concept
Read through "ManualTests.md" (https://github.com/microsoft/calculator/blob/master/docs/ManualTests.md).  Would you prefer to execute these tests manually, or if possible, execute most of these through automation?
Requested Assignment
If possible, I would like to implement this.

This is your friendly Microsoft Issue Bot.


ruby: Officially RubyGems release aarch64 native gems for darwin and linux platforms

Is your feature request related to a problem? Please describe.
In issue #26391 a request for native gems for Linux aarch64 was made (and a number of dupes, #29489, #31855, #26664). This was implemented and closed via @alto-ruby 's work in #33079 and #33641 and @flavorjones in #25992 (for Darwin/MacOS)
Both versions' builds have have been independently sanity tested via https://github.com/grpc/grpc/pull/33079#issuecomment-1725946740 however it seems someone (from Google?) needs to "bless" these native gems so they can be pushed to RubyGems in future releases on an ongoing basis.
There are builds available in buckets like here.
Raising this to request the official RubyGems release and track the validation or additional checking that may need to be done.
Describe the solution you'd like
aarch64-linux and arm64-darwin gem variants released to https://rubygems.org/gems/grpc (and on an ongoing basis as new grpc releases are cut)
Describe alternatives you've considered
The gems can be built on install (current approach), but this is extremely slow and relatively problematic for folks to get their ruby build environments in the right state. Since protobuf already has native gems available, having grpc on top of this would be excellent.

This was finally done with 1.60 and gems are available! Thank you thank you to whomever helped get this over the line.


remove loadcaffe wrapper

there were a couple of fixes commited to loadcaffe that load a net on cpu by default and do not require inn and cunn all the time, so the wrapper is not needed.

Thanks! Now all the code fits in one file =)


DAPR Sidecar health probe (/v1.0/healthz) not working in container app

Please provide us with the following information:

This issue is a: (mark with an x)

[x] bug report -> please search issues before submitting
[ ] documentation issue or request
[ ] regression (a behavior that used to work and stopped in a new release)

Issue description
The default dapr sidecar health endpoint is never called (/v1.0/healthz) when configured in the container's  health probe section in the azure portal
Steps to reproduce

Create an Azure Container App environment
Configure a pub/sub dapr component
Create a container app in the environment created previously
Deploy a container
Enable Dapr through the azure portal (Fill in the configurations, my dapr is working fine for everything else so I assume that this is correctly set up, i can see the logs and the port in which dapr is running is 3500)
Inside the container app, go to containers -> Edit and deploy -> Select container image -> configure the basic section -> Then go to Health probes -> Liveness probe -> Tick the enable liveness probe box
In the liveness probe configuration we have the following: Transport: HTTP, Path: /v1.0/healthz, port: 3500, Initial delay seconds: 1, period seconds: 10
Press Save and then create a new revision

Expected behavior [What you expected to happen.]
The liveness probe should call the /v1.0/healthz endpoint from 10 to 10 seconds
Actual behavior [What actually happened.]
Nothing happens, the endpoint is not called
Additional context
I know that health probes are enabled by default if we use kubernettes. Azure container apps use kubernetes so shouldn't it work ?

Is this a duplicate of #561 ?


[Bug] Message headers not treated with case insensitivity as per RFC, causing deviating headers to slip through the filters

I'm using an older version, but have recreated on 8.8.2. If an email is converted using EmailConverter.emlToEmail, and then back again using EmailConverter.emailToEML, and the email has the Cc header in all caps ("CC") then duplicate Cc / CC headers are created on the EML.
Outlook / Exchange appears to use upper case when sending mails - the RFC822 spec doesn't mention case, and the examples in the spec vary between cc, Cc and CC.
The code below shows the problem on the attached sample emails.
Path path = Paths.get("TestingCCPass.eml");
//Path path = Paths.get("TestingCCFail.eml");

contents = Files.readString(path,StandardCharsets.UTF_8);
Email t_message = EmailConverter.emlToEmail(new ByteArrayInputStream(contents.getBytes()));
System.out.println(t_message.getRecipients());
String t_eml = EmailConverter.emailToEML(t_message);
System.out.println(t_eml);

Pass:

[Recipient{name='someone else'<EMAIL_ADDRESS>type=To}, Recipient{name='Another Person'<EMAIL_ADDRESS>type=Cc}]
Date: Tue, 9 Apr 2024 23:57:57 +0100 (BST)
From: someone<EMAIL_ADDRESS>Reply-To: someone<EMAIL_ADDRESS>To: someone else<EMAIL_ADDRESS>Cc: Another Person<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>Subject: An RFC 822 formatted message
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
This is the plain text body of the message. Note the blank line
between the header information and the body of the message.

Fail:

[Recipient{name='someone else'<EMAIL_ADDRESS>type=To}, Recipient{name='Another Person'<EMAIL_ADDRESS>type=Cc}]
Date: Wed, 10 Apr 2024 00:08:18 +0100 (BST)
From: someone<EMAIL_ADDRESS>Reply-To: someone<EMAIL_ADDRESS>To: someone else<EMAIL_ADDRESS>Cc: Another Person<EMAIL_ADDRESS>CC: Another Person<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>Subject: An RFC 822 formatted message
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
This is the plain text body of the message. Note the blank line
between the header information and the body of the message.

TestingSamples.zip

Fix released in 8.8.3. Thank you for bringing this to my attention!


p2sh-p2wpkh && bech32 support for getkeypool

I needs it.

I don't think this really matters since importing a pubkey imports all of the single key scripts for it, not just the one specified. This includes p2sh segwit and bech32 ones.

This is extremely  Core behavior, but perhaps this lowers the immediate need for it.

That had me confused for a while as well. In case someone does want to add it, this line would need to be changed: https://github.com/achow101/HWI/blob/master/hwilib/commands.py#L101
Unfortunately it seems bip32utils doesn't have bech32 support yet either.

@Sjors we could switch to libwally which supports this and has python bindings

/blockstreamshill

It's also used by c-lightning, also one of those Blockstream conspiracies, but at least that means it's maintained :-)

Yes it is actively maintained and used in multiple products(including GreenAddress), which is nice.

Better still would be to add support for output descriptors to importmulti (or a new command). That would also allow cleanly separating m/44' keys from m/49' and m/49' keys. That would keep the users BIP39 seed compatible with (at least some) other wallets.
Is getnewaddress smart enough to look for the right key type, and throw an error if the keypool for that type is empty? The GUI would also have to be made a bit smarter, e.g. dis- or enabling the bech32 checkbox, or communicate in some other way that the keypool needs replenishing.

I wanted to avoid integrating larger libraries like libwally because there's a lot of additional stuff that we don't need included there.

This should be easier on top of https://github.com/bitcoin/bitcoin/pull/14454 and https://github.com/bitcoin/bitcoin/pull/14565

#47 Implements this.


storage: error handling

As discussed on discord, storage should handle errors gracefully.

Published to<EMAIL_ADDRESS>


Error in logs while importing zapi template

When harvest zapi collector starts, it throws below error. We should check for any functional issue and fix this error.
7:01PM ERR goharvest2/cmd/collectors/zapi/collector/zapi.go:108 > Error importing subtemplate: status_7.yaml error="No best-fit template found" Poller=umeng_aff300 collector=Zapi:Status_7mode

Verified these are logged as structured warnings Unable to import template
Commit f7be2f8


Only one line being read in a 100GB+ gzip file (Wikidata dump)

Hi all!
Apologies if I did miss something out here and the error is on my behalf (however this is not different than any standard usage of this library), I am reading a wikidata dump line by line, and being this a giant json array only the first line containing the opening square bracket is being returned:
The dump is the following: https://dumps.wikimedia.org/wikidatawiki/entities/20220606/wikidata-20220606-all.json.gz
let path = ".../wikidata-20220606-all.json.gz";
let f = File::open(&path).expect("file not found");

let reader = BufReader::new(GzDecoder::new(f));

reader.lines().for_each(|l |{
    println!("{}", l.ok().unwrap());
})

Switching to the loop based format, the second call to read_lines returns 0 bytes, which should be in line with the lines iterator behaviour.
let reader = BufReader::new(GzDecoder::new(f));

let mut buf = String::new();
        while let Ok(usize) = reader.read_line(&mut buf) {
            match usize {
                0 => {
                    buf.clear();
                    break;
                }
                _ => {
                    println!("{}", buf);
                    buf.clear()
                }
            }
        }

No issues when reading the above file from gzcat or a python script.
Any idea on how to troubleshoot this?
Thanks in advance for your help!

I believe for wikipedia dumps you need to use MultiGzDecoder

Cheers, that did it!
My follow up question seem to be already be addressed in this issue:
https://github.com/rust-lang/flate2-rs/issues/178
So I would rely on usages of MultiGzDecoder instead for arbitrary files.
Cheers,


fix(scripts/install.sh): improve install failure detection

I've had some reports of the Mac install succeeding despite otelcol itself failing. I've tweaked the failure detection to be more precise and increased the timeout to 15s. This appears to fix the problem in all cases I'm aware of, but we should keep an eye on it - maybe even abandon this detection entirely or do a different kind of check?

In case it won't help, we can try to use metrics endpoint or another more reliable heath checking way

Maybe that'd be a better solution, detect if otelcol has started and then set a timeout for when the health check should pass? Then we can have false positives the other way though.


Revert "Bump dev-docs pages actions"

Objective

All Deploy Docs CI builds have failed since this run.
The source of the issue is PR #11418.

Solution

Revert commit 11e43860d8dc89cbdc01afecda26e56d20efabfd to allow time for further investigation.

This commit was originally my pull request, but I have no idea why it broke. Unlike the error text, the artifact is less than 10 GB large. I don't believe it contains any links, but I'll need to check.

This appears to be some sort of internal Github issue. (See https://github.com/actions/deploy-pages/issues/284). It appears to be fixed, which is why I'm unsure why it's happening again. Perhaps the version tag needs to be pinned to the patch version?

https://github.com/bevyengine/bevy/pull/11507 is a potential fix but can only be tested before merging this one


No prompt to configure the test.

Environment data
Version: 1.60.0-insider (user setup)
Commit: 7c25c174726ab969db3f99058cdf24bcfae1cfbe
Date: 2021-08-11T05:15:24.598Z
Electron: 13.1.8
Chrome: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Windows_NT x64 10.0.17134
Pylance：v2021.8.1
Build of python-insider: 2021.9.1121560038-dev
Build of jupyter-insider: 2021.8.2025984474
Steps to reproduce:

Launch VSC and create python file named pytest_test.py
Enter below code

def test_passing():
    assert 42 == 42

def test_failure():
    assert 42 == -1

Run command: "Run All Tests", ensure:  triggers the prompt to configure the test runner.
Expected behaviour

Actual behaviour
No prompt.
Logs

Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

User belongs to experiment group 'pythonaacf'
User belongs to experiment group 'pythonJediLSP'
User belongs to experiment group 'pythonDiscoveryModuleWithoutWatcher'
User belongs to experiment group 'pythonTensorboardExperiment'
User belongs to experiment group 'PythonPyTorchProfiler'
User belongs to experiment group 'pythonDeprecatePythonPath'
User belongs to experiment group 'pythonSortEnvs'
Python interpreter path: C:\Python39-64\python.exe
Starting Pylance language server.
Error 2021-08-12 07:07:03: Failed to check if file needs to be fixed [EntryNotFound (FileSystemError): Unable to read file 'c:\Users\vting\Documents\folder2\.vscode\settings.json' (Error: Unable to resolve non-existing file 'c:\Users\vting\Documents\folder2\.vscode\settings.json')
	at _handleError (c:\Users\vting\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:85:159289)
	at processTicksAndRejections (internal/process/task_queues.js:93:5)
	at async y.readText (c:\Users\vting\.vscode-insiders\extensions\ms-python.python-2021.9.1121560038-dev\out\client\extension.js:9:337898)
	at async p.doesFileNeedToBeFixed (c:\Users\vting\.vscode-insiders\extensions\ms-python.python-2021.9.1121560038-dev\out\client\extension.js:59:559549)
	at async c:\Users\vting\.vscode-insiders\extensions\ms-python.python-2021.9.1121560038-dev\out\client\extension.js:59:558676
	at async Promise.all (index 1)
	at async p.getFilesToBeFixed (c:\Users\vting\.vscode-insiders\extensions\ms-python.python-2021.9.1121560038-dev\out\client\extension.js:59:558622)
	at async p.updateTestSettings (c:\Users\vting\.vscode-insiders\extensions\ms-python.python-2021.9.1121560038-dev\out\client\extension.js:59:558249)] {
  code: 'FileNotFound'
}

Thanks for the feedback. Added a prompt in this PR #16953

Verification steps:

Create a new folder
Make sure you have "python.experiments.optInto": ["All"], in your user settings. If not, add it and reload VS Code.
Open the new folder, and create a python file named pytest_test.py with the following content

def test_passing():
    assert 42 == 42

def test_failure():
    assert 42 == -1

Run the Test: Run All Tests command
Make sure that a "No test framework configured." notification appears


Requested PR Changes

It's easier to open a PR rather than use suggested review changes. These are my recommended changes for serenity-rs/serenity#2071. They include changing to take a Impl Into<Cow> when implementing From<T> for AttachmentType, and also changing AttachmentType::Bytes.data to a Vec<u8>, partly because the API change necessitates it (see my review comments on the above PR), but also because I seriously doubt how common using &'static [u8] would be over simply reading from a path or file, and taking a hit to API ergonomics to accommodate that isn't worth it imo.

The reason this has gone unreviewed is because I simply don't like the weird implicit nature of this API, it seems too magic and kinda an abuse of taking impl Into. This is why I personally mentioned entirely removing the weird From impls, but otherwise I don't massively have motivation to work on this and don't want it merged upstream under my name.

Ok, I'll close this then.


connection refused due to IPV6 AddrInfo

On my environment (a Docker container), attempting to connect with withMonarchConn "localhost" 1978 fails with the following error:
connect: does not exist (Connection refused)

The failure is caused by attempting to use IPV6 and can be avoided by simply commenting out the IPV6 line for localhost in /etc/hosts.
Though it is not a particularly clean solution, a possible work-around would be to prioritize IPV4 over IPV6 instead of using the first of the returned AddrInfo list as is currently done.  I have done so before as follows:
target :: (a -> Bool) -> [a] -> Maybe a
target p xs@(h:_) = maybe (Just h) Just $ find p xs
target _ _        = Nothing

prioritizeIPV4 :: AddrInfo -> Bool
prioritizeIPV4 ai = case addrAddress ai of
                      (SockAddrInet _ _) -> True
                      _                  -> False

FYI: For the project that uses the above code, it was determined that IPV4 is strictly required.  I removed the target function, renamed prioritizeIPV4 to isIPV4, and simply use take 1 (filter isIPV4 ais), so that the result is either a list containing a single valid AddrInfo or an empty list, indicating that no valid AddrInfo is available.
What is the best way to handle such issues in Monarch?  Perhaps a version of withMonarchConn that takes an AddrInfo would be the most user-friendly, allowing users to select an AddrInfo as required.

I ran into this same exact problem when trying to use Docker.  I also went with the solution of commenting out the IPv6 line in /etc/hosts, although this doesn't feel like a very clean solution.


Empty statements in import statement are not parsed correctly

I ran into an issue parsing files with dangling semicolons after an import statement. The java compilers I've tested seem to all accept these as valid syntax but plyj doesn't parse them correctly. I don't understand the codebase well enough to make the fix myself but the issue can be illustrated by modifying the import unit test in compilation_unit.py to something like this:
def test_import(self):
        m = self.parser.parse_string('''
        import foo;;
        import foo.bar;
        ''')
        self.assertEqual(m.import_declarations,
                         [model.ImportDeclaration(model.Name('foo')),
                          model.ImportDeclaration(model.Name('foo.bar'))])

Note the extra semicolon after import foo. A 'real' example of this syntax can be found in AOSP's VideoDumpActivity.java

What compilers did you test? OpenJDK's javac accepts it, Eclipse on which the grammar used by plyj does not. This looks like a compiler bug in OpenJDK to me. The grammar does not allow for empty statements in the import section. A single semicolon is parsed as an empty type declaration. Since you cannot have imports after a type, this does not parse. For some reason, the Android guys seem to have implemented the wrong behavior as well.
So the 'real' fix for this issue would be to go to every compiler dev that allows this and demand they reject it. Implementing the wrong behavior is far from straight forward; I am not going to do it.

I've tested this with OpenJDK 6 and 7. I don't really use Eclipse, but I see I do get a red squiggly line if I try to add a dangling semi-colon in there.
I agree that implementing wrong behavior is no good. However, I've also tested with the Oracle compilers for 6, 7, and 8. The syntax has passed each javac I've run it through. I think this lends the syntax a bit more legitimacy. The JLS has no mention of a dangling ';' yet the compiler (reference implementation?) produced by the same company accepts it.
Because all major Java compilers (OpenJDK and Oracle) appear to accept the syntax, I think I'll at least make the change locally. Thanks!

Glad you like it.
I know there is always the issue of correctness vs pragmatism. The behavior is wrong as per the spec and the OpenJDK developers are or at least have been aware of this (cf. the mailing list entry I linked in my previous comment). This is not the first time I encounter something that javac did wrong Eclipse's compiler did right.
I am not 100% opposed to have a lax mode in plyj that allows this sort of common but wrong code. But like I said, this is not trivial for me as it introduces ambiguities that have to be resolved (an intermediate semicolon can suddenly be either an empty import statement or an empty type declaration) and to be frank this goes above my capabilities. If someone can implement this in a non-intrusive way, I'd gladly include it.


PowerShell via Terminal blocks capital letters

Environment
Windows build number: Microsoft Windows [Version 10.0.19041.388]
Windows Terminal version (if applicable): 1.1.2021.0

Steps to reproduce
Try to print capital letters or Paste something like this in Powershell: echo $Env:ProgramFiles
Expected behavior

Actual behavior
Capital letters don't print

Will capital letters be printed if you try using tab autocomplete?
Does setting "experimental.input.forceVT": true, in your settings fix this?

I didn't try to use tab
Nope, i dont use any exp features
In cmd capital letters were working fine
PS version: 5.1.19041.1

Sorry, now capital letters work. I don't know how and why.
I think it could be closed.

Great, thanks for following up!

Hi, i stuck again with same problem!

I have same problem :/

Same problem here.
Appears randomly, only tab reopening fixes the issue.

I have the same problem sometimes. I didn't find out why and when it happens but I just switch input language in the powershell console and paste works fine.

Same issue on every windows PC which I have and had. You can't copy-paste capital letters into PowerShell, they will be deleted. Also you can input capital letter only by using Caps Lock. Shift + key combination doesn't work neither.

I have the same issue.
If I close this PS window and open it again it works fine.

Same issue. No capital letters using shift (caps lock works though).
Sometimes restart the app works, sometimes does not.

Same

@lego963 reopen please

@ivanstepanovftw What version of PsReadline are you using? From elsewhere in the repo: https://github.com/microsoft/terminal/issues/9450, https://github.com/PowerShell/PowerShell/issues/10794

Also the issue was fixed in latest PSReadline preview version (2.0 Beta.5) and you can install it.

1.11.2921.0 version from Windows Store is affected with capital Cyrillic letters.
Latin letters works fine

I checked out all standard russian cyrillic layout.
I can't type capitals which I kept lowercase on screenshot below

@schebotar As described in https://github.com/PowerShell/PowerShell/issues/10794, you need to update PsReadline. This will be present in all Terminal versions, because it's a PsReadline bug.
You can find your current PsReadline version with
$(Get-Module PSReadLine).Version


Open XML SDK Productivity Tool has been removed from download

Open XML SDK Productivity Tool has been removed from download
We were using the open xml sdk productivity tool to compare a before and after version of a slide in PowerPoint and then to generate the code to make the change. This saved us so much time and ramp up on the sdk. The scenario is we were generating a daily PowerPoint briefing as part of a daily process. we are creating highlight event slides and summary slides, and therefore adding images and text, changing formats, removing and adding shapes etc. Beyond us just doing this once and build time, we see the users of this solution making their own configuration changes to this briefing deck. As such they would get huger value from a code generator. IF there is any way to get access to the tool, or even better an updated one, it would be very useful to the users of this system.

I also still use Open XML SDK 2.5 Productivity Tool and have plan check DocxToSource. Did you use it? It is not yet a good alternative for PowerPoint document investigation?

Hi,
DocxToSource is good for spreadsheets right now and it can do presentations and wordprocessing documents too but the latter 2 document formats are pretty complex and there may still be bugs present for those situations.
Also, as an FYI, the main dependency of DocxToSource  is Serialize.OpenXml.CodeGen which is where the code generation for the document actually occurs.  In theory, you could use this library to generate your own source code for your documents as needed.  But please keep in mind that any code generation issues you are seeing in DocxToSource, you will likely see in Serialize.OpenXml.CodeGen as well.
Thanks,
Ryan

On the Microsoft DevDays Redmond 2021 Online, @AlfredHellstern explained that the Productivity Tools were removed after a security review. They might become available for download again, if there is enough interest. In the same session, @mikeebowen demoed a very cool Visual Studio Code extension that might be a replacement, unless you need the C# code generation feature.

This is a bummer. Setup a new PC and can't find the download anywhere. I heavily relied on this. Still have old computer to use though but where can I cast my vote?

The Open XML 2.5 Productivity Tool was recently removed from the Microsoft Download Center because of concerns with SHA-1 signatures. There have been many requests for it in the meantime, so we’re making it available again with a SHA-256 signature for the MSI container (while the files inside the MSI are still signed with SHA-1). You can find it here on GitHub.
This MSI is provided AS IS, to address the needs of developers wanting to use the Productivity Tool to get a quick start on generating Open XML 2.5 source code. It has not been updated to the latest version of the SDK.