install-dongle error

@MatejKovacic Hello,
https://github.com/MatejKovacic/RasPBX-install/issues/16#issuecomment-2162521151
could you please help me with how to install dongle，I run install-dongle prompt: -bash: install-dongle: command not found

Are you using IMG file from the RasPBX project's website? Or you are using your own OS image?
Try to write which install-dongle, it should find it in /usr/bin/install-dongle.
If you are using some other operating system, you need to install install-dongle manually. Please check this: https://github.com/bg111/asterisk-chan-dongle

Unfortunately, no. As in my 16th issues, I use Raspberry PI 5, so there is no way to use the official image. I installed freepbx according to "https://www.dslreports.com/forum/r30661088-PBX-FreePBX-for-the-Raspberry-Pi",
so I should manually install "install-dongle", but my installation in "https://github.com/bg111/asterisk-chan-dongle" also failed. Looking at the issues, I found that most people have this problem, but no one has solved the problem


Added image_type property

@jasonash With commit  a2d908a I added a property for images called image_type, as we discussed over the weekend. Since it's a required field and I didn't want everyone to get validation errors on image properties for current images, the app sets any missing image_type to 'photo'. But for new images the user must specify a type before an image will load into the mobile/web app.
I guess you could add this image property to all images already on the server and specify the same default but I don't know if you would want to do this or not.
This change may effect you too @egbunse, if you're uploading images from the plugin. They need to specify an image_type.

What are valid image types to specify?
On Mar 7, 2017, at 5:11 PM, Jessica Good <notifications<EMAIL_ADDRESS>wrote:
@jasonashhttps://github.com/jasonash With commit a2d908ahttps://github.com/StraboSpot/strabo-mobile/commit/a2d908afb92c316f9221d482a426481328c1a799 I added a property for images called image_type, as we discussed over the weekend. Since it's a required field and I didn't want everyone to get validation errors on image properties for current images, the app sets any missing image_type to 'photo'. But for new images the user must specify a type before an image will load into the mobile/web app.
I guess you could add this image property to all images already on the server and specify the same default but I don't know if you would want to do this or not.
This change may effect you too @egbunsehttps://github.com/egbunse, if you're uploading images from the plugin. They need to specify an image_type.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/StraboSpot/strabo-server/issues/51, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AIXQU21nJOhdg33B9BFTjz6TpPDkLtpnks5rjeQygaJpZM4MWJ5c.

@zmichels These are the types @panamint55 added.

Is this something that can be indicated on the Mobile App, too? I don’t see an “Image Type” field. There is a “Scale and type of object in image (m)” field, but I assume that is different.
On Mar 7, 2017, at 5:28 PM, Jessica Good <notifications<EMAIL_ADDRESS>wrote:
@zmichelshttps://github.com/zmichels These are the types @panamint55https://github.com/panamint55 added.
[image]https://cloud.githubusercontent.com/assets/1493985/23682865/1246c944-0353-11e7-92be-4187006488f1.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/StraboSpot/strabo-server/issues/51#issuecomment-284894916, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AIXQU0oEIVuz2jUcHQnrvcM6Oavq7JjHks5rjegpgaJpZM4MWJ5c.

@zmichels I didn't release the update for this yet. I'll send out an email when I do. Probably tomorrow.

@jessicagood  Thanks, I'll see how difficult it would be to add the default property to all images. I don't think it will be too hard.


Radeon R9 390

Thank you for you work!
(No color on that card, only white led that I want breathing posible with msi gaming app, but its the gaming app..)

Btw just saying, I did try to set the Overwrite security check to true, now the app launch at the back, but nothing happen with the LED, here is my config file:
{
"R":255,
"G":255,
"B":255,
"AnimationType":2,
"TemperatureLowerLimit":45,
"TemperatureUpperLimit":87,
"OverwriteSecurityChecks":true
}

I don't think it supports this card. I have two r9 390's running crossfire and using MSI's Gaming APP tool caused one of my cards LED's to turn off completely while my secondary card stayed on......then tried to install this and it said the same thing.


fix(iso): change falvor to sediment

The ISO now downloads the correct package and installation completes without any apparent problmems. However, the installed system doesn't manage to get further than luks password prompt, after which the system simply hangs on a black screen with a blinking cursor in the top left corner.
Using the built-in troubleshooting mode of the ISO I tried to "rescue" the system but it simply tells me that there are no Linux file system partitions on the disk. Further investigation is needed.

Update: The blank screen was caused by 2 factor in combination:

Running the ISO test in a VM
The VM was not given '3d-acceleration'

By turning on 3d-acceleration I got past the black screen.
I assume this is is only a VM problem and will go ahead and call this completed


Using variables within templates {{if}} {{else if}} blocks - Is this possible?

I don't know if this is a feature request, bug or just my lack of understanding (it could quite well be the latter) but i have run into an issue when using Kapacitor templates.
I've defined templates that are working fine however i need to change the message and include a value from a variable depending on the alert level.
I've tried to use the following as my message, the warn and crit variables are set in the script.
var message = '{{index .Tags "cluster_uuid"}} Nutanix Alert: Total Storage Capacity is below the {{ .Level }} threshold Of {{if eq .Level "WARNING"}} ' + warn + '{{else if eq .Level "CRITICAL"}} ' + crit + ' Tb.'
What happens:
I get this error message:
invalid TICKscript: Failed to handle left node: Failed to handle right node: Failed to handle 1 argument: Failed to handle node: Given node type is not valid evaluation node: <nil>

What i expect:
when the alert is generated, the level is evaluated, using the templates {{if}} {{else}} logic the right variable is added to the message showing the numerical value.
I've updated the message to use string(variable) which had the same issue. Is this possible to do? If not possible at the moment, how do I submit this as a feature request? It seems like something that would be useful.

What is crit? I presume an integer, if so can you try like this:
' + string(crit) + ' Tb.

Hi,
crit is a variable in my script. I have crit and warn, they're the thresholds i set to trigger the alerts. Unfortunately I've already tried prepending the variable with string() but no success which is why i thought it may be an issue with the templating and using the variables. If i create a generic script that isn't a template, it works fine. I use it for my disk alerts.

Apologies, i misinterperated part of your reply.
crit and warn are both floats.

hmm, interesting it should have worked.

I tried, it doesn't. doesn't work with string concatination either. I can't add the value from my warning variable in my message. The variables are blank until i define an alert and a set of thresholds - Apparently this doesn't work with template tasks, it works with normal tick - the variable is hard coded. Kind of defeats the point in using a template if I'm going to have to hard code my values anyway.
I've asked on the forums as well but i doub't I'll get a response

Hey there,
Attempting something similar to you here, but facing a different issue, I think:
Error:
invalid TICKscript: unsupported literal type *ast.ReferenceNode
var message = '{{if eq .Level "CRITICAL"}} ' + str(offlineMessage) + '{{else if eq .Level "OK"}} ' + str(onlineMessage) + ' Alert'
How did you manage to get it to work in your tick script?

Related to https://github.com/influxdata/kapacitor/issues/1511

Can anyone comment on how can I use tag values with if/else statements?
Like this?
    .slack()
      .channel('{{ if eq index .Tags "alerting_environment" "prod" }}#prod{{ else }}#test{{ end }}')

Literally no documentation on the internet about this.

Answering to my own question:

Like this should work, untested (if tag value of alerting_environment is equal to prod or test). Same could be done with fields using .Fields.<field>):

'{{ if eq .Tags.alerting_environment "prod" }}#prod{{ else }}#test{{ end }}'

You can't template .slack().channel because this is unsupported. For more info/workaround, see https://github.com/influxdata/kapacitor/issues/1404


Fix JWT formation with ACL parameter

Currently, the JWT gem is adding an extra top-level parameter to the token when a user adds ACL information.
The relevant part of the token's structure looks like this right now:
"application_id": "xxxxxxxxxxx",
  "paths": {
    "acl": {
      "paths": {
        "/*/users/**": {},
        "/*/conversations/**": {},
      }
    }
  }

This is incorrect.
It should look like:
"application_id": "xxxxxxxxx",
  "acl": {
    "paths": {
      "/*/users/**": {},
      "/*/conversations/**": {},
    }
  }

The code that is impacting this can be found at https://github.com/Nexmo/nexmo-jwt-ruby/blob/master/lib/nexmo-jwt/jwt.rb#L26:
hash.merge!(paths: generator.paths) if generator.paths

A full sample JWT payload for Vonage can be found on the Vonage API Developer Portal along with more information on the structure.
The solution to this issue needs to also have additional tests added to validate both the success of the change and to confirm the fail route as well (i.e. Does it work properly now and does it explicitly not create the structure incorrectly anymore?).

Hey @bencgreenberg, could you please review my PR https://github.com/Nexmo/nexmo-jwt-ruby/pull/10

Hi @ananichev. I'll be taking a look today. Thanks for the PR!

Addressed with #10


Add logs for server panel

Log username, ip, timestamp and as many information as possible
If someone used the control panel.
This can be usefull to check if all supporters behave nice and check for possible security flaws

Fixed in 3ef4dc8b39d40ed18aeb150458339deb63924aa3


npm install without --save-dev suggested as Quick fix for missing type.

VSCode Version: 1.49.1
OS Version: macOS 10.15.6 (19G2021)

