May be use RHVoice?

https://github.com/Olga-Yakovleva/RHVoice
IMHO more pleasant and natural voice. you can choose in the settings which speech synthesizer to use.

@Ilia1 could you provide a demo or sample audio from that project? Is there an apt package? How do we integrate it into Dragonfire? Seems like we have to compile it on installation which I don't like the idea of "compiling" on installation time. If you can find a way to pack Dragonfire with a pre-compiled solution of RHVoice then we can think using it.

https://launchpad.net/~linvinus/+archive/ubuntu/rhvoice/
there is a repository, but it has not been updated for a long time (version 0.7 has already been released). There are also examples of speech synthesis.

@Ilia1 we cannot add apt repositories to the user's system. It should be available in Ubuntu's official repositories if we will use it.

you did not plan to create a repository for your program? install from deb package and constantly check for updates is not very convenient.

@Ilia1 Dragonfire is a not a library nor can be a dependency for a software. So it's not necessary. We tried to put Dragonfire into Debian's repositories but nearly half of our dependencies are pip packages and they are not available in Debian's repositories. Because of this reason we are unable to achieve that at this moment. In the future, it can be possible.
P.S. to become a Debian package you should only depend on apt packages. That's the Debian's policy.


chore: add fantom support

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


include help pages in image

we should enable including the generated help.md from this cekit feature
https://cekit.readthedocs.io/en/latest/image_help_pages.html

I did, it's merged into cekit now:: https://github.com/cekit/cekit/issues/377

Except: https://github.com/cekit/cekit/issues/504


Couldn't use RTS CMS image urls with Play SRG image service

Issue type
Incorrect content result
Description of the problem
#44 is moving the whole library to one common image service: Play SRG image service.
Issue found with image urls from rts.ch CMS.

With 18.0.0 library release, the current fix is to not used Play SRG image service for RTS CMS image urls.
The business unit scaling image service is still used, using the convention of https:[BU].ch/[image path]/scale/width/[width].

Waiting an image service update from RTS in 2023 Q3 or Q4.
Environment information

Library version: starting from 18.0.0
iOS / tvOS version: Any
Device: Any

Reproducibility
Always reproducible
Code sample
[[self.dataProvider mediaWithURN:@"urn:rts:audio:14145940" completionBlock:^(SRGMedia * _Nullable media,
        // "imageUrl" = "https://www.rts.ch/2021/04/30/14/43/7978319.image/16x9"

        NSURL *imageURL = [self.dataProvider URLForImage:media.image withWidth:SRGImageWidth320];
        // Using Play SRG image service: "https://il.srgssr.ch/images/?imageUrl=https://www.rts.ch/2021/04/30/14/43/7978319.image/16x9&format=jpg&width=320"

        UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:imageURL]];
        // 16:9 ratio or a square ratio expected, but with correct content.
        // Currently, it's the raw image returns.

    }] resume];

RTS audio image urls has 16x9 in its path, but it's not used correctly by RTS CMS image service: internal SRG ticket created.

The related internal ticket for RTS as been tackled by @bgaudaen.
Few image caches could exist but now, the RTS image urls are compatible with Play SRG image service.
The workaround introduced in #44 could be removed.

We'll try to clean RTS show image cache, by updating the image urls.
Tested in Play RTS iOS, wrong ratio image still delivered.
Script to get all Play RTS main show images:
#!/bin/bash

# Initialize an empty array to store show image URLs
show_image_urls=()
# Initialize an empty array to store show image IDs
show_image_ids=()

# Define the URL to remove
url_to_remove="https://ws.srf.ch/asset/image/audio/8b32fd87-459e-40f1-9519-ba0cbb01f34e/NOT_SPECIFIED.jpg"

# Define the API URLs
api_urls=(
  "https://il.srgssr.ch/integrationlayer/2.0/rts/showList/tv/alphabetical?pageSize=unlimited"
  "https://il.srgssr.ch/integrationlayer/2.0/rts/showList/radio/alphabeticalByChannel/a9e7621504c6959e35c3ecbe7f6bed0446cdf8da?pageSize=unlimited"
  "https://il.srgssr.ch/integrationlayer/2.0/rts/showList/radio/alphabeticalByChannel/a83f29dee7a5d0d3f9fccdb9c92161b1afb512db?pageSize=unlimited"
  "https://il.srgssr.ch/integrationlayer/2.0/rts/showList/radio/alphabeticalByChannel/8ceb28d9b3f1dd876d1df1780f908578cbefc3d7?pageSize=unlimited"
  "https://il.srgssr.ch/integrationlayer/2.0/rts/showList/radio/alphabeticalByChannel/f8517e5319a515e013551eea15aa114fa5cfbc3a?pageSize=unlimited"
  "https://il.srgssr.ch/integrationlayer/2.0/rts/showList/radio/alphabeticalByChannel/123456789101112131415161718192021222324x?pageSize=unlimited"
)

# Loop through the API URLs
for url in "${api_urls[@]}"; do
  # Make a GET request using curl and parse the JSON response with jq
  response=$(curl -s "$url" | jq -r '.showList[]?.imageUrl')

  # Add the parsed image URLs to the show_image_urls array, excluding the URL to remove
  show_image_urls+=($(echo "$response" | grep -vF "$url_to_remove"))
done

# Extract and store only the image IDs from the URLs
for url in "${show_image_urls[@]}"; do
  image_id=$(echo "$url" | sed -n 's/.*\/\([0-9]*\).image\/.*/\1/p')
  show_image_ids+=("$image_id")
done

# Export the merged array of show image URLs to a CSV file
csv_file="show_image_urls.csv"
for url in "${show_image_urls[@]}"; do
  echo "$url" >> "$csv_file"
done

echo "CSV file '$csv_file' has been created with the show image URLs."

# Export the array of show image IDs to a second CSV file
csv_file_ids="show_image_ids.csv"
for id in "${show_image_ids[@]}"; do
  echo "$id" >> "$csv_file_ids"
done

echo "CSV file '$csv_file_ids' has been created with the show image IDs."


Feature/shortcode authorization update

Ticket: #19
Issue
Review and update the Shortcode Authorization Class
Solution
I reviewed the code, and implemented a small change to how the Shortcode Policy class is implemented so it accepts a tag name so we do not have to hard code the name of the shortcode tag in the UserRoleShortcodePolicy class.
Testing
The ShortcodeAuthorizationPolicyTest has been updated to reflect the change in the Shortcode Policy class.

@dknoben looks like there were some merge conflicts. Can you resolve your branch against master and push again?

Merge conflicts resolved.

@dknoben this is looking good, there are just a few coding standards issues to take care of. "All checks have failed" because Travis is running code sniffer tests. Run lando sniff to find out what it's complaining about. I think you can run lando php vendor/bin/phpcbf to fix most of the issues automatically.
Good to go after that, thanks again!

Hey @dknoben - phpcbf was able to fix almost all the issues, so don't worry about the issues you were having with codesniffer for now. Let's discuss later.


Documentation Does not State when it is ok to NOT Explicitly Add FK Shadow Properties Before Using Them

From this page: https://docs.microsoft.com/en-us/ef/core/modeling/relationships?tabs=fluent-api%2Cfluent-api-simple-key%2Csimple-key#shadow-foreign-key
"We recommend explicitly adding the shadow property to the model before using it as a foreign key (as shown below)."
WHY is it recommended (no explanation on the page)?  What will happen if I don't?  Do I have to follow this rule across the board?
I am trying to reduce volume of code. There's no explanation of what would happen if you call the .HasForeignKey(""BlogForeignKey") method without having explicitly added the Shadow Property beforehand. How do I know whether or not I can omit the explicit property addition?
I don't want to rely on convention, but I don't want to have heavily redundant code either.  I just want to call .HasForeignKey() and pass the column name for the foreign key and then know that the model will be complete.

After playing around with other pieces of the frameworking, I'm guessing this might throw an exception if "BlogForeignKey" doesn't exist on the entity and hasn't been added a shadow property.  But I'm only guessing.  Would be helpful if the behavior was noted in the documentation.

@pha3z The recommendation is there because it allows the type of the shadow FK property to be explicitly specified. This avoids getting a type you don't expect, especially with regards to nullability. Putting this issue on the backlog to make this clearer in the docs.

I don't want to rely on convention, but I don't want to have heavily redundant code either.

I think you'll find it hard to not rely on any conventions when building the model. Also, the more conventions you don't use, then, by definition, the more redundant code you will have.

I don't want to rely on convention, but I don't want to have heavily redundant code either.

My statement was misleading as I didn't have a full appreciation of the problem space yet. My apologies. The real problem for me turned out to be that EF doesn't encourage you to configure its conventions (or even offer you a way to do so).  I was able to work around this elegantly by adding my own extension methods for ReferenceBuilder, ReferenceCollectionBuilder, etc. as needed so that I could employ my own conventions.  It greatly cleaned up my models and enhanced both maintainability and readability.
I wonder if it would be an improvement to make conventions configurable or if it would just make the system too complicated to understand. At the very least, maybe documenting an example pattern for someone to employ their own conventions with extension methods might be helpful.  I wrestled for a long time with getting EF to do what I wanted until I realized I just needed to setup my own conventions.

My statement was misleading as I didn't have a full appreciation of the problem space yet. My apologies. The real problem for me turned out to be that EF doesn't encourage you to configure its conventions (or even offer you a way to do so). I was able to work around this elegantly by adding extension methods for ReferenceBuilder, ReferenceCollectionBuilder, etc. so that I could employ my own conventions. It greatly cleaned up my models and enhanced both maintainability and readability.
I wonder if it would be an improvement to make conventions configurable or if it would make the system too complicated to understand and maintain. At the very least, maybe documenting an example pattern for someone to employ their own conventions with extension methods might be helpful. I wrestled for a long time with getting EF to do what I wanted until I realized I just needed to setup my own conventions.

@pha3z The conventions system was initially internal, but we have been working on making it public over the past few releases. It's now possible for database providers and extensions to introduce public conventions. The final part of this (applications changing/introducing conventions) is likely going to be in 6.0. See #214.
That being said, conventions are not trivial to implement, especially where there are interactions between different conventions. So changing the conventions is likely to be a fairly advanced thing to do. In general, extension methods (probably like the ones you mention) or bulk configuration of the underlying model are usually a more pragmatic choice for app developers.


Use transport abstraction and transport-abstracted references

This demonstrates https://github.com/containers/image/pull/33 .

:+1:


Strange customisation warning

Problem description
I have built a customisation of one of the Material UI component successfully. However at runtime, I'm getting a strange warning.
Steps to reproduce
import * as React from "react";

import { TextField } from "material-ui";
import { withStyles } from "material-ui/styles";
import { Theme } from "material-ui/styles/theme";

import { Styles, StylingProps } from ".";

type Classes = "inkbar" | "underline";

