LuaFun::from_fn_mut and LuaFun::from_fn_once are unsound

use after move in from_fn_once:  if called twice, on second call, we call Box::from_raw is called on a value is that already moved in previous call.

https://github.com/noib3/nvim-oxi/blob/09d6934c343f556ec605be84d84e5c5086119282/nvim-oxi/src/lua/luafun.rs#L165-L172

mutable aliasing in from_fn_mut: if called recursively, we create two mutable references to same closure.

https://github.com/noib3/nvim-oxi/blob/09d6934c343f556ec605be84d84e5c5086119282/nvim-oxi/src/lua/luafun.rs#L143-L150

There's no way to call neither of those functions more than once.

how is this guaranteed?

from_fn, from_fn_mut and from_fn_once all take ownership of the closures that get passed in, so to call them more than once you'd have to pass different closures (or clone a single closure, which is fine).

I didn't mean calling from_fn_once twice, but calling the lua function from_fn_once creates.
in pseudo code
// we create a LuaFun
let x = String::new();
let closure = LuaFun::from_fn_once(move || drop(x));
// and pass it to neovim

// later in neovim code
closure();
closure();

Ah yes, this is what the LuaFun::call method would do, which is still unimplemented. A couple of notes:

calling a LuaFun created from a FnMut more than once is fine, those created w/ FnOnce are problematic;
we only accept a FnOnce in the api when we know Neovim is only gonna call that function once. For example Buffer::call or nvim_oxi::schedule accept an FnOnce;
regarding the call method, I'm still unsure on how to go about it. In the previous implementation where I hade three separate structs, i.e. LuaFn, LuaFnMut and LuaFnOnce the call method was acting on &self, &mut self and self respectively.

What I'm probably going to do is change the visibility of the LuaFun::from_fn_once method to only make it available inside the crate, and remove the ToObject implementation for boxed FnOnce closures here.

My solution would be to just provide a from_fn.
FnOnce can just be transformed into FnMut and FnMut can be transformed into a Fn using
fn fn_mut_to_fn(f: impl FnMut()) -> impl Fn() {
    let f = RefCell::new(f);
    move || {
        (f.try_borrow_mut().expect("FnMut called recursively"))();
    }
}

fn fn_once_to_fn_mut(f: impl FnOnce()) -> impl FnMut() {
    let mut f = Some(f)
    move || {
        (f.take().expect("FnOnce called more than once"))();
    }
}

What's there to gain by only having a from_fn method? Using RefCell forces you to add an unnecessary layer of indirection. Making from_fn_once private is enough to prevent users from creating LuaFuns from FnOnce closures, and creating a LuaFun from an FnMut closure is totally fine.

Safety.
In terms of performance, RefCell just costs a single integer arithmetic, and the branch would always be predicted correctly.

creating a LuaFun from an FnMut closure is totally fine.

no
let mut x = None;
LuaFun::from_mut(move || {
    match x {
         Some(x) => {
                x = None;
         }
         None => {
                x = Some(5);
                let borrow  = x.as_mut().unwrap();
                // call some neovim apis
                // neovim calls this function again recursively

                // borrow is a reference to invalid memory, because the call to this closure set it to x to None.
                *borrow = 6;
         }
    }
});
// pass to neovim

neovim calls this function again recursively

I'm not sure what you mean by "recursively", Neovim doesn't really call any function recursively. I guess you meant "more than once"?

borrow is a reference to invalid memory, because the call to this closure set it to x to None.

No. When the function gets called if x is Some it becomes None and if it's None it becomes Some(6). Neither of those branches involve any references to invalid memory.
Test it for yourself:
use nvim_oxi::{
    self as nvim,
    api::{opts::*, Buffer},
    LuaFun,
};

#[nvim::module]
fn liboxi() -> nvim::Result<()> {
    let mut x = None::<u8>;
    let fun = LuaFun::from_fn_mut(move |_: CreateCommandArgs| {
        match x {
            Some(_) => {
                x = None;
            }
            None => {
                x = Some(5);
                let borrow = x.as_mut().unwrap();
                *borrow = 6;
            }
        }
        nvim::print!("{x:?}");
        Ok(())
    });

    let buf = Buffer::current();
    let opts = CreateCommandOpts::builder().build();
    let _ = buf.create_user_command("Foo", fun, &opts);

    Ok(())
}

Every time you call :Foo from Neovim you'll see either Some(6) or None.

Oh sorry now I see what you mean. I wonder if Neovim has some api that would cause this to happen, but using RefCell is not a solution here. You'd just get a panic instead.

I wonder if Neovim has some api that would cause this to happen.

maybe nvim_command("Foo")

Still, using RefCell doesn't help much. You'd just get a panic instead.

panic is still a lot better than segfaults.

panic is still a lot better than segfaults.

fair enough.
I still think we should keep LuaFun::from_fn_mut, just turn the FnMut into an Fn via RefCell and have it call from_fn. Same for from_fn_once. We should also add two variants to Error that we can return instead of panicking, say LuaFunMutRecursiveCallback and LuaFunOnceMoreThanOnce. Idk I'm bad at names. Will accept a PR if you want to go at it.

But where and how do we return the error?

pub fn from_fn_mut<F>(fun: F) -> Self
where
    F: FnMut(A) -> Result<R> + 'static,
{
    let fun = RefCell::new(fun);
    Self::from_fn(move |args| {
        fun.try_borrow_mut()
            .map_err(|_| crate::Error:: LuaFunMutRecursiveCallback)?(
            args
        )
    })
}

wow, I didn't realize that from_fn handled Results already

also this is exactly what I meant in #26 . We end up re inventing and re implementing what mlua already has

Yes, there's some overlap but not nearly enough to justify having it as a dependency. mlua is 13k+ loc, our lua module is ~500 loc and won't grow much past that. Also, the mlua api is fundamentally incompatible with ours.


Repository add dialog hangs

When I click on Add External Repository in the repositories dialog, I get a weird dialog with a spinner and no files displaying, I can't select any repo.

I think it might be a bug in IntelliJ, or it might be taking a long time trying to build the file hierarchy. Does it happen all the time, or does it finally display files if you wait a few seconds? (or click the refresh button)

I had the same problem, but in a part that's not related at all to the plugin, so I'll say it's a bug in IntelliJ that I can't fix it. Restarting the IDE fixed the problem.


Work with pi camer?

Hi there does this work with araspberry pi also this uses obicos api to ai detect ont he camera stream right.
Manu thanks

can you rephrase your question please?
or explain what you have and what you want to do, and which subdirectory are you referring to?

Hi there sorry, i didint realise it was in just 3d printing direcory, for the obico one i see you say esp but nothing about raspberry pi. i just wanted to know if its compatable with a raspberry pi many thanks

You would have to expose rpi camera snapshot as static image over the web (there are many ways how to do it), that would be the best option.
Using camera device directly would require more code adjustments (using python picamera), but because it would require using camera directly via python it may interfere with other tools - so I'm not going to do it.

I think the easiest would be to run some process which would expose rpi camera as snapshot and then use that endpoint to fetch image.
Short search gives that https://github.com/signag/raspi-cam-srv should work with http://<server>:<port>/photo_feed

if you mean you want to use ml_api on the rpi and do detections on the image fetched directly from the camera, then no, right now this is not possible and it would require much more work:

add code to fetch image from camera using picamera python lib
compile code for rpi (arm and arm64 platfroms) which means fighting a lot fo dependencies
compute on rpi would be pretty slow and probably would take seconds to do a detection on full screen image.

For now this is just too much work so I'm not planning to do it.
Closing.

try https://github.com/nvtkaszpir/3d-print/tree/main/picamera-web as an endpoint exposing pi camera image over the web

Thank you. I didint think it would work with the pi thats why i asked

what I tested:

run https://github.com/nvtkaszpir/3d-print/tree/main/picamera-web on rpi 4, it exposes rpi camera on <IP_ADDRESS>:8090

on another computer (preferably with amd64) run obico ml-api only https://github.com/nvtkaszpir/3d-print/tree/main/obico-ml-api-only
and run
cd   obico-ml-api-only
docker-compose up
python3 draw_detections.py --api http://<IP_ADDRESS>:3333 http://<IP_ADDRESS>:8090/ --show

as a result obico fetched image from <IP_ADDRESS>:8090 and ran detection on it

Testing it directly on rpi4 on 64bit Debian 12, where  <IP_ADDRESS> is the IP address of the raspberry pi:

run all above on the rpi 4  - this way it would run obico and camera exposing service on the same device
it should work but will be slow

install docker and obico ml-api container (notice it fetches 3GB so it will take time)sudo docker run -it -p 3333:3333 quay.io/kaszpir/ml_api:812a05b7-arm64 gunicorn --bind <IP_ADDRESS>:3333 --workers 1 wsgi --preload -e DARKNET_PATH=/darknet

