Performance: Slow matching for large rules

Describe the bug
The following takes more than 9 seconds even though there are only 8! = 40320 cases to enumerate:
In[] := WolframModel[{{1, 2}, {3, 3}, {2, 2}, {3, 1}, {1, 2}, {3, 3}, {2,
    1}, {2, 3}} -> {}, {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0,
   0}, {0, 0}, {0, 0}}, Method -> "LowLevel"]

Expected behavior
It should take at least 10 rule elements to make it run on the order of seconds.
Version (please complete the following information):

OS: macOS 10.15.2 (19C57)
Wolfram Language Version: "12.1.0 for Mac OS X x86 (64-bit) (December 21, 2019)"
SetReplace git sha: ba9234cd62794ef55cd9473320ec7eeb9473e21e

I experience slowness with those rules:
WolframModel[{
    {
     {5,6,9,8,5,6},
     {1,2},{2,1},{2,4},{4,2},{4,3},{3,4},{3,1},{1,3},
     {4,6},{6,4},{6,5},{5,6},{5,3},{3,5},
     {6,9},{9,6},{9,8},{8,9},{8,5},{5,8},
     {6,7},{7,6},{7,10},{10,7},{10,9},{9,10},
     {7,11},{11,7},{11,12},{12,11},{12,10},{10,12}
    } -> {
     {4,111,7,6,4,111,4},
     {7,111,4,6,7,111,7},
     {4,111,7,6,4,111},
     {1,2},{2,1},{2,4},{4,2},{4,3},{3,4},{3,1},{1,3},
     {4,6},{6,4},{6,5},{5,6},{5,3},{3,5},
     {6,9},{9,6},{9,8},{8,9},{8,5},{5,8},
     {6,7},{7,6},{7,10},{10,7},{10,9},{9,10},
     {7,11},{11,7},{11,12},{12,11},{12,10},{10,12},
     {4,111},{111,4},{111,7},{7,111}
    },
    {
     {6,7,10,9,6,7,6},
     {1,2},{2,1},{2,4},{4,2},{4,3},{3,4},{3,1},{1,3},
     {4,6},{6,4},{6,5},{5,6},{5,3},{3,5},
     {6,9},{9,6},{9,8},{8,9},{8,5},{5,8},
     {6,7},{7,6},{7,10},{10,7},{10,9},{9,10}
    } -> {
     {4,111,7,6,4,111,4},
     {1,2},{2,1},{2,4},{4,2},{4,3},{3,4},{3,1},{1,3},
     {4,6},{6,4},{6,5},{5,6},{5,3},{3,5},
     {6,9},{9,6},{9,8},{8,9},{8,5},{5,8},
     {6,7},{7,6},{7,10},{10,7},{10,9},{9,10},
     {4,111},{111,4},{111,7},{7,111}
    },
    {{1,2,3,4,1},{1,2},{2,1},{2,3},{3,2},{3,4},{4,3}}->
        {{11,12,2,1,11},{1,2},{2,1},{2,3},{3,2},{3,4},{4,3},{11,1},{1,11},{11,12},{12,11},{12,2},{2,12}}
},{
    {1,2,3,4,1},{2,3,4,1,2},{3,4,1,2,3},{4,1,2,3,4},
    {1,2,3,4,1,2},{2,3,4,1,2,3},{3,4,1,2,3,4},{4,1,2,3,4,1},
    {1,2},{2,1},{2,3},{3,2},{3,4},{4,3},{4,1},{1,4}
}
, 32, "FinalStatePlot"]

This runs in 2.5 seconds on my dual core laptop. Should this issue be closed?

@aokellermann What version of Mathematica are you running?

@aokellermann What version of Mathematica are you running?

I'm on "12.1.0 for Linux x86 (64-bit) (February 19, 2020)"

Also which of the example runs in 2.5 seconds?

the one in the issue description. yours runs in 150 seconds on my computer

This runs in 2.5 seconds on my dual core laptop. Should this issue be closed?

Do we completely understand the time complexity here? It seems to me it should be something like
In[] := 8! * (* there are 8! matches *)
        8 * (* we try matching each expression to each pattern in the rule input, see below *)
        8 * (* each match has length 8  *)
        Log[8!] (* each newly created match needs to be attempted to be put in the map *) // Round
Out[] = 27364966

So, if the above is correct, 2.5 seconds seems reasonable. However, I think we can get rid of the second line in the above, at least during the initial parsing of the init.
Note that we encounter each match 8 times here. That's because when we start match-finding recursions, we consider 8 * 8 combinations, each rule input * each init expression.
We enumerate rule inputs here:
https://github.com/maxitg/SetReplace/blob/2278ed1d916d6e07be5365a8191538878166169c/libSetReplace/Match.cpp#L325-L334
And expressions here:
https://github.com/maxitg/SetReplace/blob/2278ed1d916d6e07be5365a8191538878166169c/libSetReplace/Match.cpp#L336-L351
However, when processing the initial condition (and perhaps in some other cases), we don't need to consider each rule input. Since we are enumerating all expressions anyway, and each match will have to match some of these expressions to the first rule input, we will find all matches if we replace the first function above to:
void addMatchesForRule(const std::vector<ExpressionID>& expressionIDs,
                       const RuleID& ruleID,
                       const std::function<bool()>& shouldAbort) {
  const auto& ruleInputExpressions = rules_[ruleID].inputs;
  const Match emptyMatch{ruleID, std::vector<ExpressionID>(ruleInputExpressions.size(), -1)};
  completeMatchesStartingWithInput(
      emptyMatch, ruleInputExpressions, rules_[ruleID].eventSelectionFunction, 0, expressionIDs, shouldAbort);
}

This should make this code ~8 times faster.


Improve README and some code.

No worries, just glad to help! If I were as much of an expert at type theory as you are, I think I wouldn't mind trading a few of my English skills for it. Type theory is at least a more universal and less arbitrary language than English.


fix: use os readlink for python 3.8 compatibility

Pathlib readlink() was introduced  since Python3.9.
I guess validation ci runs on ubuntu2004, so python version is 3.8.
use os readlink() for python3.8 compatibility
This PR may fix validation to PRs which use overlay functionality.

@fmeum @lalten could you review this PR?

Thanks for the fix! I also updated the image to ubuntu2204. Yes, I agree we probably should run the check as a Bazel python target with a hermetic toolchain. That won't cover bcr_presubmit.py itself, but it's definitely an improvement.


5.25" Floppy disks boot and hang at V2 Analog message

I downloaded the V2 Analog 5.25" disk images as I am unable to use the 3.25" images at present.
My Apple IIe has dual V2 Analog cards, one for VGA, the other configured as an Applicard.
I am able to boot into CP/M successfully using the Applicard disk images and VGA works fine.
However, when I boot from disk525a.dsk, the machine starts but hangs on a screen with the message V2 Analog.
Nothing further happens after that and I am unable to use any of the config tools.

Please try loading the config.enh system file after booting with another prodos disk. I may need to make some adjustments to the boot menu / machine detection wrappers.

Sure, I'll give it a try and let you know the outcome.
Regards
Jon

Hi there, and sorry if this is a dumb question, I'm getting back into the Apple IIe after 40 years and I'm very rusty, but I've hit a wall trying to run config.enh.
I can boot from a blank ProDOS disk and swap to disk525a.dsk, and when I run a CAT on the drive, I can see config.enh in the file listing for D1.
So far all good, but when I try to run config.enh I'm not having any luck.
I am assuming the correct command in ProDOS is: -config.enh?

If I execute -menu.base however, I do get a menu and can load the config utility, and I'm also able to read and save the configuration.
If I execute -menu.system it hangs with V2 Analog at the top left of the screen.

Is that IIe an "enhanced" with the 65C02 or the unenhanced IIe without the 65C02?  I have not tested the card on the unenhanced IIe, so there may be some things that need more work (for one thing, Autodetect code will probably think its a II+ and not a IIe)

And also for the unenhanced you will need to run the .base file instead.  I'll double check that the launcher utility gets updated to run the .base file for unenhanced systems instead of the .enh version.

Please try the disk images from the latest release.

Ahh, I see. It's a standard Apple IIe, not the enhanced , so just a plain 6502. I'll try the lates images and get back to you.
I'm happy to test on my unenhanced IIe if you need me to, thanks.

Thanks, the disks all boot and take me to the menu system and config tools now. One quick question, disks C & D both seem to have font manager on them, is this correct? This is what I have:

disk525a.dsk - config tools
disk525b.dsk - ADTPro at a ProDOS prompt
disk525c.dsk - Font manager
disk525d.dsk - Font manager

And I couldn't see a specific difference with font manager on either disk c or d.

So the fonts matching slots 00-0F are on disk C and slots 10-27 are on disk D with an extra copy of the 00 base font.
The fonts don't all currently fit on the same disk, even with compression.  Uncompressed fonts take up 4 blocks, and compressed fonts take up 1-3 blocks, but require a matching "base font".  The compression is very simple, the differences between the base font and the font being compressed are taken, then the result is run length encoded to shrink the file down by 1-3 blocks in size.  The fonts that didn't compress well I left uncompressed since they didn't shrink enough to save a disk block.

Ahh, cool, all make sense now :)


Lab 3 - Application Section - Using a language subsection - Spelling Error

Probability spelled as "probablility"

Thanks. Fixed. 1 point


Italian translation

Added ardublockly/msg/it.js
Added ARD_* strings to blockly/msg/json/it.json
Added Italian to Ardublockly.LANGUAGE_NAME in the ardublockly/ardublockly_lang.js file

Thanks a lot for the translation, but there seems to be additional changes to the stepper block. Could you isolate those and submit individually?


File causes segfaults (evcxr_repl)