const styles = (theme: Theme): Styles<Classes> => ({
    inkbar: {
        "&:after": {
            backgroundColor: theme.palette.primary[500]
        }
    },
    underline: {
        "&:hover:not($disabled):before": {
            height: "1px !important"
        }
    }
});

interface TextInputProps {
    placeholder: string;
}

class TextInput extends React.Component<StylingProps<Classes> & TextInputProps> {
    render() {
        const {classes} = this.props;
        const {placeholder} = this.props;
        return <TextField fullWidth={true} {...{ placeholder }} InputProps={{ classes } as {}} />;
    }
}

export default withStyles<TextInputProps>(styles)(TextInput);

The customization works as expected but I'm running, the following warning is thrown:
Warning: Material-UI: the key `.TextInput-inkbar-11:after` provided to the classes property object is not implemented in Input.
You can only overrides one of the following: root,formControl,inkbar...

am I doing something wrong?
Versions

Material-UI: v1-beta6

am I doing something wrong?

Have a look at the classes structure object. Something is definitely wrong.

@oliviertassinari Thank you so much for giving the lead on this.
The classes struct looked like this:
{inkbar: "TextInput-inkbar-11", underline: "TextInput-underline-12", .TextInput-inkbar-11:after: "TextInput-inkbar-11:after", .TextInput-underline-12:hover:not(disabled):before: "TextInput-underline-12:hover:not(disabled):before"}

So I had to filter the  .TextInput-inkbar-11:after and .TextInput-underline-12:hover:not(disabled):before properties to get rid of the warning. Is this a bug?
I'm also getting the following warning:
Warning: [JSS] Could not find the referenced rule disabled in TextInput.

Probably because I don't use these rules in TextInput but only to pass them into the subcomponent? Is there a way I could get rid of this warning as well?

So I had to filter the .TextInput-inkbar-11:after and .TextInput-underline-12:hover:not(disabled):before properties to get rid of the warning. Is this a bug?

I have been noticing the same thing. I could be a JSS issue. @kof Any light on this point? 💡

Probably because I don't use these rules in TextInput but only to pass them into the subcomponent?

On the other hand, it's the expected behavior. $disabled is scoped to the styles you are declaring.

@oliviertassinari anyway I can update my code to not have the last warning?

@wcandillon
const styles = (theme: Theme): Styles<Classes> => ({
    inkbar: {
        "&:after": {
            backgroundColor: theme.palette.primary[500]
        }
    },
    underline: {
        "&:hover:not($disabled):before": {
            height: "1px !important"
        }
    }
+   disable: {},
});

Which warning are we talking about, from reading I see 2 warnings mentioned.
One is from MUI, happens when structure passed in overrides doesn't match the one used by mui in the component.
In this regard I also had some issues, we should allow defining additional styles to what mui is using.
Another is from JSS, happens when there is no matching rule referenced over jss-extend or jss-compose.
If you log the resulting object that is being passed to JSS, you should be able to see that it is missing.

@kof @oliviertassinari Thanks for your support, I got rid of all warnings :)

@oliviertassinari should we create a separate issue for relaxing overrides?

One is from MUI, happens when structure passed in overrides doesn't match the one used by mui in the component.

@kof The behaviour I'm referring to comes from createStyleSheet().classes that returns something like:
{
  inkbar: "TextInput-inkbar-11",
  underline: "TextInput-underline-12",
  .TextInput-inkbar-11:after: "TextInput-inkbar-11:after",
  .TextInput-underline-12:hover:not(disabled):before: "TextInput-underline-12:hover:not(disabled):before"
}

Instead of
{
  inkbar: "TextInput-inkbar-11",
  underline: "TextInput-underline-12",
}

I had to handle this point in the automatic classes documentation generation. I filter some invalid key.
https://github.com/callemall/material-ui/blob/5c85bf7ab85d19b166f7ed6c5b2b59ead07f9d09/docs/scripts/buildApi.js#L46-L52
Maybe it's expected?

Not it's not expected, can someone create a reproducible webpackbin? Also what JSS version?

@kof, let me try

https://codesandbox.io/s/o9rrpml23y

@oliviertassinari @kof I have another tiny minor issue with the code snippet that will probably come up as well with your users. The customized inkbar rule takes precedence over default error rule. See screenshot: https://www.dropbox.com/s/31v7yzg07edurhe/Screenshot 2017-09-05 15.11.23.png?dl=0
To fix this issue, I have to create a customized error rule which is identical to the default one:
const styles = (theme: Theme): Styles<Classes> => ({
    inkbar: {
        "&:after": {
            backgroundColor: theme.palette.primary[500]
        }
    },
    error: {
        "&:after": {
            backgroundColor: theme.palette.error[500]
        }
    },
    disabled: {}
});

Just thought it was worth mentioning.

@wcandillon Yes, I do think that it's the expected CSS specificity behavior. You have to take into account injection order and the depth of the selector. I'm closing as I don't think we can do much to move forward on our end. Hopefully, https://codesandbox.io/s/o9rrpml23y will help @kof.

already fixed in<EMAIL_ADDRESS>https://codesandbox.io/s/6zl02z88ow

@kof Awesome, can't wait to upgrade.

@oliviertassinari You probably lost track of this one since it was already closed, but we still need to bump JSS to v9 (or 9.1) to fix this :)

@T-Grave The discussion moved to #8564

Hi
I cannot change the bar colour on checked
const GreenSwitch = withStyles({
switchBase: {
color: grey[300],
'&$checked': {
color: green[500]
}
},
bar: {
background: grey[200],
},
checked: {}
})(Switch);
Tried many things
Daniel

@GaddMaster Please open a new issue and fill out the issue template.

@GaddMaster We have restrucuted the swtich classes keys. You will find the new names under the latest demos of the customization, or opening your dev tools and inspecting the element.

@oliviertassinari
Thanks for reply. OK, Let me ask another question.
Link: https://material-ui.com/components/switches/
Row : Customize switches
Code:
const PurpleSwitch = withStyles({
switchBase: {
color: purple[300],
'&$checked': {
color: purple[500],
},
'&$checked + $track': {
backgroundColor: purple[500],
},
},
checked: {},
track: {},
})(Switch);
This is the code shared , and I did try this. It throws and error if you leave track{} in and throws and error without. I also cannot read anywhere how to change the bar using this style ? Can you advise ?
ERROR WITH: index.js:1437 Warning: Material-UI: the key track provided to the classes property is not implemented in Switch.
You can only override one of the following: root,icon,iconChecked,switchBase,checked,colorPrimary,colorSecondary,disabled,bar
ERROR WITHOUT: Warning: [JSS] Could not find the referenced rule track in WithStyles(Switch).
Also i tried changing the bar many ways at no success. I can change it before its checked, onlyu issue is after its checked ?
Daniel

Same thing happening to me as @GaddMaster


I am a newbie about nk plugins and I want to ask some questions

1.I tried to pakage the "Actaeon" plugin ,but I failed.It showed some information :java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:719)
2.请问是中国人吗:-)

Please give me the full stack trace :D

This is how i place the source files and the full stack trace :D (I AM USING THE FDevtools)

I think it is bug of Nukkit.
Download from my Jenkins and try again.

Thank you XD.I think u can add a link of your Jenkins in "README" file.

I have added repository to Jenkins just now, I will add it soon. Thanks!


[camera] Support device orientation and camera facing detection on Windows platform

Use case
#4641 adds support for camera on Windows platform but is missing implementation for

Device orientation detection
Camera facing detection

Proposal
Device orientation
Screen on device orientation need to be handler by windows camera plugin.
Camera plugin implementation must be updated to handle also landscape devices with following rotations:
A landscape oriented devices, i.e. laptops:

landscapeLeft: 0 degrees
portraitUp: 90 degrees
landscapeRight: 180 degrees
portraitDown: 270 degrees

Where current portrait impementation uses following values:

portraitUp: 0 degrees
landscapeRight: 90 degrees
portraitDown: 180 degrees
landscapeLeft: 270 degrees

Camera plugin should send DeviceOrientationChangedEvent events via method channel.
Camera facing
Plugin should detect camera facing setting as it is one of the following:

front
back
external

On Windows 10+ platform this can be easily read from device with Win10 only DeviceInformation API.
Each camera device should have camera location/panel.
For Windows 8+ this information is not available via APIs, but devices and drivers should write this information to registry: link

As a hack I used RotatedBox widget and it worked fine for me
RotatedBox(
quarterTurns: 90,
child: AspectRatio(
aspectRatio: _previewSize!.width / _previewSize!.height,
child: _buildPreview(),
),
)

For ease of finding and duping to this issue in the future: a specific feature that is missing here is setting the mirror mode based on the camera facing (since we currently don't know the facing). See original PR discussion
Currently we mirror by default under the assumption that Windows machines are mostly laptop/desktop machines, where front-facing cameras are overwhelmingly more common.

During the test, I learned something new.
On the Surface Pro 7, it works without any problems, but on the Surface Pro 9, the rear camera is reversed left and right.
If you look at the preview in Blutooth and device > Camera > Surface Camera Rear, the screen is shown properly without inversion.
CameraDiscription(Surface Camera Rear <...>, CameraLensDirection.front, 0)


make selftest() work

Add declaration for ipv6, and temporarily disable missing symbol dasm_checkstep.
With these changes, selftest() runs but outputs 'integrity check failed'.

If DASM_CHECKS is undefined (e.g. no checks are desired at run-time), then dasm_checkstep() is an undefined symbol at run-time.
This fix attempts to make sure that macro replacement is not optimized away, even though sub-optimal at run-time compared to the previous #define dasm_checkstep(a, b)	0. Probably, there is a smarter way to fix that with less code and smaller impact on run-time.

@hb9cwp See https://github.com/SnabbCo/snabbswitch/pull/724 for the current LuaJIT/DynASM upgrade and https://github.com/eugeneia/snabbswitch/tree/esp2 for a branch containing a working ESP library.
Since you seem to be interested in lib.ipsec.esp: be warned that the code is neither production ready nor am I convinced that it actually satisfies the RFC specs. If you find any errors I would be very thankful to know about those. Happy hacking!

@eugeneia Thanks for your hints. Currently, I am debugging selftest() in my fork of your esp2 branch. Apart from RFC-compliance (which is not important at all for my prototype), there is only two byte mismatch between input and output datagrams, e.g. the Next Header byte at offset 20, and the byte at offset 19. This looks as if there is a problem between encapsulate() and/or decapsulate(). The good news is that ecryption and decryption of the payload appears to work!
If you don't mind, I will continue to push changes to my branch which will show up here too.

@hb9cwp That was a bug in the test, I fixed (and rebased, sorry) the esp2 branch and it should work now, try a git pull --rebase. Sorry for the confusion, I did not expect anyone to use that branch. By the way, the bug was related to an important culprit: the encapsulate and decapsulate methods destroy their input packets. I have just updated the documentation of encapsulate to reflect this (it failed to do so until now). E.g. you need to do this:
p1 = <somepacket>
p_enc = enc:encapsulate(p1)
-- p1 is now clobbered, don't refer to it, but it is not free'd so you
-- would usually do that now:
packet.free(p1)
p2 = dec:decapsulate(p_enc)
-- Now the same holds true for p_enc

@eugeneia Thanks Max for your help! selftest() is now passing, and I can include lib/ipsec/esp into my experiment :-) Closing PR.


