Can I give an example of applying gradients to a text layer style

Can I give an example of applying gradients to a text layer style?

Sure, Welcome to contribute codes.

Sure, Welcome to contribute codes.

Could you give me some direction, which api should I to use?


how to calc the fees

When I call
$ omnicore-cli "omni_send" "3M9qvHKtgARhqcMtM5cRT9VaiDJ5PSfQGY" "37FaKponF7zqoMLUjEiko25pDiuVH5YLEa" 1 "100.0"

It returns
(wallet may be locked or fees may not be sufficient)

So, there is the question

how do i know the fees?
how to config the fees by the OmniCore?

Hi @EdisonChen1024n1024,
there is currently no handy way to know how much fees are needed.
However, the following configuration options influence the actual fee:
-paytxfee=n

Static fee BTC/KB to add to transactions you send.

And:
-txconfirmtarget=n

If paytxfee is not set, include estimated enough fee so transactions begin confirmation on average within n blocks.

For more control, check out:
https://github.com/OmniLayer/omnicore/wiki/Use-the-raw-transaction-API-to-create-a-Simple-Send-transaction


AttributeError: 'int' object has no attribute 'decode'

Originally reported by @maaaaz in #28
I'm also experiencing that bug, which is not directly related to encoding but only type:
$ python crackmapexec_bug.py -d adyolo -u administrator -p "<password>" <IP_ADDRESS> --sessions
[*] <IP_ADDRESS>:445 is running Windows 6.3 Build 9600 (name:DC01) (domain:adyolo)
[+] <IP_ADDRESS>:445 Login successful adyolo\administrator:<password>
[+] <IP_ADDRESS>:445 DC01 Current active sessions:
sesi502_cltype_name
Traceback (most recent call last):
  File "/root/venvcrackmapexec/local/lib/python2.7/site-packages/gevent/greenlet.py", line 327, in run
    result = self._run(*self.args, **self.kwargs)
  File "crackmapexec_bug.py", line 2926, in connect
    print "{} {}".format(fname, yellow(session[fname]))
  File "crackmapexec_bug.py", line 87, in yellow
    return colored(text.decode('utf8'), 'yellow', attrs=['bold'])
AttributeError: 'int' object has no attribute 'decode'
<Greenlet at 0xb682bb6cL: connect('<IP_ADDRESS>')> failed with AttributeError

I was able to fix it by modifying the following line
from:
print "{} {}".format(fname, yellow(session[fname]))

to:
print "{} {}".format(fname, yellow(str(session[fname])))

$ python crackmapexec_bug.py -d adyolo -u administrator -p "<password>" <IP_ADDRESS> --sessions
[*] <IP_ADDRESS>:445 is running Windows 6.3 Build 9600 (name:DC01) (domain:adyolo)
[+] <IP_ADDRESS>:445 Login successful adyolo\administrator:<password>
[+] <IP_ADDRESS>:445 DC01 Current active sessions:
sesi502_cltype_name
sesi502_time 0
sesi502_user_flags 0
sesi502_username administrator
sesi502_idle_time 0
sesi502_num_opens 0
sesi502_cname <IP_ADDRESS>
sesi502_transport
sesi502_cltype_name
sesi502_time 0
sesi502_user_flags 0
sesi502_username administrator
sesi502_idle_time 0
sesi502_num_opens 1
sesi502_cname <IP_ADDRESS>
sesi502_transport

By the way has the result presentation changed ? Wasn't it with columns before ?

@maaaaz should be fixed now


WEEK 0: Big Tech languages used in production

Company: Slack
Technologies from their Job Description:

Front End: Javascript, React
Back End: Python, Ruby, Java

They have a very diverse stack usage but above languages/frameworks I have seen in their job descriptions:
https://stackshare.io/slack/slack


[Bug] CI failed for version 4.12.0

The pipeline for 4.12.0 failed and so it's not possible to upgrade to this version of the tool via brew.

I believe this was an issue with SwiftSyntax which was fixed in this new release just 20 hours ago. I had to make another release (4.12.1) to ship BartyCrouch via Homebrew, see https://github.com/Homebrew/homebrew-core/pull/112470/checks.


fixed typo

Hi @luuksen , thanks for your contribution. We appreciate it and will look into this.

I have adapted the documentation for 1.113. Thanks again for your support!

@luuksen, would you mind signing the CLA? It seems that I cannot merge the pull request because this is still missing.


regex::bytes::Regex::is_match with a simple pattern with long sequences of wildcards is significantly slower than a naïve alternative

What version of regex are you using?
v1.10.2
Describe the bug at a high level.
I'm trying to match 2D patterns inside 2D flattened array of u8s. For example, to match
0
1

on a 1024x1024 array I'm this pattern: "\\u{0}.{1023}\\u{1}".  I'm compiling with
regex::bytes::RegexBuilder::new(&string)
    .unicode(false)
    .dot_matches_new_line(true)
    .build()

My expectation is that this kind of pattern would be at-worst slightly slower than the naïve alternative that follows:
enum RegexOp {
    Match(Vec<u8>),
    Skip(usize)
}

fn regex_match(ops: &[RegexOp], mut slice: &[u8]) -> bool {
    for op in ops {
        match op {
            RegexOp::Skip(skip) => slice = &slice[*skip..],
            RegexOp::Match(m) => {
                if !slice.starts_with(m) {
                    return false;
                }
                slice = &slice[m.len()..];
            }
        }
    }

    true
}

In this case ops looks like [Match([1]), Skip(1023), Match([0])].
Let me know if this is too much to ask.
Currently the regex solution takes 27.70 seconds for a 256x256 workload according to time:
________________________________________________________
Executed in   27.70 secs    fish           external
   usr time   27.65 secs  827.00 micros   27.65 secs
   sys time    0.60 secs   60.00 micros    0.60 secs

Whereas a 2-line change from is_match to my regex_match function drops this down to 147.17 ms (or 517ms if you're taking the longer value, doesn't really matter).
________________________________________________________
Executed in  147.17 millis    fish           external
   usr time  154.46 millis  663.00 micros  153.80 millis
   sys time  517.86 millis  183.00 micros  517.68 millis

I can provide proper benchmarks if you want. I am of-course using release mode and the standard set of regex crate features.
Please let me know if I've made some mistake in RegexBuilder or if a seperate set of feature flags might improve things.
What are the steps to reproduce the behavior?
I'm happy to write a test program if that's required for this issue to get attention, but I believe it should be trivial to write one given what I've written above.
What is the actual behavior?
N/A
What is the expected behavior?
N/A
What do you expect the output to be?
N/A
Related: https://github.com/rust-lang/regex/issues/590#issuecomment-1868219641.

Oh sorry, I just stepped back for a second and realized that this is an slightly unfair comparison. regex_match checks if there is a match directly at the start of the slice, while regex::bytes::Regex::is_match checks for a match anywhere in the slice. The slices I'm passing as input are exactly the same size as the pattern and either have a matching pattern or not, so in this particular case there shouldn't really be a difference.
Tomorrow I'll try and write an equivalent of regex::bytes::Regex::find as I'm not super happy with the performance of that with these patterns either. I'll use that to generate another comparison.

I'm happy to write a test program if that's required for this issue to get attention

Yes, please provide a reproduction program. While you did provide a good amount of details, it's no substitute for the real thing. Otherwise, I have to spend time deciphering exactly what you meant in your prose and possibly make guesses on things. But if you give me the code, the inputs and  the specific commands you're running, then it takes all of the guesswork out of the process. I can then be reasonably sure that I'm looking at the same thing you are.
With that said...

My expectation is that this kind of pattern would be at-worst slightly slower than the naïve alternative that follows:

I think your expectation is way off personally. I wouldn't call your code naive in any way. It's a bespoke targeted solution to a specific problem. There are a variety of reasons why it might be faster here:

My guess is that your benchmark is latency oriented. Your bespoke code is small and likely has little to almost no overhead at all. Compare that with a regex engine which has to execute a pile code for every search before it even gets to executing the search itself.
Regex engines support a very general pattern language, and it just doesn't take advantage of every possible optimization opportunity. Sometimes it's because it's difficult to do. Sometimes it's because it might not be worth it. And in other less interesting cases, it's just because nobody has attempt to implement it. In this case, from what I can see, your bespoke matcher is doing something very critical to performance here that the regex engine is likely not doing: it's recognizing the bounded repeat as a simple skip instruction and literally jumping over an entire portion of the haystack. The regex engine, by contrast, is still going to match . 1023 times one byte at a time. That's going to lose---and lose big---to the simple pointer offset you've implemented.

With respect to (2), it's possible the regex engine could implement this optimization, but it would be limited to specific cases. And I haven't thought through all of it.


Spammed by "Your services have been updated. Reload services"

Describe the bug
Spammed with "Your services have been updated. Reload services"
To Reproduce
Went from 5.3.3 to 5.5.0
Spamming happens on the bottom of the screen constantly.

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
After one reload should stop getting spammed.
Screenshots

Desktop:

OS: [e.g. macOS, Windows 10 etc.]
Ferdi Version [e.g. 5.4.3]
Windows 10 V 5.5.0

Debug information: https://debug.getferdi.com/...
Additional context

Thank you for reporting this. What server are you using?

https://hub.docker.com/r/getferdi/ferdi-server From: BennettSent: Monday, April 27, 2020 11:21 AMTo: getferdi/ferdiCc: slimshizn; AuthorSubject: Re: [getferdi/ferdi] Spammed by "Your services have been updated. Reload services" (#662) Thank you for reporting this. What server are you using?—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.

https://hub.docker.com/r/getferdi/ferdi-server

As a side question, is it possible to download the Ferdi account setup and use that for an offline setup?

I'd like to use Ferdi without a server to get rid of the mentioned notifications, but I'm afraid to lose the account settings (I have a lot of services and workspaces configured!).
In the long run, I'd like to go back and forth with "online" and "offline", taking advantage of both worlds.

@bittner Ferdi servers support importing and exporting your data from and to any other Ferdi server. e.g. You can export your data from the Ferdi API from the account dashboard at https://api.getferdi.com/user/login
To import data into the local server (i.e. "Using Ferdi without an account"), you'll have to first choose to use Ferdi without an account - this will start the internal server. You can then visit http://<IP_ADDRESS>:45569 in your browser and follow the instructions there.

Happening the same. Using or not using an account.
Unfortunately, following last @vantezzen advice resulted only in duplicating the services. :S

Sorry, looks like I caused a misunderstanding there: My comment was only meant as a reply to @bittner's question and was in no way intended as a fix to your described problem.

Sorry, looks like I caused a misunderstanding there: My comment was only meant as a reply to @bittner's question and was in no way intended as a fix to your described problem.

Hi @vantezzen no worries, thanks.

Any info on this? @vantezzen Thanks for your time.

Still happenning, windows client
Server: https://api.franzinfra.com

@zeeh1975 Your problem is due to a different reason, please look at #98 for more information about that - this issue is only about this error occurring with Ferdi servers, not Franz's server.

@zeeh1975 Your problem is due to a different reason, please look at #98 for more information about that - this issue is only about this error occurring with Ferdi servers, not Franz's server.

