Epoll: Avoid modifying EPOLLIN interest when in ET mode

Motivation
An inbound analog of #9347. This is only applicable when autoRead is turned off. AFAIU it shouldn't be necessary to toggle the EPOLLIN flag via successive calls to epoll_ctl between reads.
Modifications
Don't clear EPOLLIN flag when in ET mode with autoRead == false. Don't process EPOLLIN events when there is no read pending, just set the maybeMoreDataToRead flag.
Result
Fewer syscalls when using epoll transport without autoRead. I have not done any performance tests but expect the saving might be significant in cases where read() isn't often called in channelRead(...) or
channelReadComplete(...) - i.e. two syscalls per read.

cc @ninja-

@netty-bot test this please

@njhill yeah, looks like a good change for my main app. Looking forward to it :P

Pushed another commit with small adjustments - noticed that the flags field could have been read from outside the event loop.

@netty-bot test this please

Thanks @normanmaurer, I'm now even more curious what your thoughts are about https://github.com/netty/netty/issues/9349 :)

@netty-bot test this please

Pushed one more tiny refinement (hopefully last!), sorry for the churn.

@netty-bot test this please

@njhill @carl-mastrangelo after thinking a bit more about this I am not sure if this is really a good idea.
The problem is that this may result in a lot of wakeups even if we are not interested in data (if I am not wrong). Each time new data is received for a connection will have us wakeup just to do nothing. This sounds like it may be very bad in some setups, especially if you have huge receive buffers. Or I am missing anything ?

This of course is only bad if the user stops reading for some extended period of time

@normanmaurer My recollection is that epoll doesn't re notify you until you consume all the data on the FD (which I could be wrong about).

this is hinted by the man page in the Q&A section 9: http://man7.org/linux/man-pages/man7/epoll.7.html

@carl-mastrangelo if this is the case ( I thought it will also wakeup for new data, just not until new arrived) we have a problem here https://github.com/netty/netty/blob/4.1/transport-native-epoll/src/main/java/io/netty/channel/epoll/EpollEventLoop.java#L389 as we never read the eventfd value and so would not get another wakup, right ?

@carl-mastrangelo @njhill at least for eventfd it seems my understanding holds.
    public void testET() throws Throwable {
        final FileDescriptor epoll = Native.newEpollCreate();
        final FileDescriptor eventFd = Native.newEventFd();
        final FileDescriptor timerFd = Native.newTimerFd();
        final EpollEventArray array = new EpollEventArray(1024);
        try {
            Native.epollCtlAdd(epoll.intValue(), eventFd.intValue(), Native.EPOLLIN | Native.EPOLLET);
            final AtomicReference<Throwable> causeRef = new AtomicReference<Throwable>();
            final AtomicInteger integer = new AtomicInteger();
            final Thread t = new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        for (int i = 0; i < 2; i++) {
                            int ready = Native.epollWait(epoll, array, timerFd, -1, -1);
                            assertEquals(1, ready);
                            assertEquals(eventFd.intValue(), array.fd(0));
                            integer.incrementAndGet();
                        }
                    } catch (IOException e) {
                        causeRef.set(e);
                    }
                }
            });
            t.start();
            Native.eventFdWrite(eventFd.intValue(), 1);
            while (integer.get() != 1) {
                Thread.sleep(100);
            }
            // Ensure there is no other wakeup
            Thread.sleep(1000);
            assertEquals(1, integer.get());
            Native.eventFdWrite(eventFd.intValue(), 1);
            t.join();
            Throwable cause = causeRef.get();
            if (cause != null) {
                throw cause;
            }
            assertEquals(2, integer.get());
        } finally {
            array.free();
            epoll.close();
            eventFd.close();
            timerFd.close();
        }
    }

For sockets it may be different ?

@normanmaurer I tried too, and noticed the same thing.   I think you are right, this would cause too much churn.
However, I think reverting the code in clearEpollIn0() might make this work.  As long as the unsafe remembers if there is data, and the channel is not in auto read mode, I think the fd can remove its interest in EPOLLIN.

@carl-mastrangelo i will also retry my test with a socket fd to see if there is any difference

@normanmaurer you make a good point :) I had assumed the same as @carl-mastrangelo but after more research it's funny how confusing/misleading and often contradictory the various explanations are on this particular aspect of the behaviour (including the manpages). And it sounds possible that it differs between fd types and/or between the in and out cases. So I agree a socket fd test would be the best next step (hoping that eventfd is special...), I will aim to try too if you haven't already by the time I wake up!
If it turns out to be the case for sockets too then it probably rules out the hoped-for simplification of eliminating all epoll_ctl calls, but I think some could still be avoided - specifically not setting EPOLLIN where it's done currently and instead waiting until the processing is complete, before calling epoll_wait again ... i.e. there's no point in toggling from unset->set->unset while the EL is still active.

I realized the change wasn't even behaving as intended due to an incorrectly inverted check, tests are still fine with that fixed (pushed update), but @normanmaurer it does seem that you're right re new data constituting an edge in the socket case too. I will try to rework it per prior comment.

@njhill let me know once I should have a look again.

@normanmaurer see #9397. We could probably close this one.

Ok lets do it.


Support for avro schema for kafka sink

As mentioned in the docs, "Currently, Kafka sinks only support writing JSON data, with the structure determined by the schema of the data being written."
It will be a really nice and useful feature to support avro schema for kafka sink.  For example, currently in our use case, all data written to and read from kafka are avro-based.

Oh, it seems that it's already supported! I managed to make it work by specifying this parameter 'avro.confluent_schema_registry' = 'true' in the sink definition.


Neorg

This just adds the simple Neorg plugin to vimPlugins

Result of nixpkgs-review pr 128275 at 8ca4f6c8 run on aarch64-linux 1

2 packages built successfully:

spacevim
vimPlugins.vim-clap

2 suggestions:

warning: missing-phase-hooks
buildPhase should probably contain runHook preBuild and runHook postBuild.
Near pkgs/misc/vim-plugins/build-vim-plugin.nix:28:14:
   |
28 |       inherit unpackPhase configurePhase buildPhase addonInfo preInstall postInstall;
   |              ^

warning: missing-phase-hooks
configurePhase should probably contain runHook preConfigure and runHook postConfigure.
Near pkgs/misc/vim-plugins/build-vim-plugin.nix:28:14:
   |
28 |       inherit unpackPhase configurePhase buildPhase addonInfo preInstall postInstall;
   |              ^

Please rename the PR to follow convention. Using your commit initiating neorg is a good PR title.


NoDrink component

About the PR
Added NoDrinkComponent and few change in DrinkSystem
Why / Balance
If you want to make someone drinkless
Media
https://github.com/space-wizards/space-station-14/assets/115770678/a8c4b041-b218-4d39-a060-e7f670a972de

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog
Make sure to take this Changelog template out of the comment block in order for it to show up.
:cl:

add: Component that prevent someone from drinking

remove the CL, this isnt a playerfacing change

remove the CL, this isnt a playerfacing change

Removed

This should be added to the skeleton. At the moment, they cannot drink, but their attempts still remove substances from the vessels.

silly question, but skeles drink milk to heal, right? Wouldnt this impact their ability to heal - if applied to them as-is (that is, removing the ability to drink anything at all)?

silly question, but skeles drink milk to heal, right? Wouldnt this impact their ability to heal - if applied to them as-is (that is, removing the ability to drink anything at all)?

Skeleton can't drink milk, he heals by spilling milk on them

silly question, but skeles drink milk to heal, right? Wouldnt this impact their ability to heal - if applied to them as-is (that is, removing the ability to drink anything at all)?

Skeleton can't drink milk, he heals by spilling milk on them

copy, thanks for answering! 😄


chore: update deps

I will be working on updating all the libp2p pubsub subsystem to async await / async iterators  over the next days. This way, I created this PR updating the dependencies as a first step

Codecov Report

Merging #48 into master will decrease coverage by 0.19%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master      #48     +/-   ##
=========================================
- Coverage   84.07%   83.88%   -0.2%
=========================================
  Files           8        8
  Lines         515      515
=========================================
- Hits          433      432      -1
- Misses         82       83      +1

Impacted Files
Coverage Δ

src/pubsub.js
87.84% <0%> (-0.56%)
:arrow_down:

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 1852ec8...660b054. Read the comment docs.


Ruby version mismatch between tests and ruby_aws_cpi package

AWS CPI package ruby_aws_cpi requires ruby 2.2.4. Tests expect a different version as default and .envrc exports as PROJECT_RUBY_VERSION ruby 2.1.2. Is this expected?

Hi @beyhan , that was a mistake. We're in the process of upgrading to ruby 2.4.2 from https://github.com/bosh-packages/ruby-release


Broken?

if I try using it, it asks to interface with my discord client via the application, yet seemingly the toggle deafen and mute buttons do not work.

Hey, have you followed the instructions on the README.md page and/or followed the video tutorial?
Do other functions work and can confirm that it is actually connected?
Also, when using Deafen, it can get a little desync'd due to Discord automatically changing the state of Mute as well and the button state not updating until the event message for that is received. Try hitting the deafen button again if it is stuck on. It may have missed that event message somehow.

Apolgoies for this! Macro Deck simply needed a restart and I got everything up and running, hence why I quickly closed the issue, apologies and thanks for the quick response!


Untethered Dead Reckoning and odometer use with cellular module integration

I have a custom esp32 board with a neo-m8u and sara u201 cellular module. The goal is to have the cellular module control the neo-m8u GNSS module and its functionalities. The specific functionalities I want to use are;

AssistNow Autonomous
UDR
Odometer
HTTPS client

From the library I can easily configure and use 1 and 4. However I see no explicit mention of how to use 2 and 3 from the library even though the documentation for the GNSS module (neo-m8u) says it has the capability.

Hi, and thanks for posting.  You are correct that (2) and (3) aren't explicitly mentioned in the ubxlib world, it is getting kind of specialist, but hopefully ubxlib gives you the tools you need to "DIY".
Your application would use the functions of the u_gnss_msg.h API, things like uGnssMsgSend(), uGnssMsgReceive(), uGnssMsgReceiveStart() etc. to exchange/read messages with the GNSS device, potentially along with the u_gnss_dec.h API, chiefly pUGnssDecAlloc(), should you find that approach of use.
pUGnssDecAlloc() won't "know" about all of the message types etc., you would need refer to the interface manual for the NEO-M8 as you went in terms of understanding the required UBX message contents, so you don't have to use pUGnssDecAlloc(), only do so if you find it helpful; you can just "manually" decode the UBX message yourself.

