Interpolate mileage

LubeLogger is great and your rapid development is awesome.
After reading https://docs.lubelogger.com/Dashboard#notes-on-distance-traveled
I'd personally like to see the ability for it to interpolate mileage.
Lets say I have the following odometer readings:

10000 on Feb 14th
20000 on Mar 14th
30000 on Apr 14th

It'd show zero for all months, but obviously, I've not done zero miles. The workaround would be to add max(prev_month) into a month for it to not drop those miles into the ether.
A better solution would be to spread the miles between odometer readings evenly over the days in between as a form of interpolation to ensure the graphs are coherent and not only showing a subset of the data.

that's actually a pretty good idea. so would the distance traveled per month just be max(prev month) - max(current month)? The only difficulty I can see with that is if you're viewing data for a specific year then the data for January could potentially be zero since it won't have access to the data from December the previous year.

Yeah I guess another way of interpolating it would be max(prev month) - max(current month) though personally I think weighting it based on days between odometer readings would likely be more accurate (though more hellish to query/resolve I'm sure)

The only difficulty I can see with that is if you're viewing data for a specific year then the data for January could potentially be zero since it won't have access to the data from December the previous year.

Fetching 13 months (year plus extra month prior) to build the dataset doesn't sound like it'd be too bad?

I've put some code down for this to try it out but man, trying to interpolate data that just isn't there is pretty expensive to run especially when it comes to having to allocate which portion of it belongs to which month. e.g: a record of 100 miles in Feb 15th and then a record of 200 miles in March 15th, not impossible to weigh how much of the 100 miles belongs in Feb and which ones belong in March, just very expensive.
I was thinking of just adding a Best Practice section in the documentation so that users who needs the most accuracy out of the distance traveled metric should create an entry on the 1st and last day of each month.

I was thinking of just adding a Best Practice section in the documentation so that users who needs the most accuracy out of the distance traveled metric should create an entry on the 1st and last day of each month.

Maybe its something I'll cron using the API :)

@hargata I still some solution to ensure no miles are left out of the graph are important, even if its not interpolated/amortized, e.g. your solution of miles=max(month)-max(prev_month) - as with the current system the area under the graph is not guaranteed to be the total mileage done, the specific months are less important

@t3chguy it's absolutely a valid concern, and I did try out some code that implements miles = max(current month) - max(previous month), for January it takes max(current month) - max(previous year), and you can see the code here in this commit, it's not due to a lack of trying: https://github.com/hargata/lubelog/commit/b2a08856147caad84a21da80203d1af1424fa726
My biggest concern with that approach is that it's going to raise more questions than it answers especially if users only log their odometer readings partway through the month e.g.: January 8th, February 15th, etc. Since the chart on the dashboard only displays data aggregates per month and not in a monthly cycle format(e.g.: Jan 15th - Feb 14th), we're definitely going to be getting some questions down the road about how the mileage is allocated and why it just adds up in the current month and then we'll be back to attempting to weigh those mileage across the dates between odometer records again.
It's oddly reminiscent of the discussion regarding how average fuel mileage should be calculated in the app when factoring in missed fuel ups, it's pretty similar in terms of how we're trying to guesstimate how much distance the user has covered between fuel ups when there is a missed fuel up in between.
We've basically come to the conclusion that there is no satisfactory solution to fill in all the blanks between the available data since users are always going to want more answers, and so releasing a Best Practice statement and hoping that the users will follow it to the best of their ability is perhaps the most optimal way to go.


Question inheriting from System.Net.Websocket

Causes unneeded allocation https://github.com/dotnet/corefx/issues/4530

This issue was moved to aspnet/Home#2480


Markdown cell height breaks after first edit

verification steps?

It was a simple one. Put a markdown cell in edit mode, type one character, see that the height changes incorrectly.


SNES controller rename and add NES controller

Add NES controller that has even less button (no L and no R).
Not sure about the official Nintendo product code as I have a clone.
One such controller come with the NES mini classic but the console has two controller port.
The controller is compatible with virtual games on the Wii and Wii U.

Found the product code of that controller: CLV-002
And the mini-console itself is CLV-001.
I'll try to update the comment, maybe integrate the documentation update...


Can we remove the 'select all' option from the list when isMultiple is set to true? I don't want the 'select all' option in my project.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

@ashish11sahu Thanks for reporting this issue. A new version has now been published to address your concern.
By adding the properties below, the issue should be resolved.
listControls={{
              hideSelectAll: true,
            }}


return cursor to tty

Hyprland Version
Hyprland, built from branch HEAD at commit 95769a3c54448e8e65b1bb0c3d4e7ff3bb9edaba dirty (compositor: update state after moving to workspace).
Date: Wed Mar 6 22:33:55 2024
Tag: v0.36.0-65-g95769a3c

flags: (if any)

System Information:
System name: Linux
Node name: lucifer
Release: 6.8.0-rc5
Version: #11 SMP PREEMPT Thu Feb 22 20:03:55 CET 2024

GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-S UHD Graphics [8086:a788] (rev 04) (prog-if 00 [VGA controller])

os-release: NAME=Gentoo
ID=gentoo
PRETTY_NAME="Gentoo Linux"
ANSI_COLOR="1;32"
HOME_URL="https://www.gentoo.org/"
SUPPORT_URL="https://www.gentoo.org/support/"
BUG_REPORT_URL="https://bugs.gentoo.org/"
VERSION_ID="2.15"

Bug or Regression?
Bug
Description
Hey,
i start Hyprland from tty with dbus-run-session Hyprlanf and often times i go back to tty.
But the cursor wont be visible anymore.
How to reproduce
start Hyprland from tty
exit Hyprland
Crash reports, logs, images, videos
No response

what?

I use dbus-launch --sh-syntax --exit-with-session Hyprland to launch, It works great, once try Hyprland session desktop, but waybar and thunar get stuck and takes minutes to show.

Why not launch exec Hyprland directly, and then use dbus-update-activation-environment as an exec-once? Maybe that helps.

neither worked for me, but i was able to return my cursor by running echo -ne '\e[?25h'


Don't remove auth header when stopping HubConnection

Fixes: https://github.com/aspnet/AspNetCore/issues/10575
We were removing the Authorization header when the connection after the connection was stopped. This causes issues when users don't set the header via the AccessTokenProvider.
An alternative for the linked issue would be to have an option that would allow the user to specify something other than bearer auth with the AccessTokenProvider.

Yeah ,that is the concern. I think we should make it possible for users to use auth schemes other than bearer with the accessTokenProvider rather than just not clearing out headers when restarting the connection. Otherwise we'd need some internal state to determine if the auth header was set by the user or via the negotiate response and clear conditionally.

I think we should make it possible for users to use auth schemes other than bearer with the accessTokenProvider

TBH there aren't really other auth schemes that make sense here. The vast majority of auth models used here would be: Cookies (which don't use that header at all), Windows/Kerberos (which is automatically handled by the platform) and Bearer auth. Other schemes would represent completely custom logic. If a user needs that they can use either the existing header extensibility or a custom HTTP client (in case they need to "refresh" the token).
If we want to support custom authentication schemes, I'm not opposed, but it wouldn't be through .withAccessTokenProvider since "access tokens" are explicitly a Bearer auth concept. The likely design would be a "credential provider" which is given the chance to do whatever it wants to the request (adding headers, etc.).
The scenario I think we do need a test for is the one I specified above, a "reconnect" where the accessToken returned by /negotiate changes (or is removed) in the second connection. That I would block the PR on since it could be a major break for existing apps.
Time is a bit tight to get this in for preview 6, but as long as the verification is there I'm OK taking it. It's also fine if it doesn't land in time for preview 6, we can do it first thing after branching.

The scenario I think we do need a test for is the one I specified above, a "reconnect" where the accessToken returned by /negotiate changes (or is removed) in the second connection

Agreed

⬆ 📆

I updated this to have 2 header collections. One that stores the headers initialized from the user, and another collection that gets cleared every time the connection is restarted. That collection gets the accessTokens and is passed into the transports

@aspnet-hello triage https://dev.azure.com/dnceng/public/_build/results?buildId=216832


Addressed bug: unitId and stackPipeId not showing up

Back-end Issue: unitId and stackPipeId not showing up in Swagger.
Front-end Issue: Stack Pipe Name, Unit Name and End Date are not showing up under Relationships Data

Global Endpoint:


1011 add dkl to modssimpleagnet

@ChungTingLao Just wondering if this is in a place to merge? Is it already being used in production for some projects?


Please put in the imports in the documentation

Hi,
I'm requesting that you put the imports in the code samples in the documentation. I don't know how to make pac4j work, and to use the sample SecurityModule I need the import statements
thanks

This is something you can easily contribute thanks to our previous discussion: https://github.com/pac4j/play-pac4j/issues/171

Closed by #https://github.com/pac4j/play-pac4j/pull/175


Can't use example, Seeing Dynamic Linking Error 193

I'm building an electorn.js based app on windows 10 machine. Then using visual studio 2010 prompt to compile example.
I ran
cl.exe /D_USRDLL /D_WINDLL factorial.c /link /DLL /OUT:factorial.dll
The in my app I imported, but am seeing Error 193
var libfactorial = ffi.Library('libfactorial', {
'factorial': [ 'uint64', [ 'int' ] ],
});
I've tested a different DLL, and it seems to work, but for sanity check I thought I'd test this DLL
Getting pop suggesting
Error: Dynamic Linking Error: Win32 error 193
It's pointing to main.js line 17
var libfactorial = ffi.Library('libfactorial', {  // <---  line 17
'factorial': [ 'uint64', [ 'int' ] ],
});
Is this some sort of 64-bit vs 32-bit issue?

Fixed it by running 64-bit Visual Studio Command prompt for compiling


width value consistence of gaussian kernel in Shogun

Hi all..
I hope someone can help me. Im really confused. Im trying to use MKL for image classification with the multiclass_digits dataset included in Shogun. I was looking for a reliable set of kernel parameters and I found this paper: Wang & Ma, (2008), "An Estimation of the Optimal Gaussian Kernel Parameter for Support Vector Classification". In this paper experiments with widely different values of the svm_C parameter were performed and the range of widths they found is relatively stable (from 0.66² to 4.13²). They used different image datasets, so the ranges of widths are said to be suitable for image classification. In this sense, by using MKL I'd expect the similar ranges of widths, however it is not so. In Shogun I trained a CombinedKernel whose componets are Gaussian subkernels with quite different values than those found by Wang & Ma, (2008) and Im not sure why. Up to three subkernels with widths valued between 75 and 180 get the best results (about 94% of accuracy), while the range of widths found by Wang & Ma, (2008) get quite poor results (about 70%).
Said the above I would like to know whether, there is a special consideration in the Shogun implementation of the Gaussian kernel? Wang & Ma's (2008) results are not necessarily reliable for any kind of images because of the bandwidth of task-driven relevant features? given that Eq. 4.10 in Bhamers' thesis is the Shogun Gaussian kernel implementation, the hinge-shaped scaling factor makes the difference? There is another more possible explanation for these results?
Thank you in advance.