Toggle as done via keyboard doesn't trigger toggle event

Please check that this issue hasn't been reported before.

[X] I searched previous Bug Reports didn't find any similar reports.

Expected Behavior
I press Command + Enter on the keyboard to toggle a todo as done and it behaves the same way as when I click done with the mouse - adding the completed mark and date.
Current behaviour
I press Command + Enter on the keyboard to toggle a todo as done and it doesn't add completed mark and date.
Steps to reproduce
Create ToDo (Command + Enter in my case).
Mark it done (another Command + Enter in my case).
Which Operating Systems are you using?

[ ] Android
[ ] iPhone/iPad
[ ] Linux
[X] macOS
[ ] Windows

Obsidian Version
1.0.3
Tasks Plugin Version
1.18.1
Checks

[X] I have tried it with all other plugins disabled and the error still occurs

Possible solution
Guess keyboard triggered toggle shall be handled, guess it doesn't currently?

Hi,
What prompted you to expect that Tasks would do anything on that shortcut please? Do I have some documentation that needs fixing?
Tasks does not assign any keyboard shortcuts for commands. This is discouraged by the Obsidian team, to avoid creating conflicts for users.
This is why the installation instructions for Tasks suggests that users may wish to change the command associated with Cmd/Ctrl  + Enter.
Could you please kindly confirm whether you have done that installation step? Thank you.

Hi @claremacrae and thank you for your prompt response!

What prompted you to expect that Tasks would do anything on that shortcut please?

Nothing else than a gut feeling that the extension must handle the toggle event somehow, actually... 🤷🏻♂
But, you are absolutely correct - I shall be changing a shortcut to let your plugin to handle things - it works like it should, thanks!
A few questions though, if you don't mind?

When I now toggle a new todo by typing Command+Enter, I'm getting just a list first - - , and only after a second Cmd + Enter it converts into a todo box, that I can cross with another Cmd+Enter - is it an intended behavior as well?
Is there any way to replace the ✅ symbol? I really appreciate the timestamp, but another colorful tick mark seems like too much for my visual settings, I would rather replace it with ✓ or just done at ...

If my wishes are outside of the scope of the module, probably, you are aware of some of the other extensions that do just that? I've tried to find them, but didn't find any, any help would be much appreciated!

What prompted you to expect that Tasks would do anything on that shortcut please?

Nothing else than a gut feeling that the extension must handle the toggle event somehow, actually... 🤷🏻♂

Totally valid!!!

When I now toggle a new todo by typing Command+Enter, I'm getting just a list first - - , and only after a second Cmd + Enter it converts into a todo box, that I can cross with another Cmd+Enter - is it an intended behavior as well?

Totally agreed. It's being tracked already in #1158.

Is there any way to replace the ✅ symbol? I really appreciate the timestamp, but another colorful tick mark seems like too much for my visual settings, I would rather replace it with ✓ or just done at ...

A popular request... Please see:

Work currently being done for #877 will give you control over what it looks like - so you could hide it or tone it down
#373 has enough votes that it is likely to happen, although I do not know when

If my wishes are outside of the scope of the module, probably, you are aware of some of the other extensions that do just that? I've tried to find them, but didn't find any, any help would be much appreciated!

No they're all in scope... And in these particular cases, I feel they are pretty high priority. They are just competing with other high priority things!
So, please stick around and you are likely to see them improving at some point.
And in the meantime, do up-vote (up-arrow) the Discussion ones you want to see - and 👍  the Issues you want to see...

Thank you, @claremacrae ! I've upvoted everything I could :)
Hope it's all goes well and sooner than planned ;)

Is there any way to replace the ✅ symbol? I really appreciate the timestamp, but another colorful tick mark seems like too much for my visual settings, I would rather replace it with ✓ or just done at ...

A popular request... Please see:

Work currently being done for Themeability / CSS friendliness Suggestion #877 will give you control over what it looks like - so you could hide it or tone it down
Support dataview key-value signifiers in task lines - for fields already supported by Tasks #373 has enough votes that it is likely to happen, although I do not know when

@claremacrae , please, forgive me if that's a dump question, but given that all of the tasks are done, how do I make my white on green done symbol with something less colorful?
I've checked the tasks and docs, but I still don't know what to do.
If you could give me any hints, that would be much much appreciated!

Hi @alexander-potemkin I try to keep each ticket to one topic.
Please create a new Discussion of type Q&A and show me (as text) some example of tasks that you want to style.
Tell me theme you are using, if any.
Show me a screenshot of your Tasks status settings.
And if you have any snippets enabled that style tasks, please attach those to too.
Thank you.

@claremacrae , thank you and sure - done.


Are there any new features?

Whether the left directory tree can be sorted by directory and alphabetically.

Whether the code area can be edited. For example, when viewing the source code, you want to add some comments and save them for future viewing.

After viewing the file A.hs/B.hs/C.hs sequentially, can you provide a shortcut key to quickly jump to the previous browsed file. For example, when viewing C.hs, use the shortcut key to return to the B.hs file.

Integrate with development tools such as vs-code or IntelliJ IDEA？

Hi,

It definitely makes sense to be able to sort files in alphabetical order. It should be quite easy to implement (this feature is purely client-side). I will work on it this week.

haskell-code-explorer explicitly does not support modifications of the source code. It is a trade-off that makes the architecture of haskell-code-explorer much simpler than that of a full-blown IDE.

When you click on an identifier, the JavaScipt application adds a URL of the current line (e.g., /package/base-<IP_ADDRESS>/show/GHC/Conc/Signal.hs#L69) to browser history and then shows the definition site of the identifier. So, it is possible to use browser back button or Alt/Option + Left Arrow shortcut key (in Chrome and Firefox) to return to the previously browsed file.

Integration with code editors is possible, but it would require significant effort (#32).
There are development tools for Haskell that are specifically designed to add code intelligence features (go to definition, type and documentation on hover, code completion) to existing code editors:
https://github.com/haskell/haskell-ide-engine works with VS Code, Vim and Emacs
https://github.com/rikvdkleij/intellij-haskell is a plugin for IntelliJ IDEA

thank you, this project is really good, even better than haskell-ide-engine, come on

6954dbf99e66052cf7a0518355088d62bfdec5dd adds an option to sort files by name/type. By default, files are sorted by name (in alphabetical order).


Manage labels in triagebot.toml

What
Would like to define labels in triagebot.toml and make them in sync with GitHub. Maybe sync them from triagebot.toml but not the other way around.
From: https://github.com/rust-lang/cargo/pull/11679#issuecomment-1416699208
How
Given an autolabel table:
[autolabel."A-dependency-resolution"]
description = "Area: dependency resolution and the resolver"
color = "fbca04"
trigger_files = [
  "benches/benchsuite/benches/resolve.rs",
  "crates/resolver-tests/",
  "src/cargo/core/resolver/",
]

triagebot will try to create or update that label when triagebot.toml gets updates.

I could help the work if this feature is accepted. Thank you :)

just to be sure I understand: this feature request is aiming at embedding into the triagebot a logic to read a list of fixed rules (such as these) from its config file in order to autolabel issues or pull requests. Changing the triagebot.toml (and restarting the bot) will apply a different set of rules to new issues/PRs thereafter. Am I reading correctly the proposal?
I can see (-ish) the point of centralizing this into the triagebot, but my instinct is that the right place for these 110 lines of configuration should be a config file. Also I'm a bit afraid of the maintenaince chore. Labelling rules change over time, moving this into the triagebot will make cargo depend on the triagebot maintainers to approve changes? How can the triagebot understand to apply autolabelling only to rust-lang/cargo and not other rust-lang/* projects?
The part about syncing labels with Github is slightly unclear to me, I don't understand the direction of the workflow. Is the triagebot supposed to update Github labels or viceversa?
Second thought (more about the implementation): how, when and how often would these labels be synced with github? where would the triagebot store these rules?

I don't think creation of labels needs to be part of auto label (you might want a label but not automate tagging PRs with it).
I think the label definitions would live per repository (triagebot.toml already lives in each repository), so this seems quite reasonable - not sure I follow discussion around cargo.

Am I reading correctly the proposal?

I am not sure if we are on the same page. Autolabeling is already a thing. What I request here is an extension of autolabels feature: "If triagebot notices there is a [autolabel."<label-name>"], create a label if not exists, or update it."
@Mark-Simulacrum, do you suggest a new table for the defining labels? I am a bit afraid of those definitions becoming duplicated.

Yes, a separate table makes sense to me. I'm not very worried about duplication, the two sections can be side by side.

sorry I clearly had not enough context to express an opinion. Thanks for clarifying.


Improve no-container Radio and Checkbox disabled styling

Related issue
Resolves #3218
Overview
This fixes and improves the disabled styling for no-container Radio and Checkboxes
Link to preview
https://5e25c277526d380020b5e418-nuxcasdqor.chromatic.com/
Reason
To make sure no-container Checkboxes and Radios have appropriate styling when disabled.
Work carried out

[x] Update styles
[x] Add additional stories

Screenshot
Checkbox
Before

After

Radio
Before

After

Developer notes
n/a

Just spotted the disabled radio checkmark styling was still a bit off – now fixed.


Support outline styling

The outline style exists but is not actually used. Outline styles are typically used for focus styling, so they are important to support.

We need to discuss whether we want to support this and also whether we want to support border / outline offset, which may be needed to make the outline around a focused filled button easier to see.

We will not support outline styling, as it does not make sense to have two ways to do the same thing. We will support border offset, and this issue will track that.

I implemented border offset and made it so that the filled button uses it in the commits above.


FAB to Toolbar not working on mobile

I think a comment is not necessary :) How to fix this?

Can you show the code?

Copied from website. Nothing changed.

                mode_edit

format_quote

publish

attach_file

I don't know why but when I changed view to PC and than go back to Mobile, everything works fine.
When I try on different phone. Everything was fine from the beginning. Strange.
Sorry for trouble.


Nothing firing on pubsub

I can't get pubsub events to fire - I have the following set up - with one OAuth token with all scope options, and the channel ID for that same user:
users_oauth_token = "..." # valid user token
users_channel_id= "..." # valid user id

print(f"PubSub: got {self.channel} ({users_channel_id})")

loop = asyncio.new_event_loop()

client = twitchio.Client(token=users_oauth_token, loop=loop)
client.pubsub = pubsub.PubSubPool(client)

print(f"Listening to {self.channel}")

@client.event()
async def event_pubsub_channel_points(event: pubsub.PubSubChannelPointsMessage):
    print("HELLO")

async def go():
    topics = [
        pubsub.channel_points(users_oauth_token)[users_channel_id]
    ]

    await client.pubsub.subscribe_topics(topics)
    await client.start()