Alternatively, if you can think up the API that you might like in ubxlib we would be happy to implement it.

It would be nice if you could implement the odometer and UDR capabilities. I can already thing of a plethora of use-cases.

Now after following the main_loc_gnss_cell.c in the examples folder and adapting it to my use case. I run into errorcode -4 when I call uDeviceOpen. Upon debugging step by step I realize it is uDevicePrivateCellAdd in uDeviceOpen that is causing the error. Here is the configuration settings for the cellular device I am using
static const uDeviceCfg_t device_Cfg = {
    .deviceType = U_DEVICE_TYPE_CELL,
    .deviceCfg = {
        .cfgCell = {
            .moduleType = U_CELL_MODULE_TYPE_SARA_U201,
            .pSimPinCode = NULL,
            .pinEnablePower = -1,
            .pinPwrOn = pinPWROn, // GPIO01 pin of ESP32 chip
            .pinVInt = -1,
            .pinDtrPowerSaving = pinDTR, // GPIO16 pin of ESP32
        },
    },
    .transportType = U_DEVICE_TRANSPORT_TYPE_UART,
    .transportCfg = {
        .cfgUart = {.uart =  U_CFG_APP_CELL_UART, .baudRate = U_CELL_UART_BAUD_RATE, .pinTxd = pinTXD, .pinRxd = pinRXD, .pinCts = -1, .pinRts = -1, .pPrefix = NULL},
    },
};

The code is running as part of my own code written in esp-idf.

Error code -4 is U_ERROR_COMMON_NOT_SUPPORTED.  I think this is likely because you have a pin set there for pinDtrPowerSaving and SARA-U201 does not support DTR power saving; from the AT commands manual, section 20.1.7, see the note for SARA-U2:

Set pinDtrPowerSaving to -1 and you should hopefully get further.
[Ooops, looks like I didn't press send on this]

It would be nice if you could implement the odometer and UDR capabilities. I can already thing of a plethora of use-cases.

Understood: the issue will be testing as we have no way at all to regression test this.  I will think of what we can do.

Error code -4 is U_ERROR_COMMON_NOT_SUPPORTED. I think this is likely because you have a pin set there for pinDtrPowerSaving and SARA-U201 does not support DTR power saving; from the AT commands manual, section 20.1.7, see the note for SARA-U2:

Set pinDtrPowerSaving to -1 and you should hopefully get further.
[Ooops, looks like I didn't press send on this]

Right, that actually worked. But now running into another error code errorCode -257

Very good: following the guidance here you will see from the number that that is a cellular error code U_CELL_ERROR_NOT_CONFIGURED.
Searching the ubxlib code for that it occurs in only two places, both of which are in u_cell_pwr.c, one in uCellPwrOffHard(), which I guess is not what you're not doing, which leaves us with moduleConfigure(); this sets all the static/initialisation things up with the module when it is powered-up or reset; likely one of those AT commands is failing.
Can you paste in here a log of the AT sequence emitted by ubxlib at power-up?

Thanks for that: as part of the power-on sequence the ubxlib code is asking the SARA-U201 module to enable UART power saving, which is what AT+UPSV=1,1300 does, but the SARA-U201 module is unresponsive after that.
How important is power saving in your application?  If it is not particularly important you can define U_CFG_CELL_DISABLE_UART_POWER_SAVING when building ubxlib and ubxlib will not try to switch UART power saving on in the module.
If power saving is important the next thing to do is to put a monitor of some form (e.g. a Saleae probe) on the UART lines (i.e. TXD, RXD, CTS and RTS) to (a) confirm that the module really is unresponsive, rather than something else going wrong and (b) see if something like the state of the CTS output line from the module is somehow preventing the UART of your MCU sending things to it (seems unlikely, since the problem is a "lack of response from the module" problem).

Update: if UART power saving is important to you, I think I've found out what's up.
The SARA-U201 integration manual says "on SARA-U2 modules, when the AT+UPSV=1 command is issued by the DTE, the UART is immediately disabled", i.e. it doesn't, sometimes, even respond with OK, it just stops dead as soon as the command enabling UART power saving arrives.  This also means that the module is immediately in power-saving mode, it doesn't wait for the 6 seconds implied by the value 1300 to expire, which all our other module types do.
I have modified the ubxlib code to handle this little chicane on a preview branch that you can find here:
https://github.com/u-blox/ubxlib/tree/preview_fix_sara_u201_uart_power_saving_rmea
We haven't been testing SARA-U201 with UART power saving enabled so I've modified that to enable it and run the change through our testing; it seems to pass but it would be good if you could confirm this "for real".

Just tested and my module is able to pass the initial power stages. I am able to set my GNSS constellation to a preferred choice to hex number 0x45 and it works. Now I am running into another error when calling uNetworkInterfaceUp. Upon debugging it seems to produce an  errorCode -5 at uDeviceGetInstance(). Below is the full output log.
AT
AT

OK
AT
AT

OK
U_CELL_PWR: powering on, module is already on.
ATE0
ATE0

OK
AT+CMEE=2

OK
AT+UDCONF=1,0

OK
ATI9

23.60,A01.01

OK
AT&C1

OK
AT&D0

OK
AT&K0

OK
AT+UPSV=1,1300

OK
AT
AT
AT
AT
AT+CFUN=0
AT
[7f]s[00][00][02][08][00][00][00][00] [00][00][00][01][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00]AT
AT
AT
AT
AT
AT
AT
AT
U_CELL_PWR: powering on.
U_CELL_PWR: powering on, module is alive.
ATE0
ATE0

OK
AT+CMEE=2

OK
AT+UDCONF=1,0

OK
ATI9

23.60,A01.01

OK
AT&C1

OK
AT&D0

OK
AT&K0

OK
AT+UPSV=1,1300

OK
AT
AT

OK
AT+UGPRF?

+UGPRF: 2,0,""

OK
AT+CFUN=0
?[bd][19][7f][08][02][00][00]@ [80]H$[12][00][04][00][05][00][04][00][04][80]@[80][01][00][10][00]@[00][80][08][00][09][10][10][00][00]@[80][00]H[00]@[00]$[90][00]D[00][09][00][10][82][00][00][00][00][00][00][00][04][00][00][08][00][08][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00]AT
[00][00][00][00][00][00][00]

and this is the network configuration I am using
static const uNetworkCfgGnss_t gnss_Cfg = {
    .type = U_NETWORK_TYPE_GNSS,
    .moduleType = U_GNSS_MODULE_TYPE_M8,
    .devicePinPwr = 23,
    .devicePinDataReady = 24,
};

When you say "just tested", is this using the preview branch?
There's something very strange indeed going on with your setup though: the AT+CFUN=0 command from ubxlib puts the cellular module into a minimum-power state until the application asks it to connect to the cellular network; SARA-U201 should respond with OK.  However, instead you get a string of garbage:
7f]s[00][00][02][08][00][00][00][00] [00][00][00][01][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00]
...and the second time:
?[bd][19][7f][08][02][00][00]@ [80]H$[12][00][04][00][05][00][04][00][04][80]@[80][01][00][10][00]@[00][80][08][00][09][10][10][00][00]@[80][00]H[00]@[00]$[90][00]D[00][09][00][10][82][00][00][00][00][00][00][00][04][00][00][08][00][08][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00]AT [00][00][00][00][00][00][00]
I've absolutely no idea what this is but it looks like the cellular module is resetting: you will see that, after the first case, the log shows:
ATE0
ATE0

This is AT-echo having come back on again (i.e. ubxlib only sent one ATE0, and that out-going command was echoed straight back to it); this can only happen if the cellular module has reset, since AT echo is switched on by default at power-on and the very first thing ubxlib does is switch it off.
There is nothing that ubxlib is doing to cause this: it would be worth you investigating the HW to see what might be upsetting it.

Yes I am using that preview branch. And I do agree that there's something weird going on. Upon running it a second time, this is the output log this time round.
AT
AT
AT
AT
U_CELL_PWR: powering on.
AT
AT
AT
AT
AT
AT
AT

OK
U_CELL_PWR: powering on, module is alive.
ATE0
ATE0

OK
AT+CMEE=2

OK
AT+UDCONF=1,0

OK
ATI9

23.60,A01.01

OK
AT&C1

OK
AT&D0

OK
AT&K0

OK
AT+UPSV=1,1300

OK
AT
AT

OK
AT+UGPRF?

+UGPRF: 2,0,""

OK
AT+CFUN=0

OK
AT+UGPS?

+UGPS: 0

OK
AT+UGPS?

+UGPS: 0

OK
AT+UGPS?

+UGPS: 0

OK
AT+UGPS?

+UGPS: 0

OK
The connected GNSS constellations are: 69 // hex 0x45
AT
AT

OK
AT+CMUX=0,0,,128

OK
ATE0
ATE0

OK
AT+CMEE=2

OK
AT+UPSV?

+UPSV: 1,1300

OK
AT+UPSV=0

OK
U_GNSS: initialising with ENABLE_POWER pin not connected, transport type Virtual Serial.
ATI

SARA-U201-03B-00

OK
AT+UGPS?

+UGPS: 0

OK
AT+UGPIOC=23,3

OK
AT+UGPIOC=24,4

OK
AT+UGIND=0

OK
AT+UGPS?

+UGPS: 0

OK
AT+UGPIOC=23,3

OK
AT+UGPIOC=24,4

OK
AT+UGPS=1,15,127

ERROR
AT+UGPS=1,15,127

ERROR
AT+UGPS=1,15,127

ERROR
AT+UPSV=1,1300

OK
GNSS network did not come up
U_CELL_NET: preparing to register/connect...
AT
AT

OK
AT+CREG=2

OK
AT+CGREG=2

OK
AT+CIMI

I am tempted to think it is more of a hardware issue.

Ah, that's a lot better.  The issue now is the 127 in the AT+UGPS=1,15,127 command: it selects the GNSS systems to be used and, depending on the cellular module and the GNSS module it can behave differently.  ubxlib generally asks for all of them by default and most of our cellular modules will enable as many of the GNSS system as they can, in a best effort kind of way (then you can read back which ones it actually enabled).  However, some of our cellular modules don't, they require you set only ones that the GNSS device supports.
In this case I think that SARA-U201 is doing the latter, so we need to set the 127 to the right number.  I'd suggest for the moment setting it to just 1, which is the GPS system.  Can you try again, compiling ubxlib with the conditional compilation flag U_CELL_LOC_GNSS_SYSTEM_TYPES  set to 0x01?

So I am still getting the same error when I changed to 0x01 and recompiled ubxlib and after doing some digging, it appears sara u201 is not able to maintain gpio23 (my power pin to gnss module) at high voltage. It provides a high and shortly after goes low.

While I try to get a setup similar to yours here, it seems to me that the most likely issue, from your description, is that the cellular module is unable to communicate with the GNSS device over I2C: that would fit with it turning the power to the GNSS device on and then turning it off again when it has failed to communicate.
Do you happen to have anything like a Saleae probe that you could monitor the I2C lines between the cellular module and the GNSS device with, so that we can see what is going on there?

I can confirm that powering up an M8 module attached to a SARA-U201 module works for me here, see AT log below of exampleLocGnssCell() running, so I think the next step would be to monitor the I2C interface between the SARA-U201 and the M8 to find out what is happening there.
2024-07-03 08:51:57 U_CELL_PWR: powering on, module is alive.
2024-07-03 08:51:57 ATE0
2024-07-03 08:51:57 OK
2024-07-03 08:51:57 AT+CMEE=2
2024-07-03 08:51:58 OK
2024-07-03 08:51:58 AT+UDCONF=1,0
2024-07-03 08:51:58 OK
2024-07-03 08:51:58 ATI9
2024-07-03 08:51:58 23.60,A01.06
2024-07-03 08:51:58 OK
2024-07-03 08:51:58 AT&C1
2024-07-03 08:51:58 OK
2024-07-03 08:51:58 AT&D0
2024-07-03 08:51:58 OK
2024-07-03 08:51:58 AT&K0
2024-07-03 08:51:58 OK
2024-07-03 08:51:58 AT+UPSV=1,1300
2024-07-03 08:51:58 OK
2024-07-03 08:51:58 AT
2024-07-03 08:51:58 AT
2024-07-03 08:51:58 OK
2024-07-03 08:51:58 AT+UGPRF?
2024-07-03 08:51:58 +UGPRF: 2,0,""
2024-07-03 08:51:58 OK
2024-07-03 08:51:58 AT+CFUN=0
2024-07-03 08:51:58 +UMWI: 0,1
2024-07-03 08:51:59 +UMWI: 0,2
2024-07-03 08:51:59 +UMWI: 0,3
2024-07-03 08:51:59 +UMWI: 0,4
2024-07-03 08:51:59 OK
2024-07-03 08:51:59 Opened cellular device with return code 0.
2024-07-03 08:51:59 Bringing up GNSS...
2024-07-03 08:51:59 AT+CMUX=0,0,,128
2024-07-03 08:51:59 OK
2024-07-03 08:52:00 ATE0
2024-07-03 08:52:00 OK
2024-07-03 08:52:00 AT+CMEE=2
2024-07-03 08:52:00 OK
2024-07-03 08:52:00 AT+UPSV?
2024-07-03 08:52:00 +UPSV: 1,1300
2024-07-03 08:52:00 OK
2024-07-03 08:52:00 AT+UPSV=0
2024-07-03 08:52:00 OK
2024-07-03 08:52:00 U_GNSS: initialising with ENABLE_POWER pin not connected, transport type Virtual Serial.
2024-07-03 08:52:00 ATI
2024-07-03 08:52:00 SARA-U201-04B-00
2024-07-03 08:52:00 OK
2024-07-03 08:52:00 AT+UGPS?
2024-07-03 08:52:00 +UGPS: 0
2024-07-03 08:52:00 OK
2024-07-03 08:52:00 AT+UGPIOC=23,3
2024-07-03 08:52:00 OK
2024-07-03 08:52:00 AT+UGPIOC=24,4
2024-07-03 08:52:00 OK
2024-07-03 08:52:00 AT+UGIND=0
2024-07-03 08:52:00 OK
2024-07-03 08:52:01 AT+UGPS?
2024-07-03 08:52:01 +UGPS: 0
2024-07-03 08:52:01 OK
2024-07-03 08:52:01 AT+UGPIOC=23,3
2024-07-03 08:52:01 OK
2024-07-03 08:52:01 AT+UGPIOC=24,4
2024-07-03 08:52:01 OK
2024-07-03 08:52:01 AT+UGPS=1,15,127
2024-07-03 08:52:02 OK
2024-07-03 08:52:02 U_GNSS: sent command b5 62 01 07 00 00 08 19.
2024-07-03 08:52:02 U_GNSS: decoded UBX response 0x01 0x07: e8 03 00 00 dd 07 09 01 00 00 01 f0 ff ff ff ff 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 98 bd ff ff ff ff ff ff 00 76 84 df 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 80 a8 12 01 0f 27 00 00 ac 4c 22 00 00 00 00 00 ff 00 00 00 [body 92 byte(s)].
2024-07-03 08:52:02 U_GNSS: sent command b5 62 01 07 00 00 08 19.
2024-07-03 08:52:03 U_GNSS: decoded UBX response 0x01 0x07: d0 07 00 00 dd 07 09 01 00 00 02 f0 ff ff ff ff 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 98 bd ff ff ff ff ff ff 00 76 84 df 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 80 a8 12 01 0f 27 00 00 ac 4c 22 00 00 00 00 00 ff 00 00 00 [body 92 byte(s)].
...

The closest thing I have is an oscilloscope; and taking a look at my circuit, it appears the pullup resistors for the i2c bus on the GNSS side is absent. That is the only reason I can think of at the moment. But I could swear that the datasheet for neo-m8u mentioned something about internal pullups already on said i2c line. Either way I am just going to hand solder some resistors on that line and try again.

I am just going to hand solder some resistors on that line and try again.

Sounds sensible.


Added youtube clone

Description
Please include a summary of the change and which issue is fixed. List any dependencies that are required for this change.
Fixes:  #628
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Documentation Update

Checklist:

[x] My code follows the style guidelines(Clean Code) of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy to understand README.md
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests/screenshots(if any) that prove my fix is effective or that my feature works

@Ayush7614 Please review it.


Bug on godot 3.0.2

Hi i have a bug on godot. Je i launch a script or if i load a latest project.  Godot dans this.
Module/gdscript/gdscript.cpp : 792 ...
Module/gdscript/gdscript.cpp:1856...
Faites loading ressources.
Godot version:

OS/device including version:
Osx sierra
Issue description:

Steps to reproduce:
Minimal reproduction project:

can't say anything about it.
I think you need to attach reproducible project.

We need more details to help you, either detailed steps to reproduce the issue, or a zipped project (you can drag and drop to upload in the GitHub comment) that triggers the bug.

Closing as Not reproducible


Appstudio update test-component-pac-ffbt

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI/test-component-pac-ffbt-on-pull-request has failed.

StatusDurationName

✅ Succeeded
26 seconds
init

✅ Succeeded
27 seconds
clone-repository

✅ Succeeded
1 minute
build-container

✅ Succeeded
42 seconds
inspect-image

✅ Succeeded
38 seconds
deprecated-base-image-check

❌ Failed
1 minute
clamav-scan

🏃 Running
---
clair-scan

✅ Succeeded
33 seconds
sbom-json-check

✅ Succeeded
12 seconds
label-check


Issue with AllowTenantList

Hi,
I'd like to ask about the 'AllowTenantList' control that is detailed on this page.
I'm currently deploying this to several devices as part of a larger OneDrive policy (PLIST converted to a mobileconfig file as the Intune Plist deployment option doesn't allow for the use of  commands).
The AllowTenantList control appears to be the only one not functioning.  I've locked the config down to only the customers tenant ID, however I'm still able to add accounts for any (corporate) account that I have access to and they have ZERO issues synchronizing.  Is there any other controls that need to be used in conjunction with AllowTenantList?  I'm not using the Block Tenant control.
Thanks in advance.

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