It looks like on my machine, trying to use a File declared on a different line results in a segfault:
logandark@LoganDark-ASUS:~/CLionProjects/whatever$ evcxr
Welcome to evcxr. For help, type :help
>> let mut file = std::fs::File::open("whatever.bin").unwrap();
>> std::io::Write::write_all(&mut file, b"Hello, World!\n").unwrap();
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 9, kind: Uncategorized, message: "Bad file descriptor" }', src/lib.rs:111:57
stack backtrace:
   0: rust_begin_unwind
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/std/src/panicking.rs:584:5
   1: core::panicking::panic_fmt
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/core/src/panicking.rs:142:14
   2: core::result::unwrap_failed
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/core/src/result.rs:1805:5
   3: run_user_code_11
   4: evcxr::runtime::Runtime::run_loop
   5: evcxr::runtime::runtime_hook
   6: evcxr::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Segmentation fault.
   0: evcxr::runtime::Runtime::install_crash_handlers::segfault_handler
   1: <unknown>
   2: _mi_free_block_mt
   3: alloc::alloc::dealloc
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/alloc/src/alloc.rs:107:14
      <alloc::alloc::Global as core::alloc::Allocator>::deallocate
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/alloc/src/alloc.rs:244:22
      alloc::alloc::box_free
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/alloc/src/alloc.rs:342:9
      panic_unwind::real_imp::cleanup
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/panic_unwind/src/gcc.rs:83:5
      __rust_panic_cleanup
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/panic_unwind/src/lib.rs:101:19
   4: std::panicking::try::cleanup
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/std/src/panicking.rs:473:42
      std::panicking::try::do_catch
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/std/src/panicking.rs:517:23
      std::panicking::try
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/std/src/panicking.rs:456:19
      std::panic::catch_unwind
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/std/src/panic.rs:137:14
      std::rt::lang_start_internal::{{closure}}
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/std/src/rt.rs:128:48
      std::panicking::try::do_call
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/std/src/panicking.rs:492:40
      std::panicking::try
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/std/src/panicking.rs:456:19
      std::panic::catch_unwind
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/std/src/panic.rs:137:14
      std::rt::lang_start_internal
             at /rustc/28b891916d4c85cd10fb2e9cfa8bc836a2c459f3/library/std/src/rt.rs:128:20
   5: main
   6: __libc_start_main
   7: _start

Child process terminated with status: signal: 6
>>

Apparently every line is run in its own subprocess, and variables are just conjured up by magic? At least that's what I'm gathering from whatever is going on here. The REPL didn't crash, I could actually try again - and this worked without segfaulting:
>> std::io::Write::write_all(&mut std::fs::File::open("whatever.bin").unwrap(), b"Hello, World!\n").unwrap();

However, when I tried to reproduce this, it looks like File sometimes works, and also other variables sometimes decide to disappear. I'm really not sure how this works - is evcxr using some kind of heuristic to figure out what it should do?
In any case, segfaults are bad!
Ubuntu 20.04 x86_64 on Windows 10 WSL2

Interesting. I'd never thought to try that.
So each line is actually being run in the same subprocess. Each line gets compiled into a shared object (.so on Linux, .dylib on Mac or .dll on Windows).
If you run evcxr, then in a separate shell, determine what process ID the evcxr subprocess has:
# ps gx | grep '[b]in/evcxr'
103171 pts/1    S<+    0:00 /home/user/.cargo/bin/evcxr

You can then poke around in /proc to see what's happening:
# cd /proc/103171/fd
# ls -l
total 0
lr-x------ 1 user user 64 Jun 12 14:17 0 -> 'pipe:[419049]'
l-wx------ 1 user user 64 Jun 12 14:17 1 -> 'pipe:[419050]'
l-wx------ 1 user user 64 Jun 12 14:17 2 -> 'pipe:[419051]'
lr-x------ 1 user user 64 Jun 12 14:17 3 -> /home/user/tmp/whatever.txt

So the file is still open - at least until the panic occurs, then it gets closed.
I thought perhaps something in libc or the Rust libraries was keeping track of which files it had open and ending up with multiple separate tables somehow. However by running the subprocess under strace, I found that this wasn't the case - the system calls reported by strace seem to be as expected:
openat(AT_FDCWD, "/home/user/tmp/whatever.txt", O_RDONLY|O_CLOEXEC) = 3
....
write(3, "Hello, World!\n", 14)         = -1 EBADF (Bad file descriptor)

As far as I can tell, this seems to be the behavior of ldopen on Linux. I was able to reproduce the same problem with a C program loading a couple of shared objects compiled from C. I wasn't able to find this behavior documented anywhere. Here's the C code I used to reproduce this in C: c-dlopen.tar.gz

Interesting. I'd never thought to try that.

I'm using evcxr to write out lookup tables so I don't have to generate them in a build script (it can get pretty involved), and can just include_bytes! them directly. It's the easiest to just do the thing locally and then just distribute the files with the crate. I used to use Python for general REPL things, but I don't like Python anymore :P.
Opening the file in the same line seems to always have the intended behavior. Then as a temporary it also gets dropped in a timely fashion to prevent a later segfault.
Is this an issue that can be fixed by evcxr or is it just a Linux limitation of some sort?

Opps, seems I completely misinterpreted what was happening.
I just discovered that the Bad file descriptor error is actually because the file wasn't opened for writing, only for reading.
The following works:
>> let mut file = std::fs::File::create("file2.txt").unwrap();
>> std::io::Write::write_all(&mut file, b"Hello, World!\n").unwrap();

Apparently I haven't used the C openfunction in too long - I forgot to pass the O_WRONLY flag and ended up reproducing the same bug in the C code as was in the original Rust code.

Oops - I accidentally used open instead of create. I guess that's my issue.
Should I close this?

Evcxr shouldn't segfault when unwrapping an error result, so I think this issue should be kept open.

Evcxr shouldn't segfault when unwrapping an error result, so I think this issue should be kept open.

AFAIK, it doesn't, it invokes undefined behavior by somehow corrupting the File / making it invalid, causing its Drop impl to segfault

I think I found the issue. The main function of the executed snippet (run_user_code_???) is declared with the extern "C" abi. Unwinding through this is UB. Evcxr will need to add a std::panic::catch_unwind wrapper to catch panics.

I think I found the issue. The main function of the executed snippet (run_user_code_???) is declared with the extern "C" abi. Unwinding through this is UB. Evcxr will need to add a std::panic::catch_unwind wrapper to catch panics.

This is interesting. Has evcxr been audited for undefined behavior, or is it just on a best-effort basis?

Setting the option :preserve_vars_on_panic 1 will wrap the user code in a catch_unwind and does prevent the segfault. Possibly I should revisit at least the default for that option. We used to always have a catch_unwind block, but I removed it by default because I found that was increasing compilation time more than I would have liked. That was some time ago that that was the case, so it's possible that it no longer affects compilation time in that way.

I was hopeful I might find a way to make it not panic without adding in a catch_unwind. I figured that setting panic = "abort" in Cargo.toml would do. Unfortunately that option doesn't work since we're compiling with -C prefer-dynamic.
error: the linked panic runtime `panic_unwind` is not compiled with this crate's panic strategy `abort`

So I'll just change the default for now... looks like I only made the question mark operator work when not catching panics, so I need to fix that before I change the default.


feat: ADDON-57046: Added file input component

This is how we can use file input in the global config file -

{
    "type": "file",
    "label": "Service Account's certificate",
    "help": "Content of the service account's downloaded JSON key.",
    "field": "certificate",
    "options": {
        "fileSupportMessage": "We only support json file"
    },
    "validators": [
        {
            "type": "file",
            "supportedFileTypes": ["json"]
        }
    ],
    "required": true,
    "encrypted": true
}

Notes:

We only support JSON file
Maximum file size is 500KB

Output:

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

v1.18.0
GitHub release

Your semantic-release bot :package::rocket:


streams: Fix issues with stream subscribing.

This fixes a couple of issues that were related to subscribing and unsubscribing to streams.

@brockwhittaker can you fix the node tests?

Fixed the node tests.

Merged, thanks @brockwhittaker!
While this is significantly better, I think there's still a couple follow-up issues here that I'd really appreciate your fixing in a new PR for the release:

If you use the "subscribe" button in the upper-right, somehow the stream row on the left doesn't get selected after the stream is subscribed to.
If as Iago, you unsubscribe using the checkbox on the left, the count changes, but the list of subscribers still contains Iago.

I've opened these as https://github.com/zulip/zulip/issues/6955


Clarification to litellm difference

Can you elaborate what is the difference of this vs replacing the anthropic client with the openai client pointing to litellm?

liteLLM is designed to convert across API specs and aggregate models across endpoints.
MCP-Bridge adds MCP tools to an openai call.

The two technologies are complementary rather then competitive with each other. If you want to integrate with MCP servers and enable features like calendar integration, searXNG search or wolfram alpha support then MCP-Bridge is a good fit. If you want to use openai client with groq client then you need to use liteLLM or similar.
If you want to use tool calling with anthropic API then you would use openai --> MCP-Bridge --> liteLLM --> anthropic API
You are welcome to join the discord if you want to talk about this more in depth.


adjust order and capitalization

Pull Request Test Coverage Report for Build<PHONE_NUMBER>2
Details

0 of 6 (0.0%)  changed or added relevant lines in 2 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.07%) to 71.326%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

sis_provisioner/models.py
0
1
0.0%

sis_provisioner/utils.py
0
5
0.0%

Files with Coverage Reduction
New Missed Lines
%

sis_provisioner/models.py
1
53.78%

Totals

Change from base Build<PHONE_NUMBER>4:
-0.07%

Covered Lines:
694

Relevant Lines:
973

💛  - Coveralls


Plugins don't load correctly

Describe the bug
Plugins in the plugins folder Do not load
v1.9.0 c++20 using WSL g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
To Reproduce
Steps to reproduce the behavior:
try using plugins in plugins folder as explained in the documentation.
the following 2 files are as plain as possible generated with drogon_ctl
test.h (plugins folder)
#pragma once

#include <drogon/plugins/Plugin.h>

class test : public drogon::Plugin<test>
{
  public:
    test() {}
    /// This method must be called by drogon to initialize and start the plugin.
    /// It must be implemented by the user.
    void initAndStart(const Json::Value &config) override;

    /// This method must be called by drogon to shutdown the plugin.
    /// It must be implemented by the user.
    void shutdown() override;
};

test.cc (in plugins folder)
#include "test.h"

using namespace drogon;

void test::initAndStart(const Json::Value &config)
{
	LOG_INFO<<"test is starting";
}

void test::shutdown()
{
	LOG_INFO<<"test shutting down";
}

just another test plugin with some config and a namespace
plugin_Mailio.hpp (in the plugins folder)
#pragma once

#include <drogon/plugins/Plugin.h>
#include <mailio/smtp.hpp>

namespace plugin{
	struct MailioException:public std::runtime_error{
		MailioException(const std::string& error):std::runtime_error(error){}
	};
	class Mailio : public drogon::Plugin<Mailio>{
	private:
		std::string email, password, smtpAddress;
		unsigned int smtpPort;
	public:
		Mailio() = default;
		/// This method must be called by drogon to initialize and start the plugin.
		/// It must be implemented by the user.
		void initAndStart(const Json::Value &config) override;

		/// This method must be called by drogon to shutdown the plugin.
		/// It must be implemented by the user.
		void shutdown() override;
	};
}

plugin_Mailio.cpp (in plugins folder)
#include "plugin_Mailio.hpp"

using namespace drogon;
using namespace plugin;