DARKNET_PATH=/darknet
- in another terminal, fetch scripts
```shell
cd src
git clone https://github.com/nvtkaszpir/3d-print.git
cd 3d-print/picamera-web
make web

in another terminalcd src/3d-print/obico-ml-api-only
python3 draw_detections.py --api http://<IP_ADDRESS>:3333 http://<IP_ADDRESS>:8090/ --show

result:
pi@hormex:~/src/3d-print/obico-ml-api-only $ Error: no "view" rule for type "image/png" passed its test case
       (for more information, add "--debug=1" on the command line)
python3 draw_detections.py --api http://<IP_ADDRESS>:3333 http://<IP_ADDRESS>:8090/
INFO:root:treshold=0.2
INFO:root:api=http://<IP_ADDRESS>:3333
INFO:root:ignore=[]
INFO:root:show=False
INFO:root:img_url=http://<IP_ADDRESS>:8090/
INFO:root:saveimg=None
INFO:root:savedet=None
INFO:root:ignore_list: []
DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): <IP_ADDRESS>:8090
DEBUG:urllib3.connectionpool:http://<IP_ADDRESS>:8090 "GET / HTTP/1.1" 200 54196
DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): <IP_ADDRESS>:3333
DEBUG:urllib3.connectionpool:http://<IP_ADDRESS>:3333 "GET /p/?img=http%3A%2F%2F<IP_ADDRESS>%3A8090%2F&ignore=%5B%5D HTTP/1.1" 200 74
INFO:root:detections: [["failure", 0.119, [326.0, 133.0, 264.0, 326.0]]]
INFO:root:ignored: []

it detected failes area     with confidence 0.119 (11%).
So it works but is slow.

also, obico-ml-api-only was not tested with video streams (I doudb it would work), so you would have to make a new service to expose single camera image from a stream so that obico ml api could fetch it and process it.
For such scenarios I suggest just using official obico.


Decide whether to keep Nfa::increase_size()

    //TODO: why this? Maybe we could have add_state(int state)
    //Btw, why do we need adding states actually, we could just add states with transitions,
    // or with initial/final states.
    void increase_size(size_t size)
    {
        assert(this->delta.post_size() <= size);
        delta.increase_size(size);
    }

We should decide whether we want to keep Nfa::increase_size() or whether we want to modify the current function Nfa::add_state() to accept an argument specifying how many states to add (up to a state with internal representation equal to the passed parameter). If we decide to modify the Nfa::add_state() with a parameter, we can safely remove Nfa::increase_size_for_state() which would then do exactly the same as the updated Nfa::add_state(State state).
In addition, we should discuss whether we even want to have a function for adding individual states. I would say we do. We use the function Nfa::add_state() to add a sink state in some algorithms, for example. Or just to add a new state, which we will later use.
This issue aims to resolve TODOs in the above-shown code.

I'm suggest to add Nfa::add_state(State ) and overload the method.


Create regional S3 client for model exporting

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Ended up addressing the problems this PR was meant to address on the Python SDK side in aws/sagemaker-python-sdk#411 - closing this PR.


Field definition is empty in \Kirki::$fields

Issue description:
Previously we were able to fetch the full field definition by referencing $fields = \Kirki::$fields;. This has stopped working in version 4 and above. This is handy to have available for various tasks. We are using it to automatically provide fields to out controllers.
I understand that this may not be an indended use-case, but we would be happy if it can be reimplemented. Happy to help with this, if some pointers are given in the direction of "the correct way of implementation".
Version used:
4.0.9
Using theme_mods or options?
theme_mods
Code to reproduce the issue (config + field(s))
add_action('wp', function() { var_dump(\Kirki::$fields); });
Any config will return an empty array.
Example implementation:
https://github.com/helsingborg-stad/Municipio/blob/3.0/develop/library/Customizer/Applicators/Modifiers.php#L21
Description: A simple implementation of this functionality, to add modifiers tor components by pure kirki configuration & a filter. Without the need of writing more code.

Looks like the fields are added here to index: https://github.com/kirki-framework/kirki/blob/master/packages/kirki-framework/compatibility/src/Field.php#L343 . This class is however never initialized on my install.

Hi @sebastianthulin , thanks for posting the issue :)
Can you try to use Kirki::$all_fields instead? Would that work for your use-case?
Thanks

Thanks! It seems like it, there are a minor difference regarding the data structure of output. Previously output was embedded in the $args sub element.
3.0 / $fields
$field['args']['output']
4.0 / $all_fields
$field['output']


We should be able to track primary/non-primary entries when the same cave is reported from multiple sources

Supported now


Cicrular routes

Allow circular routes by allowing the first stop to be selected again as the last stop.

Done.


Issue on the Installation - Ubuntu

Hi guys, anyone having issues running this command on ubuntu?  That is suggested on the installation part.
git submodule update --init
I tried it on two computers but one of them does not seem to run the command even though it doesn't give any error and jumps onto the next command line which is not the right output. Then the two other commands don't run / give errors.
./make_devel.sh
./build/chia_plot  --help
If there are any other ways to install, that would also be appreciated as well.
Thanks.
$ sudo apt install  -y libsodium-dev  libgmp3-dev  cmake g++ git
[sudo] password for ja1:
Reading package lists... Done
Building dependency tree
Reading state information... Done
git is already the newest version (1:2.25.1-1ubuntu3.1).
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
g++ : Depends: g++-9 (>= 9.3.0-3~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

sudo apt-get install build-essential

sudo apt-get install build-essential

I think I'm following the same route, finding similar topics about this but, here's the output I received after running.
sudo apt-get install build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
build-essential : Depends: libc6-dev but it is not going to be installed or
libc-dev
Depends: g++ (>= 4:9.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Try the following:
sudo apt-get clean sudo apt update sudo apt upgrade sudo apt install libc6-dev g++ sudo apt install build-essential

Try the following:
sudo apt-get clean
sudo apt update
sudo apt upgrade
sudo apt install libc6-dev g++
sudo apt install build-essential

All good until the 4th command
ja1@ja1-PowerEdge-R820:~$ sudo apt install libc6-dev g++
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
libc6-dev : Depends: libc6 (= 2.31-0ubuntu9) but 2.31-0ubuntu9.2 is to be installed

Sounds like you have a problem with your mirrors list or system. This is more of a Ubuntu related issue, and has nothing to do with this project. You can try apt policy libc6 libc6-dev and see if you observe strange result. Sounds like you have issues installing packages from focal-update repo.

Sounds like you have a problem with your mirrors list or system. This is more of a Ubuntu related issue, and has nothing to do with this project. You can try apt policy libc6 libc6-dev and see if you observe strange result. Sounds like you have issues installing packages from focal-updates repo.

I'm guessing it's an Ubuntu related issue as well but the system is recently installed. I can't see what the issue can be.
Here's the output of the command:
I guess, I'll try to find how I can install libc6-dev
ja1@ja1-PowerEdge-R820:~$ apt policy libc6 libc6-dev
libc6:
Installed: 2.31-0ubuntu9.2
Candidate: 2.31-0ubuntu9.2
Version table:
*** 2.31-0ubuntu9.2 100
100 /var/lib/dpkg/status
2.31-0ubuntu9 500
500 http://us.archive.ubuntu.com/ubuntu focal/main amd64 Packages
libc6-dev:
Installed: (none)
Candidate: 2.31-0ubuntu9
Version table:
2.31-0ubuntu9 500
500 http://us.archive.ubuntu.com/ubuntu focal/main amd64 Packages

It worked out after I was able to downgrade one of the packages.
Then I was able to run all the lines shown under the code section for maxplotter.
Thanks all.
R820:~$ sudo aptitude install g++
The following NEW packages will be installed:
g++ g++-9{a} libc-dev-bin{a} libc6-dev{ab} libcrypt-dev{a} libstdc++-9-dev{a} linux-libc-dev{a}
0 packages upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 14.0 MB of archives. After unpacking 73.1 MB will be used.
The following packages have unmet dependencies:
libc6-dev : Depends: libc6 (= 2.31-0ubuntu9) but 2.31-0ubuntu9.2 is installed
The following actions will resolve these dependencies:
 Keep the following packages at their current version:

g++ [Not Installed]

g++-9 [Not Installed]

libc6-dev [Not Installed]

libstdc++-9-dev [Not Installed]

Accept this solution? [Y/n/q/?] n
The following actions will resolve these dependencies:
 Downgrade the following packages:

libc6 [2.31-0ubuntu9.2 (now) -> 2.31-0ubuntu9 (focal)]

libc6-dbg [2.31-0ubuntu9.2 (now) -> 2.31-0ubuntu9 (focal)]

Accept this solution? [Y/n/q/?] 1
Action "1": Installing libc6 2.31-0ubuntu9 (focal)
Package: libc6
Version: 2.31-0ubuntu9
State: installed (2.31-0ubuntu9.2), upgrade available (2.31-0ubuntu9)
Automatically installed: no
Multi-Arch: same
Priority: required
Section: libs
Maintainer: Ubuntu Developers<EMAIL_ADDRESS>Architecture: amd64
Uncompressed Size: 13.6 M
Depends: libgcc-s1, libcrypt1 (>= 1:4.4.10-10ubuntu4)
Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, locales
Conflicts: openrc (< 0.27-2~)
Breaks: hurd (< 1:0.9.git20170910-1), iraf-fitsutil (< 2018.07.06-4), libtirpc1 (< 0.2.3), locales (< 2.31), locales-all (< 2.31), nocache (< 1.1-1~), nscd (< 2.31),
r-cran-later (< 0.7.5+dfsg-2), wcc (< 0.0.2+dfsg-3), locales:i386 (< 2.31), libc6:i386 (!= 2.31-0ubuntu9), locales-all:i386 (< 2.31), nscd:i386 (< 2.31)
Replaces: libc6-amd64, libc6-amd64:i386, libc6:i386 (< 2.31-0ubuntu9), libc6-amd64:x32, libc6-amd64:x32-i386-cross, libc6-amd64:i386-x32-cross
Description: GNU C Library: Shared libraries
Contains the standard libraries that are used by nearly all programs on the system. This package includes shared versions of the standard C library and the standard
math library, as well as many others.
Homepage: https://www.gnu.org/software/libc/libc.html
This action was selected because libc6-dev depends upon libc6 (= 2.31-0ubuntu9).
Enter "r 1" to prevent this action from appearing in new solutions.
Enter "a 1" to require that new solutions include this action if possible.
Accept this solution? [Y/n/q/?] y
The following packages will be DOWNGRADED:
libc6 libc6-dbg
The following NEW packages will be installed:
g++ g++-9{a} libc-dev-bin{a} libc6-dev{a} libcrypt-dev{a} libstdc++-9-dev{a} linux-libc-dev{a}
0 packages upgraded, 7 newly installed, 2 downgraded, 0 to remove and 0 not upgraded.
Need to get 22.3 MB of archives. After unpacking 41.8 MB will be used.
Do you want to continue? [Y/n/?] y

@canaltuncu  Thank you so much!! Finally I resolved the issue.


'gapi.auth2.authorize' do nothing when using 'login_hint' with 'userId'

As it's written in the documentation here or here2, login_hint field should enable to sign-in directly to hinted account by email or by userID (google user's id). Unfortunately, the option with using userID doesn't work properly – instead of trying to log directly to the indicated account, pop-up window with a prompt of selecting account is displayed).
I'm using gapi.auth2.authorize method for managing YT channels. Some of them are assigned to the same email address, so I have to use their userId (which are different among them). This bug with login_hint blockes me with my further works. I've noticed that my issue is also mentioned in that issue, but it's not resolved yet.

@google-admin this issue has been ongoing for over a year without a word from google. Could someone get assigned to look into this?

Another similar issue. https://github.com/google/google-api-javascript-client/issues/623


Remove duplicated hash key in chart.rb

The same hash key is on the line 29

Looks like there are 5 PRs for this change. Since ansi is depended on by powerbar and minitest-reporters, it would be good to have this fix quickly since Ruby 2.2 complains about duplicate keys in hashes. Thanks in advance!

Oh no! I haven't been getting emails for pull requests for this project. Why? :confused: Will have to figure out and fix. Thanks for emailing me directly. I'll merge this and work my way through the other PRs.

@trans, Thanks! Could this be released as 1.4.4 soon? Getting a lot of:
../gems/ansi-1.4.3/lib/ansi/chart.rb:26: warning: duplicated key at line 29 ignored: :concealed

Just released 1.5.0. Happy New Year!

Thanks, @trans! Happy New Year!


Remove Lutris from NixOS dependency section

Objective

Using the instructions given for NixOS results in an unnecessarily long time to evaluate the shell expression due to unnecessary dependencies pulled in by lutris.

Solution

Removed lutris dependency.

Lutris is a GUI tool for running games on wine, I'm assuming it was pulled in by accident as it's definitely not necessary for running bevy. A hello world example, at the least, works fine without it.

The working nix template linked to me by @sofia-m-a on https://github.com/Leafwing-Studios/template-repo/pull/19 didn't need this, so I'm in agreement with @DJMcNab.

The working nix template linked to me by @sofia-m-a on https://github.com/Leafwing-Studios/template-repo/pull/19 didn't need this, so I'm in agreement with @DJMcNab.

bors r+

bors r+


The library now depends on Angular 7. Fixes #136.

Bumped Angular version to 7, updated some other dependencies. All libraries and the demo app builds and runs successfully.

Should we update "ngx-popper" as well?

Thanks for the PR!  I'll review this today.

Didn't get to this today.  I'll look at this first thing tomorrow.

@isaacplmann I might have forgotten to bump version number in package.json not only for popper but also for "ngx-tour-ngx-bootstrap".

I caught the popper version, but I missed ngx-tour-ngx-bootstrap.  I’m publishing that now.
On Nov 27, 2018, 9:30 AM -0500, Tomas Rimkus<EMAIL_ADDRESS>wrote:

@isaacplmann I might have forgotten to bump version number in package.json not only for popper but also for "ngx-tour-ngx-bootstrap".
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

<EMAIL_ADDRESS>is now published

@isaacplmann The demo app seems to be broken. Did you build it with "--prod" flag?
ng build --prod

Good catch.  It worked from ng serve so I thought it was good to go.  I've updated the build script to include --prod.


warning: workspace size equal 0

cuda 版本10.0
cudann 7.6.5
opencv 3.6
The latest version of cmake
GPU can be used for normal compilation
But i can't solve this bug

please check out your .msnhnet file, it should not be empty


Using MySQL as proxy but keeps telling me Access denied Bug Report

I'm trying to use mysql as proxy but every metadata api run failed though username and password has been changed in metadata_service/config.py.
I run test examples in tests/unit/proxy/test_mysql_proxy.py and got all success.
Expected Behavior
Show some true behavior.
Current Behavior
Traceback (most recent call last):
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask/app.py", line 2309, in __call__
    return self.wsgi_app(environ, start_response)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask/app.py", line 2295, in wsgi_app
    response = self.handle_exception(e)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask_restful/__init__.py", line 271, in error_router
    return original_handler(e)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask/app.py", line 1741, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask/_compat.py", line 34, in reraise
    raise value.with_traceback(tb)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask_restful/__init__.py", line 271, in error_router
    return original_handler(e)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask/_compat.py", line 34, in reraise
    raise value.with_traceback(tb)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask_restful/__init__.py", line 467, in wrapper
    resp = resource(*args, **kwargs)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/flask/views.py", line 87, in view
    self = view.view_class(*class_args, **class_kwargs)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/metadata_service/api/table.py", line 29, in __init__
    self.client = get_proxy_client()
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/metadata_service/proxy/__init__.py", line 41, in get_proxy_client
    _proxy_client = client(host=host,
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/metadata_service/proxy/mysql_proxy.py", line 120, in __init__
    is_the_latest_schema = self.client.validate_schema_version()
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/metadata_service/client/rds_client.py", line 73, in validate_schema_version
    with self.engine.begin() as conn:
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2147, in begin
    conn = self._contextual_connect(close_with_result=close_with_result)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2302, in _contextual_connect
    self._wrap_pool_connect(self.pool.connect, None),
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2339, in _wrap_pool_connect
    Connection._handle_dbapi_exception_noconnection(
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1583, in _handle_dbapi_exception_noconnection
    util.raise_(
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2336, in _wrap_pool_connect
    return fn()
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 364, in connect
    return _ConnectionFairy._checkout(self)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 778, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 495, in checkout
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 137, in _do_get
    return self._create_connection()
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 309, in _create_connection
    return _ConnectionRecord(self)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 440, in __init__
    self.__connect(first_connect_check=True)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 656, in __connect
    connection = pool._invoke_creator(self)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 508, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/MySQLdb/__init__.py", line 130, in Connect
    return Connection(*args, **kwargs)
  File "/root/amundsen/metadata/venv/lib/python3.8/site-packages/MySQLdb/connections.py", line 185, in __init__
    super().__init__(*args, **kwargs2)
sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user 'user'@'localhost' (using password: YES)")

Possible Solution
Don't konw
Steps to Reproduce

1.Modify username and password etc. in config.py
    PROXY_HOST = '<IP_ADDRESS>'   # type: ignore
    PROXY_PORT = '3306'   # type: ignore
    PROXY_USER = 'root'   # type: ignore
    PROXY_PASSWORD = '123456'   # type: ignore
    SQLALCHEMY_DATABASE_URI = os.environ.get('SQLALCHEMY_DATABASE_URI', 'mysql://root:123456@<IP_ADDRESS>:3306/test')

2.Run python3 metadata_service/metadata_wsgi.py
3.Open 'http://<IP_ADDRESS>:5000'. (where the server lies)
Screenshots (if appropriate)
Context
Server runs on ubuntu 20.04, ip <IP_ADDRESS>
Within LAN, open http://<IP_ADDRESS>:5000 using Windows 10 Edge
Your Environment

Amunsen version used: main branch
Data warehouse stores: MySQL
Deployment (k8s or native): local

I tried https://github.com/amundsen-io/amundsen/releases/tag/frontend-3.12.0 but found it still of no use. :(

cc @xuan616

Hi @shiyishiaa, may I know if you have initialized the database

Hi @shiyishiaa, may I know if you have initialized the database

Sorry for late reply. Yes, I did. After mysql, I tried Neo4j and everything works fine for me.

I am not sure if I understand the issue correctly. Sounds like the same connection string('SQLALCHEMY_DATABASE_URI') worked for the command flask rds initdb but not api endpoints in metadata service?

I am not sure if I understand the issue correctly. Sounds like the same connection string('SQLALCHEMY_DATABASE_URI') worked for the command flask rds initdb but not api endpoints in metadata service?

Yes, you're right.

The error occurred when the service was trying to verify the schema version and it failed due to the rejected connection. Could it be an issue caused by the remote access or some loss of privileges on user?

The error occurred when the service was trying to verify the schema version and it failed due to the rejected connection. Could it be an issue caused by the remote access or some loss of privileges on user?

I don't think so. I successfully logged in via the database tool of IDEA with root account. And everything worked well.

I was not able to reproduce this issue on my end. Could you provide more details, like how each component was deployed at your side. Or you can slack me in Amundsen slack if you are going to share some screenshots. Thx.

I was not able to reproduce this issue on my end. Could you provide more details, like how each component was deployed at your side. Or you can slack me in Amundsen slack if you are going to share some screenshots. Thx.

OK, I will try it later. Thanks for your patience! :)
Let close this issue temporarily.

thanks @xuan616 for the debugging


Getting Connection error EOFError: EOFError

Hi
We are trying to send data to kafka but are geting the following error:

Could not connect to any of the seed brokers:
kafka://<IP_ADDRESS>:2181: Connection error EOFError: EOFError

Code :
require "kafka"
kafka = Kafka.new(["<IP_ADDRESS>:2181"], client_id: "my-client-id")
  # Case 1:
  kafka.deliver_message("Hello, World!", topic: "cohota")

  # Case 2:
  # Instantiate a new producer.
  producer = kafka.producer
  # Add a message to the producer buffer.
  producer.produce("Hello", topic: "cohota")
  # Deliver the messages to Kafka.
  producer.deliver_messages

It is working with a node library on the same machine same network but with ruby its throwing the error....sorry for the noob question but please if someone could give any idea as to what we are doing wrong...thanks
ruby-kafka: 0.5.4
rails (5.0.4)
Bundler version 1.16.1
Ruby version 2.4.1
kafka version : <IP_ADDRESS> , also checked on <IP_ADDRESS> & also on 1.0.1

Hey @harsh-a1, did you try one of the higher level libraries for producing and/or consuming like karafka or racecar? The reason I'm asking is that they contain some validations that would ensure that what you are doing is right. If your node code works, than the ruby code should work as well. Also this port does not look like a standard kafka port (but that may be on purpose)

Yes it worked, we were using the wrong port, changing to kafka one did it..thanks


Fix IPv6 linking for UWP

Fix #7003.

@Faless @punto- I believe this patch doesn't change behavior but do you guys have some guidelines on how to test if this?

I don't have a setup to compile for winrt right now, I do remember not
being able to use that macro on win32 because it only works for
initializing an address, not for assigning, but winrt is c++14 or whatever,
so it might work..
On 31 October 2016 at 20:48, George Marques<EMAIL_ADDRESS>wrote:

@Faless https://github.com/Faless @punto- https://github.com/punto- I
believe this patch doesn't change behavior but do you guys have some
guidelines on how to test if this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/7006#issuecomment-257453073,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGVmPSQK0f72rj9MPTky4xKgoiKBvrrmks5q5n47gaJpZM4KlpD0
.

that won't compile, that's why there's the lowercase thing too
On 1 November 2016 at 00:03, Fabio Alessandrelli<EMAIL_ADDRESS>wrote:

IN6ADDR_ANY_INIT seems to be the cross platform constant for binding
an IPv6 sockets to all interfaces.
I think you should just replace in6addr_any -> IN6ADDR_ANY_INIT:
diff --git a/drivers/unix/socket_helpers.h b/drivers/unix/socket_helpers.h
index 9693911..f74440b 100644
--- a/drivers/unix/socket_helpers.h
+++ b/drivers/unix/socket_helpers.h
@@ -47,7 +47,7 @@ static size_t _set_listen_sockaddr(struct
sockaddr_storage* p_addr, int p_port,

addr6->sin6_family = AF_INET6;
addr6->sin6_port = htons(p_port);
- addr6->sin6_addr = in6addr_any; // TODO: use accepted hosts list
+ addr6->sin6_addr = IN6ADDR_ANY_INIT; // TODO: use
accepted hosts list
return sizeof(sockaddr_in6);
};
};

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/7006#issuecomment-257478882,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGVmPV0CRQh8ZY97ZIXJUk2GCBz8vEolks5q5qwVgaJpZM4KlpD0
.

that won't compile, that's why there's the lowercase thing too

Well, it compiles for me on Linux and cross compiled for Max and Windows.
Also, it seems to be valid constant for:

Linux: http://man7.org/linux/man-pages/man7/ipv6.7.html
Windows: https://msdn.microsoft.com/en-us/library/windows/desktop/ms738520(v=vs.85).aspx
OSX: http://www.manpages.info/macosx/getaddrinfo.3.html
BSD: https://www.freebsd.org/cgi/man.cgi?query=getaddrinfo&sektion=3

I know it's valid, I tried using it too but it didn't compile somewhere, I
think it was windows.. But if it works you can leave it..
On 1 November 2016 at 00:51, Fabio Alessandrelli<EMAIL_ADDRESS>wrote:

that won't compile, that's why there's the lowercase thing too
Well, it compiles for me on Linux and cross compiled for Max and Windows.
Also, it seems to be valid constant for:

Linux: http://man7.org/linux/man-pages/man7/ipv6.7.html
Windows: https://msdn.microsoft.com/en-us/library/windows/desktop/
ms738520(v=vs.85).aspx
OSX: http://www.manpages.info/macosx/getaddrinfo.3.html
BSD: https://www.freebsd.org/cgi/man.cgi?query=getaddrinfo&sektion=3

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/7006#issuecomment-257482938,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGVmPWUU5wl1CVKlL5uFCysOh9HLOhptks5q5rdbgaJpZM4KlpD0
.

@vnen if this fixes winrt then it's good to go :+1:

Thanks for checking out. I'll merge this to fix the build for winrt.

Thanks, I'll try again to compile for WinRT.


help article EOL for major versions

https://github.com/aiven/devportal/issues/1067

This PR is created to workaround reviewdog vale issue in https://github.com/aiven/devportal/pull/1286


[stable/traefik] Update app version to 1.5.3

Update Traefik version to 1.5.3
Bump Chart version

/assign @krancour

I'd say chart version can be 1.21.2 instead of 1.22.0. We're just updating traefik to a new patch release, which resolves to a bump in a patch release of the chart.

@kachkaev Yeah that makes sense. Changed.

@siwyd, looks like there's a merge conflict here. It will LGTM after that is resolved.

@krancour Rebased and version bumped to resolve conflict.

Thanks @siwyd
/ok-to-test

/lgtm

Thanks @siwyd !


Abstract methods example in docs errors

Input
→ View on sorbet.run
#typed: strong
module Runnable
  extend T::Sig
  extend T::Helpers                                    # (1)
  interface!                                           # (2)

  sig {abstract.params(args: T::Array[String]).void}   # (3)
  def main(args); end                                  # (4)
end

Observed output
editor.rb:8: This code is untyped https://srb.help/7018
     8 |  def main(args); end                                  # (4)
          ^^^^^^^^^^^^^^^^^^^
Errors: 1

Expected behavior
The docs state that this is the expected manner to define an interface, but it seems to error out when using typed: strong.
Is this a considered to be a bug, or has the expected behavior changed (and the docs are just simply out of date)?

Duplicate of #3410
strong is not generally supported and is provided merely as a curiosity.


Code Refactor: Improve Readability and Maintainability

PR Description
What changed:

Refactored the code for better readability and maintainability.
Reduced code repetition and simplified key sections.

Why it's important:

Improves readability and makes it easier to extend in the future.
Simplifies maintenance and reduces errors.
No change in functionality or API.

This refactor will make future development faster and more efficient!

This mostly changes formatting in a way that breaks cargo fmt rules.


Tjmadonna/314 synchronize component dataset status

@maxsibilla This is working now

You'll need to add ENTITY_API_URL =  to app.cfg


Backport fix loading old model. (#5724)

Codecov Report

Merging #5737 into release_1.1.0 will not change coverage.
The diff coverage is n/a.

@@              Coverage Diff               @@
##           release_1.1.0    #5737   +/-   ##
==============================================
  Coverage          82.48%   82.48%
==============================================
  Files                 11       11
  Lines               2598     2598
==============================================
  Hits                2143     2143
  Misses               455      455

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e74560c...25e7b03. Read the comment docs.


Build implementation projects against ref assemblies

The previous PR for this (https://github.com/aspnet/Extensions/pull/2483) had a typo, replacing IsImplementationProject with IsImplementationAssemblyProject. This meant that Implementation projects were not being built against refs, which causing some assembly load errors upstream in AspNetCore. Local build confirms that implementation projects now reference <IP_ADDRESS> versions of their Extensions references.
@JunTaoLuo @dougbu PTAL

All tests are failing with:

System.BadImageFormatException : Could not load file or assembly 'Microsoft.Extensions.Options.ConfigurationExtensions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (0x80131058)\n---- System.BadImageFormatException : Could not load file or assembly 'Microsoft.Extensions.Options.ConfigurationExtensions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (0x80131058)\n-------- System.BadImageFormatException : Cannot load a reference assembly for execution.

https://github.com/aspnet/Extensions/pull/2737/commits/9264306f09ee980c9dc031c6f28c353db3ddd75c adds some explicit references to test projects, where the tests had a transitive reference that they were attempting to resolve as a reference assembly. Referencing those things explicitly gets the tests to (correctly) resolve them as implementation assemblies. We need to fix this going forward to use the same scheme as in https://github.com/aspnet/AspNetCore/pull/17311, so that we don't get hit by this when adding new test projects in the future. CC @JunTaoLuo @dougbu

Ubuntu test failures:
ShutdownTestRun

at Microsoft.Extensions.Logging.Testing.LoggedTest.Initialize(MethodInfo methodInfo, Object[] testMethodArguments, ITestOutputHelper testOutputHelper) in //src/Logging/Logging.Testing/src/LoggedTest/LoggedTest.cs:line 21
at Microsoft.Extensions.Logging.Testing.LoggedTestInvoker.CreateTestClass() in //src/Logging/Logging.Testing/src/Xunit/LoggedTestInvoker.cs:line 46

ShutdownTestRun

Wouldn't be surprised if this test is known to be flaky. I'll click the retry button. Please double-check the issues here and in the internal repo to see if the test needs to be marked [Flaky]

System.NullReferenceException : Object reference not set to an instance of an object.

at Microsoft.Extensions.Logging.Testing.LoggedTest.Initialize(MethodInfo methodInfo, Object[] testMethodArguments, ITestOutputHelper testOutputHelper) in //src/Logging/Logging.Testing/src/LoggedTest/LoggedTest.cs:line 21
at Microsoft.Extensions.Logging.Testing.LoggedTestInvoker.CreateTestClass() in //src/Logging/Logging.Testing/src/Xunit/LoggedTestInvoker.cs:line 46

That stack doesn't look like a test issue, but a test infrastructure issue in LoggedTest.Initialize, unless it's loosing some inner stack?

There's an issue for this test, but with a different error.
https://github.com/aspnet/AspNetCore-Internal/issues/3311

Thanks @Tratcher❕
Looking again, I agree this is likely an infrastructure issue. The problem is consistent and unclear, as you pointed out. @rynowak is anything about these messages familiar❔

@rynowak helped me out with this one - the following LoggerFactory was null:
https://github.com/aspnet/Extensions/blob/97c3f96fb173c219caa3fd280ede13e039bb908c/src/Logging/Logging.Testing/src/LoggedTest/LoggedTest.cs#L21
Which was hidden by:
https://github.com/aspnet/Extensions/blob/97c3f96fb173c219caa3fd280ede13e039bb908c/src/Logging/Logging.Testing/src/LoggedTest/LoggedTestBase.cs#L86-L89
By marking the LoggerFactory as nullable, it exposed the underlying error, which was more missing references. I'll throw up a PR to mark that guy nullable in master.

dotnet-install is failing on all Unix platforms everywhere right now 😢. I enabled the tests on Windows temporarily to get coverage - need to revert https://github.com/aspnet/Extensions/pull/2737/commits/991ab66a3907c392511446e27a88492cc9ee192c before I merge this

Locally I get:

| [4.393s] Microsoft.Extensions.Hosting.IntegrationTesting.SelfHostDeployer Warning: dotnet stderr: Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified

Referring to
https://github.com/aspnet/Extensions/blob/e17034fa265d404d48d76a3314aa856a9ab60a7c/src/Hosting/test/testassets/Microsoft.Extensions.Hosting.TestApp/Microsoft.Extensions.Hosting.TestApp.csproj#L9
Which I added in this PR. Not sure yet why it's failing to find this implementation assembly.

This is good to go now. I'm going to rebase and remove the workaround from https://github.com/aspnet/Extensions/pull/2737/commits/5c45866965a2e02cf6ba617fe77dd01319e28626, which will cause CI to fail until dotnet-install.sh gets fixed, after which we should retry CI. The green CI that validates the Ubuntu failures are gone, is here: https://github.com/aspnet/Extensions/pull/2737/commits/5c45866965a2e02cf6ba617fe77dd01319e28626

We should fix Extensions to use the scheme from https://github.com/aspnet/AspNetCore/pull/17311, at which point we can revert https://github.com/aspnet/Extensions/pull/2737/commits/40d846b2f027a7ad78b501449deb98a16027afab


Add local setup steps to README

Issue #, if available:
Description of changes:
Update README to include Local Setup steps
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

don't you have to run yarn before yarn watch?

@aws-donocl  the yarn dependency installation is handled by our install script.


Team Description

https://github.com/users/Fombi-Favour/projects/3/views/1
Team of 3 Members:
Member 1: Fombi-Favour
Member 2: newtonah0
Member 3: BiacaMe

status: APPROVED :green_circle: :100:
Hi, @Team,

Good job so far 👍 Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Highlights ⚡
✅ Descriptive PR 👍
✅ Project setup correctly 🔥
Optional suggestions

N/A

Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers, and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Allow period in path URL templates when generating Swagger templates.

This allows for the templates to contain references to request proto
messages' fields.
Some test code that I played with seems to indicate that
gRPC-Gateway does support dots to reach values
inside values.
In my interpretation, RFC 6570 does not forbid this, but
does not seem to explain exactly what happens.
Swagger spec also does not seem to forbid it. (It's very
nonspecific about how templates are to be parsed,
generally.)
Example proto:
syntax = "proto3";

import "google/api/annotations.proto";

package toy;

service Toy3 {
  rpc Build (Toy3BuildRequest) returns (Toy3BuildReply) {
    option (google.api.http) = {
      post: "/toy3/v1/{what.shape}/{what.color}/{what.class}"
      body: "where"
    };
  }
}

message Toy3BuildRequest {
  Toy3BuildWhat what = 1;
  string where = 2;
}

message Toy3BuildWhat {
  string shape = 1;
  string color = 2;
  string class = 3;
}

message Toy3BuildReply {
  string construction_id = 1;
}

Broken output snippet:
    "/toy3/v1/{what}/{what}/{what}": {
      "post": {
        "summary": "Toy3.Build",
        "operationId": "Build",
        "responses": {
          "default": {
            "description": "Description",
            "schema": {
              "$ref": "#/definitions/toyToy3BuildReply"
            }
          }
        },
        "parameters": [
          {
            "name": "what.shape",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "string"
          },
          {
            "name": "what.color",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "string"
          },
          {
            "name": "what.class",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/toyToy3BuildRequest"
            }
          }
        ],
        "tags": [
          "Toy3"
        ]
      }
    }

Incidentally, this pull request would also update the examples to {be compatible with,use} a newer Go proto package.

LGTM.


Add Docker file

Allow functionary running in Docker

is possible to do the docker image in a neutral way where also AMD rocm is supported ?


docs: SVG consistency changes

@ffoodd I only moved xmlns and fill, but the order could be further improved later if needed.

Indeed, IMHO what could be done is ordering them by occurrencies (the most used the first). Might even be automated, but as long as we're only ordering attreibutes it'd probably be over-engineered.


Document constraint "s"

"s" can be used to create an artificial reference for linker garbage collection, or define sections to hold symbol addresses. "S" does not work for a preemptible symbol in GCC while "s" does.

Is there a reference to GCC and/or LLVM patches?

For GCC: https://github.com/gcc-mirror/gcc/blob/master/gcc/common.md#L97

I just want to mention that in GCC s is an arch-independent constraint: https://gcc.gnu.org/onlinedocs/gcc/Simple-Constraints.html#index-s-in-constraint
But since this won't ever change, it does not matter much.

clang support has been merged to trunk :)


edited some code

new variables for raw url and url for usage. url and rawurl for the pastebin links instead of printing them to the console

Reviewed it all, very nice job mate !
Thanks for the contributions.


关于样本不平均

关于样本不平均 小节 提出的这个多模型的解决方法，可有相关文档说明，或者论文引用？
样本不平均
找到文章
In-classification-how-do-you-handle-an-unbalanced-training-set  里面提到的第二种说法和你的方案有点接近，但是多模型聚合用的是平均。
另外多模型下 结果汇总的函数可以配置吗？
有没有具体的SQL化的例子，来说明一下怎么操作?

This solution is recommended by my colleague. For now, it only picks the model with the highest estimated value.
Here is an example:
load libsvm.`/sample_libsvm_data.txt` as data;

train data as NaiveBayes.`/tmp/bayes_model` where multiModels="true";

register NaiveBayes.`/tmp/bayes_model` as bayes_predict;

select bayes_predict(features) as predict_label, label  from data as result;

save overwrite result as json.`/tmp/result`;

select * from result as output;

In StreamingPro, it's easy to inject your implementation.  Here is the how we implement RandomForest:
class SQLRandomForest extends SQLAlg with Functions {
  override def train(df: DataFrame, path: String, params: Map[String, String]): Unit = {
    trainModels[RandomForestClassificationModel](df, path, params, () => {
      new RandomForestClassifier()
    })
  }

  override def load(sparkSession: SparkSession, path: String, params: Map[String, String]): Any = {
    loadModels(path, (tempPath) => {
      RandomForestClassificationModel.load(tempPath)
    })
  }

  override def predict(sparkSession: SparkSession, _model: Any, name: String, params: Map[String, String]): UserDefinedFunction = {
    predict_classification(sparkSession, _model, name)
  }
}

All you need is extend SQLAlg , and SQLAlg is  in streamingpro-api module which is used to make you easy to develop new modules for StreamingPro.
When you want to define your own strategy to evluate the score, you can replace the load implemation.

That makes sense


Windows from windowX operators shouldn't throw if subscribed to "late"

We have a test confirming that if you subscribe to a window after the parent subscription has been unsubscribed it should throw an ObjectUnsubscribedError. That honestly doesn't make any sense:

It's a corner case with an esoteric operator (we only test it in windowToggle) I doubt most people hit.
It doesn't make sense. The window is complete it's not an error.
It seems to be a side effect of an implementation detail of Subject#asObservable where Subject "knows" about Observable#source.

I want to faze out Observable#lift for v9 (and by proxy Observable#operator and Observable#source), and this is sort of in the way.

CORE TEAM: There's problems with the whole ObjectUnsubscribedError in general. Will file another issue.


fix: cgroup confinement

fix #41

@cmeesters it works! Can this be merged and the other PR closed?

@cmeesters it works! Can this be merged and the other PR closed?

will do asap


refactor: split Reconciler from Reconcile in a few methods

Reduce a bit the size of Reconcile() method from ~400 to ~300 to be easier to understand
Functionality kept the same, just some logic from Reconcile was abstracted into 3 additional methods

@fgalind1 Thanks for your contribution and sorry for the delay! We're planning to review and merge this BEFORE our next minor release(=a feature release).
The rationale is that, although I believe you've done it perfectly, I'm not sure if this doesn't actually break anything, as our unit test and integration test suite are far from 100% coverage. So I'd like to make it as a part of a feature release rather than a patch release, so that we can better communicate via the semver that it may break something(unexpectedly) due to new features) than nothing.

Maybe you introduced some compile errors when you kindly tried to rebase your work on our latest main branch! But I'll try to fix it myself. Wish I'll be able to manage it!

If there's next chance you kindly contribute to this project, if I could ask, it would be super helpful if you could split it into 3 commits like the above so that it is immediately clear for maintainers where to look for review!

Will do, thanks on this.

Thank you for your contribution. This LGTM now. Merging.

:)


fix formatting for the CentOS installation instructions

Description
This PR fixes the broken bullets on the CentOS installation instructions.
Preview
http://<IP_ADDRESS>/versions/centos_setup/install/centos_setup.html
@frankfliu

Currently the preview here on github looks good. The numbers increment, but the html output just has 1, 1, 1, 1, ...
😡

Added "Step x" to each since the html publish step seemed intent on messing up the numbering no matter what... and I don't want to play those ❄ 🦌 reindeer 🦌 ❄ games right now.
Preview is updated.

@mxnet-label-bot [pr-awaiting-review]

@mxnet-label-bot add [pr-awaiting-review]

@aaronmarkham @kalyc - did you verify it works as expected on CentOS? haven't seen anyone calling this as done.

Nope. Just fixing formatting.

@mxnet-label-bot update [pr-awaiting-merge]


Fix minor bugs and pass in user context when retrieving user's notification channels

Signed-off-by: Ashish Agrawal<EMAIL_ADDRESS>Issue #, if available:
N/A
Description of changes:

Fix Minor bugs

Pass in user context when retrieving user's notification channels
Fix action execution for DocLevel monitors where actions are to run per trigger execution
Fix bug that did not generate all the alerts for monitors with multiple indices in Document Level Monitors
Add Findings ID and document ID to action template
CheckList:
[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #447 (669c9e6) into main (2392be7) will decrease coverage by 0.02%.
The diff coverage is 92.30%.

@@             Coverage Diff              @@
##               main     #447      +/-   ##
============================================
- Coverage     76.74%   76.72%   -0.03%
  Complexity      176      176
============================================
  Files           166      166
  Lines          8360     8372      +12
  Branches       1232     1233       +1
============================================
+ Hits           6416     6423       +7
- Misses         1338     1341       +3
- Partials        606      608       +2

Impacted Files
Coverage Δ

.../opensearch/alerting/DocumentLevelMonitorRunner.kt
81.85% <50.00%> (-0.24%)
:arrow_down:

...rg/opensearch/alerting/BucketLevelMonitorRunner.kt
76.92% <100.00%> (ø)

...in/kotlin/org/opensearch/alerting/MonitorRunner.kt
61.01% <100.00%> (+4.41%)
:arrow_up:

...org/opensearch/alerting/QueryLevelMonitorRunner.kt
79.48% <100.00%> (ø)

...main/kotlin/org/opensearch/alerting/model/Alert.kt
82.97% <100.00%> (+0.14%)
:arrow_up:

.../opensearch/alerting/model/DocumentLevelTrigger.kt
81.08% <100.00%> (+0.52%)
:arrow_up:

...rg/opensearch/alerting/core/model/DocLevelQuery.kt
76.66% <100.00%> (ø)

.../alerting/transport/TransportIndexMonitorAction.kt
68.07% <0.00%> (-3.16%)
:arrow_down:

.../kotlin/org/opensearch/alerting/util/IndexUtils.kt
70.83% <0.00%> (-2.09%)
:arrow_down:

...ain/kotlin/org/opensearch/alerting/AlertService.kt
77.99% <0.00%> (-0.48%)
:arrow_down:

... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2392be7...669c9e6. Read the comment docs.

Looks like a test is broken AlertingBackwardsCompatibilityIT

Looks like a test is broken AlertingBackwardsCompatibilityIT

Looks like there is some flakiness in the tests that will need to be investigated


Add QuickGuide to Sequence Variability

          Add the QuickGuide from [VISS-Draft text for Streamlit App](https://docs.google.com/document/d/1MPa6LWB9_AL6lxkU4QUUeInoF6jx0AWC5vRSlLlGDlE/edit?usp=sharing) to the top of the page.

QuickGuide

Drag and drop the aligned file or Click on the [Browse files] button to choose and upload the aligned sequence file.
Check that the Uploaded sequences display reflects the file chosen.
Optional enter a number between 1 and 99 into the [Enter the maximum sequence variability threshold] box. Not entering a number here will display variability across all positions of the sequence file.
Click on the [Display sequence variability table] button.
Click on the [Download sequence variability table as CSV] button to download the displayed table.
Adjust the maximum sequence variability threshold using steps 3&4 as often as needed.

Originally posted by @misa-winters in https://github.com/uw-ssec/neglected-diagnostics/issues/48#issuecomment-1747838972

Changes are done!


🚀 Feature: Allow users to copy icon names by clicking on the icons

🔖 Feature description
To improve the user experience and save time, I propose adding a feature that allows users to copy the icon names by simply clicking on the icons. When a user clicks on an icon, the icon name should be automatically copied to their clipboard, allowing them to easily paste it wherever they need it.
This feature would not only save time for users but also reduce the likelihood of errors when manually copying icon names. It would make the Pink application more user-friendly and efficient.
🎤 Pitch
This feature should be implemented because it would make it much easier and faster for users to work with the Pink application's icons. Currently, users have to manually copy the icon names to use them in code or other applications, which can be a tedious and error-prone process. By allowing users to simply click on an icon to copy its name, we can greatly streamline this workflow and save users time and effort.
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Hi,
Allow me to talk to my team and get back

Hi,
Allow me to talk to my team and get back

💯💯💯

@ashrafchowdury Thanks for the issue, love the idea! I assigned it to you 😄

Hi @ashrafchowdury any update on this? Let us know if you need any help!

Hi @ashrafchowdury any update on this? Let us know if you need any help!

I have submitted a PR request.

Closing as this has been solved, with the help of @ashrafchowdury. Thanks!


chore(starknet_api): fix no item named warnings (#2973)

cherry-pick of #2973 into main-v0.13.4.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#3010  👈 (View in Graphite)
#3009
main

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

Already covered.


Pass UnwindInfo in BootInfo

It will be nice to pass UnwindInfo in BootInfo so that we can load the kernel ELF in the kernel to do stack unwinding.
#[derive(Debug, Copy, Clone)]
#[repr(C)]
pub struct UnwindInfo {
    /// The base address of the kernel. The kernel base is required
    /// for stack unwinding during kernel panics.
    pub kernel_base: VirtAddr,
    /// The size of the kernel, required to calculate the end of the
    /// kernel base.
    pub kernel_size: usize,

    pub stack_top: VirtAddr,
    pub stack_size: usize
}

Sounds reasonable to me! While you can already find out the kernel start address and size through a linker script, I agree that a boot info field would be easier. For stack top and size there is currently no workaround except for setting these to fixed values in the bootloader config.

@phil-opp Couldn't you just pass that after finding the address in the bootloader? I'm confused about the problem.

There is no problem here, we just need to do it. Happy to merge a PR for this!

Some adjustments to the code from the OP that I would make:
#[derive(Debug, Copy, Clone)]
#[repr(C)]
pub struct KernelInfo {
    pub kernel_base: u64
    pub kernel_size: u64,
    pub stack_top: u64,
    pub stack_size: u64,
}

Basically:

Name the struct KernelInfo instead of UnwindInfo since it isn't directly related to unwinding and might have other use cases too.
Don't use the VirtAddr type of the x86_64 crate to keep the BootInfo stable (otherwise updating the x86_64 version would be a breaking change).
Don't use platform dependent size types such as usize. Use u64 instead. (This might be overcautious, but it makes sure that the BootInfo always has the same size independent of the target platform.)


How to transfer data between POD?

It's said that "you’re free to move it at any time". If one POD is stopping its service, how can user transfer data between the previous POD and next POD easily?
Or make a backup.
Another question is: If you change a POD, will you change your WebID?

Seems by entering "External WebID:" when register, you can move your data.

@linonetwo Interesting question, and actually External WebID is not the full solution. That option is useful for when you have an existing WebID you want to reuse, but not for moving data.
So let me reopen your issue.

This is a good one for the FAQ.
There's three aspects

moving the data (this can be done technically)
moving the internal links (this can be done technically using relative URIs)
moving the external inbound links, that is a more difficult process, because in a social context it is outside of your control

There have been many detailed discussion of this in the Social Web community, which I think are all applicable.
eg:
https://github.com/tootsuite/mastodon/issues/8465
https://github.com/swicg/general/issues/1
https://github.com/swicg/general/issues/4
I wrote a pod-copy tool at one point, as did a student.
There are various attacks and failure modes to consider.
<30 pages of discussion elided>
Bottom line, simplest approach that tackles nearly all the issues, I think: one should generally have one or more backup/failover pods. Your primary pod data should be mirrored to the backup(s) (which might be a feature of the primary, the backups, or just a client).  If you don't thoroughly own the domain your using, your pod should be informing all visors about your backup domain(s) to use in case there's a problem.  Hopefully the being-informed can be at a machine level so humans don't generally have to worry about it.  One probably wants some crypto in there, too, to narrow the options for attacking by taking over via a backup.  If the domain failover works well enough, one could just use IP addresses, and live DNS-free internally.

I wrote a pod-copy tool at one point, as did a student

@sandhawke nice to see you here.  Is that code kicking around some place?


Use input variables in run-make action

Fixing typo in naming variables in run-make action. When passing secrets as input arguments GitHub will still not print them. Tested here

Some weird merge conflicts. Will create another PR


flirt: 0.2 -> 0.2.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/flirt/versions.
meta.description for flirt is: FiLe InteRacT, the file interaction tool for your command line
meta.homepage for flirt is: https://git.sr.ht/~hadronized/flirt
Updates performed

Rust version update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.2.1 with grep in /nix/store/1ab56ps7fmkzh1slrkv8qmlr4bii7j5w-flirt-0.2.1
found 0.2.1 in filename of file in /nix/store/1ab56ps7fmkzh1slrkv8qmlr4bii7j5w-flirt-0.2.1

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

flirt

Instructions to test this update (click to expand)

Either download from the cache:
nix-store -r /nix/store/1ab56ps7fmkzh1slrkv8qmlr4bii7j5w-flirt-0.2.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nixpkgs-update-cache.nix-community.org/' \
  --option trusted-public-keys '
  nixpkgs-update-cache.nix-community.org-1:U8d6wiQecHUPJFSqHN9GSSmNkmdiFW7GW7WNAnHW0SM=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The nixpkgs-update cache is only trusted for this store-path realization.)
For the cached download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A flirt https://github.com/r-ryantm/nixpkgs/archive/35cb8a2c18ffe0a82530776ad643da218365efd6.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/35cb8a2c18ffe0a82530776ad643da218365efd6#flirt

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/1ab56ps7fmkzh1slrkv8qmlr4bii7j5w-flirt-0.2.1
ls -la /nix/store/1ab56ps7fmkzh1slrkv8qmlr4bii7j5w-flirt-0.2.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review

x86_64-linux

:white_check_mark: 1 package built:

flirt

Maintainer pings
cc @adda0 for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge


Help operator: support multiple charts per operator

Feature Request
Is your feature request related to a problem? Please describe.
I am new to the operator SDK, but I was reading user documentation for Helm operator and it seems to me that it is just about creating one operator per Helm chart. I understand that this aligns with what the operator SDK is about, but in practice, wouldn't it make more sense to have only one operator which knows how to manage multiple charts? I mean, this is then proper separation of concerns. Helm charts describe apps, operator manages life of instances of any of those apps, but it is independent from charts and apps themselves.
Describe the solution you'd like
So I am not completely sure if this is aligned with operator SDK goals, but I think it would be cool to have support for creating a meta-helm operator, where you would configure not one chart, but for example configure the repository of charts and the operator would then allow creating instances of any app from that repository. One would add CRD per app instance which the operator would pick up an create an instance of the app. If CRD is changed, operator updates the app to match the new CRD state. And that for any chart from the repository.

@mitar The helm operator does support reconciling multiple CRDs and charts. To do that, simply add another watch in watches.yaml, add the associated chart to ./helm-charts/, and update ./deploy/role.yaml to give your operator permissions to manage the new CRD and chart resources.
However, we don't recommend creating a single helm operator that can manage many unrelated charts because there are security concerns with granting a single process permission to manage ALL the resources of ALL the charts it can deploy. This was the primary reason that the Helm project transitioned away from Tiller in Helm 3.

I see. Thank you.


xml.etree.ElementTree.ParseError in GET /b/large/Q2LR9YCV.png

Error in ClashLeaders
xml.etree.ElementTree.ParseError in GET /b/large/Q2LR9YCV.png
not well-formed (invalid token): line 32, column 14
View on Bugsnag
Stacktrace
clashleaders/views/badge.py:30 - clan_badge_png

View full stacktrace
Created automatically via Bugsnag

An error linked to this issue has been marked as fixed in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/8U908P2G.png

An error linked to this issue has been reopened in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/Y8RURR8J.png

An error linked to this issue has been marked as fixed in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/Y9CJU000.png

An error linked to this issue has been marked as fixed in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/8PUCQV0C.png

An error linked to this issue has been reopened in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/292QU2YR.png

An error linked to this issue has been reopened in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/Q8U9CJVV.png

An error linked to this issue has been marked as fixed in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/CUL8RCGV.png

An error linked to this issue has been reopened in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/UPJLYVQQ.png

An error linked to this issue has been marked as fixed in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/RP0229G0.png

An error linked to this issue has been marked as fixed in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/P0UQ0LP.png

An error linked to this issue has been reopened in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/P99RGCP9.png

An error linked to this issue has been marked as fixed in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/Y8RURR8J.png

An error linked to this issue has been reopened in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/PCG9G0L2.png

An error linked to this issue has been marked as fixed in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/G8GVGG.png

An error linked to this issue has been reopened in Bugsnag
xml.etree.ElementTree.ParseError in GET /b/large/8LRJJY2J.png


passing args to git when git is aliased to git-branchless wrap

Description of the bug
git supports a number of flags passed directly to it (ie not flags passed to a subcommand), but when git is aliased to git-branchless wrap, these appear to be swallowed by git-branchless, which then chokes on them. 😄
For example, none of the following commands succeed:
❯ git --version
❯ git --help
❯ git --no-pager branch --format='%(refname:short)'
❯ git --no-pager diff main

Using git -- <args...> is a workaround. All of these succeed:
❯ git -- --version
❯ git -- --help
❯ git -- --no-pager branch --format='%(refname:short)'
❯ git -- --no-pager diff main

Though the workaround is pretty easy, it still feels pretty counterintuitive and surprising for valid, preexisting git scripts to stop working after setting up the recommended alias. I don't know if it's relevant, but I'm using fish shell (version 3.3.1).
Expected behavior
❯ git --version
git version 2.32.0

❯ git --help
usage: git ...
...

❯ git --no-pager branch --format='%(refname:short)'
... list of branches ...

❯ git --no-pager diff main
... a diff ...

Actual behavior
All of the above commands something like
❯ git --help
git-branchless-wrap
Wrap a Git command inside a branchless transaction

USAGE:
    git-branchless wrap [OPTIONS] <SUBCOMMAND>

OPTIONS:
        --git-executable <GIT_EXECUTABLE>    The `git` executable to invoke
    -h, --help                               Print help information

Version of git-branchless
git-branchless 0.3.9
Version of git
git version 2.32.0
Version of rustc
rustc 1.58.1 (db9d1b20b 2022-01-20)
Automated bug report
No response

Aaaaand, nevermind! The workaround is to use alias git='git-branchless wrap --' (ie add the -- into the alias)

Thanks for raising. I've updated the instructions at https://github.com/arxanas/git-branchless/wiki/Installation#installation to include the -- in the alias. (Actually, this had been bugging me for a while, and I didn't think of that!)


fix: specification of metallb ip address pool configuration

Signed-off-by: qinyer<EMAIL_ADDRESS>
What type of PR is this?

/kind bug
What this PR does / why we need it:
In MetalLB, the IP address pool supports only CIDR prefixes and IP address ranges. So we need to limit user input.
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:

Does this PR introduced a user-facing change?

Additional documentation, usage docs, etc.:

Codecov Report

Merging #518 (60c5b47) into master (da345b6) will increase coverage by 0.00%.
The diff coverage is 0.00%.

@@           Coverage Diff           @@
##           master     #518   +/-   ##
=======================================
  Coverage   14.08%   14.08%
=======================================
  Files         124      124
  Lines       18086    18085    -1
=======================================
  Hits         2548     2548
+ Misses      15255    15254    -1
  Partials      283      283

Impacted Files
Coverage Δ

pkg/component/metallb/metallb.go
4.21% <0.00%> (+0.01%)
:arrow_up:

/lgtm
/approve


Where is Session_cookie_driver.php?

I have just upgraded my codeigniter base to 3.0rc2 and my login function refused to work. I found this in PHP error log:
ERROR - 2015-03-10 09:09:32 --> Session: Configured driver 'cookie' was not found. Aborting.

I checked the directory system/libraries/Session/drivers and didn't see the Session_cookie_driver.php which is causing the problem I guess.
You guys have any suggestion for me? Thanks a lot.

This is a support issue and should be raised on the forum, please.
When you upgraded, did you read the upgrade guide?
http://www.codeigniter.com/userguide3/installation/upgrade_300.html
See Step 6!

Hi @jim-parry, I upgraded from Codeigniter 3 to 3.0rc2 (not from 2.0). I did read the upgrade guide but seems like it have changed recently.
Anyway, thanks for your information.

@trungdq88 My point was that the cookie driver is no longer being used. That was one of the big changes going to the release candidate, when the session changes were merged :-/

@jim-parry can you tell my why did they remove cookie as a storage driver? Is there a discussion or document explain about this? Thanks.

Short story: Basically, not secure!
Long story: https://github.com/bcit-ci/CodeIgniter/issues/3073

Thanks a lot.

@trungdq88 I've reimpleneted it on top of CI3 : https://github.com/kakysha/ci/tree/session-cookie


Add a progress bar / completion notification / or spinner - once a image has successfully been uploaded to IPFS.

Quick UI fix - make sure the user knows where they're at when uploading images using the embedded IPFS service or Pinata.

@lambdahands - would this be relevant for video uploads or does it all kind of just get bundled at the end when the asset is being created for the sake of the UI

Closing - automated preview enables users to see the artifact when they first bring it into the interface.


Download videos that are newer than a specific upload date

I am interested in downloading from a YouTube Playlist. The owner of this playlist adds new videos to the same playlist from time to time.
At this time, it is not possible to put in the YouTube playlist URL in the search box and only download new videos since "a specific date".
Would be nice to have this feature.

If you use the "skip existing downloads" option, it will skip videos you have already downloaded. Otherwise, this feature will probably not be implemented, sorry.


either: implement Bifunctor

Closes #98
You're likely the best person to review this, @scott-christopher. :)

This LGTM. :mushroom:

This has changed as a result of #305 being merged. I'd appreciate a review of the laws. :)


Changed dependencies to optionalDependencies

js-yaml could be dependency free for my use case, simple yaml and no CLI use, so I updated it to so that npm i js-yaml --no-optional can be leverage.

I don't understand how this change can be useful. Could you explain?

If you do npm install js-yaml you get optionalDependencies installed. If I do npm install js-yaml --no-optional I get no optionalDependencies installed. I'm using js-yaml to parse a yaml file in Buildkite and need to install it before I can run the script. If I use the latter the reduction in dependencies means the script can start quicker as npm is extra slow on CI and the bottleneck for rather than the code.

I tend to reject, because do not agree with provided arguments about speed. Dependencies are not so big and possible profit was not measured. From the other side, there is a possibility to break something by change dependency key with other one. I don't like risky experiments for "nothing".

There is literally no risk if you look at how optionalDependencies works. The only risk would be if npm did not work correctly. I'll time it for you when I get a chance for the exact difference locally.

Many programs read package.json directly. They can miss check for optionalDependencies. And as i said - profit is not evident and was not measured. I think, if you care so much about install speed, it worth to look at yarn.

My timing shows ~2.8s npm i with it having at point jumped even higher up to 9.8s and 3.8s in two timings and ~1.8s with --no-optional. The assertion that programs read package.json is true, but you've created a hypothetical scenario for a hypothetical problem that this would cause. You've lamented that I didn't add measurements, but you're doing the same exact thing by creating this hypothetical problem. Lastly, yarn is not production ready for many people and cannot be used by myself due to a bug with handling git+ssh, which would require changing packages, their dependencies, and those dependencies' dependencies.

You've lamented that I didn't add measurements, but you're doing the same exact thing by creating this hypothetical problem

The difference is that you do not respond with your reputation for such problems :) . And i already had issues, related to uncareful package.json change. I can't say if problem really happens, but my experience says risk is too high for package with thousands of dependents.
I could schedule such request for 4.0.0 (far future), but need better understanding of this option in real world:

which well known (popular) packages use it
does npm have related issues in tracker (there were something suspicious)


Look in to distroless / bezel

Might be worth looking in to this - https://github.com/GoogleCloudPlatform/distroless

I'm going to close this off as something we probably won't get to or want to maintain in addition to our other images.
An alpine image is already small enough for most people. Anyone who is concerned enough about that or the security surface of running in an alpine distro can easily build their own image.


Quickget dependancy on bash 4 due to variable lower case conversion ",,"

quickget line 564:
OS="${1,,}"
and line 572:
RELEASE="${2,,}"
quickemu line 172:173
boot=${boot,,}   guest_os=${guest_os,,}
quickemu line 881:
PUBLIC_TAG="Public-${USER,,}"
Forces a dependancy on bash 4 for this to work.
I'm working on getting quickget running on OSX itself as the host OS and by default Catalina runs bash 3.x -  if you drop the ,, then quickget works on bash on OSX 10.15.7 natively - good job!

bash 4.0 has been available since 2009. Sorry, but I am intentionally making use of bash 4+ features. I'll clearly document the bash 4 requirement :+1:


soundkeeper exits sometimes

It seems that sometimes, usually after one day (probably because I close the tv and av) the soundkeeper.exe exists.
I wanted to look in the logs, but it seems you only write to stdoutput so I cannot access that.
Can you add ability to write to a log file?
thanks.

Oh, sorry, I didn't monitor the issues page. Most of communication related to this project happens on the project home page.
I updated the debug version that allows to redirect stdout into a file now. Run it like this from cmd:
soundkeeper.exe > soundkeeper.log

But it is suspicious that it exits itself. Maybe it crashes somehow? Please check in the Event Viewer > Windows Logs > Application, look for events with Event Type ID = 1000. If there is something related to the Sound Keeper, it would be really helpful to understand where exactly it crashes. Also, the system should create a crash dump in this case, check here how to collect it.

@ran-haim Maybe it was actually freezing and not terminating itself? A potential bug that could cause a deadlock was fixed in the latest v1.3.1. Please check if it helps you.

Most probably it was actually stopping to work because of the deadlock, but the process was still running. So I guess that the issue is fixed in the latest v1.3.1, so I close this ticket.


"AppGet update failed. Sequence contains more than one matching element"

Today I updated all my installs from AppGet, and I started getting message:
AppGet update failed. Sequence contains more than one matching element

I have the latest release.
Thank you for AppGet. I like it very much. It suits my use-case much better than chocolatey or scoop.

I can confirm that I'm having the same issue. My appget version is very slightly behind that of the OP. My system is a very fresh install of Windows 10 that is fully patched.
PS C:\> systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.17134 N/A Build 17134
PS C:\> appget --version
AppGet <IP_ADDRESS>
AppGet update failed. Sequence contains more than one matching element
PS C:\>

This is the same version  of appget that I deployed packages with just a few days ago. So, I don't think this is an issue with the appget binary itself. More probably, this is an issue with an Internet resource that appget points to. That said, the application shouldn't be touching the network when simply invoking --version.
Maybe there is something wrong with the manifests repository?

The problem is here:
https://github.com/appget/appget/blob/3efe9139ed1009c5d7d4df6a564f4155115bd024/src/AppGet/Github/Releases/GitHubReleaseClient.cs#L35
Apparently appget checks the latest version each time you run it. Because the latest release happens to contain a whole bunch of files (including 2 extra executables) rather than a single installer exe, the linked code goes crazy and triggers that error.
Of course, that latest release isn't correct but the code should be made to fail gracefully.

Apparently appget checks the latest version each time you run it… the code should be made to fail gracefully.

In the event of some weird conflict the application should continue to work normally, give or take a warning/error related to the conflict at hand.
Checking for updates should not occur every time the appget command is invoked. Ideally, appget should have it's own entry in the repository and only check for updates at the same time as other packages under its control. This is standard behavior for other package managers, including the likes of yum and apt-get.

you guys are fast!

What happened? the deploy process pushed too many files to GitHub releases which confused/broke the client.
Is it fixed? yeah, I removed all the extra files. all is well again.
Why not handle this better? well, an update failure doesn't affect the functionality of the app. it just logs the error and continues as usual, but it looks like there are some messaging improvements to be had :)
Why check for update every time? I know, we are overdoing it. it's a leftover from when appget wasn't as stable as it is now, and we wanted to push fixes to testers asap. we'll take a look at improving that.

Thank you so much for fixing it, it works perfectly now.
I am so grateful for AppGet. Thank you.


Add stats for new studies to be released in prod106

Includes updates to idr0124 and idr0115
Still waiting for idr0128, idr0129 and idr0130 before updating releases.tsv /cc @pwalczysko

Failing checks ?

The Jekyll Docker images seemed to have been bumped to Ruby 3.1 while the pages tag is still as Jekyll 3.9.0 - it looks like this causes issue when using CSV data files -
/usr/local/lib/ruby/3.1.0/csv.rb:1668:in `read': wrong number of arguments (given 2, expected 1) (ArgumentError)
	from /usr/gem/gems/jekyll-3.9.0/lib/jekyll/readers/data_reader.rb:62:in `read_data_file'
	from /usr/gem/gems/jekyll-3.9.0/lib/jekyll/readers/data_reader.rb:46:in `block in read_data_to'
	from /usr/gem/gems/jekyll-3.9.0/lib/jekyll/readers/data_reader.rb:38:in `each'
	from /usr/gem/gems/jekyll-3.9.0/lib/jekyll/readers/data_reader.rb:38:in `read_data_to'
	from /usr/gem/gems/jekyll-3.9.0/lib/jekyll/readers/data_reader.rb:20:in `read'
	from /usr/gem/gems/jekyll-3.9.0/lib/jekyll/reader.rb:18:in `read'
	from /usr/gem/gems/jekyll-3.9.0/lib/jekyll/site.rb:164:in `read'
	from /usr/gem/gems/jekyll-3.9.0/lib/jekyll/site.rb:69:in `process'
	from /usr/gem/gems/jekyll-3.9.0/lib/jekyll/command.rb:28:in `process_site'
	from /usr/gem/gems/jekyll-3.9.0/lib/jekyll/commands/build.rb:65:in `build'
	from /usr/gem/gems/jekyll-3.9.0/lib/jekyll/commands/build.rb:36:in `process'
	from /usr/gem/gems/jekyll-3.9.0/lib/jekyll/commands/build.rb:18:in `block (2 levels) in init_with_program'
	from /usr/gem/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