ID: 40801de8-cfb0-7f2d-ac91-c7b4b3b8c1f4
Version Independent ID: 8d2445aa-5934-16fb-6b29-81d5b4d4c59e
Content: Deploy and configure the new OneDrive sync app for Mac - OneDrive
Content Source: OneDrive/deploy-and-configure-on-macos.md
Service: one-drive
GitHub Login: @adeejoseph
Microsoft Alias: adjoseph

Thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


assembly benchmark validator added

see #12

biobox verify assembler_benchmark bioboxes/quast --task=default should pass the tests

Thank you for this PR Peter. Could you add a feature to the verification file? This will ensure this is non accidentally broken in future versions.

You could update line 6 so that it is something like:
biobox verify <type> <image> <args>

ok


spaces

@rostovtsev
Hi Ilia!
By editing files, there is always a "Ä" instead of a space.
Is it normal?

additionally...
There is a "a€" when you copy lines...and in some other situations.
I think it is the German translation?!

Hi,
It's encoding issue. Troubleshoot.

Its not so important - sorry for jamming...
I read this..but my webmin Language is

German-UTF-8
my Browser Firefox and Opera shows the same "Ä"

Last option Use language specified by browser? set to Yes in your case - set this option to No. :wink:

I have  tried everything, when i do this, the main menu is in German and the sub menu is in English..

Okay, I have taken a closer look. It seems like a core bug, in my opinion. For now, you can set an option Character-Set für HTML-Seiten to utf-8 to workaround your problem.
@jcameron Jamie, isn't the navigation menu has to be displayed in the user selected language, without doing anything extra? For now, if you select German, navigation menu/sub-menus don't get displayed in German, but only displayed if specified by browser is set to Yes (and language set in browser as well). It's a bug, right?

I noticed this as well, but after I did a full reload of the page in my browser the navigation menu showed up in the correct language.

Jamie, I have checked it twice, and hard reload doesn't seem to help.
It doesn't work if settings are like this:

.. while it does work fine, when settings are like following (and browser language has German set to the top of the list):

Check the content of the sub-menus. The first, has English still, while second, displays German correctly.

Hello!
Yes it is all correct but then there is still the Problem with the "Ä" and the "a€"

thanks @rostovtsev for diving in the Problem. I also had a look at the Problem and think its a core Problem.
same for the extra characters. the german lang files are ok and does not have the extra characters.
my workaround is to use german language with english modul names in menu ...

Kay, my comment here, let's you have German completely, including the menus.

Ilia, yes but last time Iˋve done this I had also the Proble with the strange characters, may be this is fixed now :)

Kay, I have done more testing and I can make German language work, including submenues and having no strange "Ä" or "a€" chars with the following setup.

Example:

You can also go to theme configuration and hit Clear Cache.
Does it work for you this way?

Yes that's it :-) :-)
A little thing is rest.

Thanks to all, good work

@rostovtsev thanks you are great!
The remaining ? may a wrong char in the lang file, I'll have a look

Ok, after some looking into this, I discovered that it's actually a packaging issue that effects German and other European languages when using a UTF-8 charset. I will fix this in the next Webmin release.

