Could not resolve all dependencies for configuration ':app:_debugApkCopy'

Description:

I'm getting the following when trying to run my project on Android:
$ react-native run-android
Scanning folders for symlinks in C:\[project path]\ReactNative_PushNotifications\oneSignalApp\node_modules (145ms)
Starting JS server...
Building and installing the app on the device (cd android && gradlew.bat installDebug)...
Incremental java compilation is an incubating feature.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugApkCopy'.
   > Could not find any matches for com.google.firebase:firebase-iid-license:[10.2.1,12.1.0[ as no versions of com.google.firebase:firebase-iid-license are available.
     Required by:
         oneSignalApp:app:unspecified > oneSignalApp:react-native-onesignal:unspecified > com.onesignal:OneSignal:3.10.1 > com.google.firebase:firebase-messaging:11.0.4 > com.google.firebase:firebase-iid:11.8.0
   > Could not find any matches for com.google.firebase:firebase-common-license:[10.2.1,12.1.0[ as no versions of com.google.firebase:firebase-common-license are available.
     Required by:
         oneSignalApp:app:unspecified > oneSignalApp:react-native-onesignal:unspecified > com.onesignal:OneSignal:3.10.1 > com.google.firebase:firebase-messaging:11.0.4 > com.google.firebase:firebase-common:11.8.0

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 40.528 secs
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html

Environment

react-native 0.55.4
react-native-onesignal 3.2.7

Steps to Reproduce Issue:

I've installed and linked the react native SDK
I've added the code to my Manifest file and build.gradle file as recommended in the docs

Obs.: this project was a test I made using OneSignal and it was working until last week, so I guess the problem may have to do with some third party update

Hello, this issue with me to, another minutes i execute and work, but another time dont work.

resolved?

same here.
"react": "16.3.1",
 "react-native": "0.55.2",
 "react-native-onesignal": "^3.2.7"

Can you try updating to the latest 0.12.1 version of the OneSignal-Gradle-Plugin? An update was just released this week which might fix this issue.
https://documentation.onesignal.com/docs/react-native-sdk-setup#section-adding-the-gradle-plugin
Also double check you have setup this plugin in the correct build.gradle in the correct spot to make sure it is running.
Please attach a project reproducing the issue if this does not help.

I double checked the build.gradle as requested and everything seems fine. Also tried updating the gradle plugin but the error is still happening. I've created a repo with a copy of my project just remember to add you OneSignal AppID on App.js before testing.
Here it is:
https://github.com/Jvictor97/OneSignalTesting

Same issue here.
I created this project and everything was working last month, but now isn't work anymore.
Error message: Could not find any matches for com.google.firebase:firebase-iid-license:[10.2.1,12.1.0[ as no versions of com.google.firebase:firebase-iid-license are available.

I can solve it by adding maven url to android/build.gradle repositories:
maven {
            url 'https://maven.google.com'
        }

The full code:
allprojects {
    repositories {
        maven {
            url 'https://maven.google.com'
        }
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
}

Now it is building normally, but don't registering user to Onesignal's App.

@Jvictor97 @iLevye maven { url 'https://maven.google.com' } or google() should be added automatically by react native. It is needed to get any version of Google Play services or Firebase released in the last month. It is also already in our example project.
https://github.com/geektimecoil/react-native-onesignal/blob/3.2.7/examples/RNOneSignal/android/build.gradle#L19


make actions pipe their return values into next actions

I'm not sure about that name, o.value is a little vague, but everything else that comes to mind doesn't feel right as well.

@jetmind what do you think about o.input?

@piranha  I'm ok with o.input. It reminds me about unix pipes and stdin/stdout, so it might be a good analogy.


Make methods that can't be overridden final, inline unneeded ones

This should serve to further reduce the amount of overhead associated with this library.

This makes the parts of the API that get extended more clear in regards to what behavior is required (abstract), and what behavior can not be overridden (final). In any application that does not override handle*, this is a trivial change.


Specular/Gloss textures

why renderer doesnt support Specular/Gloss textures?
is it possible to implement it?

This was deprecated, see the archived extensions:
https://github.com/KhronosGroup/glTF/blob/main/extensions/README.md#archived-extensions

is it really to convert this crenes to metallic/ roughness?

The extension KHR_materials_pbrSpecularGlossiness will be finally supported.

but not rendered well by vk_gltf_renderer.
can it be fixed?

I try to open SpecGlossVsMetalRough test scene

Can you please try again. The projects were updated today.
You should now see:

everything is ok now. thank you!


Footer not working?

I'm using JazzyListView with DobList. Apart from the following, I'm really happy with this combination.
For some reasons, DobLists loading footer doesn't appear at all.
The footer is added correctly by DobList (ListView.getFooterViewsCount() is increased by one after adding it).
It's set to be visible from the start of requesting more products to the time when the results arrive.
But it doesn't appear at all.
Could this be a bug in JazzyListView?

The footer is just treated as another view to animate. It will follow the same animation as every other list item.  I just tried with a footer, and that was my experience.  I'm not sure what DobList is doing differently


Fix cache credential look-up.

Changes:

Fix cache credential look-up.
Add unit tests.

Codecov Report

Merging #5484 (3e5cdb8) into dev (cbf8b83) will increase coverage by 0.48%.
The diff coverage is 100.00%.

Flag
Coverage Δ

*Carryforward flag

msal-angular
96.50% <ø> (?)

msal-browser
86.49% <ø> (ø)

msal-common
85.33% <100.00%> (?)

msal-node
83.33% <ø> (?)

msal-node-extensions
76.03% <ø> (ø)

Carriedforward from cbf8b83

msal-react
94.68% <ø> (?)

node-token-validation
88.88% <ø> (?)

*This pull request uses carry forward flags. Click here to find out more.

Impacted Files
Coverage Δ

...msal-common/src/cache/entities/CredentialEntity.ts
95.55% <100.00%> (ø)

lib/msal-angular/src/msal.module.ts
100.00% <0.00%> (ø)

lib/msal-common/src/authority/AuthorityFactory.ts
100.00% <0.00%> (ø)

lib/msal-common/src/response/ResponseHandler.ts
73.23% <0.00%> (ø)

lib/msal-common/src/crypto/PopTokenGenerator.ts
100.00% <0.00%> (ø)

...mmon/src/telemetry/performance/PerformanceEvent.ts
100.00% <0.00%> (ø)

lib/msal-common/src/account/ClientInfo.ts
100.00% <0.00%> (ø)

lib/msal-node/src/crypto/CryptoProvider.ts
76.47% <0.00%> (ø)

...mmon/src/cache/entities/AuthorityMetadataEntity.ts
100.00% <0.00%> (ø)

...l-common/src/error/InteractionRequiredAuthError.ts
94.73% <0.00%> (ø)

... and 113 more


Things to do to catch up with boostc

[ ] Implement device_index property for Device class.
[x] Implement platform-specific Led instances and color functions.
[ ] Implement measured_amps and measured_volts properties for PowerSupply class (the names in the generated doc seem to be messed up).
[ ] Implement Button class for ev3 buttons.
[ ] Implement Sound class.
[ ] Implement LCD class.
[ ] Implement RemoteControl class.
[ ] Implement steering function.

What would you like me to do? Where would you like help? Apart from the steering function I'd like to make a MotorPair class, so you can m_pair.run_forever(direction=-50, speed_sp=75)

All of these are pretty straightforward to implement except for Button and LCD class. Both of these need low-level access to input/output devices, and both of them probably belong to EV3 platform (are there any buttons on RPI except for full-sized USB keyboard? Is there an LCD screen on RPI? Does it work through framebuffer?).
I was going to try and finish Led class later this week. Feel free to choose any other task. By the way, since you are running RPI, can you please show the contents of /sys/class/leds folder?

Will do.
I'm still unclear on how exactly you want to divide the work.

I think @ddemidov is going to work on the LED class implementation we talked about. @antonvh, could you send him the contents of your rPi /sys/class/led directory please?
@antonvh - would you like to try to fill out the Button or Sound classes?
Coming from the Lua world, I am in favour of "mechisms, not policy" - what that means for us is implementing a minimal feature set for each class that allows users to build what they need on top of it.
For Sound, let's consider starting with a basic tone API (frequency, duration, volume as kwargs) and then maybe add specific sound file support as an add-in. We may want to also consider being able to send a sequence of tones as a list of tuples and playing to completion. Do we wait for the tone to complete before returning, do we add a function to tell us if the tone is playing or the driver is idle? etc...
You could also work on the power supply or remote control API. I might give the remote control API a try since I used it for the DrawString bot :-)

Note that the Sound class has just a handful of methods in C++/boostc bindings.
Sound::beep() is an alias for Sound::tone(1000, 100), Sound::tone(freq, dur) makes a noise on the given frequency for the given duration (and it uses sysfs file, so should be simple to implement). `Both of the methods are asynchronous.
Sound::play() is just a wrapper around system call to aplay utility (I think patched by @dlech to better work in ev3 system). It may be synchronous or asynchronous depending on user flag.

Just to be clear, it would be best if we can minimize the functions in each class, and specify them in spec.json so that bindings for other languages can be scored against how much of the spec they implement.

What do you suggest to put into spec.json, except for may be list of method names (and may be parameters)? I don't think the methods for, say, Sound or LCD could be completely autogenerated in each of the bindings from a universal spec.
There is also wrapper-specification.md, which is partly generated from spec.json, but also contains some human-parseable statements (like description of the above methods).

I will work on the Button first and later try Sound. I couldn't find any specs. I will try to emulate boostc as well as possible.

Found @dlech's comment about framebuffer implementation in python: https://github.com/ev3dev/ev3dev/issues/404#issuecomment-144135010

anton@ev3dev-rpi1:~$ ls /sys/class/leds
brickpi1:blue:ev3dev  brickpi2:blue:ev3dev  led0  led1
anton@ev3dev-rpi1:~$ ls /sys/class/leds/brickpi1:blue:ev3dev/
brightness  device  max_brightness  subsystem  trigger  uevent
anton@ev3dev-rpi1:~$ cat /sys/class/leds/brickpi1:blue:ev3dev/brightness
255

On 19 Oct 2015, at 11:21, Denis Demidov<EMAIL_ADDRESS>wrote:
/sys/class/leds

I've already implemented brickpi leds (@dlech have me the info yesterday). Thanks anyway!

FYI: The APIs are realative easy to compare by doing a pprint(dir(ev3dev)) with the respective import:
here is the pure one: https://gist.github.com/ensonic/2f00834f8213ae2df81b
and the boost one: https://gist.github.com/ensonic/331f0f57c10abe33cf4c

Thanks, there is a lot of noise in boostc version (due to the need to work around fixed c++ interface), but this is very helpful.
Since you are going to work on sed script, I could push changes to boostc version tonight with renamed classes. Would that be ok?

@ddemidov +1

@ensonic, I've pushed the changes and uploaded binary packages to PyPI. I tried to check that these work, but I can not guarantee that I did not break anything. Bug reports are welcome :).

@rhempel, do we still want to include the steering() function implementation? Its very easy to implement, and that's why I would not feel bad asking users to put it in their own code.

Re Sound implementation:
The C++ bindings use /sys/devices/platform/snd-legoev3/tone do control the beeper. @dlech, will there be similar devices on brickpi/pistorms? If yes, what are their names?

PiStorms does not have any sound devices. EVB does though. However, my personal preference is to use the existing kernel interface for sound via linux input devices with capability EV_SND. /sys/devices/platform/snd-legoev3/tone is a "back door" and comes from @fdetro to make it a bit easier to use, but is exclusive to the EV3.
The disadvantage of using ioctls though is described in the Ioctl Wackiness section in the man page for beep. You will get a permission error if the program is not running on the active virtual terminal unless the program is run with CAP_SYS_TTY_CONFIG.
So, I guess it depends on if you want to go for no surprises or force people to learn something about Linux.
Another option would be to patch our kernels to not check permissions for KIOCSOUND and KDMKTONE. Although, probably better not mess with the kernel.
Or, you can call the beep command which has the stick bit set, so will work from anywhere.

My vote re steering is let the users handle it if needed - we can certainly provide sample code based on the API - and that would be a GoodThing (tm)

Use the back door device for now (I think) it gives users the flexibility they will expect - I vote for fewer surprises and no requirement to learn much about Linux

I thought about using beep command though system call. It makes implementation easier and and also in line with speak() and play() methods, which also use system to call espeak and play commands correspondingly.

I was going to say that should probably turn it into a new sysfs class then instead of relying on platform-specific paths, but @ddemidov makes a good point that other sound functions are system calls anyway. The beep command has a nice "language" that lets you construct a whole song in a single command if you want. We could just pass this string directly to beep. It also makes the choice of sync/async playback easier by using a separate process.

I read up on beep and now I agree - let's do it with a system call


Use Docca jam module

This takes advantage of the Jam module that was added to Docca's develop branch.

Everything that is already done by the Docca's Jam module was removed from doc/Jamfile.
There's no need now to copy reference.qbk into source directory, so the corresponding gitignore line was removed.
Doxygen configuration file is also generated by the Docca's Jam module. Relevant Doxygen parameters are set up via <doxygen:param> properties. As a result, doc/source.dox was removed, the parameters that differ from Doxygen defaults were put in doc/Jamfile.

This is pretty nice

This works for me locally, so 👍🏻 merge as you wish. We can do the merges to master after the release.


feat(allocator): add AsArenaRef trait

Adds a new trait AsArenaRef<'alloc, T> that allows AsRef-like borrows for &'alloc T instead of &T. See #6873 for details.

#6876  👈
main

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

Join @DonIsaac and the rest of your teammates on  Graphite

Please see my comment https://github.com/oxc-project/oxc/issues/6873#issuecomment-2436567652. Hopefully this API should not be required.


To many patches after tiling (for flood modelling interest)

After tiling, the destination folder contains all possible patches from the raster image, event when there is not ground truth (GT) labels matching (< min_annot_perc). Flood happens close to water bodies, and  in general, flood extensions represents a small percent of surface from the original images. Therefore, majority of patch have no GT match.
Should a cleaning process be implemented into DGL (automatically or not) or as an independent script?

Do you mean that the 'min_annot_perc' does not filter data with your dataset? I'm not sure I understand the issue here.


Cannot find any gallery id if title contains only English letters

Description of bug

So if i try to find any gallery not in English hitomi.getGalleryIds working fine, but finds nothing if title contains only English letters
Screenshots

Doesn't find anything (title: 'SACRED SAGA Postcard Set' //id - 2892056)

Works fine (title: '蝈蝈的概念艺术 商业游戏概念设计流程解析' //id - 2726680)

Environment

OS: Windows 10
Version

NodeJS: 22.4.0
Package: 8.0.2

I just published a new version, and I hope it works as you expected.
If there are any problems, please let me know so that I can fix them.
As always, thanks for contributing to this repository.


Syncer: Remove BtcAddressAddendum script pubkey field

Un-nests the address in the BtcAddressAddendum from its Option. This reduces the code complexity a bit and allowed us to get rid of another unwrap.

Codecov Report

Merging #634 (af6ac0c) into main (afc56f2) will decrease coverage by 0.0%.
The diff coverage is 11.1%.

@@           Coverage Diff           @@
##            main    #634     +/-   ##
=======================================
- Coverage    9.4%    9.4%   -0.0%
=======================================
  Files         32      32
  Lines      10490   10476     -14
=======================================
- Hits         982     980      -2
+ Misses      9508    9496     -12

Impacted Files
Coverage Δ

src/swapd/runtime.rs
0.0% <0.0%> (ø)

src/swapd/syncer_client.rs
0.0% <0.0%> (ø)

src/syncerd/bitcoin_syncer.rs
0.0% <0.0%> (ø)

src/syncerd/syncer_state.rs
83.7% <100.0%> (+0.1%)
:arrow_up:

src/syncerd/types.rs
31.3% <100.0%> (-0.5%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Trying to use this but i'm getting NodeWallet not constructor

const wallet = new NodeWallet(Keypair.generate()); //note this is not used
this errors with
const wallet = new NodeWallet(Keypair.generate()); //note this is not used
^
TypeError: NodeWallet is not a constructor
unsure what i'm doing wrong.

Dealing with same error

did you figure any solutions?

Can you show me the contents of nodewallet.d.ts ? Do you just clone the project and npm i it?
node -v
v20.10.0

Yes followed all instructions, building custom script but running in to this issue.
Tried a workaround and ran into type error that Anchor_Wallet was missing.

for me, i didnt use commonjs within my tsconfig, that fixed it.

So the fix for the library might be using es2022 for the module and the target, which ill make the change


:bug: Update state.go (#987

Remove print leftover

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

nooo, wtf is changing the title when I merge crap

we broke github! :D

refined github was doing that, sorry about that :(


Update "Game size" every time window is resized

Currently you have to manually input values, but I think it would be more user-friendly for the values to be automatically updated whenever user resizes the client. Would also eliminate the need to search for the option, unless you want a specific size.

Fixed in https://github.com/runelite/runelite/commit/ce696f1b2ef04c4f86d6e17087197b739abd1b5f


Panics at larger datasets

I have a query requesting 10 000 rows of a 21 column dataset (only varchar(255), and f64 and i32 fields. I get the error message:
hread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Canceled', libcore/result.rs:945:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.

If I only request 1000 rows the query completes successfully. Do you have any idea what's causing the problem?
Rust version: stable 1.29.0
I had to load Tiberius this way due to beeing on a Mac, and not having a certificate:
tiberius = { version = "0.3.0", default-features=false, features=["chrono"] }

It panics when loading more than 3108 rows to be exact.

After investigating a bit, I can't see any pattern to this. It seems like it panics rather randomly, i.e. it might panic on row 3108, but if I query for TOP(3000) on rows > 3100 it panics on row 3360. Then if I set it to query for row > 3300 it doesn't panic at all... The only pattern I see is that it happens after parsing some hundred or some thousand rows on some random combination of events. But once it panics it panics on the same row every time... I can't figure this out.

Ok, so after polling the stream and printing the errors I get a more detailed response:
Protocol("floatn: length of 192 is invalid")
Protocol("floatn: length of 19 is invalid")
thread 'main' panicked at 'not yet implemented', /Users/carlfredriksamson/.cargo/registry/src/github.com-1ecc6299db9ec823/tiberius-0.3.0/src/types/mod.rs:326:34
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Could be, but if so, unsopported datatypes would be really nice to know in advance :)

Scratched my head on this one for quite some time, and it should panic on the first record then? The panics seemed rather erratic when I tested different selections of the dataset...

Here is the output of printing a row object, it shows the structure of the data transmitted. Note that this was parsed without a problem.
QueryRow(TokenRow { meta: TokenColMetaData { columns: [MetaDataColumn { base:
BaseMetaDataColumn { flags: CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(Datetimen, 8,
None) }, col_name: "Date" }, MetaDataColumn { base: BaseMetaDataColumn { flags: CDF_NULLABLE
| CDF_UPDATEABLE, ty: VarLenSized(Floatn, 8, None) }, col_name: "Name1" }, MetaDataColumn {
base: BaseMetaDataColumn { flags: CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(Floatn, 8,
 None) }, col_name: "Name2" }, MetaDataColumn { base: BaseMetaDataColumn { flags:
CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(Floatn, 8, None) }, col_name: "Name3" },
MetaDataColumn { base: BaseMetaDataColumn { flags: CDF_NULLABLE | CDF_UPDATEABLE, ty:
VarLenSized(Floatn, 8, None) }, col_name: "Name4" }, MetaDataColumn { base: BaseMetaDataColumn
{ flags: CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(Floatn, 8, None) }, col_name: "Name5" },
MetaDataColumn { base: BaseMetaDataColumn { flags: CDF_NULLABLE | CDF_UPDATEABLE, ty:
VarLenSized(Floatn, 8, None) }, col_name: "Name6" }, MetaDataColumn { base: BaseMetaDataColumn
 { flags: CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(Floatn, 8, None) }, col_name: "Name7" },
 MetaDataColumn { base: BaseMetaDataColumn { flags: CDF_NULLABLE | CDF_UPDATEABLE, ty:
VarLenSized(Floatn, 8, None) }, col_name: "Name8" }, MetaDataColumn { base: BaseMetaDataColumn
{ flags: CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(Floatn, 8, None) }, col_name: "Name9" },
MetaDataColumn { base: BaseMetaDataColumn { flags: CDF_NULLABLE | CDF_UPDATEABLE, ty:
VarLenSized(Floatn, 8, None) }, col_name: "Name10" }, MetaDataColumn { base: BaseMetaDataColumn
{ flags: CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(Floatn, 8, None) }, col_name: "Name11" },
 MetaDataColumn { base: BaseMetaDataColumn { flags: CDF_NULLABLE | CDF_UPDATEABLE, ty:
VarLenSized(Intn, 4, None) }, col_name: "Name12" }, MetaDataColumn { base: BaseMetaDataColumn {
 flags: CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(BigVarChar, 15, Some(Collation { info:
13632518, sort_id: 0 })) }, col_name: "Name13" }, MetaDataColumn { base: BaseMetaDataColumn {
flags: CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(BigVarChar, 10, Some(Collation { info:
13632518, sort_id: 0 })) }, col_name: "Name14" }, MetaDataColumn { base: BaseMetaDataColumn {
flags: CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(BigVarChar, 15, Some(Collation { info:
13632518, sort_id: 0 })) }, col_name: "Name15" }, MetaDataColumn {base: BaseMetaDataColumn {
flags: CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(Floatn, 8, None) }, col_name: "Name16" },
 MetaDataColumn { base: BaseMetaDataColumn { flags: CDF_NULLABLE | CDF_UPDATEABLE, ty:
VarLenSized(Floatn, 8, None) }, col_name: "Name17" }, MetaDataColumn { base: BaseMetaDataColumn
{ flags: CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(Intn, 4, None) }, col_name: "Name18" },
 MetaDataColumn { base: BaseMetaDataColumn { flags: CDF_UPDATEABLE_UNKNOWN, ty:
FixedLen(Int4) }, col_name: "Name19" }, MetaDataColumn { base: BaseMetaDataColumn { flags:
CDF_NULLABLE | CDF_UPDATEABLE, ty: VarLenSized(Intn,4, None) }, col_name: "Name20" }] },
columns: [DateTime(DateTime { days: 42004, seconds_fragments: 0 }), F64(0.0), F64(0.0), F64(5.0),
 F64(92.35), F64(18.47), F64(0.0), F64(0.0), F64(0.0), F64(5.0), F64(92.35), F64(100.0), I32(5),
String("10"), String("XXX040"), String("XXX040"), F64(4.01), F64(10.44), I32(20150102), I32(99999),
 None] })

2015-01-03 00:00:00.000
0
0
5
29.35
5.87	2
11.74
40
3
17.61	60
27
53
NULL
NULL
NULL
NULL
20150103
33605
NULL

It seems to be this combination of data that causes the panic, this is the 3109th row. However, I can se more rows that looks like this that don't panic so I can't see the pattern visually...

Try selecting all your data with order by primary key. See where it panics and if it's consistent while selecting various top x rows, or inconsistent like before.

OK, so I tried this, this is what happens. Basically I have this query:
select top(4000) * from table t1 where id > 0 order by id
I print every ID to see where it panics:
So the ID's in this table starts at 30497:
ex1: id > 0 => panics at 33604 (every time)
ex2: id > 30497 => doesn't panic (wow, should be the same as id > 0)
ex3: id > 30500 => panics at 31411 (every time)
ex4: id > 31000 => panics at 31730 (every time)
ex5: id > 32000 => panics at 32440 (every time)
ex6: id > 32400 => panics at 33939 (ever time)

As you see, there is no pattern to this, the only one that didn't panic before 4000 rows where fetched was ex1 but if I increase the amount of rows to fetch it panics at 35434...

Just adding information here as I try to find out what's causing the panic.
I tried to select every single column + Id and see if I could locate where the panic was, but when I select 1 and 1 column together with the Id nothing is panicing, so it seems to either be.
So I have no idea on how to help this further really. It doesn't seem to be related to corrupt data or anything like that.
It does seem to be predictible (I've tried now on both windows and mac) in that it panics at Id 33605 every time when using the query in "ex1" above (and the same with "ex2" on two different operating systems), but it's not after a certain amount of records or any clear pattern.
I checked the text fields to see if any of them might have a big amount of data that might vary, but the text fields are varchr(10), varchar(15) and varchar(10).
I thought I for completeness will give the column types for the table in the database if anyone find a way to replicate this:

Column
Data type
Allow nulls

row1
datetime
Checked

row2
float
Checked

row3
float
Checked

row4
float
Checked

row5
float
Checked

row6
float
Checked

row7
float
Checked

row8
float
Checked

row9
float
Checked

row10
float
Checked

row11
float
Checked

row12
float
Checked

row13
int
Checked

row14
varchar(15)
Checked

row15
varchar(10)
Checked

row16
varchar(15)
Checked

row17
float
Checked

row18
float
Checked

row19
int
Checked

row20
int
Unchecked

row21
int
Checked

Also you might wanna try selecting everything again, but this time check for nulls on nullable columns and replace them with default values (ie. try IFNULL(col, default_val)).

@brokenthorn Ok, so I tried what you suggested (other than I had to rewrite the sql when to:
select * from table t1 where t1.id >= 34497 or t1.id <= 30500 order by t1.id or no records showed up :) And I rewrote so that I specified each column.
Now it panics on Id: 35822.
So I also tried your second suggestion, but got this:
thread 'main' panicked at 'unsupported fixed type decoding: Float8'

@brokenthorn Finally!! I got somwhere!
OK removing 1 and 1 columd didn't work, BUT when I removed the two varchar(15) columns - NO PANIC. (I'll have to triple check that those in fact are the two varchar 15 columns or if one of them is the VARCHAR 10 column, but I'm pretty shure).
So if I'm not mistaken, there seems to be a correlation between parsing VARCHAR(15) data and the panic, VARCHAR(10) seems to work fine...

Could it be related to this in types/mod.rs?

@brokenthorn Ok, so I tried what you suggested (other than I had to rewrite the sql when to:
select * from table t1 where t1.id >= 34497 or t1.id <= 30500 order by t1.id or no records showed up :) And I rewrote so that I specified each column.
Now it panics on Id: 35822.
So I also tried your second suggestion, but got this:
thread 'main' panicked at 'unsupported fixed type decoding: Float8'
So it seems that providing a fixed type doesn't work. I tried to add many decimals but it still reads it as Float8

Sorry about the numbers. I got them wrong... must be tired.

Could it be related to this in types/mod.rs?

Shouldn't be. Both varchar and nvarchar are implemented. My guess is that you have invalid unicode characters in the data. What are your database and/or column collations?

I'll see if I can get more info about the setup, but it works nice on pymssql driver, and Microsofts drivers, so I have a feeling it's not the data... Visually inspecting a couple of hundred rows show all of them in this pattern:

col1
col2

K11
KON040

Uppercase mix of normal alphanumeric characters, no language specific characters.

So I ran the last example with backtrace and got this. Hope that helps to figure out whats wrong:
thread 'main' panicked at 'invalid token received 0x0', /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/tiberius-0.3.0/src/transport.rs:413:29
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::print
             at libstd/sys_common/backtrace.rs:71
             at libstd/sys_common/backtrace.rs:59
   2: std::panicking::default_hook::{{closure}}
             at libstd/panicking.rs:211
   3: std::panicking::default_hook
             at libstd/panicking.rs:227
   4: <std::panicking::begin_panic::PanicPayload<A> as core::panic::BoxMeUp>::get
             at libstd/panicking.rs:475
   5: std::panicking::continue_panic_fmt
             at libstd/panicking.rs:390
   6: std::panicking::try::do_call
             at libstd/panicking.rs:345
   7: tiberius::transport::TdsPacketId::next
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/tiberius-0.3.0/src/transport.rs:413
   8: <tiberius::transport::TdsTransport<I>>::read_token::{{closure}}
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/tiberius-0.3.0/src/transport.rs:463
   9: <tiberius::query::QueryStream<I> as futures::stream::Stream>::poll
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/tiberius-0.3.0/src/query.rs:148
  10: <tiberius::stmt::QueryResult<S> as futures_state_stream::StateStream>::poll
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/tiberius-0.3.0/src/stmt.rs:304
  11: <futures_state_stream::ForEach<S, F> as futures::future::Future>::poll
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-state-stream-0.1.1/src/lib.rs:1009
  12: <futures::future::chain::Chain<A, B, C>>::poll
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.24/src/future/chain.rs:32
  13: <futures::future::and_then::AndThen<A, B, F> as futures::future::Future>::poll
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.24/src/future/and_then.rs:32
  14: <futures::task_impl::Spawn<T>>::poll_future_notify::{{closure}}
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.24/src/task_impl/mod.rs:314
  15: <futures::task_impl::Spawn<T>>::enter::{{closure}}
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.24/src/task_impl/mod.rs:388
  16: futures::task_impl::std::set
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.24/src/task_impl/std/mod.rs:78
  17: <futures::task_impl::Spawn<T>>::enter
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.24/src/task_impl/mod.rs:388
  18: <futures::task_impl::Spawn<T>>::poll_future_notify
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.24/src/task_impl/mod.rs:314
  19: futures::task_impl::std::<impl futures::task_impl::Spawn<F>>::wait_future::{{closure}}
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.24/src/task_impl/std/mod.rs:231
  20: futures::task_impl::std::ThreadNotify::with_current::{{closure}}
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.24/src/task_impl/std/mod.rs:478
  21: <std::thread::local::LocalKey<T>>::try_with
             at /Users/travis/build/rust-lang/rust/src/libstd/thread/local.rs:294
  22: <std::thread::local::LocalKey<T>>::with
             at /Users/travis/build/rust-lang/rust/src/libstd/thread/local.rs:248
  23: futures::task_impl::std::ThreadNotify::with_current
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.24/src/task_impl/std/mod.rs:478
  24: futures::task_impl::std::<impl futures::task_impl::Spawn<F>>::wait_future
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.24/src/task_impl/std/mod.rs:228
  25: futures::future::Future::wait
             at /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.24/src/future/mod.rs:299
  26: myprogram::main
             at src/main.rs:47
  27: std::rt::lang_start::{{closure}}
             at /Users/travis/build/rust-lang/rust/src/libstd/rt.rs:74
  28: std::panicking::try::do_call
             at libstd/rt.rs:59
             at libstd/panicking.rs:310
  29: panic_unwind::dwarf::eh::read_encoded_pointer
             at libpanic_unwind/lib.rs:105
  30: <std::sync::mutex::Mutex<T>>::new
             at libstd/panicking.rs:289
             at libstd/panic.rs:392
             at libstd/rt.rs:58
  31: std::rt::lang_start
             at /Users/travis/build/rust-lang/rust/src/libstd/rt.rs:74
  32: myprogram::main

Errors in these kind of cases are rarely helpful, because something goes wrong before them.
Could you try to produce a minimal set to reproduce?
(Get rid of rows that work, columns that do not cause an effect until there's only one row&column left in the best case)

@steffengy  yes I can.
The minimal example I can give is this:
Given the following schema:

Column
Data type
Allow nulls

row14
varchar(15)
Checked

row20
int
Unchecked

If I query for this it panics after 3854 rows every time (I think it panics trying to read row 3855 but not sure):
SELECT t1.row20, t1.row14 from table t1 order by t1.row20
(id I select only row20 or only row14 it doesn't panic)
All the data in the rows are like this

row20
row14

34340
BAK040

34341
KON040

34342
B10

34343

34344
KON020

34345

I tried to create a new DB on a hosted service and transfer the data, so it could be easy replicable but I didn't find a free service working well enough for this, and working from a Mac it's not so easy to set up a second server to replicate. If needed I can transfer the relevant data as a csv I think, but really, it's all the same kind of data as above in the two columns of interest.

I've looked at 5 different panics by just setting a where t1.id > last_panic_id and It seems to happen every time on a row when row14 is NULL if that helps to know. Now NULL is pretty common in row14 but I would guess < 10 % is NULL so it doesn't seem entirely coincidental.

And lastly, it's not possible to find only one row. I can't select a row that it panics on and it works fine, it only happens when parsing many rows - somwhere between 400-10000 usually. The smallest number of rows I have parsed and gotten a panic on was 421 rows with the exact same query as above.

Can you provide a .SQL file and query I can try to reproduce with, so far locally I haven't been able to?

Would it help if I parsed out data to a csv you can import to your local db? The code that panics is this, it also shows the query:
extern crate futures;
extern crate futures_state_stream;
extern crate tiberius;

use futures::Future;
use futures_state_stream::StateStream;
use tiberius::query::QueryRow;
use tiberius::SqlConnection;

fn main() {
  let connstr = "server=tcp:[iptoserver,port]; TrustServerCertificate=true; database=MyDB; UID=cantshow; PWD=cantshow";
  let qry = "SELECT t1.number, t1.text from MyDB.dbo.table t1 order by t1.Id";
  let mut counter = 1;
  let future = SqlConnection::connect(&connstr).and_then(|conn| {
    conn.simple_query(qry).for_each(|row: QueryRow| {
      println!("{}", counter);
      counter += 1;
      Ok(())
    })
  });

  future.wait().unwrap();
}

I'd prefer a SQL export of the table, if possible.
(using  SQL Server Management Studio/SSMS  thats quite easy)

OK. I'll log on to the office and see, do you only need the two colums causing trouble?
Any way I can send it to you privately?

If that's enough to reproduce, whatever columns and rows are needed to trigger the bug on your side.
I'd advise to just make an SQL dump, reduce & redact/replace with dummy data & import on a test server & retest with an query
and then we're one step closer to a minimal reproduction.
Basically just give me a SQL (not containing any sensitive/real data please) that creates a table with as little data as possible and a query so i just have to import & run the query to reproduce.

I'll try

Might I add that the crashing row might not be the last row that's printed but the one after that?
For example, here:

35594
35595
35596
9112834
thread 'main' panicked at 'invalid token received 0x0', /Users/user/.cargo/registry/src/github.com-1ecc6299db9ec823/tiberius-0.3.0/src/transport.rs:413:29
note: Run with RUST_BACKTRACE=1 for a backtrace.

It might not be the row with id 9112834 that's causing the panic because the error seems to be happening in transport (TCP? TDS Stream?) so if you can print a row, it has already been transported.

@brokenthorn Yes, I actually assumed that, but the next row in the sequence is 35597 (in the example above) so why it jumps to 9112834 is strange... I'm away for two weeks now and I couldn't finish @steffengy's request before that other than I got a minimum set of data over to a local server and replicated the crash there as well so it looks like a real issue, but I need more time to try to pinpoint exactly which conditions causes the crash... If I remove one column from the 21 column dataset, the crash seem to disappear so it's complex. The next step is to change the data in the columns, and hopefully post a set of data/.SQL files here that will replicate the situation.

OK, so I finally managed to create a set of instructions to recreate the bug with mock data:
This is the sql file including the minimum amount of data I could include to reliably reproduce the bug.
In your MS SQL server instance (I have only tested it on MS SQL EXPRESS) :

create a database called "tibtest" or a new db with a name of your choise and change the first line in the sql script to match that name after you have opened it in step 2: USE [YourDbName]

Unzip the script, open the file and execute the script

tiberius_bug_sql.zip

Use the code below and it will panic on count 4662 (at least on my machine)

main.rs:
extern crate futures;
extern crate futures_state_stream;
extern crate tiberius;

use futures::Future;
use futures_state_stream::StateStream;
use tiberius::query::QueryRow;
use tiberius::SqlConnection;

fn main() {
  // 53354
  let connstr = "server=tcp:localhost,53354; integratedSecurity=true;";
  let qry = "SELECT TOP(40000) * from test.dbo.tibdata t1 order by t1.integer3_notnull";
  let mut counter = 1;
  let future = SqlConnection::connect(&connstr).and_then(|conn| {
    conn.simple_query(qry).for_each(|row: QueryRow| {
      println!("{}", counter);
      counter += 1;
      Ok(())
    })
  });

  future.wait().unwrap();

}

Cargo.toml:
[package]
name = "tiberius"
version = "0.1.0"
authors = ["cf"]
edition = "2018"

[dependencies]
tiberius = {version = "0.3.0", default-features=false, features=["chrono"]}
futures = "0.1.18"
futures-state-stream = "0.1.0"
chrono = "0.4.6"

For me that runs until 9503 without any error.
You have reproduced using the latest master right?
Which MSSQL server version is that, I am using 2016.

Strange. I'm pulling version "0.3.0" from cargo, I havent't tried reproducing from master.
Sql server is the latest version (version 14). Product version: 14.0.1000 RTM
I can try to build from master and see if the problem's still there.

OK, so on master it works, at least on the sample data locally. I'll check later so confirm it works on the main database as well.

@steffengy it works without any apparent issues on master when testing on larger datasets as well. Closing this issue then.


⚠ Secret Website 3 has degraded performance

In ada398f, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 27754 ms

Resolved: Secret Website 3 performance has improved in 6ffb826.


Load denied by X-Frame-Options - SAMEORIGIN

Where can I solve the following problem.
At Chrome:
Refused to display 'http://localhost:3030/sample' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'
At Firefox:
Load denied by X-Frame-Options: http://localhost:3030/sample does not permit cross-origin framing.
Hope someone can comment if have passed for the same.
Thanks a lot.

I had to solve this to play with dashing dashboards with greenscreen and dashkiosk.
I don't know about the proper way, but you can edit your config.ru file to include
set :protection, :except => :frame_options just before
run Sinatra::Application

mach327's solution worked for me:
set :protection, :except => :frame_options


Dojo Database Schema

CTFd provides (among other things):
Users
Challenges
Submissions
Solves (subclass of Submissions, quicker queries, basically an index)
We currently have:
Dojos
DojoChallenges
DojoMembers
Dojos defines a dojo, and contains a blob of yml data. This is slow, but was flexible while we figured out what a Dojo is.
DojoChallenges glue Dojos to Challenges. Like Solves it is "extra-data" that can speed up queries by not needing to continuously analyze the dojo data. Unlike Solves, this data is ephemeral and may be deleted at any point/modified/etc. This holds a lot of data and is used in a lot of queries.
DojoMembers are great and simple. Just links Dojos with Users. Also now contains a grade_tokenfor grading purposes. It should probably also be renamed to something liketoken` to be more generic, it's purpose could extend beyond grading.
We also have the concept of a module which is not in the database. It is an important concept that is used in all sorts of queries. Lots of queries are module-specific. Therefore, we should add DojoModules to speed up this querying.
Dojos

id - db.Integer, primary
name - db.String(256), converted into url prefix (strip non-alphabetic and space, convert space to dash)
description - db.Text
repository - db.String(256), git repo*
hash - db.String(80), used to check if dojo has updated (TODO: should this be git hash or dojo.yml has?)
type - db.String(80), "public/official/private/archive" (default public)

OfficialDojos(Dojos)

type - "official"

PrivateDojos(Dojos)

type - "private"
password - db.String(128)

ArchiveDojos(Dojos)

type - "archive"

DojoMembers

dojo_id - db.ForeignKey, primary
user_id - db.ForeignKey, primary
type - db.String(80), "member/owner/admin/student" (default member)

DojoOwners(DojoMembers)

type - "owner"

DojoAdmins(DojoMembers)

type - "admin"

DojoStudents(DojoMembers)

type - "student"
token - db.String(256)

DojoModules

dojo_id - db.ForeignKey, primary
module_index - db.Integer, primary
name - db.String(256), indexed w/dojo_id, unique w/ dojo_id
description - db.Text
type - db.String(80), "own/reference" (default own)

ReferenceDojoModules(DojoModules)

type - "reference"
reference_dojo_id - db.ForeignKey
reference_module_name - db.ForeignKey (TODO: should this be a ForeignKey, or just a db.String(256) to keep it simpler when the referenced row is deleted?)

DojoChallenges

dojo_id - db.ForeignKey, primary
module_index - db.ForeignKey, primary
challenge_index - db.Integer, primary
name - db.String(256), indexed w/dojo_id, unique w/ dojo_id, note this means same name cannot be used in different modules
description - db.Text
type - db.String(80), "own/reference" (default own)

ReferenceDojoChallenges(DojoChallenges)

type - "reference"
reference_dojo_id - db.ForeignKey
reference_challenge_name - db.ForeignKey (TODO: should this be a ForeignKey, or just a db.String(256) to keep it simpler when the referenced row is deleted?)

ChallengeDurations

dojo_id - db.ForeignKey, primary
module_index - db.ForeignKey, primary
challenge_index - db.ForeignKey, primary
start - db.DateTime, indexed (TODO: does this help?)
end - db.DateTime, indexed (TODO: does this help?)

*Git Repos
Git repos should also be able to specify an official/public repo path, e.g. "https://pwn.college/dojo/cse365.git" or "https://pwn.college/dojo/some-public-1234.git", or if running a full-fleged git server sounds scary, cause get entire directory, maybe just "./dojo/some-public-1234", and we symlink it up?; maybe this also requires being private because why mirror a dojo and be public
Reference Tables
Name and descriptions are nullable, if null, use the reference's information.
We should require references to point at type="own" only to not have to deal with recursiveness/loops/etc.
Students
students.yml (list of valid tokens)
This setup enables courses to be public/private, while also having a set of "official" students.
We can furthermore have scoreboard filters for official students only, and indicate to students that we agree they are in fact a registered student.
ChallengeDurations
All duration information is stored for a particular challenge.
Module durations are simply the min(start) through max(stop).
Dojo durations are simply the min(start) through max(stop).
References do not need to track this.
Grades
grades.yml
Specifies the grade buckets, late penalties, any extra credit

See https://github.com/CTFd/CTFd/blob/master/CTFd/models/init.py#L808 for roughly what table inheritance looks like/feels like (class Solves(Submissions))


Segmentation: merge multiple PolygonLabels to one annotation

It would be nice to be able to 'merge' multiple PolygonLabels to one annotation, e.g. in Coco formate:
segmentation: [[0, 0, 1, 1, 1, 0], [2, 2, 2, 3, 3, 3]] i.e. two unconnected triangles belong to one annotation.
This is especially convenient for Instance Segmentation, where one annotation describes the mask of one instance (which does not need to be connected...)
If this is already implemented, please hint me towards some documentation - but I haven't found any on the website.

@JSchuerz no, it's not implemented yet and contributions are highly appreciated! You can do it in the converter module. e.g. in this place: https://github.com/heartexlabs/label-studio-converter/blob/master/label_studio_converter/converter.py#L436


Add sorting tier for "absolute" modules

Often project-specific modules are referenced using "absolute" paths like utils/color/parseColor. Currently, import-order interprets these as "external" references. Instead, I'd like for them to live at their own tier between "external" and "parent" references.

I think this is a tier to add, but I am not sure about the name "absolute".
You can also require absolute file paths:
require('/Users/jamestalmage/dev/some-project/lib/foo.js');

Also, when you say "project specific" modules, do you mean "npm linked" modules? Or submodules of those found on npm? Does your example (utils/color/parseColor) refer to some directory you've symlinked into the utils namespace  or a submodule of the utils package. Because the latter is very common:
// requires file at path `./node_modules/babel-core/register.js`
require('babel-core/register');

I've never seen a require pointing at a true "absolute" path like the '/Users/jamestalmage/dev/some-project/lib/foo.js' example you provided, and perhaps the name "absolute" should be reserved for such draconian modules.
Some "external" modules use slashes to pull in smaller parts of the library, so this string-based approach kind of falls down in that case.
I considered writing this so that it would check the filesystem at node_modules to see whether an import was pulling from the project itself or from an external module, but didn't want to sully this tool with fragil file-system poking behavior like that.
I'm not referring to npm-linked modules; just stuff that lives in the project, but isn't pulled in with relative imports.

"project" is probably a better name, but with no way to distinguish stuff in node_modules from stuff in the rest of your project, maybe this is a non-starter.

I'm not referring to npm-linked modules; just stuff that lives in the project, but isn't pulled in with relative imports.

I guess I don't understand what you are talking about then.
If it's not in node_modules or npm-linked you've got to use a relative path.

Using webpack, we add entries to modulesDirectories, allowing webpack to peek into other directories when resolving "absolute" references.

Ahh. I see.
Well - I don't think this module should support something that's webpack specific.
That said, this change is valuable for defining where an external-submodule should go. (we probably need a better name than that). Webpack users will be able to infer that it applies to their "absolute" references pretty easily.
In addition to updating with a better name, it should also try to be backward compatible.
If a user does not explicitly add external-submodule to their the rule config, then it should continue to classify these as simply external. That way it will continue behaving correctly for existing configs (also, if the user only has external in their rule config, they almost certainly meant external and external-submodule both).
Someone please pick something better than external-submodule.

Yes, I considered the change this would make to configs. Having to specify the full list of ordering rules seems kind of fragile, but I don't have a concrete alternative.

For this change, just examine the list. If external-submodule isn't specified, then don't classify anything as an external-submodule, classify it as external instead.

Shaped this up to make all tiers in the order option represent a partial ordering.
Unspecified tiers are appended to the initial partial ordering, with the exception of "child" tiers (of the form <parent>-<...>, which are ordered immediately after their parent. This preserves the locality of the external and external-child tiers.

Hey @duncanbeevers, thanks for the PR and interest :) Sorry for not answering earlier.

If a user does not explicitly add external-submodule to their the rule config, then it should continue to classify these as simply external.

:+1: and they should therefore be allowed to mingle.
Since this is a pretty specific case and happens only to some limited users (those who activated the plugin in webpack), I'd be inclined to either

not accept this change (as @jamestalmage suggested)
accept it, but keep the previous behavior as the default (including in examples, etc.). I don't want users who use lodash/find or react-router/lib/history for example to have to move their imports even though they used an external module correctly, except if they explicitly choose to.

Do you think you can (and still want to) make the changes so that the previous behaviour is kept?

not accept this change (as @jamestalmage suggested)

I'm fine with the change.
My point was that, if the user leaves their configured order as:
['builtin', 'external', 'parent', 'sibling', 'index']

Then these should be grouped with external. They shouldn't have to explicitly call out external-submodule if they don't care about the specific ordering of lodash vs lodash/fp.

Just so you know, @benmosher agreed to have this rule included in his project eslint-plugin-import, so maybe it's worth waiting for it to be integrated there.
cc @benmosher so you're aware of this request, which you might actually also be interested in.

Noted. I scanned it once before, probably ought to read more completely at some point. 😅
I think we need to have a conversation somewhere (the import PR?) about leveraging the import resolvers and resolved file system paths as part of this classification process you've worked out.

Sure, let's do that in the PR when I'll port this rule

I'd prefer #12 over this, since I really wrote this to scratch my own itch.

Closing this, as I've deprecated this plugin in favor of using eslint-plugin-import. Thanks for the interest nonetheless. If you are still interested in adding this feature, you're free to to create an issue over there or create a new repo with your version of this rule.


Adding missing test and moving custom csv UnicodeWriter to compat.py module.

Sorry, this is the last update of the small "refactor" in export emails command that I did. This include two small things that I forgot get from my "git stash".

[x] Testing for export_emails -f linkedin.

[x] Moving the custom UnicodeWriter (PY2) to compat.py model.

Coverage increased (+0.08%) to 39.513% when pulling a027bc824876d6c210618510d714b641f8a92b40 on nicolasmendoza:command-export-emails-refactor into db0f97130c7cd3b50b518eb51574cc84a5794d76 on django-extensions:master.

Coverage increased (+0.08%) to 39.513% when pulling a027bc824876d6c210618510d714b641f8a92b40 on nicolasmendoza:command-export-emails-refactor into db0f97130c7cd3b50b518eb51574cc84a5794d76 on django-extensions:master.

Coverage increased (+0.08%) to 39.513% when pulling a027bc824876d6c210618510d714b641f8a92b40 on nicolasmendoza:command-export-emails-refactor into db0f97130c7cd3b50b518eb51574cc84a5794d76 on django-extensions:master.

Coverage increased (+0.08%) to 39.513% when pulling a027bc824876d6c210618510d714b641f8a92b40 on nicolasmendoza:command-export-emails-refactor into db0f97130c7cd3b50b518eb51574cc84a5794d76 on django-extensions:master.

No problem :)
Thanks !


[Feature] Modal to show description about subcategories

Description

A simple modal to show a description for each subcategory.
The modal will be triggered by clicking an icon next to the subcategory name.
I will style it consistently across all viewports.
This feature was suggested in the LinksHub Discord community.

Screenshots

Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I am willing to work on this issue (optional)
[X] I am a GSSoC'23 contributor

@Anmol-Baranwal thanks for creating issue for it. I guess tool-tip would be more better?

@Anmol-Baranwal thanks for creating issue for it. I guess tool-tip would be more better?

But it would be very difficult for writing long descriptions in tooltip, and how can a user use tooltip on mobile devices?

@Anmol-Baranwal thanks for creating issue for it. I guess tool-tip would be more better?

But it would be very difficult for writing long descriptions in tooltip, and how can a user use tooltip on mobile devices?

Hmm..but modal will distract user. How about adding a normal para right after the title?

@Anmol-Baranwal thanks for creating issue for it. I guess tool-tip would be more better?

But it would be very difficult for writing long descriptions in tooltip, and how can a user use tooltip on mobile devices?

Hmm..but modal will distract user. How about adding a normal para right after the title?

It will be much more distracting than opening a modal by clicking an icon. Descriptions with more than 15 words can be challenging on mobile devices. I will think on this, but there won't be as many options.

@Anmol-Baranwal thanks for creating issue for it. I guess tool-tip would be more better?

But it would be very difficult for writing long descriptions in tooltip, and how can a user use tooltip on mobile devices?

Hmm..but modal will distract user. How about adding a normal para right after the title?

It will be much more distracting than opening a modal by clicking an icon. Descriptions with more than 15 words can be challenging on mobile devices. I will think on this, but there won't be as many options.

Hmm, maybe there can be a method to make the modal adjust based on the size of the user device's screen?

@Anmol-Baranwal thanks for creating issue for it. I guess tool-tip would be more better?

But it would be very difficult for writing long descriptions in tooltip, and how can a user use tooltip on mobile devices?

Hmm..but modal will distract user. How about adding a normal para right after the title?

It will be much more distracting than opening a modal by clicking an icon. Descriptions with more than 15 words can be challenging on mobile devices. I will think on this, but there won't be as many options.

Hmm, maybe there can be a method to make the modal adjust based on the size of the user device's screen?

Yeah, it will be according to the viewport width and height.

That could work @Anmol-Baranwal. I vote yes! :) How about you @rupali-codes, @ujjawaltyagii?

That could work @Anmol-Baranwal. I vote yes! :) How about you @rupali-codes, @ujjawaltyagii?

I think so, that could work, as we are already having a modal window :)


EWMA vs mean unit of measure inconsistency in meters

Meters can be used for a number of things, but consider this example:
We want to measure the number of events per second, where an event is folsom_metrics:notify(Name, 1).
So we do folsom_metrics:get_metric_value(Name). What we get in response is
[{count,...}, {one, ...}, {five, ...}, {fifteen, ...}, {day, ...}, {mean, ...}, {acceleration, ...}]

where one, five, fifteen and day are measured in events per second, but mean is measured in events per micro second. Furthermore, acceleration is measured in events per second squared.
I believe it would be more consistent if mean were measured in events per second as well.
Suggested fix: divide this value by 1000000. May need to do something similar for meter reader as well.

Folsom has moved, please resubmit your issue at https://github.com/folsom-project Thanks!


Update Names page

depends on #1166,
fixes #708

Tested, in general LGTM, except small visual bug #1250


Set up addon channel before importing addons

Fixes https://github.com/storybookjs/storybook/issues/17852
This also re-organizes our virtual filenames a bit, putting them in a single file that can be imported from various spots, rather than having to pass around the strings as extra options.
To fix the issue, I pulled out the code that sets up the addon channel from the "modern" approach, and import that at the start of the non-static-store code.  It needed to be a separate file due to the way es module imports work, otherwise addon code will be imported before the channel can be created, if we tried to do it all in one file.  Bonus points for getting to share some code between the two approaches, I guess.

Nevermind, I had to regenerate the lockfile. Tested and this appears to fix the problem 🎉

I'm not sure why you would have had to recreate the lock file.  Maybe if it happens again, you could try a git clean and a fresh yarn install.  Also, when changing react versions, it's best to change them in all examples, otherwise we've seen problems where mixed versions of storybook packages are used due to whatever way yarn does or doesn't hoist.


Stress Test Results in Assignment of Same Scene Outline Tag

During my creation of multiple scenes for my prior ticket, I was creating them sequentially, meaning back to back.
At "rpgm/outline/scene/2/4/35/1" RPGM generated two notes with the same tag and advised correction, which I did. I was able to generate a couple more, but now at "rpgm/outline/scene/2/4/42/1" I am hitting a string of them all being generated at the same tag.
Attached is a screenshot and console log.

obsidian.md-1665376977414.log

related to #153
If the parent is missing, the system can't find the hierarchy

After fixing #153 I am not able to reproduce this any longer

Available in v3.0.0-1


v2.13.2 Beta

#358

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.


Support suppressing of sensitive parameters / URLs

In some situations users must test an app that has sensitive URLs. While putting sensitive data in URLs is generally considered a bad idea (for a list of the very narrow exceptions see this blog post, it would make sense to suppress portions of sensitive URLs.
I'm not sure what the cleanest way to do this would be in terms of an API, maybe others could suggest an approach?

To trigger some ideas:
import { journey, step, redact } from '@elastic/synthetics';

journey('Journey name', ({ page, params }) => {

 redact.url(<regex or url segment>, [label='-REDACTED-']);
 redact.urlParam(<regex or key>, [url=undefined, [label='-REDACTED-']]);

  ...
});

redact.url will redact the whole url, optionally with a label to assist in identifying what is redacted.
redact.urlParam will redact every matching query parameter. If url is provided, it'll act on only matching url, otherwise on all.
Caveat could be that config within script won't work for the upcoming url-only browser monitors.

I like that syntax @awahab07 , I do wonder if we could make it flexibly scoped so it could optionally apply to all journeys in a suite as well. maybe it could be a corresponding setting in config.ts as well?
WRT url-only browser monitors that would solve that problem if we could make the options in config.ts applicable to those as well.

We should just do it by default and REDACT all sorts of authorization related strings including auth headers, basic auth in URLS, I don't think its worth going with the API route for this use case.
We do this already on most of the APM agents. Here is how its done in the RUM agent. https://github.com/elastic/apm-agent-rum-js/blob/434d6213a46c035680821b7843a15f628217ec64/packages/rum-core/test/common/url.spec.js#L184-L200

Spec for the APM agents - https://github.com/elastic/apm/blob/main/specs/agents/sanitization.md


Adding extension column to the library breaks search (in private mode only)

Category

[x] Bug

Describe the bug
We use SP online and SPFX (extenstions).
We have automation tests which run in private mode. One of the tests opens library with column which is added from our SPFX extensions. Then test uses SP search to enter name of a doc and press Enter, but that action fails, since search is not finished and we see endless loader.
Steps to reproduce

open Chrome in private mode
Go Sharepoint online, then to library with custom extension column
Click on SP search and enter name of some document
press Enter
See error - endless scroller

Expected behavior
Document is found and displayed
Environment details (development & target environment)

Your Developer Environment: [Windows 10]
Target Environment: [SharePoint Online]
Framework: [SPFX 1.10]
Browser(s): [Chrome (private mode)]
Tooling: [VS Code | SPFx v1.10.0]

Additional context

Unclear by what you mean by "custom extension column"... can you please clarify?

Sorry, I meant
https://docs.microsoft.com/en-us/sharepoint/dev/spfx/extensions/get-started/building-simple-field-customizer

@VladyslavGoloshchapov  you mean modern search, right ?

@justin0522 not sure if that is modern search, but I can send you a video.
Please note this is only is Chrome in private mode with third party cookies enabled.
https://www.screencast.com/t/fgvXnuvyG

I did a test in my env, and it worked well.

you are doing a modern search in list scope, could you try to input ggggg or gggg* for a test

Also did you add custom field @justin0522 ?

tried, but still reproducible.
Please note additional condition which I found is required to reproduce the issue:

you must come into the list from Home page without visiting any other pages.

Hi @VladyslavGoloshchapov,
Sorry for the long delay here.
Could you please check if the issue still exist for you?
Currently it seems to be fixed.


Set CPACR_EL1 register for Readable and Writeable

This change is required to access the CPACR_EL1 register fields.

Huh, interesting bug. Thanks!


Updated issue template for corrupt dart sdk downloads (Issue #92683 )

I changed the issue template link because the old one doesn't exist any more.
Issue #92683
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

Thanks, this appears to be a duplicate of https://github.com/flutter/flutter/pull/92780, though.


Showing hover tooltip on key binding

How can I show the tooltip shown on hovering over a text using a key binding.

out of the box it is bound to ctrl+k ctrl+d. Would you want a different keybinding? Currently, there is no API to customize default keybindings we ship with.

Yeah I wanted a different binding. Either a way to customize the keybinding or showing a custom tooltip on some keypress works for me.
I tried pressing ctrl+k followed by ctrl+d but it just highlighted the text at the cursor position. Am I missing something here? I tried this on the hover provider example page in the playground.

I'm sorry I mixed up the keybindings. ctrl+k ctrl+i it is.


Investigating the Flaky Test failed fot FTP

https://github.com/apache/pekko-connectors/actions/runs/8810670241/job/24193635981?pr=624
it maybe about SSL connection.

hmm, perhaps one of our test certificates expired? NotAfter: Wed Apr 24 06:36:56 UTC 2024

Seems like an expired cert. The tests seem to fail consistently now. They are not flaky.

I put the details of the fix for the cert in https://github.com/apache/pekko-connectors/pull/631


Enable docker to delete a remote image

It could be something like docker rmi --remote image_name or like git docker push :image_name
Feature requested by: Adam Greene --<EMAIL_ADDRESS>

Issue has no updates for 2 years. Closing it.


Narrowing via property check fails when adding parent type to declaration

TypeScript Version:  3.8.3

Search Terms:

property check refinement

Expected behavior: No error, type is narrowed to SubA.
Actual behavior: Type is narrowed to never and produces an error.

Related Issues:

https://github.com/microsoft/TypeScript/issues/1260

Code
This code type checks:
interface Base {
  base: number;
}

interface SubA extends Base {
  a: string;
  other: boolean;
}
interface SubB extends Base {
  b: string;
}

function foo(x: SubA | SubB | null) {
  x = x || {base: 1, b: 'b'};
  if (x && 'a' in x && x.a == 'str') {
    x.other;  // ok
  }
}

A very tiny tweak (adding Base | to the parameter type) breaks things, though:
function foo(x: Base | SubA | SubB | null) {
  x = x || {base: 1, b: 'b'};
  if (x && 'a' in x && x.a == 'str') {  // <-- Property 'a' does not exist on type 'never'. (2339)
    x.other;  // <-- Property 'other' does not exist on type 'never'. (2339)
  }
}

This makes some sense since foo could be called with something assignable to Base that has an a but is not specifically a SubA. But what doesn't make sense to me is that removing the assignment on the first line makes the error go away:
function foo(x: Base | SubA | SubB | null) {
  if (x && 'a' in x && x.a == 'str') {  // ok
    x.other;  // ok
  }
}

That assignment seeming has no bearing on if statement (the default value doesn't have an a property). So why does it affect the inferred type in it?
Either the second and third example should both error or neither of them should.
Output
"use strict";
function foo(x) {
    x = x || {base: 1, b: 'b'};
    if (x && 'a' in x && x.a == 'str') {
        x.other;
    }
}

Compiler Options
{
  "compilerOptions": {
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": true,
    "strictBindCallApply": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "alwaysStrict": true,
    "esModuleInterop": true,
    "declaration": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "moduleResolution": 2,
    "target": "ES2017",
    "jsx": "React",
    "module": "ESNext"
  }
}

Playground Link: Provided

But what doesn't make sense to me is that removing the assignment on the first line makes the error go away

The || operator triggers subtype reduction, so in the second example the narrowed identifier has type Base, while in the third example the identifier has type Base | SubA | SubB | null.
The in operator narrows using the assumption that types are closed, so Base | SubA | SubB noes not behave the same as Base, despite the types being semantically the same.
Removing the closed assumption from in would make it useless, so I think the only way to have consistent behaviour is apply subtype reduction prior to in.


fix: incorrect scope in dts-bundle

Should be @getoutreach.
DT-4053

Thank you for the PR Jared.
I'm closing it, becasue I decided to revert the publiching PR #97 and keep the public package at NPMJS.


License server pointing to localhost

Chart version: 7.16.2
Kubernetes version:
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:31:21Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:25:06Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"linux/amd64"}
Kubernetes provider: E.g. GKE (Google Kubernetes Engine)
local
Helm Version:
version.BuildInfo{Version:"v3.5.4", GitCommit:"1b5edb69df3d3a08df77c9902dc17af864ff05d1", GitTreeState:"clean", GoVersion:"go1.15.11"}
Describe the bug:
Elasticsearch is running on <IP_ADDRESS>:9200 as per configuration and logs, but I get an error about license server not being available on localhost.
I am using a custom Docker image so that log4j plugin will be installed. Dockerfile:
ARG logstash_version
FROM docker.elastic.co/logstash/logstash:${logstash_version}
RUN bin/logstash-plugin install logstash-input-log4j

Pod logs showing Elasticsearch is found on the right IP:
[2021-12-26T20:38:38,605][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[http://<IP_ADDRESS>:9200/]}}
[2021-12-26T20:38:38,747][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>"http://<IP_ADDRESS>:9200/"}

values-logstash.yaml (used to instantiate chart):
service:
  type: NodePort
  ports:
    - port: 9600

persistence:
  enabled: true

image: maestro-logstash
imageTag: latest

logstashConfig:
  logstash.yml: |
    http.host: <IP_ADDRESS>
    xpack.monitoring.enabled: true

logstashPipeline:
  uptime.conf: |
    input { log4j { host => "<IP_ADDRESS>" port => 4560 } }
    output {
      elasticsearch {
        hosts => ["http://<IP_ADDRESS>:9200"]
        index => "strickland"
      }
    }

Logstash logs are trying to find license server on <IP_ADDRESS> even though elasticsearch is configured for a different IP:
[2021-12-26T20:41:35,675][WARN ][logstash.licensechecker.licensereader] Attempted to resurrect connection to dead ES instance, but got an error {:url=>"http://localhost:9200/", :exception=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :message=>"Elasticsearch Unreachable: [http://localhost:9200/][Manticore::SocketException] Connect to localhost:9200 [localhost/<IP_ADDRESS>] failed: Connection refused (Connection refused)"}

This is normal, you enable legacy monitoring, according documentation:
https://www.elastic.co/guide/en/logstash/7.16/monitoring-internal-collection-legacy.html#logstash-monitoring-default-legacy
If a Logstash node does not explicitly define a monitoring output setting, the following default configuration is used:

xpack.monitoring.elasticsearch.hosts: [ "http://localhost:9200" ]

@ebuildy Thanks for your reply. That did the trick. I added
xpack.monitoring.elasticsearch.hosts: [ "http://<IP_ADDRESS>:9200" ]

under the xpack.monitoring.enabled field under the logstashConfig section.


ETA on support for non-Azure Compute gallery images (including the VMs created by Azure Migrate, Azure Backup, Azure Site Recovery etc.).

I'm concerned that the alternative for the soon to be deprecated Azure Automation Update Management is still a preview release and doesn't yet support many typical situations.
Is there support coming for VMs created by Azure Migrate, Backup, Site Recovery etc?  If so - when?

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

ID: 7a6eada9-2fd6-c8a4-4d7c-c9b6647642c8
Version Independent ID: 9a18fe92-8ab3-90c7-5495-98ae3299a451
Content: Update management center (preview) support matrix
Content Source: articles/update-center/support-matrix.md
Service: update-management-center
GitHub Login: @SnehaSudhirG
Microsoft Alias: sudhirsneha

@chris-tout-6dg Thanks for your comment. We will review the issue and get back to you shortly.

@chris-tout-6dg Support for images on VMs created by Azure Migrate, Azure Backup, Azure Site Recovery etc. is on the roadmap for UMC and tentative ETA is 7/31.
As there are no further documentation changes, we will close the issue for now. If there are further questions, please revert and we will be glad to assist you.


CLOUD-44576 smoke test failure sends warning

@biharitomi
If MR Smoke test fails, it should not cause a failure in the cloudbreak cluster creation, it sends a Warning event instead.

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1815/


The Function UrlRedirect should allow anonymous

This Function should be call without any security. We want that public.


Create Directives Dynamically?

Is it possible to create directives dynamically?
I am creating a bucket for each user and so I need to create a directive for each user's bucket.

I have successfully implemented this. I am storing the settings in a mongo collection, then I pass them into a function that creates a new directive. If something changes in the settings I just need to run delete Slingshot._directives[directiveName] and then create it again.


How to listen for and respond to fired events like updatedParent

Does anyone have a snippet to share showing how to listen and respond to a TreeEvents like updatedParent?
Thank you. :)

@LarryEitel It's a standard eloquent model events. This events are fired using laravel fireModelEvent method, as you can see here

After some trial and error I came up with the following:
In the model:
public static function updatedDescendants($callback, $priority = 0)
{
    static::registerModelEvent('updatedDescendants', $callback, $priority);
}

app/Events/Backend/PlaceUpdatedDescendantsEvent.php
<?php

namespace App\Events\Backend;

use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class PlaceUpdatedDescendantsEvent extends Event
{
    use SerializesModels;

    public function __construct($modelItem)
    {
        \Log::info("PlaceUpdatedDescendantsEvent._construct");

        $this->modelItem = $modelItem;
    }

    public function broadcastOn()
    {
        return [];
    }
}

app/Listeners/Backend/PlaceUpdatedDescendantsListener.php
<?php

namespace App\Listeners\Backend;

use App\Events\Backend\PlaceUpdatedDescendantsEvent;

use Assert\Assertion;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Log;

use Illuminate\Contracts\Queue\ShouldQueue;

class PlaceUpdatedDescendantsListener
{
    public function handle(PlaceUpdatedDescendantsEvent $event)
    {

        $modelItem = $event->modelItem;

        var_dump('PlaceUpdatedDescendantsEvent');
        //$modelItem->save();

        \Log::info("PlaceUpdatedDescendantsEvent handled");
    }
}

app/Providers/EventServiceProvider.php
<?php namespace App\Providers;

use App\Events\Backend\PlaceUpdatedDescendantsEvent;
use App\Listeners\Backend\PlaceUpdatedDescendantsListener;

use Xchg\PlaceModel;
use App\Services\Place;

use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;

class EventServiceProvider extends ServiceProvider {

	protected $listen = [
            PlaceUpdatedDescendantsEvent::class => [
                PlaceUpdatedDescendantsListener::class,
            ],
	];

	public function boot(DispatcherContract $events)
	{
	    parent::boot($events);

            PlaceModel::updatedDescendants(function($item)
            {
                \Event::fire(new PlaceUpdatedDescendantsEvent($item));
            });
    }
}

Please feel free to share any observations/refinements. :)


Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.zxing.client.android.R$layout" on path:

Description of the problem:
Which library version are you using? E.g. 3.2.0.
Which phone/tablet are you using, and which Android version does it run? (e.g. Samsung Galaxy S5,
Android 5.0)
Does the same happen on other devices or an emulator?
Can you reproduce the issue in the sample project included with the library? If not, can you
provide your own sample project or sample code that produces this error?
In the case of an error do you have a stack trace or adb logs?

Not enough info.


Move file type and extensions from configuration to separate file

Summary of Changes:
https://rcsbpdb.atlassian.net/browse/DAOTHER-8060

[ ] Moved file type and extensions to file access code from configuration file

Screenshot of Changes (or test)
(where applicable)
Checklist:

[ ] I followed the code style guidelines
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have tested the code / Added unit test(s)

Hey @j-s-135, here are my changes. I also made a couple pylinting/formatting adjustments that will prevent some azure failures. Can you take a look at them before I merge?

Dennis, thanks, however the very last commit would probably have a merge conflict since I have also updated the ClientUtils and testClientUtils files. Could you merge the other commits only?

@j-s-135 I already rebased my branch onto yours, so there won't be any merge conflicts.
Do you mean you've made more changes since your last commit? If so, please push your latest changes. If not, all you will have to do is do a 'git pull' after I finalize the merge, and you'll have my latest changes.


0.4

#6821 #5119 #5680 #2924 #2336 #6208 #2863 #668

[x] Apply access control to arena models
[x] RAG query generation
[x] #6767

If you're game, adding webui config option for the new Jina API key implementation from #6855 would be lovely:
+

+

+                                                                       {$i18n.t('Jina API Key')}
+

+
+                                                               <SensitiveInput
+                                                                       placeholder={$i18n.t('Enter Jina API Key')}
+                                                                       bind:value={webConfig.search.jina_api_key}
+                                                               />
+

+                                               {/if}

Interesting...Waiting for this release...

Nice! so much new i had no idea was in the pipeline looking in issues etc,


should set page.WaitForNavigation to "public" function

this function could be used in TargetCreated Event to wait for page to be loaded.

makes sense since it part of puppeteer's public api - https://github.com/GoogleChrome/puppeteer/blob/v1.0.0/docs/api.md#pagewaitfornavigationoptions

a fix for this should also implement the related tests - https://github.com/GoogleChrome/puppeteer/blob/v1.0.0/test/test.js#L1198


Translatable field + file upload field = NOT WORKING :(

Hi @tabacitu i spend this night to try to resolve this but...
//Product.php
<?php

namespace app\Models;

use Illuminate\Database\Eloquent\Model;
use Backpack\CRUD\CrudTrait;
use Cviebrock\EloquentSluggable\Sluggable;
use Cviebrock\EloquentSluggable\SluggableScopeHelpers;

use Backpack\CRUD\ModelTraits\SpatieTranslatable\HasTranslations; // ;))))

class Product extends Model
{
   use CrudTrait;
    use Sluggable, SluggableScopeHelpers;
    use HasTranslations; // ;))))

     /*
    |--------------------------------------------------------------------------
    | GLOBAL VARIABLES
    |--------------------------------------------------------------------------
    */

    //protected $table = 'products';
    protected $primaryKey = 'id';
    // public $timestamps = false;
    // protected $guarded = ['id'];

    protected $fillable = ['name','slug','pdf','image','title', 'content', 'status', 'category_id', 'featured', 'date'];
    // protected $hidden = [];
    // protected $dates = [];

     // protected $fakeColumns = ['pdf'];
     protected $translatable = ['name','title', 'content','pdf'];
     protected $casts = [
        'featured'  => 'boolean',
        'date'      => 'date',
        // 'pdf' => 'array',
    ];

public function setPdfAttribute($value)
    {

        $attribute_name = "pdf";
        $disk = "pdf";
        $destination_path = "pdf";

        $this->uploadPdfToDisk($value, $attribute_name, $disk, $destination_path);

    }

public function uploadPdfToDisk($value, $attribute_name, $disk, $destination_path)
    {
        $request = \Request::instance();
        // dd($request);
        // if a new file is uploaded, delete the file from the disk
        if ($request->hasFile($attribute_name) &&
            $this->{$attribute_name} &&
            $this->{$attribute_name} != null) {
            \Storage::disk($disk)->delete($this->{$attribute_name});
            $this->attributes[$attribute_name] = null;
        }
        // if the file input is empty, delete the file from the disk
        if (is_null($value) && $this->{$attribute_name} != null) {
            \Storage::disk($disk)->delete($this->{$attribute_name});
            $this->attributes[$attribute_name] = null;
        }
        // if a new file is uploaded, store it on disk and its filename in the database
        if ($request->hasFile($attribute_name) && $request->file($attribute_name)->isValid()) {
            // 1. Generate a new file name
            $file = $request->file($attribute_name);
            $new_file_name = md5($file->getClientOriginalName().time()).'.'.$file->getClientOriginalExtension();
            // 2. Move the new file to the correct path
            // dd($destination_path);

            $file_path = $file->storeAs("/", $new_file_name, $disk);
            // dd($file_path);
            // 3. Save the complete path to the database
            // $this->attributes[$attribute_name] = $file_path;
            $this->attributes[$attribute_name] = $destination_path.'/'.$new_file_name;
        }
    }

//ProductCrudController.php
   $this->crud->addField([ // pdf
    'label' => "pdf",
    'name' => "pdf",
    'type' => 'upload',
    'upload' => true,
]);

The result in DB

pdf upload works but when i try to make it translatable does not work :(
I need help
Thanks ;)

Hi @lloy0076 !!
i think it's the same problem of #894
Any suggestion?

Actually I do think it is the same bug.

Duplicate of #894.

SOLVED!
Upgrade these 2 files first:
https://github.com/chancezeus/CRUD/blob/7a86ac6858803874a3ce83918bd7a0b2b7c726d9/src/CrudTrait.php
https://github.com/chancezeus/CRUD/blob/7a86ac6858803874a3ce83918bd7a0b2b7c726d9/src/ModelTraits/SpatieTranslatable/HasTranslations.php
The setTranslation function search a $value returned from the Mutator,
so you have to return the $value of the file you have uploaded ;)
`
public function setPdfAttribute($value)
{
$attribute_name = "pdf";
$disk = "pdf";
$destination_path = "pdf";
$this->uploadPdfToDisk($value, $attribute_name, $disk, $destination_path);
// OH YEAH BABY!!!
return $this->attributes['pdf'];
}
`

@meodev - are you able to turn your changes into a PR (I can't figure out what you changed easily)?

@lloy0076 - these 2 links are better explained than the previous 2
I update these 2 files (but i don't know if is it necessary)

https://github.com/Laravel-Backpack/CRUD/pull/1035/files#diff-e105427d8e6d81cc9511bcf4ebf81e8d
https://github.com/Laravel-Backpack/CRUD/pull/1035/files#diff-75a9b964d266895de22eacb707b719b6

The value of the translatable field was always null because the Mutator setPdfAttribute
does not return anything. i.e. {"it":null}
Now return the path of the uploaded file and it works!
I think that a (possible) solution is to update the docs for the upload field
https://laravel-backpack.readme.io/v3.0/docs/crud-fields#section-upload
and say that if you have a mutator for a translatable field you have to return the path of the uploaded file from the mutator ;)
Just add
return $this->attributes['pdf'];
at the end of the Mutator where the 'pdf' is the attribute name
I never do a PR and i've got little time...but if you help me i can do it! ;)

@tabacitu
I think the solution is to:
I think that a (possible) solution is to update the docs for the upload field
https://laravel-backpack.readme.io/v3.0/docs/crud-fields#section-upload
and say that if you have a mutator for a translatable field you have to return the path of the uploaded file from the mutator ;)

Closing because there is a solution.


need for hooking guide

Per hooking guide doc here
>>> my_model.river.my_state_field.hook_post_transition(my_callback)

My_model here is an intance to hooking a callback, but how can I hook the callback for a Model, like Ticket?
>>> Ticket.river.status.hook_post_transition(ticket_log)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'ClassWorkflowObject' object has no attribute 'hook_post_transition'

'ClassWorkflowObject' object has no attribute 'hook_post_transition'

Hi @farlandliu , Let me loot at it.

Hi @farlandliu, It is not supported at the class level right now. You have to register it on per object. It is supposed to be on your model object.

It is gonna be supported on next minor version @farlandliu .


Flet APK exit gracefully

Im sorry for the issue, because I know it should be rather in discussion, but there is near zero activity there...
How do I make custom "cleanup" logic right before closing (destroying, removing from memory) the android app?
I have one discussion about that, but seems it stuck
(https://github.com/flet-dev/flet/discussions/3555)
The guy from that discussoin advices to use "on_app_lifecycle_state_change"
And this is what I came (but "cleanup" logic does not work):
import flet as ft

def main(page: ft.Page):
    page.title = "Flet counter example"
    page.vertical_alignment = ft.MainAxisAlignment.CENTER

    txt_number = ft.TextField(value="0", text_align=ft.TextAlign.RIGHT, width=100)
    number = page.client_storage.get("number")
    txt_number.value = number if number else "0"

    def minus_click(e):
        txt_number.value = str(int(txt_number.value) - 1)
        page.update()

    def plus_click(e):
        txt_number.value = str(int(txt_number.value) + 1)
        page.update()

    row = ft.Row(
            [
                ft.IconButton(ft.icons.REMOVE, on_click=minus_click),
                txt_number,
                ft.IconButton(ft.icons.ADD, on_click=plus_click),
            ],
            alignment=ft.MainAxisAlignment.CENTER,

        )

    page.add(
            row,
    )

    def handler(e:ft.AppLifecycleStateChangeEvent):
        if e.data == ft.AppLifecycleState.DETACH:
            page.client_storage.set("number", txt_number.value)
            page.window.destroy()

    page.on_app_lifecycle_state_change = handler
    page.window.prevent_close = True

ft.app(main)

So It is a simple counter modifyed so that when you exit (close) app it should save last value,
But it doesnt.
The apk compiled successfully, and launches on my phone. All works except that
"ft.AppLifecycleState.DETACH" seems never happen.
What Am I doing wrong?

AppLifecycleState.DETACH

https://api.flutter.dev/flutter/dart-ui/AppLifecycleState.html

import flet as ft

def main(page: ft.Page):
    page.title = "Flet counter example"
    page.vertical_alignment = ft.MainAxisAlignment.CENTER

    txt_number = ft.TextField(value="0", text_align=ft.TextAlign.RIGHT, width=100)
    number = page.client_storage.get("number")
    txt_number.value = number if number else "0"

    def minus_click(e):
        txt_number.value = str(int(txt_number.value) - 1)
        page.update()

    def plus_click(e):
        txt_number.value = str(int(txt_number.value) + 1)
        page.update()

    row = ft.Row(
        [
            ft.IconButton(ft.icons.REMOVE, on_click=minus_click),
            txt_number,
            ft.IconButton(ft.icons.ADD, on_click=plus_click),
        ],
        alignment=ft.MainAxisAlignment.CENTER,

    )

    page.add(
        row,
    )

    def handler(e: ft.AppLifecycleStateChangeEvent):
        print(e.state)
        # ft.AppLifecycleState.DETACH only running on IOS and Android
        if e.state == ft.AppLifecycleState.DETACH:
            page.client_storage.set("number", txt_number.value)
            page.window_destroy()

    page.on_app_lifecycle_state_change = handler
    page.window_prevent_close = True

ft.app(main)

ft.AppLifecycleState.DETACH only running on IOS and Android

So what?
Did you read my question to the end?
I wrote that
"The apk compiled successfully, and launches on my phone.
All works except that
"ft.AppLifecycleState.DETACH" seems never happen."

I'm sorry I didn't see it.
But the last codes I wrote work without any problems on my Android 12 device.

@ixenion I'm sorry I didn't see it.
But the last codes I wrote work without any problems on my Android 12 device. I can only see DETACH working. So the event is triggered, there are deficiencies in the other codes coming from behind, I couldn't deal with them separately.

Did you managed to run it successuffly?
I mean, when you exit (completely close, forse stop, whatever) the app remembers last value
on next startup?
What is your flet and flutte version?
Could you provide link to the apk youv built?
Because I tryed your code, and got same results as mine?

Yes, it does not save the value at exit. I said this before because there is something missing in its codes.

Yes, it does not save the value at exit. I said this before because there is something missing in its codes. The issue I was focusing on was whether the DETACH event was triggered or not.

How did you know it worked (DETACH) if the value wasnt saved?

Devs careless attitude is astonishing.
Look https://github.com/flet-dev/flet/issues/3610

He even linked wrong issue. 3566 is not mine and reports about absolutely different thing.
Im afraid with such attitude my "question will be addressed" not very soon

Sorry for the wrong link.
Except from that, let's keep only this issue opened.

Why it can take so long?
Im not asking to add featire to the lib,
The question is very simple:
Is it possible or not?

Sorry for the wrong link. Except from that, let's keep only this issue opened.

Why it can take so long?
Im not asking to add featire to the lib,
The question is very simple:
Is it possible or not?

Yes, it does not save the value at exit. I said this before because there is something missing in its codes. The issue I was focusing on was whether the DETACH event was triggered or not.

Hello?...

Hi @ixenion

Hi @ixenion

Dude lol
Iv asked
"How did you know it worked (DETACH) if the value wasnt saved?"

Why no one can read properly?..
I have to repeat questions multiple times,
Its very very very annoying.
Guys c'mon

Why no one can simply read?.. I have to repeat questions multiple times, Its very very very annoying. Guys c'mon

Thats why Im opening exactly same new issues.

@FeodorFitsner
Could you check this issue from ths start?
Seems you are in charge of "AppLifecycleState" class:


Tests can't be built with configure.py

configure.py doesn't support building/running tests since https://github.com/ninja-build/ninja/pull/1562.
This is tricky for us downstream, as to run tests (which is something we care about, especially for a critical package like ninja), we would need to use the CMake build - but then we get a circular dependency with e.g. ninja->cmake->jsoncpp->ninja.
Could test support please be restored to configure.py?
This is similar to https://github.com/ninja-build/ninja/pull/2423.

I have uploaded a PR to build ninja_test with GoogleTest, but this requires a source checkout of the library. (Because probing for an installed version + linking against it is error prone and full of system-specific gotchas, and the CMake build already does that).

Many thanks @digit-google!


Update README.md

This is a comment

Making yet another comment

A comment now that I've accepted the permissions

This is a phrase hello bot


Alignment to ? support

var a = (condition)? expression1: expression2;
var aaaaaa= (bbbbb)? 1:2;
var agd= (ccc)? 123:456;

to
var a     = (condition)? expression1: expression2;
var aaaaaa= (bbbbb)    ? 1          :  2;
var agd   = (ccc)      ? 123        : 456;

instead of
var a     = (condition)? expression1: expression2;
var aaaaaa= (bbbbb)? 1              :  2;
var agd   = (ccc)? 123              : 456;

code should be
var a = (condition) ? expression1 : expression2;
var aaaaaa = (bbbbb) ? 1 : 2;
var agd = (ccc) ? 123 : 456;

It can be config by alignment.chars in VS Code.
close


V2

Thanks for the additions, but closing because this ignores my comment on in #102, that these features are still WIP, not expected to work and are going to be implemented in the next week. I can only repeat this a third time, sorry. It remains true, that you can surely add PRs for features that are improvable after those changes were applied. Again, I'll notify you then. Until then, happy new year.


Clicking on icon should yield adjust brightness.

🤷🏽♂ Current Behaviour
Feature Suggestions: Click on sun icon in unity tool bar, asks if I want to "show desktop dimmer"
🎯 Expected Behaviour
Feature Suggestions: Click on sun icon in unity tool bar and automatically show brightness sliders without having to click on a drop down menu to retrieve it.
I think it pretty obvious as to why I clicked on the icon, I want to change my brightness...
Just put version info in the brightness setting window, you already have the X there which quits the program.
App Version
v2.9.0
Installation Type
amd64 deb
Operating System
Ubuntu 14.04 LTS

Thanks for your reports. The desired behaviour is currently not implementable via Electron - if this should change, i'll reopen this issue.
Cheers,
S