void Mailio::initAndStart(const Json::Value &config){
	email=config["email"].asString();
	password=config["password"].asString();
	smtpAddress=config["smtpAdress"].asString();
	smtpPort=config["smtpPort"].asUInt();
	if(email.empty())
		throw MailioException("configuration error: email is required");
	if(password.empty())
		throw MailioException("configuration error: password is required");
	if(smtpAddress.empty())
		throw MailioException("configuration error: smtpAddress is required");
	if(smtpPort==0)
		throw MailioException("configuration error: smtpPort is required");
	LOG_INFO<<"mailio initiated";
}

void Mailio::shutdown(){

}

configs (tried both JSON and YAML
YAML
plugins:
    # name: The class name of the plugin
  - name: 'plugin::Mailio' # drogon::plugin::SecureSSLRedirector
    # dependencies: Plugins that the plugin depends on. It can be commented out
    dependencies: []
    # config: The configuration of the plugin. This json object is the parameter to initialize the plugin.
    # It can be commented out
    config:
      email<EMAIL_ADDRESS>      password: 'fdasfsaffadf'
      smtpAddress: 'smtp.mail.company.com'
      smtpPort: 531
  - name: 'test'
    dependencies: []
    config:

JSON
[{
            "name": "plugin::Mailio",
            "dependencies": [],
            "config": {
                "email"<EMAIL_ADDRESS>                "password": "fdadsafasf",
                "smtpAddress": "smtp.mail.company.com",
                "smtpPort": 432
            }
        },{
            "name": "test",
            "dependencies": [],
            "config":{

            }
        }]

trying to get the plugin pointer from inside a request handler yields NULL pointer instead of a pointer to the plugin object
#include "plugins/plugin_Mailio.hpp"
#include "plugins/test.h"
auto mailioPlug= app().getPlugin<plugin::Mailio>();
auto testPlug= app().getPlugin<test>();

Expected behaviour
plugins load and can be used as explained here

https://drogonframework.github.io/drogon-docs/#/ENG-09-Plugins?id=life-cycle
All plugins are created and initialized in the run() function, so you should get valid plugin objects after calling the app().run().

Did you load the configuration file before calling app().run()? Is there any error message in the logs?

Did you load the configuration file before calling app().run()? Is there any error message in the logs?

yes I did
main.cpp
#include <drogon/drogon.h>
int main() {
//	drogon::app().loadConfigFile("../config.yaml");
	drogon::app().loadConfigFile("../config.json");
	drogon::app().setCustom404Page(drogon::HttpResponse::newHttpResponse());	//set blank 404 response
    //Run HTTP framework,the method will block in the internal event loop
LOG_INFO<<"starting auth microservice";
    drogon::app().run();
    return 0;
}

it loads correctly and connects to mariadb, redis and listener is created as well. i call the plugin from a controller so that definitely happens after app().run()

Would u please make a simple repo that the issue can reproduce in it, I'll clone and check it out.

Would u please make a simple repo that the issue can reproduce in it? I'll clone and check it out.

yes sure give me a moment

Would u please make a simple repo that the issue can reproduce in it? I'll clone and check it out.

yes sure give me a moment, thanks in advance

I'll figure it out tomorrow morning, it's too late now, thanks for your feed back.

Would u please make a simple repo that the issue can reproduce in it? I'll clone and check it out.

yes sure give me a moment, thanks in advance

I'll figure it out tomorrow morning, it's too late now, thanks for your feed back.

ok so i got it working for JSON but still no dice for YAML
Also there some weirdness in json for example why doesn't logging work when simple_controllers_map is not defined and why doesn't it log if the plugin is working in api_ping? also is there any documentation for logging?
https://github.com/elliopitas/Drogon-pluginReproduction-not-loading

It works fine in my environment (native linux ubuntu 2204)

It works fine in my environment (native linux ubuntu 2204)

Ok let me test tmr on native rather than WSL too

 It works fine in my environment (native linux ubuntu 2204)
ok tried on ubuntu 22.04.3 LTS baremetal fresh install no vms and stuff g++ 11.4.0
and I still get the weird issues. like with JSON line api_ping.cpp:8 doesn't print even though requests work and plugins are loaded

for YAML it doesn't load the plugins and console output doesn't work at all but requests work.

When using clion debugger, the stdout may not flush very soon. You may check it out.
Your repo works fine on my WSL (ubuntu 20.04).

When using clion debugger, the stdout may not flush very soon. You may check it out.
Your repo works fine on my WSL (ubuntu 20.04).

You are right terminal not outputting was clions problem it works if I compile and run it from the terminal.
but the plugin still doesn't load from YAML file only from JSON


⚠ SceneTime has degraded performance

In 66b5b36, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1611 ms

Resolved: SceneTime performance has improved in 285eefd after 6 minutes.


project face generation - weight init documentation

Hello
in the project face generation - weight initialization exercise, it is suggested in 'Notes' that only conv and linear layers have to be inited. But in the code comments 'BatchNorm2d' is also included.(and this is suggested in review as well)
Exercise: Complete the weight initialization function
This should initialize only convolutional and linear layers
classname will be something like:
# `Conv`, `BatchNorm2d`, `Linear`, etc.

Adding batch normalization layer might certainly help that is why it is added in comments. For more clarification please reach out to our mentors on Knowledge Hub.


The app is crashing

Hello,
Thanks for your application, however on the latest version (Version 0.3.0 (112)) downloaded from the App Store, I have a crash when:

Right-click on a transcription
Select Delete
Confirm with Delete
Crash

There is no log in the console.

+1, having this issue. Originally thought it was just when files were unable to be accessed (I had an issue with some file paths changing while I was starting the transcription process), but according to OP it happens nevertheless.

Thanks for the feedback. Will be fixed in a coming release.

+1 having this issue in a Macbook Pro M2 Pro Max with MacOS Sonoma 14.2.
When is this new release expected to be launched approximately?

Submitted to the App Store earlier today, and it should be available for use in a couple of days. Thanks.

Hello just wondering what changes we could expect

@g123k @jordiprenafeta The update is available now. Please let me know if you face any other issues!

Fixed it for me! Thanks, Chidi.

@chidiwilliams Do you plan on doing another release here? last release is from I think Aug 2023.
Can I be of help in setting up a build system / github actions to do builds as new code is merged into main?

@g123k @jordiprenafeta The update is available now. Please let me know if you face any other issues!

Fixed for me with this new version. Thank you.


Depot volume is not expanded when local.requestSize is changed

In production we are often required to expand depot volume for already existing and running vertica database.
Since Depot pvc is managed by statefulset created by vertica operator, we tried to expand it by increasing local.requestSize.
This didn't work:
2022-07-12T07:41:18.503Z	INFO	controllers.VerticaDB	aborting reconcile of VerticaDB	{"verticadb": "vertica/vertica-cel-1", "result": {"Requeue":false,"RequeueAfter":0}, "err": "StatefulSet.apps \"vertica-cel-1-defaultsubcluster\" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden"}

Since depot pvc and statefulset are managed by vertica operator, it should provide a way of expanding depot size to remediate issues like this:
Volume [/depot/celonis/v_celonis_node0001_depot] has insufficient space

thanks for the detailed answer @spilchen
Unfortunately patching PVC manually is not a good option for us as we follow gitops.
We would also need to change PVC template in STS and requestSize anyways so in the event of upscale or creating new subclusters we also have an adequate new PVC size.
Also expanding PVC for depot w/o updating storage location has no effect unless its size is recalculated with alter_location AFAIK. It would be also great if operator could handle it automatically.

Thanks, this is the context I was looking for.


feat: NNRat.cast

Define the canonical coercion from the nonnegative rationals to any division semiring.
From LeanAPAP

[x] depends on: #11202
[x] depends on: #11453
[x] depends on: #11480
[x] depends on: #11485
[x] depends on: #11486
[x] depends on: #11499
[x] depends on: #11503
[x] depends on: #11504
[x] depends on: #11507
[x] depends on: #11508
[x] depends on: #11639

!bench

The bench is very good: I was afraid of a global slowdown, but there is nothing in sight. I don't think the slowdown in two specific files has any importance (although if you can understand what is going on this would be even better).

Yes, I already removed the problematic instances like Module ℚ α → Module ℚ≥0 α.
For FieldTheory.Subfield, I just checked and it's indeed simply due to the DivisionRing instance having more data. For LinearAlgebra.Matrix.SpecialLinearGroup, nothing is sticking out as suspicious to me.


export path to config file for use by hook scripts

I have a need to read the config file from a hook script so I can append some additional custom configurations. This will make my hook scripts much cleaner.
In order to facilitate this, can we add a line in the code to export the config path:
export DEHYDRATED_CONFIG=${CONFIG}
-or- we can set the environment variable such that just the hook scripts can read it.
My usecase is to set a couple of flags in the config file for pfx (pkcs12) generation and to use special api's calls in the python based hook scripts. This way the hook scripts can be left generic and shared to the masses rather than having to tweak them by hand and be custom just for me.

Sorry, just found the env var from my hook script. Should have walked away from computer before submitting ;) Sorry for the noise.


fix: hide correct set of buttons on new issue page

The markup is slightly different between the new issue toolbar and the comments toolbar (some divs are hidden), which was making the selector fail on the new issue page.

Closes #2428

Test

Go to https://github.com/sindresorhus/refined-github/issues/2428 and scroll down. In the toolbar of the editor, the first block of buttons (Header / Bold / Italic) should be hidden.
Go to https://github.com/sindresorhus/refined-github/issues/new?labels=bug&template=bug_report.md . In the toolbar of the editor, the first block of buttons (Header / Bold / Italic) should be hidden.

Your test case for #2428 isn't hiding the buttons for me.

hello @busches I've pushed a fix for the new issue page - could you let me know if you're still seeing something wrong?
This is what I get with the latest fix:
new issue page form

PR page comment form

Excellent ^_^


Storybook Site

It would be helpful if we built and deployed the storybook stories for at least the design system to act as documentation.

https://ut-dts-agrc-kitchen-sink-dev.web.app/?path=/docs/utah-design-system-src-components-avatar--docs


Localizing Info.plist

Hello,
Is it possible to use BartyCrouch in order to localize the Info.plist file?
If not, do you have any plan to support this?

You mean your are localizing your Info.plist using Base-Localization having a Info.plist file under Base.lproj and multiple Info.strings files under your language codes? Well, to be honest, until now I have not added any string extraction feature (both code and Storyboards are supported by Apple command line tools). But since the Info.plist is an XML file it should be possible.
You probably wouldn't want to translate all values though, only some. How would we know which once to localize? Maybe add something like #bc-localize! similar to #bc-ignore!?
Another question: Do the number of localized fields change often? If not, than I think doing the changes by hand shouldn't bee too much of a horror. At least not as much as it was with Code and Interface Builder files before BartyCrouch existed. ^^