Sorry my bad.

Same problem happening since yesterday in Ferdi 5.5.0

I checked the problem a little bit and found some issues.
First of all, I tried to debug in developer console and found that remoteUpdates is empty, but localUpdates is not empty here:
https://github.com/getferdi/ferdi/blob/84f28d670a4586d63958438cfd9ca387dcf03ac3/src/stores/RecipesStore.js#L110
I compared /usr/lib/ferdi/app.asar.unpacked/recipes/all.json with contents inside ~/.config/Ferdi/recipes/ and see that version number is indeed different, so there is local update pending.
Then I see in the code that it should install local updates, and I see the log in developer console:
/usr/lib/ferdi/app.asar/node_modules/@sentry/utils/dist/instrument.js:104 Error: /home/xapienz/.config/Ferdi/recipes/temp/telegram-react/package.json: ENOENT: no such file or directory, open '/home/xapienz/.config/Ferdi/recipes/temp/telegram-react/package.json'
    at Object.openSync (fs.js:440)
    at Object.func [as openSync] (electron/js2c/asar.js:140)
    at Object.readFileSync (fs.js:342)
    at Object.fs.readFileSync (electron/js2c/asar.js:542)
    at Object.readFileSync (/usr/lib/ferdi/app.asar/node_modules/jsonfile/index.js:61)
    at ServerApi.getRecipePackage (/usr/lib/ferdi/app.asar/api/server/ServerApi.js:formatted:279)

So looks like /home/xapienz/.config/Ferdi/recipes/temp/telegram-react/package.json is missing.
Then I checked contents of /home/xapienz/.config/Ferdi/recipes/temp/telegram-react, and I see that package.json is missing, but recipe.tar.gz exists. So I think that package.json should be inside the archive.
However, recipe.tar.gz is not a valid archive file, instead it is just a html:
https://gist.github.com/xapienz/3d1f58c3dfc0d44fef8454c8d55acc14
So I think that retrieval of local updates is broken, and I see two issues:

local updates should not download from the server, so they should not get the html;
update server seems to return html, but it should return .tar.gz archive.

any fix for this?

The tried and tested fix for this "spamming" is to delete the <ferdiProfile>/recipes folder and restart Ferdi. Please be sure to use one of the latest Ferdi nightly builds from http://github.com/getferdi/nightlies/releases.
The reason for the issue is that when Ferdi starts up, it tries to ensure that the installed recipes (for the services that have been signed-up) are in sync with the pre-packaged recipes that are in the installation package. Any outdated recipes will trigger this blue ribbon - asking the user to reload/restart Ferdi. For some rare cases, this in-place update seems to silently error out. Deleting the recipes folder will force this overwrite. HTH.

Closing this since this seems like an issue at the installation folder. Feel free to reopen if the above workaround doesn't fix it.


Fixes #3381. WindowsDriver spurious ButtonPressed mouse events

Fixes

Fixes #3381

Proposed Changes/Todos

[x] Diagnose - Between instantiations of WindowsDriver, if a double-click event was the last event, ReadConsole is retriving a spurious event with Button1Pressed.
[x] Update Mouse Scenario to illustrate
[x] Hack fix: In Teardown eat any outstanding ReadConsole input.

I think you can also dispose the _waitForProbe.
In the TearDown uncomment:
_waitForProbe?.Dispose ();
In the WindowsInputHandler replace this in the finally:
            finally
            {
                if (!_inputHandlerTokenSource.IsCancellationRequested)
                {
                    _waitForProbe.Reset ();
                }
            }

I think you can also dispose the _waitForProbe.
In the TearDown uncomment:
_waitForProbe?.Dispose ();
In the WindowsInputHandler replace this in the finally:
            finally
            {
                if (!_inputHandlerTokenSource.IsCancellationRequested)
                {
                    _waitForProbe.Reset ();
                }
            }

The reason for this is when IsCancellationRequested is true the finally section is only executed when the _waitForProbe is disposed.

I think you can...

I'm leery of making these changes.
They make sense to me but I don't have the time right now to really think it through. How confident are you these changes are correct?


Suggestions/ideas

Currently I plan to make a 'v2' or a rework of this project before I add a lot of new goodies and features. So please note this will take some time, hopefully by the end of summer.
v2 Changes:
Better error handling.

Right now error handling is 'okay' but could be a lot better. I would like it to the point where the only errors that are possible are syntax errors (bad config files or moded coded).

Improved debugging.

Currently dugging is only used for logging commands being loaded... This clearly can be improved.

More module design.

Most things are in the index.js file and this should be broken up to serval files to process different things and to make it much cleaner.

Improved setting files.

I am still not fully sure how I want to set this up but with adding a lot new features the settings files need to be restructured.

New Features:
DM responses.

Instead of sending the response in the channel it DMs the user instead. There will be an option of either returning a DMed closed error (telling them to open up their DMs) or an option to just send the message in that channel instead.

Responses logging.

A log of all responses given. E.g. Gideon requested responses 4 and was DMed successfully.

Embed Support.

Support for embed responses and logging, ect. I think something like @User [embed with message and color] would look very clean and simple.

Support Tickets.

Instead of granting a role to a user or perms it instead makes a channel for just them and the staff team to view making the support experience much personalized. Optional logs for this would be with txt or maybe md files? Would have to play around with it to make a nice mark down. This would only be logged in a channel and optionally DMed to the user, this wouldn't get stored in a database.

Multiple Support System Support.
In other words allowing there to be more then just 1 support channel system. Not sure how I want to do this yet.
If you have any more ideas feel free to reply here with them.

Look into using dayjs instead of moment https://www.npmjs.com/package/dayjs

v2 has been released and most of these features have been added. I will make a project board at some point with all the other ideas I have but at this current time it is not a high priority. If you want something added please ask in the Discord server or make an issue to put it on my radar!!!


Using rantly with rspec-rails

