Propagate default device settings  to internally created "reduce" tasks

Fix for the issue https://github.com/beehive-lab/TornadoVM/issues/64 -- "reduce" tests fail when default device is altered
Description
Previous PR https://github.com/beehive-lab/TornadoVM/pull/61 to provide vm-wide default driver/device settings for the application is incomplete.
Problem description
Code in PR61 doesn't take on account "reduction" tasks created by Tornado automatically. In effect, "reduction" tasks get default (0:0) device while "user-defined" tasks follow the VM-wide settings for driver/device. This leads to the error while Tornado will try to execute 2 interrelated tasks on different devices.
Backend/s tested
OpenCL
OS tested
Windows 10,
3 OpenCL devices - NVIDIA GPU, AMD GPU, Intel CPU (listed in this order by tornado --devices)
Did you check on FPGAs?
The code was not tested on FPGAs, it looks like uk.ac.manchester.tornado.runtime.tasks.ReduceTaskSchedule #inspectBinariesFPGA must be adjusted as well.
How to test the new patch?
You need at least 2 OpenCL devices. After compilation try to run tests that involves reduction with overridden default device, for ex:
tornado -Dtornado.unittests.verbose=True -Xmx6g -Dtornado.recover.bailout=True --printBytecodes -Dtornado.driver=0 -Dtornado.device=1 uk.ac.manchester.tornado.unittests.tools.TornadoTestRunner  uk.ac.manchester.tornado.unittests.reductions.TestReductionsLong

All PRs are pushed to develop.
Additionally, we have a new template to follow for each PR.
https://github.com/beehive-lab/TornadoVM/blob/master/.github/pull_request_template.md

FPGA-related code is addressed as well

I'd like to summarize changes to avoid them looking too scary:

Primary affected classes are TornadoTaskSchedule and ReduceTaskSchedule
Explicit management of Java threads is removed and replaced with Future / CompletableFuture + ThreadPoolExecutor from TornadoCoreRuntime - btw, it's modified to use daemon threads and do not prevent JVM from exiting.
I minimized the spread of DEFAULT_DRIVER settings across code, now only executeWithXXX methods specifies what driver to use.
I noticed that you are using System.setProperty to pass per-task settings in both dynamic code generation scenario and reductions scenario - I've overloaded a pair of API methods to let specify settings programmatically and avoid polluting global System.properties` with strings.
On my side all tests are passed with these changes.

Thank you @vsilaev . We will look into this in the following days. Hopefully by Monday.

We have an API call to change the device by using taskSchedule.mapAllTo(device). Why not use this call in the reductions directly?
https://github.com/beehive-lab/TornadoVM/blob/master/tornado-api/src/main/java/uk/ac/manchester/tornado/api/TaskSchedule.java#L234-L237
Also, it looks to me the hybrid reductions are removed?

We have an example also about how to change the default device here:
https://github.com/beehive-lab/TornadoVM/blob/master/unittests/src/main/java/uk/ac/manchester/tornado/unittests/common/TornadoTestBase.java#L74

We have an API call to change the device by using taskSchedule.mapAllTo(device). Why not use this call in the reductions directly?
https://github.com/beehive-lab/TornadoVM/blob/master/tornado-api/src/main/java/uk/ac/manchester/tornado/api/TaskSchedule.java#L234-L237
Also, it looks to me the hybrid reductions are removed?

Using just TaskSchedule.mapAllTo(...) doesn't handle the case for  setting GlobalAndLocalDimensionsFPGA in ReduceTaskSchedule -- you are using System.setProperty(...) in this case. Otherwise it should be possible. I can revert code to left old "teleport" via System.setProperty() just for this and use mapAllTo(...) to set device.
Should I proceed?

Reductions are broken. If the build is only for one backend, we get the following errors:
$ make test-hdgraphics
tornado-test.py -V -J"-Ds0.t0.device=0:2 -Ds0.t1.device=0:2" uk.ac.manchester.tornado.unittests.reductions.TestReductionsFloats

Test: class uk.ac.manchester.tornado.unittests.reductions.TestReductionsFloats
	Running test: testSumFloats              ................  [FAILED]
		\_[REASON] failed guarantee: No sketch available for 0:0 reductionAddFloats
	Running test: testSumFloatsConstant      ................  [FAILED]
		\_[REASON] failed guarantee: No sketch available for 0:0 reductionAddFloatsConstant
	Running test: testSumFloatsLarge         ................  [FAILED]
		\_[REASON] failed guarantee: No sketch available for 0:0 reductionAddFloatsLarge
	Running test: testSumFloats2             ................  [FAILED]
		\_[REASON] failed guarantee: No sketch available for 0:0 reductionAddFloats3
	Running test: testSumFloats3             ................  [FAILED]
		\_[REASON] failed guarantee: No sketch available for 0:0 reductionAddFloats4
	Running test: testComputeAverage         ................  [PASS]
	Running test: testMultFloats             ................  [FAILED]
		\_[REASON] failed guarantee: No sketch available for 0:0 multiplyFloats
	Running test: testComputePi              ................  [FAILED]
		\_[REASON] failed guarantee: No sketch available for 0:0 computePi
	Running test: testMaxReduction           ................  [FAILED]
		\_[REASON] failed guarantee: No sketch available for 0:0 maxReductionAnnotation
	Running test: testMaxReduction2          ................  [FAILED]
		\_[REASON] failed guarantee: No sketch available for 0:0 maxReductionAnnotation2
	Running test: testMinReduction           ................  [FAILED]
		\_[REASON] failed guarantee: No sketch available for 0:0 minReductionAnnotation
	Running test: testMinReduction2          ................  [FAILED]
		\_[REASON] failed guarantee: No sketch available for 0:0 minReductionAnnotation2
Test ran: 12, Failed: 11

It's VERY interesting issue. The roots are in TornadoVM.compileTaskFromBytecodeToBinary where you overwrite task-specific device with context-specific one (coming from TaskSchedule).
For ex, the following test will run ok with the following command-line changes:
tornado-test.py -V -J"-Ds0.t0.device=0:2 -Ds0.t1.device=0:2 -Ds0.device=0:2" uk.ac.manchester.tornado.unittests.reductions.TestReductionsFloats

Will try to fix this method...

We have an API call to change the device by using taskSchedule.mapAllTo(device). Why not use this call in the reductions directly?
https://github.com/beehive-lab/TornadoVM/blob/master/tornado-api/src/main/java/uk/ac/manchester/tornado/api/TaskSchedule.java#L234-L237
Also, it looks to me the hybrid reductions are removed?

Using just TaskSchedule.mapAllTo(...) doesn't handle the case for setting GlobalAndLocalDimensionsFPGA in ReduceTaskSchedule -- you are using System.setProperty(...) in this case. Otherwise it should be possible. I can revert code to left old "teleport" via System.setProperty() just for this and use mapAllTo(...) to set device.
Should I proceed?

I understand it is not ideal, but the code will be much simpler. Internally we are changing how to access the devices,, so for us, it will be easy to accommodate those changes from this. So yes, please, you can proceed this way.

We have an API call to change the device by using taskSchedule.mapAllTo(device). Why not use this call in the reductions directly?
https://github.com/beehive-lab/TornadoVM/blob/master/tornado-api/src/main/java/uk/ac/manchester/tornado/api/TaskSchedule.java#L234-L237
Also, it looks to me the hybrid reductions are removed?

Using just TaskSchedule.mapAllTo(...) doesn't handle the case for setting GlobalAndLocalDimensionsFPGA in ReduceTaskSchedule -- you are using System.setProperty(...) in this case. Otherwise it should be possible. I can revert code to left old "teleport" via System.setProperty() just for this and use mapAllTo(...) to set device.
Should I proceed?

I understand it is not ideal, but the code will be much simpler. Internally we are changing how to access the devices,, so for us, it will be easy to accommodate those changes from this. So yes, please, you can proceed this way.

Unfortunately, after thorough review I can say that this is incorrect to use TaskSchedule.mapAllTo(...) - just because of all in the name of the method, that correctly reflects that all tasks in schedule will get same device, but in this case it's necessary to set one device per concrete task. Looks like it's necessary to either left properties or introduce TaskSchedule.setDeviceForTask that will compliment existing TaskSchedule.getDeviceForTask. And SchedulableTask along with 2 subclasses CompilableTask and  BuiltinTask already have necessary mathod mapTo(device). What do you think?

Now all failed tests reported should pass

@jjfumero , I have no feedback from you - but nevertheless, I modified the code and remove any *.properties() API extensions and introduced TaskSchedule.setDeviceForTask that pairs TaskSchedule.getDeviceForTask. Also this allowed to revert back a lot of changes compared to the baseline of the develop branch.

Also I've reverted changes to TornadoVM to let reduction tests with alt. device working. Now it works without changes while correspondence between execution contexts and tasks' devices are maintained correctly.

I'm about to "celebrate" 3 months of keeping this PR up to date. Do you still have plans to review and apply it?
Also, I have a pending prototype of async (non-blocking) execution of OpenCL queue-s -- and these changes depend on the PR in question. (CUDA is planned as well).
Please confirm if you plan to apply the PR and you are interesting in the next work from me, or it's simpler to start my own fork.

Hi @vsilaev.
thanks for your interest, and the reminder ;-)
Concerning the current PR: the changes proposed mix refactoring with a new functionality. I suggest to split it. Moreover, we believe there is an easier way to change device for reductions. Note that TornadoVM builds an abstraction of the OpenCL and PTX devices. So bypassing can create some issues internally. I suggest agreeing in a design before finalizing the PR. Could you please open a shared doc with your proposal?

Also, I have a pending prototype of async (non-blocking) execution of OpenCL queue-s -- and these changes depend on the PR in question. (CUDA is planned as well).

For the async feature, please, open a proposal in a shared document (e.g., Google doc). So we can iterate and co-design the changes. This is important for us, since we have ongoing European projects in which are implementing new features. Having a document will help the TornadoVM team to design new features with the new proposals in mind.
Looking forward to your proposals.
Juan

Concerning the current PR: the changes proposed mix refactoring with a new functionality.