client.loop.run_until_complete(go())

When I redeem channel rewards, nothing happens - I never see "HELLO".
The only slightly different thing I've done that's not in the doco is that I have this running in its own thread (hence loop = ) but client.start() appears to launch fine.

Remember, this will only trigger on custom rewards and not the pre existing built in ones from Twitch, this is a Twitch design.
Ideally your bot should be using its own token and not the streamer's. We have better examples in the discord that I'll upload to the repo soon.
Loop= has been deprecated from asyncio and will be completely removed from the lib in the next major update.
If this doesn't solve your issue then please join the discord to discuss further, I'd also suggest to enable logging debug for further details.

This was on a custom command.
Sorry, channel id was an int - I just redacted badly.
In this instance, the bot is running on its own channel (trying to simplify for test case)

I now have this working, based on an example I found on discord:
bot_token = "..." # valid bot token
users_oauth_token = "..." # valid user token
users_channel_id = 12345 # valid channel id

print(f"PubSub: got {self.channel} ({users_channel_id})")

loop = asyncio.new_event_loop()

client = twitchio.Client(token=bot_token, loop=loop)
client.pubsub = pubsub.PubSubPool(client)

print(f"Listening to {self.channel}")

@client.event()
async def event_pubsub_channel_points(event: pubsub.PubSubChannelPointsMessage):
    print(event.id)

async def go():
    topics = [
        pubsub.channel_points(users_oauth_token)[users_channel_id]
    ]

    await client.pubsub.subscribe_topics(topics)
    await client.connect()

client.loop.create_task(go())
client.loop.run_forever()

Using loop is required here since this is happening in a thread in my app - this is all wrapped in a function that's being called with Thread(...). So not sure about longevity if that's going away.
I'm not sure what the mechanical difference between those two scenarios is, but have it working for now.

The issue with yours was you had run_until_complete, so the loop runs only once and ends as it completes.


[backport] Fix cooperative kernel launch

Backport of #3894

[automatic post] Jenkins, test this please.

Duplicate of #4887.

Jenkins CI test (for commit bb1718082cb730b3a4a7ab4710b278fb59645edb, target branch v8) failed with status FAILURE.


Allow Users add comments in Github.Party

Like Yelp. ( Feel free to close this PR if you don't like it :)

@revel/core thoughts?

@tvvocold could you explain what we gain from this?

I just looked at the site, and I cant figure out what its about... or am i missing something ?

@pedromorgan It looks like HN.

Well, You can check our FAQ and find some githubers here.
As you can see, G.P provide a HN-like comments platform for opensource project.

:-1: there is no clear value that GH issues don't provide

@pushrax
Well, i don't think use GH issue traker for user's comment is a better way.
Issues are a great way to keep track of tasks, enhancements, and bugs for your projects.
-https://guides.github.com/features/issues/
Get/Post links/comments.
-https://github.party/item?id=5
If you just don't like it (users comments/upvote), feel free to close this PR:)

@tvvocold thanks for the offer, but at this time we can't afford the resources to manage another protal for our project. Closing for now.


RBQRealmNotificationManager not included in project

I can't run the demo project. there are no RBQRealmNotificationManager files

Sorry docs need to add the following commands to pull in the submodules after cloning:
git submodule init
git submodule update

ok thanks @bigfish24 . I got the project to run. Are there any extra bits of information that I should know about as far as installation is concerned in my own project? I'm trying to use the Swift Project

it looks like the SafeObject.swift class was not in the Cocoapod project

Ah that's a good point, the Cocoapods install needs updating to use the SafeObject pod. Oops!

Sorry, I take that back, it is including it, forgot Cocoapods handles submodules properly.
How did you do the install?

I just tested the example project using the normal Cocoapods install. I removed the linked files from the example app Xcode project directly and instead added SwiftFetchedResultsController to the pod file. I also removed the bridging header and added import SwiftFetchedResultsController to MainTableViewController.swift.
These changes make the example app use the library from Cocoapods versus linking to the files directly.  I didn't see the SwiftFetchedResultsController module and I was only importing the RBQFetchedResulttsController into my project. My mistake!

Don't sweat it! Glad you figured it out.
—
Sent from Mailbox
On Fri, Jan 15, 2016 at 10:34 AM, Give money to charity
<EMAIL_ADDRESS>wrote:

Ahh i see what the problem is! the problem is that I'm a huge moron. I didn't see the SwiftFetchedResultsController module and I was only importing the RBQFetchedResulttsController into my project. My mistake!
Reply to this email directly or view it on GitHub:
https://github.com/Roobiq/RBQFetchedResultsController/issues/59#issuecomment-172045614


fix error message

Scope & Purpose
Fix error message

[x] Bug-Fix for devel-branch (i.e. no need for backports?)

Testing & Verification
This change is a trivial rework / code cleanup without any test coverage.
https://<IP_ADDRESS>/view/PR/job/arangodb-matrix-pr/6785/

Tests blue


Hooks implement

convert Button, ButtonPanel and App component into functional component and hooks implement.
console bug fixed in operate file.
using spread operator in calculate file for copying old object.

I'd like to keep hooks out of this repository because it is meant to be an example for beginners, and hooks are still new.
I appreciate you looking at this - I would accept a separate bug fix PR.


Server won't load with this plugin installed

SpongeForge-1.10.2-2281-5.2.0-BETA-2315
OreAlerts-1.1
I'm assuming the mod needs updating as it seems to be very old?

Try this: https://github.com/prism/OreAlerts/releases/tag/1.2
I had yet to release an update since someone submitted PRs to update us to SpongeAPI 6.

Thank you for the fast reply, works perfectly
any plans on integrating the alerts to work with other mods and the ores in them like Biomes O Plenty?


Enhance coescheduling

Ⅰ. Describe what this PR does

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in make test

建议拆分成多个 PR，第一个 PR 可以只包含 apis/scheduling/v1alpha1/podgroup_types.go 和对应的 generated files & YAMLs.

建议拆分成多个 PR，第一个 PR 可以只包含 apis/scheduling/v1alpha1/podgroup_types.go 和对应的 generated files & YAMLs.

sorry, 我这个pr 点错了,  应该是我自己的仓库cr用的，我给关了，不好意思


The experimental results reproduced on the Amos dataset were poor

As shown in the picture，I experimented on the AMOS dataset, but the performance of the test results was poor. My network structure configuration is as follows. Have you done any experiments on the AMOS dataset?
root_path: ../../MEDICAL_DATASET/amos22
output: ./output
dataset: amos
split: train
num_classes: 13
max_iterations: 30000
max_epochs: 300
stop_epoch: 300
batch_size: 12
n_gpu: 3
deterministic: 1
base_lr: 0.005
img_size: 512
seed: 2345
vit_name: vit_b
ckpt: ../SAM-Adapter-PyTorch-main/SAM-Adapter-PyTorch-main/pretrained/sam_vit_b_01ec64.pth
lora_ckpt: None
rank: 5
warmup: True
warmup_period: 250
AdamW: True
module: sam_lora_image_encoder
dice_param: 0.9
is_pretrain: False
exp: amos_512

Sorry, right now we have tested only on Synapse, PROMISE12 and LA datasets. However, based on the performance on these 3 datasets, it is not reasonable to witness such a performance drop on AMOS. We can discuss to check on the training details.


When trying to deploy, gcr.io/google-containers/kube-scheduler:v1.18.8 is not found and install can';t complete

It seems that this image is not in the registry.

It seems that there is simply no skube-scheduler container image on grc-io, I am unsure of how I should proceed from here.

Hello @birdiesanders ,
The StorageOS Cluster Operator detects the version and distribution of Kubernetes and based on that, it sets the image for the scheduler, which is a Kubernetes official image. We are looking why this one is not accessible.
In the meantime, you can follow the installation by disabling the scheduler. In the StorageOSCluster Custom Resource, you can define
spec:
    disableScheduler: true

Of course it is better to have the scheduler extender installed because it influences the kubernetes scheduler to keep pods close to its data.

Hello @birdiesanders,
we have found that the latest release of Kubernetes didn't generate all the assets as usual. The repository where the kubescheduler official image changed. We are amending the references internally and checking the images for all previous versions for backwards compatibility. We will release a cluster image operator promptly.

Great work on being speedy! Looks like you were able to fix it with a one-line change! If only everything were so simple.

Hi @birdiesanders, we have released a Cluster Operator Patch with a fix for it (v2.2.0).
Thank you for helping us with this issue. It is greatly appreciate it!


unclear error if saga is missing

Referring to this result:
https://github.com/watem-sedem/pywatemsedem/actions/runs/10807367340/job/29978004069#step:8:5
there is no clear indication that saga is missing. Perhaps we should raise a clear warning if it is not found.
(at least, I think saga is the issue here).

(fyi, it was)


Add vcpkg installation instructions

EnTT is available as a port in vcpkg, a C++ library manager that simplifies installation for EnTT and other project dependencies. Documenting the install process here will help users get started by providing a single set of commands to build EnTT, ready to be included in their projects.
We also test whether our library ports build in various configurations (dynamic, static) on various platforms (OSX, Linux, Windows: x86, x64, UWP, ARM) to keep a wide coverage for users.
I'm a maintainer for vcpkg, and here is what the port script looks like. We try to keep the library maintained as close as possible to the original library.

Thank you very much for the PR and for the support! Really appreciated.
May I ask you what are the changes between your port and the original package?
I'm already working hard to keep EnTT working with VS. Is there something wrong with it?
Moreover, do you mind if I rework a bit the PR?
There is a section for package managers and vcpkg is already present. I'd rather move this note close to that part.

Hey @skypjack! My pleasure. As per the portfile, we run the existing CMake build integration and place the resulting binaries and Targets/Config modules in a standardized directory layout. Vcpkg ports automatically register with MSBuild, can be included via a CMake toolchain file, or exported as standalone libraries.
According to our CI systems, v3.1.1 is building on every single platform which we support, so you're all good there!
As for the section on package managers I'm sorry that I missed that! Feel free to rework the PR however you see fit; we're just trying to get some word out to the C/C++ community that many popular libraries can be built in a uniform and easy fashion.

As a follow up, I'm noticing that vcpkg is in fact mentioned in the packaging tools section. Perhaps we can move most of the content of this PR into that section so that:

Users have a set of commands they can copy + paste to install
Users are made aware that we rely on community contributions to ensure that EnTT stays up to date
Apart from those two points, the rest of the PR content is redundant. Let me know what you think!

Fine for me. Supporting Windows is one of the goal of this library, so your help and interest is definitely appreciated. :+1:
I'll merge and rework the PR soon, most likely during the weekend (I'm at work now, sorry). :+1:
Thank you again.

Sounds great! I'll be keeping an eye on this PR, so if you have any questions or if you'd simply like some feedback feel free to ping me. :smile:

I've added a (reviewed) note to the README. You can find it on the wip branch. It will land master soon.
I've also added you to the list of contributors. Thank you for helping with the vcpkg port.

Fantastic! Thanks for putting this through @skypjack, and thanks for putting me on the list of authors -- I very much appreciate the gesture. Let me know if there's anything I can do in the future to help out wrt EnTT and vcpkg!


Scroll text within bounding box

Don't know if this is possible but i want to use the scroll text function to be bound within certain dimensions. What is happening now is that on my 64x32 matrix the text scrolls from right to left over the entire display and what i want to achieve is that it's cut off at pixel 23 (calculated from the left side)
This is the current scroll text function
void scroll_horizontal(uint8_t ypos, unsigned long scroll_delay, String text, uint8_t colorR, uint8_t colorG, uint8_t colorB)
{
    uint16_t text_length = text.length();
    display.setTextWrap(false);  // we don't wrap text so it scrolls nicely
    display.setTextSize(2);
    display.setRotation(0);
    display.setTextColor(display.color565(colorR,colorG,colorB));

    // Asuming 5 pixel average character width
    for (int xpos=matrix_width; xpos>-(matrix_width+text_length*10); xpos--)
    {
      display.setTextColor(display.color565(colorR,colorG,colorB));
      display.clearDisplay();
      display.setCursor(xpos,ypos);
      display.println(text);
      delay(scroll_delay);
      yield();

      delay(scroll_delay/5);
      yield();

    }
}

Anyone got any idea if this is possible. If so, on how to achieve this.
Many thanks.

Had You tried this code? Go ahead...

@davemaster which code are you referring to ?

Hey,
Have you found a solution to this issue? I am facing the same problem as I want to display an image together with an scroll text.
Thanks

Unfortunately not. Trying to achieve the same thing as you are (image + scrolling text)
Maybe another library can do the trick but haven't looked into that yet.

Nothing suitable found by now also on my side.
I started working on some code, to get the output done in a specific area. Sadly this leads being unable to use the default print command and letters need to be drawn pixel by pixel to the matrix.
I will keep you updated as soon as I have something usable.

I think you have two options - either create a copy of the display.print function or print to some buffer and only copying the window to the actual frame buffer.
For the sencond option you could create an inline drawPixel function that allows you to write to the buffer using buffer_draw.print("Hello",color);
class buffer_draw : public Adafruit_GFX {
public:
  uint8_t frame_buffer[frame_size]={0};
  buffer_draw() : Adafruit_GFX(64,64) {}

  // We need that one so we can call ".print"
  void drawPixel(int16_t x, int16_t y, uint16_t color)
  {

  }
};

buffer_draw buffer_drawer;

As a reference check out https://github.com/2dom/PixelTimes/blob/master/PixelTimes.ino where I use it to create a buffer before the library had double buffer support

Finally got around to test it out. And it worked !  Thank you very much

Yeah I've tried to set this up myself but unfortunately my C++ skills are inferior.
Would love to see a function in the PxMatrix library that supports Scroll Text to a particular window.
Something like:
void scroll_text(uint8_t ypos, ,utin8_t maxypos, unsigned long scroll_delay, String text, uint8_t colorR, uint8_t colorG, uint8_t colorB)

where maxypos is the position the scroll text cuts of to the left

has anyone gotit?


Add language-neutral icon to language dropdown

It could be improved upon, especially on the size, margin and padding, but I do believe it to be quite nice as it is.
This fixes issue #125.

Closes #125


Enhancement: Extend spo web set with option to enable navigation audience targetting

Let's extend spo web set to make it possible to enable/disable audience targetting in the SharePoint navigation.
Options to add

Option
Description

--navAudienceTargetingEnabled [navAudienceTargetingEnabled]
Enable or disable site navigation audience targeting. Allowed values: true or false.

API request
PATCH https://contoso.sharepoint.com/sites/sitename/_api/web

{
    "NavAudienceTargetingEnabled": false
}

looks good 👍. @milanholemans awesome suggestion 🤩

Can I work on this?

Certainly! All yours!


feat: reference fields within jsonb/json entries in postgres

would be nice if sq could reference fields from json data that has been saved in a table under the jsonb or json type in postgres.

@c-nv-s Interesting idea. Do you have a concept in your mind of what the syntax for that might look like?

whatever keeps it most transparent for the end user that you can think of.
In postgres if you have a table called the_customer_orders_table and it has a jsonb column called thedata you reference a field something like this:
select thedata->'items'->'product_name' from the_customer_orders_table ;

in sq this could look something like this:
sq '.the_customer_orders_table | .thedata::jsonb.items.product_name, .thedata::jsonb.items.product_quantity, etc '

but if you think that could get very verbose with all the selectors, you could go fully declarative like this guy haha https://github.com/xcite-db/Unquery/blob/main/TUTORIAL.adoc

but if you think that could get very verbose with all the selectors, you could go fully declarative like this guy haha https://github.com/xcite-db/Unquery/blob/main/TUTORIAL.adoc

I'd never seen that tool before. There are dozens of us!

whatever keeps it most transparent for the end user that you can think of. In postgres if you have a table called the_customer_orders_table and it has a jsonb column called thedata you reference a field something like this:
select thedata->'items'->'product_name' from the_customer_orders_table ;

in sq this could look something like this:
sq '.the_customer_orders_table | .thedata::jsonb.items.product_name, .thedata::jsonb.items.product_quantity, etc '

Thanks for the input @c-nv-s . The latter suggestion with the double colons (.thedata:;jsonb...) prob not going to be viable, because the recently release column aliases feature uses the colon, e.g.
$ sq '.actor | .first_name:given_name'

The postgres "pointer style" might work, e.g.
$ sq '.actor.jsonblob->age'.

That would combine with column aliases to look like:
$ sq '.actor.jsonblob->age:how_old'

That doesn't seem too bad. Now, to combine it with whitespace names:
$ sq '.actor."json blob"->"person age":how_old'

Again, that could work.
For further nested JSON:
$ sq '.actor.jsonblob->person.age'

That seems pretty ok.
I'll have to give it some more noodling. Let me know if you have additional thoughts.

Or maybeeee something like:
$ sq .actor.jsonblob[person.age]

Although I'm not sure I like that as much.

One potential downside to the arrow is that I was considering using it to incorporate insertion into the query language.
Right now you can do:
$ sq .actor --insert @othersrc.table

The theory being that MAYBE that could be implemented as:
$ sq '.actor -> @othersrc.table'

There's other options too, like
$ sq '.actor | insert(@othersrc.table)'

Which might be clearer. Again, not sure if we'll take this route at all, or if the query language should stay exclusively for querying.

Another thing that drew me to sq was the prospect of having a tool that work similarly to jq which eases the brain tax of having to learn multiple languages and thier individual quirks.
so maybe yoou could consider the question "how can I keep this feature most jq-like?"
other than that i'm pretty easy-going on what you choose.

any more thoughts on this request? this feature is the final puzzle piece for me with this tool.

@c-nv-s I'm finally investigating JSON support (can you tell I have thanksgiving week off? 😉)...
Quick question for you: do you use the "native" pg JSON operators in your queries, or jsonpath queries?
E.g. I've got a test table with info about GitHub repos (just because their API is a good source of JSON), looking like this:
$ sq inspect .github_json_awk5z6e6 -v
NAME                  TYPE   ROWS  COLS  NAME       TYPE  PK
github_json_awk5z6e6  table  2     3     repo_name  text
                                         repo       json
                                         issues     json

Do you do this?
select gh.repo::json->>'node_id'
from github_json_awk5z6e6 gh;

Or this?
select jsonb_path_query(gh.repo::jsonb, '$.node_id')->>0
from github_json_awk5z6e6 gh;

At this point, I'm leaning towards implementing the feature syntax via jsonpath, largely because that seems more portable across different databases, e.g. MySQL, SQL Server, etc. So, right now, the sq syntax might end up looking like:
$ sq '.github_json_awk5z6e6 | .repo->>$.node_id'

But, I'm still in the investigation phase. What would be really helpful is if you could provide some sample queries that you use in your workflow 🙏. I need a feel for how complex they might be.
And any other early feedback is very welcome too.

Although, being that jsonpath is effectively another language to learn, maybe I'll wrap a jq veneer over the jsonpath. E.g. given this:
select jsonb_path_query(issues::jsonb, '$[*].title')->>0 from github_json_awk5z6e6;

In jsonpath style, that would be:
$ sq '.github_json_awk5z6e6 | .issues->$[*].title'

But, in jq style, it would be:
$ sq '.github_json_awk5z6e6 | .issues->.[].title'

hey neil, that jq style veneer does look nice and intuitive.
To answer your first question, I use the first mentioned query style, however my intention is to to get json responses as quickly as I can out of postgres and into jq, so my queries to postgres would usually aim for the most sensible top level node of the json and then the rest of the data manipulation would be done with jq.
psql -h localhost -p 5432 -U mypostgresuser -d shoppingappdb -tc "select jsonb_agg(data->'items'->'product') from theCollectionOfOrders " | jq ' ... '

I'll see if I can paste a snippet from the little postgres json cheatsheet I collated from various online sources

some snippets from my cheatsheet sourced online (was never intended for public viewing but what the hell)
CREATE TABLE theOrdersTable (
        id integer NOT NULL PRIMARY KEY,
        data jsonb NOT NULL
);

INSERT INTO theOrdersTable (data)
VALUES('{ "Id": 53635, "customer": "Lily Bush", "items": {"product": "Diaper","qty": 24}}'),
      ('{ "Id": 87644, "customer": "Josh William", "items": {"product": "Toy Car","qty": 1}}'),
      ('{ "Id": 44487, "customer": "Mary Clark", "items": {"product": "Toy Train","qty": 2}}');

# three ways to get whole table as a json array

select to_jsonb(theOrdersTable) from theOrdersTable ;
select jsonb_agg(theOrdersTable) from theOrdersTable ;
select row_to_json(theOrdersTable) from theOrdersTable ;

# get all the json objects from the data column with pretty or regular json output

select jsonb_pretty(data) from theOrdersTable ;
select data::jsonb from theOrdersTable ;

# get a specific field in the json objects

select data->'items'->'product' from theOrdersTable ;

# build a json response object yourself manually

select jsonb_pretty( jsonb_agg( jsonb_build_object('id', id, 'items', data->'items'))) from theOrdersTables ;

# get the total number of objects which match a given json path (filter)

select * from theOrdersTable where jsonb_path_exists(data, '$.customer') ;

# the total number of objects but filter on a condition

select * from theOrdersTable where jsonb_path_exists(data, '$.customer ? (@ == "John Doe")')  ;

# combine filter with selection

select data->'items'->'product' from theOrdersTable where jsonb_path_exists(data, '$.customer ? (@ == "John Doe")')  ;

                                                                                [452/1868]
# select and limit results

select data->'items'->'product' from theOrdersTable limit 2 ;

# expand the outermost JSON object into a set of key-value pairs