@nachitoys
Which version of shogun for your experiments? (release version or developer version)
We moved the internal representation of width in log domain in developer version 4.1. I am not sure whether the change affect MKL.
If you use a developer version earlier than May 5, 2015, you may consider the following reason:

The width used in Shogun may be different from the standard width.

reference
http://www.shogun-toolbox.org/doc/en/latest/classshogun_1_1CGaussianKernel.html
https://en.wikipedia.org/wiki/Radial_basis_function_kernel

Thank you very much for your very fast answer @yorkerlin . Im using the release version from 4 months ago. I will review things you are suggesting and I will write you if any doubt emerges.
Thank you very much again

That was indeed the solution to this issue... 2\sigma^2. There is total
consistence with the results mentioned both in the publication I mentioned
above and the Sonnenburg's Large Scale MKL (2006).
Thank you very much.
2015-08-21 10:49 GMT-05:00 Wu Lin<EMAIL_ADDRESS>
@nachitoys https://github.com/nachitoys
Which version of shogun for your experiments? (release version or
developer version)
We moved the internal representation of width in log domain in developer
version 4.1. I am not sure whether the change affect MKL.
If you use a developer version earlier than May 5, 2015, you may consider
the following reason:

The width used in Shogun may be different from the standard width.

reference
http://www.shogun-toolbox.org/doc/en/latest/classshogun_1_1CGaussianKernel.html
https://en.wikipedia.org/wiki/Radial_basis_function_kernel
—
Reply to this email directly or view it on GitHub
https://github.com/shogun-toolbox/shogun/issues/2893#issuecomment-133469247
.

--
Ignacio Arroyo Fernández

@nachitoys that's really good results are still reproducible and no bug here involved :)
@yorkerlin thanks for resolving this issue.


Retry /dapr/subscribe in case of failure or wait for app to get into Ready state

Hi,
Posting a pub/sub related problem for discussion:
Problem:
In case /dapr/subscribe is not available when the sidecar starts, the app will not subscribe to the event queue.
Scenario (reproducible using Tye):

App has readiness and liveness health-checks defined
Dapr sidecar starts, App is not yet in Ready state
Dapr sends /dapr/subscribe request but the connection is refused because the app is not in Ready state yet
Dapr will not retry getting the subscriptions. App finally gets into Ready state. No events will be processed.

Possible solutions:
Retry logic for the /dapr/subscribe endpoint or wait until app gets into Ready state by monitoring health-check endpoints.
This problem was partly discussed in:
https://github.com/dapr/dapr/issues/2918
https://github.com/dapr/dapr/pull/3605

I am seeing the same behavior on my environment, with the added problem of the super verbose stderr logging.
We are using a redis as a pub/sub service. We had to upgrade the node pool to a bigger instance and since all the pods were relocated to the new nodes, it seems the redis was late to be available to the pub/sub services. This is the sample line which logs nonstop (millions of lines per day) on the affecting services:
time="2021-11-16T14:30:28.353396986Z" level=error msg="redis streams: error reading from stream svcname: NOGROUP No such key 'svcname' or consumer group 'svcname' in XREADGROUP with GROUP option" app_id=svcname instance=svcname scope=dapr.contrib type=log ver=1.4.3
Redis pod was stable, 0 restarts since the move. After deleting/recreating the affecting consumer pods, each daprd sidecar was able to talk with the pub/sub service and the issue was gone. So beyond the service not working, it generated a couple thousand dollars of cost because of the log verbosity ingest on Azure.

Hi @rtrindvg It seems like the problem you described deserves a separate issue. This one is just about the subscriptions discovery endpoint that the application provides, while the scenario you described is a sidecar <> pub/sub connection problem.
@Team-Dapr do you think it makes sense to have this retry logic. The subscriptions discovery procedure seems a bit unreliable at the moment.

Hi @rtrindvg It seems like the problem you described deserves a separate issue. This one is just about the subscriptions discovery endpoint that the application provides, while the scenario you described is a sidecar <> pub/sub connection problem.
@Team-Dapr do you think it makes sense to have this retry logic. The subscriptions discovery procedure seems a bit unreliable at the moment.

I think it does make sense. I'll look into that for 1.6.

We just experienced the same issue in prod on Dapr v1.10.2 after deploy:
level=error msg="redis streams: error reading from stream <topic-name>: NOGROUP No such key '<topic-name>' or consumer group '<app-id>' in XREADGROUP with GROUP option" app_id=<app-id> component="pub-sub (pubsub.redis/v1)" instance=<app-name>-7644d9548c-rdg9z scope=dapr.contrib type=log ver=1.10.2 |

it was generating an enormous amounts of logs, around 100 000 per minute until we killed the pods, after restart everything went back to normal. Any idea on what might have caused the issue to appear again after the fix?


Add Web of Science and Zoological Record global identifier classes

Trichoptera World Checklist uses Web of Science and Zoological Record identifiers on their sources. Zoological Record identifiers are a subclass of Web of Science identifiers.

See https://github.com/SpeciesFileGroup/taxonworks/issues/1249


test db migrations in horizon

migrations are mostly untested right now. important for new releases

Are you planning to verify that migrations are correct or that the model works with the upgraded DB? I did some integration tests for bifrost last year that included DB migrations, but my focus was on the model/ logic. fyi: https://github.com/alpe/go/blob/bifrost_recover/services/bifrost/database/submission_store_integration_test.go

For Horizon, up-migrations are tested in every test using the DB (probably down migrations too, I will confirm)

For Horizon, up-migrations are tested in every test using the DB (probably down migrations too, I will confirm)


Fix file import during page copy

Previously, all files were downloaded and uploaded again when copying within the same environment.
This bug is caused because our deployed projects use the CDN URL for the fileUrl and the API URL doesn't match the CDN URL

@johnnyomair @nsams I adjusted it as discussed in the JFX, please review


cassandra_4: init

Description of changes

This adds experimental cassandra 4 support. I have not tested a 3_11 -> 4 migration.
Closes #167368
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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

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

[ ] Fits CONTRIBUTING.md.

Thanks a lot! Yeah, maybe it makes sense to add some tests that try to migrate, but I'm not sure how we would do that.

I have not tested a 3_11 -> 4 migration.

This pr only adds the new package, and does not change any existing installations. More testing should be done when switching pkgs.cassandra to 4; a future pr.

Yeah, maybe it makes sense to add some tests that try to migrate, but I'm not sure how we would do that.

A NixOS test could switch to a specialisation that has a newer version.


Error: read ECONNRESET

I have a the code like this.
var lists = [.......];  // There are 78 items in the array
let execFunc = (i) => {
    if (i === lists.length)
        return;
    rp.get('http://xxxx/get/' + lists[i]).then((d) => {
        execFunc(i + 1);
    });
};
execFunc(0);

and I get the error:
Unhandled rejection RequestError: Error: read ECONNRESET
    at new RequestError (/Users/apple/mine/code/project/chong_detection/node_modules/request-promise-core/lib/errors.js:14:15)
    at Request.plumbing.callback (/Users/apple/mine/code/project/chong_detection/node_modules/request-promise-core/lib/plumbing.js:87:29)
    at Request.RP$callback [as _callback] (/Users/apple/mine/code/project/chong_detection/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/Users/apple/mine/code/project/chong_detection/node_modules/request/request.js:187:22)
    at emitOne (events.js:90:13)
    at Request.emit (events.js:182:7)
    at Request.onRequestError (/Users/apple/mine/code/project/chong_detection/node_modules/request/request.js:813:8)
    at emitOne (events.js:90:13)
    at ClientRequest.emit (events.js:182:7)
    at Socket.socketErrorListener (_http_client.js:306:9)
    at emitOne (events.js:90:13)
    at Socket.emit (events.js:182:7)
    at emitErrorNT (net.js:1249:8)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

No idea what's wrong with it.

You have two issues you have to look at separately:

Error: read ECONNRESET is the primary cause and says that your connection/request got cancelled on the TCP/IP level. This may have many reasons but basically your request is configured correctly. It might just be the server you are sending the requests to which is resetting the connection. All you can do then is retrying the request. It might also be the general configuration of node.js but for that you would need to dig into the docs of the http module. Under the hood this module is used to send requests. Also see #133 about the HttpAgent.
Unhandled rejection RequestError is an error that occurred afterwards because you are not catching the first error. What you need to do is the following – which is standard promise usage:

rp.get('http://xxxx/get/' + lists[i])
    .then((d) => {
        execFunc(i + 1);
    })
    .catch((err) => {
        // Handle the error here
    });

Hope this helps!

I am getting the same error,  {"code":"ECONN RESET"}, but only when I have diacritics in uri.
ERROR:
Unhandled rejection RangeError: Invalid status code: 0
    at ServerResponse.writeHead (_http_server.js:192:11)
    at ServerResponse._implicitHeader (_http_server.js:157:8)
    at ServerResponse.OutgoingMessage.end (_http_outgoing.js:571:10)
 {"code":"ECONN RESET"}
Unhandled rejection RangeError: Invalid status code: 0
    at ServerResponse.writeHead (_http_server.js:192:11)
    at ServerResponse._implicitHeader (_http_server.js:157:8)
    at ServerResponse.OutgoingMessage.end (_http_outgoing.js:571:10)
    at ServerResponse.send (D:\NODE\app\node_modules\express\lib\response.js:204:10)
    at ServerResponse.json (D:\NODE\app\node_modules\express\lib\response.js:249:15)
    at rp.then.catch (D:\NODE\app\src\route\index.js:43:45)
    at tryCatcher (D:\NODE\app\node_modules\bluebird\js\release\util.js:16:23)
    at Promise._settlePromiseFromHandler (D:NODE\app\node_modules\bluebird\js\release\promise.js:510:31)
    at Promise._settlePromise (D:NODE\app\node_modules\bluebird\js\release\promise.js:567:18)
    at Promise._settlePromise0 (D:NODE\app\node_modules\bluebird\js\release\promise.js:612:10)
    at Promise._settlePromises (D:NODE\app\node_modules\bluebird\js\release\promise.js:687:18)
    at Async._drainQueue (D:NODE\app\node_modules\bluebird\js\release\async.js:138:16)
    at Async._drainQueues (D:NODE\app\node_modules\bluebird\js\release\async.js:148:10)
    at Immediate.Async.drainQueues (D:NODE\app\node_modules\bluebird\js\release\async.js:17:14)
    at runCallback (timers.js:574:20)
    at tryOnImmediate (timers.js:554:5)