jekyll 3.9.0 | Error:  wrong number of arguments (given 2, expected 1)
	from /usr/gem/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
	from /usr/gem/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute'
	from /usr/gem/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go'
	from /usr/gem/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program'
	from /usr/gem/gems/jekyll-3.9.0/exe/jekyll:15:in `<top (required)>'
	from /usr/gem/bin/jekyll:25:in `load'
	from /usr/gem/bin/jekyll:25:in `<main>'
```

This is similar to https://github.com/aarongustafson/jekyll-webmention_io/issues/147

Using `jekyll/builder:latest` seems to fix the issue

@sbesson PR against youir branch here opened https://github.com/sbesson/idr.openmicroscopy.org/pull/2

in https://github.com/sbesson/idr.openmicroscopy.org/pull/2/commits/53ce2cd9974a741f855e9f44e5c1160c476081da I have also added the idr0135 for @dominikl . I have left out the 115 as the same line is already added here by @sbesson

Thanks Petr. Didn’t realise Seb already did the stats for idr0115. Looks good to me 👍


ruby: 2.7.4 -> 2.7.5, 3.0.2 -> 3.0.3

Motivation for this change
Fixes 3 CVE's:

https://www.ruby-lang.org/en/news/2021/11/15/date-parsing-method-regexp-dos-cve-2021-41817/
https://www.ruby-lang.org/en/news/2021/11/24/buffer-overrun-in-cgi-escape_html-cve-2021-41816/
https://www.ruby-lang.org/en/news/2021/11/24/cookie-prefix-spoofing-in-cgi-cookie-parse-cve-2021-41819/

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