select jsonb_each(data) from theOrdersTable ;

# combine filter and object selection (!!jsonb_each(x) x MUST MATCH TO AN OBJECT IN THE JSON NOT VALUE!!)

select jsonb_each(data->'items') from theOrdersTable where jsonb_path_exists(data, '$.customer ? (@ == "John Doe")')  ;

# get the keys of each object

select jsonb_object_keys(data->'items') from theOrdersTable where jsonb_path_exists(data, '$.customer') ;

# get the typeof the item

select jsonb_typeof(data->'items') from theOrdersTable where jsonb_path_exists (data, '$.customer') ;

# arrays in the json data can also be accessed. e.g.:
SELECT count(*) FROM thCollectionOfPosts WHERE jsonb_path_exists(data, '$.path.to.theJSONArray[*] ? (@ == "someValueYouWantToMatchOn")'
)

# building complex nested queries

SELECT
jsonb_pretty(
    jsonb_build_object(
        'theAmountPurchased', json_agg(theOrdersTable.data->'items'->'qty'),
        'theFavoriteProduct', json_agg(theOrdersTable.data->'items'->'product')
    )
)
FROM theOrdersTable

# or with limiting from result of another query

select row_to_json(theOrdersTable) from ( select id, to_jsonb(data->'items'->'product') from theOrdersTable ) theOrdersTable limit 2 ;
select jsonb_pretty( row_to_json(theOrdersTable)::jsonb) from ( select  jsonb_build_object('theData', data->'items') from theOrdersTabl
e limit 2 ) theOrdersTable ;

## CRUD OPERATIONS

## UPDATING

# update type 1 - add a new outer-level field and value
UPDATE theOrdersTable
SET data = data || '{"the_delivery_priority": ["Next Day"]}'
WHERE data->>'customer'::text IN ( 'John Doe', 'Lily Bush');

# update type 2 - set/update existing field (creating it if it doesn't already exist)
# in this example we create an order_ref field in the json from the table's own id field

UPDATE theOrdersTable
SET data = jsonb_set(
  data,
  '{order_ref}',
  id::TEXT::JSONB,
  true);  # this boolean sets whether to create if it doesn't already exist which is true by default so can be omitted

# if for some reason you had the 'data' column as a text field type you would have to convert to json before updating e.g.

UPDATE "theOrdersTable"
SET "data"=jsonb_set("data"::jsonb, '{url}', '"images/0005.jpg"', true)
WHERE "details"::json->>'name'='Eiffel Tower';

# adding a value to a json array

UPDATE USER_CONFIGURATIONS
SET DATA =
jsonb_set(DATA, '{configurations}'::text[], DATA ->'configurations' || '{"name":"firstconf", "theme":"dark", "textsize":"large"}'::json
b,
        true)
WHERE (DATA ->> 'userid') =<EMAIL_ADDRESS>
# or

UPDATE airports

SET airport =
JSONB_SET(airport, '{airport_keywords}',
  (SELECT (airport -> 'airport_keywords') || TO_JSONB('BWI'::TEXT) FROM airports WHERE airport ->> 'ident' = 'KBWI'),
  false)
WHERE airport ->> 'ident' = 'KBWI';

# change value of a field in an array

UPDATE USER_CONFIGURATIONS
SET DATA = JSONB_SET(
    DATA,
    '{configurations}'::text[],
    (((DATA -> 'configurations')
     -
      (SELECT i
       FROM generate_series(0, jsonb_array_length(data->'configurations') - 1) AS i
       WHERE (data->'configurations'->i->>'name' = 'firstconf')))::jsonb
     ||
      '{"name":"first", "theme":"light"}'::jsonb))
WHERE (DATA ->> 'userid') =<EMAIL_ADDRESS>
# change value of a field in a nested document

UPDATE airports

SET airport = JSONB_SET(

  airport,

  '{runways}',

  (WITH heli_runs AS (

    SELECT airport -> 'runways' AS heli_run

    FROM airports
WHERE airport ->> 'ident' = 'MD25')

  SELECT JSONB_SET(

    JSONB_ARRAY_ELEMENTS(heli_run),

    '{surface}',

    TO_JSONB('asph'::text),

    false)

  FROM heli_runs),

  false)
WHERE airport ->> 'ident' = 'MD25';

## DELETING

# delete type 1 - deleting an outermost field

UPDATE theOrdersTable set data = ( data - 'delivery_information' ) ;

# or remove an entire entry with the DELETE command

DELETE FROM theOrdersTable
WHERE (DATA->>'customer') = 'John Doe'::text

# delete type 2 - deleting inner fields and arrays

# remove the second element from an array
UPDATE USER_CONFIGURATIONS
SET DATA = DATA #- '{configurations, 1}'::text[]
WHERE (DATA ->> 'userid') =<EMAIL_ADDRESS>
# or remove array element with key name 'myconf2'

UPDATE USER_CONFIGURATIONS
SET DATA = DATA #-
            ('{configurations,' || (
              SELECT i
              FROM generate_series(0, jsonb_array_length(DATA->'configurations') - 1) AS i
              WHERE (DATA->'configurations'->i->>'name' = 'myconf2')
            ) || '}')::text[]
WHERE (DATA ->> 'userid') =<EMAIL_ADDRESS>
# or

UPDATE airports
SET airport =

JSONB_SET(

  airport,

  '{airport_keywords}',
  (WITH kjfk_keys AS (

    SELECT JSONB_ARRAY_ELEMENTS(airport -> 'airport_keywords') keywords

    FROM airports

    WHERE airport ->> 'ident' = 'KJFK')
SELECT JSONB_AGG(keywords)

  FROM kjfk_keys

  WHERE keywords::TEXT != '"Idlewild"'))
WHERE airport ->> 'ident' = 'KJFK';

# or we can delete the entire array by updating it with an empty array

UPDATE USER_CONFIGURATIONS
SET DATA =
jsonb_set(DATA, '{configurations}'::text[], '[]'::jsonb) WHERE (DATA ->> 'userid') =<EMAIL_ADDRESS>


How to resize the thickness of the line of the camera frustum?

Hello author~ Is there a way to adjust the thickness of the camera line as sometimes the lines of the camera are too thin which makes them less visible in the scene.
I noticed that the camera is automatically bolded when you click on it, but I didn't find the corresponding code, looking forward to your reply!

Hi, this is unfortunately hardcoded as scale * 0.03 here:
https://github.com/nerfstudio-project/viser/blob/3d30259e29a1b8d4eaa5965dc255d56a20fe2331/src/viser/client/src/ThreeAssets.tsx#L440-L442
We could expose an argument for configuring this. If you have time for a PR this would be appreciated!
If you're interested in the bold/outline effect, you could search based on OutlinesIfHovered. Here's where it's added for line segments we use for the camera frustums:
https://github.com/nerfstudio-project/viser/blob/3d30259e29a1b8d4eaa5965dc255d56a20fe2331/src/viser/client/src/ThreeAssets.tsx#L511-L517

Thanks a lot! I will try it~


Configurable database pool parameters

Configurable database connection parameters:
database:
  max_open_connections: 25
  max_idle_connections: 25
  connection_max_lifetime: 5m

Aligned the code with the configuration to use ConnectionString instead of DatabaseURI


helpers: add some helpers for tests

add some helpers in heplers.c:

io_uring_calloc()
io_uring_posix_memalign()
io_uring_create_file()
io_uring_create_buffers()

and then we replace corresponding functions with helpers in tests.
Signed-off-by: Zhiqiang Liu<EMAIL_ADDRESS>

@axboe As we discussed in the previous PR, I add four additional helpers for avoiding checks  and reducing duplicate code. Please help to review these patches.

Pulled it all, and fixed up the test/Makefile a bit so it's a bit saner and has the proper dependencies. Nice reduction in code!


Cortana - OAuth2 Redirect URL Configuration not changing

I'm currently implementing an OAuth2 authentication using Microsoft Bot Framework and Cortana as one of my channels. However, as I was setting up my OAuth2 configuration with the following details in where I properly set the Redirect URL both from Knowledge Store and apps.dev.microsoft.com
Knowledge Store:

apps.dev.microsoft.com:

Whenever I authenticate to Cortana based from the OAuth2 that I've configured, the redirect URI seems to be always set as https://www.bing.com/agents/oauth. Here's a screenshot of the http request from Cortana Authentication that I got from fiddler:

Which causes this error message:

Any idea how to fix this?

Closing as duplicate https://stackoverflow.com/questions/49531586/cortana-oauth2-redirect-url-configuration-not-changing


freesurfer crash because cannot create symbolic links in CIFS

Hello,
I'm running fmriprep-docker.py under CIFS. The pipeline completes when skipping freesurfer, but when I include freesurfer, I get the error listed below. The issue appears to be that FS is attempting to create a symbolic link, which CIFS does not support. There are some workarounds proposed when using stand-alone freesurfer:
http://www.biac.duke.edu/forums/topic.asp?TOPIC_ID=1532
I tried to implement the above recommendation (which involves copying various directories from $FREESURFER_HOME to $SUBJECTS_DIR) by copying the recommended directories to the freesurfer output directory (i.e., [fmriprep_target]/freesurfer), but the same error occurred.
Unfortunately, I'm relatively stuck using CIFS...
I imagine I'm not the only one who may experience this problem (i.e., running fmriprep with freesurfer under CIFS). Do you have a recommended solution?
Thanks very much,
Daniel
#@# Curv .H and .K rh Mon Jul 23 10:10:23 UTC 2018
/out/freesurfer/sub-18050101/surf

 mris_curvature -w rh.white.preaparc

total integrated curvature = 4.495*4pi (56.487) --> -3 handles
ICI = 139.9, FI = 1628.7, variation=25027.919
writing Gaussian curvature to ./rh.white.preaparc.K...done.
writing mean curvature to ./rh.white.preaparc.H...done.
rm -f rh.white.H
ln -s rh.white.preaparc.H rh.white.H
Linux 22ae7b51e7c1 3.10.0-862.2.3.el7.x86_64 #1 SMP Wed May 9 18:05:47 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

recon-all -s sub-18050101 exited with ERRORS at Mon Jul 23 10:10:26 UTC 2018

For more details, see the log file /out/freesurfer/sub-18050101/scripts/recon-all-rh.log
To report a problem, see http://surfer.nmr.mgh.harvard.edu/fswiki/BugReporting

Standard error:
ln: failed to create symbolic link 'rh.white.H': Operation not supported
Return code: 1

I'm upstreaming this issue to Nipype - nipy/nipype#2663.
I may be wrong, but there is not much we can do in FMRIPREP proper about this problem. Please reopen if I'm missing something out.


[FLINK-27573] Configuring a new random job result store directory