CODE:
    let options = {
        method: "GET",
        uri: "http://addr:port/api/search"+queryString,
        json: true,
        resolveWithFullResponse: true
    };
    rp(options)
        .then((response) => {
            res.status(response.statusCode).json(response.body);
        })
        .catch((response) => {
            res.status(response.statusCode).json(response.error);
        });

When queryString has diacritics (latin letters, such as čćšđž), I get the error. Everything works fine without them. Also, if I call the url directly in a browser (with diacritics in url), I get a normal response.
Any ideas?

Hi @Gcaufy , I think it is safe to close this issue now. Let me know if you have more questions.

Sorry, forget  to close this issue.  Seems I had fixed it, but I don't remember how. -.-!

No problem. :)

For people who stumble upon this issue looking for a solution, try adding the Connection: 'keep-alive' header to the request.

I am also geeting the above issue. please anyboby can help me how they solved it?

Just to add to @analog-nico's answer:
rp.get('http://xxxx/get/' + lists[i])
    .then((d) => {
        execFunc(i + 1);
    })
    .catch((err) => {
        if(err.message === 'read ECONNRESET'){
            // wait and rerun, or handle connection and rerun
        } else {
            throw err;
        }
    });

This issue was in my case caused by this missing request option: gzip: true

@mitchmike thank you very much for your response! It took me hours to deal with a solution!

I found that the solution for me was including headers.
I used something like:
let options = {     uri: baseurl,     headers: {         Connection: 'keep-alive',         'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'     } }


AAD logon failing due to PAM configuration file - SUSE 12 SP4

I get an issue trying to use this on SUSE 12 SP4 at least. The issue may be on other distros....removed IPs and usernames from the output
Client Side:
user@Azure:~$ ssh -l<EMAIL_ADDRESS>X.X.X.X
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AMBSXAQS7 to authenticate. Press ENTER when ready.
user<EMAIL_ADDRESS>password:
Permission denied, please try again.
user<EMAIL_ADDRESS>password:
Received disconnect from X.X.X.X port 22:2: Too many authentication failures
Connection to X.X.X.X closed by remote host.
Connection to X.X.X.X closed.
Server Side:
2019-08-06T16:02:20.395435+00:00 linux sshd[6400]: fatal: Access denied for user<EMAIL_ADDRESS>by PAM account configuration [preauth]
2019-08-06T16:03:03.902647+00:00 linux sshd[6417]: pam_aad(sshd:auth): Login granted for<EMAIL_ADDRESS>as an admin.
2019-08-06T16:03:03.903851+00:00 linux sshd[6415]: error: PAM: User account has expired for<EMAIL_ADDRESS>from X.X.X.X
2019-08-06T16:04:34.474162+00:00 linux sshd[6623]: pam_aad(sshd:auth): Login granted for<EMAIL_ADDRESS>as an admin.
2019-08-06T16:04:34.475024+00:00 linux sshd[6621]: error: PAM: User account has expired for<EMAIL_ADDRESS>from X.X.X.X
2019-08-06T16:04:40.361962+00:00 linux sshd[6621]: Failed password for<EMAIL_ADDRESS>from X.X.X.X port 13440 ssh2
2019-08-06T16:04:46.453116+00:00 linux sshd[6621]: Failed password for<EMAIL_ADDRESS>from X.X.X.X port 13440 ssh2
2019-08-06T16:04:46.453463+00:00 linux sshd[6621]: error: maximum authentication attempts exceeded for<EMAIL_ADDRESS>from X.X.X.X port 13440 ssh2 [preauth]
So I'm being blocked because it thinks my account is expired.
If I go into "/etc/pam.d/common-account" and either comment out the line:
account [success=1 ignore=ignore default=die] pam_aad.so
or change it to read anything other than "success=1", such as:
account [success=ok ignore=ignore default=die] pam_aad.so
I can successfully log on. Please review whether that PAM line should be like it is!
user@Azure:~$ ssh -l<EMAIL_ADDRESS>X.X.X.X
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AD45MY5YB to authenticate. Press ENTER when ready.
End of keyboard-interactive prompts from server
Last login: Tue Aug  6 16:31:46 2019 from X.X.X.X
SUSE Linux Enterprise Server 12 SP4 x86_64 (64-bit)
As "root" (sudo or sudo -i) use the:

zypper command for package management
yast command for configuration management

If you are using extensions consider to enable the auto-update feature
of the extension agent and restarting the service. As root execute:

sed -i s/AutoUpdate.Enabled=n/AutoUpdate.Enabled=y/ /etc/waagent.conf
rcwaagent restart

Management and Config: https://www.suse.com/suse-in-the-cloud-basics
Documentation: https://www.suse.com/documentation/sles-12/
Forum: https://forums.suse.com/forumdisplay.php?93-SUSE-Public-Cloud
Have a lot of fun...
user@somedomain.com@suse12adtest:~>

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

ID: bb8e2623-1f79-aee3-bd97-8b5f647b6980
Version Independent ID: 6346b54d-cc8d-0b79-a6b8-f9144cfa2459
Content: Log in to a Linux VM with Azure Active Directory credentials
Content Source: articles/virtual-machines/linux/login-using-aad.md
Service: virtual-machines-linux
GitHub Login: @cynthn
Microsoft Alias: cynthn

Thanks for the feedback! We are currently investigating and will update you shortly.

@maximnix thanks for reaching out regarding this issue. I have setup a new VM using SUSE 12 as you did but I was not able to repro the issue. My guess is that something strange happened during the creation or addition of the AAD extension. I would suggest you retry the deployment and see if the issue remains. This feature is also still in preview so it is possible to encounter some non reproducible issues.
If you would like to give the deployment another go and update me that would be great. Else, since I cannot repro the issue I will go ahead and close this out. The comment will remain on this document though so if others start hitting this same issue they can comment and we can alwaays consider adding info for work arounds for that distro

Yes this is very surprising it wasn’t reproduced for you! My customer also got it to work after making the change I provided. You’ve used which image? Let me grab the image version we’re using on our end...
Get Outlook for iOShttps://aka.ms/o0ukef

From: Micah<EMAIL_ADDRESS>Sent: Tuesday, August 6, 2019 4:17:34 PM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: maximnix<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] AAD logon failing due to PAM configuration file - SUSE 12 SP4 (#36592)
@maximnixhttps://github.com/maximnix thanks for reaching out regarding this issue. I have setup a new VM using SUSE 12 as you did but I was not able to repro the issue. My guess is that something strange happened during the creation or addition of the AAD extension. I would suggest you retry the deployment and see if the issue remains. This feature is also still in preview so it is possible to encounter some non reproducible issues.
If you would like to give the deployment another go and update me that would be great. Else, since I cannot repro the issue I will go ahead and close this out. The comment will remain on this document though so if others start hitting this same issue they can comment and we can alwaays consider adding info for work arounds for that distro
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/36592?email_source=notifications&email_token=AF6JDB7SN4GQIT4KFJOWLQLQDHL55A5CNFSM4IJYMFXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3WKZJQ#issuecomment-518827174, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AF6JDBYGPGG3V2CMBSOKEODQDHL55ANCNFSM4IJYMFXA.

@maximnix the image version I used was SUSE:SLES-Standard:12-SP4:2019.06.17

I just realized I'm using my personal account. I've sent you an internal email with some more details. I'm still able to reproduce the problem.

From: Micah<EMAIL_ADDRESS>Sent: Wednesday, August 7, 2019 12:55 PM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: maximnix<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] AAD logon failing due to PAM configuration file - SUSE 12 SP4 (#36592)
@maximnixhttps://github.com/maximnix the image version I used was SUSE:SLES-Standard:12-SP4:2019.06.17
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/36592?email_source=notifications&email_token=AF6JDBZ5SAWHE6KNAGDKJK3QDL5BFA5CNFSM4IJYMFXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3ZBLTQ#issuecomment-519181774, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AF6JDBYB2BAMIXXHACHADDTQDL5BFANCNFSM4IJYMFXA.

Will continue this offline :)