The same problem occurs in portuguese languages, where in some places appers an interrogation character on cedil, tilde or acute characters place like in "Webmin settings".


3.0.36 and WP 5.1 - theme activation error

Wordpress 5.1 and Kirki 3.0.36. I can't enable theme if Kirki is not installed and activated. I'm using my own theme, in earlier versions (WP and Kirki) everything was ok.

Please remove this post :)

@BeholdPL could you please elaborate?
How are you including Kirki? Do you check if class_exists( 'Kirki' ) before using it? Are you using a proxy class? What are the errors you see in your log?

@BeholdPL I just accidentally checked this ticket again because I had the tab still open and saw you updated the original post.
What is the error you're getting? Is it that the Kirki class can't be found? From the looks of it you don't check if the class exists before using it, so it's only natural that it fails.
Please enable WP_DEBUG on your site and check what errors you're getting. We can't know what to fix unless we know the error you're getting.
Also it's preferable to post a reply instead of edititthw initial post. I won't get notified of your update unless you reply.

@aristath I think I found the issue - there was plugin conflict. Unfortunately I can't say which exactly plugin was the problem. Probably TGM with other required plugins list. Now I add TGM in other way than I did it before and now Kirki works fine. So I resolved that by accident.

@aristath I think I found the issue - there was plugin conflict. Unfortunately I can't say which exactly plugin was the problem. Probably TGM with other required plugins list. Now I add TGM in other way than I did it before and now Kirki works fine. So I resolved that by accident.

@aristath I think I found the issue - there was plugin conflict. Unfortunately I can't say which exactly plugin was the problem. Probably TGM with other required plugins list. Now I add TGM in other way than I did it before and now Kirki works fine. So I resolved that by accident.

Good to hear.
If you're getting errors like Fatal error: class Kirki not found or something like that, you may want to add something like this at the top of your file where you use Kirki:
if ( ! class_exists( 'Kirki' ) ) {
  return;
}

or even better, wrap your code in this:
if ( class_exists( 'Kirki' ) ) {
  Kirki::add_config(...);
  Kirki::add_field(....);
  ....
}

Thanks. I did it with first way and works :)
BTW: I don't want create separate post and spam so I ask here. Is there any way to use Kirki fields with ACF flexible content? For example, on home page I create several sections with flexible content. There can be eg. 3 sections with the same type but now I want use different backgrounds, headers etc. Is there any chance to use Kirki for that, with individual settings for each flexible content sections separately and only then, when I add flexible content section?


split ConfigField type into specific sub-types

What are the relevant tickets?
closes #278
What's this PR do?
just a typing change, basically creating a MarkdownConfigField, BooleanConfigField, etc so we can record in the typesystem when various properties should be present on the configuration for a field.
ConfigField is redefined to be a union of all these particular types, and some edits are made to introduce the specific types into the codebase where it's possible to be more specific than ConfigField (e.g. we pass field: ObjectConfigField into the ObjectField component).
How should this be manually tested?
Exercise the code related to editing and creating site content (and validation and whatnot) and make sure there are no regressions.

Codecov Report

Merging #280 (264a143) into master (7f0056f) will not change coverage.
The diff coverage is 80.00%.

@@           Coverage Diff           @@
##           master     #280   +/-   ##
=======================================
  Coverage   87.96%   87.96%
=======================================
  Files         122      122
  Lines        3497     3497
  Branches      518      533   +15
=======================================
  Hits         3076     3076
  Misses        383      383
  Partials       38       38

Impacted Files
Coverage Δ

static/js/components/widgets/ObjectField.tsx
100.00% <ø> (ø)

static/js/components/widgets/RelationField.tsx
93.10% <ø> (ø)

static/js/types/websites.ts
100.00% <ø> (ø)

static/js/lib/site_content.ts
88.88% <50.00%> (ø)

static/js/components/forms/validation.ts
100.00% <100.00%> (ø)

static/js/components/widgets/SelectField.tsx
100.00% <100.00%> (ø)

static/js/util/factories/websites.ts
100.00% <100.00%> (ø)

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 7f0056f...264a143. Read the comment docs.


Error: dns service error: unknown

I use mdns embedded in AirSonos (via NodeTunes) and always get the following error.
The developer of AirSonos sent me here.
Error message:
Error: dns service error: unknown
at new Advertisement (/usr/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/mdns/lib/advertisement.js:56:10)
at Object.create [as createAdvertisement] (/usr/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/mdns/lib/advertisement.js:64:10)
at NodeTunes. (/usr/lib/node_modules/airsonos/node_modules/nodetunes/lib/server.js:65:21)
at Server.g (events.js:180:16)
at Server.emit (events.js:92:17)
at net.js:1055:10
at process._tickCallback (node.js:419:13)

I get the unknown error for OSX, I guess I need avahi or bonjour?
events.js:85
throw er; // Unhandled 'error' event
^
Error: dns service error: unknown
at Error (native)
at Advertisement.on_service_registered (/Users/myself/HAP-NodeJS/node_modules/mdns/lib/advertisement.js:42:24)
at SocketWatcher.MDNSService.self.watcher.callback (/Users/myself/HAP-NodeJS/node_modules/mdns/lib/mdns_service.js:18:40)

I hope I'm not highjacking this issue with a unrelated one, but the problem seems very similar and has the same exception. Output:
*** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: dns service error: unknown
    at Error (native)
    at MDNSService.on_resolver_done (/home/bob/projects/node-machinetalk-example/node_modules/machinetalk/node_modules/mdns/lib/resolver_sequence_tasks.js:19:30)
    at SocketWatcher.MDNSService.self.watcher.callback (/home/bob/projects/node-machinetalk-example/node_modules/machinetalk/node_modules/mdns/lib/mdns_service.js:18:40)

The errorCode (of on_resolver_done here) is -65537. I couldn't figure out why this code was sent (any idea?).
This happens while Avahi is running. It seems like it is a timeout from resolving a service on a machine that is non-existant. It might have to do with Avahi having cached a number of services while the machine has been powered off in the meantime. It would explain the semi-randomness I'm seeing.

Sorry, no idea. :-/
As a workaround you could obviously trap all unknown errors and (optionally) start a new browser to refresh your lists.

@agnat Yes, I trap the error, but restarting the browser will again result in an error when it again tries to resolve the incorrect. This even happens when restarting the node process.
That said, reproducing this issue is very flaky (I haven't found a good pattern yet). I'll report back if it happens again.

I see. Sounds nasty. Best of luck though!


feat: add sue contact 🐼

Hello!
Do you want to be my friend? See my new PR!
resolve #1

Your pull request seems good, but must be checked by a human maintainer for the following reason(s):

This contains potentially hazardous tags that need manual review.

Please be patient until a maintainer has time to look over your contribution.
This is an automated response, beep boop.
if you think there is a mistake, contact a maintainer

e1c19c81c6ea78fa2369dba34ef0584da699cafa

This request's code has changed since approval. Re-Judging contents...
Your pull request seems good, but must be checked by a human maintainer for the following reason(s):

This contains potentially hazardous tags that need manual review.

Please be patient until a maintainer has time to look over your contribution.
This is an automated response, beep boop.
if you think there is a mistake, contact a maintainer

039ae4b905d7de52d72363d5931a04be4bea1784


Installing CocoaPods dependencies Error

cd ./app/ios && pod install

Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for `Folly` from `../node_modules/react-native/third-party-podspecs/Folly.podspec`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
Downloading dependencies
Installing CocoaAsyncSocket (7.6.4)
Installing CocoaLibEvent (1.0.0)
Installing DoubleConversion (1.1.6)
Installing FBLazyVector (0.63.2)
Installing FBReactNativeSpec (0.63.2)
Installing Flipper (0.41.5)

[!] Error installing Flipper
[!] /usr/bin/git clone https://github.com/facebook/Sonar.git /var/folders/wm/q8vwfp7j57g6qm9s21lhdq7m0000gp/T/d20200916-37728-1u2ixqh --template= --single-branch --depth 1 --branch v0.41.0

Cloning into '/var/folders/wm/q8vwfp7j57g6qm9s21lhdq7m0000gp/T/d20200916-37728-1u2ixqh'...
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

Description
Environment set up fail after retry installing for more than 20 times, every time I get stuck in Installing Flipper.
IMO,  it seems that the repo name change from Sonar to flipper and the Podfile did not updated synchronous.
React Native version:
npx react-native info

info Fetching system and libraries information...
System:
    OS: macOS 10.15.6
    CPU: (4) x64 Intel(R) Core(TM) i7-5650U CPU @ 2.20GHz
    Memory: 510.25 MB / 8.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 12.18.3 - ~/.nvm/versions/node/v12.18.3/bin/node
    Yarn: Not Found
    npm: 6.14.6 - ~/.nvm/versions/node/v12.18.3/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.9.3 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 13.7, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
    Android SDK: Not Found
  IDEs:
    Android Studio: Not Found
    Xcode: 11.7/11E801a - /usr/bin/xcodebuild
  Languages:
    Java: Not Found
    Python: 3.8.3 - /Users/xhm/opt/anaconda3/bin/python
  npmPackages:
    @react-native-community/cli: Not Found
    react: Not Found
    react-native: Not Found
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.

npx react-native init app
cd ./app/ios && pod install

Expected Results
Just want to see "Hello, World!" in react-native, Why is it so hard？
Snack, code example, screenshot, or link to a repository:

#https://github.com/facebook/flipper/pull/1528

react-native is great! like my lover.
But I feel like I'm losing my lover right now!
累觉不爱！

The environment info your provided listed "Not Found" for all the react native parts. Do you know what version you were targeting? It's possible your issue can be resolved by using a different version (older or newer, depending on what you're targeting now). The PR you linked has been merged, so it will show up in a future version.

The environment info your provided listed "Not Found" for all the react native parts. Do you know what version you were targeting? It's possible your issue can be resolved by using a different version (older or newer, depending on what you're targeting now). The PR you linked has been merged, so it will show up in a future version.

environment:
react: 16.13.1
react-native: 0.63.2

Anyway, the problem has been solved. But i don't know why!
Maybe this problem is caused by the network
Seems Sonar  can redirect to flipper correctly!
Thanks!


common: Extend liblto link fixup function

We need to fix another symlink created by gcc-config, so extend the function that was doing it for some other links and rename it - it's not about only liblto any more.
Needs to be merged together with https://github.com/flatcar/portage-stable/pull/380 and https://github.com/flatcar/coreos-overlay/pull/2266.
CI: http://jenkins.infra.kinvolk.io:8080/job/container/job/sdk/387/cldsv