This is a workaround for  https://issues.apache.org/jira/browse/FLINK-27569 . It creates random job result stores :
ls -al /tmp/flink/ha/job-result-store/basic-checkpoint-ha-example/
total 0
drwxr-xr-x 6 9999 9999 120 May 11 15:39 .
drwxr-xr-x 3 9999 9999  60 May 11 14:52 ..
drwxr-xr-x 2 9999 9999  60 May 11 15:32 1e080985-a3a9-4390-8567-134bc1f4c2d1
drwxr-xr-x 2 9999 9999  40 May 11 15:39 a6031ec7-ab3e-4b30-ba77-6498e58e6b7f
drwxr-xr-x 2 9999 9999  60 May 11 15:11 b6fb2a9c-d1cd-4e65-a9a1-e825c4b47543
drwxr-xr-x 2 9999 9999  60 May 11 15:19 e569a5db-abb3-44ac-8169-545eeb46914a

It leaks the storage files on every upgrade, that is a know concern.
Verify:

Run the basic-checkpoint-ha example
suspend the job
kill JM -> verify no jobs starts
resume the job - verify the job restored from checkpoint/savepoint

cc @wangyang0918

Could you please add a test case for the reconciler that verifies that every deploy operation will set a new result store path?
Since this is a critical logic we need to guard against accidental regressions.
Also a note in the documentation for 1.15 about the leaking files and the clean up pattern (users only need to keep the latest) would be nice :)

I added the test @gyfora + rebased the changes on 1.15. I'll add some documentation soon.

While working on the fix  I was wondering how we're going to maintain such version specific changes in the operator on long term? @gyfora @wangyang0918 @tweise


feat: update Cat.js

I changed the background color ㅎㅎ
IT'S YELLOW~~
So cute. please check!

Oh that's too cute! My favorite color is yellow. Thanks~😎


fix: Use the official tinygo package to build Wasm go plugin builder

Ⅰ. Describe what this PR did
Use the official tinygo package to build Wasm go plugin builder, since the current tinygo version we used, 0.28.1, no longer needs our customization.
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 36.05%. Comparing base (ef31e09) to head (8fda6a0).
Report is 16 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #1161      +/-   ##
==========================================
+ Coverage   35.91%   36.05%   +0.14%
==========================================
  Files          69       69
  Lines       11576     9483    -2093
==========================================
- Hits         4157     3419     -738
+ Misses       7104     5749    -1355
  Partials      315      315

see 67 files with indirect coverage changes


feat: allow reconfiguring Apity after fetch operations creation

The Apity global singleton cannot be reconfigured after the first config along with defined operations. The reconfiguration does not take any effect.
Say we have configure apity and defined some fetch operations. And we set a Authorization field in headers which should be passed to backend server.
export const apity = Apity.for<paths>();
apity.configure({
	// Base URL to your API
	baseUrl: '',
	// RequestInit options, e.g. default headers
	init: {
		headers: { Authorization: `Bearer ${keycloak.token}` }
	},
});

export const fetchTasks = apity.path('/tasks').method('get').create();