Hi,
I'm not sure if there is a problem with my project's setup (rails app), but when I try to use
this package I got an error like cannot find -- rspec.
It seems that rspec-rails is its own project (use the base package like rspec-core,
rspec-expectations and so on...).
By changing the rspec package to the rspec-rails everything works (see diasbruno/rantly#17111a38e8e98c97230ecf32454f0d666918ef77)
So, I don't know if this package should also provide an extension for this case: rspec_rails_extensions.rb.

You can work around this by explicitly including rspec in your Gemfile, along with rspec-rails.
gem 'rspec'
gem 'rspec-rails'

Thanks, @bbugh. I'll give it a try.

I'm not sure if It would be a good idea since rspec e rspec-rails, they both use the same rspec "core" libraries, but they are 2 "different" projects...so, it should not be necessary to include rspec as a dependency - I think...
Maybe rantly could provide a specific extension for rspec-rails as rspec_rails_extensions.rb, so we don't need to add extra dependencies.


use existing wg0.conf

Hi,
I want to migrate my wireguard server. For the new wireguard server I use this docker image, but I`m not able to "import" my existing wg0.conf
Is there a way to do that?
Greets

I wrote converter from *.conf files to wireguard-ui db/*.json files, which Wireguard UI detects and using for work. But it not working. I suppose that all pivate keys from users should be loaded in wg directly, because wg-quick use info from something else, not only main /etc/wireguard/wg0.conf. Need to investigate futher...
Usage:
0. Backup wg0.conf and all clients *.conf files - all in one folder.

Install Wireguard UI, make sure that service is working (it creates db folder with files).
Stop WGUI and wg services.
Install jq and wg tools
Save and execute converter in backup conf folder
Copy all files in db folder and change owner (chown -R) for the files.
Start  WGUI and wg services and recheck all setting.

#!/bin/bash
#Require bash, jq, wireguard-tools

wg_conf_file="wg0.conf"

([ -x "$(command -v jq)" ] && [ -x "$(command -v wg)" ]) || { echo "Please install jq and wireguard-tools"; exit 1; }
[ -f $wg_conf_file ] || { echo "$wg_conf_file not found!"; exit 1; }

#Making folders
mkdir -p db/{clients,server}

updated_at=$(date --utc +%FT%T.%NZ)

interfaces(){
  addresses="$(grep -Po '(?<=^Address = )(\S+)' $wg_conf_file | sed 's/,/\",\"/g')"
  listen_port="$(grep -Po '(?<=^ListenPort = )(\S+)' $wg_conf_file)"
  post_up="$(grep -Po '(?<=^PostUp = )(.*)' $wg_conf_file)"
  post_down="$(grep -Po '(?<=^PostDown = )(.*)' $wg_conf_file)"
  file_format='{"addresses": ["%s"], "listen_port": "%s", "updated_at": "%s", "post_up": "%s", "post_down": "%s"}'
  printf "$file_format" "$addresses" "$listen_port" "$updated_at" "$post_up" "$post_down"
}

keypair(){
  private_key="$(grep -Po '(?<=^PrivateKey = )(\S+)' $wg_conf_file)"
  public_key="$(echo $private_key | wg pubkey)"
  file_format='{"private_key": "%s", "public_key": "%s", "updated_at": "%s"}'
  printf "$file_format" "$private_key" "$public_key" "$updated_at"
}

client(){
  clid="$1"
  private_key="$2"
  public_key="$3"
  preshared_key="$4"
  name="$1"
  email=""
  allocated_ips="$(echo $5 | sed 's/,/\",\"/g')"
  allowed_ips="<IP_ADDRESS>/0\",\"::/0"
  extra_allowed_ips=''
  use_server_dns="true"
  enabled="true"
  created_at=$updated_at
  updated_at=$updated_at
  file_format='{"id": "%s", "private_key": "%s", "public_key": "%s", "preshared_key": "%s", "name": "%s", "email": "%s", "allocated_ips": ["%s"], "allowed_ips": ["%s"], "extra_allowed_ips": [], "use_server_dns": %s, "enabled": %s, "created_at": "%s", "updated_at": "%s"}'
  printf "$file_format" "$clid" "$private_key" "$public_key" "$preshared_key" "$name" "$email" "$allocated_ips" "$allowed_ips" "$use_server_dns" "$enabled" "$created_at" "$updated_at"
}

interfaces | jq > "db/server/interfaces.json"
keypair | jq > "db/server/keypair.json"

#Converting clients conf files, if any
for conf in $(/usr/bin/ls -1 *.conf | grep -v $wg_conf_file)
do
  clid="cl"$(tr -dc 'a-z0-9' < /dev/urandom | dd bs=1 count=18 2>/dev/null && echo)
  private_key="$(cat $conf | grep -Po '(?<=PrivateKey = )(\S+)')"
  public_key="$(cat $conf | grep -Po '(?<=PublicKey = )(\S+)')"
  preshared_key="$(cat $conf | grep -Po '(?<=PresharedKey = )(\S+)')"
  allowed_ips="$(cat $conf | grep -Po '(?<=Address = )(\S+)')"
  client "$clid" "$private_key" "$public_key" "$preshared_key" "$allowed_ips" | jq > "db/clients/$clid.json"
done

@nebulosa2007, following these directions I don’t see it creating a json file for my three users. I’m confused at the last section for conf in /usr/bin/ls … it doesn’t look like it’s doing anything. Can you provide some guidance?

As I wrote above:

Backup wg0.conf and all clients *.conf files - all in one folder.
Then save script in that folder and execute it.

For example:
Backup_for_convert
└─ wg0.conf
└─ client1.conf
└─ client2.conf
└─ client3.conf
└─ converter.sh

This generates files as I would expect, and the contents look good, however it seems that the server is not able to parse the client configs that are generated. When I log into the UI I do see tiles for all of the clients...but if I try to edit any of the "imported" clients, I get a red "please provide a valid Client ID" toast, and the edit modal contains blank values for all of the parameters.
I also compared a Client ID generated by this script vs one generated fresh using the New Client button in the UI, and they seem to follow the same pattern - random 20 characters. The only difference I see is that the imported client IDs start with cl and the UI-generated ones start with cq...but I even tried manually switching that in the .json of imported clients to no avail.

@chaoticdude I've also got this problem.
Looks like it is due to PublicKey duplication, because in conf file there is server's public key and not a key of a peer.

yep, looks like it works now:

mkdir ~/wg-ui-import
find ~/wireguard-conf-backup/ -name 'peer*.conf' -exec cp "{}" ~/wg-ui-import/ \;
find ~/wireguard-conf-backup/ -name 'publickey-peer*' -exec cp "{}" ~/wg-ui-import/ \;
create a converter.sh using any text editor

#!/bin/bash
#Require bash, jq, wireguard-tools

wg_conf_file="wg0.conf"

([ -x "$(command -v jq)" ] && [ -x "$(command -v wg)" ]) || { echo "Please install jq and wireguard-tools"; exit 1; }
[ -f $wg_conf_file ] || { echo "$wg_conf_file not found!"; exit 1; }

#Making folders
mkdir -p db/{clients,server}

updated_at=$(date --utc +%FT%T.%NZ)

interfaces(){
  addresses="$(grep -Po '(?<=^Address = )(\S+)' $wg_conf_file | sed 's/,/\",\"/g')"
  listen_port="$(grep -Po '(?<=^ListenPort = )(\S+)' $wg_conf_file)"
  post_up="$(grep -Po '(?<=^PostUp = )(.*)' $wg_conf_file)"
  post_down="$(grep -Po '(?<=^PostDown = )(.*)' $wg_conf_file)"
  file_format='{"addresses": ["%s"], "listen_port": "%s", "updated_at": "%s", "post_up": "%s", "post_down": "%s"}'
  printf "$file_format" "$addresses" "$listen_port" "$updated_at" "$post_up" "$post_down"
}

keypair(){
  private_key="$(grep -Po '(?<=^PrivateKey = )(\S+)' $wg_conf_file)"
  public_key="$(echo $private_key | wg pubkey)"
  file_format='{"private_key": "%s", "public_key": "%s", "updated_at": "%s"}'
  printf "$file_format" "$private_key" "$public_key" "$updated_at"
}

client(){
  clid="$1"
  private_key="$2"
  public_key="$3"
  preshared_key="$4"
  name="$7"
  email=""
  allocated_ips="$(echo $5 | sed 's/,/\",\"/g')/32"
  allowed_ips="<IP_ADDRESS>/0"
  extra_allowed_ips=''
  use_server_dns="true"
  enabled="true"
  created_at=$updated_at
  updated_at=$updated_at
  file_format='{"id": "%s", "private_key": "%s", "public_key": "%s", "preshared_key": "%s", "name": "%s", "email": "%s", "allocated_ips": ["%s"], "allowed_ips": ["%s"], "extra_allowed_ips": [], "use_server_dns": %s, "enabled": %s, "created_at": "%s", "updated_at": "%s", "telegram_userid": "", "additional_notes": "", "endpoint": "<YOUR_ENDPOINT_HERE>"}'
  printf "$file_format" "$clid" "$private_key" "$public_key" "$preshared_key" "$name" "$email" "$allocated_ips" "$allowed_ips" "$use_server_dns" "$enabled" "$created_at" "$updated_at"
}

interfaces | jq --stream-errors '.' > "db/server/interfaces.json"
keypair | jq --stream-errors '.' > "db/server/keypair.json"

#Converting clients conf files, if any
for conf in $(/bin/ls -1 *.conf | grep -v $wg_conf_file)
do
  clid="cq"$(tr -dc '0-9' < /dev/urandom | dd bs=1 count=18 2>/dev/null && echo)
  conf_wo_ext="$(echo $conf | cut -d'.' -f1)"
  private_key="$(cat $conf | grep -Po '(?<=PrivateKey = )(\S+)')"
  public_key="$(cat publickey-$conf_wo_ext)"
  preshared_key="$(cat $conf | grep -Po '(?<=PresharedKey = )(\S+)')"
  allowed_ips="$(cat $conf | grep -Po '(?<=Address = )(\S+)')"
  client "$clid" "$private_key" "$public_key" "$preshared_key" "$allowed_ips" "$username" "$conf_wo_ext" | jq --stream-errors '.' > "db/clients/$clid.json"
done

Change <YOUR_ENDPOINT_HERE> in script to your actual endpoint
chmod +x converter.sh
./converter.sh
Copy files to wireguard-ui folder
apply config from UI
now everything works:

Strange, only some of them opens, other one gives me the red "please provide a valid Client ID" toast.

xid is compatible with mongodb object id, so I've found a way to generate such id in bash
#!/bin/bash
#Require bash, jq, wireguard-tools

wg_conf_file="wg0.conf"

([ -x "$(command -v jq)" ] && [ -x "$(command -v wg)" ]) || { echo "Please install jq and wireguard-tools"; exit 1; }
[ -f $wg_conf_file ] || { echo "$wg_conf_file not found!"; exit 1; }

#Making folders
mkdir -p db/{clients,server}

updated_at=$(date --utc +%FT%T.%NZ)

interfaces(){
  addresses="$(grep -Po '(?<=^Address = )(\S+)' $wg_conf_file | sed 's/,/\",\"/g')"
  listen_port="$(grep -Po '(?<=^ListenPort = )(\S+)' $wg_conf_file)"
  post_up="$(grep -Po '(?<=^PostUp = )(.*)' $wg_conf_file)"
  post_down="$(grep -Po '(?<=^PostDown = )(.*)' $wg_conf_file)"
  file_format='{"addresses": ["%s"], "listen_port": "%s", "updated_at": "%s", "post_up": "%s", "post_down": "%s"}'
  printf "$file_format" "$addresses" "$listen_port" "$updated_at" "$post_up" "$post_down"
}

keypair(){
  private_key="$(grep -Po '(?<=^PrivateKey = )(\S+)' $wg_conf_file)"
  public_key="$(echo $private_key | wg pubkey)"
  file_format='{"private_key": "%s", "public_key": "%s", "updated_at": "%s"}'
  printf "$file_format" "$private_key" "$public_key" "$updated_at"
}

client(){
  clid="$1"
  private_key="$2"
  public_key="$3"
  preshared_key="$4"
  name="$7"
  email=""
  allocated_ips="$(echo $5 | sed 's/,/\",\"/g')/32"
  allowed_ips="<IP_ADDRESS>/0"
  extra_allowed_ips=''
  use_server_dns="true"
  enabled="true"
  created_at=$updated_at
  updated_at=$updated_at
  file_format='{"id": "%s", "private_key": "%s", "public_key": "%s", "preshared_key": "%s", "name": "%s", "email": "%s", "allocated_ips": ["%s"], "allowed_ips": ["%s"], "extra_allowed_ips": [], "use_server_dns": %s, "enabled": %s, "created_at": "%s", "updated_at": "%s", "telegram_userid": "", "additional_notes": "", "endpoint": "<YOUR_ENDPOINT_HERE>"}'
  printf "$file_format" "$clid" "$private_key" "$public_key" "$preshared_key" "$name" "$email" "$allocated_ips" "$allowed_ips" "$use_server_dns" "$enabled" "$created_at" "$updated_at"
}

interfaces | jq --stream-errors '.' > "db/server/interfaces.json"
keypair | jq --stream-errors '.' > "db/server/keypair.json"

#Converting clients conf files, if any
for conf in $(/bin/ls -1 *.conf | grep -v $wg_conf_file)
do
  random_sec=$(tr -dc '0-9' < /dev/urandom | dd bs=1 count=6 2>/dev/null && echo)
  date=$(date --date="${random_sec} seconds ago" +%s)
#  clid="cq"$(tr -dc '0-9' < /dev/urandom | dd bs=1 count=18 2>/dev/null && echo)
  clid="$(printf "%x" ${date})000000000000"
  conf_wo_ext="$(echo $conf | cut -d'.' -f1)"
  private_key="$(cat $conf | grep -Po '(?<=PrivateKey = )(\S+)')"
  public_key="$(cat publickey-$conf_wo_ext)"
  preshared_key="$(cat $conf | grep -Po '(?<=PresharedKey = )(\S+)')"
  allowed_ips="$(cat $conf | grep -Po '(?<=Address = )(\S+)')"
  client "$clid" "$private_key" "$public_key" "$preshared_key" "$allowed_ips" "$username" "$conf_wo_ext" | jq --stream-errors '.' > "db/clients/$clid.json"
done

I updated the script myself again, maybe it helps someone....
for my usage "allowedips" was missing and I had the publickey from the clients also in the config
`
#!/bin/bash
#Require bash, jq, wireguard-tools
wg_conf_file="wg0.conf"
([ -x "$(command -v jq)" ] && [ -x "$(command -v wg)" ]) || { echo "Please install jq and wireguard-tools"; exit 1; }
[ -f $wg_conf_file ] || { echo "$wg_conf_file not found!"; exit 1; }
#Making folders
mkdir -p db/{clients,server}
updated_at=$(date --utc +%FT%T.%NZ)
interfaces(){
addresses="$(grep -Po '(?<=^Address = )(\S+)' $wg_conf_file | sed 's/,/","/g')"
listen_port="$(grep -Po '(?<=^ListenPort = )(\S+)' $wg_conf_file)"
post_up="$(grep -Po '(?<=^PostUp = )(.)' $wg_conf_file)"
post_down="$(grep -Po '(?<=^PostDown = )(.)' $wg_conf_file)"
file_format='{"addresses": ["%s"], "listen_port": "%s", "updated_at": "%s", "post_up": "%s", "post_down": "%s"}'
printf "$file_format" "$addresses" "$listen_port" "$updated_at" "$post_up" "$post_down"
}
keypair(){
private_key="$(grep -Po '(?<=^PrivateKey = )(\S+)' $wg_conf_file)"
public_key="$(echo $private_key | wg pubkey)"
file_format='{"private_key": "%s", "public_key": "%s", "updated_at": "%s"}'
printf "$file_format" "$private_key" "$public_key" "$updated_at"
}
client(){
clid="$1"
private_key="$2"
public_key="$3"
preshared_key="$4"
name="$7"
email=""
allocated_ips="$(echo $5 | sed 's/,/","/g')"
allowed_ips="$8"
extra_allowed_ips=''
use_server_dns="true"
enabled="true"
created_at=$updated_at
updated_at=$updated_at
file_format='{"id": "%s", "private_key": "%s", "public_key": "%s", "preshared_key": "%s", "name": "%s", "email": "%s", "allocated_ips": ["%s"], "allowed_ips": ["%s"], "extra_allowed_ips": [], "use_server_dns": %s, "enabled": %s, "created_at": "%s", "updated_at": "%s", "telegram_userid": "", "additional_notes": "", "endpoint": ""}'
printf "$file_format" "$clid" "$private_key" "$public_key" "$preshared_key" "$name" "$email" "$allocated_ips" "$allowed_ips" "$use_server_dns" "$enabled" "$created_at" "$updated_at"
}
interfaces | jq --stream-errors '.' > "db/server/interfaces.json"
keypair | jq --stream-errors '.' > "db/server/keypair.json"
#Converting clients conf files, if any
for conf in $(/bin/ls -1 *.conf | grep -v $wg_conf_file)
do
random_sec=$(tr -dc '0-9' < /dev/urandom | dd bs=1 count=6 2>/dev/null && echo)
date=$(date --date="${random_sec} seconds ago" +%s)
clid="cq"$(tr -dc '0-9' < /dev/urandom | dd bs=1 count=18 2>/dev/null && echo)
clid="$(printf "%x" ${date})000000000000"
conf_wo_ext="$(echo $conf | cut -d'.' -f1)"
private_key="$(cat $conf | grep -Po '(?<=PrivateKey = )(\S+)')"
public_key="$(echo $private_key | tee privatekey | wg pubkey)"
preshared_key="$(cat $conf | grep -Po '(?<=PresharedKey = )(\S+)')"
interface_ips="$(cat $conf | grep -Po '(?<=Address = )(\S+)')"
allowed_ips="$(cat $conf | grep -Po '(?<=AllowedIPs = )(\S+)')"
client "$clid" "$private_key" "$public_key" "$preshared_key" "$interface_ips" "$username" "$conf_wo_ext" "$allowed_ips" | jq --stream-errors '.' > "db/clients/$clid.json"
done
`


[ISSUE #4029] api improve test case

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed ./mvnw clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #4168 (2ad52fc) into master (6795ccd) will decrease coverage by 0.29%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #4168      +/-   ##
============================================
- Coverage     70.23%   69.93%   -0.30%
+ Complexity     7165     7119      -46
============================================
  Files           965      965
  Lines         26934    26925       -9
  Branches       2399     2396       -3
============================================
- Hits          18916    18831      -85
- Misses         6566     6638      +72
- Partials       1452     1456       +4

Impacted Files
Coverage Δ

...n/httpclient/exception/ShenyuTimeoutException.java
0.00% <0.00%> (-33.34%)
:arrow_down:

...he/shenyu/common/timer/HierarchicalWheelTimer.java
68.00% <0.00%> (-18.00%)
:arrow_down:

...va/org/apache/shenyu/common/timer/TimingWheel.java
73.80% <0.00%> (-16.67%)
:arrow_down:

...ava/org/apache/shenyu/admin/utils/SessionUtil.java
78.94% <0.00%> (-15.79%)
:arrow_down:

...ache/shenyu/plugin/grpc/cache/GrpcClientCache.java
87.50% <0.00%> (-12.50%)
:arrow_down:

...a/org/apache/shenyu/common/utils/VersionUtils.java
35.71% <0.00%> (-10.72%)
:arrow_down:

...henyu/plugin/grpc/resolver/ShenyuNameResolver.java
54.25% <0.00%> (-9.58%)
:arrow_down:

...he/shenyu/loadbalancer/spi/RandomLoadBalancer.java
81.81% <0.00%> (-9.10%)
:arrow_down:

.../org/apache/shenyu/common/timer/TimerTaskList.java
74.72% <0.00%> (-8.80%)
:arrow_down:

.../apache/shenyu/admin/model/dto/BatchCommonDTO.java
50.00% <0.00%> (-7.15%)
:arrow_down:

... and 43 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Improve "RuntimeError: Image sweagent/swe-agent:latest not found. Please ensure it is built and available. Please double-check that you followed all installation/setup instructions from the readme." error

Describe the feature
When running swe-agent for the first time, I am faced with
  RuntimeError: Image sweagent/swe-agent:latest not found. Please ensure it is built and available. Please double-check that you followed all installation/setup instructions from the readme.

This error message provides little context on what is wrong and how to move forward.
Potential Solutions

Automatically build the sweagent/swe-agent:latest image if it is not found
Link to the documentation that the error message is referencing

This is for installation with docker? If this doesn't work, shouldn't users just try the non-docker install?

For reference, here's how I improved mine.
I ran docker pull latest again and docker run and it worked fine

This is for installation with docker? If this doesn't work, shouldn't users just try the non-docker install?

This is for the source install, but afaiu regardless of installation approach trajectories are evaluated within sweagent/swe-agent:latest containers.

Yup, @samuela is right, we could make the error message nicer (and yes, this is for all installation variants). And yes @locona , that's the way to resolve it :)
Gonna improve this as @samuela suggested soon


first pass of spot feed integration

@mdaniel resolved most comments, with one minor exception:

Be aware there are quite a few places where an err is captured, and even logged, but then execution continues which is unlikely to lead to a good outcome

I believe I now stop the execution within the function but allow the caller to simply log and continue, since spot pricing is optional.

I believe I now stop the execution within the function but allow the caller to simply log and continue, since spot pricing is optional. Let me know if you feel strongly here.

Sure, but I didn't mean just the spot pricing flow: like this, this, this, and this whole stanza which appears to be squatting on the wrong err


Clean up build warnings and errors

These are just some small errors and warnings I found while trying to test a staging release to Nexus using the parent POM.

+1


Demo repair

I've deleted the admin user while trying demo. I was testing if there is any condition to leave at least one admin user at all times.

@Iftikhar-Omar actually demo has not been changed for long time. Now i need to setup the node js server as front part is rendered via react app and backend is in rust axum api.  once i have some time will install and re fixed the demo.

Demo should be fixed.


Consider a Promise.any

Consider the following use-case for progressive enhancement of some UI:
// Retrieve locally stored data
let getCache = () => {
 return RSVP.resolve(localStorage.getItem('key'));
};

// Enhance local data set through a remote call
let getStore = () => {
  return new RSVP.Promise(resolve => $.ajax(...).then((data) => {
    localStorage.setItem('key', data);
    resolve(data);
  }));
};

// Return the first promise that fulfills (rejected or not)
return RSVP.race([ getCache(), getStore() ])

With Promise.race both promises will eventually be fulfilled, but the top-level promise only waits for the first and immediately fulfills itself.
It would be beneficial to have a method such as Promise.any, which will return on the first promise that resolved, disregarding any rejections published.
I know it does seem to deviate from what's currently being done, fulfill on rejection, but would help tremendously for these use-cases: In particular, if there is no local cache we can reject but keep going until we have some data to return.

For this sort of pattern we provide RSVP.allSettled and RSVP.hashSettled

So I've seen. However, both mechanisms require both promises be fulfilled as far as I've seen.
This use case would take advantage of first-or-fail, without the explicit fail part.
Taking RSVP.race as an example, it would be deferring any rejections raised to the onRejection callback.

Ah yes, I see. Race is unfortunately terrible.
We have so far made a policy to not add additional functionality, maybe @wycats feels differently about this case, lets see.
Until then, RSVP fully supports subclassing, where a user can augment and add any feature they wish.
Although I haven't had time to complete, https://github.com/stefanpenner/rsvp-party aims to be the junk drawer of various promise features.

I suspected something like that.
But why do you say race is terrible?

Well it has its purpose. But in-practice people want something like any

Well, I'm just leaving my +1 for it here then. :smile:

any and some imply a predicate, which is not what this is about.
How about first? We might propose this to TC39 as well.

@wycats first being short-hand for firstFulfilled


Running Spyder in virtualenv via Anaconda Prompt

Description
What steps will reproduce the problem?

Install Spyder in a virtual environment via the Anaconda Prompt
Run spyder from there

What is the expected output? What do you see instead?
Please provide any additional information below
File "C:\Anaconda3\envs\env_tensorflow\lib\site-packages\spyder\plugins_init_.py", line 511, in
toggled=lambda checked: self.toggle_view(checked),
File "C:\Anaconda3\envs\env_tensorflow\lib\site-packages\spyder\plugins\ipythonconsole.py", line 709, in toggle_view
self.create_new_client(give_focus=False)
File "C:\Anaconda3\envs\env_tensorflow\lib\site-packages\spyder\plugins\ipythonconsole.py", line 991, in create_new_client
self.connect_client_to_kernel(client)
File "C:\Anaconda3\envs\env_tensorflow\lib\site-packages\spyder\plugins\ipythonconsole.py", line 1018, in connect_client_to_kernel
stderr_file)
File "C:\Anaconda3\envs\env_tensorflow\lib\site-packages\spyder\plugins\ipythonconsole.py", line 1420, in create_kernel_manager_and_kernel_client
kernel_manager.start_kernel(stderr=stderr)
File "C:\Anaconda3\envs\env_tensorflow\lib\site-packages\jupyter_client\manager.py", line 257, in start_kernel
**kw)
File "C:\Anaconda3\envs\env_tensorflow\lib\site-packages\jupyter_client\manager.py", line 203, in _launch_kernel
return launch_kernel(kernel_cmd, **kw)
File "C:\Anaconda3\envs\env_tensorflow\lib\site-packages\jupyter_client\launcher.py", line 128, in launch_kernel
proc = Popen(cmd, *

@dalthviz, please investigate this one: install tensorflow and Spyder in a new conda env and try to start Spyder afterwards.

There is another issue opened about this same problem. Closing this one.


Highlight query words in the open doc sidebar

A user would like their search query to be highlighted not just in the result list, but in the full text in the side bar.
Could this be solved by fetching the full text from the index (i.e. a query for id:<some-id> and not from the /doc/{collection}/{id}/json endpoint? What would the drawbacks be?

moved to eic


Downgrade missing references and citations from errors to warning

Closes https://github.com/typst/typst/issues/4035
Both unresolved references and citations now result in warnings rather than errors. In the document, they are rendered in red, raw text.
// Warning: label `<earth>` does not exist in the document
Earth is a planet. @earth

Notably, references to duplicate labels are still an error.
Given this change, is becomes even more important that we prevent warning spam, so that important warnings like this one stand out. There are some ideas to have different importance for various warnings (for instance, by demoting less important warnings that do not have adverse affects on the document to a "lint" level), but that's still in-flux. In the web app, we might add a confirmation dialogue before downloading a PDF with outstanding warnings (but not with lints) in the future.

I feel like adding warning levels (or equivalent) first is more important (or, at least, should ship together), considering the following:

I don't think the majority of users would want to force missing references to be displayed (would rather be notified about it and stop compilation), which implies this feature should be opt-in instead of opt-out in some way (e.g. a confirmation in the web app, a flag in the CLI, and so on);

With the upcoming deprecation warnings and others, warning spam will invariably increase in the next update, making this one easy to miss, and I'd say missing references are a larger problem for a document and something that the user should certainly at least be made aware of, much like other errors.

Imho we should tackle this first before merging this feature. I don't think it is urgent enough to skip this discussion.

I don't think the majority of users would want to force missing references to be displayed (would rather be notified about it and stop compilation), which implies this feature should be opt-in instead of opt-out in some way (e.g. a confirmation in the web app, a flag in the CLI, and so on);

I have the exact opposite impression. The majority would rather have references be a warning.

Thanks for the input; I'll respond in the issue to keep the discussion organized.


Local debugging fails with 401 error

Describe the bug
I tried setting up local debugging following the instructions here
However, when I try to start the debugging session, I get a 401 error within VS Code.
Important If I fetch the accessToken myself using the command ask util generate-lwa-tokens --scopes alexa::ask:skills:debug and then start the local debugging session at the terminal using that access token, local debugging works.
The inbuilt mechanism in VSCode is somehow fetching an invalid access token and failing with a 401.
To Reproduce
Steps to reproduce the behavior:

Follow the instructions here to setup local debugging.
Open the Run menu and then choose Start Debugging.
VS Code errors out with 401 code.

Extension Logs
See attached image.

OS: macOS Big Sur 11.0
Visual Studio Code Version: 1.51.1
Alexa Skill Toolkit Version: v2.2.0

Hey @s-maheshbabu , thanks for reporting this. I tried local debugging on my skill, through the extension on the following configuration and see that it is working as expected
OS: Darwin x64 19.6.0
Visual Studio Code Version:  1.51.1
Alexa Skills Toolkit Version: 2.2.0
Git Version: git version 2.29.2
Since you mention that by using the scoped access token from CLI, the local debug connection is getting set up correctly, I am guessing this has something to do with the profile you created in the extension. Can you recreate the profile through the Profile Manager in the extension, and check if local debugging works alright? You can navigate to the Profile Manager view by clicking on the options ... tab on the Skill Management tree view in the extension

Let us know if that works.

No luck. I deleted the 'default' profile and recreated it and I still get the 401s.
I created a new profile within VC Code and I get an error like this -
'ProfileName' profile doesn't have access to the skill. Please use 'default' profile..

VC Code is fetching a valid looking access_token (starts with Atza|) but then fails when trying to actually connect.

In case it helps with the investigation, I also get this false toast warning every once in a while in VS Code.
"This skill has not been previously deployed. Some extension functionalities will be unavailable until an initial deployment."
That is not true. The skill has been deployed multiple times using the extension.

In case it helps with the investigation, I also get this false toast warning every once in a while in VS Code.
"This skill has not been previously deployed. Some extension functionalities will be unavailable until an initial deployment."
That is not true. The skill has been deployed multiple times using the extension.

@s-maheshbabu so the skill has been deployed using the default profile and I suspect you are on the new profile that you created to use local debugging?

No luck. I deleted the 'default' profile and recreated it and I still get the 401s.
I created a new profile within VC Code and I get an error like this -
'ProfileName' profile doesn't have access to the skill. Please use 'default' profile..

I just checked our logs and I see that the local debug scope is still missing from your permission list. And the fact that you are able to generate a token manually and use it proves that your account should be able to debug the skill. I understand that you deleted and created the default profile again? Can you verify that when you are firing the debugging session, you are on the default profile?

I verified the following while trying to launch local debugging:
I get 401 errors using the 'default' profile on VSCode.
I get 'profile doesn't have access to the skill' error if I create a new profile within VS Code and use it.
I get 'profile doesn't have access to the skill' error if I create a new profile at CLI (ask configure) and use it.
Additional Info:
When using 'default' profile, I'm able to deploy the skill, test the skill etc. in VS Code.
When I create a new profile using 'Profile Manager', I only see APL. All other options disappear. The new profile is somehow not able to access the skill at all.

@s-maheshbabu

I verified the following while trying to launch local debugging:
I get 401 errors using the 'default' profile on VSCode.
I get 'profile doesn't have access to the skill' error if I create a new profile within VS Code and use it.
I get 'profile doesn't have access to the skill' error if I create a new profile at CLI (ask configure) and use it.
Additional Info:
When using 'default' profile, I'm able to deploy the skill, test the skill etc. in VS Code.
When I create a new profile using 'Profile Manager', I only see APL. All other options disappear. The new profile is somehow not able to access the skill at all.
Here is an image with status bar to prove I'm using default profile.

Unfortunately, you can only access features using the same named profile(in your case that would be default) as the one you used to download/create the skill.
I am sorry for the hassle, but it looks like the default profile doesnt have the permission scope - alexa::ask:skills:debug.
Can you do the following?

Create a new profile.
Use the new profile to download the skill again.
Run local debugging using the new profile.

That worked. Thanks for your responsiveness.

Additional Info:

When I created a new profile through VSCode and downloaded the skill, local debugging worked as expected.

When I created a new profile at command line using 'ask configure', activate the new profile in VSCode and download the skill, I got 401s for local debugging.

So bottom line is that profiles created outside VSCode don't seem to be working in VSCode. Please see if you can reproduce that.

When I created a new profile through VSCode and downloaded the skill, local debugging worked as expected.
When I created a new profile at command line using 'ask configure', activate the new profile in VSCode and download the skill, I got 401s for local debugging.
BTW, when I create profiles at CLI, I also get asked to link it with an AWS profile which I did. Profile creation via VSCode doesn't ask to link AWS profiles. May be this step is somehow screwing this up?

Can you tell me what the version of your ask cli is?

2.6.0.
Good point. Let me try to update it to the latest and see if I can still reproduce the issue.

Once I upgrade to 2.20.0 everything works as expected. So, there is just some incompatibility with ask-cli 2.6.0 and earlier.
Sorry for the churn and thanks for the help.

Awesome @s-maheshbabu . Glad you got it working. Closing this issue as resolved. Please let us know if you are facing any other issue with the extension or have any feature requests.


No margins between fields

All my fields have 0 bottom margin and are directly on top of each other, like when you don't wrap your fields in bootstrap form-groups.
Any ideas? Thanks!

Check your CSS import order perhaps?

I have the bootstrap stylesheet loading first, then the template I'm using's custom stylesheet and then angular-form-gen's stylesheet. All other forms I have looks correct and the schema editor's css looks normal. Only the form generated in the rendered directive looks like that.
I'm not familiar enough with this project to really know where to look for the problem, like which css should handle the bottom margin for the fields.

Well Chrome dev tools shows perfectly what CSS is used. Investigate that.
On 10 January 2016 at 20:13, Daniel van Niekerk<EMAIL_ADDRESS>wrote:

I have the bootstrap stylesheet loading first, then the template I'm
using's custom stylesheet and then angular-form-gen's stylesheet. All other
forms I have looks correct and the schema editor's css looks normal. Only
the form generated in the rendered directive looks like that.
I'm not familiar enough with this project to really know where to look for
the problem, like which css should handle the bottom margin for the fields.
—
Reply to this email directly or view it on GitHub
https://github.com/McNull/angular-form-gen/issues/20#issuecomment-170376630
.

Thanks Vaelyr, you helped me in the right direction. It turned out my template had custom css that set fieldset .form-group to have a bottom-margin of 0px. Everything is working as it should now.


chore(deps): upgrade configuration

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-configuration-1.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 2740

Questions ?
Please refer to the Backport tool documentation


Fix empty permissions bug in form_json_service

Description
Fix empty permissions bug in form_json_service

What type of PR is this? (check all applicable)

[ ] 🍕 Feature
[x ] 🐛 Bug Fix
[ ] 📦 Chore (Release)
[ ] ✅ Test

see https://hous-bssb.atlassian.net/browse/BPHH-1989


Printing balnk pages

on printing preview and printing to a printer - the pages are totally blank

As outlined in https://github.com/mozilla/pdf.js/blob/master/CONTRIBUTING.md, please provide additional details in order for this to be a valid issue!

Closing as incomplete.


Add and verify tests

This useful app crashes for me with JsonSerializationException: "A member with the name 'Signature' already exists on 'DecodeWheaRecord.NativeMethods+WHEA_ERROR_RECORD_HEADER'. Use the JsonPropertyAttribute to specify another name"
So I fixed this, added a smoke test and updated the pipeline to run the test after each build

This is great, thank-you! I'll take a proper look and merge over the weekend. I have some local changes as well to push that adds support for many more additional WHEA messages. Glad you're finding it useful, I haven't spent much time on it due to time constraints, but would like to continue to improve it over the coming months.

I'm glad to hear that you plan to continue the support of this tool, thank you
I need to tell you this: As you can see there was the second project added, and because of this sometimes nuget restore uses only the main .csproj file and thus doesn't restore packages needed for tests, but retry helps.
More info about this issue is available here in logs: https://dev.azure.com/nexiom/DecodeWheaRecord/_build/results?buildId=69&view=logs&j=12f1170f-54f2-53f3-20dd-22fc7dff55f9&t=53352b99-bc56-513f-dcdf-57009ff4318b&l=21
I couldn't figure this out myself. Maybe you have more experience with this

Thanks @kirhgoph, I've merged this to main. I also have some major improvements on the way which add support for the majority of WHEA events which can be recorded to the Microsoft-Windows-Kernel-WHEA/Operational log.


Adding functionality for Flaky and skip upload of evidence

I have added these features but I would like to hear your thoughts before committing.
If playwright re-tries to run a test that failed it is considered flaky. In my implementation I search for testkeys that are both PASSED and FAILED. If two or more such testruns are encountered the passed testrun will be tagged according to a setting in playwright.config.ts e.g. markFlakyWith: "FLAKY" and all failed ones will be removed. E.g. if TES-49 fails twice and then passes on the third run then the two failed ones will be removed from the Xray import and the passed one will get the status defined in markFlakyWith. If markFlakyWith is absent the test will get status passed.
I also added settings to avoid upload evidence to Xray due to the 100MiByte limit of the Xray import with the boolean settings uploadScreenShot, uploadTrace and uploadVideo.
Extract from the readme:

Xray only permits an upload size of maximum 100 MiB and subsequently playwright-xray will fail to upload the
execution result due to the total size of videos and traces exceeds this limit. In order to still be able to
update the Xray execution status while still being able to view the videos and traces in e.g. Jenkins the
switches below can be used to exclude evidence from the Xray import file.

Test that will pass after a rerun will be tagged with whatever is defined with the option "markFlakyWith"
If this option is not set, the test will be tagged as PASSED. Please note that you have to define the
Execution Status you choose in Xray, e.g. FLAKY. Perhaps Flaky should have another colour?

Hi there, thanks for the help, I bit loaded lately.
It looks great, go for it, and go ahead and review the PR.

Thanks, I'll just let it run in our CI for a couple of days in order to iron out any bugs


A Guide To Work Stealing (BAEL-3522)

Based on comments in http://jira.baeldung.com/browse/BAEL-3522, I'm closing the PR.


Fix for the sklearn test error

While I was trying to run pytest I have stumbled upon some error with sklearn test .I have fixed them in this commit .

@vulkomilev can you post what issue did you find? Is there a stactrace of the issue.
Also preferably, I would avoid adding codeowners into CI until there has been a contribution since those are more tricky to maintain

yeah, you should be executing pytest tfx_addons same as CI. Examples should not be picked up in main CI. This is because we test them separately.

@vulkomilev can you post what issue did you find? Is there a stactrace of the issue.
Also preferably, I would avoid adding codeowners into CI until there has been a contribution since those are more tricky to maintain

I guess this is the issue? https://github.com/tensorflow/tfx/issues/4701#event-6136304968
I also created a PR and added you as reviewer, but I think it needs next TFMA release to work


[NCL-7392] Implement new PatternFly table including sorting capabilities

Replaced by https://github.com/project-ncl/pnc-web-ui-react/pull/163 , closing without merging


haibu /drones does not update correctly after a drone restarts.

start haibu,
deploy an app,
curl localhost:9002/drones

then kill the drone with kill -9 $PID
haibu will restart it,
but if you do curl localhost:9002/drones again, it will show the same pid. this is wrong.
the app is now running on a new pid,  if you try and kill it again, then there will be an error.

yes.

here:
https://github.com/nodejitsu/haibu/tree/update-pid-in-drone

Fixed in ebb83ba2c2f22191d7d03127484e47209d7648e1


Customizing the font of NativeMarkText

Hi!
I am trying to customize the font of NativeMarkText and I want to set Avenir-Medium as the default font. Unfortunately, the view does not display the correct font. That's why I tested different fonts from the Avenir font family and described my findings below.
Test Cases
Please see below for the actual code I used to generate the following example. The first line displays the text with a default Text-View and the respective font. The second line displays the text with the NativeMarkText-View and the respective font.
As you can see in the screenshot, using the fonts Avenir-Book and Avenir-Heavy seems to be working - both lines look exactly the same.
With the fonts Avenir-Roman and Avenir-Medium, you can see slight differences (compare the width and weight) between the NativeMarkText-View and the default Text-View. It looks like in both cases the font Avenir-Book is used instead of Roman/Medium.
Am I doing something wrong, or is it not possible to specify e.g. Avenir-Medium as the base font for the markdown text view?

Test-Code
import SwiftUI
import NativeMarkKit

struct TestNativeMarkKitView: View {

    private let fontSize: CGFloat = 19.0
    private let backgroundColor: Double = 0.9

    var body: some View {
        VStack(alignment: .leading, spacing: 8) {
            createTextViews(fontName: "Avenir-Book")
            createTextViews(fontName: "Avenir-Roman")
            createTextViews(fontName: "Avenir-Medium")
            createTextViews(fontName: "Avenir-Heavy")
        }
        .padding(20)
    }

    private func createTextViews(fontName: String) -> some View {
        VStack(alignment: .leading, spacing: 1) {
            Text("\(fontName)")
                .font(.custom("Times New Roman", size: 12))

            // Default text
            HStack(spacing: 5) {
                Text("Avenir Avenir Avenir Avenir")
                    .font(.custom(fontName, size: fontSize))
                    .background(Color(red: backgroundColor, green: backgroundColor, blue: backgroundColor, opacity: 1.0))

                Text("(Default)")
                    .font(.custom("Times New Roman", size: 8))
            }

            // NativeMarkKit text
            HStack(spacing: 5) {
                NativeMarkText("Avenir Avenir Avenir Avenir", styleSheet: createStyleSheet(fontName: fontName))

                Text("(NativeMark)")
                    .font(.custom("Times New Roman", size: 8))
            }
        }
    }

    private func createStyleSheet(fontName: String) -> StyleSheet {
        return StyleSheet.default.duplicate().mutate(
            block: [
                .document: [
                    .textStyle(.custom(name: .custom(fontName), size: .fixed(fontSize))),
                    .backgroundColor(UIColor(red: CGFloat(backgroundColor), green: CGFloat(backgroundColor), blue: CGFloat(backgroundColor), alpha: 1.0))
                ]
            ]
        )
    }
}

Thx for your help!

Thanks for the bug report! The sample code was very helpful. With it, I'm able to reproduce it on both iOS and macOS. I'll start investigating the cause this evening.

@flixlo I got a fix in master now, and tagged it as 2.0.1. Let me know if you're still having issues.

@andyfinnell Thank you for your quick response and the new release! 👍
It seems that italic text still uses Avenir-Book instead of Avenir-Medium. I used the following code to test different scenarios for bold and italic text.

NativeMarkText("normal", styleSheet: createStyleSheet(fontName: fontName))
NativeMarkText("*italic*", styleSheet: createStyleSheet(fontName: fontName))
NativeMarkText("**bold**", styleSheet: createStyleSheet(fontName: fontName))
NativeMarkText("***bold & italic***", styleSheet: createStyleSheet(fontName: fontName))
NativeMarkText("**bold / *bold & italic***", styleSheet: createStyleSheet(fontName: fontName))
NativeMarkText("*italic / **italic & bold***", styleSheet: createStyleSheet(fontName: fontName))

:oof: It seems like the API Apple is providing to specify italic/bold isn't that smart. AppKit has NSFontManager, which contains an old API that appears to do the right thing and fix this bug. But UIKit has no counterpart to NSFontManager. I'll see what can be done on iOS; it will probably take a while to figure out.

@flixlo I've put up a potential fix in #12  (branch bugs/custom-font-italic-does-not-preserve-weight-10). If you want to point to that branch and see if that fixes things, I'd appreciate it.

@andyfinnell Thank you again for the quick response! I did some testing on the branch and the italic text styling works properly now. Unfortunately, combining italic and bold text does not work anymore.
Branch: bugs/custom-font-italic-does-not-preserve-weight-10

1, 2, 3 work properly
4, 5, 6 dont work

Version: 2.0.1

1, 3, 4, 5 work properly
2, 6 dont work

Version: 2.0.0

Markdown Text
NativeMarkText("1 -- normal", styleSheet: createStyleSheet(fontName: fontName))
NativeMarkText("2 -- *italic*", styleSheet: createStyleSheet(fontName: fontName))
NativeMarkText("3 -- **bold**", styleSheet: createStyleSheet(fontName: fontName))
NativeMarkText("4 -- ***bold & italic***", styleSheet: createStyleSheet(fontName: fontName))
NativeMarkText("5 -- **bold -- *bold & italic***", styleSheet: createStyleSheet(fontName: fontName))
NativeMarkText("6 -- *italic -- **italic & bold***", styleSheet: createStyleSheet(fontName: fontName))

Full test code
import SwiftUI
import NativeMarkKit

struct TestNativeMarkKitView: View {

    private let fontSize: CGFloat = 19.0
    private let backgroundColor: Double = 0.9

    var body: some View {
        VStack(alignment: .leading, spacing: 8) {
            //createTextViews(fontName: "Avenir-Book")
            //createTextViews(fontName: "Avenir-Roman")
            createTextViews(fontName: "Avenir-Medium")
            //createTextViews(fontName: "Avenir-Heavy")
        }
        .padding(20)
    }

    private func createTextViews(fontName: String) -> some View {
        VStack(alignment: .leading, spacing: 1) {
            Text("\(fontName)")
                .font(.custom("Times New Roman", size: 12))

            NativeMarkText("1 -- normal", styleSheet: createStyleSheet(fontName: fontName))
            NativeMarkText("2 -- *italic*", styleSheet: createStyleSheet(fontName: fontName))
            NativeMarkText("3 -- **bold**", styleSheet: createStyleSheet(fontName: fontName))
            NativeMarkText("4 -- ***bold & italic***", styleSheet: createStyleSheet(fontName: fontName))
            NativeMarkText("5 -- **bold -- *bold & italic***", styleSheet: createStyleSheet(fontName: fontName))
            NativeMarkText("6 -- *italic -- **italic & bold***", styleSheet: createStyleSheet(fontName: fontName))
        }
    }

    private func createStyleSheet(fontName: String) -> StyleSheet {
        return StyleSheet.default.duplicate().mutate(
            block: [
                .document: [
                    .textStyle(.custom(name: .custom(fontName), size: .fixed(fontSize))),
                    .backgroundColor(UIColor(red: CGFloat(backgroundColor), green: CGFloat(backgroundColor), blue: CGFloat(backgroundColor), alpha: 1.0))
                ]
            ]
        )
    }
}

Sorry about the regression, I've pushed a fix. Here's the current rendering of your test case on the bugs/custom-font-italic-does-not-preserve-weight-10 branch:
https://github.com/andyfinnell/NativeMarkKit/blob/976f17357cf0e5402a0deef5c5b013b2d4a777f2/Tests/NativeMarkKitTests/Fixtures/CustomFontsWithBoldAndItalic.iOS.png
Let me know if things look correct to you.

@andyfinnell Thx for your effort, it works now 👍


removed extra profile picture

Header section was duplicated, so I removed it

see issue #91

Great Thanks :)


Should Set and Update return objects instead of values?

Set and update are for changing a value at the end of a path, however in the lodash functions, the functionality is arguably in that they mutate the original object. However, they only return the mutated value where absurdum should probably return the new object with an updated value.
References

_.set
_.update

I'm conflicted. I want to say drop both but I can see their usefulness.
I agree that not mutating the input is the way to go. It's too bad Lodash doesn't combine both into the same operator.
Maybe we should add a mention that all operators are side-effect free. For example, an immutable set/update could be really useful for performing React state updates.  Not mutating the input = immutable. Part of me still wants to exclude these from the 1.0 release.
How do you feel about it?

The usefulness seems specific to a few different patterns, so it may be better just to implement when someone asks for it.

Cool. I'll going to table them for now.


[Feature]: Allow adding arbitrary Lua functions to be executed by legendary, but without being mapped to a command

Similar Issues

[X] Before filing, I have searched for similar issues.

Description
Hello, thanks again for this extension.
I was wondering if it is possible to register a callback function with a description but without creating a command.
Some times (not saying it happens often, but it happens) I may want to register an "option" within legendary but I don't want to create an associated command (or better said, I don't want to think a name for the command).
Is this possible? And if not, can it be considered to be added as feature?
Regards

Mainly because in a picker it can be easy for me to have several very
similar cases, but giving each one a name for them being a command that I
will probably never use alone is not as compelling.
For example, let's say I want an option menu to open legendary with filter
for normal mode, another one filtering only insert mode, etc, I will end
with LegendaryNormalFiltered LegendaryInputFiltered, polluting my commands
namespace with commands that I will never use outside of legendary.
On Mon, May 23, 2022 at 2:00 PM Mat Jones @.***> wrote:

I guess I would need a compelling reason why just naming the command isn't
a viable alternative to this, since this will add complexity and additional
edge cases and special parsing.
—
Reply to this email directly, view it on GitHub
https://github.com/mrjones2014/legendary.nvim/issues/149#issuecomment-1134582755,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AARKJWI3M6EWTAT4IUDV3YLVLNXPBANCNFSM5WUZF3VQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
https://danielorodriguez.com

Okay. I updated the title to be a bit more descriptive.
I think this is  a fine use case, but I don't think we should conflate these with 'commands' if they aren't going to be bound to commands.
I think what you're really asking for is the ability to have legendary tie a description to an arbitrary Lua function and execute it through the finder.
In this case I see them being a completely separate entry type, so instead of using the API function bind_command(table) you'd use bind_anonymous(table) where the table is just:
{
  function()
    vim.notify('I did something')
  end,
  description = 'Say we did something'
}

But, again, this adds non-trivial levels of complexity and additional table structure parsing (which is already quite complex), as we currently don't handle tables like above.
Again I'd ask, what is the negative of just giving the commands a unique name?

My only reasoning is to not pollute my vim commands, so I don't get a gazillion suggestions when I ask for auto-completion on the command line. But I think I can always resort to prefix to ignore them easily like :__Whatever.
If this introduces complexity and makes more difficult the future maintenance of the plugin I understand you don't want to implement it. The only real problem could be name clashes, but if you scope each to the plugin they're using or something like that, it is probably unlikely.
Regards

I think commands need to start with a capital letter so I don't think the :__Whatever would work.

don't get a gazillion suggestions

That's a fair point. It won't be a crazy amount of complexity, I just wanted to validate that it was solving a real problem before implementing it.
All being said, with the context you've provided, I think I'm on board with this. I'll try to get to it this week or weekend (unless someone wants to put up a PR first 😉).

Awesome, thanks.
In any case,this is your project, and this is close to being nitpicking, so do what you think it's best

I've thought about this a lot more and started trying to implement it, and it's more complexity than I thought. I think it's not worth the complexity.
You can just name the command something that won't show up in your completions easily, for example by starting it with an uncommon letter, e.g. :ZMyLuaFunction

Would you accept a PR for it?

If you can do it without adding much complexity, sure


[BUG]:Drizzle zod types are broken when used in DENO

Report hasn't been filed before.

[X] I have verified that the bug I'm about to report hasn't been filed before.

What version of drizzle-orm are you using?
0.38.3
What version of drizzle-kit are you using?
0.30.1
Other packages
<EMAIL_ADDRESS>Describe the Bug
deno 2.1.4 (stable, release, x86_64-unknown-linux-gnu)
v8 <IP_ADDRESS>-rusty
typescript 5.6.2

expected behavior
node v21.7.3

It's also broken in node(v21-23) on mac


F-Droid

It would be great to see this Android app on F-Droid!
F-Droid is an Android app store specifically for free/libre open-source apps. It would be great if your app could be released there, as it is the number one for getting FLOSS Android apps for many people.
F-Droid also builds all apps from source (optionally even reproducible), so downloads from there can be trusted.
The app developer FAQ or the quick start guide may help you to get started.

Nice sentiment, but this is wishful thinking. When even the main developer of this repo admits the open-source variant "doesn't get much love". Maybe Aegis fits the bill a little better. I'm told it has better security.

Indeed. I just used aegis to login and com comment here. This app looks abandoned, really.

https://github.com/google/google-authenticator-android/issues/129

a modicum of decency from open-source 'pioneers'

That's a bit harsh. I'm not involved in headcount decisions, but allocating resources to something for all time out of altruism goes way beyond "modicum of decency".
The current version of Google Authenticator on Play Store is not this source code. But I'll check with the team. It may be that archiving this project would be best, unless they want to keep it alive.
Seems that most I do nowadays is to tell users of crime coins that there's nothing I can do if they got locked out and if they want their crime coin exchanges to let them back in then they shouldn't have been involved in crime in the first place, and it was never a real bank.

That's a bit harsh. I'm not involved in headcount decisions, but allocating resources to something for all time out of altruism goes way beyond "modicum of decency".

It wasn't aimed at you specifically. I was referencing the company who maintains an "iron-grip" (good read) over anything they misleadingly publish as 'open-source'. 14 years on. The false narrative is belittling and is an attempt to pander to the open-source crowd who, in actual fact, are of no consequence to the middle aged white men running this country into the ground.
All in an honest day's work, eh.

It may be that archiving this project would be best, unless they want to keep it alive.

Yeah. The new Play Store app has been majorly updated with the new proprietary Google material design theme, which hasn't been included in any of their open-source offerings so far. I can't see the open-source variant receiving that update. The basic functionality is there, but this app will most likely end up on the scrap heap like every other 'open-source' app Google have given us.
@ThomasHabets Maybe I'll see you next time when we get a new 'open-source' app, eh? 👋🏾

I'll make sure to let the white man know.
Personally I don't think that giving something for free comes with obligations on the giver (aside from things like giving a knife to a toddler). People abandon open source projects all the time.
But anyway, this is not the forum for a discussion.
I'm closing this bug, because it doesn't look like I'm more able to put this on F-Droid than you are. And while I'm not in a position to grant any permissions or legal stuff, so don't infer any permission if any is needed, why don't you?


Dozens of warnings when using strict rules

I was testing RGFW  using stricter warning rules, this caused the PortableGL example to fail.
The flags I used were -Wall -Werror -Wstrict-prototypes -Wextra
Feel free to close this issue if you don't care if PortableGL can compile with those flags.

I should probably get rid of some of those but I definitely don't care about getting rid of all of them, at least not at this point.  That would maybe become a higher priority after reaching 1.0 and even then, I have never cared about mixing signed and unsigned, it just really isn't as big a problem as people make it out to be imo.
Too bad I'm not using C23 which finally got rid of that ridiculous empty parameter list holdover from K&R C days.  That's definitely one I'll go ahead and fix right now, and maybe start using that flag.
Thanks for letting me know though.  I'll close this after I push whatever fixes I end up doing.

So I went through changing some things to get rid of a bunch of the warnings that I feel are worth fixing at this point.
I now compile my examples (not demos) with:
filter { "action:gmake", "language:C" }
	buildoptions { "-std=c99", "-pedantic-errors", "-Wall", "-Wextra", "-Wstrict-prototypes" }
filter { "action:gmake", "language:C++" }
	-- Stupid C++ warns about the standard = {0} initialization, but not the C++ only equivalent {} smh
	buildoptions { "-fno-rtti", "-fno-exceptions", "-fno-strict-aliasing", "-Wall", "-Wextra", "-Wno-missing-field-initializers" }

And I think the only things left are the unrecognized pragma's (even the one that's supposed to be part of Standard C spec smh) and lots of signed/unsigned comparisons.
I would recommend matching what I have for your RGFW PortableGL example and just leave off -Werror.
Oh and define the new PGL_EXCLUDE_STUBS before including portablegl.h to avoid all those unused parameter errors.  I "fixed" all those in PGL proper but no way am I fixing that in over 100 stub functions.

So I just pushed a bunch of changes and you'll be happy to know that having all those warnings even just for the examples was so annoying that I got rid of almost all of them (at least for C, C++ warns about = {0} initialization because it's stupid).  With PGL_EXCLUDE_STUBS defined the output for compiling c_ex1 looks like this:
~/programming/C/PortableGL/examples$ make c_ex1
==== Building c_ex1 (debug) ====
Creating obj/Debug/c_ex1
ex1.c
In file included from ex1.c:3:
../portablegl.h:373: warning: ignoring ‘#pragma STDC FP_CONTRACT’ [-Wunknown-pragmas]
  373 | #pragma STDC FP_CONTRACT OFF
      |
In file included from ex1.c:3:
../portablegl.h: In function ‘draw_triangle_fill’:
../portablegl.h:7139: warning: ignoring ‘#pragma omp parallel’ [-Wunknown-pragmas]
 7139 |         #pragma omp parallel for private(x, y, alpha, beta, gamma, z, tmp, tmp2, builtins, fs_input)
      |
In file included from ex1.c:3:
../portablegl.h: In function ‘pglDrawFrame’:
../portablegl.h:10521: warning: ignoring ‘#pragma omp parallel’ [-Wunknown-pragmas]
10521 |         #pragma omp parallel for private(builtins)
      |
Linking c_ex1

Thanks for including the PGL example in your project, I will definitely include a RGFW demo here when I get around to revamping/reorganizing my examples/demos and including more than just SDL2.


Adding values and percentage to already existing Feature flag does not work/resolve appropriately (open source helm chart version)

Describe the bug
I have an open source self hosted flagsmith instance running. I used helm charts to deploy. The version I am running is 2.42.1
I first created a simple feature flag without any values.
I then went ahead editing the feature flag and added two, values:- off(control Value) with 0% and on with 100%
For all users SDK keeps on returning the control value off, inspite it is 0% exposure
To Reproduce
Steps to reproduce the behavior:

Create a feature flag and keep it disabled
Edit the feature flag with:-

Enabled toggle :- ON
Control Value:- off with 0%
Add another value:- on with 100%

Create a new identity. Retrieve FF's for this identity and verify the data returned for the above flag
It returns enabled:true and value: off

Expected behavior
It should return value: on because on has 100%
How are you running Flagsmith?

[ ] Self Hosted with Docker
[x] Self Hosted with Kubernetes:- v2.42.1
[ ] SaaS at flagsmith.com
[ ] Some other way

Additional context
This is critical as it can cause unintended behaviour to the end user and cause business impact
I tried it on SaaS and did not notice this issue

Hi @nishant-shah-social, can you please confirm how you're retrieving the flags? Which SDK are you using and which version?
Please provide code to reproduce your issue from the client side.
Please can you also confirm what the result is if you call the API directly? Something like:
curl --header "X-Environment-Key: <your key>" "https://flagsmith.yourdomain.com/api/v1/identities/?identifier=an-identity"

@matthewelwell thanks for responding..
This is what is returned by the above API call :-
            "id": 132,
            "feature": {
                "id": 44,
                "name": "nishant_test_flag2",
                "created_date": "2023-06-27T21:34:58.866353Z",
                "description": null,
                "initial_value": null,
                "default_enabled": false,
                "type": "STANDARD"
            },
            "feature_state_value": "off",
            "environment": 1,
            "identity": null,
            "feature_segment": null,
            "enabled": true
        }```

Below is the screenshot of the Feature flag definition
<img width="955" alt="Screenshot 2023-06-28 at 09 28 05" src="https://github.com/Flagsmith/flagsmith/assets/4332758/103a238d-3813-4dda-8f06-745c3428b50e">

Also, there is no user or segment override present for this FF
So we are expecting the feature_state_value to be `on` for all users

Hope this helps

By default, feature are created with STANDARD type, when a user converts the standard flag to multivariate(by Adding variations to it) or converts a multivariate flag back to standard (by removing all the variations) Front-end should make a put call (endpoint: api/v1/projects/3/features/<feature_id>/) to update the feature type

@gagantrivedi is there any updates on the bug?
Also, it seems to be working fine on the SaaS side. So, I was wondering how come the issue is only present on the open source?

Hi @nishant-shah-social, this was resolved in 2.57.0 that was released earlier today.
Regarding your question about why it worked in SaaS and not in your open source version is likely actually down to the fact that the bug was related to the way in which the multivariate feature was created. If you created the feature without any variations first, then added the variations. Those variations were not always picked up in the evaluations. If you created the feature with the variations to start with, those variations would always be evaluated correctly.
As mentioned, I recommend that you upgrade to v2.57.0 of the flagsmith image to resolve this issue.

Thanks alot @matthewelwell
One last question. I see the helm chart here:- https://artifacthub.io/packages/helm/flagsmith/flagsmith still points to 2.42.1. Are there plans to upgrade to that as well to the latest version?

@nishant-shah-social , I've opened a PR for this here: https://github.com/Flagsmith/flagsmith-charts/pull/140


Non-searchable field is searchable in DataTable

Hi,
I've set a field as non-searchable, i.e. "searchable": false.
Then the scaffold doesn't add this field as searchable in the repository file, which is right.
The problem is, when I type something in the search box of DataTable, it will still search this non-searchable field.
After investigation, I found that:

$MODEL_NAME$DataTable.php is not using repository in the query function, it is using model, which has no any settings releated to searchable.
Possible solution: use Repository rather then Model in query function of $MODEL_NAME$DataTable.php file.
Also in the $MODEL_NAME$DataTable.php file, in the getColumns function, it has not set
the field as 'searchable'=>false.
Possible solution: add searchable while generating $MODEL_NAME$DataTable.php file in here.
Found this after further investigation, controller.stub is using RequestCriteria, but datatable_controller.stub is not using RequestCriteria since the first commit.
Possible solution: also add RequestCriteria into the datatable_controller. I can't think of the situation which doesn't need RequestCriteriaright now. Maybe there's some reason that why didn't add the RequestCriteria at first.

Hope to see you reply soon.

@mitulgolakiya
Is this a bug or a feature？

@skys215 we have fixed searchable thing. On using a repository, I would leave it up to the user, if he wants to use, he can publish templates and do it by himself. since it's a purely choice of the user. Even lots of people requested to get rid of the repository pattern but unfortunately, so far, we do not have that option.

OK, thanks for the fix.

how can we publish templates i always have error when i run this command : php artisan infyom.publish:templates


Delay is not respected when used with Quokka.js

While the delay setting keeps the previously entered value, the actual delay is 0ms when used alongside the Quokka extension.

Does the delay still fail if you use a simpler delay mode?
"errorLens.delayMode": "debounce",

I will assume that 55b8e3e fixed it.


Failure to install FlareVM due to existing folder

I tried installing FlareVM on a brand new VM, with a new Windows ISO. The error states that there is already a version of Chocolatey installed at ProgramData\Chocolatey
This is the first time I tried installing it on this machine.
I deleted the said folder (which was empty), but the issue is still persisting

Hello, ran into the same issue, latest Windows dev ISO.
Just install Chocolatey separately, restart your terminal and it will run.

Hello, ran into the same issue, latest Windows dev ISO on Hyper-V. Just install Chocolatey separately, restart your terminal and it will run.

Thank you very much! It worked

Hello, ran into the same issue, latest Windows dev ISO on Hyper-V. Just install Chocolatey separately, restart your terminal and it will run.

Thank you very much! It worked


Typo "Azure Blob storage"→"Azure Blob Storage"

https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-dotnet-legacy
https://github.com/MicrosoftDocs/azure-docs/blob/main/articles/storage/blobs/storage-quickstart-blobs-dotnet-legacy.md
#PingMSFTDocs

Docs Build status updates of commit 27b3954:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/storage/blobs/storage-quickstart-blobs-dotnet-legacy.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

#sign-off


Hyundai longitudinal: reduce time from acceleration to deceleration

Another PR split out from https://github.com/commaai/openpilot/pull/24053/files. This reduces the minimum positive jerk from 1 to 0, so when acceleration error is negative, we don't allow any pos jerk, hopefully for faster braking after accelerating

Unclear if this does anything


rospy_wrapper: 1.0.0-1 in 'kinetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository rospy_wrapper to 1.0.0-1:

upstream repository: https://github.com/sean-hackett/rospy_wrapper.git
release repository: https://github.com/sean-hackett/rospy_wrapper-release.git
distro file: kinetic/distribution.yaml
bloom version: 0.8.0
previous version for package: null

rospy_wrapper
* first public release of rospy_wrapper

Holding for kinetic sync

The package isn't listed here http://repositories.ros.org/status_page/ros_kinetic_default.html?q=SYNC. Should I expect it be included in tomorrow's sync?

The package isn't listed here. Should I expect it be included in tomorrow's sync?

It should be in the sync after this one, assuming everything works correctly. This PR is being held until after the sync to make sure the package spends some time in the testing apt-repo before moving to the main one.


Enable sourcelink

Summary
Sourcelink would enable consumers of duality to debug it like they had the source code. For instance here iam doing just that with Singularity while its installed in a console app:

https://github.com/dotnet/sourcelink
Analysis

No more copying over dll's and pdb's just to be able to debug duality source code from another project. Just disable just my code and you are good to go.
Was easy to setup in a evening for Singularity.

Done by @mdonoughe. Closing this.

Unfortunately we'll have to re-open this as it turns out that SourceLink doesn't work when building packages via AppVeyor CI, rendering the recent addition inactive.
The following messages show up in the CI build:

Source control information is not available - the generated source link is empty.
Unable to locate repository with working directory that contains directory 'C:\projects\duality\Source\Core\Duality'.

@mdonoughe Do you have any idea how this could be addressed?

Seems to be a hardcoded path?

It's not a path from my machine, if that's what you're wondering - I'd guess it's just the directory where AppVeyor happens to store the project checkout.

Did a bit of research and I'm guessing it could be this AppVeyor setting:
# fetch repository as zip archive
shallow_clone: true

If there's no git, then of course SourceLink has no way of knowing where to link to. I'll try disabling this on the release branch and see if it helps.

That seems to have done it, the warnings are gone. I've triggered a new binary release that should now have SourceLink support, should be out there in about 30 minutes.


requestFullscreen and enterFullscreen on HTMLVideoElement

Currently I'm migrating the code to use web package.
I have video element.
final videoElement = web.HTMLVideoElement();

requestFullscreen and enterFullscreen methods are not available on HTMLVideoElement
videoElement.requestFullscreen();
videoElement.enterFullscreen();

Similarly exitFullscreen

For now I have used the extension
extension on web.HTMLVideoElement {
  external JSPromise requestFullscreen();

  external JSPromise enterFullscreen();
}

requestFullscreen and exitFullscreen should be addressed in https://github.com/dart-lang/web/issues/209, but I'm not sure enterFullscreen still exists as part of the spec: https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen.


Could not find type "type.googleapis.com/mediapipe.OpenCvVideoEncoderCalculatorOptions" stored in google.protobuf.Any.

Platform: Linux, Ubuntu18.04 with GPU
Gcc G++ version: 7.5
I'm trying to run multi-hand tracking with input and output video files using https://github.com/google/mediapipe/blob/master/mediapipe/docs/multi_hand_tracking_desktop.md#tensorflow-lite-multi-hand-tracking-demo-with-webcam-gpu this tutorial.
Exact same building command:
bazel build -c opt --copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11 \
    mediapipe/examples/desktop/multi_hand_tracking:multi_hand_tracking_gpu

And the building is successful.
When I try to run
GLOG_logtostderr=1 bazel-bin/mediapipe/examples/desktop/multi_hand_tracking/multi_hand_tracking_gpu \
    --calculator_graph_config_file=mediapipe/graphs/hand_tracking/multi_hand_tracking_desktop.pbtxt --input_video_path=input.mp4 --output_video_path=output.mp4

The error I get is:
[libprotobuf ERROR external/com_google_protobuf/src/google/protobuf/text_format.cc:309] Error parsing text-format medi
apipe.CalculatorGraphConfig: 122:74: Could not find type "type.googleapis.com/mediapipe.OpenCvVideoEncoderCalculatorOp
tions" stored in google.protobuf.Any.

I0425 03:25:26.508827  5908 demo_run_graph_main_gpu.cc:61] Initialize the GPU.
I0425 03:25:26.519194  5908 gl_context_egl.cc:158] Successfully initialized EGL. Major : 1 Minor: 5
W0425 03:25:26.519245  5908 gl_context_egl.cc:163] Creating a context with OpenGL ES 3 failed: UNKNOWN: ; eglChooseConfig() returned no matching EGL configuration for RGBA8888 D16 ES3 request.
W0425 03:25:26.519259  5908 gl_context_egl.cc:164] Fall back on OpenGL ES 2.
E0425 03:25:26.523185  5908 demo_run_graph_main_gpu.cc:186] Failed to run the graph: ; eglChooseConfig() returned no matching EGL configuration for RGBA8888 D16 ES2 request.