Could you point where exactly? The API changes are minimal and just exposes fields to access task metadata by id. This is necessary for impl. Nothing besides this.

Note that TornadoVM builds an abstraction of the OpenCL and PTX devices. So bypassing can create some issues internally.

In this PR nothing is bypassed. PTX vs OpenCL is related for "async" and only due to fact that I have less experience with CUDA.

Could you point where exactly? The API changes are minimal and just exposes fields to access task metadata by id. This is necessary for impl. Nothing besides this.

Here's an example. Changes like this are for refactoring. This does not have anything to do with the implementation of the device index for the reduction.
https://github.com/beehive-lab/TornadoVM/pull/65/files#diff-e734b0a600c8c9d0a7ee3de55cd7d1ff4b9570f8868247828d0e8602e340e49cR1266-R1297
There is already a way to select the device (-D<shedulename>.<taskNAme>.device=<driver:deviceIndex>). TornadoVM builds an abstraction for all devices. You can take advantage of this abstraction and select this from the TornadoVM driver. There is a driver per backend (OpenCL and PTX).

Well, I disagree that such config-driven settings are better than API-driven. And trashing. System.properties with numerous settings per task is not the best option. Plus you are not taking on account that this was proposed to supply VM-wide defaults rather than per-task settings - otherwise it's a tedious task to implement smth. like app->device affinity (app uses specified device).
Anyway, i'm going to build my own theme park maintain my own fork... with blackjack and async.
Closing PR.

The suggested changes do not require system properties. It will take the device from the information stored in the driver implementation of TornadoVM.
Again this PR mixes new functionality with unrelated refactor. What we suggested was splitting the PR and follow the guidelines.
Furthermore, we haven't got any proposals.


Failure request when put app in foreground.

In my app I show message to user when request fails.
Request can fail (in my case) for 3 reasons.

response status code is different from 200,
json parsing can fail,
request can timeout (Moya failure case gets executed)

I have problem with 3, when request timeouts.
Problem shows up when I open app (some requests gets fired) and immediately(before requests got finished) put app in background. And then after 30s( I set request timeout to be 30s) I open app again, and I see message in my app showing that request has failed.
I don't know how to solve this, maybe there is some way to cancel all requests when putting app in background ?

Hey @dtomicAZ, great question! I want to make sure I understand exactly what you're trying to do before answering. Are you saying you want to cancel all requests as soon as your app is backgrounded, or you want to try to have requests succeed after the app has been backgrounded?

Hi, @AndrewSB
For me better would be 1. solution, to cancel all requests as soon as my app is backgrounded, thank you.

I'd do this by

storing a list of all the in flight requests
Iterating through and cancelling each of those requests in my AppDelegate, in the appWIllBackground delegate method or something similar

@AndrewSB Thank you for info.
I found another solution, to dismiss error messages in applicationWillEnterForeground.
I am using RMessage lib for showing message alert, so this was one line of code:
RMessage.dismissActiveNotification()


Add User Login component

Purpose

The purpose of this PR is to fix #5
Goals

Add User Login component to the repository

Approach

Screenshots

Checklist