This looks like something we want to fix upstream. Please tell us about issues like this!

@thesamesam: Eventually I wanted to go upstream with it, but honestly I'm not sure if this is a problem with gcc-config or rather with our quirky setup. Thus weren't sure if there should be a fix for gcc-config, and what it would be. I mean, the immediate thought that I have here is "why don't we make those symlinks relative (so ${CHOST}-cc -> ${CHOST}-gcc, or a more complicated for liblto plugins)?". I can file an issue about it on Gentoo bugzilla.

@thesamesam: Eventually I wanted to go upstream with it, but honestly I'm not sure if this is a problem with gcc-config or rather with our quirky setup. Thus weren't sure if there should be a fix for gcc-config, and what it would be. I mean, the immediate thought that I have here is "why don't we make those symlinks relative (so ${CHOST}-cc -> ${CHOST}-gcc, or a more complicated for liblto plugins)?". I can file an issue about it on Gentoo bugzilla.

No worries. I just don't want downstream folks to be suffering if we've made a mistake or doing something wrong. The existence of https://github.com/gentoo/gentoo/pull/25340 made me suspicious as to whether {gcc,binutils}-config handles other bits wrong too. Would you mind filing a bug on Bugzilla?

Thank you! This sounds like the right idea, but if we can, we should use ln -r (although this assumes GNU coreutils, I think) - otherwise I think it can be technically wrong (if unlikely) if EROOT is positioned somewhere odd?

Welp, there was a typo in the patch above - the usr/ component of the second LIBLTO_PLUGIN should not be there. But otherwise seems to be working for us. About weird EROOT - liblto.so and its symlink are contained entirely withing ${EROOT}/usr, so the relative symlinks never reaches EROOT itself. Anyway, gentoo bug filed - https://bugs.gentoo.org/880977

@pothos : For the record, I haven't backported this PR to other channels, as they don't have the problem that this PR is fixing.


Resolutions not updated after npm ci

Create a Codespace for https://github.com/microsoft/typescript-error-deltas (you might not need a Codespace in practice).

Open up
src/utils/exerciseServer.ts

Notice all resolutions have red squiggles.

Run
npm ci

Notice red squiggles remain.

Type within each import specifier and then undo. Some of the squiggles disappear afterwards. Sometimes @typescript/server-harness never gets picked up.

Here's my tsserver.log

Wild guess but can you change your watch mode?
"typescript.tsserver.watchOptions": {
    "watchFile": "fixedPollingInterval"
},

Interesting… I run into this issue months ago and I expect a tracking issue should already be created by a random person, but … :D

Ok after investigating this one, it seems like this is not related to OS but because we arent watching paths like /workspaces/typescript-error-deltas/node_modules/@types because its too close to root folder.
Eg we have baselines now for what we can watch: https://github.com/microsoft/TypeScript/blob/main/tests/baselines/reference/canWatch/getDirectoryToWatchFailedLookupLocationAtTypesPosix.baseline.md#rootdirforresolution-folderatrootfolder1folder2 and you can see for<EMAIL_ADDRESS>is not watched


Container ?

Description

I would like to run mugen in a container.
Rationale

Because it would be so much faster, and simpler t run. Because it could make think of how to scale up that service (scale up a Kubernetes deployment to 20 pods, and each of the 20 pods processes 2 seconds of the videos, in, the end all is put back together and returned to request issuer)
Alternatives

running conda in a Virtual Machine
Additional context

I will try as soon as possible to propose a Dockerfile in a PR. Do you  @scherroman  have any plan to bring up an OCI Container image definition ?

Hey @Jean-Baptiste-Lasselle I love the idea of a standard Dockerfile for the project if it makes running mugen simpler and more flexible, hadn't thought of this! No stranger to dockerfiles so I'll play around with this next week. Would be happy to review one if you propose it as well.
I've been thinking a lot about how to speed up the creation process, right now it's a kind of run it and forget it for an hour or two type thing, but doesn't necessarily have to be that way. In particular the analysis of each randomly selected clip for scene cuts and text is quite time consuming and inefficient, and a fair number of perfectly good clips are thrown out as false positives. Switching over to pytesseract from tesserocr likely slowed down mugen slightly, as there's now disk writes/reads involved in the text detection, but whereas tesserocr was not working properly cross-platform, pytesseract was and has better maintenance.
This past week I spent some time writing tests for the detection functions, tweaking them to get the best results and researching/testing alternatives. For scene cut detection, TransNetV2 was quite impressive but slower, had some weaknesses with cuts to/from black, and not the smoothest installation. Though a Dockerfile could potentially help with more complex setup steps like that, so something to think about (they actually have a method to run the program from a dockerfile). PySceneDetect was not great. I also found that a larger number of false positives can be reduced by combing moviepy's scene detection (what we currently use) with ffprobe's libav scene detection at a low threshold, which is very fast but inaccurate on it's own. Of course that means running a second scene detection function when a clip with a cut is detected, which again slows down the process slightly.
So there's a balance here, I want to ensure mugen is fast, but first and foremost I want to ensure that that it's easy to install and use, maintainable, working as expected, and not throwing out good scenes. In the immediate term to speed things up i'll be looking to:

Enable performing any necessary analysis up front once per video, which will take some time up front but make creating music videos from the same sources blazingly fast afterwards. There has also been the suggestion in #27 of allowing using a gpu or multiple cores for the selection and analysis, something i'll be keeping in mind in relation to this.

Provide an easy way for users to manually specify exclusion zones for their videos and groups of videos to exclude opening/ending sequences and credits, which would take some extra manual effort up front but improve results and speed up creation overall by allowing us to remove the need for a text detection filter by default. Tesseract's text detection works decently, but there are too many examples of distorted or hand drawn credit sequences that aren't detected, and perfectly good scenes where it falsely detects text causing us to throw them out. Neither does it help in excluding credit-less opening and ending sequences in series and movies. I've thought about training my own credits detection model to help with this, but would be a little too far down the rabbit hole on that one for my liking at this point in time.


Problems with coc-tsserver after update.

Hello,
I have been using this plugin for a long time, and after a long time without updating the plugin, I have changed some stuff on my vim config, and the version of this plugin was updated along, and now I have been having some issues.
There are two issues happening for me, on ts files, an error is show like the print bellow

And on tsx files, no error is show, but no syntax highlight or code completion is working.
I may have been able to make a workaround by adding the following lines on my init.vim file:
au BufNewFile,BufRead *.ts set filetype=javascript
au BufNewFile,BufRead *.tsx set filetype=javascript

but I am not sure if that should be required.
this is the result of my CocInfo:
## versions

vim version: NVIM v0.3.1
node version: v10.17.0
coc.nvim version: 0.0.75-89c0c2380b
term: iTerm.app
platform: darwin

and this is my init.vim: https://github.com/erickzanardo/dotfiles/blob/master/init.vim
Let me know if there is any additional info that could help with this.
Thanks a lot for the work on this plugin!

For tsx files you have to configure the filetype to typescript.tsx or use plugin for tsx files.

Could you point me on how to use that config? I saw that on the Readme but how to make the config is not clear for me.

Well, I guess I find out how to that, leaving this here in the hope that it will help anyone else having the same doubt
autocmd BufNewFile,BufRead *.tsx,*.jsx set filetype=typescript.tsx

@erickzanardo thank you for actually sharing a solution!
I am using this command in my .vimrc file:
au BufNewFile,BufRead *.tsx set filetype=typescript.tsx
I found the command from this answer: https://stackoverflow.com/a/28117335


Class templates

Added class templates for json and task.
Also added some useful wildcards in .gitignore. Should take care of any temporary files created by vim, sublimetext and python.

@psarvesh:
.gitignore basically makes it so that certain types of files do not show up when you do git status. The goal is to do git add . without being worried about having to select particular files.
What are you referring to by "header files"? You can import a class or functions as a module as long as the code is present in the same folder (I am not sure if you can import with a path, may be you can).
I don't see the benefit of using _ before the names of the variables. It just makes it only slightly more difficult to access, not impossible. Lemme know what you think

Actually, adding _ makes it impossible to access unless you know the variables. (Some sort of name mangling)
I meant the header.  Not header file. Like author, returns, info, date  etc.

Oh, no I just made a template that I copy for the headers. As for accessing the _ functions, you can.
class A:
def init(self):
self.__var = 123
def printVar(self):
print self.__var
X = A()
x._A__var = 456
x.printVar() # this gives back 456

Sorry, yes wrong choice of words.
https://docs.python.org/3/tutorial/classes.html#tut-private This is what I was referring to. But it's okay I guess

Yeah, it still keeps it accessible. But I agree. Renaming internal variables with __ is a good idea. I think some of the members of the class taskField might have to be renamed.


Refactor hflip, vflip functions to allow preallocation

For #103

Fixed formatting.

I benchmarked horizontal_flip with the following code variations:

par_par_slicecopy => Row: parallel Iter -- Column: Parallel Iter -- Channel: SliceCopy
par_loop_loop => Row: parallel Iter -- Column: HalfLoop -- Channel: Loop
par_loop_slicecopy => Row: parallel Iter -- Column: HalfLoop -- Channel: SliceCopy
par_seq_slicecopy => Row: parallel Iter -- Column: Normal (Sequential) Iter -- Channel: SliceCopy
kornia => (The first code in this PR with the full loop) Row: parallel Iter -- Column: FullLoop -- Channel: Loop

The general trend is that (4) usually comes out on top, followed closely by (3), and then (2), (5) and (1) at the last. In case of larger images (1024x896), the difference between the (4), (3) and (2) is usually small and inconsistent between runs.
Criterion.rs Line chart (open in new tab if in dark mode):

The average time value from the last 1024x896 run are:
(1)  1.3298 ms
(2)  1.2114 ms
(3)  1.2118 ms
(4)  1.2062 ms
(5)  1.2484 ms
Here's the full report generated by criterion:
criterion.zip
Please let me know your thoughts on this or if you have any other ideas to compare.

let's keep par_seq_slicecopyas it uses iterators and speed perf seems reasonable ?

Done.

Meeting this, actually would be great as a post, to verify again known libraries like image-rs

I tried including image_rs in the benchmark (similar to how it is in bench_resize.rs), but my PC (16GB RAM) does not have enough memory for the full test. It gets terminated by the linux OOM killer before the 1024x896 test. The resize benchmark also crashes midway on my PC.
For 256x224 and 512x448, image-rs performs much worse (eg. 1.0548 ms for image_rs vs 161.53 us for par_seq_slicecopy).
For ref, here's the patch (Let me know if you want me to include it in this PR):
0001-Add-image_rs-to-the-flip-benchmark.patch.txt