Could you verify that your OpenGL ES version is 3.1 or above? See this requirement at https://github.com/google/mediapipe/blob/master/mediapipe/docs/gpu.md#opengl-es-setup-on-linux-desktop.

@jiuqiant - I am getting the same error and I am on OpenGL ES version 3.2:
$ glxinfo | grep -i opengl
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 980/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 450.57
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 450.57
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 450.57
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

I am running on archlinux, below are some relevant package versions:
libuv 1.38.1-1
glu 9.0.1-2
mesa 20.1.3-1
mesa-demos 8.4.0-4
bazel 3.3.0-1
opencv 4.3.0-7

During build I did have to change a couple of things due to opencv4. Namely, srcs, hdrs, and includes for opencv_linux.BUILD
cc_library(
    name = "opencv",
    srcs = glob(
        [
            "lib/libopencv_core.so",
            "lib/libopencv_calib3d.so",
            "lib/libopencv_features2d.so",
            "lib/libopencv_highgui.so",
            "lib/libopencv_imgcodecs.so",
            "lib/libopencv_imgproc.so",
            "lib/libopencv_video.so",
            "lib/libopencv_videoio.so",
        ],
    ),
    hdrs = glob(["include/opencv4/opencv2/**/*.h*"]),
    includes = ["include/opencv4/"],
    linkstatic = 1,
    visibility = ["//visibility:public"],
)