Hello! I am hitting a similar issue in my work's Azure setup. We have a Linux machine named "lx-azrdev02" running Ubuntu 18.04. I enabled "Login with AAD credentials (Preview)" when initially provisioning the machine.
A couple weeks ago, I got myself and two other of our users (call them<EMAIL_ADDRESS>and<EMAIL_ADDRESS>logging in with Azure AD credentials okay. Then last week, I tried to get a third user (call them<EMAIL_ADDRESS>logging in, and it didn't work. Saw this in /var/log/auth.log:
Feb 11 12:07:35 lx-azrdev02 sshd[95763]: Invalid user<EMAIL_ADDRESS>from <IP_ADDRESS> port 50927
Feb 11 12:07:35 lx-azrdev02 sshd[95765]: pam_aad(sshd:auth): AadAuthenticate, Version: 1.0.014760002; CorrelationId:***REDACTED***
Feb 11 12:07:35 lx-azrdev02 sshd[95765]: pam_aad(sshd:auth): CURL: Failed to call https://management.azure.com/subscriptions/***REDACTED***/resourceGroups/***REDACTED***/providers/Microsoft.Compute/virtualMachines/lx-azrdev02?api-version=2017-05-01 (6). Could not resolve host: management.azure.com
Feb 11 12:07:35 lx-azrdev02 sshd[95763]: error: PAM: System error for illegal user<EMAIL_ADDRESS>from <IP_ADDRESS>
Feb 11 12:07:35 lx-azrdev02 sshd[95763]: Failed keyboard-interactive/pam for invalid user<EMAIL_ADDRESS>from <IP_ADDRESS> port 50927 ssh2
Feb 11 12:07:35 lx-azrdev02 sshd[95763]: error: Received disconnect from <IP_ADDRESS> port 50927:14: No supported authentication methods available [preauth]

I eventually figured out that was a DNS issue: it couldn't resolve any hostnames. So I rebooted the machine today, and the DNS issues cleared up.
But Carol still can't log in. Now I'm seeing stuff like this in /var/log/auth.log:
Feb 19 20:46:06 lx-azrdev02 sshd[18307]: Invalid user<EMAIL_ADDRESS>from <IP_ADDRESS> port 59720
Feb 19 20:46:06 lx-azrdev02 sshd[18309]: pam_aad(sshd:auth): AadAuthenticate, Version: 1.0.014760002; CorrelationId: ***REDACTED***
Feb 19 20:46:06 lx-azrdev02 sshd[18307]: Postponed keyboard-interactive for invalid user<EMAIL_ADDRESS>from <IP_ADDRESS> port 59720 ssh2 [preauth]
Feb 19 20:46:34 lx-azrdev02 sshd[18309]: pam_aad(sshd:account): AadAuthorize, Version: 1.0.014760002; CorrelationId: ***REDACTED***
Feb 19 20:46:34 lx-azrdev02 sshd[18309]: pam_aad(sshd:account): Login granted for<EMAIL_ADDRESS>as a non-admin.
Feb 19 20:46:34 lx-azrdev02 sshd[18307]: error: PAM: User account has expired for illegal user<EMAIL_ADDRESS>from <IP_ADDRESS>
Feb 19 20:46:34 lx-azrdev02 sshd[18307]: Failed keyboard-interactive/pam for invalid user<EMAIL_ADDRESS>from <IP_ADDRESS> port 59720 ssh2
Feb 19 20:46:34 lx-azrdev02 sshd[18307]: error: Received disconnect from <IP_ADDRESS> port 59720:14: No supported authentication methods available [preauth]
Feb 19 20:46:34 lx-azrdev02 sshd[18307]: Disconnected from invalid user<EMAIL_ADDRESS><IP_ADDRESS> port 59720 [preauth]

I see the "Login granted", but then "User account has expired for illegal user". What could be causing that? Any ideas how to fix it? (Short of just blowing this machine away and provisioning a new one?) Doing chage -l carol.baz or chage -l<EMAIL_ADDRESS>just gives me chage: user<EMAIL_ADDRESS>does not exist in /etc/passwd.

Oh hey, I figured it out: we have an Azure AD group "VM Login" that has the "Virtual Machine User Login" role assignment on lx-azrdev02. Carol was not a member of this group, and did not have that role assignment herself. I added her to the group and it started working.
Weird error messages in the log file if that was the problem.


Server panics close response streams without an error (unlike unary responses)

Bug Report

0.9.2 (sorry it's a little old, I'm waiting for prost-wkt)

├── tonic v0.9.2
└── tonic-build v0.9.2
Platform

Darwin Js-MacBook-Pro.local 22.5.0 Darwin Kernel Version 22.5.0: Thu Jun  8 22:22:23 PDT 2023; root:xnu-8796.121.3~7/RELEASE_ARM64_T6020 arm64
Description

A server panic in a unary response gives an error, but in a response stream just closes the stream indistinguishably from a normal termination. I double checked with wireshark and both a normal termination and panic send a HEADERS packet with "End Stream: True".
Regular panic:
    async fn paniccheck(&self, _request: Request<Empty>) -> Result<Response<Empty>, Status> {
        panic!("test");
    }

Response headers received:
(empty)

Response trailers received:
(empty)
Sent 1 request and received 0 responses
ERROR:
  Code: Canceled
  Message: stream terminated by RST_STREAM with error code: CANCEL

Empty stream:
    type StreamemptycheckStream =
        Pin<Box<dyn Stream<Item = Result<Empty, Status>> + Send + Sync + 'static>>;
    async fn streamemptycheck(
        &self,
        _request: Request<Empty>,
    ) -> Result<Response<Self::StreamemptycheckStream>, Status> {
        let (_tx, rx) = mpsc::channel(1);
        tokio::spawn(async move {});
        let result_stream = ReceiverStream::new(rx);
        Ok(Response::new(Box::pin(result_stream)))
    }

Response headers received:
content-type: application/grpc
date: Sat, 07 Oct 2023 03:45:14 GMT

Response trailers received:
(empty)
Sent 1 request and received 0 responses

Panic stream:
    type StreampaniccheckStream =
        Pin<Box<dyn Stream<Item = Result<Empty, Status>> + Send + Sync + 'static>>;
    async fn streampaniccheck(
        &self,
        _request: Request<Empty>,
    ) -> Result<Response<Self::StreampaniccheckStream>, Status> {
        let (_, rx) = mpsc::channel(1);
        tokio::spawn(async move {
            panic!("test");
        });
        let result_stream = ReceiverStream::new(rx);
        Ok(Response::new(Box::pin(result_stream)))
    }

Response headers received:
content-type: application/grpc
date: Sat, 07 Oct 2023 03:47:51 GMT

Response trailers received:
(empty)
Sent 1 request and received 0 responses

Could we make the stream behavior more like unary responses? I'll try unwinding the panic and sending an error, but it would be nice if it were built in.

Oh, it looks like an mpsc receiver doesn't know if the sender was dropped due to scope or panic. This seems to work though.
use futures::stream::Stream;
use std::pin::Pin;
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;
use std::task::{Context, Poll};
use tokio::sync::mpsc;

#[derive(Clone)]
pub struct PanickingSender<T> {
    sender: mpsc::Sender<T>,
    panicked: Arc<AtomicBool>,
}
impl<T> Drop for PanickingSender<T> {
    fn drop(&mut self) {
        if std::thread::panicking() {
            self.panicked.store(true, Ordering::Relaxed);
        }
        //std::mem::forget(self.sender.clone())
    }
}
impl<T> PanickingSender<T> {
    pub async fn send(&self, value: T) -> Result<(), mpsc::error::SendError<T>> {
        self.sender.send(value).await
    }
}

pub struct PanickingReceiver<T> {
    receiver: mpsc::Receiver<T>,
    panicked: Arc<AtomicBool>,
}

impl<T> PanickingReceiver<T> {
    pub fn poll_recv(&mut self, cx: &mut Context<'_>) -> Poll<Option<T>> {
        match self.receiver.poll_recv(cx) {
            Poll::Ready(None) => {
                if self.panicked.load(Ordering::Relaxed) {
                    panic!("One of the senders panicked");
                }
                Poll::Ready(None)
            }
            ret => ret,
        }
    }
}
impl<T> Stream for PanickingReceiver<T> {
    type Item = T;

    fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
        self.poll_recv(cx)
    }
}

pub fn channel<T>(buffer: usize) -> (PanickingSender<T>, PanickingReceiver<T>) {
    let (sender, receiver) = mpsc::channel(buffer);
    let panicked = Arc::new(AtomicBool::new(false));
    (
        PanickingSender {
            sender,
            panicked: panicked.clone(),
        },
        PanickingReceiver { receiver, panicked },
    )
}

Though you have to be careful to actually move the sender when testing:
    type StreampaniccheckStream =
        Pin<Box<dyn Stream<Item = Result<Empty, Status>> + Send + Sync + 'static>>;
    async fn streampaniccheck(
        &self,
        _request: Request<Empty>,
    ) -> Result<Response<Self::StreampaniccheckStream>, Status> {
        let (tx, rx) = channel(1);
        tokio::spawn(async move {
            //let _ = tx; // https://github.com/rust-lang/rust/issues/48852#issuecomment-589197747
            let _tx = tx;
            panic!("test");
        });
        Ok(Response::new(Box::pin(rx)))
    }

Response headers received:
content-type: application/grpc
date: Sun, 08 Oct 2023 21:21:04 GMT

Response trailers received:
(empty)
Sent 1 request and received 0 responses
ERROR:
  Code: Canceled
  Message: stream terminated by RST_STREAM with error code: CANCEL


proto

Description of changes
Summarize the changes made by this PR.

Improvements & Bug fixes

...

New functionality

...

Test plan
How are these changes tested?

[ ] Tests pass locally with pytest for python, yarn test for js

Documentation Changes
Are all docstrings for user-facing APIs updated if required? Do we need to make documentation changes in the docs repository?

Current dependencies on/for this PR:

#1773
#1772  👈
main

This stack of pull requests is managed by Graphite.


Static Links in HTML

Due to the links not requiring dynamic generation,  they should be added statically to the html page to reduce load time and dependence on JS.

Resolved with #3


In Plain Text mode completion does not appear to work

It seems to me that when I have plain text set as type of file, completion does not work. Is this to be expected?

This package has been deprecated and is no longer bundled with Atom. Did you intend to open this on the autocomplete-plus repo?

Good question. I may be using a deprecated package without realizing it. Let's close this, and if that's the case I will install autocomplete-plus and make sure I still have this issue, and if so, will re-open it on the right repo.

if that's the case I will install autocomplete-plus

You shouldn't need to install anything.  Just make sure you're running the latest version of Atom (currently 1.0.2) and autocomplete-plus will already be installed.


error - Error: No QueryClient set, use QueryClientProvider to set one

Is there an existing issue for this?

[X] I have searched the existing issues

Package Version
10.5
Current Behavior

it seems like the actual function is using useQuery...
any help would be greatly appreciated!!
Expected Behavior
copied the docs to a t...
Steps To Reproduce
start nextjs project without typescript using eslint using npm
Link to Minimal Reproducible Example (CodeSandbox, StackBlitz, etc.)
No response
Anything else?
No response

All hooks must be used inside WagmiConfig React Context Provider.


Added Bubble Sort Algorithm and Happy Number in Rust

Hello, we are studying Rust language and want to contribute to your repo. This time, we implemented bubble sort in the Rust language and sent you a PR. Merge, please.😊

@Marcosschwaab  @marlonchalegre  @tricinel  @melko  Hello, we left a PR. I hope to be Merge soon. I am interested in this repo.😊

Hello. I additionally committed the code that implements the "happy number" algorithm in Rust. Please check and merge.

Hello. I additionally committed the code that implements the "Insertion sort" and "selection sort" algorithm in Rust. Please check and merge. @Marcosschwaab @marlonchalegre @tricinel @melko


bug(mindmap): no more await in loop

fixes #0
Please use the matching pull request template
Choose a template by going into Preview and then clicking on the link.
It will reload this page and fill it with a checklist to help you make
the pull request as good as possible.
Available Templates

Framework changes to the framework
Tools changes to anything in the tools directory
Translations changes to the translation files
Documentation-Website changes to the website
History-Website changes to the history-ui
History-Microservice changes to the history-microservice
Documentation changes to a md file (Readme for example)
Examples adding or adjusting examples
Dockerfiles adding or modifying dockerfiles
Mindmap adding to or modifying the mindmap
CLI adding to or modifying the cli
Full changes to multiple categories

Actionable comments posted: 0
Review Status
Configuration used: .coderabbit.yaml
Commits
Files that changed from the base of the PR and between c14f5f9 and d4723ca.
Files selected for processing (1)
* mindmap/tools/data.js (1 hunks)

Files skipped from review as they are similar to previous changes (1)
* mindmap/tools/data.js

@coderabbitai


added gum to make it alive

gum

gum is a tool to make shellscripts glamourous thanks to https://github.com/charmbracelet/gum
things added

gum style
gum format
gum input
gum table
gum choose
gum spin
gum join

@itsnebulalol why close? ill solve the merging conflicts now~

It auto closed when I moved .sh to the legacy branch. But honestly, I dont want another dependency, and the shell script is kinda dead.

oh ok so can i actually remake this thing and make you merge it


Add netstandard2.0 support in the Ix.NET-related assemblies

See @davidfowl 's recommendation:
https://twitter.com/davidfowl/status/1008453902058917888
The general idea is that it simplifies dependencies in netstandard2.0-only TFMs

NetStandard 2.0 is already the minimum since 4.0.0 release:
https://www.nuget.org/packages/System.Reactive/4.0.0

If we release a new Ix.NET package, we'll definitely add a netstandard2.0 target. That said, I don't anticipate a new set of packages before C# 8's Ix Async changes roll in.

Won't waiting for C# 8's changes also mean waiting for the associated types to make their way into TFMs, their own packages or .NET Framework? That would still mean, too, that there wouldn't be netstandard2.0 support because those new types aren't in the standard.

I think that's all up in the air right now. Point is that while I agree that adding netstandard2.0 is compelling, I don't think that alone doesn't justify a new release...

The main benefit would be downstream consumers, like EF Core who offer a netstandard2.0-only release but then we get the netstandard1.x dependency explosion from this. You're not the only one - Remotion.Linq still offers a PCL TFM o_O

I'm not sure what package explosion you're actually seeing though? For packages.config projects, yes, that's an issue -- but that's part of why it's already multi-targeting net45. There are no dependencies for those. For anyone else that uses PackageReference, and that should be everyone, I don't think there's a real difference?
If there is, I'd like to know what the issues people are seeing are.

.NET Core projects need to do "conflict resolution" when netstandard 1.x packages enter the package graph. This increases the build time. Also those packages need to be restored by nuget and represented in the project.assests.json, this also affects build performance.
Put another way, netstandard reduced the typical package closure from around ~70 individual packages to a single package (NETStandard.Library).

Yes definitely.

@davidfowl Please see the issues in #615. We need an answer to it, though it's apparently a current issue today.


Cannot read property 'filter' of null

Error with fresh install (and after server-reboot): Cannot read property 'filter' of null:
democracyos:build Found error resolving dependencies tree TypeError: Cannot read property 'filter' of null +10s
TypeError: Cannot read property 'filter' of null
    at Function.maxSatisfying (/home/admin/app/node_modules/component-resolver/node_modules/semver/semver.js:951:18)
    at Resolver.<anonymous> (/home/admin/app/node_modules/component-resolver/build/semver.js:570:24)
    at Generator.invoke (/home/admin/app/node_modules/component-builder/build/index.js:141:31)
    at Generator.invoke (/home/admin/app/node_modules/component-builder/build/index.js:79:50)
    at next (/home/admin/app/node_modules/component-resolver/node_modules/co/index.js:74:21)
    at /home/admin/app/node_modules/component-resolver/node_modules/co/index.js:93:18
    at Gunzip.onEnd (/home/admin/app/node_modules/component-resolver/node_modules/component-remotes/node_modules/cogent/node_modules/raw-body/index.js:149:7)
    at Gunzip.g (events.js:199:16)
    at Gunzip.emit (events.js:129:20)
    at _stream_readable.js:908:16

Couldn't reproduce the error neither on master or development. Looks like a dependency error from component(1). Those are very common, more info: https://github.com/DemocracyOS/app/issues/927.
For now, try to run make clean && npm cache clean && make, and make sure that the build ends. You could also try something like this retry command, and run retry make to make sure it ends correctly.
If you don't mind waiting, we're planning to launch 1.0.0 next week that doesn't use component :)


Config.yaml not  recognized

Hi,
My config.yaml is provided, with the correct values

config.yaml
services:
    openai:
        apiKey: sk-sFxxxxxxxxxxxxxxxxxxhiddenxxxxxxxxxxxxxxxx
    elevenlabs:
        apiKey: 83cxxxxxxxxxhiddenxxxxxxxxx

and even if the docker image says it's loaded
chatgpt-chat-1  |
chatgpt-chat-1  | ><EMAIL_ADDRESS>start
chatgpt-chat-1  | > npx ts-node --logError src/index.ts
chatgpt-chat-1  |
chatgpt-chat-1  | Loaded config from: /app/data/config.yaml
chatgpt-chat-1  | Configuring Passport.
chatgpt-chat-1  | Initializing database adapter for sqlite3.
chatgpt-chat-1  | Open http://localhost:3000 in your browser.

The frontend considers I set no key

What did I miss?
Could you help, please?

Taking a peek at the code (config.ts) it looks like it is also expecting a yaml key below it called "loginRequired: true|false"
Give this a shot:
yaml services:     openai:         apiKey: sk-sFxxxxxxxxxxxxxxxxxxhiddenxxxxxxxxxxxxxxxx         loginRequired: false     elevenlabs:         apiKey: 83cxxxxxxxxxhiddenxxxxxxxxx


[BUG] Undo not working after addition of annotation building block.

Describe the bug
Excel "Undo" is not working properly after addition of an annotation block.
To Reproduce
Steps to reproduce the behavior:

Go to 'Annotation building block selection'
Search for any term to add as annotation column.
Click on 'Annotation building block'
Try to undo (ctrl+z or edit-> undo)
See interesting behavior, which I cannot properly put into words. It at least does not simply delete the annotation block, which is probably due to multiple columns being added in parallel (including the hidden ones).

Expected behavior
Undo should undo the complete last action of annotation block addition.
OS and framework information (please complete the following information):

OS: macOS Catalina
OS Version 10.15.7
MS Excel: Excel Desktop
MS Excel Version 16.43

Additional context
I must admit that I also find the hidden cols a bit annoying. I understand the rationale to not overwhelm standard users with ontologies. But I'd rather try to teach users why ontologies matter than hiding data in the background.

Ah, sorry. I think this is kind of related to #48.

This is actually related to the issue mentioned here: #9 .
We are currently not able to track changes done by the add-in and i think it even deletes all changes it tracked to that point. I am not sure if we even can fix that issue without implementing a version history on our own.
@Brilator Your feedback is very welcome! Thank you for all your input.

Regarding undo functionality, this is disabled by-design of the underlying office.js library (and at that, specific to excel). Not much we can do about that.
I agree that there could/should be an option to disable the auto-hiding though.
The problem i see with the general format is that the ontology references do not add much to the flow of reading such an annotation file (from the 'what happened from source to sink' perspective). Ontologies matter, but i am not sure if a column with 20 times the same url does really help at that. I think making a lot more settings optional/togglable is the way to go here, and maybe enable saving settings down the line so you don't have to unhide those columns every time if you are interested in them.

Hey, no worries, there will be more input...
You're doing a great job with ARC, SWATE and annotation principles!
Not sure if Timo explained, I'm Dominik from Düsseldorf (HHU, CEPLAS). GitHub Newbie btw, so don't hesitate to let me know if I have to do things differently (e.g. issue templates are helpful).

One more thing here, since I'm not sure wether this is a bug or added feature:
Some characteristics that maybe specific to a lab or facility (e.g. metabolomics) will probably never have a "Term Source REF" and "Term Accession Number" (for example the "LabelText" in your anno principles slide). Is it necessary to still automatically add these to stay ISA compliant?

@Brilator Timo mentioned that there will be feedback coming in from you. Don't worry, your input is very valuable.

Some characteristics that may be specific to a lab or facility (e.g. metabolomics) will probably never have a "Term Source REF" and "Term Accession Number" (for example the "LabelText" in your anno principles slide). Is it necessary to still automatically add these to stay ISA compliant?

There are two answers for that. First, you can annotate a characteristic with free text, without using an ontology term. See here. The accession number and term source ref fields are only required when there is an ontology term in use. When such a term does not exist, these columns can stay empty.
The preferred approach to this would however be filing a missing term issue at our ontology so we can add the missing term to our database. That way, we can ensure to both fill the ontology gap and make sure that workflows are as well annotated as possible.

Yes sure, I know you can add free text and leave cells blank for ontology-unrelated terms. But this answered my question - it's required for ISA compliance.
And sure in the long-term we'll want to have everything referenced via ontology / PIDs, but there will always be user/lab-specific processing steps (e.g. storage location of samples / extracts: the 20 °C freezer in basement room 4 - board 6 - box 2). These will not matter for downstream analyses, but I would still want to include for complete traceability and to push user-friendliness (i.e. everything in one place).

Sorry i misunderstood the question. When there is no intent to add a term later for such a characteristic, the empty columns are not required, as ontology annotations themselves are optional in the ISA format.

Ah, alright. Thanks!


changing rootpass causes ome_seadragon-web_1 to hang.

Hi @lucalianas
Changing the ROOTPASS env var in both server and web causes the web client to halt.
ome_seadragon-web_1       | Running /startup/40-wait-for-omero.sh
ome_seadragon-web_1       | Checking OMERO.server omero-server
ome_seadragon-web_1       | OMERO.server not ready, waiting...

It seems like the 40-wait-for-omero.sh script never finishes.

For instance, setting ROOTPASS=omero1 for both ome_seadragon-web and the omero-server should be enough to reproduce this.

Solution.
When you bring up the containers the first time, bring it up with omero as rootpass. Then go to the admin panel after logging in and change the password to whatever you want.
Now set the rootpass in the docker-compose file to that password.


Samefringe

Let's define a (binary) Tree as being either a Node or a Leaf. In current 007, we can create and inspect trees like this:
func makeNode(left, right) {
    return { left, right };
}

func isNode(o) {
    return o ~~ Dict && o.has("left") && o.has("right");
}

In Awesome Future 007, I'd like to be able to write it like this:
type Tree<T> = T | Node<T>;

class Node<T> {
    constructor(@public left: Tree<T>, @public right: Tree<T>) {
    }
}

func isNode<T>(o) {
    return o ~~ Node<T>;
}

But never mind, the former version works today, so let's go with that.
Now we can form trees that are distinct but have the same fringe, that is, the same preorder traversal of leaf nodes:
#   .
#  / \
# 1   .
#    / \
#   2   3
my tree1 = makeNode(1, makeNode(2, 3));

#     .
#    / \
#   .   3
#  / \
# 1   2
my tree2 = makeNode(makeNode(1, 2), 3);

Computing the actual fringe of a tree, in order to compare it against another fringe, is straightforward.
func fringe(tree) {
    if isNode(tree) {
        return fringe(tree.left).concat(fringe(tree.right));
    }
    else {
        return [tree];
    }
}

The two trees are shown to have the same fringe.
say(fringe(tree1));        # [1, 2, 3]
say(fringe(tree2));        # [1, 2, 3]
say(fringe(tree1) == fringe(tree2));    # True

Whereas a tree having exactly the same shape as tree2 but a different value in one of the leaves does not have the same fringe.
#     .
#    / \
#   .   3
#  / \
# 1   7
my tree3 = makeNode(makeNode(1, 7), 3);

say(fringe(tree2) == fringe(tree3));

And we're done.

Except we're not really done, because (quoting Rosetta Code)

[...] an elegant solution is one that can perform the minimum amount of work to falsify the equivalence of the fringes when they differ somewhere in the middle, short-circuiting the unnecessary additional traversals and comparisons.

The challenge, if you ask me, is to both get the above minimum-work elegance, while also retaining a simple, understandable structure in the program.
Here's how I would like to write the solution, again in Wishful Thinking 007:
func sameFringe(tree1, tree2) {
    return all(fringe(tree1) Z== fringe(tree2));
}

I cannot imagine a shorter, more elegant solution to the problem than the above, not without starting to drop detail. But there are a number of assumptions here:

all() would take something iterable and returns the first falsy value if any, or True.
fringe(node) cannot be the eager variant implemented above. Instead it needs to be a coroutine:

func* fringe(tree) {
    if isNode(tree) {
        yield* concat(fringe(tree.left), fringe(tree.right));
    }
    else {
        yield tree;
    }
}

(I've borrowed JavaScript's syntax with the star. Python manages to do this without the star. Similarly, the yield* keyword, also from JavaScript, is short for for <expr> -> v { yield v; }.)

Finally, the existence of the zip metaoperator is assumed here. This operator is also lazy, making the whole sameFringe function evaluate only the minimum necessary. (I originally wrote it as »==«, but the hyperoperator is not lazy.)

One difference to Perl 6's Z== is that we don't want to truncate on the length of the shortest operand; instead if one is shorter than the other, we want to return False. A hybrid between Z== and Python's zip_longest would be ideal here. (Much later edit: although, thinking about it, the "stop at shortest" strategy is the natural one. Perhaps better to extend the two sequences with a freshly-unique stopper?)

I'm not super-sure what's the conclusion here. I think we should add all that laziness and iterables into 007, since we're heading there anyway. Long-term, I think we should have coroutines/yield, also, mostly because since we already have upwards funargs first-class closures, the mechanism for having coroutines is mostly there already.
I'm curious what the limits are to statically optimizing a line of code such as all(fringe(tree1) Z== fringe(tree2)). Ideally I would have it set up two generators, pull them in a while loop, and return False as soon as it found a discrepancy. What, pray tell, would prevent the inlining of Z== and all() to make that happen?
Going to close this issue immediately though, because it was more of an exploration of ideas anyway. Might be good to have it linkable in the future.

Here, as a parting gift, I was able to put together a lazy solution using Today Working 007, by porting a Scheme implementation using continuation-passing style that I found on Ward's Wiki:
func lazyFlatten(tree) {
    func helper(tree, tailCont) {
        if isNode(tree) {
            return helper(tree.left, func() { helper(tree.right, tailCont) });
        }
        else {
            return [tree, tailCont];
        }
    }
    return helper(tree, func() { return None; });
}

func streamEqual(stream1, stream2) {
    if stream1 == none && stream2 == none {
        return True;
    }
    else if stream1 ~~ Array && stream2 ~~ Array && stream1[0] == stream2[0] {
        return streamEqual(stream1[1](), stream2[1]());
    }
    else {
        return False;
    }
}

func sameFringe(tree1, tree2) {
    return streamEqual(lazyFlatten(tree1), lazyFlatten(tree2));
}

lazyFlatten is kinda similar to a coroutine fringe, and streamEqual is basically all and Z== in spirit. The callbacks and tuplesarrays constitute the inelegance in the shape of poor man's coroutines.
But it works!

Further reading:

SameFringeProblem at Ward's Wiki
The Design of Parallel Programming Languages, linked from the above wiki page. The naive solution presented first is equivalent to the naive solution presented first here.
Same Fringe at Rosetta Code
Scheme: An Interpreter for Extended Lambda Calculus has two implementations of SAMEFRINGE on page 9

Coming back to this musing much later, I now think expressing the solution (slightly longer) as a for loop ought to be not just desirable, but perfectly natural:
That is, instead of this code:
func sameFringe(tree1, tree2) {
    return all(fringe(tree1) Z== fringe(tree2));
}

We'd write this code:
func sameFringe(tree1, tree2) {
    for zip(fringe(tree1), fringe(tree2)) -> [n1, n2] {
        if n1 != n2 {
            return false;
        }
    }
    return true;
}

Where zip (akin to Python) takes a bunch of iterables and returns an iterator, but (unlike Python) there's some accommodation for it not stopping at the shortest input iterable.
I like to use for here to express "we're going to step through a bunch of things"; it's a natural fit, and the fact that any iterable can be plugged into the statement form (and not just, say, arrays) only makes it more fitting. On the other hand, the original solution's all and Z== could arguably be seen as a more "declarative" form of the same solution, soaking up the slight boilerplate of the for solution in the form of "if we find a counterexample, return false immediately; otherwise return true at the end".
All of this was triggered by reading the code at the top of page 268 of this paper. It just occurred to me how nice it would be for a language to be general enough to just be able to plug its for loop into any desired concrete traversal strategy. Oddly enough, this is true of Java (as well as a number of other modern languages), but it seems to be very underappreciated.

Although I do seem to be stuck in an annoying oscillation between explicit step-by-step thinking and descriptive/declarative verbs — when I look at that for loop, my brain goes "hey! that's a sequential all idiom waiting to be collapsed!"...

Bob Nystrom has a blog post called Iteration Inside and Out where he talks about "interleaving two sequences" (using internal iterators, described in the blog post):

Back so soon? How’d it go? How much time did you waste?
Right. As far as I can tell, you simply can't solve this problem using internal iterators unless you’re willing to reach for some heavy weaponry like threads or continuations. You’re up a creek sans paddle.
 Sure, the tree example was verbose, but at least it was possible. (It’s also probably why languages that do internal iterators also have continuations.)

Here's how I would like to write the solution, again in Wishful Thinking 007:
func sameFringe(tree1, tree2) {
    return all(fringe(tree1) Z== fringe(tree2));
}

I cannot imagine a shorter, more elegant solution to the problem than the above, not without starting to drop detail.

Hello past me, this is future me. I can imagine a shorter, more elegant solution:
func sameFringe(tree1, tree2) {
    return fringe(tree1) == fringe(tree2);
}

Where fringe produces a generator which lazily spits out leaf node values, and == is overloaded on two generators to frugally pull out elements and compare them pointwise.
Yes, there is a "playing with fire" element in there, in that == is not well-defined in general on such generators. (If both generators keep generating identical elements without bound, the comparison will diverge instead of ever returning true.) But that's not an issue in this particular sameFringe function, because we're assuming finite trees, and so all fringe generators will be finite, too. We're being lax in stating or including a proof of that in the program. Maybe it's worth a sentence or two in a comment.
The all and Z== in the original solution were concessions to the generator-y nature of the values. But it's perfectly valid to smooth over those differences, and to let either static typing and overloading sort that out, or some kind of dynamic dispatch. Python allows list values to be compared with == using the obvious pointwise semantics; the code above does the same, but with generators, which is just as sensible.


Frequency methods

Changes list:

Add base frequency algorithm;
Fixed cleaning prediction data;
Fixed variables names in models classes;
Added optional dict parameters for config to use exists dict as parsed json;
Fixed logger docs;
Fixed asserts keyword issue;
Added multiple processing persons orders to frequency method;
Added finding most popular good ids method to parser;
Added TestModel to check metrics methods;
Added most popular frequency model;
Added new model to config;
Move TestModel to tester module;
Added model which predict same goods chosen by person as before;
Added model which predict most popular goods chosen by person.

Resolved #41
Resolved #43

This pull request is now managed with CodeReviewHub. Refresh.

:shipit:


A reader was able to order an item for Sunday pickup on Saturday morning

They should have been offered a Monday pickup – the library isn't open on Sundays!

Copying in some debugging from Slack:

If I look in the application logs, this request came in at ~2am London time

I look in Auth0, I see this. So I smell timezone shenanigans

And their timezone is 6 hours behind GMT, which means they made the request at ~8pm Friday their time

And ba-ding, we have a repro:

set the current time to Saturday @ 1am in San Francisco (which is 8 hours behind)
select San Francisco in the Chrome dev tools
I see a Sunday pickup date

Okay, so I think I've identified the issue: we're using a locale-sensitive Date.getDay() method at several points in the date-handling logic, e.g.: https://github.com/wellcomecollection/wellcomecollection.org/blob/68899166f406edef0507c33eddda7641f4e1cd42/catalogue/webapp/utils/dates.ts#L70
This will return different values if you're in a UK/US timezone, and I think that's causing the issue:

The user requests on Friday @ 6pm (US), which is Saturday @ 1am (London)

We work out when the staff will retrieve the item.

It's before 10am in London, so staff could retrieve the item today if the library is open.
Because the user is in the US, Date.getDay() returns "Friday". The library is open on Fridays, so staff can retrieve the item today.

We work out when the user can come in to pick up the item.

They can't come in today, but can they come in tomorrow?
Because the user is in the US, tomorrow.getDay() returns "Saturday". The library is open on Saturdays, so the user can pick up the item tomorrow.

But Saturday @ 6pm (US) gets rendered as Sunday @ 1am (London), which appears as "Sunday" in the date picker.

I have two tests that reproduce this locally, and I'm going to tidy up the data structures by removing lookups by day number – it's a bit fragile and non-obvious, and I think we can be clearer here.


Fix CMake builds for Apple and Linux

Based on #728

Namespaces the ios wait timer to OS like the other wait timers.
Removes header prefixing for dynamic library Apple builds. We actually build libhttpclient as a CMake "object library" -- if this change breaks dynamic builds I can revert this change and find a better preprocessor directive.
Wraps some MSVC-specific flags in a conditional for that compiler.
Removes the force setting of debug builds for multi-config CMake generators like Xcode.
Fixes source file paths.
Adds some compiler flags into CMake that exist in the project files already.

I know CMake isn't the primary way you guys build the library but since the CMake file exists, we figured it may as well build. Happy to further discuss our use case and why CMake support is necessary for us.

thanks for the PR however we've since added official support for these platforms, so i'm going to close this PR.  if you need to build Apple with CMake still (or anything else was missed), feel free to raise issues or send another PR as usual


fix(nuxt): eager load island components for hmr

🔗 Linked issue

https://github.com/harlan-zw/nuxt-og-image/issues/117
❓ Type of change

[ ] 📖 Documentation (updates to the documentation, readme or JSdoc annotations)
[x] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
See https://github.com/nuxt/nuxt/issues/24196#issuecomment-1853870504 for context. The below was a band-aid solution for upstream bugs that is no longer relevant.
This PR Is now just for adding a test for server component HMR.

The underlying issue is that HMR is not working for server / island components. This is a regression as it was working correctly previously.
3.8.2: Broken - https://stackblitz.com/edit/nuxt-starter-58zyad?file=nuxt.config.ts
3.8.0: Working - https://stackblitz.com/edit/nuxt-starter-p136go?file=components%2FFoo.island.vue
It's quite a strange bug and has involved a bit of effort to track down. I've figured out it was introduced within this PR / line https://github.com/nuxt/nuxt/pull/23975/files#diff-b846c59503e5fc45aa8f9cdde89d0a0c89f32a48ec731b1560dbcb334c98cf18R44.
The total scope of how Vite is figuring out the dependency graph is a bit over my head, but what I've gathered is that without this warm-up step, the server / island components are missing their module graph data.
When you modify the component the HMR event is fired but it won't bubble anything up because of that.
Speculating, I would say that the HMR for dynamically imported modules within virtual server modules are broken currently (although Nitro seems to be okay?). I'd need to do some more testing around this.
Edit Foo.island.vue - HMR Event with warmup
{
file: '/home/harlan/packages/nuxt/playground/components/Foo.island.vue',
  timestamp:<PHONE_NUMBER>771,
  modules:
   [ ModuleNode {
       id: '/home/harlan/packages/nuxt/playground/components/Foo.island.vue',
       file: '/home/harlan/packages/nuxt/playground/components/Foo.island.vue',
       importers: [Set],
       clientImportedModules: [Set]
     //...
  }]
}

Edit Foo.island.vue - HMR Event without warmup
{ file: '/home/harlan/packages/nuxt/playground/components/Foo.island.vue',
  timestamp:<PHONE_NUMBER>721,
  modules: [],
}

It seems like we could also manually trigger the invalidation of the #build/components.islands.mjs module, but doesn't address the underlying issue.
I'm not sure if my solution here is the right one though, look forward to your thoughts.
📝 Checklist

[x] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.

cc: @antfu in case you have any ideas

@harlan-zw Do you think we could add a regression test to ensure this doesn't crop up again? 🙏

@harlan-zw Do you think you could add a regression test to ensure this doesn't crop up again? 🙏

Of course :) I'll give it a go tomorrow.

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