[ ] This PR doesn't commit any keys, passwords, tokens, usernames, or other secrets.
[ ] I have read and understood the development best practices guidelines ( http://bit.ly/sef-best-practices )
[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation

Related PRs

Test environment

Learning

@anjula-sack @kumuditha-udayanga @Piumal1999 Could you please review this

Good job! @RandilaP can you resolve the conflicts?

Any updates @RandilaP?

@anjula-sack @kumuditha-udayanga Could you please review this

This has been done by https://github.com/sef-global/scholarx-frontend/pull/59


Actions: skip "Create Github release" job when dispatching from "Rebuild release images"

Goreleaser will fail to create a Github release for a given Git tag, if the release already exist.
This currently happens on a monthly schedule (Workflow definition), although it shouldn't:
await github.rest.actions.createWorkflowDispatch({
  owner:       context.repo.owner,
  repo:        context.repo.repo,
  workflow_id: 'release.yml',
  ref:         releaseTag,
  inputs: {
    goreleaser:  'false',
    releaseType: 'release',
  }
})
console.log(`triggered release for ${releaseTag} (${releaseRef})`)

goreleaser: 'false' should inhibit creating Github releases.
The latest Workflow log contains:
triggered release for v0.4.1 (fa1c31bae6ead1c665b5534fc05eb52768c74920)

That wasn't it...

It seems like github.rest.repos.getLatestRelease only looks at GitHub releases, not the Git tags :thinking:


Easier checkbox style changing

It is annoying when I want to change the checkbox type to one that is not empty or done and so I have to turn off reading view, and then edit the text to change it to something else.
I would like to be able to change the checkbox type using something like a context menu or by hovering over the checkbox and instead of left clicking on it, I could enter the corresponding character for that checkbox type.

This is unrelated to what themes can do. Take a look at plugins that can help with this.


Adapt dashboard to CSP

We implemented a content security policy in #4244 ff. It doesn't allow inline scripts or styles, nor data: URIs in src attributes.

LGTM, waiting for travis


enable this extension also for behat cucumber files

Hello,
According to the phpactor behat integration documentation, I have to configure the language server to be enabled on "php" and "cucumber" file types.
If I read correctly, currently the coc-phpactor extension enables the phpactor language server only for php files.
Is it possible to add cucumber files too by default or to add an extension option to enable the language server for these files ?

I guess it should be fine. If the supported file types are set in the coc extebsion then feel free to make an MR :)

Well, I've just tried to create a patch to add cucumber file type for the extension, but it did not work: https://github.com/Trim/coc-phpactor/commit/985ad76ac850886373397db29c3fd96231a544bf
After applying this patch:

I run yarn install to rebuild the extension
I open a feature file with vim feature/some.feature with a vim installation which has coc.nvim installed without the coc-phpactor. The project is a new Symfony7 project with this phpactor configuration:

{
    "$schema": "/var/home/adrien/.local/applications/phpactor/phpactor.schema.json",
    "symfony.enabled": true,
    "indexer.exclude_patterns": [
        "/vendor/**/Tests/**/*",
        "/vendor/**/tests/**/*",
        "/var/cache/**/*",
        "/vendor/composer/**/*"
    ],
    "behat.enabled": true,
    "behat.symfony.di_xml_path": "%project_root%/var/cache/dev/App_KernelDevDebugContainer.xml"
}

I use the vim command :set runtimepath^=~/code/coc-phpactor/ with path to my patched coc-phpactor directory
I run the vim command :CocInfo and I have these logs:

## versions

vim version: VIM - Vi IMproved 9.1 9010031
node version: v20.10.0
coc.nvim version: 0.0.82-d1568d56 2023-09-29 19:43:34 +0800
coc.nvim directory: /var/home/adrien/code/config/vim/pack/adrien/start/coc.nvim
term: tmux
platform: linux

## Log of coc.nvim

2024-01-22T21:43:27.647 INFO (pid:123131) [configurations] - Add folder configuration from file: /var/home/adrien/.vim/coc-settings.json
2024-01-22T21:43:27.785 INFO (pid:123131) [extension:coc-git] - Looking for git in: git
2024-01-22T21:43:27.977 INFO (pid:123131) [plugin] - coc.nvim initialized with node: v20.10.0 after 549
2024-01-22T21:44:27.492 INFO (pid:123131) [attach] - receive notification: highlight []
2024-01-22T21:44:31.096 INFO (pid:123131) [attach] - receive notification: showInfo []

Although, if I open a PHP file I see well the log message:

2024-01-22T21:48:57.033 INFO (pid:123131) [language-client-index] - Language server "phpactor" started with 124058

I don't understand why it doesn't work for cucumber files as I've never did a coc-nvim extension before. Some help would be appreciated :)
For the moment, I've set this coc configuration which seems to do the same thing than the coc-phpactor extension, but it works well for both php and cucumber files:
{
  "languageserver": {
    "local-phpactor": {
      "enable": true,
      "filetypes": ["php", "cucumber"],
      "command": "phpactor",
      "args": ["language-server"]
    }
  }
}


Error

Version
Build/Run method

[ ] Manually built (git clone - npm install - npm run build )

Zwave2Mqtt version: 1.2.3
Openzwave Version: 1.6
ZWave2MQTT error: /home/pi/ZWave2MQTT/node_modules/openzwave-shared/build/Release/openzwave_shared.node: undefined symbol: ZN9OpenZWave7Options6CreateERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8

@Ghada-Ch You are running a very old version of z2m, could you try to use latest please?

Sorry,there is a command line to upgrade or I shoud remove it and install again !!???

mkdir Zwave2Mqtt
cd Zwave2Mqtt
download latest version
curl -s https://api.github.com/repos/OpenZWave/Zwave2Mqtt/releases/latest
| grep "browser_download_url.zip"
| cut -d : -f 2,3
| tr -d "
| wget -i -
unzip zwave2mqtt-v.zip
./zwave2mqtt
I run this code but when I exec ./zwave2mqtt
I got this error
./zwave2mqtt: 1: ./zwave2mqtt: ELF: not found
./zwave2mqtt: 2: ./zwave2mqtt: Syntax error: "(" unexpected

Run the command uname -a and tell me the output. The pkg version only works on amd64

Linux raspberrypi 4.19.118+ #1311 Mon Apr 27 14:16:15 BST 2020 armv6l GNU/Linux

Ok that's the problem, go for docker


[BP-1.18][FLINK-32994][runtime] Adds proper toString() implementations to the LeaderElectionDriver implementations to have human-readable versions of the driver in log messages

1.18 backport for parent PR #23327

Parent PR was approved. No conflicts during the backport appeared.


Detached HTMLTemplateElement memory leak

Which package(s) are affected?
Lit Core (lit / lit-html / lit-element / reactive-element)
Description
I duplicated the Lit Basic Example (https://lit.dev/playground/#sample=examples/hello-world) locally, ran it in Chrome, switched to the Memory tab and pressed the garbage collection button. Then when taking a Heap Snapshot Chrome reports several detached elements referenced by lit-html.ts.
I am linking with lit version 2.7.5.
Reproduction
The Lit provided Basic Example at "https://lit.dev/playground/#sample=examples/hello-world" demonstrates the problem.
Workaround
I have not found a workaround.
Is this a regression?
No or unsure. This never worked, or I haven't tried before.
Affected versions
2.7.5
Browser/OS/Node environment
Chrome 114.0.5735.90 (Official Build) (x86_64)
MacOS Version 13.4 (22F66
Node v18.14.2

It's expected that lit-html holds references to HTMLTemplateElements as part of it's template cache. The template elements are what we clone to render lit-html templates. We create them only once and reuse them for subsequent renders.

Is this documented anywhere and is there anyway to flush the cache?

@AndrewJakubowicz is refreshing our internals docs in #3931 which will cover this.
We don't currently expose the ability to manage the cache. Such an API would need to be used with care, as it would cause renders that would normally update the DOM in place to instead destroy and regenerate it from scratch. Do you have a use case in mind?

Is the cache in your case causing undue memory pressure? How many templates do you have?
The cache is already a WeakMap - if the templates can no longer render because the code that refers to them is unloaded, they will be freed. It's just very very unusual that JS modules unload, so we can't tell when a template can't be rendered anymore.

I was just trying to make sure I don't have a problem. I can see that if I load my code in an iframe the detached template does get freed when the iframe get garbage collected.
Thanks for your help.

We don't currently expose the ability to manage the cache. Such an API would need to be used with care, as it would cause renders that would normally update the DOM in place to instead destroy and regenerate it from scratch.

Instead of providing an API to manage the cache directly, might you consider providing hints about cache-ability via the templates themselves? For example:
html`<p>A permanent part of the UI</p>`
tmphtml`<p>A transitory part of the UI</p>`


Zend\DB PDO adapter not providing 'options' parameter to PDO driver

In Zend\Db\Adapter line 299 the PDO Driver constructor is called without options.
Is there a way to not unset the 'options" parameter or re-inject the $options array in the PdoDriver constructor ?

…re-inject the $options array in the PdoDriver constructor ?

And then? What will you do with the options?


Broken underline

The update to 2.0.2 now has long underline under REPL and ./reduce.jl in the following image:

Not sure if its intentional or not

Nope, not intentional. Will be fixed by: https://github.com/FedeClaudi/Term.jl/pull/212


detection problem - firefox 42

the problem if you add the website to white list or a page to white list adblock still detected as enabled
(disable for this website.. or disable for this page only) adblock still detected as enabled
you should disable adblock completely (disable everywhere) to be detected as not enabled

Personally, I do not have problem with Firefox 42:
http://4.sendvid.com/qo6i8wva.mp4

firefox 42 + ADP + filtre easy list

my fault. i didn't tell you it's about the v4 beta but i think the video is clear
hope you working on it. cause i didn't got any reply

Ok, I saw the bug and I know where it comes from. (#34)


⚠ NCAA has degraded performance

In 5bcea29, NCAA (https://www.ncaa.com) experienced degraded performance:

HTTP code: 200
Response time: 891 ms

Resolved: NCAA performance has improved in 97d450f.


Incorrect type for address property on CustomerChangeAddressAction

The address property is defined as a BaseAddress type on the CustomerChangeAddressAction interface. I believe that it should be AddressDraft (as per the REST API docs):
https://github.com/commercetools/commercetools-sdk-typescript/blob/master/packages/platform-sdk/src/generated/models/customer.ts#L577
https://docs.commercetools.com/api/projects/me-profile#change-address
I think the same issue applies to the CustomerAddAddressAction too.
Thanks

It has been defined as BaseAddress for backwards compatibility. Address as well as AddressDraft inherit from BaseAddress

Also it allows to directly use an Address for an update action without creating an AddressDraft first.
And please keep in mind the reference is also used for other languages without structural typing

Thought about this too already. But has to be changed in the generator as like as it had been done for the update actions itself.

Okay. I'm not familiar with the generator, so if it's not possible we'll cast it for now :) Thanks.


No Swedish results? What API endpoint address with local docker image?

I'm not getting any results (Wikidata Q-codes) with Swedish text, and the language set to Swedish at the moment. I'm accessing the default demo server through spacyfishing in python. I have also tried setting the API end point to http://nerd.huma-num.fr/nerd/service, but that didn't help.
I also tried running entity-fishing locally with a docker image on MacOS. It works fine with language set to Swedish through the browser at http://localhost:8090/ , but I can't figure out what the local api address is for spacyfishing. What should I set it to?
The entity-fishing docker documentation (https://nerd.readthedocs.io/en/latest/docker.html) mentions web services documentation (https://grobid.readthedocs.io/en/latest/Grobid-service/) that indirectly suggests the grobid API is at http://localhost:8070/api/ , but that doesn't work.
Thanks for any help!

Hello @robertsilen
Sorry for the late answer. The local endpoint is http://localhost:8090/service/
So if you indicate:
nlp.add_pipe("entityfishing", config={"api_ef_base": "http://localhost:8090/service/"})

it should work.


e-gov/CVI header implementation

AS A Developer
I WANT TO re-use the already existing header component by just defining its use case
SO THAT I wouldn't have to create a new one or use boilerplate code
Acceptance Criteria

[ ] Use https://github.com/buerokratt/cvi/tree/main/libs/react-ui/src/lib/header as the source code of the component
[ ] Basic implementation by physically updating the source code
[ ] Add header  section to base layout (see #2 for reference)
[ ] ~When the source code changes in the source destination and the application is re-built (locally), the changes from the source code apply~
[ ] ~Basic CI/CD pipeline to build the end result based on an appropriate source code~
[ ] Simple Docker Compose to test the result locally

Refactor the current solution

[ ] Re-use available e-gov/CVI components where possible
[ ] Fix existing e-gov/CVI components

Node.js packages

[ ] Create a Node.js package locally
[ ] Publish the Node.js package
[ ] Sample implementation via #8

Update base layout

[ ] Use #2 as the source
[ ] Use /sample-implementation-cvi/header.html with the header implemented on the base layout as the output

Linked to https://github.com/buerokratt/cvi/issues/64

Blocked due to new AC coming from #8

Groomed by @ExiRain , @turnerrainer and @TarmoKlaarRIA , ready to proceed.
New time estimates needed due to added/changed AC.
@TarmoKlaarRIA will provide input for publishing Node.js packages on behalf of Bürokratt.

Bürokratt UI (React) component library
Bourokratt Github registry
Let's make a Github npm package register for boerokratt developments.
If UI components are sufficiently mature, then base components can be moved to the e-gov github repo.
Here's an article about setting up own npm registry.
https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-npm-registry
?? namespace buerokratt?
@buerokratt/cvi-react  -- for the common UI (cvi) react components
@buerokratt/byk-react  -- reusable UI components for the Bouerokratt

Repo for the base UI react components: https://github.com/buerokratt/cvi
Repo for the Buerokratt specific common and functional UI components: https://github.com/buerokratt/sample-implementation-cvi
    flowchart TB
    ghui("CVI React base components GH:
        button, input, toast, panel, layout etc")
    ghbyk("Byk React GH:
        navigation, header, ...
        ")
    ghcvi("eGov CVI GH")
    ghbyk_sample("Byk Sample UI ")
    %% ghbyk_chbt("Byk chatbot project")
    ghbyk_pr("Byk UI project X ...
    chatbot, trainig, services etc
    ")

    subgraph "Buerokratt GH Registry"
    npmc("npm pkg
    @buerokratt/cvi-react")
    npmb("npm pkg
    @buerokratt/byk-react")
    end

    npmr("npm pkg
    @egov/cvi-react")

    %% relations

    ghui -- PullR --> ghcvi --> npmr
    ghui --> npmc -- depend --> ghbyk
    ghbyk --> npmb
    npmc -- depend --> ghbyk_sample
    npmb -- depend --> ghbyk_sample

    npmc -- depend --> ghbyk_pr
    npmb -- depend --> ghbyk_pr

Bürokratt UI (React) component library
Bourokratt Github registry
Let's make a Github npm package register for boerokratt developments.
If UI components are sufficiently mature, then base components can be moved to the e-gov github repo.
Here's an article about setting up own npm registry.
https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-npm-registry
?? namespace buerokratt?
@buerokratt/cvi-react  -- for the common UI (cvi) react components
@buerokratt/byk-react  -- reusable UI components for the Bouerokratt

Repo for the base UI react components: https://github.com/buerokratt/cvi
Repo for the Buerokratt specific common and functional UI components: https://github.com/buerokratt/sample-implementation-cvi
    flowchart TB
    ghui("CVI React base components GH
        button, input, toast, panel, layout etc")
    ghbyk("Byk React GH
        layout,navigation
        header, ...
        ")
    ghcvi("eGov CVI GH")
    ghbyk_sample("Byk Sample UI ")
    %% ghbyk_chbt("Byk chatbot project")
    ghbyk_pr("Byk UI project X ...
    chatbot, trainig, services etc
    ")

    subgraph "Buerokratt GH Registry"
    npmc("npm pkg
    @buerokratt/cvi-react")
    npmb("npm pkg
    @buerokratt/byk-react")
    end

    npmr("npm pkg
    @egov/cvi-react")

    %% relations

    ghui -- PullR --> ghcvi --> npmr
    ghui --> npmc -- depend --> ghbyk
    ghbyk --> npmb
    npmc -- depend --> ghbyk_sample
    npmb -- depend --> ghbyk_sample

    npmc -- depend --> ghbyk_pr
    npmb -- depend --> ghbyk_pr


Union find algo c++

Added Union Find Algorithm implementation in C++ with proper comments.
Added a example test case image in Readme.md file to make it easier to understand.

Great job enhancing the documentation! It makes a big difference.


merge package template from Kronos-Tools/npm-package-template

Updated standard to latest version

Codecov Report

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

@@          Coverage Diff           @@
##           master    #129   +/-   ##
======================================
  Coverage    97.5%   97.5%
======================================
  Files           1       1
  Lines         120     120
======================================
  Hits          117     117
  Misses          3       3

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 6e5f800...055f021. Read the comment docs.


Notebook formatting fails with "syntax errors"

I'm using Blackconnect with dataspell and I'm getting "BlackConnect: Source code contained syntax errors.". As far as I can tell, there is no syntax error, since black notebook.ipynb works just fine. Has anyone encountered  this or can help me figure out wha the issue might be?
Thanks

Sorry for not doing that from the start. the original notebook had stuff I can't share. Anyway, I can reproduce the issue on this one. I suspected there might be problems with comments and markdown cells, so there are a few weird notes.
As for sequence, triggering save (new cell or just cmd+S) seems to do it for me.
Please let me know if you need anything else.
Thanks!
notebook.ipynb.zip

Thank you! I'll take a look as soon as I can.

So, I've diagnosed the issue and it is definitely Markdown cells. Jupyter support is currently very spotty and the way our plugin interacts with cells treats Markdown cells as code ones. I'll see about fixing that soon if I can find enough inspiration to do that :)
Also, there is a bug with DataSpell that causes "Tools" submenu to disappear on subsequent runs.

Thanks a lot :)
Looking forward to the fix (but I understand, it might not be soon).


The performance is not satisfactory!

Using Baichuan 13B and following the documentation to launch the openai_api script, the speed has improved . However, the actual performance is vastly different from the native Hugging Face  model. I've tried debugging many aspects without success. Has the author conducted any relevant tests? Are there any usage instructions specifically for Baichuan 13B?

Now vllm has not implemented hf's repetition_penalty, you can try fork: https://github.com/yanxiyue/vllm

I've encountered a similar issue. After testing with my downstream tasks, the performance of baichuan13b 1/2 doesn't match up to that of Huggingface's inference. While the difference might not be immediately noticeable in regular chat interactions, it becomes evident in my specific task. I use few-shot prompts for classification and ENR, expecting a JSON-formatted return. Unfortunately, the results from the vllm inference are not satisfactory.

I've encountered a similar issue. After testing with my downstream tasks, the performance of baichuan13b 1/2 doesn't match up to that of Huggingface's inference. While the difference might not be immediately noticeable in regular chat interactions, it becomes evident in my specific task. I use few-shot prompts for classification and ENR, expecting a JSON-formatted return. Unfortunately, the results from the vllm inference are not satisfactory.

same issue in my downstream tasks,


models-dir exceeds the limit "1536Mi"

We have a 40Go model we try to run in modelmesh.
The adapter crash:
27m         Warning   FailedPreStopHook   pod/modelmesh-serving-triton-2.x-76d757c4fd-tbgpp    Exec lifecycle hook ([/opt/kserve/mmesh/stop.sh wait]) for Container "mm" in Pod "modelmesh-serving-triton-2.x-76d757c4fd-tbgpp_gpt(fb99c2ce-505f-4846-b140-99d482a63b1b)" failed - error: command '/opt/kserve/mmesh/stop.sh wait' exited with 137: , message: "waiting for litelinks process to exit after server shutdown triggered\n"`

We can see this storage limit log:
$ oc get pod modelmesh-serving-triton-2.x-76d757c4fd-g7cwn -oyaml | less
    message: 'Usage of EmptyDir volume "models-dir" exceeds the limit "1536Mi". '
    phase: Failed

We don't find a config option to change the limit.

Hello.
I took a look at the code that generates the Deployments for a runtime. The size limit given to the models-dir volume is calculated based on the container memory limits in the pod spec. The assumption is that the size of models on disk is similar to the size of models in memory.
The default memory limit given to the Triton runtime is 1Gi. So I'd recommend editing the spec of the serving runtime and increasing that value to at least 40Gi.


Copy-SqlDatabase: Instance – Instance Clarification

Is this a feature OR bug:
Clarification of feature set actually
System Details
Interested in using Copy-SqlDatabase.ps1 to mirror production data from a live database instance to a test instance on the same server.  However, looking at the parameters I don't see how this is possible as it appears to lack the necessary controls to target the copy back to the same server from which the instance was copied from or perhaps identify the target destination where the output is to be sent.
Is my assessment accurate and this indeed is not a capability of the script at this time? Or is it possible and I am simply missing the proper syntax. If not currently a feature, could it be a possible future?

You are all set for that scenario....dbatools version 0.8.692


CVE vulnerabilities found in protecode

We found the following vulnerabilities of 0.8.1 in protecode

zlib(1.2.11): CVE-2018-25032, CVE-2022-37434
npm(8.10.0-r0): CVE-2022-29244

I think your report was meant for some other system - this is not protecode and i do not now what this is.
And referencing your CVE - as all of them reference OS packages i assume you do not mean Redis-commander itself but the docker images provided:

CVE-2018-25032 only zlib up 1.2.11 is vulnerable, this docker image uses 1.2.12
CVE-2022-37434 checking the Alpine Security database you see the currently installed package 1.2.12-r3 is already fixed (fix was added to 1.2.12-r2):  https://secdb.alpinelinux.org/v3.16/main.json
CVE-2022-29244 yes version installed is vulnerable but reading the vulnerability report clearly states it only affects operations within a git repo checked out as a special workspace - therefor not vulnerable within docker image context.

All of them are false positives. All current images are not vulnerable.

than your scanner is not working really well - it should not report booth zlib vulnerabilities as they are officially fixed.
Only the NPM one can be understand by manual checkup only.


Unable to parse json with boundary symbols in the response

I'm using meros with relay for the @defer feature and by a coincidence we got exactly --- symbols in a particular field of received json, which leads to a parse error, because part.json is false.
Of course we can just remove these symbols from the data, but maybe there is a better way to handle it in the library?

Hi there 👋,
Thank you so much for the issue!!
Are you able to provide me with a more tangible example? --- should only trigger a "boundary" if it's got a \n before and after.
eg
\r\n
---
\r\n

Those should all be encoded away by the json compiler on your server side.
That being said, I have had @michaelstaib have similar reports. So be great to understand this edge case a tad more.

Hi @maraisr
Indeed, it's from HC backend.
Our message contains something like that:
{"__typename":"tDO","desc":"---","cdc":"SPS"}

Small update, was able to reproduce the bug with your example! 🙏🏻  working on a solution.

@ch1ffa ive fixed this in #14 are you in a position to custom build this library and try it in your project to see if it 100% fixes the bug?
After this PR I aim to add a bucket of unit tests — as this should have been covered already so do apologize as well.

@maraisr Yeah, sure, let me check. And thank you for such a quick response!

@maraisr now I've got the first part filtered out as it starts just from --- without \r\n\ at the beginning

😅 can you flick me an example payload again, if its sensitive more than happy to have it sent privately.

Actually, I got an error in a different query just at the start of the app. That's what I see in the browser dev tools:
---
Content-Type: application/json; charset=utf-8

{"data":{"user":{"id":"VXNlcgpkN2FhNzFjMjctN2I0Yy00MzczLTkwZGItMzhjMjZlNjA4MzNh"}},"hasNext":true}
---
Content-Type: application/json; charset=utf-8

{"label":"WelcomeQuery$defer$ProjectList_projects_1qwc77","path":["user"],"data":{"id":"VXNlcgpkN2FhNzFjMjctN2I0Yy00MzczLTkwZGItMzhjMjZlNjA4MzNh","projects":{"edges":[{"node":{"id":"UHJvamVjdAppMQ==","name":"New project","desc":"","lastUpdate":"2021-12-22T12:57:45.488\u002B03:00","__typename":"Project"},"cursor":"MA=="}],"pageInfo":{"endCursor":"MA==","hasNextPage":false}}},"hasNext":false}
-----

hmmmm, that is interesting. It is passing my unit tests.
check; https://github.com/maraisr/meros/pull/14/commits/612e187f8364bdd48d40f6c5769503646d17478d
What I'll do is I'll release this PR under a next npm tag, maybe something up with the custom build perhaps 🤔

Let me know how you go with<EMAIL_ADDRESS>(sorry about the issue closure) opening that back up.

Unfortunately, the same behaviour as for the custom build. The first part I see in a loop part of parts is the second chunk that contains "label". Maybe I should create an example to reproduce both issues

@maraisr here is the example quite similar to our app https://github.com/ch1ffa/react-location-relay.git
There is one @defer fragment which works on the version 1.1.4, and if you change bio to --- and reload page, you can see an error. For the version 1.2.0-next.3 no data is shown because first part in parts is missing

Thank you so much!! 🙏🏻
Ill check this asap, it is Christmas and have a stack of life events to attend this next few days, but 100% will check/fix this before the new year.

Okay I know the problem,
HC's preamble boundary doesnt start with a newline delimieter
- ---\r\n
+ \r\n---\r\n

same with the tail has stuff after it.
- \r\n----
+ \r\n----\r\n

the tail boundary is who-cares in meros eyes.  So main moment about the "first" boundary not having a CRLF token (aka \r\n).
Or am I misunderstanding the spec?

The requirement that the encapsulation boundary begins  with
a  CRLF  implies  that  the  body of a multipart entity must
itself begin with a CRLF before the first encapsulation line
--  that  is, if the "preamble" area is not used, the entity
headers must be followed by TWO CRLFs.  This is  indeed  how
such  entities  should be composed.

https://datatracker.ietf.org/doc/html/rfc1341
Perhaps the strategy is; if the payload starts with a boundary (w/o the CRLF) then yield aka there is NO preamble.
Coz i outright skip the first "payload"
cc @michaelstaib is this right.

They also say

A tolerant mail reading
program, however, may interpret a  body  of  type  multipart
that  begins  with  an encapsulation line NOT initiated by a
CRLF  as  also  being  an  encapsulation  boundary,  but   a
compliant  mail  sending  program  must  not  generate  such
entities.

I am wondering how to configure a unique boundary for my configuration to eliminate any possibility of getting boundary in data 🤔

You shouldnt worry about that, if you JSON encode you will never collide with a boundary coz \r\n---\r\n is encoded away with json, like '"\\r\\n---\\r\\n"' (note the double slashes)

@ch1ffa  please check https://github.com/ch1ffa/react-location-relay/pull/1 Believe its rectified for now.
I will liaise with @michaelstaib to further understand the multipart spec..
To that end; thank you so much for your patience with this one!

@maraisr @michaelstaib Version 1.2.0-next.4 works fine while "latest 1.1.4" fails for me.
What is the reason/status? (about preamble, right?) ...  is it an HC problem or meros?
If it is just at meros, it might be helpful to release 1.2.

Ive released 1.2.0 as stable 🎉, that contains the fixes outlined in this chatter. Hopefully that lines it up with our MS/C# is composing messages.


Add path case-insensitivity if onlyChanged option is active, fixes #4644

Summary
This PR fixes #4644.  On Windows process.cwd and git rev-parse --show-toplevel outputs can diverge in the same directory:

This is causing Jest run in onlyChanged mode to find no suitable tests.

Test plan
After changing the exists function and _rootPattern variable to case-insensitive regex (on "win32" platform only), jest -o runs fine:

Thanks for sending a PR. What if people use windows with a case sensitive file system? This would break for them, no?

Or macOS with case sensitivity turned on.
That said, this is definitely a bug fix, and we have other breaking changes in master already, so next release should be a major anyways

Is it possible to check for case sensitivity?
https://superuser.com/a/1026536 or something in the startup

I think the change here makes sense. @cpojer thoughts?
This still needs a test, though 🙂

Test added and changelog updated. Should I squash the commits together?

We squash on merge, so multiple commits are easier to review. Thanks!

@peterdanis this fails flow, run yarn flow locally to see (need's // $FlowFixMe)

@cpojer @Daniel15 I'm not allowed to do anything on Appveyor, can you try cancelling some builds or contacting support about the endless queue?

The AppVeyor issues should be resolved, @cpojer reached out to me about it two weeks ago. I need to figure out how to move the Jest project to the Facebook org on AppVeyor.
https://help.appveyor.com/discussions/problems/9507-large-number-of-builds-are-queued


Unable to read in data in py3.12 environment with CLI

Describe the bug

Unable to plot data that is in um fields files format using the command line. Gives the following error:
ValueError: No format specification could be found for the given buffer. Perhaps a plugin is missing or has not been loaded. File element cache:
 {'UriProtocol()': 'file', 'LeadingLine()': "b'2024-05-28 16:38:10,028 INFO operator: read.read...", 'MagicNumber(4, None)': '842019380', 'MagicNumber(8, None)': '3616445700456330541', 'DataSourceObjectProtocol()': 'CSET.log', 'FileExtension()': '.log', 'MagicNumber(100, None)': "b'2024-05-28 16:38:10,028 INFO operator: read.read..."}

How to reproduce
Steps to reproduce the behaviour:

run cset bake on command line pointing to a directory that contains um fields files

Expected behaviour

It reads in um fields file.
Environment

Version: v24.4.2.dev257+g5331a8b

Update: appears to have problems with pp files and netcdf as well

Happens in 3.11 CLI environment too - not sure where it is happening though. Will edit recipe and see if I can find out if it is the parallel or collate step where it is having problems.

further investigation has revealed the error appears to be in the collate step - so reading in the files created in the write step at the end of the parallel step

reproducible with multiple people and versions

Traceback:
❯ cset bake -i . -o . -r ~/r.yml --collate-only
Traceback (most recent call last):
  File "/tmp/persistent/conda/envs/cset/bin/cset", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/net/home/h02/jfrost/Projects/CSET/src/CSET/__init__.py", line 160, in main
    args.func(args, unparsed_args)
  File "/net/home/h02/jfrost/Projects/CSET/src/CSET/__init__.py", line 209, in _bake_command
    execute_recipe_collate(
  File "/net/home/h02/jfrost/Projects/CSET/src/CSET/operators/__init__.py", line 270, in execute_recipe_collate
    _run_steps(recipe, steps, output_directory, output_directory, style_file)
  File "/net/home/h02/jfrost/Projects/CSET/src/CSET/operators/__init__.py", line 164, in _run_steps
    step_input = _step_parser(step, step_input)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/net/home/h02/jfrost/Projects/CSET/src/CSET/operators/__init__.py", line 139, in _step_parser
    return operator(step_input, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/net/home/h02/jfrost/Projects/CSET/src/CSET/operators/read.py", line 138, in read_cubes
    cubes = iris.load(input_files, constraint, callback=callback)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/persistent/conda/envs/cset/lib/python3.12/site-packages/iris/__init__.py", line 326, in load
    return _load_collection(uris, constraints, callback).merged().cubes()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/persistent/conda/envs/cset/lib/python3.12/site-packages/iris/__init__.py", line 294, in _load_collection
    result = _CubeFilterCollection.from_cubes(cubes, constraints)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/persistent/conda/envs/cset/lib/python3.12/site-packages/iris/cube.py", line 97, in from_cubes
    for cube in cubes:
  File "/tmp/persistent/conda/envs/cset/lib/python3.12/site-packages/iris/__init__.py", line 275, in _generate_cubes
    for cube in iris.io.load_files(part_names, callback, constraints):
  File "/tmp/persistent/conda/envs/cset/lib/python3.12/site-packages/iris/io/__init__.py", line 212, in load_files
    handling_format_spec = FORMAT_AGENT.get_spec(os.path.basename(fn), fh)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/persistent/conda/envs/cset/lib/python3.12/site-packages/iris/io/format_picker.py", line 150, in get_spec
    raise ValueError(msg)
ValueError: No format specification could be found for the given buffer. Perhaps a plugin is missing or has not been loaded. File element cache:
 {'UriProtocol()': 'file', 'LeadingLine()': "b'2024-05-30 09:59:15,475 INFO operator: read.read...", 'MagicNumber(4, None)': '842019380', 'MagicNumber(8, None)': '3616445700456330541', 'DataSourceObjectProtocol()': 'CSET.log', 'FileExtension()': '.log', 'MagicNumber(100, None)': "b'2024-05-30 09:59:15,475 INFO operator: read.read..."}

The following command works fine, even though its running the same code:
python3 -c 'from CSET.operators.read import read_cubes; print(read_cubes("intermediate/"))'

This does not:
cset bake -i . -o . -r r.yml --collate-only

r.yml:
title: Test Recipe

parallel:
  - operator: misc.noop

collate:
  - operator: read.read_cubes
    filename: intermediate/*

The argument to read.read_cubes is actually loadpath. Using this avoids the issue. Without it we effectively run
python3 -c 'from CSET.operators.read import read_cubes; print(read_cubes(".", filename="intermediate/"))'

which tries to read the non-data files in the folder, which it cannot parse.


Why is there no main function in the GenSC_finall_all.py file when running it with Python?

@Ysy0219 Thank you for helping me find the problem. The code has been modified.
Thank you again. If you have any questions please feel free to let me know.


Add x86 config for GNU/Linux

Otherwise this module will not work on Linux x86:
make: Entering directory `/tmp/build/d9cc22ab/app-git/node_modules/ext2fs/build'
  CC(target) Release/obj.target/ext2fs/deps/e2fsprogs/lib/ext2fs/alloc.o
../deps/e2fsprogs/lib/ext2fs/alloc.c:12:20: fatal error: config.h: No such file or directory
compilation terminated.
make: *** [Release/obj.target/ext2fs/deps/e2fsprogs/lib/ext2fs/alloc.o] Error 1
make: Leaving directory `/tmp/build/d9cc22ab/app-git/node_modules/ext2fs/build'

Change-Type: patch
Signed-off-by: Juan Cruz Viotti<EMAIL_ADDRESS>

Great point @lurch , as always! We did add Concourse x86 to this :)

Also, is it worth adding an x86 config for Windows?
And I dunno if it's deliberate or accidental, but clicking on one of the concourse-ci "Details" links (e.g. https://concourse.ci.resin.io/builds/18672 ) asks me to login, i.e. the build report isn't publicly viewable.

@jviotti this should be good to go. The concourse checks are strange because of the name-change in the pipeline. The npm-node-ext2fs is the current version, and those checks all pass: https://concourse.ci.resin.io/teams/main/pipelines/npm-node-ext2fs/jobs/pull-requests/builds/16


support: Add forms for attached remote realms.

Updates the remote server support view so that any remote realms attached to a remote server have the same forms/actions for support admin (e.g. sponsorship requests, discounts, modifying current plan actions).
Screenshots and screen captures:

business remote realm example

Sponsorship requested & sponsored remote realms
Are we planning that 100% sponsored remote realms/servers will also have a current plan? Or is this just an error with how we're generating that in populate_billing_realms?

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Are we planning that 100% sponsored remote realms/servers will also have a current plan?

Yes, those will be marked with a community plan; that's a contrast with the cloud billing system.

Merged, thanks @laurynmm!
One detail we may want to tweak is if you search for a remote realm, we probably want to display details on the server too; probably worth some discussion in chat.


Pressing Enter on any modal should submit the modal's main function

Implement #40 for rename and delete modal

I am working on this


Extremely long compilation time for pmap on a5000 GPUs

Hi,
When running a very simple parallel MLP example on an a5000 GPU, the compile time is thousands of times slower compared to other GPUs.
A minimal example can be found in this colab: https://colab.research.google.com/drive/1HTvcKQ4ozmdftXDkB715BKeEOpI3hkAX#scrollTo=LGB0i9LkPgER
When running on a single 2080ti, the script compiles in 0.4s. When two 2080tis are available, the compilation takes 1.1s. For a single a5000, it also takes around 0.4s. When run with two a5000s available, the compilation takes over an hour (I killed it after one hour so didn't see how long it took).
A different script (training a language model) that was assigned to a5000s was still compiling after 48 hours when it took a minute to compile on an a4000.
This is with jax 0.3.7, jaxlib 0.3.7+cuda11.cudnn805, cuda 11.2

That's odd! The timing shouldn't be significantly different. But this might be hard to debug if we can't find a GPU on which it reproduces. I'll see if it reproduces on A100, which is the closest match I have.
One quick thing you might look at: what does top show during the long compilation? Is it the Python process taking the time or ptxas? How do you know it is compilation taking the time (as opposed to, say, a deadlock early in execution)?

Hi Chris, can you run gdb with your example and collect callstack backtraces to see where the program is hanging? It will help us to confirm what is actually going on. Thanks!

(And for reference, you can get a backtrace by running your python process under gdb (or attaching to a running Python process using the gdb command attach PID), and then using bt to get a backtrace.)
We tried on both A100 and A6000 and were unable to reproduce.

Ok, I will definitely do so when I get the chance. That might be a while as the A5000s are under high usage by my group in the run-up to neurips.

I've been unable to reproduce this when I got a chance. The same script that previously caused the GPUs to hang now compiles and runs fine. I haven't changed the version of jax or anything, so this is a bit odd, but I'm not complaining.

If it happens again, please grab a stack trace! Thanks for the report.


chore(deps): Upgrade dependencies

Upgraded the following dependencies and devDependencies:
Dependencies:

@commitlint/config-conventional: ^18.1.0 -> ^19.2.2
@commitlint/lint: ^18.1.0 -> ^19.2.2
@commitlint/load: ^18.2.0 -> ^19.2.0

DevDependencies:

@antfu/eslint-config: ^2.1.0 -> ^2.21.1
@commitlint/cli: ^18.4.3 -> ^19.3.0
@commitlint/types: ^18.1.0 -> ^19.0.3
@types/node: ^20.9.0 -> ^20.14.8
eslint: ^8.54.0 -> ^8.57.0
lint-staged: ^15.1.0 -> ^15.2.7
rimraf: ^5.0.5 -> ^5.0.7
tsup: ^7.2.0 -> ^8.1.0
typescript: ^5.2.2 -> ^5.5.2
vitest: ^0.34.6 -> ^1.6.0

BREAKING: Upgraded @commitlint packages to v19 which have switched to pure ESM.
What is the purpose of this PR?
ClickUp/Jira/Github project ticket number(s)?
What did you do?
How do we test it?
Checklist before merging

[ ] Added tests where necessary
[ ] Performed a self-review of my code
[ ] Ensure all acceptance criteria are met
[ ] Implemented the UI as exactly as the design (applicable only for UI changes)
[ ] Added comments for codes where hard-to-understand
[ ] Haven't pushed unnecessary files (ex: .env, .map)
[ ] Haven't ignored Typescript warnings in the code (if do so add a comment with the reason)

Provide screenshot details of the PR
[optional] Tests passed screenshot
[optional] Breaking changes after PR
Anything else?

Fixes #12


Unable to encode DateTime objects in UserRecord.toJson()

I want to do the below operation and since my res.status(201).json(object) tries to encode the object before sending to the frontend, it fails and gives me the error of Converting object to an encodable object failed: Instance of 'DateTime' which is from here --> lib/src/auth/user/UserMetadata/toJson (location of the datetime)
return res.status(201).json({
        "success": true,
        "user": savedUser.toJson(),
        "token": jwtToken,
      });

Are you calling toJson on an object from the SDK? You shouldn't.
It shouldn't be public. That's an oversight if it is. I'll remove it.


Use Typhoeus to help forked/threaded users

Fixes #241.
This pull introduces/changes:

Using Typhoeus gem for http connections
Removed net-http-persistent

Pings:
@cheerfulstoic
@subvertallchris

Not sure if you guys want to do this, but I get much better stability in my resque-pool multi-worker application using Typhoeus.  See my comments in https://github.com/drbrain/net-http-persistent/issues/37

Also I'm using this on the 6.1.x branch so I can only give data from there, but I ported it over to 7.0.x and it looks to be working.

Coverage increased (+0.002%) to 92.363% when pulling fdbf94a6216c91dbfb94166e36d7356f39496954 on brucek:typhoeus_7.0.x into 7abe23c0bc7bd6d81cce6ddb5f28e70ee24a4e1b on neo4jrb:master.

I seem to remember benchmarking the two adapters and finding
NetHttpPersistent much faster when using SSL. We should probably check that
out again using a remote server if we're going to switch the default;
alternatively, what about making it configurable, let the user find the one
that's best for them?
On Wednesday, November 16, 2016, Coveralls<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

[image: Coverage Status] https://coveralls.io/builds/8852408
Coverage increased (+0.002%) to 92.363% when pulling fdbf94a
https://github.com/neo4jrb/neo4j-core/commit/fdbf94a6216c91dbfb94166e36d7356f39496954
on brucek:typhoeus_7.0.x into 7abe23c
https://github.com/neo4jrb/neo4j-core/commit/7abe23c0bc7bd6d81cce6ddb5f28e70ee24a4e1b
on neo4jrb:master.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/neo4jrb/neo4j-core/pull/272#issuecomment-260937139,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AD6E9xNDo-tQ8Zj1x5QicDDsuuXx-muuks5q-vpqgaJpZM4KzzTI
.

So I did some quick benchmarking and it looks like Typhoeus is basically as fast or faster (at least on a normal https:// web connection).
The configurable approach is probably ideal, but it might be a little bit before I can look at that, however.

I'm all for Typhoeus if it's at least as fast.
As for configuration, I wonder is it possible to configure the adaptor via the init_params (passed in as the :initialize key to the last argument of open which I think is also configurable in the railtie)

Closing in favor of #273


Convert GetTable to java interop

Purpose

Describe the problems, issues, or needs driving this feature/fix and include links to related issues.

Fixes #
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

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

@@           Coverage Diff           @@
##           master   #20185   +/-   ##
=======================================
  Coverage    19.9%    19.9%
=======================================
  Files          55       55
  Lines        1437     1437
  Branches      218      218
=======================================
  Hits          286      286
  Misses       1138     1138
  Partials       13       13

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 5908b88...cca2155. Read the comment docs.


Open With Option.  Storage permissions?

Is your feature request related to a problem? Please describe.
Maybe?  It also might be intentional for less permissions...
Describe the solution you'd like
When I am browsing in the file manager and I open a text file, I get the "Open with" prompt where I can choose a number of apps.  It will open Squircle but has no permissions to read the file "open failed: EACCESS (Permission 'denied)".  Other text editors are (ACode, Browsers...etc), and they can.  I tried to manually add storage permissions in Android Settings and cannot.
Describe alternatives you've considered
Maybe a bolt on or another application that will forward open requests to Squircle?

I have the same issue and can not open any file.

I'm having the same issue with same error, cannot create new file and open it, or open existing file. On android 14.

Just came here to file the same issue. Can't open any files at all in Android 14 due to an EACCES Error (Permission Denied) but Squircle CE doesn't request file access or anything except for Notifications.

Just came here to file the same issue. Can't open any files at all in Android 14 due to an EACCES Error (Permission Denied) but Squircle CE doesn't request file access or anything except for Notifications.

I guess I'm the interim it'll have to be QuickEdit+ or EMACS


Delete manifests/g/GitHub/cli/1.9.0 directory

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.2 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Close with reason: Will not be removing versions just because of CVE;


feat: fallback to NoopProvider if we run into OOM [2/3]

Details
A follow up for https://github.com/Expensify/react-native-onyx/pull/439
This is a second PR in chain of multiple PRs. In this PR I added:

name property to all providers (used in logger if we ran into OOM);
added NoopProvider that is used as a fallback one when OOM happens;
added tryOrDegradePerformance function that attempt to perform operation and in case of specific error substitutes the storage to a fallback one;

Related Issues

https://github.com/Expensify/App/issues/29403
Automated Tests

This PR changes the way we use the storage but the functionality of the library to the outer world is the same. Therefore no new tests were added.
Manual Tests

Verify that no flows and functionality were broken by the changes. Check for console errors regarding Onyx.
Author Checklist

[x] I linked the correct issue in the ### Related Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@danieldoglas @tgolen tagging you again - this PR is ready for review 😊

@tgolen may I ask you to review it again? 👀

Can't we just remove setMemoryOnlyKeys from react-native-onyx? I think it serves no purpose in the app:

☝ All these are just empty functions.
Only this part is relevant:
/**
 * When set these keys will not be persisted to storage
 * @param {string[]} keyList
 */
function setMemoryOnlyKeys(keyList) {
    // When in memory only mode for certain keys we do not want to ever drop items from the cache as the user will have no way to recover them again via storage.
    cache.setRecentKeysLimit(Infinity);
}

cc @tgolen @kirillzyusko

Good point @blazejkustra
@tgolen will be happy to hear your thoughts 😊

I think it's OK to remove at this point. It has a little bit of complex history. We used to use it, but it was never fully implemented either. https://github.com/Expensify/App/issues/26304
Let's just kill it 🔪

Do I have a green light to remove Onyx.setMemoryOnlyKeys method as well?

Yep!

Actually, no... sorry. I should have checked App first. It's still being referenced in App. So we need to remove those first.


gnatcoll-python3: upgrade from Python 3.9 to Python 3.12

The gnatcoll bindings site suggests using the highest supported Python version, which is currently 3.10. See https://github.com/AdaCore/gnatcoll-bindings/blob/master/python3/README.md. Additional patches from upstream bump the support to Python 3.12.
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

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

It looks like there are upstream commits to support Python 3.11 and 3.12. It’d be nice if we could use them given how far behind the release is. Possible options include fetchpatch2ing the upstream commits, if they’ll apply cleanly, or potentially bumping to the current Git HEAD.

It looks like there are upstream commits to support Python 3.11 and 3.12. It’d be nice if we could use them given how far behind the release is. Possible options include fetchpatch2ing the upstream commits, if they’ll apply cleanly, or potentially bumping to the current Git HEAD.

Looks like by including an intermediate patch they might apply cleanly. I'll update the PR.

I'm not really sure this is safe to do. Upgrading the python interpreter used should be able to break user code. Since upstream says they support up to 3.10 and recommend that, it seems reasonable to upgrade to that point, but not necessarily beyond.

I'm not really sure this is safe to do. Upgrading the python interpreter used should be able to break user code. Since upstream says they support up to 3.10 and recommend that, it seems reasonable to upgrade to that point, but not necessarily beyond.

On the other hand, it looks like upstream just didn't push a release out. I'll let you and @emilazy tell me what you prefer.

I have also opened https://github.com/AdaCore/gnatcoll-bindings/issues/21#issuecomment-2430984787

Hopefully upstream will tag a new release soon. If not, I think given that they’re clearly willing to do so with these patches but just haven’t gotten around to it yet speaks to it being okay for us to apply them; they are quite trivial in any case.
Any Python bump could potentially break user code but of course CPython 3.9 will not be in Nixpkgs forever and given that upstream specifically recommends using the latest Python it seems reasonable to follow that advice.

What do you know… https://github.com/AdaCore/gnatcoll-bindings/releases/tag/v25.0.0
I'll try and do a gnatPackages bump soon.

What do you know… https://github.com/AdaCore/gnatcoll-bindings/releases/tag/v25.0.0

Yes, in response to my issue.

I'll try and do a gnatPackages bump soon.

Ok, I'll let you do that since you're the maintainer, and I'll close this issue.

#352856


Recalculate height when content of slide has been changed

Is there any way how to recalculate height of slide when content has been changed? I'm using adaptiveHeight feature and when I change something in active slide, content will overflow.
I'll give one example:
      <Slider ref="slider" {...settings}>
        <div> ... content of first slide ... </div>
        <div> ... content of second slide ... </div>
        <div> ... content of third slide ... </div>
      </Slider>

I've found that the only way is to call this.refs.slider.forceUpdate() to recalculate height. But I have to do it every time I change content. Is there any chance to implement some workaround for auto-correction of height?

@martinpesout I'm having the same issue in gatsbyjs when in when running the dev env. But not when serving the compiled production build. So it most probably has something to do with the fact CSS is not entirely loaded yet when react-slick is calculating it's components. Most probably because the CSS is injected using style tags which is often done in hot reloading environments (and causes the visible FOUC as well).
I agree it would be great to see this solved within react-slick though, since this doesn't look too nice:
componentDidMount () {
  if (process.env.NODE_ENV === 'development') {
    setTimeout(() => {
      this.slider.forceUpdate()
    }, 0)
  }
}

Any updates for this issue?

I came up with a solution for this issue. Once I had my Slick component I could get its reference with ref react API like this:
<Slider
        ref={ref => { this.slider = ref }}
        {...slickSettings}
        ...

Then when you wish you could simple call the forceUpdate method form slick`s ref like this:
this.slicker.forceUpdate() // Updates height from your slider

I also have this issue. I have some nested collapses in each slide, which would change height of the slides when opened. But somehow the Slider doesn't resize immediately until I click somewhere.

I also have this issue. I have some nested collapses in each slide, which would change height of the slides when opened. But somehow the Slider doesn't resize immediately until I click somewhere.

Hello, I have the same problem, how did you solve it?


delete me

Codecov Report

Merging #205 (453156c) into develop (29f6666) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #205   +/-   ##
========================================
  Coverage    96.65%   96.65%
========================================
  Files           22       22
  Lines         1077     1077
========================================
  Hits          1041     1041
  Misses          36       36

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 29f6666...453156c. Read the comment docs.


CIM-Session through SMB port 445 (RPC over SMB)

Summary of the new feature / enhancement
Hey,
I'm using CIM-Sessions to spare resources it works really nice because it is possible to use DCOM (RPC port 135) so i don't need to enable wsman, i used wireshark to look how works sc.exe and i saw that it uses first RPC port 135 when it doesn't work it switch to RPC over SMB at port 445. I Through that it might be possible to use New-CIMSession through RPC over SMB (port 445) but here in New-CIMSession -protocol is not possible to set SMB.
Thanks in advice
Proposed technical implementation details (optional)
$SessionOption = New-CimSessionOption -Protocol SMB
New-CimSession -ComputerName Server1 -SessionOption $SessionOption

A CIM session is different from an RPC over SMB port. They use different protocols to format the messages and aren’t really comparable. The RPC stuff is also not generic across protocols as it requires you to send very specific payloads to specific endpoints depending on what you are talking to. What you are looking for isn’t really possible to do in a session like interface which is why the common method these days is to use Invoke-Command to run whatever PowerShell code you want on the target. This can be done through WinRM on Windows hosts but also now support SSH for non-Windows and Windows hosts with both ssh installed/configured + pwsh 6+.

Thanks for info.
I Through that if sc.exe can communicate through port 135 as RPC and 445 RPC over SMB than maybe it could be possible to send another commands through RPC over SMB to read data or make changes to remote server. Like Invoke-CimMethod or Get-CimInstance. If CIM Sessions can't have so possibility is another command in powershell which can get data from RPC over SMB?
I found that sc.exe and get-printer can use RPC over SMB. RPC over SMB communication could be nice alternative to WinRM or RPC both are mostly blocked with firewall but SMB is in use and RPC over SMB works.

I Through that if sc.exe can communicate through port 135 as RPC and 445 RPC over SMB than maybe it could be possible to send another commands through RPC over SMB to read data or make changes to remote server

It is possible but those APIs must be exposed through an RPC mechanism.  Some things have it while others don’t. For example the API to manipulate services and to get remote processes might both run over RPC through SMB but the actual bytes that are exchanged is not unified and varied based on the API.

RPC over SMB communication could be nice alternative to WinRM or RPC both are mostly blocked with firewall but SMB is in use and RPC over SMB works.

It is certainly possible to use this through PowerShell, in Windows PowerShell (5.1 and earlier) the service cmdlets could do this with the -ComputerName parameter. While this parameter is not longer present on pwsh 6+ you can still use the relevant dotnet APIs instead. Ultimately they aren’t very flexible because the number of things you can do over RPC is far lower than CIM/WSMan. Your best bet is to actually enable the ports needed for PSRemoting/CIM rather than try to use RPC over SMB. You’ll be able to do so much more with it, e.g. run any powershell command you want.

Ok, thanks for info, so i need to look at .NET and Windows API


Fix corrupted TileMap saves due to missing/wrong format

Fixes #29312.
Bug was likely triggered by f2e54057aec3a4e4fbb9f9da5729915deb2f4648.
A fix was attempted in #23625, but it did not fix the bug when creating a new tilemap (and did not have access to ADD_PROPERTY_DEFAULT :smiley: ). Since I accidentally reverted that commit, CC @workless.

Thanks!

Cherry-picked for 3.1.2.

Undid cherry-pick for now as ADD_PROPERTY_DEFAULT is not available in the 3.1 branch, so this fix doesn't compile as is.


virtualbox 4.3.40-110317, 5.0.30-112061

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

I haven't checked it old macOS, I just have good assumption that they don't drop OS support in minor releases.

Should virtualbox-extension-pack.rb also be updated along with this cask?

@yurikoles would you mind updating virtualbox-extension-pack.rb also?

@yurikoles Thanks for completing the update. That was on my list of things to do still. :) I also have no way of checking, but based on this, your assumption most likely is correct. I went ahead and updated the extension pack in #28138.


Handling of Unicode suggestions

I'm looking at a couple problems with Atom's spell-check module and I think I've traced a problem down to this library. In specific, passing in words to GetCorrectionsForMisspelling doesn't seem to handle encoding correctly.
In this case, I'm using a German word möchten which is spelled correctly. If I run the test via the command line (Ubuntu with a de-DE dictionary installed), I get this:
$ hunspell -d /usr/share/hunspell/de_DE
Hunspell 1.4.0
möchten
*

möchte
+ möchten

$

This is pretty much the output I'm expecting to see. If I do the same with a short JS script, however:
// Create the spelling wrapper and add the German dictionary to it.
var spell = require("./lib/spellchecker");
spell.setDictionary("de-DE", '/usr/share/hunspell');

// Test some function calls.
console.log("isMisspelled:", spell.isMisspelled("möchten"));
console.log("checkSpelling:", spell.checkSpelling("möchten"));
console.log("getCorrectionsForMisspelling:", spell.getCorrectionsForMisspelling("möchten"));

I get the following:
$ node test.js
isMisspelled: true
checkSpelling: [ ]
getCorrectionsForMisspelling: [ 'm�chten' ]
$

From the CLI version, this isn't a misspelled word, it isn't marked as an error though (checkSpelling), but the suggestions don't come through. I noticed that checkSpelling has a slightly more complex signature for converting from UTF-16 to UTF-8 but the others don't.
isMispelled only has a boolean output, which kind of suggests that the Unicode string going in is not being translated in hunspell's expected format. Since "möchten" is correct, I suspect that the same problem exists in getCorrectionsForMisspelling in addition to the output converted might need encoding.
I looked at the resulting hex output from the getCorrectionsForMisspelling and got <Buffer 6d ef bf bd 63 68 74 65 6e>. The ef bf bd should have been the umlaut character, however it is being returned as a placeholder character in UTF-8 encoding. I think this suggests that we might be dealing with a different encoding there.
Sadly, I couldn't figure it out. I spent a few hours messing with the gyp and C++ but haven't figured out the specifics to get it working. I tried converting getCorrectionsForMisspelling to use the UTF-16 format but I don't think I did it correctly since I'm just monkey-bashing code to see if to works.
Any help would be appreciated.

It's interesting to see how much work is done in the hunspell CheckSpelling() wrapper vs. the other method wrappers: https://github.com/atom/node-spellchecker/blob/edf4678e2853dae42630f2b6024c1311c461b0fc/src/spellchecker_hunspell.cc#L57
CheckSpelling() takes its parameters as UTF16, where the others just take const std::string& word. And based on this, all strings in the Javascript environment start out as UTF16. https://kev.inburke.com/kevin/node-js-string-encoding/
So I suppose the solution would be to treat all incoming strings in spellechecker_hunspell.css as UTF16, then convert them to UTF8 before sending them to hunspell?

@dmoonfire I might have found something interesting...
Curiously enough, this also happens when I try to use the Hunspell library with GCC.
I'm working on an Electron application, and one of the requirements is spell checking. I could not build the application using electron-spellchecker for some reasons, so I've decided to look for another library. I've found nodehun. Nodehun has its own native module implementation, but it only took a few unit tests to find out that I have the exact same errors you have, when I try to verify accented Brazilian Portuguese words.
I've decided to check if the same errors happen with the C++ library, and they do (my .cxx file's encoding was UTF-8, and I've tested the library with both accented chars and \u codes in the literals).
Then I remembered I should check the encoding of my local hunspell .aff and .dic files (at /usr/share/hunspell), and I was surprised to see that both are encoded in ISO-8859 (-1, probably).
So I've figured out that I could test two other things:

I could re-encode the .cxx file to ISO-8859-1 and test my program again. Unsurprisingly, all results were correct after I've done this (except for the output, since my terminal is naturally configured to use the UTF-8 charset).

Better than that, I could re-encode the .aff and .dic files to UTF-8, and leave my .cxx file in UTF-8. This resulted in multiple console errors of the form error: line 1176: multiple definitions of an affix flag. A quick search took me to a very interesting bug report at hunspell... So I've followed Caolan Mcnamara's advice and added the FLAG=UTF-8 in my UTF-8-encoded .aff file, and guess what... Everything worked as expected - both my C++ program and my Electron/Node.js program...

It seems all I have to do now is to distribute this "fixed" UTF-8-encoded .aff file with my UTF-8-encoded .dic file, and I'll have correct spell checking in my Electron application... :)
By the way, if this is actually fixes things for other people too, maybe there is another thing to consider: these UTF-8 hunspell dictionaries do not have the FLAG=UTF-8 in their .aff files; well, the Brazilian Portuguese one doesn't. Considering that hunspell bug report, though, I think maybe they should add it, and the encoding instructions might be updated too.
I don't know if this information is useful for you, but I hope this helps somehow.

@s-m-e: Yeah, I realized I was using the wrong word. My latest efforts in https://github.com/atom/node-spellchecker/pull/95 use a different word. I had a problem with the setlocale call inside the Hunspell code in relationship to the dictionaries. If both the file and the locale are UTF8, it works just fine but I'm not sure how to fix it properly that doesn't require reencoding the dictionaries.
Also, those fixes don't work when using the built-in spell checker for Windows 10 or Mac OS. I'm plugging at it, but C isn't my native language anymore and it's taking me a while. I apologize.

@dmoonfire What's the current status with respect to this bug?

@maxbrunsfeld do you have any bandwidth to help out with this? I have a sneaking suspicion that this might be an issue around text-buffer?


Update ui-dashboard-index setting

As per description in #37011, this PR reverts those changes
rancher/rancher release/v2.6 tracks 2.6.5 (and later), so it should track rancher/dashboard master (2.6.5 and later)

@thedadams Thanks, can you merge as well? I lack the permissions


Fixed column names and gulp task update-manifest

@LukasNespor,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot

@LukasNespor, thanks for signing the contribution license agreement. We will now validate the agreement and then the pull request.
Thanks, Microsoft Pull Request Bot

Hi Lukáš,
Thanks for your contribution. We will evaluate this PR in the upcoming days.

Great fix, exactly what I had to do as well to get the gulp tasks running,
Did not know about the column fix, So i will do that manually as well

Hi @LukasNespor and @PerOve,
Can you kindly explain the purpose of the fix to the column name? Thanks.

Hi @PaoloPia,
there were wrong FieldRef eg. on L1478 was "Description" but there is no field with intenal name "Description". The correct one is "Body" which is defined on L1488

Hi,
I still don't get completely the fix, because what we have right now is working on a lot of tenants. I'm just wondering, are you eventually using a specific language for your target site?

Hi,
I found where is the issue :) I was fixing master branch where this column mismatch is, but it was already fixed in dev branch. Change in GDPR-Activity-Hub-Information-Architecture-Full.xml is than useless.

Also, I think would be better to reference 'gulpfile-update-manifest.js' from 'gulpfile.js', as in this documentation page
https://github.com/SharePoint/sp-dev-build-extensions/tree/master/gulp-tasks/update-manifest
Result is the same, but seen we have a separate file already, it would have been easier/better.
Reference: #22

Ok, based on the comments above and on the fact that there are other PRs that fix these issues, I will close this item. Thanks for your contribution.


more quotes

Apologies for any reposts

It's not worth doing something unless someone, somewhere, would much
rather you weren't doing it.
The more that you read, the more things you will know. The more that you
know, the more places you'll go.
One of the sources of pride in being a human being is the ability to
bear present frustrations in the interest of longer purposes.
Proper preparation prevents poor performance.
Don't worry about people stealing your ideas. If your ideas are any
good, you'll have to ram them down people's throats.
If you can imagine a society in which the computer is the only menial,
you can imagine anything.
When you don't create things, you become defined by your tastes rather
than ability. Your tastes only narrow and exclude people. So create.
Wisdom is earned through disgrace, through painful realization of the
inadequacy of your personal world view.
Illegitimi non carborundum
If you've chosen the right data structures and organized things well,
the algorithms will almost always be self-evident. Data structures, not
algorithms, are central to programming.
anyone can cook, but only the fearless can be great (from ratatouille, mentioned in Norvig's Teach yourself programming in 10 years)
A good system aggressively uses a small number of abstractions.
Most people overestimate what they can do in a day and underestimate
what they can do in a year.
If you learn only methods, you'll be tied to your methods. But if you
learn principles, you can devise your own methods.
The only difference between science and screwing around is writing it
down.

A relevant one for programming:
If you have a function with 10 parameters, you probably missed some.

We added quite a lot of new quotes lately and the list is pretty long by now. Thus I won't add new things right now.
But I collect new quotes in a local QUOTES file, in case I'll ever feel like adding even more. (But then I'll probably remove some of the old quotes as well.)
Thanks, Mr. Quotes! ;-)


Poll: Are you using Soto in a production environment?

The proposal for Soto to become one of the SSWG recommended package has just gone up. https://forums.swift.org/t/sswg-0016-soto-for-aws/41552. One of the requirements for the package to move out of Sandbox to Incubating is

Document that it is being used successfully in production by at least three independent end users which, in the SSWG judgement, are of adequate quality and scope.

If you are using Soto in a production environment, can you attach a 🚀 below. If you are able, can you provide details of how you are using it in a separate comment, provide details of services used, number of requests a day etc
thank you in advance

I'm using this is production with 2 projects:

One is an events media social network that interacts with S3, SNS and STS
The other one is a grocery store app that interacts with S3, SNS and SES

Disclaimer I am a contributor on this project (mostly in 2018/19)
We use Soto on 3 projects in production - the first having been deployed in 2018 is still running

2 event services. One service accepts post data from mobile marketing partners and the other from financial services partners. Both use SotoKinesis putRecords to post to kinesis. These services handle > 3k events / second at peak and about 150 million requests / day.
an elastic search feeder. The feeder uses SotoS3 multi part download to read data files from S3. Data is then fed into elastic search. The feeder runs 1x / day.

I'm using Soto in two small projects:

An invoice generation service. It loads raw payment data and stores it in S3, generates an invoice PDF and sends it via SES. It is also connecting to AWS SecretsManager to securely retrieve sensitive information. 😉

The second project is simple API that stores posted JSON into files on S3 and once per week the files are processed by a lambda function, zipped, stored in another S3 bucket and an email is sent via SES.

Another simple API that serves configurations stored in S3 to mobile Apps.

Those are all fairly small and simple projects, but they are running in production. All future projects, as well as well as existing ones, that make use of AWS Lambda aim to use Swift as programming language and of course Soto to connect to AWS services (DynamoDB, SES, API Gateway, S3, SNS, ...).

We're using it in production as well, it's a small tool that is used to track internal loadtests. Some more description in the talk from last year's conference too!

We just switched to using Soto instead of a custom S3 implementation we pieced together via previous open source SSS AWS projects. It's been a dream, and the fact that it supports all AWS APIs out of the box is really wonderful.
I unfortunately can't speak to exact user or request numbers but happy to discuss more in a DM if that's helpful (I'm jdmcd in the Vapor Discord as well).

We just switched to using Soto instead of a custom S3 implementation we pieced together via previous open source SSS AWS projects. It's been a dream, and the fact that it supports all AWS APIs out of the box is really wonderful.
I unfortunately can't speak to exact user or request numbers but happy to discuss more in a DM if that's helpful (I'm jdmcd in the Vapor Discord as well).

Used Soto in an AWS Lambda environment for a client. Specifically the client was using DynamoDB, KMS, Shared Secrets, and Cognito as well.


Flow for businesses to notify RailsDevs when they make a hire

Developers can fill out the celebration package form when they get hired via RailsDevs. This helps me kick off conversations with businesses to collect the hiring fee. I'd like to add a similar form for businesses to inform me when they hire someone.
A PR addressing this issue should:

[ ] Add a "Made a hire?" link to the nav bar
[ ] Clicking the link shows a form that looks like /hired/forms/new

The link should be styled like the "Found a job?" link for developers and only appear when the active account has a business profile. If the active account has both a developer and business profile then show both, "Found a job?" first.
The form should render at /hire/forms/new and follow the same models, tables, and design as /hired/forms/new but updated for the new namespace. The backing model/table should belong_to a business and the controller should redirect if the active account doesn't have a business profile (just like the developer form).
Successfully submitting the form should trigger an email to admins and appear in /admin/hire/forms, mimicking /admin/hired/forms.
The form should have the following copy and fields:
Did you hire someone via RailsDevs?
Congratulations! Fill out these details and Joe will send you info on next steps.

Billing address - text
Developer name - string
Position - string
Start date - date
Annual salary - integer
Employment type - dropdown (freelance or contract, full time employment)
Feedback (optional) - text

Let me at 'em!

All yours, thanks Roman!

Hey guys! Happy to push this one forward!

Closed via #775 and #818.


Make contribution as required :)

Make edits as you may please.
    Hello @sakshian , I'll like to take part in this.

Originally posted by @Dorcastunmise in https://github.com/sakshian/Hactoberfest2022/issues/1#issuecomment-1274296927

Hello @sakshian , I'll like to take part in this.

@sakshian
Created PR #29
Created PR #30
Created PR #31
Kindly review it.

please assign it to me

I would like to contribute to this  by adding  some basic c and python program.

hi @sakshian ,i would like to contribute cpp and python programs, could you please assign me this issue