This need to go to staging.

The previous update also went straight to master: #129586

nixpkgs-review ... --package-regex '.*ruby.*' reveals no new failures on macos 10.15

Is there anything we can do to pull this in? I'd love to get our rubies upgraded to 3.0.3.

these updates going straight to master are really disruptive, because it causes rebuilds on master, and staging-next, and the release channel.
Please use staging next time

The previous update also went straight to master: #129586

just because it was done before, doesn't mean it was right

essentially, part of the reason why it takes so long for staging to get into master, is because of excessive rebuilds being piled on.


[Networking] Introducing Threads in Java Socket Programming

Topic Suggestion
Proposal Submission
Proposed title of article
Introducing Threads in Java Socket Programming
Proposed article introduction
We don't want just one client to connect to the server at a time, but many clients to connect at the same time. We want our architecture to be able to support multiple clients at once. As a result, threads must be used on the server side so that whenever a client request comes in, a separate thread can be assigned to handle each request.
Assume that two requests arrive at the server. With our basic server-client program, the request that arrives even a nanosecond first will be able to connect to the server, while the other request will be rejected because no mechanism for handling multiple requests concurrently is provided. Threading is used in network programming to solve this problem.
Key takeaways

Why use threads in-network programming
Server-Side Programming
Client-Side Programming

References
N/A
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

Hello, @WanjaMIKE
Please look at this topic. It's been 10 days already.
Thanks.

@ahmadmardeni1
Could you please look at this issue whenever you are free?
Thanks

Hey @SteveadeNick
Sounds like a helpful topic - let's please be sure it adds value beyond what is in any official docs and/or what is covered in other blog sites. (the articles should go beyond a basic explanation - and it is always best to reference any EngEd article and build upon it).
Please be attentive to grammar/readability and make sure that you put your article through a thorough editing review prior to submitting it for final approval. (There are some great free tools that we reference in EngEd resources.)
ANY ARTICLE SUBMITTED WITH GLARING ERRORS WILL BE IMMEDIATELY CLOSED.
Please be sure to double-check that it does not overlap with any existing EngEd articles, articles on other blog sites, or any incoming EngEd topic suggestions (if you haven't already) to avoid any potential article closure, please reference any relevant EngEd articles in yours. - Approved


[REEF-590] Remove org.apache.reef.javabridge.generic.LaunchHeadless

JIRA:
REEF-590
Pull request:
This closes #

This looks good. I'll test and merge.