@jiuqiant - I was able to get past this by adding ":desktop_offline_calculators" to mediapipe/graphs/hand_tracking:multi_hand_mobile_calculators. It seems strange to me that the desktop gpu examples are referencing the mobile calculators. Is this expected?

At least for me, I found that the problem was that I was trying to run "multi_hand_tracking_desktop.pbtxt" on gpu which is not correct. This graph seems to be designed for running tflite on CPU only. When I instead ran "multi_hand_tracking_mobile.pbtxt" everything worked correctly without adding the ":desktop_offline_calculators" as mentioned above (after adding this I ran into other runtime issues as would be expected seeing as though this graph is not designed for GPU).

Yes, the multi_hand_tracking_gpu binary and the multi_hand_tracking_mobile.pbtxt is the correct pairing.
Similarly for most all of the *_gpu desktop demos and the *_mobile.pbtxt graphs.
The naming isn't great, but GPU support for desktop is rather experimental and came much after mobile GPU support. This is something we are working to unify in the future.


Warn if cache directories are not configured

Caching some directories in Travis makes CI process faster.
However, it is error-prone (see example https://github.com/scala/scala-xml/pull/357#discussion_r324386303)
This PR adds a check for cache directories in .travis.yml so users get notified if there are missing cache directories, then they configure Travis properly and gain productivity boost.
Ref for cache directories: https://www.scala-sbt.org/1.x/docs/Travis-CI-with-sbt.html#Caching

Sorry, but closing because I no longer use Travis CI.
If someone have interests in this feature, feel free to use my code changes and continue work.

Sorry, I can't see a reason why I didn't merge this sooner.  A resubmit by anyone would be a welcome PR.