:exclamation: No coverage uploaded for pull request base (main@64146b4). Click here to learn what that means.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #24584   +/-   ##
=======================================
  Coverage        ?   58.65%
=======================================
  Files           ?        5
  Lines           ?      861
  Branches        ?       46
=======================================
  Hits            ?      505
  Misses          ?      356
  Partials        ?        0

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

While writing the tests for it, I noticed that the HMR wouldn't work at all with the virtual: filter. Not exactly sure why this is and whether it's just an artifact of the modules being local instead of within node_modules themselves.
As a workaround, I filtered for the module existing within node_modules, which works, but as you can imagine adds back a lot of warm-up time, almost 40% slower (5 iterations). Not exactly sure how else to filter it, unless we add some testing exception.
Will think about this.

Thanks for the updates. Is there anything blocking this going into the next release that you want me to take a look at?
I think the node_module warmup time issue should be more of a non-factor when Nuxt itself is within node_modules but can do some benchmarking if needed

I dug into it a bit, and I hope https://github.com/nuxt/nuxt/issues/24196#issuecomment-1853505843 would be the root issue that also fixes your cases, too.

I dug into it a bit, and I hope #24196 (comment) would be the root issue that also fixes your cases, too.

This is great news, thank you for your help.
I've modified this PR just to be a test case for server component HMR, let's see if / when it passes :smile:

After discussing this with @danielroe, we both agreed adding a "hack" to the warmup code was a bit icky, he indicated this may be an issue with Vite Node caching. I looked into Vite Node further and wasn't able to come up with anything.
What is clear is that Vite is having some issues with the module graph for #build/components.islands.mjs. Looking into the code, it's clear this is because the module is within a dynamic import. So scanning the entry isn't going to track the dependency and caches aren't going to get cleared properly (?).
I've pushed up a fix to have the entry scan be able to resolve this module without resolving the dynamic imports and it seems to be working.
In terms of the performance cost of this solution, I think there isn't any as we were already importing all island components on every server request.
Would be great to hear your thoughts on this solution


Event Listings Scraper

Aim
Develop a scraper that gathers event listings from local community websites or event calendars. This can help users find unique events, workshops, or meetups that may not be widely publicized or available on popular event platforms.
Details
Allow the user to specify the websites or platforms from which they want to scrape event listings. This can include local community websites, event calendars, or specific event listing websites.
Enable the user to specify a location or region to narrow down the search for events. This allows users to focus on events happening in a particular area or city.
Provide options for users to select specific event categories of interest, such as music concerts, art exhibitions, workshops, conferences, sports events, or social gatherings.
Allow users to specify a date range to filter events happening within a specific time period. This helps users find events that fit their schedule or plan ahead.
Extract important details about each event, including the event title, date, time, location, description, organizer information, ticket prices, and any additional relevant information.