Yes, I am in fact using an InfoPlist.strings file under my localizations. You are right that there are not a lot of strings to localize and they do not change very often. However, I would much likely appreciate such a tool just to make sure everything is up to date.

I'm all okay with this feature but since it doesn't solve a big problem I'm very unlikely to ever have the spare time to implement it. I'd be happy to merge a good Pull Request with such a feature though. I think the biggest part would be to extract the strings to be localized from within the plist file.

Also note that there are many apps (e.g. Linguan) that give you an overview of all your translations and let you update them easily. BartyCrouch is only here to make sure new keys are added from files that change often. I think you can find yourself a nice and simple solution for the Info.plist file using one of those tools.

After having a second thought on this I consider this out of scope of BartyCrouch's features. See my previous comments for rationale.


chrome.identity.getProfileUserInfo returns null on ChromeOS even when user is logged in

I have a sneaking suspicion that this might be fixed by requesting the identity.email permission.

It was indeed fixed by requesting that permission.


hack to keep the game monitor running even when the process_exists method encounters an error

Want to do more work on this to actually fix the issue


How to get the attachment of the issue?

I can't find this api

Thank you for the feedback! However, I'm closing this thread according to the issue template.

No, I'm not report a bug, I just want find a API.
"getting issue attachments", Similar to getting issue comments
Can you help me?

Looking at https://github.com/gogs/docs-api, I don't think it is possible right now.

Related: https://github.com/gogs/go-gogs-client/issues/117

:ok_hand: I get it now, thanks!


WIP: JWT crypto code

this is not specific for the nginx plugin so it is better placed here.

I'm not sure it should be in core, how does this interact with our authentication framework?

Currently not integrated but can theoretically replace be added in addition / replacement to Basic auth.
The header looks like:
Authorization: Bearer JWTTOKEN

The format of the Token is:
TYPE.CLAIMS.SIGNATURE

https://jwt.io/
The advantage is, that this tokens act a bit like RSA client certificates. They can have a valid time (from and / or to), and be created for a specif system. It is a way to pass the authentication state for OAUTH2.
In general this is an authentication technique intended for short and long lived tokens in federated environments (SSO).
For example the claims can look like this for usage in core:
{
  "typ": "JWT",    // hardcoded requirement
  "alg": "HS256" // signature is HMAC using SHA256
}
{
  "iss": "hostname of opnsense", // issuer - ca reference in case of X509 certificates
  "sub": "root",                             // subject should be the username or id of the user on which the token is valid
  "nbe":<PHONE_NUMBER>,                  // not before a specific date
  "exp":<PHONE_NUMBER>,                  // expires
  "jti": "jewjto43jeltej3ojewtjow"    // unique string or UUID - can be used to blacklist a token
}

ok, we'll see how this pins out before merging. As soon as you have a working solution which integrates with core just let us know.

@AdSchellevis you may give it a try or should we merge master into this branch first?

@fabianfrz I'm not going to merge this without documentation, how does this interact with our authentication framework now?
Another question I have is if we want jwt as authentication option, why don't we use one of the existing libraries they reference on their site? Personally I don't think we want to maintain such a library ourselves.
If this is something you need specifically for your nginx plugin, we could see if we could find a way to detach this from core, I'm not a huge fan of pulling large blobs of authentication code, which needs quite some time to review and test on our end.

@AdSchellevis it should just act the same way as the Basic authentication does It gets called the same way and it calls the same code. The difference is that instead of checking the password against the database, the signature is checked against the public key.

Looking at this again, I don't think we should try to include this.
I'm not against adding other authentication methods, but we should follow standards as close as possible in my opinion.
It might be an option to investigate how to use claims from other identity providers, but trying to implement a full identity provider lies out side the scope of our core project (Auth0, Keycloak, ... are likely more suited for this purpose).


Issues when fine tune model

Hi, thanks for sharing your nice work!
I have a question when I tried to fine-tune your model on my dataset.
I feed your released pertained model to the estimator and trained the model with my dataset.
However, the model did not find the parameters for "../../Adam" in the checkpoint.
Do you have any idea about this problem ?

Hi @syxu828 thanks for your interest and feedback.
For the sake of shipping lighter models (~ 3x lighter) we stripped out from the graph all the nodes that were useless for inference. That's the case of everything that concerns optimizers. This unfortunately precludes fine-tuning the models. We'll try to publish the full models as quickly as possible. This should not be an issue, keep an eye out!

Thanks very much !

@syxu828  please share insights into how to do fine tuning
I’m wondering if the instrument layers can go wider.
Eg here’s the flute / trombone / high hat /   kick etc  layers.
16 track / 32 / 64 / 128 / 1024 / etc
Use this orchestral model for this song
Use the rock n roll model for other

We've just released complete models with optimizers parameters for fine tuning in this release. There is no straightforward way to do fine tuning yet, but you can download manually the model and make the config json file point to it for doing fine tuning.

Hi, I just want to see if we can have more performance improvements by introducing more 2stems/4stems dataset.


ci: disable CodeRabbit high level summary

Based on Slack thread.
Consider re-enabling if CodeRabbit modifies this feature so that the high level summary gets included in a comment on the PR rather than modifying the original PR description.

Since CodeRabbit didn't modify my PR description, I'm inferring this worked.


groupByNode added to the DSL

Added a 'group' functionality to the DSL.
Example:
group :Docs, :data  => 'statsd.counts.elasticsearch.esdev*.indices.docs.count',
:subgroup => 3

Got it. I'll make a .png + sample and PR to the project. Thanks!


Roll engine 74625aed323d..38a646e14cc2 (8 commits)