Fix.Dropdown

Adds attributes for screen readers as mentioned in issue #1577 https://github.com/CityOfDetroit/detroitmi/issues/1577 and issue #243

@maxatdetroit I just submitted what I have so far. I still need help with correctly adding button-id and menu-id. Does the stories need to be re-written to achieve this?

@SBBlee I tested with a screen reader tool (like Narrator for Windows) and the dropdown still isn't announcing the expanded / collapsed state.
This is likely because the aria-* attributes need to be placed on the button and ul elements specifically instead of the cod-button and cod-dropdown-menu elements. That will require edits to Dropdown.js, DropdownMenu.js, and Button.js which will be a lot of throw-away work since we're going to migrate to basic markup in the design system as part of https://github.com/CityOfDetroit/COD-Design-System/issues/205.
I think we're actually better off going with option (2) described in the original issue which is to use basic bootstrap markup in the GDYT menu template for the dropdown instead of leveraging the design system. Do you have time to implement that change this afternoon so we can get it in for tomorrows release?

@maxatdetroit I tried the bootstrap dropdown first and there was an was a contradicting element stopping the implementation. I can't remember the exact element you said that caused the issue, maybe it was Popper.

Jeez what a mess 🤦♂ I apologize for the back-and-forth. We're learning a lot about the issues in our design system.
The original issue with using the bootstrap dropdown in https://github.com/CityOfDetroit/detroitmi/pull/1603 was that the  navbar was built using the design system. I removed the use of the design system in the navbar as part of https://github.com/CityOfDetroit/detroitmi/pull/1611, so that shouldn't be an issue any longer and we can use a bootstrap dropdown.

@maxatdetroit I pulled dev and still not seeing the removal of design system elements. I also merged into my branch and having the same issue as before
Dev

@SBBlee that screenshot is correct.

still not seeing the removal of design system elements

The design system elements that were removed were the cod-nav, cod-navbar, cod-navbar-brand, etc. The cod-dropdown and child elements should be the only design system elements left and your task would be to replace those with bootstrap components like you started in https://github.com/CityOfDetroit/detroitmi/pull/1603/files.
Or am I misunderstanding what you mean?

@maxatdetroit I misunderstood, I thought the cod-dropdown was updated as well.  I was expecting to see behavior similar to your PR #1611. I believe you said the bootstrap classes were correct, but the behavior still isn't ideal.  This is what I have so far
https://github.com/user-attachments/assets/a1e82cff-04e9-45b2-b373-73596af190da

@SBBlee would you push your latest changes to CityOfDetroit/detroitmi#1603 and we can continue the discussion from there? I think it's probably pretty close but debugging over screenshots is sort of tough.

Closing out this PR since we're moving the work to https://github.com/CityOfDetroit/detroitmi/pull/1603


RFC3339 date and time in ionic

What is the best way to parse date and time like "2014-09-18T11:00:42" in ionic to "2014-09-18" and "11:00:42" separately?

Greetings @vadimk-design!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

Angular's docs cover this.
https://docs.angularjs.org/api/ng/filter/date


Correct typo in 'use_params_map' link

The link links to 'use_query_map' while the text suggests it should link to 'use_params_map.' This corrects the typo in the link.

Thanks!


Propagate Condition labels to the TaskRun/Pod

Changes
Labels on Conditions will automatically propagate to the created TaskRun (and indirectly to the underlying Pod).  This is similar to (and leveraging) the default behavior that propagates TaskRun labels to the Pod automatically.
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[x] Includes tests (if functionality changed/added)
[x] Includes docs (if user facing)
[x] Commit messages follow commit message best practices

See the contribution guide for more details.
Double check this list of stuff that's easy to miss:

If you are adding a new binary/image to the cmd dir, please update
the release Task to build and release this image.

Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.
Release Notes
Labels on Conditions will automatically propagate to the created TaskRun (and indirectly to the underlying Pod).

/ok-to-test

/retest


Not all search options are ok for sorting

There are some options like "player name" that can not be sorted by remove those from the dialog

https://cdn.discordapp.com/attachments/202928463076786176/580359542156820481/unknown.png

It is because a game as multiple players and api does not know how to make an order out of this


💻 Another set of questions in Leetcode

Changes requested

Addition of some other CPP codes primarily based on Linked List
contains several approaches to each of them in different commits

Good job ig...


No options panel and constantly on git: ready without committing after updating Obsidian to v0.11.0

Hi, thanks for this nice plugin.
It's been working great until I updated Obsidian to v0.11.0.
After the update, at least that's when I happened to notice, the settings panel disappeared and the status was stuck on git: ready without ever committing. I uninstalled and tried to install again, but it just says "installation failed".
Just as I'm writing this, I tried again and it worked, but the options panel still isn't there and still stuck on git: ready.
Git still works fine when I use it manually.
I'm on a Mac. Happy to provide more debugging info if you can guide me how to do so.
Thanks!

I'm also experiencing this issue. I've tried uninstalling and reinstalling the plugin and Obsidian and it doesn't make any difference.

This is the error log I get when I open Developer Tools:
obsidian.md-1615551306225.log

Looks like this error is not related to the Obsidian upgrade.
I faced same issue after minor MacOS security update. Error has gone after reinstalling Xcode Command Line Tools:
xcode-select --install

@yotamDvir Does @s10 fix help?

I reinstalled homebrew and git via command line and then it worked.

I am getting this error in the dev console:

Ubuntu 20.04, git is installed.

@cristianmtr How did you install Obsidian?  Via Snap?

I don't remember. Which one is supposed to work? I just got an update for Git Obsidian actually. It seems to add the panel but the command always fails because it doesn't find git.

Yes the new update adds the commands and settings pane, although it couldn't find git. That part has not changed and I can't do anything to solve this.
If you type snap list in your terminal you see your installed applications. If Obsidian is in that list you have installed Obsidian with Snap. I would suggest you to install it with Flatpak or appImage.

That worked

Snap apps are in a kind of sandbox, so it has no access to other system applications like git.

Thanks @s10 I can now write in peace.
Off topic, I wonder why we have to xcode-select --install after security updates; not the first time this happened to me, though back then it caused a problem with something else on my machine.


Let's talk about whether installing some limited js framework is a good idea

I am admittedly starting from a place where I don't want to do this, but I think that the patient edit view is pretty complicated and I think we might benefit from some one-way state management of the variety that stimulus or react provides. Now that we are a webpack operation I think this would be much easier to maintain, and the fact is that stuff like patients/update.js.erb is really, really ugly and unfun to work with and test.
To be clear, I am interested in augmenting our HTML, not switching to a whole-hog single-page app. But I also think that moderating our approach to this some
Some benefits off the top of my head of going with more JS in the frontend:

state management gets easier! patients/update.js.erb is doing a LOT of work.
frankly, more javascript work; JS is a language that most of our new volunteers write and this is an opportunity to do work on that front

Some potential drawbacks:

app becomes harder to troubleshoot
javascript ecosystem is scary and this is throwing javascript at a problem
people are starting to write component libraries for rails, so, like, nonzero chance this isn't even a problem in rails 6.1?

If you have strong opinions about this, I am extremely interested in hearing them!

Since we have webpacker in place, these guys open up https://github.com/rails/webpacker#integrations.
React: Safe choice since it is widely adopted all around. (was thinking of other funds adopting the app).
Stimulus: It looks really stable but neglected (The copyright on the github page has not been updated.)
vuejs: i heard is balanced and has good traction. Can build components and scale.
angular: Potential overkill, 2 frameworks is a bit much.
npm Trends
 to give insight on popularity.
On the context of DCAF itself, html erbs can be swapped out with Stimulus. It feels closer to rails adopting state lifecycles of modern frameworks.
React or vuejs are great for using the modern component methodology. We would need to gut most of our existing js.erb for consistency.
I am kind of biased on vuejs because it is a js framework i look forward to learning. I leave these options based on what we have. Webpacker is constantly updating, which follows the same cadence as react and vuejs. Definitely open for conversation on this one.

Thank you very much for the great overview of potential solutions to this problem! My inclinations are toward stimulus (rails-y, stable, not very intrusive) or react (heavy, but extremely widely adopted). I think vue is a tough sell because it's not as widely understood, so we'd all have to learn it; angular I agree is much too heavy for what we're trying to do, and I've honestly never been able to figure it out.
@tingaloo assuming that we're only doing this for the patient edit view for now, how much of our existing controller architecture would we have to gut if we moved to react? It doesn't seem like we'd have to really dismantle things apart if we did stimulus; my sense is that we would if we adopted react.
Our choice might be wide adoption in react vs basically having something that supplements our existing code in stimulus. My inclination is to go with convention to widen our pool of potential contributors, and also doing stuff that makes us enjoy working in daria's codebase, because this should be fun. I don't know which option that leads us to but it might be react.

I'll give this a shot with react, i'll push a WIP PR with the amount of effort with gutting tests/controller.

To close some of the loop on this:

Before we do any real work we have to get bootstrap into webpacker at a minimum; getting stuff out of sprockets is nice
We only really do fancy state management in two spots: the CM dashboard and the call lists. Those are good candidates for js
let's try react on the patient edit page and see what problems we run into. (early research from @tingaloo suggests that i18n and some of our more infrequent patient object methods might be tough.)

There are a few other tough things we gotta sort out:

i18n handling (probably an argument for stimulus as the framework, though more people know react and that matters a ton to us)
js.erb handling (controllers do a lot of heavy js lifting now; tbh this causes us all sorts fo problems)
rails might be adopting limited components sometime soonish, does that influence our plan here? (probably not because a lot of our new developers speak js and not ruby)

also, there's a lot of lifting currently done by model methods (LastMenstrualPeriodMeasureable for example), and dealing with those will be difficult.

I think the ship has probably sailed on this one; closing as a wontfix for now


Add File Paths configuration

Kolide datastore already persists File Paths information.

Return file paths config in osquery/config endpoint
Expose the CRUD for file paths config in the Kolide API so when we're ready to add that to the GUI we'll have the infrastructure in place to do that.
Handle logging associated with file paths for the osquery logging endpoints.

See https://osquery.readthedocs.io/en/stable/deployment/configuration/

This is now supported by fleetctl.


RefAnchoredOverlay composes AnchoredOverlay

RefAnchoredOverlay is a composable piece to AnchoredOverlay that can be used independently in situations where the anchor is not a simple inline component.

closed in favor of https://github.com/primer/components/pull/1266


Confusing german translation bug