However, the token is short lived (typically 5 minutes) and routinely reacquired with a refresh token. Then we need to update the defaultInit's headers. But calling apity.configure() when acquires a new token does not take any effect. This is because in the following codes, init is finalized when calling create() in operation definition and any changes to defaultInit afterward do not affect the finalized init.
        create: function (queryParams?: Record<string, true | 1>) {
          const fn = createFetch((payload, realFetch, init) =>
            fetchUrl({
              baseUrl: baseUrl || '', // baseUrl is fixed here, should be composed lazily
              path: path as string,
              method: method as Method,
              queryParams: Object.keys(queryParams || {}),
              payload,
              init: mergeRequestInit(defaultInit, init), // init is fixed here, should be composed lazily
              realFetch: realFetch || fetch,
// ...

How to fix
This PR use an Object to store baseUrl and init, and Objects in JavaScript are passed by reference. Ane we lazily compose init when inside fetchUrl function instead of function declaration.

If this works, this would be greatly appreciated

That's true, but what if there are hundreds of API endpoint, like fetchTask, deleteTask, fetchFoo and etc. Then users have to pass their headers in every api calls.

Looking forward to this getting merged

For the time being, we can use pnpm patch to apply this feature to apity.

edit: specify the headers in fetchTasks works fine tbh
sorry.. how?


[ErrorReport] [FEATURE] interface to provide context object

I want to pass some object that holds single (or multiple) context object to InlineError

Would this be satisfied by #95 ?

I want to pass objects that isn't a collection but provides context objects so I want NDMF to have some both iterating over IEnumerable recursively and some interface only for providing context object


Can't open a transaction within a transaction during database open

Still trying to debug push, it appears that occasionally we get the error that we can't open a transaction within a transaction when trying to open the database.
I/flutter ( 7758): error DatabaseException(error code 1: cannot start a transaction within a transaction) sql 'BEGIN EXCLUSIVE' args []} during open, closing...
I/flutter ( 7758): [Push] Error while processing notification: DatabaseException(error code 1: cannot start a transaction within a transaction) sql 'BEGIN EXCLUSIVE' args []}
I/flutter ( 7758): #0      SqfliteSqlCipherDatabaseFactoryImpl.wrapDatabaseException (package:sqflite_sqlcipher/src/factory_sql_cipher_impl.dart:44:9)
I/flutter ( 7758): <asynchronous suspension>
I/flutter ( 7758): #1      SqfliteDatabaseMixin.safeInvokeMethod (package:sqflite_common/src/database_mixin.dart:208:15)
I/flutter ( 7758): #2      SqfliteDatabaseMixin.invokeExecute (package:sqflite_common/src/database_mixin.dart:370:12)
I/flutter ( 7758): #3      SqfliteDatabaseMixin.txnExecute.<anonymous closure> (package:sqflite_common/src/database_mixin.dart:362:14)
I/flutter ( 7758): #4      SqfliteDatabaseMixin.txnSynchronized (package:sqflite_common/src/database_mixin.dart:312:26)
I/flutter ( 7758): #5      SqfliteDatabaseMixin.txnWriteSynchronized (package:sqflite_common/src/database_mixin.dart:345:7)
I/flutter ( 7758): #6      SqfliteDatabaseMixin.txnExecute (package:sqflite_common/src/database_mixin.dart:351:12)
I/flutter ( 7758): #7      SqfliteDatabaseMixin.beginTransaction (package:sqflite_common/src/database_mixin.dart:446:15)
I/flutter ( 7758): #8      SqfliteDatabaseMixin._runTransaction (package:sqflite_common/src/database_mixin.dart:471:19)
I/flutter ( 7758): #9      SqfliteDatabaseMixin.transaction.<anonymous closure> (package:sqflite_common/src/database_mixin.dart:492:14)
I/flutter ( 7758): #10     SqfliteDatabaseMixin.txnSynchronized (package:sqflite_common/src/database_mixin.dart:312:26)
I/flutter ( 7758): #11     SqfliteDatabaseMixin.txnWriteSynchronized (package:sqflite_common/src/database_mixin.dart:345:7)
I/flutter ( 7758): #12     SqfliteDatabaseMixin.transaction (package:sqflite_common/src/database_mixin.dart:491:12)
I/flutter ( 7758): #13     SqfliteDatabaseMixin.doOpen (package:sqflite_common/src/database_mixin.dart:692:15)
I/flutter ( 7758): <asynchronous suspension>
I/flutter ( 7758): #14     SqfliteDatabaseOpenHelper.openDatabase (package:sqflite_common/src/database.dart:46:22)
I/flutter ( 7758): #15     SqfliteDatabaseFactoryMixin.openDatabase.<anonymous closure> (package:sqflite_common/src/factory_mixin.dart:104:43)
I/flutter ( 7758): <asynchronous suspension>
I/flutter ( 7758): #16     SqfliteDatabaseFactoryMixin.openDatabase.<anonymous closure> (package:sqflite_common/src/factory_mixin.dart)
I/flutter ( 7758): #17     ReentrantLock.synchronized.<anonymous closure>.<anonymous closure> (package:synchronized/src/reentrant_lock.dart:33:24)
I/flutter ( 7758): #18     _rootRun (dart:async/zone.dart:1190:13)
I/flutter ( 7758): #19     _CustomZone.run (dart:async/zone.dart:1093:19)
I/flutter ( 7758): #20     _runZoned (dart:async/zone.dart:1630:10)
I/flutter ( 7758): #21     runZoned (dart:async/zone.dart:1550:10)
I/flutter ( 7758): #22     ReentrantLock.synchronized.<anonymous closure> (package:synchronized/src/reentrant_lock.dart:32:24)
I/flutter ( 7758): #23     BasicLock.synchronized (package:synchronized/src/basic_lock.dart:31:26)
I/flutter ( 7758): #24     ReentrantLock.synchronized (package:synchronized/src/reentrant_lock.dart:28:17)
I/flutter ( 7758): #25     SqfliteDatabaseFactoryMixin.openDatabase (package:sqflite_common/src/factory_mixin.dart:71:17)
I/flutter ( 7758): #26     openDatabase (package:sqflite_sqlcipher/sqflite.dart:145:26)
I/flutter ( 7758): #27     _SqfliteDelegate.open (package:encrypted_moor/encrypted_moor.dart:66:16)
I/flutter ( 7758): #28     DelegatedDatabase.ensureOpen.<anonymous closure> (package:moor/src/runtime/executor/helpers/engines.dart:244:22)
I/flutter ( 7758): <asynchronous suspension>
I/flutter ( 7758): #29     DelegatedDatabase.ensureOpen.<anonymous closure> (package:moor/src/runtime/executor/helpers/engines.dart)
I/flutter ( 7758): #30     BasicLock.synchronized (package:synchronized/src/basic_lock.dart:31:26)
I/flutter ( 7758): #31     DelegatedDatabase.ensureOpen (package:moor/src/runtime/executor/helpers/engines.dart:238:25)
I/flutter ( 7758): #32     QueryEngine.doWhenOpened (package:moor/src/runtime/api/query_engine.dart:98:21)
I/flutter ( 7758): #33     CustomSelectStatement._executeWithMappedArgs (package:moor/src/runtime/query_builder/statements/select/custom_select.dart:53:19)
I/flutter ( 7758): #34     CustomSelectStatement.get (package:moor/src/runtime/query_builder/statements/select/custom_select.dart:37:12)
I/flutter ( 7758): #35     _MappedSelectable.get (package:moor/src/runtime/query_builder/statements/query.dart:143:20)
I/flutter ( 7758): #36     Database.getClient (package:famedlysdk/src/database/database.dart:75:41)
I/flutter ( 7758): #37     PushNotificationPlugin._processNotification (package:famedly/models/plugins/push_notification_plugin.dart:245:40)
I/flutter ( 7758): <asynchronous suspension>
I/flutter ( 7758): #38     PushNotificationPlugin._onBackgroundMessage (package:famedly/models/plugins/push_notification_plugin.dart:177:13)
I/flutter ( 7758): #39     _fcmSetupBackgroundChannel.<anonymous closure> (package:firebase_messaging/firebase_messaging.dart:38:30)
I/flutter ( 7758): #40     MethodChannel._handleAsMethodCall (package:flutter/src/services/platform_channel.dart:430:55)
I/flutter ( 7758): #41     MethodChannel.setMethodCallHandler.<anonymous closure> (package:flutter/src/services/platform_channel.dart:383:33)
I/flutter ( 7758): #42     _DefaultBinaryMessenger.handlePlatformMessage (package:flutter/src/services/binding.dart:265:33)
I/flutter ( 7758): #43     _invoke3.<anonymous closure> (dart:ui/hooks.dart:296:15)
I/flutter ( 7758): #44     _rootRun (dart:async/zone.dart:1190:13)
I/flutter ( 7758): #45     _CustomZone.run (dart:async/zone.dart:1093:19)
I/flutter ( 7758): #46     _CustomZone.runGuarded (dart:async/zone.dart:997:7)
I/flutter ( 7758): #47     _invoke3 (dart:ui/hooks.dart:295:10)
I/flutter ( 7758): #48     _dispatchPlatformMessage (dart:ui/hooks.dart:170:5)
I/flutter

This is odd, as we cache the database so that only once instance is used at all, so basically like
Database _db;
Database getDb() {
  _db ??= openDatabase();
  return _db;

So only once instance should exist at all, except accross isolates. But these instances accross isolate shouldn't be able to see each other, and thus this error shouldn't happen. Do you have any hint / idea what may be going on?

But these instances accross isolate shouldn't be able to see each other, and thus this error shouldn't happen

Since platform channels work on different isolates now, maybe the problem is on the native platform side? If the underlying sqflite implementation isn't threadsafe, the different isolates might cause a conflict.
I'm not sure if that's really the cause, but that would be pretty bad, since there isn't really a workaround that could be done in Dart. You might be able to setup a multi-isolate lock through some hacky communication, but that sounds tedious and fragile.
You can't use moor_ffi because you need encryption, right? I could help you setup moor_ffi with SQLCipher if you're interested in trying it. Since there is no platform implementation, it hopefully doesn't have that problem.

@Sorunome I think this is related https://github.com/davidmartos96/sqflite_sqlcipher/issues/15
It seems to be a difference between the Sqflite and SQLCipher Android libraries. I don't really know if it could even be "fixed", since the sqflite_sqlcipher library calls the Android library directly.

We are indeed using sqflite_sqlcipher. With the issue @davidmartos96 linked it sounds like that one isn't threadsafe, if you use transactions, which would explain sooo much, the random nature of this, and the random other errors that are appearing.
It would be really great if you could help us set up moor_ffi with SQLCipher!
Also, just wanted to point out that support from you has been amazing so far, quick and helpful replies, etc, really, it has been a really great experience asking for help here ^-^

Also, just wanted to point out that support from you has been amazing so far

Thanks! :blush:
I've found a way to use moor_ffi with SQLCipher. First, change android/app/build.gradle and add the following dependency:
implementation "net.zetetic:android-database-sqlcipher:4.4.0"

On iOS, you can add the SQLCipher pod.
Next, you'll have to drop this file somewhere in your project https://gist.github.com/simolus3/5097bbd80ce59f9b957961fe851fd95a#file-cipher_db-dart It contains logic to use libsqlcipher.so instead of the regular libsqlite3.so. It also contains the EncryptedVmDatabase database implementation, which acts just like a regular VmDatabase, except that it sets the key pragma before opening the database.
You can follow this article on how to switch from an sqflite based moor to moor_ffi. Just replace VmDatabase with EncryptedVmDatabase.
I want to modularize moor_ffi soon, which would allow me to add a proper package that does all of this, so that no custom setup is necessary.

Thanks a lot! Should the databases be compatible, or would we have to implement migrations to migrate existing users over to this?

If you use getDatabasesPath from sqflite to construct the right location, no migration should be necessary.

Heya, I forgot to reply here, sorry! Switching over to moor_ffi with sqlcipher seems to have fixed the issue! As moor_ffi is blocking we also had to put it into an isolate, but that is working fine now. Thanks a lot for all the help and sorry again for the late reply!

No problem, glad to hear that you were able to fix this issue!


Rename walker closure's named return to exit instead of err

Pull request for issue #21

Looks like replacing all occurrences came out with troubles. I'm gonna fix them now


Updating Twitter Icon

Hi Nuno,
What are your thoughts on updating the Twitter icon to the new "X" icon?

@moccolfc thanks I'll do it. This SVG is not properly formatted e.g. missing the path param.

Ah apologies. Thanks for sorting!


add error trap for incorrect [[ in nf run code

This addresses an untrapped error when incorrectly using [[ in nf run code, per NCT issue 300.

The CI error on Windows doesn't seem to be substantive, so merging this in.


feat(chat): add option to unpublish app, add apps filter for publish request modal, hide caret icon if publication resource types don't contain prompt or conversation (Issues #1940, #2006, #2031)

Description:
add option to unpublish app
add apps filter for publish request modal
hide caret icon if publication resource types don't contain prompt or conversation
Issues:

#1940
#2006
#2031

Checklist:

[ ] the pull request name complies with Conventional Commits
[ ] the pull request name starts with fix(<scope>):, feat(<scope>):, feature(<scope>):, chore(<scope>):, hotfix(<scope>): or e2e(<scope>):. If contains breaking changes then the pull request name must start with fix(<scope>)!:, feat(<scope>)!:, feature(<scope>)!:, chore(<scope>)!:, hotfix(<scope>)!: or e2e(<scope>)!: where <scope> is name of affected project: chat, chat-e2e, overlay, shared, sandbox-overlay, etc.
[ ] the pull request name ends with (Issue #<TICKET_ID>) (comma-separated list of issues)
[ ] I confirm that do not share any confidential information like API keys or any other secrets and private URLs

/deploy-review

/deploy-review


Add virtual pages functionality

Virtual Pages - will allow us combine Flextype file-based architecture with ability to load content from any other data storages: APIs, databases, excel sheets and etc...

Implemented with a new Entires API ability to override all default CRUD methods.


Specification for config reloading

The spec should contain which parts of the config can be changed through a config reload, and which can't.

Specification is available here.


translate https://ecommerceberlin.com/masterclasses for organizers

@klaudia2209 WTF is going on with this?

done...now we are working on participant


Temporal library

Temporal library intermediate state.

thanks, will have a look!

We are currently working on adopting the PR - might still take a while to support Temporal completely, but a first preview might be available in the near future.

This has finally been merged as part of https://github.com/oracle/graaljs/commit/69d4766f2893df44ea2e1fc62068d129921939ed


regarding st2 api response data

Dear support,
current ST2 rest api response data has too much information, most of them is useless for user, also too much information affect system performance, propose use can specify return fields.

Are you referring to any particular REST endpoints?
We need more real-life examples.

for example GET api/v1/executions, we might only need field status, response has bulk of information which we don't need them, the main reason is if lot of executions get retrieved, it is very slow.

From what I see /api/v1/executions https://api.stackstorm.com/api/v1/executions/#/action_executions_controller.get_all has a lot of advanced filtering:

exclude_attributes - List of attributes to exclude
status - Execution status filter
and so on

Isn't exclude_attributes what you need?
If not enough, - In terms of proposal, please provide exact interface/additional filter(s), including naming, example curl request and described behavior you'd like to see in future.
That will give more chances to get a proposal codified as a feature.

@armab my apologies, I didn't go through all parameters carefully, yes, the exculde_attributes should help.
Thanks.

Going to close this issue for now. @leoxhj feel free to open back up if you have additional issues/questions on this topic.

Can we add an attribute: include_attributes, so if I only need status field , I can just add it instead of exclude_attributes which I need exclude all rest except status?


New cal

RRrule gets wrong date for events in timezones east of UTC. add correction
RRule doesn't adjust time for events when the daylight/standard times changes across the rule duration, add correction
#2145 #2151

Warnings

:warning:

Please include an updated CHANGELOG.md file.This way we can keep track of all the contributions.

  Generated by :no_entry_sign: dangerJS


Remove nightly scripts - we have edge builds now

@troydai Can you shut down the nightly builds as well?

will do.


fix(expressive-modal): ensure waiting for transitionend event

Related Ticket(s)
Refs #5173.
Description
Changes the "focus on the primary focusable element" logic in <dds-expressive-modal> to wait for transitionend event. Without it, the attempt to focus fails.
Also changes <dds-locale-modal> to make <dds-region-item> as the primary focusable element.
Changelog
Changed

The "focus on the primary focusable element" logic in <dds-expressive-modal> to wait for transitionend event.
<dds-locale-modal> to make <dds-region-item> as the primary focusable element.

Can you target the release branch please release/v1.16.0?

Done - Thank you for pointing it out @kennylam!


Add option to not add submit buttons.

It does not work for me.  Same problem extra button is adding and my form binding in edit mode is not working. Which work in using<EMAIL_ADDRESS>

Confirming that, with this change, adding the options attribute as below results in no submit button being added. Thanks -
 <form-builder form="form" options="{ noSubmit: true }"></form-builder>


Hardware requirements?

Are there any hardware requirements for AutoPilot, short of being able to run Windows 10?  Any TPM or UEFI requirements? I haven't seen anything on the above in this documentation (maybe I'm just missing it). Thanks!

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

ID: bc999894-2a0a-bc87-7fd7-97df5f1fd04e
Version Independent ID: ad68f62a-6bf0-5f5f-bb07-f64afe68fd10
Content: Windows Autopilot requirements
Content Source: windows/deployment/windows-autopilot/windows-autopilot-requirements.md
Product: w10
GitHub Login: @greg-lindsay
Microsoft Alias: greg-lindsay

@officedocsbot assign @mypil

@thedrum808 - Based on the comment, we will proceed to close this issue. Thank you.

@officedocsbot close


Convection

@milankl I think this is ready for another review now. If you're happy with the changes then feel free to give a review with approval and I'll merge.


Upgrade problems

Dear friends,
Im using Lychee-Laravel as additional image storage (about 10,000 images now) supporting my new store.
A few days ago I upgraded php to 7.3.11 and 64bit architecture from 32bit. Also Lychee-Laravel to the latest version (manual, by overwriting), including install of the latest ImageMagick and ffmpeg . Everything looked good from the visitors side, until now, when I tried to upload new photos.
I have got an errors in log (missing column imgDirection) and big photos were not uploaded just thumbs and album was empty.
So I cerated a new "photos" table column imgDirection (decimal, 10,4, NULL).
Then all new images were uploaded successfully.
Lychee seems to be working 100%, but Im getting these errors with every single image upload:
App\Configs::get_value -- 173 -- raw_formats does not exist in config (local) !
App\Configs::get_value -- 173 -- force_32bit_ids does not exist in config (local) !
Will I run into future problems? If so, any recommenadtion, how to solve this?
Many thanks!

as long as you do ./artisan migrate you should be fine.
Just double check that in advanced config the keys raw_formats and force_32_bit_ids are present.

Thanks! Solved!!!