https://github.com/flutter/engine/compare/74625aed323d...38a646e14cc2
git log 74625aed323d..38a646e14cc2 --no-merges --oneline
38a646e14 [buildroot] Roll buildroot to pick up updated created_updated_flutter_deps.py (flutter/engine#6333)
4b5be9b1f Roll Dart to 4cf2d3990bac1f1df2f524899e1560a3683f3133 (flutter/engine#6332)
5d19c8795 Roll src/third_party/skia e514fa0f1a6c..4ef464cd3c2e (1 commits) (flutter/engine#6329)
5879daed1 Roll src/third_party/skia a85f3a138cbc..e514fa0f1a6c (1 commits) (flutter/engine#6328)
4974d7464 Roll src/third_party/skia 45239cb84d1d..a85f3a138cbc (7 commits) (flutter/engine#6327)
8743bb82d Format for #6324 (flutter/engine#6326)
89516aad9 Engine::Run returns enum: success, failure, or isolate already running (flutter/engine#6324)
83ec05d7a Roll src/third_party/skia a9adb6f03525..45239cb84d1d (9 commits) (flutter/engine#6323)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@rmistry @liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Trybots failed. These were the failed builds: https://flutter-dashboard.appspot.com/build.html

Commit queue failed; closing this roll.


Add a deprecation notice for the legacy Python client

We can point at this in announcements and if users ask questions that it covers.
Previously #8195 changed the description of the Python client.  I intentionally do not want a link from the PyPI description to here: that description should be terse and say in one sentence what is the package and why you should not use it.

We do not need to make as much noise for Java: it has been labelled "lakeFS OpenAPI Java client legacy SDK" since before 1.0, people know.

Happy to merge this elsewhere, just say where!
Feel free to merge if you like & don't want to move it.

Thanks!


Bad design??

Regarding the UWP example:  If I have a series of XF Pages created, maybe from an Android or iOS XF application, and I want to use one or more of those XF Pages in a native UWP app, I think it is bad to require the XF Page to be modified with UWP specific stuff.  In the example above, the PhonewordPage would already have an event handler for the Call History button that probably does a standard XF Navigation.PushAsync().  But in order for that button to now navigate when used in a native UWP app, it must be changed with UWP specific: Phoneword.UWP.MainPage.Instance.NavigateToCallHistoryPage();.  This means this PhonewordPage can no longer be used in Android or iOS.  Is there not a better way?

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

ID: 2e9d651b-6624-f671-16e2-61c28415374b
Version Independent ID: 61600bb9-66b3-904d-6be3-32029e78bc5a
Content: Xamarin.Forms in Xamarin Native Projects - Xamarin
Content Source: docs/xamarin-forms/platform/native-forms.md
Product: xamarin
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @scastria
While with Native Forms you can still use data binding and other Xamarin.Forms features, you can't use the Xamarin.Forms navigation API. You have to use the native navigation API. I thought this was explained in the doc, but it doesn't appear to be so I'll get it updated.


Update index.md

"io" needs to be imported, in order to avoid "undefined: io" error.
(go version: go1.12.5 linux/amd64)
P.S: import statements are reordered/formatted (gofmt).
Cheers

Proposed changes

Unreleased project version (optional)

Related issues (optional)

Deploy preview for docsdocker ready!
Built with commit 6463f31c3ca83cd53c3c9d69a663fbc557470003
https://deploy-preview-9078--docsdocker.netlify.com


Add unjail command to PoE tx section

To unjail a validator by the node operator a CLI command would help

Done in https://github.com/confio/tgrade/pull/231


Update "YORK" to pool_cluster.csv

Hi, I try to add my stake pool YORK. Thank you :)

Closed by #11

Closed by #11


Add test for classify_package

This function is quite important and it's pretty hard to understand what it does so I added test both to prevent breakage and characterize its behaviour.
It probably needs some fix from the look of it so we can discuss this here before merging.
My initial plan was to drop the Github variant and just detect git based dev-repo as that should be all duniverse need to know since the tag/branch are guessed from the archive URL. When I looked into this function I figured it might be a bad idea to blindly remove the Github case in its current state but I believe we can refine this function so this can be achieved.

I think removing Github should be fine.  The only use of it now looks very similar to Git:
  match opam.Opam.dev_repo with
  | `Github (user, repo) -> (
      let upstream = Fmt.strf "https://github.com/%s/%s.git" user repo in
      match opam.Opam.tag with
      | None ->
          Exec.git_default_branch ~remote:upstream () >>= fun ref -> Ok { Dune.dir; upstream; ref }
      | Some ref -> Ok { Dune.dir; upstream; ref } )
  | `Git upstream -> (
    match opam.Opam.tag with
    | None ->
        Exec.git_default_branch ~remote:upstream () >>= fun ref -> Ok { Dune.dir; upstream; ref }
    | Some ref -> Ok { Dune.dir; upstream; ref } )

and most of the gory logic is in opam_cmd to guess the tag name from the archive, which doesnt use the Github variant.

Yep that's why I thought about removing it but given what gets picked as the repo URL in the Git case I'd like to improve this function first!

I'm working on fixing the bug atm thus the WIP status of this PR. Sorry about that, I'll ping you once it's ready for review again!

I pushed some new commits to fix the bug, here's a summary of what I did:

I extracted a Git module for git related helper functions, I added a is_git_uri function there that checks whether an uri is a git URI (for now just checks the path part as a .git extension. I also added tests for this function
I extracted an Opam module for opam related helper functions. I added a Dev_repo module there, with a type and a from_string function that parses a dev-repo opam field value to a vcs and a cleaned up URI. I also added tests for this function.
classify_package now uses Opam.Dev_repo.from_string to distinguish git based dev-repos and uses the cleaned URI in the git case
I removed the Unknown variant as it's not used anymore

The next step which is to get rid of the Github variant will further simplify this function.

@Julow fixed that last point, let me know if it looks good to you and let's merge!


JS error occurs after creating a jira issue from post

When creating a Jira issue from a post on Daily, the ticket was created successfully, but I got this js error in the console
Uncaught Error: Given action "jira_connected", reducer "defaultUserInstanceID" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.

Issue created from a Mattermost message by @mickmister.

Scanning the code for usage of defaultUserInstanceID, the only bad thing that happens as a result of this, is that the user will not have the instance auto-chosen for them. But this could be a sign of a bigger issue.


Hash FIle

We have a customer who likes the Maintenance Solution script, however they will not allow software/files onto their system without a hash file, could this be generated on for the scripts and available on github.

Does anyone know if there is a standard for doing this? File format? Algorithm?

SHA-256 is approved by NIST and is included in SHA-2 family of hash algorithms. You could use certUtil in cmd to generate the checksum, and then publish it on your website and Github. One could then verify the downloaded file by generating the same checksum locally. See below:
certUtil -hashfile C:\filename.sql SHA256

Could you help me understand the security aspects here?
If my website or GitHub repository were somehow compromised, an attacker could modify both the scripts and their checksums, couldn’t they?


New package: Gmsh v0.1.1

Registering package: Gmsh
Repository: https://github.com/JuliaFEM/Gmsh.jl
Created by: @ahojukka5
Version: v0.1.1
Commit: 8a7e4207510629a4953c789a213021ea7daa618a
Reviewed by: @ahojukka5
Reference: https://github.com/JuliaFEM/Gmsh.jl/commit/8a7e4207510629a4953c789a213021ea7daa618a#commitcomment-35105650

Please add (at least)
[compat]
julia = "1"

to your project file and retrigger the bot.

These are my first steps with Project.toml. Is there any other things what would you recommend to add Project.toml?


How to use NodePlayground Panels?

Hi, I want to use NodePlayground panel.
Is there any documentation? please tell me how to use this panel.

It hasn't been fully developed yet. Stay tuned!!

It should work now! There's documentation in the panel itself. Let us know if you have any questions!


#9 Added 404 Page

This is what i have created , Please have a look in attached video.
https://github.com/ajaynegi45/Library/assets/121949298/e1e0059f-ff3d-446a-9d38-f886114ecba4

My pleasure to contribute to this project ❤


file and components name changed

contributors.json ---> activemembers.json
components:
GetContributors.json ---> GetActivemembers.json
close #444

Fixes #444


How can I update a range of unique values?

Let's say I have the following class:
public class Foo
{
    public int Id { get; set; }

    [Unique]
    public int Position { get; set; }
}

The Position property is for ordering purposes and is unique.
In my database, I have a list of Foos, something like this:
{ Id: 100, Position: 0 }, { Id: 101, Position: 1 }, { Id: 102, Position: 2 }
Now I want to insert a new Foo at the beginning of the "list", so I read all foos, increment their position by 1 and assign the new Foo" the Position = 0`.
The problem is, that the underlying SQL database now throws An error occurred while updating the entries. See the inner exception for details.Cannot insert duplicate key row in object 'dbo.Foos' with unique index 'IX_Foos_Position_Index'. The duplicate key value is 0..
This exception happens for every other position value too.
Is this something Entity Framework should/could handle, and is there a workaround for now?

Basically exceptions are thrown because values are added/updated before the previous record holding same value is updated. i.e. New record with position 0 is added but the old record with position 0 has not changed its value therefore duplicate value. Same will happen at the update time. For this case the update/insert statements needs to be sent in decreasing order of Position. So that Position 2 is moved to 3 making space for 2 so lower records can move.
As for work-around for now,
You can update records one by one and call SaveChanges() in the decreasing order of position so that duplicate values do not arise.

This would also be a scenario where dropping down to raw SQL would be a good option...
context.Database.ExecuteSqlCommand("UPDATE dbo.Foo SET Position = Position + 1 WHERE ...");


[SPARK-33676][SQL] Require exact matching of partition spec to the schema in V2 ALTER TABLE .. ADD/DROP PARTITION

What changes were proposed in this pull request?
Check that partitions specs passed to v2 ALTER TABLE .. ADD/DROP PARTITION are exactly matched to the partition schema (all partition fields from the schema are specified in partition specs).
Why are the changes needed?

To have the same behavior as V1 ALTER TABLE .. ADD/DROP PARTITION that output the error:

spark-sql> create table tab1 (id int, a int, b int) using parquet partitioned by (a, b);
spark-sql> ALTER TABLE tab1 ADD PARTITION (A='9');
Error in query: Partition spec is invalid. The spec (a) must match the partition spec (a, b) defined in table '`default`.`tab1`';

To prevent future errors caused by not fully specified partition specs.

Does this PR introduce any user-facing change?
Yes. The V2 implementation of ALTER TABLE .. ADD/DROP PARTITION output the same error as V1 commands.
How was this patch tested?
By running the test suite with new UT:
$ build/sbt "test:testOnly *AlterTablePartitionV2SQLSuite"

Test build #132287 has started for PR 30624 at commit 401f22b.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36889/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36889/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36889/

Test build #132287 has finished for PR 30624 at commit 401f22b.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Jenkins, retest this, please

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/132287/

Test build #132291 has started for PR 30624 at commit 401f22b.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36892/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36892/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36892/

Test build #132291 has finished for PR 30624 at commit 401f22b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/132291/

@stczwd @cloud-fan Could you review this PR, please.

thanks, merging to master/3.1!


Variable highlight looks broken in dark theme

Dark+ theme, have a multiple references of a variable in a .js / .ts file.
Select that variable
Notice that the variable highlight is stronger then the selection
So it can easily be confused that the change location of the variable is selected

Nice example: vscode express smoke test / bin/www  double click on server on line 28

Agreed this needs to be fixed.  I'm going to be modifying some other colors related to other issues, and will be sure to address this.
Is there any reason why we had the variable highlight be blue?  The only reason why I can think of is that it is a strong color that stands out.  When a user wants to know where a variable was defined, this could be useful.
Perhaps for the variable highlight we could use an outline, so that it's a strong visual indicator but is not confused as being a selection highlight (see below).  What do you think?

Not sure what was the reason for the original color.
I think it looks good, however it is hard to give feedback without first trying it out. I think this is one of those things where we have to just try it out. People will notice immediatly and you will get feedback.

Closing this for housekeeping and since we haven't seen other requests for this. Feel free to re-open if you disagree.


Bug with "use most recent" option

To reproduce :

Copy and edit this visualisation : https://int.visualize.admin.ch/v/ozxDF5KXa3YU?dataSource=Prod
Disable  the "use most recent" option on the "Date" dimension filter.
Reactivate "use most recent" option
-> Data exists for this date (see table), but instead of displaying the data Visualize displays a message saying that there is no data for the selected filter combination.

Visualize environment and version:v3.25.0 ([1b7a837]
Edge

@bprusinowski very good this now also works for ordinal time 👍


NumSeries() method for BlockReader interface

This is a broken down piece of  #627 and is required by #627.

the ReadOnly PR exposes the meta for the block and would cover your case as well.
https://github.com/prometheus/tsdb/pull/588
I was waiting for one final review, but if no one replies will merge in 1-2 days.

#588 doesn't give NumSeries for head. So either a part of this PR would be needed or the Meta returned by Head needs to expose NumSeries.

yes I meant to add the NumSeries the read only db PR.

Closing this as its available as .Meta().NumSeries after https://github.com/prometheus/tsdb/pull/588 was merged.


Add more flexible search option with active requests

provide api  when user wants to search specific conditions over active request.
i.e /wmstatsserver/data/filterted_requests?RequestStatus=running-closed&RequestStatus=running-open&RequestType=TaskChain&SubRequestType=RelVal&mask=RequestName&mask=PrepID
This will return only RequestName and PrepID for  TaskChain, RelVal  request on running-open and running-closed status.

@vlimant, Jean-Roch, is this sufficient for what need?


CU-86a1hur4z - Refactor test_set.py to use BoaTestConstructor

Summary or solution description
Refactored test_set.py file to use BoaTestCase in place of BoaTest for unit testing.

Task linked: CU-86a1hur4z Refactor test_set.py to use BoaTestConstructor

coverage: 92.111%. remained the same
when pulling b6afd93f1849d684453c1ba985b221afd7e2dd29 on CU-86a1hur4z
into ebc58ab7e1cfde856b905734174e96e06195280c on development.


Health advisory for usage quota

How can you exceed a usage quota? This is mentioned as something that a health advisory can alert you on, but with vCPU limits per region, for example, you can't create VMs if they would go over the limit.
We have a lot of customers wondering about quota alerts so I'd like to clarify this point.

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

ID: 2ece45be-921e-665a-ef7a-b21bc0675c8a
Version Independent ID: cc393a6b-eb26-9439-d9d9-36e388539234
Content: Service Health overview - Azure Service Health
Content Source: articles/service-health/service-health-overview.md
Service: service-health
GitHub Login: @stephbaron
Microsoft Alias: stbaron

we'll update this to remove that example, as I'm not aware of health advisories ever being used to communicate quota violations.

We appreciate your question. Sorry didn't fully answer in a timely manner. Since this question was created some time ago, we don't know if it still applies. We kindly ask you to create a new github issue if it's still important. We will engage with you on the new thread. Thank you for your understanding.
#please-close


Add support for mysql (deployed as part of the chart)

Provide a configuration option that would allow for deploying an instance of MySQL together with Temporal, and configuring Temporal to use this instance of mysql for its persistence.

i think this is partially addressed by #25  or #5  or #167 but we are not supporting this on main path for now


Does ACL Graph support custom layer?

Hi
I noticed there's no Shuffle Channel Layer in ACL Graph. How can I implement a costom layer?

Hi,
The Graph layer of the Compute Library is only here for test purposes, it's not meant to be used for applications development.
You've got other options for that, such as for example ArmNN

Channel Shuffle layer will be part of the next release.

Hi
I noticed there's no ROI Align Layer in ACL Graph. How can I implement a costom layer?

Hi @waynexhsieh
As Anthony mentioned, the Graph layer of the Compute Library is only here for test purposes. If you want to implement a new layer, you can have a look at an existing kernel/function. We are in the process of updating our documentation where we'll explain how to create custom kernels/functions, hopefully in the next release.


ERROR: /home/jintian/.cache/bazel/_bazel_jintian/d1c80f2469ad0b5bc66edb51c88be305/external/curlpp/BUILD.bazel:3:1: C++ compilation of rule '@curlpp//:curlpp' failed: gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -B/usr/bin -B/usr/bin -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g '-std=c++0x' '-DUSE_ESD_CAN=false' -MD -MF ... (remaining 30 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.

When I bazel to build project just got this error:
ERROR: /home/jintian/.cache/bazel/_bazel_jintian/d1c80f2469ad0b5bc66edb51c88be305/external/curlpp/BUILD.bazel:3:1: C++ compilation of rule '@curlpp//:curlpp' failed: gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -B/usr/bin -B/usr/bin -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g '-std=c++0x' '-DUSE_ESD_CAN=false' -MD -MF ... (remaining 30 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.

Any idea?

Can you please check if "/usr/bin/gcc" is available in your environment?

@jinfagang I modified your title to a shorter one.

can you try to clean and build again by command

bash apollo.sh clean
bash apollo.sh build

If you see the same error again, you can check if there is any system error with command

dmesg

Thank you guys! I will try it!


Mention translation.override() context manager in docs

The only example on using translations outside of views and templates
uses the clumsy try/finally and doesn't mention the convenient
override context manager.
I think this is pretty trivial thus no ticket. If it needs one, please let me know.

merged in cf34ee68f0d70cfbcba40524b5d1086ad94874e1, thanks!


[rendergraph] Update to v1.4.0.

https://github.com/microsoft/vcpkg/issues/36050

[x] Changes comply with the maintainer guide
[x] SHA512s are updated for each updated download
[x] The "supports" clause reflects platforms that may be fixed by this new version
[x] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

Since I've modified the commit on RenderGraph, I've had to use --overwrite-version option, hence the failure in "Check For Common Mistakes" task.
What can I do ?

Hi !
What am I supposed to do, here ?

/azp run


Highlighting text with the mouse and letting go causes copy mode to exit and the buffer to scroll to the bottom.

Other than this, everything seems to be working fine. Thanks for the plugin! I'm happy to provide any more info.

:) Thanks for filing the bug. This behavior bothers me as well...
I have filed a bug with tmux here: https://github.com/tmux/tmux/issues/140, but apparently this is actually the intended behavior.
It took me a while to understand, but what's happening is that it's actually copying the selection you highlighted. You can then hit ] to paste the line you highlighted. This is neat, but I most of the time find it bothersome.
I would like there to be an option to disable this behavior. Please file a bug with tmux or comment on my bug to let them know about your problem.
Or, if you can come up with a clever way of disabling it through the plugin, let me know! :)

Thanks for getting back to me! You're right. That does seem like odd default behaviour. I'll go ahead and add a comment to your bug. An option to change that would be really nice.

I'm not super familiar with scripting tmux, so maybe there's no way to do this, but maybe something like this?:
#Hold the number of lines has been scrolled up
export scrollNum=0
#increment scrollNum so that the number of lines that's been scrolled is kept track of
tmux bind-key -n WheelUpPane if-shell -F -t = "${export scrollNum=$(($scrollNum+"$scroll_speed_num_lines_per_scroll"))}" /*The rest of this line*/
#would have to reset scrollNum once we reach the bottom and make sure we don't keep deincrementing #if we scroll down at the bottom
tmux bind-key -n WheelDownPane if-shell -F -t = "${export scrollNum=$(($scrollNum-"$scroll_speed_num_lines_per_scroll"))} /*The rest of this line*/

#This puts us in copy-mode then sends scroll up commands until the buffer is in the same place it was #before the highlighting happened.
#You'd still lose the highlight though
#Really hacky I'm so sorry.
#Not sure how you'd do click and drag.
#Maybe chain together some bind-key/unbind-key commands as part of the block that executes on click.
#Something like (bind-key MouseDrag1 (bind-key MouseUp1 doThing())
#As part of doThing, we'd need to unbind/rebind the keys to what they were previously so we don't
#overwrite their original functionality
tmux bind-key -n <clickAndDrag> if-shell -F -t =  "if -Ft= '#{pane_in_mode}' \"$select_moused_over_pane_cmd $enter_copy_mode_cmd\" "$for i in `seq 1 "$scrollNum"` ;do send_keys_to_tmux_cmd=$send_keys_to_tmux_cmd"send-keys -M ; " done

This is a really crappy, probably syntactically wrong work around. I don't know. Maybe this helps.

Huh! That's an interesting idea. Thanks! I'm not sure if that would work either.
I had previously filed this bug when I tried to do something similar and it didn't seem promising:
https://github.com/tmux/tmux/issues/147
But maybe now that I know more about tmux scripting maybe we could figure something out. I dunno! I don't have time to try playing around with this now, but it's a cool idea. I'll let you know if I get the time to try it out.

Closing this for now as it's not a problem with this plugin.


Add List.h locally

List.h isn't available on the library network,
so to save people the trouble of installing it,
just package it as part of the game.

Perfect. I meant to do this after seeing your implementation on your branch but got side tracked by adding a shotgun to the game. My priorities aren't great at the moment lol.


More placement new

These are additional replacements of assignment operators by placement new, similar to changes in https://github.com/thrust/cub/pull/32.
These changes don't make it safe for general Thrust or CUB code to use objects having non-trivial assignment operators. They do make it safe for my company's code to do so -- for the moment. I will separately start a new issue at NVLabs/cub to address the general problem.

referencing https://github.com/thrust/thrust/issues/1153

This looks good to me. Just gonna run it through our tests internally and it should be merged soon.
CL: 28940409


AbstractStringBuilder indexOf() problem

This code seems to fail:
int index = new StringBuffer("Hello").indexOf("Hello", 0);
assert (index == 0);

I think the "i < sz" needs to be "i <= sz".

Jeff, do you have the line in the TeaVM source where this change is needed?  It sounds like you've found the exact file/line already.  Is it possible to make a PR for Alexey to merge?

Ah, right, sorry I need to be a better TeaVM citizen. I think the issue is in:
TAbstractStringBuilder.java:indexOf (lines 675 - 686):
    public int indexOf(TString str, int fromIndex) {
        int sz = length - str.length();
        outer: for (int i = fromIndex; i < sz; ++i) {
            for (int j = 0; j < str.length(); ++j) {
                if (buffer[i + j] != str.charAt(j)) {
                    continue outer;
                }
            }
            return i;
        }
        return -1;
    }

I think if changed to i <= sz, it will fix, otherwise if search str is same length as buffer string, it will erroneously bail.

Thanks Alexey!


Bump minimum required Z-Wave JS server version

For the next minor release of Home Assistant, we should bump the minimum required version of zwave-js-server.

https://github.com/home-assistant-libs/zwave-js-server-python/blob/7295913e96ea28c6da9b7c9005cdb1417816fdfa/zwave_js_server/const.py#L5

We shouldn't bump it earlier since it can break users' installation that are running on an older version of the server.

Fixed in https://github.com/home-assistant-libs/zwave-js-server-python/pull/127


AwaitKit and Kingfisher Stuck

I got a class which has a method encapsulating KingfisherManager.shared.retrieveImage. This method returns a Promise. It always worked well. However, after I have started to use AwaitKit KingfisherManager.shared.retrieveImage it stucks, not trigering callback.
Works on simulator but not on real device.
Thanks for the help in advance.

Hi @igordeoliveirasa,
How do you create your promise? Can you upload a sample project or gist file please?


Add ability to fetch resources from the cluster

Describe the problem/challenge you have
I need as part of my packages processing to query information that lives in the cluster so that I can take some decisions. An example would be that my package would create HTTPProxy resources if contour is available in the cluster, otherwise it would use Ingress.
Currently, the user needs to query for that information and provide it as a data value to the instantiation of a PackageInstall (via de data values secret)
Describe the solution you'd like
We have been thinking of 2 possible ways of achieving this:
Adding a fetch capabillity that will query resources from the cluster and that will use as data.values:
apiVersion: data.packaging.carvel.dev/v1alpha1
kind: Package
metadata:
  name: package.example.com.1.0.0
spec:
  refName: package.example.com
  version: 1.0.0
  template:
    spec:
      fetch:
      - imgpkgBundle:
          image: registry.tkg.vmware.run/tkg-fluent-bit@sha256:...
      - resources:
         - name: contour
            kind: Deployment
            namespace: projectcontour
      template:
      - ytt:
          paths:
          - config/
      - kbld:
          paths:
          # - must be quoted when included with paths
          - "-"
          - .imgpkg/images.yml
      deploy:
      - kapp: {}

There's some dependency work in progress, but this would get specific details about the existing resources so that information can be used as data values.
The other option would be to extend the PackageInstall:
apiVersion: packaging.carvel.dev/v1alpha1
kind: PackageInstall
metadata:
  name: package
spec:
  serviceAccountName: package-sa
  packageRef:
    refName: package.example.com
    versionSelection:
      constraints: ">v1.0.0"
      prereleases: {}
  values:
  - secretRef:
      name: package-values
  - resourceRef:
      name: contour
      kind: Deployment
      namespace: projectcontour

This are just to possible implementation options to address the feature, but it's really needed to be able to query existing resources in the cluster for data-values.
cc/ @grahamdumpleton

Vote on this request
This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.
👍 "I would like to see this addressed as soon as possible"
👎 "There are other more important things to focus on right now"
We are also happy to receive and review Pull Requests if you want to help working on this issue.

We brought this capability up a few ages ago with Cluster API.  The API Load Balancer DNS name isn't known until after cluster creation, and it lives at k get awscluster CLUSTER_NAME -o jsonpath={.spec.controlPlaneEndpoint.host}
I would want to pass this value into another App CR so that I could output a DNS Endpoint for External DNS.
  - apiVersion: v1
    kind: AWSCluster
    namespace: foo
    fieldSelector: "{.spec.controlPlaneEndpoint.host}"
    labelSelector:
      matchLabels:
        cluster.x-k8s.io/cluster-name: bar
    path: svc.yml
    prefix: my_cluster_endpoint

I'm not sure what the value(s) would get passed into the resulting template step -- would I have a file that looked like this?
#@data/values
---
my_cluster_endpoint:
  spec:
    controlPlaneEndpoint:
      host: controlplane.example.com

If I ruminate on this what I really desire is: The capability to give an expression that can be evaluated prior to applying.  The evaluation of that expression is typically some data that resides in existing cluster resources whose output of that expression is then used as input to the current package.

Is it an oversimplification to characterize this as "simply" querying the cluster as if it were merely a document db?
I ask because I think that characterization bounds the operation so that:

inputs are selection and projection of known document types (KGVs), and
outputs are either whole documents that satisfy the criteria or flyweight versions thereof.

Are there other data sources and/or types involved?

FWIW, we have been researching how this could be done of late and believe a lot can be learned from what kyverno does. In particular kyverno has the concept of defining contexts, which are additional sets of data values that are available for use in processing kyverno rules. One source of data values for a context is an apiCall.

https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls

Eg., they have:
rules:
- name: example-api-call
  context:
  - name: podCount
    apiCall:
      urlPath: "/api/v1/namespaces/{{request.namespace}}/pods"
      jmesPath: "items | length(@)"

Here you can see how they allow a urlPath to be specified for a call made against the cluster with an optional jmesPath expression being used to generate a processed result from it. In other words, not restricted to just the raw result.
In the context of ytt, what could be done is that for each context you create a file with name {{context-name}}.data.yaml and set a file for that file name like --file-mark '{{context-name}}.data.yaml:type=data'. Thus the files aren't by default processed but the main YAML files could then use data.read() to load the data for the specific context and process it.
As to the jmesPath expression, since starlark is rich enough as is, you need not bother with that and always save the raw data for processing by the ytt templates.
As to the variable interpolation in the urlPath, then kapp-controller should make a range of variables available corresponding to the namespace the package is tracked in, but also any input data values file should be able to referenced, thus allowing one to use anything from that to deduce names of a namespace or a specific resource in the namespace or at cluster scope.

One thing to note about kyverno, you do have to give it additional roles to read the resources it may accumulate via an apiCall, it can't just access the whole cluster by default. This would be an issue with kapp-controller as well, as allowing full access means it would be trivial to steal secrets. Thus RBAC has to be taken into consideration and how you review additional RBAC needed because of this for a package and only enable it just for that package after you verify you want to do that. But then this is where the ability to specify a service account to use for the deployment comes in.

I would just start simple, and maybe, if needed, iterate from there.
Right now, being just able to load the whole document/resource specified by a selector (gvk+name+ns) from the cluster would improve kapp-controller greatly.

another use case, this may or may not fall under this issue, but it seems at least tangential:

my package contains a resource with fields we want to set to 1) the address of a Service in the package and 2) CA bundle from a Certificate in the package


⚠ Bofrost.at has degraded performance

In c5d7178, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1855 ms

Resolved: Bofrost.at performance has improved in 6be4335 after 1 hour, 13 minutes.


Telegram returned an invalid response!

Operating system: ubuntu
PHP version: 7.0
PHP Telegram Bot version: 0.45.0
Using MySQL database: yes
MySQL version: 5
Update Method: Webhook
Self-signed certificate:  no
How to  check server response , Before telegram display this error

Telegram returned an invalid response! Please review your bot name and API key.
I want first check server response (or internet connection) , then send data to telegram

Would have been great if you filled out the issue properly, so I'll ask here again, please answer the following:

Operating system:
PHP version:
PHP Telegram Bot version:
Using MySQL database: yes / no
MySQL version:
Update Method: Webhook / getUpdates
Self-signed certificate: yes / no

Close due to inactivity


Allow setting "missing value" string when using join.

It would be nice that it would be possible to set a missing value string when using join, so it is possible to put for example "NA" instead of empty fields.

Another option would be to add a --null option to fmt, so fmt can replace all empty fields with a specific string:
xsv join 2 test1.csv 2 test2.csv | xsv fmt --null 'NA'

If the -null option is also added to input, it would allow to specify a string which, if found will result in a NULL value (empty column) for xsv. This probably would solve: https://github.com/BurntSushi/xsv/issues/38

I think this is a straight out duplicate of #38, no? I think even the proposals you've given were already suggested in some form in #38.

Yes, it is very similar to #38.


Tutorials

Can you make the same tutorials as for Authorizer React but for Authorizer JS because the documentation is not very precise
Thank You

@Noflare thank you for the suggestion, will surely add tutorial and improve current documentation. In mean time you can check this example: https://github.com/authorizerdev/examples/
Check index.html script section at the bottom for precise information.
Note: With recent change in cross browser cookie policies from different browsers, it may not work on the codesandbox, but you can definitely try that out on local.


bash syntax error with python36

Issue description
Running nix-shell -p python36 produces the following error message:
bash: /nix/store/w3k60lgxbkj1sj1zpyh50671qpky0v1w-stdenv-darwin/setup: line 135: syntax error near unexpected token ('`
However, if I run nix-shell -p python36 --pure --run python3, the python shell is brought up without issue.
Steps to reproduce

Run nix-shell -p python36

I don't have an identical machine to reproduce the issue. I couldn't reproduce this on Darwin 16.7.0, macOS 10.12.6
Technical details

system: "x86_64-darwin"
host os: Darwin 17.5.0, macOS 10.13.4
multi-user?: yes
sandbox: no
version: nix-env (Nix) 2.0.2
channels(root): "nixpkgs-18.09pre133932.ee28e35ba37"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixpkgs

I guess we still have some problems with nix-shell impurely accessing /bin/bash instead of the nix provided one. Maybe comparing dtruss -f nix-shell --pure  -p python36 with dtruss -f nix-shell -p python36 reveals something.

Can't reproduce on ee28e35ba37, the bash shell starts normally for me on:

system: "x86_64-darwin"
host os: Darwin 17.5.0, macOS 10.13.4
multi-user?: no
sandbox: no
version: nix-env (Nix) 2.0.2

@chdsbd Is this still an issue?


TransferWise Payout Form: Fixes and API updates

Based on https://github.com/opencollective/opencollective-api/pull/3343
Relates to https://github.com/opencollective/opencollective/issues/2858
Make sure the Host you're using is connected to TransferWise
connectedAccount: {
  service: 'transferwise',
  token: '33b5e94d-9815-4ebc-b970-3612b6aec332',
  data: {"type":"business","id":220192},
}

I'll rebase and merge https://github.com/opencollective/opencollective-api/pull/3343 first to simplify the review

Rebased.


CPP: Improve dataflow in newdelete.qll

Improve the data flow logic for global variables in NewDelete.qll.  It now understands the case where a global variable is assigned in several places, but in all cases with the same type of allocation (or NULL).  This should allow the NewArrayDeleteMismatch.ql query to detect the case of https://github.com/hmakholm/smhasher/blob/long-neighbor-test/src/LongNeighborTest.cpp#L531

Fixed conflict in the change notes.

Have you verified performance on large snapshots? IIRC, this query can be slow, and adding a forall in a recursion is unlikely to make it better.

Sadly I get timeouts from Chromium and LibreOffice even on the base of this PR; and timings are uninteresting for smaller projects.  But I did get some useful numbers and make an improvement on a few of middle-size:
Firefox on base:
	(clean cache here)
	NewArrayDeleteMismatch.ql - 3 results, 1200s
	NewDeleteArrayMismatch.ql - 0 results, 23s
	NewFreeMismatch.ql - 4 results, 13s
Firefox on this branch:
	(clean cache here)
	NewArrayDeleteMismatch.ql - 3 results, 1359s
	NewDeleteArrayMismatch.ql - 0 results, 128s
	NewFreeMismatch.ql - 4 results, 45s
Firefox on this branch + fix:
	(clean cache here)
	NewArrayDeleteMismatch.ql - 3 results, 1190s
	NewDeleteArrayMismatch.ql - 0 results, 18s
	NewFreeMismatch.ql - 4 results, 43s
Wireshark on base:
	(clean cache here)
	NewArrayDeleteMismatch.ql - 0 results, 793s
	NewDeleteArrayMismatch.ql - 0 results, 6s
	NewFreeMismatch.ql - 0 results, 6s
Wireshark on this branch:
	(clean cache here)
	NewArrayDeleteMismatch.ql - 0 results, 744s
	NewDeleteArrayMismatch.ql - 0 results, 12s
	NewFreeMismatch.ql - 0 results, 7s
Wireshark on this branch + fix:
	(clean cache here)
	NewArrayDeleteMismatch.ql - 0 results, 731s
	NewDeleteArrayMismatch.ql - 0 results, 5s
	NewFreeMismatch.ql - 0 results, 7s

There's still a forall, which I can't seem to get rid of without introducing non-monotonic recursion, but real-world performance seem to be no worse.


fix windows build

Interestingly, one of the test_sql tests actually succeeds, namely test_interactive, which checks that pgsu can connect (without actually running a query).
this should mean that one _try_connect method should have succeeded
but then for some reason executing sql queries doesn't work

superseded by https://github.com/aiidateam/pgsu/pull/28


www/nginx Problem with TLS Certificate enable in HTTP Server

version: os-nginx-devel-1.1
If it is set TLS Certificate option in HTTP Server the following error occurs:
PHP Warning:  Invalid argument supplied for foreach() in /usr/local/opnsense/scripts/nginx/setup.php on line 88
@fabianfrz

@juliocbc fix is provided in the PR above. You can try if it works for you using the opnsense-patch -c plugins 667c381  command. The


Fingerprinting SVG assets.

I have ember deploy setup to deploy everything to an S3 bucket. I am having caching issues with the SVG assets in the public/assets/images directory. All the other assets get fingerprinted when deploying to S3 however svg files do not. I may be missing a configuration or something, but is there a way to get those fingerprinted? My deploy config looks like this:
module.exports = function(deployTarget) {
  var ENV = {
    build: {
      environment: 'production'
    },
    pipeline: {
      activateOnDeploy: true
    },
    s3: {
      accessKeyId: process.env.AWS_KEY,
      secretAccessKey: process.env.AWS_SECRET,
      region: process.env.AWS_REGION,
    },
    's3-index': {
      allowOverwrite: true,
      accessKeyId: process.env.AWS_KEY,
      secretAccessKey: process.env.AWS_SECRET,
      region: process.env.AWS_REGION
    },
...
};

You'll want to add svg to the list of fingerprinted extensions in your https://github.com/rickharrison/broccoli-asset-rev#usage configuration within ember-cli-build.js

cool thanks @lukemelia

The link luke posted looks right, but is actually broken:
https://github.com/rickharrison/broccoli-asset-rev#usage


Map phibase python

This commits the first block of the new Microbes' PHI-base pipeline to load data to the Protein-Protein interactions database.
It has been tested on a dummy dataset provided by Rothamsted and will be tested more thoroughly with a real dataset in the upcoming weeks.

Hi @vsitnik , I've added you as reviewer not for the code but to make sue that there was no conflict with the structure that you have in mind for this repo. Many thanks


Update PackageCollectionModel.V1.ProductType init extension for .extension → .plugin renaming

Fix a build failure caused by SwiftPM upstream renaming ProductType.extension to ProductType.plugin in https://github.com/apple/swift-package-manager/pull/3311.
Note that SwiftPM's PackageCollectionModel.V1.ProductType hasn't gotten this rename yet and still has ProductType.extension, which seems like a mismatch that probably needs to be resolved upstream (and then again here).
/cc @abertelrud @yim-lee

Opened a PR upstream to do the necessary renaming: https://github.com/apple/swift-package-manager/pull/3324

Thanks @friedbunny. I will test this PR locally once we merge https://github.com/apple/swift-package-manager/pull/3324

Tested locally. Merging.


Add downloading of configuration-defined projects

Overview
This PR adds an additional flag, -D/--download-all, which adds new functionality:
When specifying the --download-all flag, all projects/repositories defined in the configuration file are downloaded in the order they exist within the config file.
If this flag is specified, no other parameters are required.
Implementation
This functionality was implemented by using exec.Command() to execute the currently running binary (which is an eget binary) sequentially for each of the configuration-defined repositories, and the output from the process is streamed in real time to the current stdout pipe using a scanner created by bufio.NewScanner() for reading the output.
This allows a complete implementation of batch downloading with a minimal amount of additional code, as it leverages eget functionality itself.
Example Usage
Given the following configuration file:
[global]
    github_token = ""
    quiet = false
    show_hash = true
    upgrade_only = true
    target = "./test"

["zyedidia/micro"]
    name = "micro"
    upgrade_only = false
    show_hash = false
    asset_filters = [ "static.tar.gz" ]

["zyedidia/eget"]
    name = "eget"
    upgrade_only = false
    show_hash = false
    asset_filters = [ ".tar.gz" ]

["junegunn/fzf"]
    name = "fzf"
    upgrade_only = false
    quiet = false

The following output is displayed when running eget --download-all:

Notes
Original Notes:
I'm not 100% sure that --download-config is the best name for this flag, so please suggest alternatives if anything comes to mind.  I feel that it could be confusing if an end user thinks that the flag means a configuration file will be downloaded.
Alternatives could be --batch-download, --download-configured, or something similar. Thoughts?
Updated Notes: The flag has been renamed to --download-all per suggestion.

Cool thanks! I left some comments, and I think we should change the flag name to --download-all.

@zyedidia I've updated the flag name, which is much better than the original choice, thanks for the suggestion.  Could you please re-review?

Thanks, I think there are still some changes to be made (see the review comments), and then I'll merge.

@zyedidia I've addressed all of the change requests - would you please re-review at your convenience? Thanks for all of the great suggestions to improve the code. :+1:

Looks good, thanks!


Evergreen LTSC installation and upgrade scenario

Hi @jberezanski, when specifying a channelID and channelURI for the Evergreen LTSC bootstrappers in the installation command line parameters, a new installation of the package works as expected. However, when attempting to upgrade from a prior version to a new version, there's an error stating "No previous catalog found at C:\Programdata\Microsoft\VisualStudio\Packages_Instances<instanceID>\catalog.previous.json".
I understand now that the VS extensions were built to support only "current channel", so the result makes sense as it's assuming current channel during an upgrade scenario.
While I have a workaround to forcefully change the channel URI from LTSC to "current channel" of the existing instance before kicking off the package install to upgrade to the new LTSC channel, how heavy of a lift would it be to retrieve the channel in use by the existing instance and upgrade it?
I am pursuing potentially modifying the VS extensions for my own scenario, but I'm concerned about a ripple effect for your whole design. Alternatively, I could just do an uninstall and reinstall.

there's an error stating "No previous catalog found at C:\Programdata\Microsoft\VisualStudio\Packages_Instances\catalog.previous.json".

This seems to be a problem inside the Visual Studio Installer itself. The choco extension does not touch that path.
In my personal tests, I encountered several problems and inconsistent behavior when attempting to upgrade an existing VS instance across different channels, even when using the VS Installer interactively, without any automation. In the end, I decided it was unreliable and not worth the effort. I recommend using separate installation paths for different channels (or uninstalling the old instance and installing from a new channel, if keeping a specific path is important).
As for the packages, my vision was for each package to be configured for a specific channel. This provides the option of creating separate packages for different channels and installing and updating them independently. The packages I publish on community.chocolatey.org are configured for the Current channel, but setting a different one is as easy as passing an additional parameter in chocolateyInstall.ps1. In fact, there are some proof-of-concept packages for other channels in this repository, such as  visualstudio2022buildtools-ltsc17.2 (LTSC 17.2, evergreen) or visualstudio2022buildtools-ltsc17.2_fixed/17.2.12 (LTSC 17.2, installs specifically 17.2.12). However, I do not have plans at the moment to publish LTSC packages on community.chocolatey.org due to the effort needed to automate their updates and maintain them.

Alternatively, I could just do an uninstall and reinstall.

I think this might be the most reliable approach.


imxrt1010evk seen as 1050evk

Currently it appears that running pyocd with a imxrt1010evk connected up, it sees a 1050. This seems like it might be problematic, or not?
pyocd list
  #   Probe                                     Unique ID
--------------------------------------------------------------------------------------------------
  0   MIMXRT1050-EVKB [mimxrt1050_hyperflash]<PHONE_NUMBER>13429800000000000000000000000097969905

The board ID 0227 (first 4 digits of unique ID) is indeed the RT1050 EVK. The RT1010 EVK has a board ID of 0242. So I'm not sure what's happened here…
@jhqian Could there have been an early firmware release for the RT1010 EVK with the old board ID?

yes, @flit, it seems so. @bfrog , please try the latest firmware which can be found at: https://www.nxp.com/design/microcontrollers-developer-resources/ides-for-kinetis-mcus/opensda-serial-and-debug-adapter:OPENSDA

@jhqian thanks, will do

Closing the issue as updated firmware was referenced.


[getResizeObserver()]: ReferenceError: Can't find variable: ResizeObserver

What is the current behavior?
Hooks using getResizeObserver() are breaking on the latest IOS devices.
From what I was able to gather, a polyfill is required on some of those IOS devices.

ReferenceError: Can't find variable: ResizeObserver

Fix ✅
I was able to fix it with a polyfill, but it would be better and more reliable to ponyfill ResizeObserver on here internally.
Edit: I realized that the IOS version I'm testing on is outdated. It would still be worth it to polyfill as it's only been about a year since it got support on Safari Ios
Steps to Reproduce
I am unsure about the exact devices, but I am testing on iPad Pro 12.1

Add a hook that uses ResizeObserver (useResizeObserver, useMesure)
Serve to the device

What is the expected behavior?
The project should run without bugs and warnings
Environment Details

@react-hookz/web version: 7.0.0
react version: 17.0.2
react-dom version: 17.0.2
Browser: All IOS Browsers
Did this work in previous versions? No

Absolutely disagree, poyfilling is on developer side (and apple's unwilling to follow strandards is totally not the problem of library🙃)
Most of developers a) will not use this hook at all b) dont need built-in polyfills since targeting browsers that supports it.
To polyfill it by hand you only have to import polyfills before any other library (on the very top of index file) 4ex: resize-observer-polyfill or @juggle/resize-observer


Fix set cookie every request

Without this patch, the response will always set cookie, even the session is not changed.
For example:
@app.route('/')
def home():
    return 'home'

@app.route('/session')
def set_session():
    session['foo'] = 'bar'
    return 'session'

If you have visited /session, the next time when you visit / it will always send the Set-Cookie header.

@mitsuhiko suppose the case, I save some user info in session, then the Set-Cookie will appear on every response, for example: the static files. If I put CDN in front of it , the header Set-Cookie may cache by CDN, which will cause other people accessing wrong info.


✨ [Feature] chi http driver

Before feedback (在反馈之前)

[X] There are no features that I want to submit in Issues (当前 Issues 中没有我将要提交的新功能)

Describe Feature (描述功能)
Support chi http driver

The basic logic is complete, But need to fix following issues:

[ ] Context not work
[ ] optimize performance
[ ] implement middleware Next() method
[ ] fix Response Stream method
[ ] middleware's logic may have some problem
[ ] fix tests

Good idea, but I wonder if there is a specific reason to support this driver officially? Because we have to update goravel/gin, goravel/fiber, and goravel/chi simultaneously when the Route/HTTP modules have any changes, and eliminate the differences between them.

Good idea, but I wonder if there is a specific reason to support this driver officially? Because we have to update goravel/gin, goravel/fiber, and goravel/chi simultaneously when the Route/HTTP modules have any changes, and eliminate the differences between them, it's hard work.

Because chi is very lightweight, uses net/http, and has zero third-party dependencies. So it also has a lot of fans. I think we can support it.

Yes, it's a good package, but there is no user feedback that they need it for now, so I think we don't need to spend a lot of time on it, maybe future, but not now. Certainly, if you are interested in it, it's good to go. However, the framework may not provide official support when upgrading. It's too hard to upgrade three HTTP sub-package simultaneously for us for now.

Yes, it's a good package, but there is no user feedback that they need it for now, so I think we don't need to spend a lot of time on it, maybe future, but not now. Certainly, if you are interested in it, it's good to go. However, the framework may not provide official support when upgrading. It's too hard to upgrade three HTTP sub-package simultaneously for us for now.

agree!!


Move interactive from viewer to camera

Description
This PR moves the viewer.interactive to viewer.camera.interactive where it is a much better fit, as it describes whether the interactivity of the camera is enabled or not.
This PR drops the viewer.events.interactive, and adds deprecation warnings too viewer.interactive.
It continues the trend of moving evented properties off the viewer model itself.
Type of change

[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)

@Czaki you might want to quickly check this one too

@sofroniewn in what situations do we want interactive=False? Could we forgo this attribute altogether?

@sofroniewn in what situations do we want interactive=False? Could we forgo this attribute altogether?

We use this when we're painting or adding points, polygons etc. You need to disable the camera so that drawing on the screen actually draws .... probably something that would have been good to add to a doc string 🤣  I can add a doc string later if you want.
I don't particularly like right now that there is layer.interactive too and how all this get's wired up, so we might be able to do better there too

Ah, got it! Yeah the word doesn't quite describe things without the context! I'd probably call it camera_interactivity without .camera in the attribute path. 👍


added a parameter to change the end of the line b or line-ending

Hey Pawel(@paweld),
I absolutely love your initiative and your unending dedication to this project!!
You're just the best co-pilot on this challenge I could get, or hope to get!! :people_hugging: :heart:
I've decided that we're gonna go with LF only.
With this in mind can you make it so that this is not an option, but the only way to generate the input file?
Many thanks in advance !!!
Cheers,
Gus

for the unaware, the new script requires a station count if using the -4 parameter

@georges-hatem Thank you very much for noticing the error. I have fixed in PR https://github.com/gcarreno/1brc-ObjectPascal/pull/125

Pleasure to help :)