Assign this issue to me @avinashkranjan

@1e9abhi1e10 please assign me this issue !!

GO AHEAD @Abhinavcode13


force:source:beta:push does not support MPD

Summary
If you use force:source:beta:push on a project with multiple package directories it appears to try push all the metadata in one go which can result in INVALID_OPERATION: Too many files in zip errors and likely other errors due to conflicts between the package directory metadata which has been designed to work with MPD.
This may just be an oversight in the known issues list, I am raising it because it was not mentioned on #1258.
Steps To Reproduce:
From a 1GP Project using multiple package directories run:

Create a new scratch org
sfdx force:source:beta:push -f

Expected result
There are multiple deploys to the org, each one corresponding to a single package directory in sfdx-project.json.
Actual result
There is a single push.
System Information
{
"cliVersion": "sfdx-cli/7.125.0",
"architecture": "darwin-x64",
"nodeVersion": "node-v12.22.7",
"pluginVersions": [
"@oclif/plugin-autocomplete 0.3.0 (core)",
"@oclif/plugin-commands 1.3.0 (core)",
"@oclif/plugin-help 3.2.3 (core)",
"@oclif/plugin-not-found 1.2.4 (core)",
"@oclif/plugin-plugins 1.10.1 (core)",
"@oclif/plugin-update 1.5.0 (core)",
"@oclif/plugin-warn-if-update-available 1.7.0 (core)",
"@oclif/plugin-which 1.0.3 (core)",
"@salesforce/sfdx-plugin-lwc-test 0.1.7 (core)",
"alias 1.1.22 (core)",
"apex 0.3.0 (core)",
"auth 1.7.5 (core)",
"config 1.2.41 (core)",
"custom-metadata 1.0.12 (core)",
"data 0.6.4 (core)",
"generator 1.2.1 (core)",
"limits 1.2.2 (core)",
"org 1.9.0 (core)",
"salesforce-alm 53.1.2 (core)",
"schema 1.0.10 (core)",
"sfdx-cli 7.125.0 (core)",
"source 1.3.1 (core)",
"telemetry 1.2.8 (core)",
"templates 52.4.0 (core)",
"trust 1.0.11 (core)",
"user 1.5.2 (core)"
],
"osVersion": "Darwin 20.6.0"
}

This is the expected behavior...the new library intelligently combines MPD into one deploy.  That's also how source:deploy currently works.
Do you have a way to reproduce one of the potential errors so we can make sure they don't occur?  Just a 10k+ files error?

One I hit was duplicate labels (different labels files), under MPD this is OK but it failed with beta push at the end of the deploy. I can't see others because of the 10k issue, but we will have issues with duplicate classes as well.
This direction generally worries me, converting large products to MPD was expensive. Is there going to be somewhere I can point people to that lays out what work is going to be needed to adopt this way of working?

@mshanemc  I have raised an issue on this as well, https://github.com/forcedotcom/cli/issues/1265
As @kjonesffdc  has mentioned, having MPD is a strong requirement when you are in a monorepo with both unlocked packages as well as mdapi packages, (size is one factor), also there are behaviours such as overrides for unsupported attributes and org specific entities which have to be sequenced.
And does this also means, until the entire repo is good we wont be able to get a partial org, as the whole metadata either deploys or not, resulting in longer feedback for devs

I added it to the beta's known issues section to make people aware.  [I couldn't tell from #1265 what the actual problem is]
While we're here...can I get some feedback on how you'd like this to work?
Option 1
force:source:push --pkgDir some/path
That way, you could deploy them in whatever order makes sense, or repeat the push of a pkgDir with some changes (if, for example, you pushed the first 3 and they were good but had an error in the 3rd)
Option 2
force:source:push --sequential
basically, tell it to do multiple deployments in the order specified by the pkgDirs
Option 3
force:source:deploy -p some/path --tracking
where this causes a deployment but

checks for conflicts before pushing
updates the tracking files with the deploy results after a successful deploy

Would it be possible to add something like the sequential flag into sfdx-project.json as it's really declaring how to interpret the package directory contents, e.g. duplicate rules are more lax when it is set. I am thinking if this is not visible for other tools to read it is going to make it hard for them to operate correctly.

@kjonesffdc  I like that idea as well

@kjonesffdc what's happening with the duplicate labels?  That sounds more like a bug.  Is it like
pkgDir1/labels/CustomLabels.labels-meta.xml
pkgDir2/labels/CustomLabels.labels-meta.xml
where both files have an identical label?
And are you able to reproduce an error with duplicate classes, or just expect that you would?  And are they the same class exactly, or have different content on the same name?
And how does source:pull work with this, anyway?  Does it know where to put changes?

@mshanemc  for us as its not split, typically it has the different content in different files. We use kind of a psuedo namespacing to replace it after a pull

@mshanemc Looks like I might have messed up testing the labels, I had swapped to single package directory so not sure if that should have given an error earlier or if you are relying on deploy to pick up duplicates. In re-testing I am also seeing missing labels in the deploy if I use SFDX_MDAPI_TEMP_DIR, only second package directory labels appear to be being pushed.
To avoid further confusion I will simplify test case and create a repo that I can share it.

Reproduce of the duplicate label problem is at https://github.com/nawforce/sfdx-test/tree/main/duplabels.

@nawforce I'm curious what you're using push for if you're not doing source tracking operations (push/pull).
What does push give you that source:deploy wouldn't?

@mshanemc I did further testing on these commands on a mid sized repo. Here are some observations

source:beta:push detects the total component as 1745 components
source:push's final updates mentions it at 1724 components (though actual components pushed is 1727)
From a time of deployment perspective from the first deployment to the final one ~27 mins, where as without mpd ~14 mins, till it reported a failure
Please find the below errors surfaced so far, the same repo works perfectly fine with MPD. Probably due to the order in which object defintion files are deployed before the rules etc. This is what I am basically worried, as there will be lot of regression across many projects (though fixable)

I was looking at push as it's the most commonly used command for its local change detection capabilities, so problems with it effect DX more than anything else we use from the CLI (although org creation failures are a close second). We have been stuck on 7.75 for nearly a year now due to one issue or another, so really I am trying to work out how we get to a happier place and if the beta commands help with that.

what's keeping you on 7.75? @kjonesffdc

@azlam-abdulsalam we're gonna make some option for you to push packageDirs sequentially before this goes live, and keep the old version of push around under a force:source:legacy subtopic for a while in case anyone still needs it.