What are the steps to reproduce?
Install node red on german language settings
Drag a "Change" Node to the flow
Open it's configurations
What happens?
The english version of set msg.payload **to** <foo> is translated into german as "Festlegen msg.payload **bis** <foo>
What do you expect to happen?
The correct translation would be:
"Festlegen msg.payload **auf** <foo>
Please tell us about your environment:

[ ] Node-RED version:1.0.6
[ ] Node.js version: v8.10.0
[ ] npm version: 3.5.2
[ ] Platform/OS: Ubuntu 18_04
[ ] Browser: Firefox 78.0.2 (64-Bit)

Happy to accept a pull request with the update it - just need to get it peer-reviewed about another native German speaker as we can't assess this sort of change ourselves.

It's better but still wrong in my opinion, it should be Festlegen **von** msg.payload **auf** <foo>

https://github.com/node-red/node-red/pull/2666


Changes in Enhanced ManageIQ

Modification in aboutus.md file with project introduction.
Added a Openstack post.

@KhushbuB Good. Here are some changes for 'about me':

I wonder that you changed file name to 'aboutus.md'. It will not show anything. You should keep name of file as aboutme.md only.
You have written about stable and pre release version of MIQ. It is not appropriate in about us page. It will change in future. Tell about Fine release but do not mention it as stable release(It is for now).
Can you add appropriate link to words like ManageIQ, Fine, Automation? It would ease for reader. Take help form this- https://github.com/rh-universityoutreach-india/projects/pull/21
There is nothing about group. I would add group member's name with their github link. It would be more informative as this is about us page.

@akshay196

I wonder that you changed file name to 'aboutus.md'. It will not show anything. You should keep name of file as aboutme.md only.

It is about us, so the name should be about us only. There must be a way to tell Jekyll to process aboutus.md

It is about us, so the name should be about us only. There must be a way to tell Jekyll to process aboutus.md

Yes. It is possible to use about us.
@KhushbuB Change About Me: "aboutme" under navbar-links in _config.yml to About Us: "aboutus"


Opentrons: how to handle Transfer volumes that exceed the maximum volume of a pipette?

There are situations in which an operator may wish to transfer a volume that exceeds the maximum capacity of the mounted pipettes.  There are a few possible ways in which we might deal with this:

Throw an error that says "you can't do that, because you've exceeded the maximum volume" and force the user to break the Transfer down into multiple Transfer steps, e.g., 200 uL, then another 200 uL, then another 200 uL...
Throw an error that says "you can't do that, because you've exceeded the maximum volume", but provide an optional parameter that allows the user to specify they want to repeat a Transfer n times
Make the Specialization smart enough to figure out for itself the most parsimonious way to break the Transfer down into multiple steps

I would definitely be inclined towards option 3, since this is about execution of a general protocol not just on OpenTrons but on a specific robot under a specific configuration. I would find it extremely problematic to have "my robot has only a 50 uL pipette this morning" end up propagating back up to the protocol.
What I do think would make sense as an option, however, would be:

Have the Specialization log a warning that it's planning to break down the operation into multiple steps
Have an option for a "no decomposing transfers" in which the warning is instead an error. That would allow a user to choose whether to reconfigure their deck or to allow the breakdown.

Inspired by @photocyte script that couldn't translate cherry picking to transfer operation.
Dan's take is that the protocol itself wouldn't enforce any semantics.  The specialization should be where we warn, raise errors, or handle interpretation.  The standard doesn't have a say about how this happens.

For posterity, link and text of original script/context:
https://bitsinbio.slack.com/archives/C02UJJ3AND8/p1667401643485429
"
, really exciting to hear progress on LabOP Opentrons specialization! Continuing our discussion from this weeks meeting, these are the protocols I've been adapting https://protocols.opentrons.com/protocol/cherrypicking  , and a more recent fork: https://protocols.opentrons.com/protocol/6d901d-2 , for my current wetlab work. The modification I'd like to do is have a single transfer as specified by these CSVs (note 1: The CSV formats are different between the two versions, I prefer the CSV format for the cherrypicking protocol), actually be 3x repeated transfers with a single tip (no dropping & picking up new tips between transfers). (Note 2: The CSV gets baked into a JSON that is hardcoded into the .py , not ideal, but that is the Opentrons standard at the moment. I have a Jupyter notebook that simplifies making that JSON). The simple way: Have it be so the CSV specified volume, i.e. 300 µL, just gets repeated 3 total times. The harder way: make it so 900 µL could be specified in the CSV, but then the script would figure out how many transfers it should do, including doing "partial" transfers (say transferring 50 µL vs 300 µL). Would be curious to hear your thoughts on adapting this to LabOP...
"


Prettier auto format on Save not working.

Do you want to request a feature or report a bug?
bug
What is the current/expected behavior?
It appears that when I save in nvim prettier does not automatically run. I can manually trigger prettier by <leader>p or running :Prettier. Running echo g:loaded_prettier returns 1 and echo g:prettier#autoformat returns 0.
I have the following in my .vimrc file
let g:prettier#autoformat = 1
let g:prettier#autoformat_require_pragma = 0

I am using Packer as my plugin manager and this is how the plugin is installed
use {
  'prettier/vim-prettier',
  run = 'npm install',
}

What version of vim-prettier are you using - (output of :PrettierVersion) ?
1.0.0-beta
What version of prettier are you using - (output of  :PrettierCliVersion) ?
2.8.5^@
What is your prettier executable path - (output of  :PrettierCliPath) ?
/users/<name>/dev/folder/node_modules/.bin/prettier
Did this work in previous versions of vim-prettier and/or prettier ?
First time running it.
Thank you so much for taking the time to look into this!

Fixed by https://github.com/prettier/vim-prettier/pull/348


upgrading liburing from 2.0 to 2.1 is making my app compiled against 2.0 freeze

Is 2.1 known to break binary compatibility?
I don't have more info about what is going on now...
Initial socket state is NONBLOCK.
I call connect() then poll the socket for POLLOUT with io_uring
As soon as the socket is reported as connected, I change the socket to blocking and start using with io_uring_prep_write() and io_uring_prep_recv() to perform async IO.
It works like a charm with 2.0. With 2.1, after connect is called, POLLOUT event appears to never be reported...
The first thing that I have tried was to recompile against 2.1. This didn't fix my freeze.
I had to rollback to 2.0 to fix my problem.
I am going to use this issue as a placeholder to add more info as I better understand what has broke with the new lib version...

is there a small release notes of what 2.1 is adding over 2.0 beside the commit logs?

Since it seems easily reproducible, can you try and run a git bisect between 2.0 and 2.1? That's usually the first best step in figuring out what the issue might be.

thx for quick reply. Yes that is a good idea. I'm not sure that I'll be able to look into it before monday but after the week-end, I will have some time to debug this...

Did you get a chance to run the bisect?

no. I am going to look at it later today or tomorrow.
I had a nasty low-level bug in my custom io_uring libev lib that kept me busy tracking it since Sunday.
I have finally nailed that one this morning.
The next item on my todo list is to check for the liburing 2.1 upgrade issue. Stay tuned. I should figure out soon what is happening...

Sounds good, thanks!

I have found the culprit of my issue. It is commit 0ea4ccd1c0e4 ("src/queue: don't flush SQ ring for new wait interface")
I am calling io_uring_wait_cqes() and IORING_FEAT_EXT_ARG is present. With 2.0, sq was flushed. With 2.1, it is not anymore.
What is the 2.1 way to flush sq when calling io_uring_wait_cqes()?

Kind of split on this one, it'd be nice not to have to do that implicit flush as it's really an artifact of the older interface needing to do so since it submitted a new request internally. Hence I'd prefer to keep it as-is. For flush, I'd just use io_uring_submit(), that's the defined way to ensure pending requests are submitted before flushing. Would that work for you?

I guess that explicitly calling io_uring_submit() would work before waiting for cqes would work well for my code.
That being said, it appears that calling io_uring_submit() does a little bit more than just flushing the sq. It does evaluate too if it needs to make a syscall. It doesn't appear to be much but considering that calling io_uring_wait_cqes() is in my application hot path, it might not be negligible.
In an ideal world, __io_uring_flush_sq() would be exposed to the API user. If that was the case, this is what I would choose to call

That's a good point, definitely don't want to add the cost of an extra system call since we're going to be waiting anyway. We're probably better off just reverting that commit. That also seems saner from a compatibility point of view. Agree?

Jens,
from a compatibility point of view, this is saner. However, I think that the motivation behind this commit is legit. It has been done for multithreaded apps where cqe handling is done in a separate thread from the thread submitting the sqes.
maybe having 2 distinct functions or adding an extra parameter to differentiate the desired behavior would be the solution.
That being said, I did a small review of the code and I think that I have found something suspicious. In _io_uring_get_cqe(),
should
if (data->submit) {                         sq_ring_needs_enter(ring, &flags);                         need_enter = true;                 }
not be
if (data->submit && sq_ring_needs_enter(ring, &flags)) {                         need_enter = true;                 }
instead?

I think the main issue here is mostly that doing submit from wait breaks the new guarantee that you can have separate threads do that, if you wish, without synchronization. So can't really just revert it either...
I think you're right on that check, should probably just make it:
need_enter = data->submit && sq_ring_needs_enter(ring, &flags);

If you agree on the last point, I can create a pull request to fix this...
I think that it has to be as I proposed it to be because there is another conditional block that can set need_enter if the requested number of cqe is greater than the number of available cqe. That would be a bug to overwrite need_enter if set to true by the first condition.
Concerning the question to revert or not the commit... idk the best option. I was under the impression that reverting would be the outcome so I went ahead and I reverted it back in my private build.
I have kept thinking about the situation and I believe that if the API could offer 2 distinct functions to address both situations, it would be the best solution. On top of that, with all the nice building blocks already in place, it could be very trivial to do. The only difference would be whether or not get_date submit field is set or not by using __io_uring_flush_sq() return value.

See about 10 min ago, I did push out a fix for that mistake you found. It's referenced in here.
We do kind of have two variants of this - io_uring_wait_cqe() or io_uring_submit_and_wait(). The latter should work for you, as it'll flush the sq ring side too and submit if there's anything there. Perhaps that'd be a suitable replacement for your specific case?

yes. I have seen your fix pass by.
Concerning your suggestion, I cannot use io_uring_submit_and_wait() because I pass a struct __kernel_timespec pointer to io_uring_wait_cqes().
I suspect that some API functions are there for legacy reasons for older kernels. If there was an io_uring_submit_and_wait() like function that I could pass a sigmask and a timestamp, that is the function that I would use.

Ah, maybe we should add a io_uring_submit_and_wait_timeout() for that purpose? Care to submit a PR for that?