Steps to Reproduce:

Create a Typescript Project
Add an import x from async; ( or any other project without native types)
The following error shows up.

Could not find a declaration file for module 'async'. '<path>' implicitly has an 'any' type.
Try `npm install @types/async` if it exists or add a new declaration (.d.ts) file containing `declare module 'async';`

The command listed is npm install @types/async but it should actually be npm install --save-dev @types/async as types are only a devDependency.
This is a simple text change, I can raise a PR if someone can point me towards the file throwing the error.

Does this issue occur when all extensions are disabled?:  N/A

The quick fix for this runs npm install --save-dev so I think the string just needs to be updated too

I can raise a PR

Thanks!

Update the message in this file: https://github.com/microsoft/TypeScript/blob/master/src/compiler/diagnosticMessages.json
npm run build
There will be a build error that points you to the place(s) that need to be updated subsequently

I'm also updating the install commands for node, jQuery, jest and mocha types.

Thanks!


/usr/local/unimrcp/bin/unimrcpserver: error while loading shared libraries: libsofia-sip-ua.so.0: cannot open shared object file: No such file or directory

Created this docker file to run the example server:
FROM debian:9
LABEL purpose="Image for building/running mrcp server"

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    automake \
    binutils \
    cmake \
    gcc \
    curl \
    zlib1g-dev \
    libssl-dev \
    libreadline6-dev \
    libbz2-dev \
    libsqlite3-dev \
    g++ \
    git \
    libexpat1-dev \
    sed \
    pkg-config \
    libpcre3-dev \
    libtool \
    libusb-1.0-0-dev \
    libusb-dev \
    libuuid1 \
    uuid-dev \
    make \
    python3 \
    python3-dev \
    python3-pip \
    wget \
    openssh-server \
    gdb \
    gdbserver \
    vim \
    && rm -rf /var/lib/apt/lists/*

RUN wget http://www.unimrcp.org/project/release-view/unimrcp-1-7-0-tar-gz/download \
    && tar -xzf download \
    && rm download \
    && wget http://www.unimrcp.org/project/release-view/unimrcp-deps-1-6-0-tar-gz/download \
    && tar -xzf download \
    && rm download \
    && cd unimrcp-deps-1.6.0 \
    && sed -i 's/sudo make install/make install/g' build-dep-libs.sh \
    && ./build-dep-libs.sh -s \
    && cd .. \
    && cd unimrcp-1.7.0 \
    && ./configure \
    && make \
    && make install

ENV TZ="America/Sao_Paulo"

CMD ["/usr/local/unimrcp/bin/unimrcpserver -r /opt/unimrcp -o 2 -w"]

But after building it, the server cannot find the libsofia library:
111 23:38:05 username@computer:/$ docker run \
>     --name unimrcpbuilderrunning \
>     --net=host \
>     --privileged=true \
>     -it unimrcp170server /bin/bash

root@computer:/# /usr/local/unimrcp/bin/unimrcpserver -h
/usr/local/unimrcp/bin/unimrcpserver: error while loading shared libraries: libsofia-sip-ua.so.0: cannot open shared object file: No such file or directory

root@computer:/# /usr/local/unimrcp/bin/unimrcpserver -r /opt/unimrcp -o 2 -w
/usr/local/unimrcp/bin/unimrcpserver: error while loading shared libraries: libsofia-sip-ua.so.0: cannot open shared object file: No such file or directory

The thing was supposed to be installed by the logs:
...
make[3]: Leaving directory '/unimrcp-deps-1.6.0/libs/sofia-sip/libsofia-sip-ua/nua'
make[2]: Leaving directory '/unimrcp-deps-1.6.0/libs/sofia-sip/libsofia-sip-ua/nua'
make[2]: Entering directory '/unimrcp-deps-1.6.0/libs/sofia-sip/libsofia-sip-ua'
make[3]: Entering directory '/unimrcp-deps-1.6.0/libs/sofia-sip/libsofia-sip-ua'
test -z "/usr/local/lib" || /bin/mkdir -p "/usr/local/lib"
 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libsofia-sip-ua.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libsofia-sip-ua.so.0.6.0 /usr/local/lib/libsofia-sip-ua.so.0.6.0
libtool: install: (cd /usr/local/lib && { ln -s -f libsofia-sip-ua.so.0.6.0 libsofia-sip-ua.so.0 || { rm -f libsofia-sip-ua.so.0 && ln -s libsofia-sip-ua.so.0.6.0 libsofia-sip-ua.so.0; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libsofia-sip-ua.so.0.6.0 libsofia-sip-ua.so || { rm -f libsofia-sip-ua.so && ln -s libsofia-sip-ua.so.0.6.0 libsofia-sip-ua.so; }; })
libtool: install: /usr/bin/install -c .libs/libsofia-sip-ua.lai /usr/local/lib/libsofia-sip-ua.la
libtool: install: /usr/bin/install -c .libs/libsofia-sip-ua.a /usr/local/lib/libsofia-sip-ua.a
libtool: install: chmod 644 /usr/local/lib/libsofia-sip-ua.a
libtool: install: ranlib /usr/local/lib/libsofia-sip-ua.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory '/unimrcp-deps-1.6.0/libs/sofia-sip/libsofia-sip-ua'
make[2]: Leaving directory '/unimrcp-deps-1.6.0/libs/sofia-sip/libsofia-sip-ua'
make[1]: Leaving directory '/unimrcp-deps-1.6.0/libs/sofia-sip/libsofia-sip-ua
...

Full logs: tmux.txt

You may need to run ldconfig after the deps are installed.

@achaloyan
Running ldconfig does work.
But I found when I run ./build-dep-libs.sh, libsofia-sip-ua.so.0 will be install to /usr/local/lib, and the script does execute ldconfig -n /usr/local/lib which will update ld.so.cache. Why libsofia-sip-ua.so.0 cannot be found? While 'libapr.so' can be found.
Thank you!

Hi
I find the reason. sofia‘s default install dir is /usr/local, so libsofia-sip-ua.so.0 will be installed to /usr/local/lib. While
ldconfig -n /usr/local/lib which install script executes does NOT scan /usr/local/lib, because /usr/local/lib is default dir.


[HIPIFY] hipify-perl produces incorrect output for kernels that have no input args

I am porting an application that exclusively uses hipMemcpyToSymbol for its kernels.  When I run hipify-perl on this, it will happily convert it (except for the threadfence issue I noted in #258).  However, when I try to compile the kernel I get the following for each kernel:
hipLaunchKernelGGL((Kernel1), dim3(numTBs), dim3(numThreadsPerBlock), 0, 0, );
This is related to the issue I raised in #257 -- currently hipcc requires at least one input arg to correctly compile a kernel, when this is not necessary if MemcpyToSymbol is used.  But regardless, it doesn't seem like hipify should add a comma with nothing after it.
Matt

Fixed by #1387


Alternative JWT auth mechanism?

In the thread at https://github.com/zeit/next.js/issues/153 @trandainhan has created a nice JWT implementation.
It's not suitable for some of the use cases I have but it's a lot less convoluted if you don't need to store data server side (or don't want to have to maintain a session DB).
https://github.com/trandainhan/next.js-example-authentication-with-jwt
Going to have a think about if it's worth including or integrating in some way. If I can't figure that out at least worth linking to in the README - explaining the differences so people can figure out which one is suitable for them.

What data does it avoid storing server side?

Pull requests with JWT sessions would be great. I appreciate it's a lot of work so seems unlikely, but even if it's only a partial implementation it would be something.


Implement mutable global imports.

This adds support for mutable globals in the validator, as described here: https://github.com/WebAssembly/mutable-global/
Also, export ValidatingParserConfig too, since that's also needed.

Thank you for the patch


stop building ghc810

as we remove ghc8107 support I removed it from the checks, the apps and the devShells

I have not removed all the code to make it easier to revive it if we actually have to repair the support at some point, I hope that makes sense, @L-as ?

It's blocking CI
---元のメッセージ---
　 2022年7月4日 14:11, Mango The Fourthに が送信

I have not removed all the code to make it easier to revive it if we actually have to repair the support at some point, I hope that makes sense, @.***(https://github.com/L-as) ?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>


Space is not added after rendering emoji via text reported by @adeel0202

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to any chat
Type :wave: in composer

Expected Result:
Space is added after the emoji
Actual Result:
Space is not added after the emoji
Workaround:
unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.2.22-1
Reproducible in staging?: y
Reproducible in production?: y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/199114556-cfce4d7d-56d7-4cc3-b96e-a6365ff640e6.mp4
https://user-images.githubusercontent.com/43996225/199114573-ad97238d-9e19-43e1-8603-e9eb89ec1838.mov
Expensify/Expensify Issue URL:
Issue reported by: @adeel0202
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1667208968300839
View all open jobs on GitHub

Proposal
We just have to return
`${newText} `

https://github.com/Expensify/App/blob/2174ef50cd16fb3da074ef5dce880ac1653e7d23/src/libs/EmojiUtils.js#L201

@Puneet-here you should've waited for the Help Wanted label before posting your proposal.

@adeel0202, proposals can be posted any time after the issue gets created. Please refer here.

Upwork: https://www.upwork.com/jobs/~01b305b99cbec3f000

I'd like to work on it. Should be quite straightforward to change by adding a space when replacing the emojis in EmojiUtils. It might make sense to not do it in case the text is pasted in as this might cause unwanted spaces.

MY PROPOSAL FOR
[$250] Space is not added after rendering emoji via text reported by @adeel0202 #12314 @dylanexpensify
Situation: Space is not added after rendering emoji via text.
Solution: Use regular expression to detect emoji inputs, separate emojis from normal text and perform necessary string manipulation to add space to the beginning of the separated text.
Steps:

Create a function that detects the emoji text.
Create a function for the string manipulations
Store manipulated text with emoji in state variable.
And update input value.

Benefits:
My solution accounts for bot typed and pasted text.

This is a feature not a bug. The implementation comes from this commit from this PR to implement this feature request issue.
https://github.com/Expensify/App/blob/064eeea9e36bc4cb8cacb3b92ad02acf8ea6b35d/src/pages/home/report/ReportActionCompose.js#L315-L321

Oh ok, thanks for clearing that up @adeel0202! You are right, I'll try to read more carefully next time.

At first glance I like @Puneet-here's proposal https://github.com/Expensify/App/issues/12314#issuecomment-1297727461, but @adeel0202 brings up a good point that it doesn't work properly when pasting in text with emojis.
When I type :apple: in the composer box it should replace that with an apple and a space following it, e.x "🍎 ", so that I can keep typing with ease. However, if I past in some text like this :smile::apple::hamburger:no space after emojis then I want to see the emojis right next to each other and text immediately following the last emoji, e.x "😄🍎🍔no space after emojis". In other words, I think we should only manually append a space after an emoji if it is the last character in the text. Do you guys agree?
If so, please submit a proposal that handles these cases.

Updated proposal
Check the emojiData.length
    if (emojiData.length > 1) {
        return newText;
    }
    return `${newText} `;

https://github.com/Expensify/App/blob/2174ef50cd16fb3da074ef5dce880ac1653e7d23/src/libs/EmojiUtils.js#L201

in src/libs/EmojiUtils.js :
function replaceEmojis(text) {
    let newText = text;
    const emojiData = text.match(CONST.REGEX.EMOJI_NAME);
    if (!emojiData || emojiData.length === 0) {
        return text;
    }
    for (let i = 0; i < emojiData.length; i++) {
        const checkEmoji = emojisTrie.search(emojiData[i].slice(1, -1));
        if (checkEmoji && checkEmoji.metaData.code) {
-           newText = newText.replace(emojiData[i], checkEmoji.metaData.code);
+           newText = newText.replace(emojiData[i], `${checkEmoji.metaData.code} `);
        }
    }
    return newText;
}

https://user-images.githubusercontent.com/108357004/199337922-d2fc8cd0-6c2f-455a-aabd-45b1eeb71174.mp4
I will not paid for it.

@neil-marcellini what if we're inserting an emoji in the middle of a comment

It's important that if the user pastes in text it shows up as they expect, so we don't want to insert spaces after emojis in the middle of a comment when pasting text, e.x :smile::apple::hamburger:no space after emojis. Maybe we could replace the emojis without adding spaces when we handlePaste?
Alternatively we could let the user add the space themselves when inserting an emoji in the middle of a comment.

Proposal
Insert a space when replacing emojis if the emoji is at the end of the current message.
If @rushatgabhane likes this proposal too then I would like @Puneet-here to go ahead an implement it for me, because he had the first proposal.
diff --git a/src/libs/EmojiUtils.js b/src/libs/EmojiUtils.js
index ed67a2aed..f70413d68 100644
--- a/src/libs/EmojiUtils.js
+++ b/src/libs/EmojiUtils.js
@@ -195,7 +195,13 @@ function replaceEmojis(text) {
     for (let i = 0; i < emojiData.length; i++) {
         const checkEmoji = emojisTrie.search(emojiData[i].slice(1, -1));
         if (checkEmoji && checkEmoji.metaData.code) {
-            newText = newText.replace(emojiData[i], checkEmoji.metaData.code);
+            let emojiReplacement = checkEmoji.metaData.code;
+
+            // If this is the last emoji in the message and it's the end of the message so far, add a space after it so the user can keep typing easily.
+            if (i === emojiData.length - 1 && text.endsWith(emojiData[i])) {
+                emojiReplacement += ' ';
+            }
+            newText = newText.replace(emojiData[i], emojiReplacement);
         }
     }
     return newText;
diff --git a/tests/unit/EmojiTest.js b/tests/unit/EmojiTest.js
index 5a66a57e9..387d716a1 100644
--- a/tests/unit/EmojiTest.js
+++ b/tests/unit/EmojiTest.js
@@ -78,9 +78,14 @@ describe('EmojiTest', () => {
         expect(EmojiUtils.containsOnlyEmojis('😄  👋')).toBe(true);
     });

-    it('replaces emoji codes with emojis inside a text', () => {
-        const text = 'Hi :smile::wave:';
-        expect(EmojiUtils.replaceEmojis(text)).toBe('Hi 😄👋');
+    it('replaces an emoji code with an emoji and a space', () => {
+        const text = 'Hi :smile:';
+        expect(EmojiUtils.replaceEmojis(text)).toBe('Hi 😄 ');
+    });
+
+    it('will not add a space after the last emoji if there is text after it', () => {
+        const text = 'Hi :smile::wave:no space after last emoji';
+        expect(EmojiUtils.replaceEmojis(text)).toBe('Hi 😄👋no space after last emoji');
     });

     it('suggests emojis when typing emojis prefix after colon', () => {

nitpick: an edgecase with this proposal is that it won't add a space for a multiline comment.

That's true, but I think it's just another case where the user is inserting an emoji in the middle of a comment and we already decided that the user can add a space manually.

@Puneet-here I'm assigning you to implement this proposal https://github.com/Expensify/App/issues/12314#issuecomment-1304016775. Please let me know within a day or so if you can implement this, otherwise I'll pick someone else so we can move this forward quickly. Thanks!

Thanks @neil-marcellini, I have raised the PR.

@Puneet-here @rushatgabhane would you mind applying on the Upwork job above please? 🙇

reviewing today!

Accepted the offer.

all have been paid out, contracts ended

@dylanexpensify, I think the 50% bonus applies here as it was merged within 2 days

ah, good catch @Puneet-here - I've sent each individual the 50% bonus now

@dylanexpensify I think all that remains to close this out is adding a regression test right? https://github.com/Expensify/App/issues/12314#issuecomment-1307949663

Correct! Getting on this today now that I'm back from OOO!

posted regression test buddy check

Regression test update GH here


Autoconfiguration for Steeltoe components via assembly detection and bootstrapping

Applies the same principles as SpringBoot auto-config by automatically registering Steeltoe components based on the presence of necessary assemblies in the assembly loader search paths. This simplifies configuration of all Steeltoe components to just a a single .AddSteeltoe() on IHostBuilder.
See demo project https://github.com/macsux/steeltoe-autoconfig-demo

/azp run

Considerations not currently addressed in this work:

Opt-out of autoconfiguration, ie: should we add some sort of exclusions list to .AddSteeltoe so that individual packages can be more specifically configured than what autoconfigure provides (eg: customizing the config provider order)
Packages needing to be added to IAppBuilder, some of which need to be added in a specific order (eg: between AddRouting and UseEndpoints

Given we'll be distributing this as an experimental package, I think leaving out IAppBuilder extensions is OK given the combination of how complex it could get and how some of the current usage of these extensions could/should be moved into IHostedService classes instead. I think the idea of adding a way to exclude packages from autoconfiguration makes sense, but I'm open to discussion on whether it's needed for the first iteration of this package


DSND-3006: Apply versioning to links patch endpoints.

Bug was found during cidev testing where PATCH requests for addition/deletion of links did not implement versioning.
Fix is to apply versioning logic to PATCH request pathways within the api.
Fix applied in the CompanyProfile service class using mongoTemplate and companyProfileRepository save methods.
Fix applied to upsert paths for links for both legacy/new documents on both legacy and newer endpoints.
Passes local tests of versioning on both links PATCH's and full profile PUTs.
Also passes current Karate test implementations locally

DSND-3006

CI: Security warnings found!

CI: Security warnings found!

CI: Security warnings found!

CI: Security warnings found!


Document new setExecutionContext command

Implemented in https://github.com/WPO-Foundation/wptagent/pull/584

Done? :) https://docs.webpagetest.org/scripting/#setexecutioncontext

Thanks! (Looks like I opened the issue as you were pushing the commit)

:) Good timing!


change the order of the turbolink plug

according to this blog post, the turbolinks plug shoudl be placed before fetch_flash
https://elixirforum.com/t/turbolinks-with-phoenix/1091/40 (last post on the link)
I am about to install the library and make the test.
If you feel this issue is irrelevant, feel free to close it.

@happysalada Have you tried out the proposed change?

It seemed to work. I have personally paused using turbolinks for a bit until I managed to refactor all the javascript state I had out of the page directly. I will be able to tell you in more details in a month probably


Records Log - View Converted PDFs in Browser

As an IAO analyst or ministry coordinator
I want to be able to view a PDF record in a browser tab
so that I can review the record without needing to download it first

Assumptions & Scope
What are the assumptions for this story?
User will want to view and PDF in the Records Log without needing to download it first.
What is IN scope?
Viewing PDFs in the browser from the Records log.
What is NOT in scope?
Viewing non-PDFs
Acceptance Criteria
Scenario 1: View on Click

GIVEN the user is on the Records log
WHEN the user clicks on a PDF
AND the file is NOT an email file (.eml, .msg)
THEN the dropdown will open
AND 'View' will now be an option

Scenario 2: Click 'View'

GIVEN the user has opened an Record dropdown
WHEN the user clicks 'View'
THEN the a display of the record will open in a new browser tab

Scenario 3: Click PDF record name

GIVEN the user is on the Records log
WHEN the user clicks on the title of the PDF Record
THEN the a display of the Record will open in a new browser tab

Scenario 3: Click Non-PDF record name

GIVEN the user is on the Records log
WHEN the user clicks on the title of a non-PDF Record
THEN the nothing will happen

Dependencies? What is the impact of this dependency? (If so, link dependency in the ticket, make it visible in a team´s backlog)
Validation Rules? (If yes, list here)
Design
@xxx - please link the Design here
Definition of Ready

[ ] Is there a well articulated User Story?
[ ] Is there Acceptance Criteria that covers all scenarios (happy/sad paths)?
[ ] If there is a user interface, is there a design?
[ ] Does the user story need user research/validation?
[ ] Does this User Story needs stakeholder approval?
[ ] Design / Solution accepted by Product Owner
[ ] Is this user story small enough to be completed in a Sprint? Should it be split?
[ ] Are the dependencies known/ understood? (technical, business, regulatory/policy)
[ ] Has the story been estimated?

Definition of Done

[ ] Passes developer unit tests
[ ] Passes peer code review
[ ] If there's a user interface, passes UX assurance
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Confirm Test cases built and succeeding
[ ] No regression test failures
[ ] Test coverage acceptable by Product Owner
[ ] Ticket ready to be merged to master or story branch
[ ] Developer to list Config changes/ Update documents and designs
[ ] Can be demoed in Sprint Review
[ ] Tagged as part of a Release
[ ] Feature flagged if required
[ ] Change Management activities done?

Can you view Word and other MS documents now from the Attachment Log or only PDFs?

Updated the AC


update-normal-user-conference-control

I'm going to close this one because is old and the conf-control APIs for normal users are wip


Accidental prototype loop crashes tern-server

This is not directly a bug in atom-ternjs or ternjs it self. It's rather an edge-case which should be properly handled.
When doing something like this
const SomeObject = {
    property: "value",
    prop2: 123,
    method() {},

    __proto__: SomeObject
};

it is attempted to set the object as it's own prototype.
This code wouldn't work, since the object isn't declared at the time it should be set as the prototype, but Tern already knows about it. This results in an infinite loop, which exceeded the stack and gets the tern-server killed.
The server will continue to be killed until the code snipped is fixed.
It would be great if this case could be handled appropriately, so the user is not left in the dark about what is causing the server to crash.

This should be fixed with updating the tern dependency. If the error still occurs after the next release feel free to re-open the issue.
thx


refactor: project services to functions

Shaves 400 bytes 🤓

#503  👈
main

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

Join @davidlj95 and the rest of your teammates on  Graphite


Highlight trailing whitespace inside snapshots

Summary
Introduce highlighting of trailing whitespace. Kinda fixes #2287 I guess.

Test plan
jest

Current coverage is 89.23% (diff: 73.33%)

Merging #2347 into master will decrease coverage by 0.05%

@@             master      #2347   diff @@
==========================================
  Files            39         39
  Lines          1475       1486    +11
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           1317       1326     +9
- Misses          158        160     +2
  Partials          0          0

Powered by Codecov. Last update 9acf3f6...cc82caf

This looks good, thank you!
As an aside, I think it's really weird that new stuff is red with a plus. I get that it's the unexpected part so it's red, and it's an addition, it just looks really weird.
I think it's because it's not what I expect from a diff-view. New/added stuff is green, deleted stuff is red. If I write the snapshot to disk, the git diff will invert the colours from what Jest shows me.
Should I create an issue for it? Maybe we can invert it, or at least provide an option? oldDiffColor: 'red', newDiffColor: 'green', or something with a much better name, would make me happy

We had long conversations about this with @dmitriiabramov and @gaearon and decided to invert the colors, assuming that what is stored on disk is always the source of truth.

I find the diff view so confusing that I press u, and do a git diff instead...
And why should the source of (ultimate) truth matter? I care about what it was before vs what it is now. And the normal way of expressing that is old=red, new=green.
An option to invert the current schema would be greatly appreciated (I can provide a PR for it if you want?).

oh this is so nice!
this bug annoyed me for so long :)

My problem might be that the diff looks too much like a git diff, and I conflate the two when I look at it. I'm used to expected being green and actual being red. But when I look at hundreds of git diffs every day, having something be the same structure, but different colors, throws me off...

I don't mind changing the snapshot colors but it needs to be done consistently.
Don't forget we have these views as well:

What colors do you propose for them? The second one also uses a diff so I would expect it to be colored the same way as snapshots. However this would make the "good" (expected) value red and the "bad" (actual) value green. Which, when also applied to the first screen, would be pretty confusing.
I agree it could be improved but I'd like to see a consistent proposal addressing all these points.
"Red is failure" is relatively easy to remember and currently works consistently.

Hmm, good point... Could introduce yellow and blue (2 other nice colours in chalk), but red/green is very common for tests.
Maybe changing the default is too much, but we can just make it configurable? Might be easier to settle on an alternative in the future if it could be tried out a bit.
Say you have colors, which takes options expected, received, diffExpected, diffReceived, and we go from there? (Diff can just prefix with bg for the training whitespace for now)


merge from arlac77/template-github,arlac77/template-kronos-module

package.json

chore(package): add ^3.8.2 remove ^3.8.1 (devDependencies.ava)

Codecov Report

Merging #947 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #947   +/-   ##
=======================================
  Coverage   92.13%   92.13%
=======================================
  Files          10       10
  Lines        1360     1360
  Branches      154      154
=======================================
  Hits         1253     1253
  Misses        107      107

Continue to review full report at Codecov.

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


On 9.9.0-26u, upgrade to 10.2.0 via sysupdater before downgrade?

According to the guide, I ought to be able to throw oot3dhax on, and be fine downgrading from 9.9.0 to 9.2.0, but I've seen a couple claims that it is safer to use upgrade to 10.2.0 via sysupdater before downgrading. Is this truly safer and worth doing? Would I use just plain sysupdater for this or PlaiSysUpdater?

I was on 9.6 and did the downgrade directly. No problem whatsoever. You should be able to follow the guide as-is, and you don't even need oot3dhax since browserhax should work fine on 9.9.

Personally I strongly recommend this.
From my discovery & gathered informations, Factory SysNANDs (which are not upgraded by CIA or official Internet upgrade, no matter what version they are) have a nearly 100% "An error occured..." Blackscreen rate on NATIVE_FIRM step of first downgrading.
But Internet upgraded SysNANDs have 0%.

Could this "An error occured.." message be caused by not formatting? This is something the guide mentions. In my case, I formatted just before downgrading, and as stated above had not trouble.

Been searching aroind but can't find a guide on how to update to a specific version these days. 3DNUS doesnt seem to have any guides.

I downgraded to 9.2 on 10.6 so you should be fine when downgrading.

According to the guide, I ought to be able to throw oot3dhax on, and be fine downgrading from 9.9.0 to 9.2.0, but I've seen a couple claims that it is safer to use upgrade to 10.2.0 via sysupdater before downgrading. Is this truly safer and worth doing? Would I use just plain sysupdater for this or PlaiSysUpdater?

It doesn't matter, just downgrade directly.

Downgraded Directly, got a partial dg. Used oot3dhax to load hb, redowngraded, and all was fine. Thanks.


Question regarding "nil"

I am using Jedis#lindex([]byte). Its JavaDoc states that it might return 'nil'. Does that mean need to compare it against new String("nil").toBytes(CharSets.LATIN1) to check for existence? Or is it some other way? How about adding a constant to compare against and refer to that in the JavaDoc?

@JensRantil null java type if returned. The doc references Redis API mainly, I guess it's something we need to change.
Here you have an example:
https://github.com/xetorthio/jedis/blob/master/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java#L234
Let us know if you have further questions.

Thanks @marcosnils. Yes, the JavaDoc definitely need to clarify this. Especially the @return part of the JavaDocs. I'll leave this issue open until that's done (unless there's a better issue for it)

@JensRantil there are some javadoc issues open already. I'll close this one as we have the others

:+1:

Hi again @marcosnils, sorry for being a pain - could you refer to an issue the would solve this? I think it would be fair to do that for future reference.

Sure, https://github.com/xetorthio/jedis/issues/978


must-gather: add more info for ceph crash

add command to check for ceph crash info
for every crash and collect core dump of
rook crash.
Signed-off-by: crombus<EMAIL_ADDRESS>

/retest

/retest

/cherry-pick release-4.6


IP address xxx.xx.xx.xxx/24 state is false, desired false

Hi
i installled potroni 3.0.2, etcd 3.5.8 and vip-manager 2.1.0
But when i start the vip manager it gets  "IP address  IP address xxx.xx.xx.xxx/24 state is false, desired false state is false, desired false."
and virtual IP cannot start on interface. I think vip-manager can cannot connect to etcd.
Could you tell me if vip-manager need some additional configuration?
Regards.
/usr/bin/vip-manager --config=/etc/default/vip-manager.yml
2023/05/05 17:35:17 Using config from file: /etc/default/vip-manager.yml
2023/05/05 17:35:17 This is the config that will be used:
config : /etc/default/vip-manager.yml
dcs-endpoints : [http://xxx.xx.xx.xxx:2379 http://xxx.xx.xx.xxx2:2379 http://xxx.xx.xx.xxx:2379]
dcs-type : etcd
hosting-type : basic
hostingtype : basic
interface : ens192
interval : 1000
ip : xxx.xx.xx.xxx
manager-type : basic
netmask : 24
retry-after : 250
retry-num : 2
trigger-key : /service/postgres/leader
trigger-value : tst-sql-evam2
verbose : false
version : false
2023/05/05 17:35:17 IP address xxx.xx.xx.xxx/24 state is false, desired false
2023/05/05 17:35:27 IP address xxx.xx.xx.xxx/24 state is false, desired false
^C2023/05/05 17:35:28 Received exit signal
2023/05/05 17:35:28 Removing address xxx.xx.xx.xxx/24 on ens192
2023/05/05 17:35:28 Got error RTNETLINK answers: Cannot assign requested address
{"level":"warn","ts":"2023-05-05T17:35:29.051+0300","logger":"etcd-client","caller":"v3@v3.5.6/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"etcd-endpoints://0xc0002056c0/xxx.xx.xx.xxx:2379","attempt":0,"error":"rpc error: code = Canceled desc = context canceled"}

etcdctl --endpoints=http://xxx.xx.xx.xxx:2379,http://xxx.xx.xx.xxx:2379,http://xxx.xx.xx.xxx:2379 endpoint health
http://xxx.xx.xx.xxx:2379 is healthy: successfully committed proposal: took = 2.72383ms
http://xxx.xx.xx.xxx:2379 is healthy: successfully committed proposal: took = 2.92425ms
http://xxx.xx.xx.xxx:2379 is healthy: successfully committed proposal: took = 2.678277ms

This looks suspicious:

interface : ens192
[...]
2023/05/05 17:35:28 Removing address xxx.xx.xx.xxx/24 on ens192
2023/05/05 17:35:28 Got error RTNETLINK answers: Cannot assign requested address

Are you able to add and remove some random IP address (192.168.x.y) to the interface as the user as which vip-manager is running?

Hi,
I can add/remove IP address on this interface.
Regards.
#ip addr add <IP_ADDRESS>/24 dev ens192
#ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet <IP_ADDRESS>/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:ae:6e:74 brd ff:ff:ff:ff:ff:ff
inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet <IP_ADDRESS>/24 scope global secondary ens192
valid_lft forever preferred_lft forever
inet6 fe80::5b4c:4bd5:3256:f02e/64 scope link dadfailed tentative noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::5c86:fcae:f195:e305/64 scope link noprefixroute
valid_lft forever preferred_lft forever
ip addr delete <IP_ADDRESS>/24 dev ens192
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet <IP_ADDRESS>/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:ae:6e:74 brd ff:ff:ff:ff:ff:ff
inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::5b4c:4bd5:3256:f02e/64 scope link dadfailed tentative noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::5c86:fcae:f195:e305/64 scope link noprefixroute
valid_lft forever preferred_lft forever

I think I know what happened with this issue.  If you add/move cards in your system or you do a big kernel upgrade and the interface  name changes, you will experience this exact issue.  Check that your network interface device name actually matches what in your /etc/vip-manager/vip-manager.yml config file.


support of enum in raml for query parameters

Hi,
Another cool thing to support could be the enum type of query parameters like:
  - orderable:
      queryParameters:
        order:
          description: Order
          enum: [desc, asc]

The java generated code take it as simple string without validation.
The issue can be linked to #108.

Hi @mehdijouan,
sorry for being so late.
Workaround for this is to define a data type like this:
types:
  Order:
    type: string
    description: Order
    enum: [desc, asc]

and then you define queryParameters:
queryParameters:
      order: Order

and you'll get code like this:
    public ResponseEntity<?> getOrder(
        @RequestParam
        Order order);

where Order is enum.
Does that work for you?

Good idea,
Thanks for the proposal !


Checkpoint Loading Failed

I am trying to inference with command line. I have run nnUNet_predict -i <input_folder> -o <output_folder1> -t <TASK_ID> -m 3d_fullres -tr nnUNetTrainerV2BraTSRegions_DA4_BN_BD --save_npz successfully. However, there is something wrong with the second command nnUNet_predict -i <input_folder> -o <output_folder2> -t <TASK_ID> -m 3d_fullres -tr nnUNetTrainerV2BraTSRegions_DA4_BN_BD_largeUnet_Groupnorm --save_npz, though I have put the trained models in RESULTS_FOLDER correctly.
I have no idea where the problem is TwT
Here is the output message below
folds is None so we will automatically look for output folders (not using 'all'!)
found the following folds:  ['/hy-tmp/Brats21_KAIST_MRI_Lab-main/datasets/nnUNet_trained_models/nnUNet/3d_fullres/Task500_BraTS/nnUNetTrainerV2BraTSRegions_DA4_BN_BD_largeUnet_Groupnorm__nnUNetPlansv2.1/fold_0', '/hy-tmp/Brats21_KAIST_MRI_Lab-main/datasets/nnUNet_trained_models/nnUNet/3d_fullres/Task500_BraTS/nnUNetTrainerV2BraTSRegions_DA4_BN_BD_largeUnet_Groupnorm__nnUNetPlansv2.1/fold_1', '/hy-tmp/Brats21_KAIST_MRI_Lab-main/datasets/nnUNet_trained_models/nnUNet/3d_fullres/Task500_BraTS/nnUNetTrainerV2BraTSRegions_DA4_BN_BD_largeUnet_Groupnorm__nnUNetPlansv2.1/fold_2', '/hy-tmp/Brats21_KAIST_MRI_Lab-main/datasets/nnUNet_trained_models/nnUNet/3d_fullres/Task500_BraTS/nnUNetTrainerV2BraTSRegions_DA4_BN_BD_largeUnet_Groupnorm__nnUNetPlansv2.1/fold_3', '/hy-tmp/Brats21_KAIST_MRI_Lab-main/datasets/nnUNet_trained_models/nnUNet/3d_fullres/Task500_BraTS/nnUNetTrainerV2BraTSRegions_DA4_BN_BD_largeUnet_Groupnorm__nnUNetPlansv2.1/fold_4']
------folds------
/hy-tmp/Brats21_KAIST_MRI_Lab-main/datasets/nnUNet_trained_models/nnUNet/3d_fullres/Task500_BraTS/nnUNetTrainerV2BraTSRegions_DA4_BN_BD_largeUnet_Groupnorm__nnUNetPlansv2.1/fold_0
------------
Traceback (most recent call last):
  File "/usr/local/bin/nnUNet_predict", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/nnunet/inference/predict_simple.py", line 219, in main
    predict_from_folder(model_folder_name, input_folder, output_folder, folds, save_npz, num_threads_preprocessing,
  File "/usr/local/lib/python3.8/dist-packages/nnunet/inference/predict.py", line 658, in predict_from_folder
    return predict_cases(model, list_of_lists[part_id::num_parts], output_files[part_id::num_parts], folds,
  File "/usr/local/lib/python3.8/dist-packages/nnunet/inference/predict.py", line 184, in predict_cases
    trainer, params = load_model_and_checkpoint_files(model, folds, mixed_precision=mixed_precision,
  File "/usr/local/lib/python3.8/dist-packages/nnunet/training/model_restore.py", line 141, in load_model_and_checkpoint_files
    trainer = restore_model(join(folds[0], "%s.model.pkl" % checkpoint_name), fp16=mixed_precision)
  File "/usr/local/lib/python3.8/dist-packages/nnunet/training/model_restore.py", line 73, in restore_model
    raise RuntimeError("Could not find the model trainer specified in checkpoint in nnunet.trainig.network_training. If it "
RuntimeError: Could not find the model trainer specified in checkpoint in nnunet.trainig.network_training. If it is not located there, please move it or change the code of restore_model. Your model trainer can be located in any directory within nnunet.trainig.network_training (search is recursive).
Debug info:
checkpoint file: None
Name of trainer: nnUNetTrainerV2BraTSRegions_DA4_BN_BD_largeUnet_Groupnorm

I have the cause of this error. It is beacuse I didn't replace the nnUNet folder in python3.8/dist-package, where the origin nnUNet package do not have class nnUNetTrainerV2BraTSRegions_DA4_BN_BD_largeUnet.


Query to return anonymous type

Hi,
I used the below code to project a property from my entity.
IQuerySpecification<Company, string> companyQuery = new QuerySpecification<Company, string>();
companyQuery.Query
            .Select(c => c.Name)
            .Where(c => c.Id == CompanyId);

Please advise how can I project anonymous type. Something like
IQuerySpecification<Company, string> companyQuery = new QuerySpecification<Company, string>();
companyQuery.Query
                     .Select(c => new { c.Id, c.Name })    // Build Error
                     .Where(c => c.Id == CompanyId);

Thanks

Hi @Jimmy-Ahmed,
You may use object as the return type, EF works with runtime types and will be able to translate it properly. But, it all depends on what you plan to do with the result. If you just want to display or return it as a response, then it will work (as shown in the example below). Otherwise, if you plan to do further work against the result, then of course you won't be able to access the properties. For these scenarios, I'd strongly recommend to define a type. Now that we have records, it's oneliner anyway.
Here is a full sample
using Ardalis.Specification;
using Ardalis.Specification.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;

await AppDbContext.SeedAsync();

using var dbContext = new AppDbContext();
var repo = new Repository<Customer>(dbContext);
var spec = new CustomerSpec(1);

var result = await repo.FirstOrDefaultAsync(spec);

Console.WriteLine($"Result: {result}");

public class CustomerSpec : Specification<Customer, object>
{
    public CustomerSpec(int id)
    {
        Query.Where(c => c.Id == id);
        Query.Select(c => new { c.Id, c.Name });
    }
}
public interface IRepository<T> : IRepositoryBase<T> where T : class
{
}
public class Repository<T> : RepositoryBase<T>, IRepository<T> where T : class
{
    public Repository(AppDbContext dbContext) : base(dbContext)
    {
    }
}
public record Customer
{
    public int Id { get; set; }
    public string? Name { get; set; }
}
public class AppDbContext : DbContext
{
    public DbSet<Customer> Customers => Set<Customer>();
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        var connectionString = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=SpecAnonymousTypes;Integrated Security=SSPI;ConnectRetryCount=0;";
        optionsBuilder.UseSqlServer(connectionString).LogTo(Console.WriteLine, LogLevel.Information);
    }

    public static async Task SeedAsync()
    {
        using var dbContext = new AppDbContext();
        await dbContext.Database.EnsureDeletedAsync();
        await dbContext.Database.EnsureCreatedAsync();
        var customers = new List<Customer>
        {
            new() {Name = "Customer1"},
            new() {Name = "Customer2"},
            new() {Name = "Customer3"},
        };
        dbContext.Customers.AddRange(customers);
        await dbContext.SaveChangesAsync();
    }
}

And here is the output. Let us know if you have further questions.

Sure, just add the type in the previous example
using var dbContext = new AppDbContext();
var repo = new Repository<Customer>(dbContext);
var spec = new CustomerSpec(1);

var result = await repo.FirstOrDefaultAsync(spec);

Console.WriteLine($"Result: {result}");

public record CustomerDto(int Id, string? Name);

public class CustomerSpec : Specification<Customer, CustomerDto>
{
    public CustomerSpec(int id)
    {
        Query.Where(c => c.Id == id);
        Query.Select(c => new CustomerDto(c.Id, c.Name));
    }
}

Btw, doesn't have to be a record, it can be a class. I just mentioned it as an example, since it has a simple syntax.

Thanks a lot! :)


[CI][MATLAB] Tests fail with Licensing error

Describe the bug, including details regarding any error messages, version, and platform.
Run matlab-actions/run-tests@v2
  with:
    select-by-folder: matlab/test
    strict: false
    use-parallel: false
  env:
    ARROW_USE_CCACHE: ON
    CCACHE_COMPILERCHECK: content
    CCACHE_COMPRESS: 1
    CCACHE_COMPRESSLEVEL: 6
    CCACHE_MAXSIZE: 1G
    LD_PRELOAD: /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    MATLABPATH: matlab/install/arrow_matlab
Generate script
  Successfully generated script
Run command
  /home/runner/work/_actions/matlab-actions/run-tests/v[2](https://github.com/apache/arrow/actions/runs/7857518729/job/21441500404?pr=40021#step:10:2)/dist/bin/glnxa64/run-matlab-command setenv('MW_ORIG_WORKING_FOLDER', cd('/tmp/run_matlab_command-Tq5uLK'));command_1f1f145d_1c4b_40ff_9266_cd4c[3](https://github.com/apache/arrow/actions/runs/7857518729/job/21441500404?pr=40021#step:10:3)7d107bf
  License checkout failed.
  License Manager Error -1
  The license file cannot be found.

  Troubleshoot this issue by visiting:
  https://www.mathworks.com/support/lme/1

  Diagnostic Information:
  Feature: MATLAB
  License path: /home/runner/.matlab/R2023a_licenses:/opt/hostedtoolcache/MATLAB/2023.1.999/x6[4](https://github.com/apache/arrow/actions/runs/7857518729/job/21441500404?pr=40021#step:10:4)/licenses/license.dat:/opt/hostedtoolcache/MATLAB/2023.1.999/x64/licenses
  Licensing error: -1,3[5](https://github.com/apache/arrow/actions/runs/7857518729/job/21441500404?pr=40021#step:10:5)9. System Error: 2
  exit status 1
Error: Error: The process '/home/runner/work/_actions/matlab-actions/run-tests/v2/dist/bin/glnxa[6](https://github.com/apache/arrow/actions/runs/7857518729/job/21441500404?pr=40021#step:10:6)4/run-matlab-command' failed with exit code 1

Example failed builds:
https://github.com/apache/arrow/actions/runs/7857518729/job/21441500404?pr=40021
https://github.com/apache/arrow/actions/runs/7857518729/job/21441500338?pr=40021
https://github.com/apache/arrow/actions/runs/7857518729/job/21441500458?pr=40021
It looks like the same issues is effecting linux, mac OS and windows builds.
Component(s)
MATLAB

@kevingurney @sgilmore10 Could you take a look at this?

I don't know what changed but MATLAB builds seem to be passing now.


Add inline comments for deep copy patching

Adds clarifying comments about why DeepCopyObject is necessary when using Patch.

/lgtm


ValueError: Token None for key pad_token should be a str or an AddedToken instance

Failed to load deepseek-ai/deepseek-llm-7b-base (which is a model of the llama 2 architecture), is the following code necessary? hf tokenizer should automatically handle this according to tokenizer_config.json?
https://github.com/unslothai/unsloth/blob/3aa16bb452ab82d7a2b2987ec3bfb47c6812582c/unsloth/models/llama.py#L599-L601
File [/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/unsloth/models/llama.py:599](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/unsloth/models/llama.py:599), in FastLlamaModel.from_pretrained(model_name, max_seq_length, dtype, load_in_4bit, token, device_map)
    [586](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/unsloth/models/llama.py:586) model = AutoModelForCausalLM.from_pretrained(
    [587](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/unsloth/models/llama.py:587)     model_name,
    [588](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/unsloth/models/llama.py:588)     device_map = device_map,
   (...)
    [591](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/unsloth/models/llama.py:591)     token = token,
    [592](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/unsloth/models/llama.py:592) )
    [593](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/unsloth/models/llama.py:593) tokenizer = AutoTokenizer.from_pretrained(
    [594](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/unsloth/models/llama.py:594)     model_name,
    [595](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/unsloth/models/llama.py:595)     model_max_length = max_seq_length,
    [596](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/unsloth/models/llama.py:596)     padding_side = "right",
    [597](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/unsloth/models/llama.py:597)     token = token,
...
    [962](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/transformers/tokenization_utils_base.py:962)     if isinstance(value, (str)):
    [963](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/transformers/tokenization_utils_base.py:963)         # for legacy purpose we default to stripping. `False` depends on this
    [964](/workspaces/unsloth-train-playground/.venv/lib/python3.11/site-packages/transformers/tokenization_utils_base.py:964)         value = AddedToken(value, rstrip=False, lstrip=False, normalized=False, special=True)

ValueError: Token None for key pad_token should be a str or an AddedToken instance

I shall fix this ASAP! Thanks for the report!

@danielhanchen
is it really fixed?
i think it's happening because tokenizer has null with unk_token and trying to add pad_token with null
https://github.com/unslothai/unsloth/blob/d215fd902cf28feb8abcfde2d25281d0fbf9d28c/unsloth/models/_utils.py#L151
so it's like
unk_token = null
tokenizer.add_special_tokens({"pad_token" : unk_token})

Working on a quick fix now, just like Redix8 said, it is failing with Deepseek math when the unk_token is null. Therefore, adding another conditional check in line 151 and making a pull request.


Rename mock IActiveConfiguredProjectFactory

To match the name of the thing it's mocking.
This makes it easier to find.

tag @dotnet/project-system

How is this different from the other I*Factory mocks?

It's not, hence why the rename. All the other mock factories are named after the type they are mocking. This one is not, hence the rename. I was about to create a new mock factory for this when I realized there was already one - just with the wrong name.


Working directory label update

The label "Working folder with package.json" is misleading.
Suggesting to use "Working folder that contains package.json".
The following issue has also been updated on docs: https://github.com/MicrosoftDocs/vsts-docs/issues/2360

approved; heads up to @vtbassmatt


Fixing some issues docs/getting_started.rst

Set version number variable for ease of use. Added config file to enable inverted index generation. The commands are tested.

Codecov Report

Merging #4294 into master will increase coverage by 21.27%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             master    #4294       +/-   ##
=============================================
+ Coverage     45.95%   67.22%   +21.27%
- Complexity        0       20       +20
=============================================
  Files          1040     1040
  Lines         51662    51662
  Branches       7238     7238
=============================================
+ Hits          23739    34732    +10993
+ Misses        25892    14561    -11331
- Partials       2031     2369      +338

Impacted Files
Coverage Δ
Complexity Δ

...a/manager/realtime/RealtimeSegmentDataManager.java
75% <0%> (-25%)
0% <0%> (ø)

...egation/function/customobject/MinMaxRangePair.java
75.86% <0%> (-24.14%)
0% <0%> (ø)

.../impl/dictionary/LongOffHeapMutableDictionary.java
83.92% <0%> (-8.93%)
0% <0%> (ø)

.../impl/dictionary/FloatOnHeapMutableDictionary.java
82.6% <0%> (-6.53%)
0% <0%> (ø)

...impl/dictionary/FloatOffHeapMutableDictionary.java
91.07% <0%> (-3.58%)
0% <0%> (ø)

...der/HighLevelConsumerBasedRoutingTableBuilder.java
90.9% <0%> (-3.04%)
0% <0%> (ø)

...ata/manager/realtime/RealtimeTableDataManager.java
41.17% <0%> (-1.48%)
0% <0%> (ø)

...ot/core/query/pruner/ColumnValueSegmentPruner.java
87.32% <0%> (-1.41%)
0% <0%> (ø)

...ation/function/MinMaxRangeAggregationFunction.java
73.25% <0%> (-1.17%)
0% <0%> (ø)

...lix/core/realtime/PinotRealtimeSegmentManager.java
73% <0%> (ø)
0% <0%> (ø)
:arrow_down:

... and 529 more

Continue to review full report at Codecov.

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

Closed this PR due to 6 months inactivity. Reopen if needed.


Test channel/test_fixture does not work in BigEndian

Issue200.txt
Actual behavior
Out of the 3 test_fixture tests, the "channel" one fails on AIX, which is BigEndian.
These 3 tests work perfectly both on Fedora/x86_64 and Fedora/PPC64LE , which are both LittleEndian.
This issue on AIX occurs with "unsigned int" and "long unsigned int" only. Not with "unsigned short" nor "unsigned long". 4 individual tests are failing.
I think that the issue comes from LittleEndian vs BigEndian. However, I haven't yet found the exact place and the root issue. Thus, I provide in the attached file traces from gdb done on AIX and Fedora/x86_64 . I hope that it may provide enough data for Boost.gil expert to understand the exact place where comes the issue.
./libs/gil/test/core/channel/test_fixture.cpp :
+204      std::uint16_t data_ = 0;
On Fedora/x86_64, a 16bit integer is used on the right part of a 32bit word. Though on AIX it makes use of the left part of the 32bit word. Moreover, addresses are not addressed in the same way (left to right on AIX). That may lead to issues.
On AIX, for "unsigned short", I see that copies are done that change data_ to 0xffff... , which is 65535 and is correct. However, for "unsigned int", I see that several attempts are done to write in data_ :  however, each time the value to be copied is 0 , thus data_ never is 65535 but 0x0000.... instead .
On Fedora/x86_64, that works fine.
Expected  behavior

fix.data_ is expected to be 65535 though it is 0 for "unsigned int" cases.

The test_fixture shows the issue perfectly. No shorter program available for now.
Environment

Compiler version: GCC 8.4 or 9.3
Build settings: g++ -O0 -g -gdwarf -fvisibility-inlines-hidden -fPIC -maix64 -pthread -mcmodel=large -fno-inline -Wall -fvisibility=hidden -ffp-contract=off -ftls-model=initial-exec -fstrict-aliasing -pedantic -Wextra -Wcast-align -Wconversion -Wfloat-equal -Wshadow -Wsign-promo -Wstrict-aliasing -Wunused-parameter -DBOOST_ALL_NO_LIB=1 -DBOOST_BEAST_ALLOW_DEPRECATED -DBOOST_BEAST_SEPARATE_COMPILATION -DBOOST_GIL_USE_CONCEPT_CHECK=1 -I.. -I../libs/gil/test
Version (Git ref or <boost/version.hpp>): 1.73.0

First issue in the code.
On a Fedora31/x86_64 machine, I have this:
../boost/gil/channel.hpp:
template <std::size_t K>
struct static_copy_bytes
{
    void operator()(unsigned char const* from, unsigned char* to) const
    {
printf("     static_copy_bytes:  from: %p  %3u 0x%2hhx   to: %p  %3u 0x%2hhx Bef\n", from, *from, *from, to, *to , *to);
        *to = *from;
printf("     static_copy_bytes:  from: %p  %3u 0x%2hhx   to: %p  %3u 0x%2hhx Aft\n", from, *from, *from, to, *to , *to);
        static_copy_bytes<K - 1>()(++from, ++to);
    }
};
.......
    bitfield_t get_data() const {
        bitfield_t ret;
        printf(" get_data     sizeof(bitfield_t): %d  sizeof(data_ptr_t): %d   sizeof(*data_ptr_t): %d \n", sizeof(bitfield_t), sizeof(data_ptr_t), sizeof(d
ata_ptr_t *) );
        printf("        data_ptr_t  _data_ptr :  %p *_data_ptr: %d 0x%x \n",  _data_ptr , * static_cast<std::uint16_t *>(_data_ptr), * static_cast<std::uint
16_t *>(_data_ptr) );
        printf("                    &ret      :  %p \n",                                      &ret );
        static_copy_bytes<sizeof(bitfield_t) >()(gil_reinterpret_cast_c<const unsigned char*>(_data_ptr),gil_reinterpret_cast<unsigned char*>(&ret));
        printf("        bitfield_t  ret       :   %10d 0x%x \n\n", ret, ret);
        return ret;
    }

    void set_data(const bitfield_t& val) const {
        printf(" set_data  &val:      %p   val:        %d\n", &val, val);
        static_copy_bytes<sizeof(bitfield_t) >()(gil_reinterpret_cast_c<const unsigned char*>(&val),gil_reinterpret_cast<unsigned char*>(_data_ptr));
        printf(" set_data  _data_ptr: %p   *_data_ptr: %d\n", _data_ptr, *((int *)_data_ptr) );
    }

libs/gil/test/core/channel/test_fixture.hpp :
template <typename BitField>
struct packed_channels565
{
...
    std::uint16_t data_ = 0;
...
    packed_channels565() : channel1_(&data_), channel2_(&data_), channel3_(&data_)
    {
printf(" packed_channels565:  sizeof(struct packed_channels565) %d   &data_: %p \n", sizeof(struct packed_channels565), &data_ );
printf(" packed_channels565:                                          data_: %u 0x%x  All: %d \n", data_, data_, *((unsigned int *) &data_ ) );
for(int i=0 ; i<4 ; i++)
{
        printf("     data_[%d]: 0x%2hhx \n", i, *(((unsigned char *)(&data_))+i) );
}

giving the result:
packed_channels565:  sizeof(struct packed_channels565) 32   &data_: 0x7ffebcec1a60
 packed_channels565:                                          data_: 0 0x0  All: 0
     data_[0]: 0x 0
     data_[1]: 0x 0
     data_[2]: 0x 0
     data_[3]: 0x 0

....................

 get_data     sizeof(bitfield_t): 4  sizeof(data_ptr_t): 8   sizeof(*data_ptr_t): 8
        data_ptr_t  _data_ptr :  0x7ffebcec1a60 *_data_ptr: 0 0x0
                    &ret      :  0x7ffebcec1988
     static_copy_bytes:  from: 0x7ffebcec1a60    0 0x 0   to: 0x7ffebcec1988  142 0x8e Bef
     static_copy_bytes:  from: 0x7ffebcec1a60    0 0x 0   to: 0x7ffebcec1988    0 0x 0 Aft
     static_copy_bytes:  from: 0x7ffebcec1a61    0 0x 0   to: 0x7ffebcec1989   18 0x12 Bef
     static_copy_bytes:  from: 0x7ffebcec1a61    0 0x 0   to: 0x7ffebcec1989    0 0x 0 Aft
     static_copy_bytes:  from: 0x7ffebcec1a62    0 0x 0   to: 0x7ffebcec198a   64 0x40 Bef
     static_copy_bytes:  from: 0x7ffebcec1a62    0 0x 0   to: 0x7ffebcec198a    0 0x 0 Aft
     static_copy_bytes:  from: 0x7ffebcec1a63    0 0x 0   to: 0x7ffebcec198b    0 0x 0 Bef
     static_copy_bytes:  from: 0x7ffebcec1a63    0 0x 0   to: 0x7ffebcec198b    0 0x 0 Aft
        bitfield_t  ret       :            0 0x0

I mean to say:

data_ is defined as a half 32bit integer: a short
address of data_ is: 0x7ffebcec1a60  but only bytes 0x7ffebcec1a60 and 0x7ffebcec1a61 are initialized to 0x0 thanks to the line:   std::uint16_t data_ = 0;
during the test, values are copied from 0x7ffebcec1a60+ places to another memory place, and vice-versa.
at the beginning, for "unsigned short", only 2 bytes are copied to and from the 2 memory places, using the 2 bytes of 0x7ffebcec1a60 and 0x7ffebcec1a61 .
however, at a moment (for "unsigned int"), values from the 4 bytes starting at 0x7ffebcec1a60 are copied to the second memory place, thus copying from 0x7ffebcec1a60 to 0x7ffebcec1a63 .
BUT only the 2 first bytes have been initialized by the line:   std::uint16_t data_ = 0;    !!!
Though, on Fedora, the whole 32bit word contains 0 at the beginning, it is not the case on AIX: the 4th bytes contains: 0x1 :

 packed_channels565:  sizeof(struct packed_channels565) 32   &data_: ffffffffffff498
 packed_channels565:                                          data_: 0 0x0  All: 1
     data_[0]: 0x 0
     data_[1]: 0x 0
     data_[2]: 0x 0
     data_[3]: 0x 1

Thus, a non-null value appears when running the test on AIX though on Fedora/Intel, a 0 is copied. The test works on Intel thanks to the memory being cleaned, full of 0. It is not the case for AIX. And the program should not expect the memory to be clean.
I think that there is an first issue in the algorithm, where the whole word where data_ is created should be initialized by 0 and not only the 2 bytes of data_ .

Second issue in the code.
../libs/gil/test/core/channel/test_fixture.cpp:
struct test_packed_channels565
{
    template <typename BitField>
    void operator()(BitField const &)
    {
        using bitfield_t = BitField;
        static_assert(std::is_integral<bitfield_t>::value, "bitfield is not integral type");

        // Regardless of BitField buffer bit-size, the fixture is initialized
        // with max value that fits into 5+6+5 bit integer
        fixture::packed_channels565<bitfield_t> fix;
        fixture::channel_minmax_value<std::uint16_t> exp;
printf("test_packed_channels565:         &fix.data_: %p  &exp.max_v_: %p \n", &fix.data_, &exp.max_v_ );
printf("test_packed_channels565:          fix.data_: %d   exp.max_v_: %d \n",  fix.data_,  exp.max_v_ );
        BOOST_TEST_EQ(fix.data_, exp.max_v_);
    }
...

On a Fedora31/x86_64 machine, I have this for "unsigned int" :
packed_channels565:  sizeof(struct packed_channels565) 32   &data_: 0x7ffebcec1a60

......

 set_data  &val:      0x7ffebcec19c8   val:        65535
     static_copy_bytes:  from: 0x7ffebcec19c8  255 0xff   to: 0x7ffebcec1a60  255 0xff Bef
     static_copy_bytes:  from: 0x7ffebcec19c8  255 0xff   to: 0x7ffebcec1a60  255 0xff Aft
     static_copy_bytes:  from: 0x7ffebcec19c9  255 0xff   to: 0x7ffebcec1a61    7 0x 7 Bef
     static_copy_bytes:  from: 0x7ffebcec19c9  255 0xff   to: 0x7ffebcec1a61  255 0xff Aft
     static_copy_bytes:  from: 0x7ffebcec19ca    0 0x 0   to: 0x7ffebcec1a62    0 0x 0 Bef
     static_copy_bytes:  from: 0x7ffebcec19ca    0 0x 0   to: 0x7ffebcec1a62    0 0x 0 Aft
     static_copy_bytes:  from: 0x7ffebcec19cb    0 0x 0   to: 0x7ffebcec1a63    0 0x 0 Bef
     static_copy_bytes:  from: 0x7ffebcec19cb    0 0x 0   to: 0x7ffebcec1a63    0 0x 0 Aft
 set_data  _data_ptr: 0x7ffebcec1a60   *_data_ptr: 65535
test_packed_channels565:         &fix.data_: 0x7ffebcec1a60  &exp.max_v_: 0x7ffebcec1a5e
test_packed_channels565:          fix.data_: 65535   exp.max_v_: 65535

And thus the test succeeds because data 0X255 & 0X255 are copied to the beginning of data_ , from 0x7ffebcec1a60  to 0x7ffebcec1a61 , generating 65535.
However, on AIX, I have:
 packed_channels565:  sizeof(struct packed_channels565) 32   &data_: ffffffffffff498

........

 set_data  &val:      ffffffffffff2f4   val:        65535
     static_copy_bytes:  from: ffffffffffff2f4    0 0x 0   to: ffffffffffff498    0 0x 0 Bef
     static_copy_bytes:  from: ffffffffffff2f4    0 0x 0   to: ffffffffffff498    0 0x 0 Aft
     static_copy_bytes:  from: ffffffffffff2f5    0 0x 0   to: ffffffffffff499    0 0x 0 Bef
     static_copy_bytes:  from: ffffffffffff2f5    0 0x 0   to: ffffffffffff499    0 0x 0 Aft
     static_copy_bytes:  from: ffffffffffff2f6  255 0xff   to: ffffffffffff49a    7 0x 7 Bef
     static_copy_bytes:  from: ffffffffffff2f6  255 0xff   to: ffffffffffff49a  255 0xff Aft
     static_copy_bytes:  from: ffffffffffff2f7  255 0xff   to: ffffffffffff49b  255 0xff Bef
     static_copy_bytes:  from: ffffffffffff2f7  255 0xff   to: ffffffffffff49b  255 0xff Aft
 set_data  _data_ptr: ffffffffffff498   *_data_ptr: 65535
test_packed_channels565:         &fix.data_: ffffffffffff498  &exp.max_v_: ffffffffffff4ba
test_packed_channels565:          fix.data_: 0   exp.max_v_: 65535

Which shows that values on the left are copied to the second part of the 32bit word, to bytes ffffffffffff49a  and ffffffffffff49b, instead of  ffffffffffff498 and ffffffffffff499, where is "data_".
And thus, its value is 0 and not 65535.
There is some Little Endian thing that makes the algorithm to not start correctly in the correct half part of the 32bit short, thus coping values in the wrong half word pointed by data_ .
However, for now, I've still not found which line of code is the root cause for this. However, it is probably in:
   static_copy_bytes<sizeof(bitfield_t) >()(gil_reinterpret_cast_c<const unsigned char*>(_data_ptr),gil_reinterpret_cast<unsigned char*>(&ret));

or in:
static_copy_bytes<K - 1>()(++from, ++to);


Final Racing Cyberspace 2001

When I try to start a race, I get this messed-up graphics that won't let me do anything. I'm forced to exit the game.

DDrawCompat-racing.log
DDrawCompat-halh.log

Yeah, I can't get this game working either. Instead of that black screen with some HUD elements, I get a crash when loading a race. I've tried all combinations of the various patches (official patch, XP patch), CD copied to disk with registry update, etc., nothing works. It doesn't even run in a VM.
Does the game work for you without DDrawCompat? Have you tried rmh.exe also? That one is not hardware accelerated so it should be simpler to run, in theory. But I get the exact same crash with it as with halh.exe anyway.
I've no idea how to fix it, but from looking at the debug logs with DDrawCompat, it's not a DirectDraw/Direct3D issue.
I gave up trying after wasting several hours on it, I don't have time to reverse engineer the cause of the loading issue. The only curious thing I found is that the game creates a bunch of 0 size .x files upon launch, but maybe that happens for people who can run the game too, I couldn't find any info about it.

The game runs fine without ddrawcompat, but suddenly crashes during the race. I can only get this version to work with dgvoodoo2. This game is known to be a headache on modern systems. It turns out that if I install the game using the detailed redump version with the setup fix, it works smoothly with ddrawcompat. However, with the versions from myabandonware or old-game.ru, I encounter the mentioned errors. Here's the link where you can find the detailed version that works with ddrawcompat: link. I have a hunch that the ripped version might have been slightly altered to work on modern systems through another patch. Unlike the detailed version, it seems the ripped version has all tracks unlocked.


[KYUUBI #4472] add session/operation methods in AdminRestApi

Why are the changes needed?

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

@turboFei

Codecov Report

Merging #4476 (72eaa05) into master (222a334) will decrease coverage by 0.01%.
The diff coverage is 100.00%.

:exclamation: Current head 72eaa05 differs from pull request most recent head 329b40c. Consider uploading reports for the commit 329b40c to get more accurate results

@@             Coverage Diff              @@
##             master    #4476      +/-   ##
============================================
- Coverage     53.32%   53.31%   -0.01%
  Complexity       13       13
============================================
  Files           571      571
  Lines         31249    31262      +13
  Branches       4214     4214
============================================
+ Hits          16663    16668       +5
- Misses        13011    13016       +5
- Partials       1575     1578       +3

Impacted Files
Coverage Δ

...in/java/org/apache/kyuubi/client/AdminRestApi.java
89.47% <100.00%> (+5.47%)
:arrow_up:

...rg/apache/kyuubi/ctl/cmd/log/LogBatchCommand.scala
59.09% <0.00%> (-7.58%)
:arrow_down:

...g/apache/kyuubi/operation/BatchJobSubmission.scala
75.27% <0.00%> (-2.20%)
:arrow_down:

...n/scala/org/apache/kyuubi/engine/ProcBuilder.scala
78.39% <0.00%> (-0.62%)
:arrow_down:

...in/spark/authz/ranger/SparkRangerAdminPlugin.scala
67.10% <0.00%> (+2.63%)
:arrow_up:

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

thanks, merging to master