@kjonesffdc @azlam-abdulsalam sequential deployments are now available, pretty much as you wanted it.  See the updated beta notes for how this works now (note--that's available starting in the 7.130.1, currently latest-rc)

Thanks for the quick turnaround on this, I will get setup with the latest and continue testing.

From what I can see main issue stopping us upgrading recently has been https://github.com/forcedotcom/salesforcedx-vscode/issues/3541, looks like that should be resolved soon.


Revert per build network bridge work around

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/2957
Originally created by @pandemicsyn on 2021-09-29 18:44:24

As a workaround for https://gitlab.com/meltano/meltano/-/issues/2951 where we were seeing network timeouts on package installs we deployed a workaround recommended upstream by Gitlab. However, Gitlab has since worked with their provider to resolve the underlying issue.
The workaround we deployed is a subtle change in behavior in how networking in our CI containers is built/configured so we should revert this change until we want to (intentionally) make use of this feature.

View 2 previous comments from the original issue on GitLab


[BUG] rpicam-jpeg option parsing is broken for --datetime

rpicam-jpeg still asks for --output even when  --datetime is specified.
The same options works when applied to rpicam-still.
Reading the --help output for both commands makes me think that --datetime should work the same.
# broken for rpicam-jpeg
root@z1:~# rpicam-jpeg --datetime --verbose 0 --nopreview
ERROR: *** output file name required ***

# same options works for rpicam-still
root@z1:~# rpicam-still --datetime --verbose 0 --nopreview

# versions
root@z1:~# uname -a
Linux z1 6.6.31+rpt-rpi-v7 #1 SMP Raspbian 1:6.6.31-1+rpt1 (2024-05-29) armv7l GNU/Linux

root@z1:~# rpicam-still --version
rpicam-apps build: 49344f2a8d18 17-06-2024 (12:19:10)
libcamera build: v0.3.0+65-6ddd79b5

root@z1:~# rpicam-jpeg --version
rpicam-apps build: 49344f2a8d18 17-06-2024 (12:19:10)
libcamera build: v0.3.0+65-6ddd79b5

rpicam-jpeg is a very simple example app.  It does not support the --datetime feature.  You are right that the --help suggests it does, but that will be changed.  In the meantime, I suggest you stick with rpicam-still instead.


Client side query expansion is not working for generated fields

When a relationship is not specified explicitly expansions will not work

The workaround is to explicitly specify relationship (copy from schema)

Please assign to me

@Eunovo That is somehow related to the fact that model do not need to contain both sides of the relationships but schema might be. This issue is mostly related to the approach we take and it could be hard to fix without changing approach.
You are welcomed to investigate the issue but it can be challenging to fix it.

I see that expanded fields are not generated if the relationship is not specified because codegen-client doesn't build model relationships before generating queries but the relationships exist in the generated schema because the codegen-schema module builds the relationships not specified before generating the schema. Is that right?

I think all depends on how relationships are build and added. The general rule is that schema plugin should be the first and it should add all related fields to the schema that later will be processed by client plugin. Somehow this is not happening - it could be that schema is not being built properly or actual transformation happens in createResources function

Can you point to the code that enforces the "Schema plugin first" order?

It is just how plugins are ordered now. This requires debugging no tell what is the problem

So, I played around with a test graphback project a bit. I removed one side of the relationship declaration for the model. I messed up the plugin ordering for the project. It didn't affect the generated resolvers and client fragments; as the generated fragment still has the Expanded fields.

Also, GraphbackCoreMetadata.getModelDefinitions() always builds relationships from input schema. I confirmed this in several tests.

Modifying graphback-codegen-client/tests/mock.graphql to exclude one side of the relationship declaration reveals that relationships are generated in metadata as expected but query generation does not use these relationships to generate the Expanded fields. Modifying the code to use these relationships could solve the problem. I haven't seen how SchemaCRUDPlugin could have caused the problem. The schema is transformed in transformSchema and createResources only contains code to format schema and write to file.

GraphbackCoreMetadata.getModelDefinitions...

That is our bug. if schema from schema plugin will be used all should work

@wtrocki this a link to code on my fork that tests SchemaCRUDPlugin.transformShema. Also, GraphbackCoreMetadata.getModelDefinitions() already uses current schema as shown here

Let's create PR to see how we can action this


Import htmlSafe from '@ember/template' rather than '@ember/string'

Deprecation id: ember-string.htmlsafe-ishtmlsafe
Not sure of version compatibility but thought I'd open the PR to start a discussion.

So it looks like Travis CI isn't running builds for new PRs 🤔
Took the liberty of running ember try:each locally ✅

@mansona could you take a look at this please? 🥺

Would be nice to get this in the next release to squash the warning.

Nice work fixing the CI in #303
@mansona all checks are green ✅


Notification for direct messages I was mentioned in

Describe the bug
I received a notification of a direct message even though I am not part of the chat. Is this intended behaviour?

To Reproduce

Let someone text another person (but not you) a message where your name is mentioned in.
See a notification.

Expected behavior
No notification appears (i guess?)
Screenshots
No response
Which version of Artemis are you seeing the problem on?
7.6.2
What browsers are you seeing the problem on?
Safari
Additional context
No response
Relevant log output
No response

This was addressed in #9814 😄


AWS IAM keys definition

I liked how @giubil handled it in https://github.com/trackit/aws-sg-tools, so maybe we should use the same way for this tool. Looks easier than to edit the script and change the variable value.

The feature has been added


Should cache lookup_assignments_by_name.

We should cache this. No reason to run a query every time.

Merged into #367

Merged into #367


repo: add precommit hook to run just fmt

https://pre-commit.com requires pip, but I don't want to install pip 🤔


Feature/fix all code style errors

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 9
- Added 1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 9

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6
- Added 1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6
- Added 1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6
- Added 1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6

See the complete overview on Codacy


[BUG] make OPENSEARCH_HOME=/usr/share/opensearch accessible to all

Hello, please make OPENSEARCH_HOME=/usr/share/opensearch accessible to all
podman run -it opensearchproject/opensearch:2.5.0 /bin/bash
[opensearch@e212867ab4f5 ~]$ ls -lnad /usr/share/opensearch
drwx------. 1 1000 1000 20 Feb 21 20:44 /usr/share/opensearch
[opensearch@e212867ab4f5 ~]$ ls -lnad /usr/share
drwxr-xr-x. 1 0 0 24 Feb 21 20:43 /usr/share
[opensearch@e212867ab4f5 ~]$

oc logs opensearch-cluster-master-0
/bin/bash: ./opensearch-docker-entrypoint.sh: Permission denied

Just because it doesn't have access to /usr/share/opensearch dir

Hi @WhiteOlivierus we are not using this repo for building docker images.
All the building scripts are currently reside here:
https://github.com/opensearch-project/opensearch-build/tree/main/docker
Thanks.


Revert "Revert "add ivar and macro to the known symbol kinds""

Reverts apple/swift-docc-symbolkit#24
This PR re-introduces #21, now that changes have been made to Swift-DocC (https://github.com/apple/swift-docc/pull/132) to allow it to land without breaking the build.

@swift-ci Please test


Comma

Checklist

[x] I ran npm test locally and it passed without errors.

Corrected a small error
Added a comma to README.md

Fixes #1402

hi @KillMonger1, thanks for your contribution. It doesn't fall within our contribution guidelines for documentation changes, so I'm going to close this out.
Sorry, I know the contribution guidelines for docs changes are new and didn't exist when you created this PR, but you can check them out here: https://github.com/twilio-labs/open-pixel-art/blob/master/CONTRIBUTING.md
thanks, and let me know if you have questions.

Thanks! I didn't know about it.


Add filter import export

reference #114
I have done it, @anfragment  please help me review this PR
Feature

Export custom filter list to the Json file
Import custom filter list from the Json file and append to the current filter list

@Noahnut please let me know when I can review the PR.

Hi @anfragment
Thank you for your comment and suggestion, It is very helpful.
I think your solution is a good approach to solving the separation of concerns problem.
Any wails's runtime related feature starts from the App and calls function or struct which is in the internal folder.
I will write the new version and fix that from comment, I will mention you when I'm done

Hi @AitakattaSora  I done it
Here are the change

Move import and export which have a relation with wails runtime to the App for separate concerning.
Make import and export success or failure response more reasonable.
Use the enum type to represent the FilterList Type (If it's unreasonable, please tell me)
Add FilterType custom UnmarshalJSON function for Import Json validation

And I have few questions

FilterType custom UnmarshalJSON function
I understand that name isn’t a required field, but when it’s added to the list, it’s used the URL as name.
my question is should I do it as same as the added to list ?
Duplicated Custom Filter List
When I add the same URL and Name to Filter List, It made the remove, enable and filter confuse and work reasonable,
should I add the Duplicated checking in this PR to prevent this problem ?

Thank you

Hi @anfragment
You can start review
I addressing new comment and add more clean error response to the front
Thank for your comment

@Noahnut Also could you please consider changing invalid filter lists structure error here to incorrect filter lists format? This phrasing might make it clearer and easier for the user to understand.

@anfragment  already pulling the latest changes
@AitakattaSora  Thank for your suggestion, I fix it

@AitakattaSora I already fixed it, You can start review, Thank you

@Noahnut Everything looks good for me! Thank you for your work!
@anfragment Could you please do a final check and merge?

@Noahnut stellar job, thank you for the effort! Expect the feature in the upcoming release this week!


Save Dialogues Show Up Before Editor Switch

VSCode Version: 1.9.0-insiders
OS Version: Windows 10 Pro x64

Steps to Reproduce:

Replace your doHandleDirty function inside of editorPart.ts with the following

	private doHandleDirty(identifier: EditorIdentifier, ignoreIfOpenedInOtherGroup?: boolean): TPromise<boolean /* veto */> {
		if (!identifier || !identifier.editor || !identifier.editor.isDirty() || (ignoreIfOpenedInOtherGroup && this.countEditors(identifier.editor) > 1 /* allow to close a dirty editor if it is opened in another group */)) {
			return TPromise.as(false); // no veto
		}

		const {editor} = identifier;

		return this.openEditor(editor, null, false).then(result => {
			const res = editor.confirmSave();
			switch (res) {
				case ConfirmResult.SAVE:
					return editor.save().then(ok => !ok);

				case ConfirmResult.DONT_SAVE:
					return editor.revert().then(ok => !ok);

				case ConfirmResult.CANCEL:
					return TPromise.as(true); // veto
			}
		});
	}

Build code and get unsaved change prompt
You will notice the save changes prompt is opened before it switches editors

Gif of issue: https://dl.dropboxusercontent.com/u/91292881/ShareX/2016/12/2016-12-22_17-20-14.gif

I think opening a dialog is really stopping "the world" inside the renderer so you would need a timeout or so to make it work. I noticed this before.
Closing as this is not actually an issue in the product currently.