BTW, then I plan on doing a 2.2 release fairly quickly after that. No point in not doing so.

yes np. I will create a PR for that. BTW, you found an excellent name for the new function!

BTW, you found an excellent name for the new function!

It's a bit long, but at least it's descriptive ;-)


Feature Request: Modify CSV export for Tables and Pivot Tables to more closely resembled rendered data in these charts

Discussed in https://github.com/apache/superset/discussions/19705

Originally posted by SakshiTharkude April 13, 2022
Charts
Creating charts, selecting a particular visualization type , building queries
For eg: If the selected visualization type is PIVOT TABLE ,
And I want to export the pivot table to a CSV file
It gets exported to a normal csv file
It should to exported in the format of PIVOT
If I create a pivot table of 3*3 matrix the csv file should  give the same output

You can export pivoted data as CSV from the chart builder. It's plausible to add this export capability to the dashboard as well, which is already requested in other Issues. Since this is more feature request than bug, and fairly stale of a thread at that, I'll go ahead and close this. PRs and proposals welcome if you want to improve on this!


Release setup

Codecov Report

Merging #4 (50f00de) into main (c77a260) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main        #4   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         2    +1
  Lines            2         5    +3
=========================================
+ Hits             2         5    +3

Impacted Files
Coverage Δ

comp/__init__.py
100.00% <100.00%> (ø)

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 c77a260...50f00de. Read the comment docs.


demo bug

@Dogtiti thanks for reporting.
What was your browser, OS and what did you do to achieve this?

@max-sym  Chrome 98.0.4758.102
I don't know what did I do ,I just play the demo in normal ways ,and then it shows as above

Catched it!

Steps to reproduce: just scroll randomly and fast.
OS: MacOS
Browser:Chrome

Hi there! @max-sym, I was trying to build an infinite scroll that updates the page number as the user scrolls (pretty much like the emojis upload in the demo website, just use numbers instead). I believe that the bug I found might be related to this one.
https://user-images.githubusercontent.com/24229855/160012735-3a1ead67-87b8-445f-963c-f13ca5c678c1.mov
It happens if as soon as you "arrive" in an element (i.e. the emoji updates), scroll in the opposite direction. It will not trigger the callbacks for the element immediately before the one you arrived (I believe it should, since you are now "going back"). This makes the pagination go crazy and skip pages if the scroll happen in this pattern.

Steps to reproduce (in demo): Scroll down slowly. As soon as the new emoji appears in the text above the box, scroll in the opposite direction. It will not update back to the previous emoji.
OS: MacOS
Browser: Brave

Do you have any clues of what may be causing this? I'd be happy to help if possible. Just need some starting point to start investigating.
Thanks for the amazing work, also. Great package.
Cheers.

Thank you. I can reproduce the bug.

The problem is because the display area (root) takes the viewport as default value in the Intersection observer and also the margin style affect the synchronization beween slides.
Now you can notice when both slides reach the half height of slider, their intersection is triggered.
I made the fix above check it guys ;)


publishing ui cleanup progress!

This is for #682 and isn't complete yet, but has most of the gutting work done.  It's a very nice substantial reduction of dashboard-client so it will also probably conflict w/ the settings-ui branch, I'll deal with merging that here once it lands :)
I'm going to need some pairing help on the UI parts to finish closing out the issues, most or all of the back-end is cleaned up and ready to go now!
http://jeremie.com/i/64a357ece6b3ad9a0db0b98393247a24.png

Ok, the merge is done!  But @temas and maybe @erictj I could use some help tracking down some minor ui issues as a result in the AM, and making sure all the functionality survived the merge :) Should be ready to land in master right after that!

I seriously can't wait for this. Soooo much deleting...


nixos-rebuild: run activation inside systemd-run

Description of changes
Right now, running nixos-rebuild switch in a remote system via SSH may put the system in an unusable state by restarting services (e.g.: network ones like systemd-networkd.service) during the update. This will cause the SSH to lose access to the TTY, stopping the process entirely.
This commit wraps up the call to switch-to-configuration inside a systemd-run call, making the switch resiliant against TTY loss, since it will allocate its own TTY. For the user this should be entirely transparent though, with the only visible change is that the switch-to-configuration messages will be logged through journalctl (e.g.: journalctl -u nixos-rebuild-switch-to-configuration).
Fix issue https://github.com/NixOS/nixpkgs/issues/39118.
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/)
23.11 Release Notes (or backporting 23.05 Release notes)

[x] (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

[x] Fits CONTRIBUTING.md.

For testers: you will need to set my branch as your nixpkgs source, because nixos-rebuild will exec the nixos-rebuild from your nixpkgs configuration instead of using the original script.
To check if everything is working, running a sudo nixos-rebuild switch and checking journalctl -u nixos-rebuild-switch-to-configuration should be sufficient.

CC @K900 @NickCao @roberth @Profpatsch @jonringer.

First question: will this work in a chroot?

First question: will this work in a chroot?

Not sure how to test this. Is there any tests that we can run?

nixos-enter a system and try to nixos-rebuild boot

Tested and working fine too:
nixos-rebuild switch --flake /etc/nixos#<hostname> --target-host root@<hostname> --use-substitutes

@ofborg build nixos-rebuild
@ofborg test installer misc nixos-rebuild-specialisations

Fixed the logic for the specialisations case:
@ofborg build nixos-rebuild
@ofborg test installer misc nixos-rebuild-specialisations

@thiagokokada nixos-enter --root / is not a useful test. I think @K900 wanted to know something more like what happens when you mount the file system of another system that has this patch and try to nixos-enter and nixos-rebuild it. I expect it won't work because there's no systemd running in that chroot to handle the systemd-run.

fyi this was tried for nspawn containers in the past and had to be reverted because it broke on reloading systemd itself: https://github.com/NixOS/nixpkgs/pull/83392
Not sure if that's still an issue, but you may want to check for this.

@thiagokokada nixos-enter --root / is not a useful test. I think @K900 wanted to know something more like what happens when you mount the file system of another system that has this patch and try to nixos-enter and nixos-rebuild it. I expect it won't work because there's no systemd running in that chroot to handle the systemd-run.

In this case yes, won't work but this is pretty obvious. I was more of the impression that the issue here is that @K900 wanted to test is if systemd-run would work inside a chroot environment with NixOS (e.g.: NixOS live), not in any kind of chroot environment (e.g.: a different distro that does not support systemd).
In this particular case that you described, I think I can check if systemd-run is available in the environment and a fallback to not use systemd-run in this case. WDYT?

I was more of the impression that the issue here is that @K900 wanted to test is if systemd-run would work inside a chroot environment with NixOS (e.g.: NixOS live), not in any kind of chroot environment (e.g.: a different distro that does not support systemd).

No, I'm not concerned with other distros; running nixos-rebuild on another distro is meaningless. When you chroot to a NixOS file system and run systemd-run, it will not work, because there is no systemd running in that chroot. The systemd-run command will fail to connect to a system manager and it will fail.

Not sure if that's still an issue, but you may want to check for this.

Not sure exactly how to test for this issue. It seems that running systemd-run -t --wait bash and trying systemctl daemon-reload or systemctl daemon-reexec doesn't cause the systemd-run shell to die, but maybe there is a better way to test this.

I was more of the impression that the issue here is that @K900 wanted to test is if systemd-run would work inside a chroot environment with NixOS (e.g.: NixOS live), not in any kind of chroot environment (e.g.: a different distro that does not support systemd).

No, I'm not concerned with other distros; running nixos-rebuild on another distro is meaningless. When you chroot to a NixOS file system and run systemd-run, it will not work, because there is no systemd running in that chroot. The systemd-run command will fail to connect to a system manager and it will fail.

Just tested and it really is not working inside the Live NixOS environment. I will add a check testing systemd-run first and if it fails it will fallback to run it without systemd-run.

No, I'm not concerned with other distros; running nixos-rebuild on another distro is meaningless. When you chroot to a NixOS file system and run systemd-run, it will not work, because there is no systemd running in that chroot. The systemd-run command will fail to connect to a system manager and it will fail.

Tested after https://github.com/NixOS/nixpkgs/pull/258571/commits/2f6a7da9b111a9c617f0556f805ac694612a78a8:

Newly created VM in Gnome Boxes with NixOS Live ISO
Created a Ext4 filesystem, mounted it on /mnt
nixos-generate-config --root /mnt
nixos-install --root /mnt
nixos-enter and nixos-rebuild switch --verbose

Result: the switch works and I can see the newly "Skipping systemd-run since it is not working in target host" message. It will fail later because of busctl, but this is unrelated to this branch because I can reproduce the same error in master.

This runs the switch script in a cleaner environment, which may break scripts that relied on the dirty environment that we used to have. Could you add a release note about this?

This runs the switch script in a cleaner environment, which may break scripts that relied on the dirty environment that we used to have. Could you add a release note about this?

Done.

This runs the switch script in a cleaner environment, which may break scripts that relied on the dirty environment that we used to have. Could you add a release note about this?

I added a new environment variable NIXOS_IGNORE_SYSTEMD_RUN that once set will skip systemd-run (the same as when we find that systemd-run is not working). I think this should cover the cases where someone may want to keep their environment "dirty" during the switch.
WDYT @roberth ?

Commit message typo:

release-nodes: document nixos-rebuild changes

Should be release-notes :-)

Thank you, fixed.

I've kicked off evaluations on hydra to be sure.

baseline right before this PR at 3d007e8a60c4d1d4ea02ab9912573fb839ef6c88
(number and link tbd) this PR at 1e79cca679380dd9fa05e76c11a22815cfcde773
(tbd comparison link)

comparison

None of the newly failed seem to use configuration switching, so those all seem to be flaky tests.

Thanks @roberth. Would like one more reviewer here.
CC @K900 @ElvishJerricco @NickCao @Profpatsch @jonringer @bjornfor.

If there no other concerns until the end of this week I will merge this PR.

Merging it.


Add clarification

Without open FStar.Mul complete novice would struggle to understand why perfectly valid example does not work in sandbox.

Thanks Andrii!


Don't fetch recursive dependencies from files with +build ignore tag

Currently gvt fetches recursive dependencies that are listed in files which have the // +build ignore tag. This seems to go against the expectation (as mentioned in the the README) that only files relevant to the Go compiler are fetched.
A real-life example of where this is a problem is when vendoring github.com/mattn/go-sqlite3. This package contains a tool directory with some helpers which don't form part of the core package.

With go mod due to be shipping in 1.11 as the official tool for managing versions I'm not sure that fixing this would be a good use of anyone's time. Closing.