Use intl package for plural forms

https://github.com/openfoodfacts/smooth-app/blob/c535037ea373d40e5fa3f3acf9b64bcd62f082c3/packages/smooth_app/lib/pages/product/common/product_query_page_helper.dart#L53
These kind of cases are not so easy to manage and translate plus some languages need the parameter, can you please take a look here?
https://api.flutter.dev/flutter/intl/Intl/plural.html
Thanks.

Thanks for your issue @yarons,
I suppose you mean that in some languages it is not possible to write the time in front and it would be better to put it as a variable in the translation. Am I right?

There are many challenges, In Hebrew we have singular, dual and plural, Arabic and Polish has 6 potential plural forms, in Ukrainian there's a special singular form that applies for 1, 11, 21 etc. (not just 1 like in most language).

Btw I'm not sure we actively support RTL languages for the moment - at least I can't remember reading anything related in the code.

@monsieurtanuki, yes you're right, we have not done anything about this. But I think I read that flutter automatically support such usecases.
I found a possible solution in a publicly shared flutter document here but cant finde anything about this in the documentation.
"nWombats": "{count,plural, =0{no wombats} other{{count} wombats}}",
"@nWombats": {}

nWombats(0) returns "no wombats"
nWombats(5) returns "5 wombats"

In the flutter_localizations README is also a part about plurals:
 MaterialLocalizations.of(context).selectedRowCountTitle(yourRowCount)
Plural translations can be provided for several quantities: 0, 1, 2, "few", "many", "other". The variations are identified by a resource ID suffix which must be one of "Zero", "One", "Two", "Few", "Many", "Other". The "Other" variation is used when none of the other quantities apply. All plural resources must include a resource with the "Other" suffix. For example the English translations ('material_en.arb') for selectedRowCountTitle are:
"selectedRowCountTitleZero": "No items selected",
"selectedRowCountTitleOne": "1 item selected",
"selectedRowCountTitleOther": "$selectedRowCount items selected",

When defining new resources that handle pluralizations, the "One" and the "Other" forms must, at minimum, always be defined in the source English ARB files.

The first one would alow much more flexibility for the translators, as @yarons mentioned some languages have their own forms for more then just none, one and multiple. We would have to test if the  first method is implmented since some of the things in these docs could just be ideas which are not in the final product.

Ok it tested a bit. The first method is working but turns out flutter_localizations uses dart-lang/intl under the hood which only allows
zero, one, two, many, few, other. But I am not able get many and few

This way or are you using a different syntax?
{count,plural, =0{no wombats} one{a single wombat} many{wow! look at all these wombats} other{{count} wombats}}

Exactly, its 1 not one and many is not in use, but yeah. Have a look at #319.
Is it that what you expected?

That's wonderful but you can keep the static part out instead of repeating it, so this:
"plural_ago_minutes": "{count,plural, =0{Cached results from: less then a minute ago} =1{Cached results from: one minute ago} =2(Cached results from: two minutes ago} other{Cached results from: {count} minutes ago}}",
(Also notice the right after =2 there are parentheses instead of curly brackets and then=>than).
Would become this:
"plural_ago_minutes": "Cached results from:  {count,plural, =0{less than a minute} =1{one minute} =2{two minutes} other{{count} minutes}} ago",
Great job, thank you.

@yarons the way you suggested it unfortunately does not work, the Cached results from: part will be skipped.
We could also put this String together in the code (from multiple translations), but I think the method we have at the time will make it easier for the translator.

Seriously? The ago part as well? OK then, I'm guessing this approach is good enough, weird though…


Support to retry the failed activity when changing the Access Tier for one blob

Storage Explorer Version: 1.3.1
Platform/OS Version: Windows 10/MacOS High Sierra/ Linux Ubuntu 16.04
Architecture: ia32/x64
Build Number: 20180716.1
Commit: 47039639
Regression From: Not a regression
Steps to Reproduce:

Choose one GPV2 account -> Open one blob container which contains one blob at least.
Create snapshot for the blob -> Try to change the current access tier for the original blob -> Check the failed message in Activities.

Expected Experience:
Support to retry the failed activity.
Actual Experience:
Not support to retry the failed activity.

You expect a Retry action to be available for the change access tier activity? That won't do any good. The message says "This operation is not permitted because the blob has snapshots." That's pretty clear about why it failed, and no amount of retrying is going to change the outcome.

Hi @craxal ,We expect to use the 'Retry' action directly after deleting the created blob snapshots. We think it is convenient for users.

Let's wait for users to ask for this before committing to anything.


Use gloo as part of DeviceGPU's process group backend

What does this PR do?
As pytorch defaults to, uses gloo for cpu, nccl for gpu, for DeviceGPU's backend for process group.
As older versions of torch / composer do not support checkpoint load/save with gloo + nccl multi-backend, we restrict this change to torch >=2.3.0.
Successful daily test (partial): https://github.com/mosaicml/composer/actions/runs/10221614957
Another successful daily test (full): WIP

What issue(s) does this change relate to?

Before submitting

[ ] Have you read the contributor guidelines?
[ ] Is this change a documentation change or typo fix? If so, skip the rest of this checklist.
[ ] Was this change discussed/approved in a GitHub issue first? It is much more likely to be merged if so.
[ ] Did you update any related docs and document your change?
[ ] Did you update any related tests and add any new tests related to your change? (see testing)
[ ] Did you run the tests locally to make sure they pass?
[ ] Did you run pre-commit on your change? (see the pre-commit section of prerequisites)

Debugging daily test failures

tfw you put or instead of and....


tomcat large validation failure for evaluation-git-29a657f

Large size tomcat has problems with any JDK. Here is OpenJDK11, but MS-OpenJDK16 also fails similarly.
$ java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)

$ java -jar /home/mjm/dacapo/dacapo-evaluation-git-29a657f.jar -n 2 -v -s large tomcat
...
Class name: org.dacapo.harness.Tomcat
Configurations:
short     Tomcat servlet container
long      Runs the tomcat sample web applications
author    Apache Software Foundation
license   Apache License, Version 2.0
copyright Copyright (c) Apache Software Foundation
url       http://tomcat.apache.org
version   9.0.37
sizes     default large small xlong
Using scaled threading model. 160 processors detected, 160 threads used to drive the workload, in a possible range of [1,4096]
Server thread created
===== DaCapo evaluation-git-29a657f tomcat starting warmup 1 =====
Loading web application
Creating client threads to issue 20000 rounds of 41 requests (820000).
Waiting for clients to complete
[INFO] HttpMethodDirector - I/O exception (org.apache.commons.httpclient.NoHttpResponseException) caught when processing request: The server localhost failed to respond
[INFO] HttpMethodDirector - Retrying request

Client threads complete ... unloading web application
Digest validation failed for stderr.log, expecting 0xda39a3ee5e6b4b0d3255bfef95601890afd80709 found 0x9eaf630babf7a2d2c9a882697cc5381a6f60b5d2
===== DaCapo evaluation-git-29a657f tomcat FAILED warmup =====
===== DaCapo simple tail latency: 50% 7749 usec, 90% 32219 usec, 99% 233842 usec, 99.9% 458822 usec, 99.99% 1912601 usec, max 20063204 usec, measured over 820000 events =====
===== DaCapo metered tail latency: 50% 2174639 usec, 90% 5426116 usec, 99% 7365186 usec, 99.9% 7499741 usec, 99.99% 7565089 usec, max 23123636 usec, measured over 820000 events =====
===== DaCapo evaluation-git-29a657f tomcat starting =====
Loading web application
Creating client threads to issue 20000 rounds of 41 requests (820000).
Waiting for clients to complete
Client threads complete ... unloading web application
Digest validation failed for stdout.log, expecting 0xa4154402b4ff0e6aba350b40574b6f75f2b39774 found 0x69f1d077c28c4c2b7e72a87fed62488d7d7386e1
===== DaCapo evaluation-git-29a657f tomcat FAILED =====
===== DaCapo simple tail latency: 50% 6440 usec, 90% 32718 usec, 99% 223442 usec, 99.9% 553469 usec, 99.99% 1365274 usec, max 4771887 usec, measured over 820000 events =====
===== DaCapo metered tail latency: 50% 306465 usec, 90% 5312595 usec, 99% 6738924 usec, 99.9% 7049997 usec, 99.99% 7119683 usec, max 7385925 usec, measured over 820000 events =====
Server stopped ... iteration complete
Validation FAILED for tomcat large

Thanks.  Fixed.


example: langchain Agent (#38)

What problem does this PR solve?

Issue Number: open #38
Problem Summary:
What changed and how does it work?
Add an Extraction Agent example, Extract information from text using TiDBVectorClient, LangChain, and LLM.
Check List
Tests

[ ] Unit test
[ ] Integration test
[x] Manual test (add detailed scripts or steps below)
[ ] No need to test

[ ] I checked and no code files have been changed.

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

Please refer to Release Notes Language Style Guide to write a quality release note.
None

@AntiKnot Hello, AntiKnot, our colleague has just reached out to thank you for great contribution~ You can check your mailbox for further connection as we want to send you some swag provided by TiDB Community.

@sykp241095 Thx, project maintainers and official operations.


Missing hints in basic Javascript.

Describe your problem and how to reproduce it:
Missing hint in Basic javascript(Use Multiple Conditional (Ternary) Operators) problem.
Add a Link to the page with the problem:
https://guide.freecodecamp.org/certifications/javascript-algorithms-and-data-structures/basic-javascript/use-multiple-conditional-ternary-operators/
Tell us about your browser and operating system:

Browser Name: Google Chrome
Browser Version: 75.0.3770.142 (Official Build) (64-bit)
Operating System: Windows 8.1

If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):

Closing as non-issue, since the current Guide on the master branch (not yet deployed to production) has a solution.  The hints and solutions will be available on the forum soon.


testing integer value in containsAllMatchingElements need to wrap with { }

When I try to test a element using containsAllMatchingElements  that only render integer value I need to test with
{88}
 which it supposed to be
88

is this the correct scenario ? what's the reason behind this implementation ?
// Component
import React from 'react'
const Dummy = (props) => (

{ props.counter }

Counter: { props.counter }

)

export default Dummy

// Component Test
import React from 'react';
import Enzyme, { shallow } from 'enzyme'
import Adapater from 'enzyme-adapter-react-16'

import DummyComponent from './Dummy'

Enzyme.configure({adapter: new Adapater() })

let wrapper;

beforeEach(() => {
  wrapper = shallow(<DummyComponent counter={88}/>)
})

it('Case 1 (False)', () => {
  expect(wrapper.containsAnyMatchingElements([

88
, // this is incorrect, I need to wrap it with { } => { 88 }

Counter: 88
, // if the children element is combined with string it doesn't need to wrap with { }
  ])).toEqual(true)
})

it('Case 2 (True)', () => {
  expect(wrapper.containsAllMatchingElements([

{88}
,

Counter: 88
,
  ])).toEqual(true)
})

it('Case 3 (True)', () => {
  const h1 = wrapper.find('h1')
  expect(h1.text()).toEqual('88')
})

In React 16, HTML elements only ever have string props and children, so you have to convert your value to a string before testing it.
This isn’t related to enzyme.


Generator expression is marked as not executed when it clearly is

In this code with branch coverage, "Line of interest" is marked as partial (3->-3)
#!python
def f(a, b):
    c = (i for i in a)
    d = (j for j in b)  # Line of interest
    return dict(zip(c, d))

print(f(['a', 'b'], [1, 2]))

Happens with 4.0.3 and 4.1b2+

Bitbucket: https://bitbucket.org/ned/coveragepy/issue/475

I recently ran into this, and had some additional questions:
How can we denote a case where not finishing the iterator is the intended outcome? For instance, Coverage.py flags this:
card = next(iter(x for x in hand if x.id == card_id), None)
Then, if not exhausting an iterator is a "failure" of coverage, why is there no complaint about this substitute? Coverage.py does not flag this:
card = next(iter(filter(lambda x: x.id == card_id, hand)), None)
The Python docs say explicitly that filter "Construct[s] an iterator", and next(iter(...)) is going to leave that iterator just as unfinished as it leaves an iterator comprehension expression, so if such a thing is an "un-covered branch", I would expect it to complain equally about both. Is there a reason it doesn't?
In terms of getting around it, # pragma: no branch works, but I'm curious: Do you have a recommendation for this? I suppose I could configure partial_branches to add something like # pragma unfinished iter but I figured I'd ask your opinion. This feels like something that would happen 'all the time', but maybe it's just my Python coding style. :)

@ipmcc The filter isn't getting flagged because the loop is hidden inside the filter implementation.  This is the same issue as s.replace("foo", "bar") not knowing whether the implicit if "foo" in s: branch was taken inside replace().

This just happened to me using any() with a generator instead of a list (which I cannot use, as pre-commit complains about it).


Length has already been added globally at addTool

I just use addTool once, why error？ on react useEffect

It means you are adding it more than once, you code is running twice, are you running React 18? it is known to have re-rendering by design

I suggest moving the initialization methods for 'cornerstone' and 'cornerstone-tools' outside of the React component's useEffect method and placing them in a separate file such as 'main.ts' or 'app.ts'.

there is no react in cornerstone library, where are you referring to

Please check react starter and close the issue


[BUG] new wasm-pack version v0.13.0 breaking build

Is there an existing issue for this?

[X] I have searched the existing issues

What version of workers-rs are you using?
0.0.18
What version of wrangler are you using?
0.0.18
Describe the bug
A new version of wasm-pack was published yesterday which seems to have broken worker-build.
Ultimately, the wasm-pack issue should be addressed/fixed in that project (it has already been reported among a few other issues, on the GH: https://github.com/rustwasm/wasm-pack/issues/1405) however I was a bit surprised that this repository was installing an unpinned/unversioned binary from another project, which can lead to unexpected behavior especially when no action or version change was taken on the user's part.
In the meantime, I am manually installing a known-working version of wasm-pack manually before invoking worker-build.
That being said, I think it would be a good idea for this project to pin the binaries it installs to specific versions, to avoid unexpected behavior when said upstream binaries publish new versions.
Steps To Reproduce

Install with cargo install -q --git https://github.com/cloudflare/workers-rs --rev 12e011ad9fa2eddd73759908d9d54b5d54dd07ee --bin worker-build (version shouldn't matter, just using mine as an example)
Run the binary we just installed with worker-build --release
See the following error:

error: failed to run custom build command for `libz-ng-sys v1.1.15`
Caused by:
  process didn't exit successfully: `/tmp/cargo-installD20ZUK/release/build/libz-ng-sys-9558847959953b2c/build-script-build_zng` (exit status: 101)
  --- stdout
  CMAKE_TOOLCHAIN_FILE_x86_64-unknown-linux-gnu = None
  CMAKE_TOOLCHAIN_FILE_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_x86_64-unknown-linux-gnu = None
  CMAKE_GENERATOR_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_x86_64-unknown-linux-gnu = None
  CMAKE_PREFIX_PATH_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_x86_64-unknown-linux-gnu = None
  CMAKE_x86_64_unknown_linux_gnu = None
  HOST_CMAKE = None
  CMAKE = None
  running: cd "/tmp/cargo-installD20ZUK/release/build/libz-ng-sys-02f76757fe2d8ec1/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libz-ng-sys-1.1.15/src/zlib-ng" "-DBUILD_SHARED_LIBS=OFF" "-DZLIB_COMPAT=OFF" "-DZLIB_ENABLE_TESTS=OFF" "-DWITH_GZFILEOP=ON" "-DCMAKE_INSTALL_PREFIX=/tmp/cargo-installD20ZUK/release/build/libz-ng-sys-02f76757fe2d8ec1/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_ASM_COMPILER=/usr/bin/cc" "-DCMAKE_BUILD_TYPE=Release"
  --- stderr
  thread 'main' panicked at /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cmake-0.1.50/src/lib.rs:1098:5:
  failed to execute command: No such file or directory (os error 2)
  is `cmake` not installed?
  build script failed, must exit now
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: failed to compile `wasm-pack v0.13.0`, intermediate artifacts can be found at `/tmp/cargo-installD20ZUK`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.
Error: installation of wasm-pack exited with status exit status: 101

Had the same problem, solved it by installing CMake in your host machine. It seems that some dependency of wasm-pack requires it.

Had the same problem, solved it by installing CMake in your host machine. It seems that some dependency of wasm-pack requires it.

Correct, installing cmake will resolve the issue, however previous versions of wasm-pack did not require cmake to build, and having dependencies change with no change to the version of workers-rs you are pinned to is still concerning.

Alright well the immediate issue (reliance on cmake) should be resolved once this gets merged upstream https://github.com/rustwasm/wasm-pack/pull/1407 however I do still think it's worth considering pinning to a specific version of wasm-pack that gets cargo install'd by this project to avoid any future issues like this.


Volta datasheet link broken

The link for the NCv3 V100 GPU datasheet is broken, leads to a pdf that seems to be corrupted. Link should lead to:
https://images.nvidia.com/content/technologies/volta/pdf/tesla-volta-v100-datasheet-letter-fnl-web.pdf

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

ID: c946c151-c1a6-59bc-2e44-6a820547f48e
Version Independent ID: 572ed0c0-8c4d-3629-044d-c7a34c8281a6
Content: Azure Linux VM sizes - GPU
Content Source: articles/virtual-machines/linux/sizes-gpu.md
Service: virtual-machines-linux
GitHub Login: @jonbeck7
Microsoft Alias: jonbeck

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

@msLinuxNinja I have created a PR with the updated link and the changes will be live shortly. Thanks.


Add minimote hardware support to the DotBot firmware

There's already an issue opened for that: #183

You're right, my bad.


navigation breaks  - seems to depend on python/sphinx versions

I have a navigation tree with about 6 levels.
It looks great when I build it locally using sphinx.
I did a pip freeze and put the same requirements.txt onto readthedocs.
For some reason the nav bar has issues only on readthedocs - the
nav tree wraps and the open/close seems to break.
Here's the local version:

For this I used:
python 3.6.8
sphinx 2.3.0
sphinx_rtd_theme 0.4.3
And here's the readthedocs version:

Since I can't tell exactly which versions of everything readthedocs is using (ie, if it is
following the requirements.txt or not), I reproduced the broken behavior on my local machine using the following (latest) versions:
python==3.7.7
Sphinx==3.0.3
sphinx-rtd-theme==0.4.3
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-contentui==0.2.5
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==1.0.3
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.4
So with these versions, my local navigation also breaks in the same way.
Any idea why ?
Thanks!

nevermind. It seems that this was fixed in 0.4.3dev and greater, but is not yet in the current release (which readthedocs must be using).


no way to disable the update notification?

  Same with OreLib.

Dynamic Surroundings and DS: Huds have this in the config:
# Enables/disables display of version check information [default: true]
B:"Enable Online Version Check"=true

OreLib currently does not.  This will be going in for the next update.

I am pepega haha, i went through searching "update" and "notification" haha, my bad.  Thanks!


fix: Add pagination to hsps

this needs a rebase. I would take out the "modifed_on" removal as well so its just the pagination alone

Split work across other PRs


REACT: Check it Out button

Make it functional and also align it possible.

i would like to work on this am I??

can i do this??

can i do this?? @anushbhatia

what this "check it out" button should do??

what this "check it out" button should do??

Redirect to the Editor page

okk i will do that!!

I have fixed the issues in my forked local repository what next I need to do?? @smaranjitghose

i have done this and requested a pull!! @smaranjitghose @anushbhatia


Add/Increase Shadows in Appropriate places

Increase shadow at the Menu border

and also on post's border if possible

Increase shadow at the Menu border  and also on post's border if possible

do you have an example to show us?

The shadows at the border..

Currently its merging with the background colour so its not proper visually.

 The shadows at the border..
 Currently its merging with the background colour so its not proper visually.

and what is your proposal for people which have #000000 theme


question ? answer me please

which algorithm you have used for diabetic retinopathy? which one is the best ? ( efficient net , ...)

Hello @chim1999 , sorry for the long delay, for some reason I forgot to mark "Watch" on my own repository.
You can find my best [solution here](https://github.com/dimitreOliveira/APTOS2019BlindnessDetection/tree/master/Best solution (Bronze medal - 163rd place), there you wee see everything that I have used, together with a nice description of the solution, but in terms of best model architecture, for me was EfficientNetB5


Conjugate words

Now: <noun> <verb> => fish defeat
Wanted: <noun> <verb> => fish defeats or fish defeated
This will improve memorability.

Implemented as part of v2.


nixos/tests/install: Fix after sandboxed-docs change fc614c3

Motivation for this change
Fix the install tests after fc614c37c653637e5475a0b0a987489b4d1f351d broke them, as noted in https://github.com/NixOS/nixpkgs/pull/149532#issuecomment-1005777871
Before this change:
$ nix-build nixos/tests/installer.nix -A simple
...
machine: must succeed: nixos-install < /dev/null >&2
...
machine # these 418 derivations will be built:
...
machine # these 359 paths will be fetched (0.00 MiB download, 1272.37 MiB unpacked):
...
machine # building '/nix/store/f450ks5xaq790h43nc5r78x69cr4721q-Make-build-reproducible.patch.drv'...
machine # building '/nix/store/c99ihlhb2lh875spzsl6rnc4058grxvn-autoconf-2.71.tar.xz.drv'...
machine # building '/nix/store/3yar2pnvz7ll79z3jlzx09qnhrsi7zj5-automake-1.16.5.tar.xz.drv'...
machine # warning: error: unable to download 'https://salsa.debian.org/debian/keyutils/raw/4cecffcb8e2a2aa4ef41777ed40e4e4bcfb2e5bf/debian/patches/Make-build-reproducible.patch': Couldn't resolve host name (6); retrying in 303 ms
...
machine # error: unable to download 'https://salsa.debian.org/debian/keyutils/raw/4cecffcb8e2a2aa4ef41777ed40e4e4bcfb2e5bf/debian/patches/Make-build-reproducible.patch': Couldn't resolve host name (6)
machine # warning: error: unable to download 'https://ftpmirror.gnu.org/autoconf/autoconf-2.71.tar.xz': Couldn't resolve host name (6); retrying in 326 ms
...
machine # error: builder for '/nix/store/f450ks5xaq790h43nc5r78x69cr4721q-Make-build-reproducible.patch.drv' failed with exit code 1
machine # error: builder for '/nix/store/c99ihlhb2lh875spzsl6rnc4058grxvn-autoconf-2.71.tar.xz.drv' failed with exit code 1
machine # error: 1 dependencies of derivation '/nix/store/c2hvzjl7x004hjiwf3c10r15s6c1gjs3-autoconf-2.71.drv' failed to build
...
machine # error: 1 dependencies of derivation '/nix/store/vhghw81lw7y0bzdjwfhr2lmyrhnsrps3-source.drv' failed to build
machine # error: 1 dependencies of derivation '/nix/store/vzi1i7flcnrhy8vjp7gqk1b1azk0ky1k-brotli-1.0.9.drv' failed to build
machine # error: 1 dependencies of derivation '/nix/store/710r40n1k5b4867ynrjzlvklzfnyy121-python3-minimal-3.9.9.drv' failed to build
machine # error: 1 dependencies of derivation '/nix/store/6rqfgpxig1vpxv8kmx9fijj8h7c3nh7a-options-docbook.xml.drv' failed to build
machine # error: 1 dependencies of derivation '/nix/store/d47qq562h05ljwid7257hgml41qv1bam-generated-docbook.drv' failed to build
machine # error: 1 dependencies of derivation '/nix/store/rr13dl32wgbhzdzsf9b4a0zfah48qah0-nixos-manual-combined.drv' failed to build
machine # error: 1 dependencies of derivation '/nix/store/ifajc0l06201crpfsz5lilvqk3hxksfw-nixos-manpages.drv' failed to build
machine # error: 1 dependencies of derivation '/nix/store/kk2pbd3dys082cylhfagqr904ljh4bz5-nixos-manual-html.drv' failed to build
machine # error: 1 dependencies of derivation '/nix/store/72il44y04pib9xk1klcrfr6y57ap8as2-system-path.drv' failed to build
machine # error: 1 dependencies of derivation '/nix/store/dvnz5a6rknrim0mw0ys0653pxbw0663m-nixos-system-nixos-22.05pre-git.drv' failed to build
machine: output:
Test "Perform the installation" failed with error: "command `nixos-install < /dev/null >&2` failed (exit code 1)"
cleanup
kill machine (pid 8)

After this change:
$ nix-build nixos/tests/installer.nix -A simple
...
machine: must succeed: nixos-install < /dev/null >&2
...
machine # these 230 derivations will be built:
...
machine # these 359 paths will be fetched (0.00 MiB download, 1208.81 MiB unpacked):
...
machine # Installation finished. No error reported.
machine # installation finished!
(finished: must succeed: nixos-install < /dev/null >&2, in 4291.33 seconds)
...
(finished: waiting for the VM to power off, in 1.93 seconds)
(finished: run the VM test script, in 4715.12 seconds)
test script finished in 4715.12s
cleanup
(finished: cleanup, in 0.00 seconds)
kill vlan (pid 7)

Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/703

fc614c3

Please use long sha because in the future this reference might return 404/be ambiguous if the repo gets to big.


Index not refreshed

hi all,
We have run entwine build, it successfully generated index. Then we have run build with extended source data into same folder as previous. But greyhound still provides extent from previous index, new data/tiles not visible.
Any ideas what could it be?

You'll need to relaunch Greyhound if you add to an index - it doesn't monitor for changes.


Implemented feature for super admin to CRUD challenges database

resolves #144
Note: Since this PR is basically copy everything from #138, there are possibly some implementation for event CRUD that I forgot to switch to challenge CRUD.

Currently no way to remove a prize:

Also should rename to "Save Changes":

Challenge is spelled incorrectly:


Processes/Deployments are not imported

I am running simple monitor 2.3.0 with Zeebe 1.4.0-alpha2 and deploy my processes using the Python API (which works, because instances show up and respond to commands).
Problem: the Processes tab and diagram visualization under Instances are broken for me.
I debugged this and the reason is that there are no ProcessRecords consumed at all (by the Hazelcast connector). I am not sure what this record is supposed to be, because I can't seem to find a corresponding RecordValue in io.camunda.zeebe.protocol.record.value. What I found however, and also seems more natural to me given the ProcessEntity's fields, is a DeploymentRecord which I also saw the Hazelcast connector consume when I deploy a process.. So as a test I implemented an Importer like so:
ZeebeHazelcast.newBuilder(hazelcast)
    .addDeploymentListener(record ->
        ifEvent(record, Schema.DeploymentRecord::getMetadata, processAndElementImporter::importDeployment))

public void importDeployment(final Schema.DeploymentRecord record) {
    final int partitionId = record.getMetadata().getPartitionId();

    if (partitionId != Protocol.DEPLOYMENT_PARTITION) {
      // ignore process event on other partitions to avoid duplicates
      return;
    }

    final Intent intent = DeploymentIntent.valueOf(record.getMetadata().getIntent());
    if (intent != DeploymentIntent.CREATED) {
      return;
    }

    for (int i = 0; i < record.getProcessMetadataCount(); i++) {
      var processMetadata = record.getProcessMetadata(i);
      var resource = record.getResources(i);

      final ProcessEntity entity = new ProcessEntity();
      entity.setKey(processMetadata.getProcessDefinitionKey());
      entity.setBpmnProcessId(processMetadata.getBpmnProcessId());
      entity.setVersion(processMetadata.getVersion());
      entity.setResource(resource.getResource().toStringUtf8());
      entity.setTimestamp(record.getMetadata().getTimestamp());
      processRepository.save(entity);
    }
  }

... and everything works as expected.
Do you have an explanation for this? Is it my Zeebe version? Why do you use ProcessRecord as opposed to DeploymentRecord and where is the counterpart in Zeebe?

I can confirm that simple monitor 2.3.0 fails to integrate with Camunda 8.2.0 and shows empty list for Processes tab. Camunda operate lists deployed processes. I would be grateful if you could fix this.
I tried Simple monitor 2.3.0 in Docker with Camunda 8.2.0 composed from docker-compose.yaml augmented with the following lines to activate Hazelcast:
services:
zeebe:
image:
container_name: zeebe
ports:
- "5701:5701"
volumes:
- ./zeebe-hazelcast-exporter-1.2.1-jar-with-dependencies.jar:/usr/local/zeebe/exporters/zeebe-hazelcast-exporter-jar-with-dependencies.jar
- ./application.yaml:/usr/local/zeebe/config/application.yaml
simple-monitor:
image: ghcr.io/camunda-community-hub/zeebe-simple-monitor:2.3.0
environment:
- zeebe.client.broker.gateway-address=zeebe:26500
- zeebe.client.worker.hazelcast.connection=zeebe:5701
ports:
- "8082:8082"
networks:
- camunda-platform
- identity-network
depends_on:
- zeebe
- identity
Docker log from Simple monitor container is provided below:
$ docker-compose up simple-monitor
keycloak is up-to-date
elasticsearch is up-to-date
identity is up-to-date
zeebe is up-to-date
Creating camunda-platform-hazelcast_simple-monitor_1 ... done
Attaching to camunda-platform-hazelcast_simple-monitor_1
simple-monitor_1  | 11:50:19.914 [Thread-0] DEBUG org.springframework.boot.devtools.restart.classloader.RestartClassLoader - Created RestartClassLoader org.springframework.boot.devtools.restart.classloader.RestartClassLoader@506a38ab
simple-monitor_1  |
simple-monitor_1  | ___                 __
simple-monitor_1  |  /  _  _ |   _   (_  .  _   _  |  _   |/|  _   _  . |_  _   _
simple-monitor_1  | /__ (- (- |) (-   __) | ||| |) | (-   |  | () | ) | | (_) |
simple-monitor_1  |                              |
simple-monitor_1  |
simple-monitor_1  | ================================================================
simple-monitor_1  |
simple-monitor_1  |
simple-monitor_1  | 2022-07-11 11:50:21.092  INFO 1 --- [  restartedMain] io.zeebe.monitor.ZeebeSimpleMonitorApp   : Starting ZeebeSimpleMonitorApp using Java 11.0.13 on c58706e7a647 with PID 1 (/app/classes started by root in /)
simple-monitor_1  | 2022-07-11 11:50:21.094 DEBUG 1 --- [  restartedMain] io.zeebe.monitor.ZeebeSimpleMonitorApp   : Running with Spring Boot v2.6.3, Spring v5.3.15
simple-monitor_1  | 2022-07-11 11:50:21.095  INFO 1 --- [  restartedMain] io.zeebe.monitor.ZeebeSimpleMonitorApp   : No active profile set, falling back to default profiles: default
simple-monitor_1  | 2022-07-11 11:50:30.254  INFO 1 --- [  restartedMain] i.z.monitor.zeebe.ZeebeHazelcastService  : Connecting to Hazelcast 'zeebe:5701'
simple-monitor_1  | WARNING: An illegal reflective access operation has occurred
simple-monitor_1  | WARNING: Illegal reflective access by com.hazelcast.internal.networking.nio.SelectorOptimizer (file:/app/libs/hazelcast-5.0.2.jar) to field sun.nio.ch.SelectorImpl.selectedKeys
simple-monitor_1  | WARNING: Please consider reporting this to the maintainers of com.hazelcast.internal.networking.nio.SelectorOptimizer
simple-monitor_1  | WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
simple-monitor_1  | WARNING: All illegal access operations will be denied in a future release
simple-monitor_1  | 2022-07-11 11:50:31.599  INFO 1 --- [  restartedMain] i.z.monitor.zeebe.ZeebeHazelcastService  : Importing records from Hazelcast...
simple-monitor_1  | 2022-07-11 11:50:31.791  INFO 1 --- [  restartedMain] i.z.h.connect.java.ZeebeHazelcast        : Read from ringbuffer 'zeebe' starting from sequence '0'
simple-monitor_1  | 2022-07-11 11:50:34.382  INFO 1 --- [  restartedMain] io.zeebe.monitor.ZeebeSimpleMonitorApp   : Started ZeebeSimpleMonitorApp in 14.422 seconds (JVM running for 20.902)

Same problem for us. New process definitions are imported into ZSM database.

@Benjoyo We are having the same problem, and I would like to implement the fix you came up with.
Are you able to do a pull request? Or perhaps give us some pointers here on how and where to deploy the code in your comment.
We use docker to run Zeebe+Hazelcast connector. I'm assuming that's where the code changes are that you made, rather than in the simple_monitor?
Thank you

Importing the process records is correct. There is no need to import the deployment records. Previously, the simple monitor imported the deployment records but that was changed by #250.
Zeebe writes (and exports) a new process record when a new BPMN process is deployed. But it doesn't write a process record if the process didn't change compared to the previous version.

If a try to deploy a process with simple monitor version 2.3.0 and Zeebe 8.0.2 with Hazelcast 1.2.1 then the process is not visible in the simple monitor. But I see the following error on the log:
2022-08-08 03:55:05.518 ERROR 1 --- [pool-1-thread-1] i.z.h.connect.java.ZeebeHazelcast        : Failed to deserialize Protobuf message at sequence '1'

com.google.protobuf.InvalidProtocolBufferException: Protocol message had invalid UTF-8.
	at com.google.protobuf.InvalidProtocolBufferException.invalidUtf8(InvalidProtocolBufferException.java:164) ~[protobuf-java-3.19.1.jar:na]
	at com.google.protobuf.Utf8$DecodeUtil.handleTwoBytes(Utf8.java:1929) ~[protobuf-java-3.19.1.jar:na]
	at com.google.protobuf.Utf8$DecodeUtil.access$700(Utf8.java:1903) ~[protobuf-java-3.19.1.jar:na]
	at com.google.protobuf.Utf8$UnsafeProcessor.decodeUtf8(Utf8.java:1421) ~[protobuf-java-3.19.1.jar:na]
	at com.google.protobuf.Utf8.decodeUtf8(Utf8.java:340) ~[protobuf-java-3.19.1.jar:na]
	at com.google.protobuf.CodedInputStream$ArrayDecoder.readStringRequireUtf8(CodedInputStream.java:815) ~[protobuf-java-3.19.1.jar:na]
	at io.zeebe.exporter.proto.Schema$ProcessRecord.<init>(Schema.java:24438) ~[zeebe-exporter-protobuf-1.1.0.jar:1.1.0]
	at io.zeebe.exporter.proto.Schema$ProcessRecord$1.parsePartialFrom(Schema.java:25485) ~[zeebe-exporter-protobuf-1.1.0.jar:1.1.0]
	at io.zeebe.exporter.proto.Schema$ProcessRecord$1.parsePartialFrom(Schema.java:25479) ~[zeebe-exporter-protobuf-1.1.0.jar:1.1.0]
	at com.google.protobuf.AbstractParser.parsePartialFrom(AbstractParser.java:100) ~[protobuf-java-3.19.1.jar:na]
	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:120) ~[protobuf-java-3.19.1.jar:na]
	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:125) ~[protobuf-java-3.19.1.jar:na]
	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:48) ~[protobuf-java-3.19.1.jar:na]
	at com.google.protobuf.Any.unpack(Any.java:231) ~[protobuf-java-3.19.1.jar:na]
	at io.zeebe.hazelcast.connect.java.ZeebeHazelcast.handleRecord(ZeebeHazelcast.java:188) ~[zeebe-hazelcast-connector-1.1.0.jar:1.1.0]
	at io.zeebe.hazelcast.connect.java.ZeebeHazelcast.handleRecord(ZeebeHazelcast.java:177) ~[zeebe-hazelcast-connector-1.1.0.jar:1.1.0]
	at io.zeebe.hazelcast.connect.java.ZeebeHazelcast.readNext(ZeebeHazelcast.java:117) ~[zeebe-hazelcast-connector-1.1.0.jar:1.1.0]
	at io.zeebe.hazelcast.connect.java.ZeebeHazelcast.readFromBuffer(ZeebeHazelcast.java:106) ~[zeebe-hazelcast-connector-1.1.0.jar:1.1.0]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
	at java.base/java.lang.Thread.run(Unknown Source) ~[na:an]

The issue seems to be related to the Hazelcast exporter/connector.
If I change the Hazelcast exporter version to 1.2.0 then the process is imported successfully and I see it in the simple monitor.
I guess that I need to release a new version of the simple monitor with an updated Hazelcast importer. Until then, I recommend using the Hazelcast version 1.2.0.

I built a new release: 1.4.0 :building_construction:
With the new version, I can't reproduce the issue anymore :tada:
So, I'm closing the issue. Please reopen the issue or comment if you still encounter this issue.

Using 2.4.0 with zeebe-with-hazelcast-exporter:8.0.5 docker image, I now get the following error:
Error: Diagram rendering: Error: required args <xml=string>
No errors show up in the console of the app itself

@qume I tried to reproduce the issue but it's working for me.
I used the following docker-compose.yaml:
version: "3"

networks:
  zeebe_network:
    driver: bridge

services:
  zeebe:
    container_name: zeebe_broker
    image: ghcr.io/camunda-community-hub/zeebe-with-hazelcast-exporter:8.0.5
    environment:
      - ZEEBE_LOG_LEVEL=debug
    ports:
      - "26500:26500"
      - "9600:9600"
      - "5701:5701"
    networks:
      - zeebe_network

  simple-monitor-in-memory:
    container_name: zeebe-simple-monitor-in-memory
    image: ghcr.io/camunda-community-hub/zeebe-simple-monitor:2.4.0
    environment:
      - zeebe.client.broker.gateway-address=zeebe:26500
      - zeebe.client.worker.hazelcast.connection=zeebe:5701
    ports:
      - "8082:8082"
    depends_on:
      - zeebe
    networks:
      - zeebe_network
    profiles:
      - in-memory

Thanks for the docker-compose.
I had the same issue after using it, so dug deeper and found the issue was related to my bpmn model. Other models run fine. The model which fails loads fine with no errors in Camunda Modeller.
Perhaps if there is an error like the one displayed, there is more info available which could be logged to the console? I'm not familiar with the BPMN renderer so unsure if it's the case

Perhaps if there is an error like the one displayed, there is more info available which could be logged to the console? I'm not familiar with the BPMN renderer so unsure if it's the case

Yes. Currently, the errors from the BPMN renderer are only logged in the browser console. It could be nice to show these errors on the page :sweat_smile:


Update example usage base on lukeautry/tsoa#701

As title, update example usage base on lukeautry/tsoa#701

Will merge as soon as the I've pushed a new release.


9.2.4 compatibility

VERY WIP
Depends on https://github.com/input-output-hk/cardano-ledger/pull/3098.
This is mostly here to get Hydra building the shell in the background for easier iteration. Then we need to actually push the changes to this branch to get things compiling with 9.2.

This moves the ledger to build primarily with GHC 9.2. I say "primarily", because there annoyingly remains one package that doesn't build with 9.2, namely plutus-preprocessor. This is because we haven't fixed up plutus-tx-plugin to work with 9.2 yet.
The compromise position I've taken is to move the default build environment to 9.2, but leave instructions for how to get an 8.10 shell if you need to use plutus-preprocessor. This requires us to not break 8.10 support for a while, but hopefully not too long. And it still lets us progress towards a 9.2 node.
The alternative would be to just not try to keep 8.10 support at all, and not try to keep plutus-preprocessor building. Then we would resurrect it once we fix plutus-tx-plugin. I think that's worth considering, since it's not used that frequently and it's not that much code. This approach would allow you to start using 9.2 features everywhere (and give you a simpler CI), but at the cost of losing plutus-preprocessor for a bit. Up to you.

Thanks @michaelpj!

The next iteration on this repo, should cut the nix code aggressively for a stock flake if possible.

Some test failures, looks like it's looking for test files in the wrong place.

I pushed the haskell.nix bump that fixes the datadir problem.

The cicero job is broken due to https://input-output.atlassian.net/browse/CIC-246, but Hydra is green. In fact we're about to release a 9.2-compatible plugin, so if we wait a short time then we'll be able to avoid the conditionals an everything.

Went green!

@JaredCorduan I think this is good to go now!

Ah indeed, we should mark plutus-preprocessor as not buildable on older GHC versions, so cabal doesn't think it should be.

:tada:


Tab issue ipad

Hi I have 9 tabs and on my phone is have a slim bar which drips down when clicked, yet on the ipad I get the box tabs and I'm not able to see all tabs.
Would it be possible to have the phone feature on the ipad?

Let me test that out on an iPad.  I will get back to you :)

Hi,
Any luck? :)

Just got home from the holidays :)
I'll work on checking this out this week/weekend.

Dude so sorry
I hope you and your family had a lovely thanksgiving

:)
no worries,  I'll get it sorted out :)

Hi fella,
have you had chance to look at this?

Hey... what rotation is the iPad when this happens? Or is it both ways?

Both really
Landscape allows me go see only 1 more than portrait

And you want the mobile version on that no matter what right.

Yes please :)

Hi,
I've installed version 1.07 everything is fine on my mobile (android) yet I still have an issue while on my iPad. It's doesn't show in groups, meaning I still can't access all the tabs

any chance of a screenshot

also how many groups do you have setup?

Sorry I was wrong
9 tabs
I was only able to see 7
Changing "plex request" to request and "NZBHydra stats" to stats allowed all tabs to be shown
Many thanks

also, you can actually try out groups if you like:

Groups only work when logged in
I have everything set up as guest (for quick viewing) as I'm the only one using this set up

ahhh, that makes sense.  I will look into it.


feat: Make configmap permission in c-role of sbom-operator chart optional

Hi,
Current state
the k8s clusterRole assigned to the sbom-operator service account includes permissions to create get delete list configMaps at the cluster scope. I know that this is needed in case the operator stores the SBOMs as configMaps (target: configmap).
Issue
The above mentioned permissions are included in the c-role regardless of whether the target includes configmap or not. If the sbom-operator is configured to just push SBOMs to Git or Dependencytrack, the service does not need those permissions.
Potential solution
My Idea is to wrap something like {{- if contains "configmap" .Values.args.targets }} around the  configmap permissions in the template, so that they are only included when really needed.
Just wanted to confirm that my idea is valid and I did not miss anything. If you think that it makes sense, let me know and I can provide a PR!

Meanwhile, I implemented it in a fork here. And indeed, it seems to work as intended. In case you want to check it out.
Like I said, I can open a PR in case you confirm that I considered everything.

Hi @hardwarefresser,
thanks for this idea, this would be a great addition to reduce permissions for most of the installations. I'm just not sure if there might be an additional null-check needed in the template to handle null "args" or "targets" properly, so we do not break anything.
I would be great if you could open a PR for that, I really appreciate that, thanks!

Thanks for getting back!
Will check out if a null-check is needed and open the PR then


[msi,pkg] Add cluster CA to the system trust store

This most likely could also be done as part of crc setup. It would be nice to add the cluster CA (did not check how to get it) automatically to the system trust store to avoid the scary "untrusted website" warnings when trying to open the console in a webbrowser.
Or is this something we do not want to automate as this will probably also be an issue with a production cluster?

If we rotate the CA with https://github.com/code-ready/crc/issues/2432, I think this is a good idea.
Otherwise, I don't think it is really safe.

Not sure these are the same CAs. CA used to sign admin client certificates VS CA used for external cluster https communication. If it's different, maybe we need to make sure this certificate is also regenerated to avoid MITM attacks


Initial Commit

Oops, that shouldn't have happened. 🤦🏽♂

Thanks for the review @afiune - you're the best! Corrected the duplicate effort on having to provide use_existing_ssm_parameter and the ARN.


tracability of user actions in app

This will occur on a per-project basis, actions that users make that affect saved data analysis, simulation or inference results should be tracked. This might include changes in weights on data points, model or model structure, inference algorithm etc.

all inference's and inference results, and their linked models etc are read_only


SQuAD Demo

@shengoneconnect please finish the review this morning and get this merged.

readme: http://localhost:8881 instead of http://localhost:5000
please specify how to run the model locally (use qa_system_predict function from squad.py from my understanding) in addition to flask application

Updated

related: https://github.com/gamma-lab/gamma_demos/issues/10

bug https://github.com/gamma-lab/gamma_demos/issues/12

Updated

Will new line affect the result?
https://github.com/gamma-lab/gamma_demos/issues/3
seems like allennlp doesn't remove the new line. They can highlight the answer in the original paragraph. In the demo, the original input has to be modified to highlight the correct positions.

is the issue still relevant?


Unable to pull db from pantheon after switching to colima

Is there an existing issue for this?

[X] I have searched the existing issues

Run a Diagnostic and Paste Link Here
https://gist.github.com/tekNorah/86a17375f28d03ccfad7279ed53123bb
Current Behavior
When I attempt to run ddev pull pantheon --skip-files -y, I encounter the error: HTTP request has failed with error "Maximum retry attempts reached".
This error occurs when terminus backup:get ${project} --element=db --to=db.sql.gz is run within the db_pull_command.
I am able to run this terminus command successfully outside of ddev.
If I ssh into ddev first, then run the terminus command above, I get the same error.  If I add the --verbose flag to the terminus command, I see warnings similar to the following:
[warning] HTTP request GET https://storage.googleapis.com/gcs-pantheon-backups/{sitehash}/{env}/{instance}/{site}_{env}_{datetime}_database.sql.gz?Expires={timecode}&GoogleAccessId=url-signer-us%40pantheon-backups.iam.gserviceaccount.com&Signature={signaturekey} has failed: Connection refused for URI https://storage.googleapis.com/gcs-pantheon-backups/{sitehash}/{env}/{instance}/{site}_{env}_{datetime}_database.sql.gz?Expires={timecode}&GoogleAccessId=url-signer-us%40pantheon-backups.iam.gserviceaccount.com&Signature={signaturekey}

Attempting to download the file via wget {uri} produces similar results, with the following output:
Resolving storage.googleapis.com (storage.googleapis.com)... failed: No address associated with hostname.
wget: unable to resolve host address ‘storage.googleapis.com’

mkcert is installed
mkcert -install
The local CA is already installed in the system trust store! 👍

Expected Behavior
I expect the ddev pull command to be able to successfully download the latest database
Steps To Reproduce

ddev pull pantheon --skip-files -y

Anything else?
I also tried rebuilding the ddev project using ddev delete --omit-snapshot && ddev config && ddev start

Chat with pantheon support in case it is relevant:

Conversation with Pantheon
Started on July 20, 2022 at 06:24 PM America/Los_Angeles time PDT (GMT-0700)

06:24 PM | Norah Shannon: When I attempt to run terminus backup:get from within a ddev container, I am encountering the following error: HTTP request has failed with error "Maximum retry attempts reached".
06:24 PM | Norah Shannon: This command works successfully outside of the ddev environment
06:25 PM | Operator: You’ll get replies here and in your email:
✉<EMAIL_ADDRESS>Our usual reply time
🕒 under 4 minutes
06:25 PM | Norah Shannon: Digging into this a bit more, when I include the --verbose flag, I see the following message
[warning] HTTP request GET https://storage.googleapis.com/gcs-pantheon-backups/{sitehash}/{env}/{instance}/{site}{env}{datetime}database.sql.gz?Expires={timecode}&GoogleAccessId=url-signer-us%40pantheon-backups.iam.gserviceaccount.com&Signature={signaturekey} has failed: Connection refused for URI https://storage.googleapis.com/gcs-pantheon-backups/{sitehash}/{env}/{instance}/{site}{env}_{datetime}_database.sql.gz?Expires={timecode}&GoogleAccessId=url-signer-us%40pantheon-backups.iam.gserviceaccount.com&Signature={signaturekey}
06:26 PM | Norah Shannon: I have reported this issue to the ddev maintainer: https://github.com/drud/ddev/issues/4035
06:29 PM | Norah Shannon: However, per the ddev maintainer:
rfay — Today at 7:59 PM
It passes the tests every night. But it's not colima or ddev if you run ddev exec terminus backup:get and it fails. I would imagine it's on their end.
06:29 PM | Norah Shannon: So, I am checking with you to see if there are any known issues with running terminus commands from inside a ddev/colima container?
06:30 PM | Adolfo from Pantheon: Hi Norah, I'm Adolfo, a Customer Success Engineer at Pantheon. I will be assisting you today. You may be right as we did not have any existing known issues about this on our end. This might be specific to ddev
06:31 PM | Adolfo from Pantheon: I'll check with the team for a moment if somebody encounters this issue Norah, just to confirm
06:32 PM | Norah Shannon: ok, thank you!
06:37 PM | Adolfo from Pantheon: Hi Norah, would you try if your are logged in by running terminus whoami in the ddev container?
06:38 PM | Adolfo from Pantheon: terminus whoami
06:39 PM | Norah Shannon: ddev exec terminus whoami<EMAIL_ADDRESS>06:39 PM | Norah Shannon: ddev exec terminus whoami<EMAIL_ADDRESS>06:39 PM | Norah Shannon: lol, tried to mark as code.. clearly I'm not as cool as you :)
06:40 PM | Adolfo from Pantheon: oh, was it only failing on specific command like the
06:40 PM | Adolfo from Pantheon: terminus backup:get
06:40 PM | Adolfo from Pantheon: other command work?
06:41 PM | Norah Shannon: correct
06:41 PM | Norah Shannon: [Image "Screen+Shot+2022-07-20+at+8.40.43+PM.png?expires=1658370180&signature=9e568b6703466906106ce0b657b44bb0ec8ebdf5e153b89b1ee04c7d2b43c827"]
06:41 PM | Norah Shannon: [Image "Screen+Shot+2022-07-20+at+8.41.38+PM.png?expires=1658370180&signature=c190e58a4861b54d8cf72ffee16ae56dc464bc3fb0464a4620650c958a986e20"]
06:45 PM | Norah Shannon: I am able to click on that url and download via my browser, btw
06:45 PM | Adolfo from Pantheon: Thanks for additional information, it seems that it can not authenticate to the google storage
06:45 PM | Norah Shannon: but wget within the ddev container errors out
06:45 PM | Norah Shannon: [Image "Screen+Shot+2022-07-20+at+8.44.45+PM.png?expires=1658370180&signature=d0630adf0da01e78f213edc0af6700b315aa2f6e559f1e78c9d012fbfe13dbd5"]
06:48 PM | Adolfo from Pantheon: yep, Pantheon have limited support for ddev as this is a third party tool actually. But what happen if you try to ping the hostname inside the ddev container? ping storage.googleapis.com
06:48 PM | Norah Shannon: ping: storage.googleapis.com: No address associated with hostname
06:49 PM | Adolfo from Pantheon: Oh the container aren't able to resolve it
06:49 PM | Adolfo from Pantheon: So this is specific to ddev
06:49 PM | Norah Shannon: ok, that's what I suspected, thank you for confirming, I'll follow-up with ddev
06:50 PM | Norah Shannon: just to be sure I'm asking the right stuff here
06:50 PM | Norah Shannon: I am able to ping other uris from within ddev
06:50 PM | Adolfo from Pantheon: Thank you Norah, I'll go ahead and close the chat then.
06:50 PM | Norah Shannon: like google.com
06:51 PM | Norah Shannon: so, am I encountering an issue, specifically with resolving/routing to just storage.googleapis.com
06:51 PM | Norah Shannon: is that how you would describe the issue?
06:52 PM | Adolfo from Pantheon: Yes that's right Norah
06:52 PM | Norah Shannon: sweet! Thanks Adolfo!
06:52 PM | Adolfo from Pantheon: Great! I'm glad I was able to help you out today Norah. I'll go ahead and close this chat for now, you are welcome to reach out to us anytime if you encounter some difficulties on your end and we are happy to help you.

Feel free to leave us some feedback, We highly appreciate it!

Nice having chat with you. thank you and have a nice day!

Adolfo Nasol
Customer Success Engineer 🐲
Pantheon Systems, Inc.
06:52 PM | Operator: Help Adolfo understand how they’re doing:
06:53 PM | Operator: Rate your conversation

Exported from Pantheon on July 20, 2022 at 06:53 PM America/Los_Angeles time PDT (GMT-0700)

No response from OP, so closing, but happy to continue the conversation here or elsewhere.

I ran into this issue as well and confirming that after colima stop  and  colima start --dns <IP_ADDRESS>, I was able to do a successful pull from Pantheon.

I also just hit this issue (after months of running Colima w/o issue). colima stop and colima start --dns <IP_ADDRESS> got me successfully running ddev pull pantheon. Thank you!


isSpaceToDelete method is not robust enough when some config change

isSpaceToDelete method is not robust enough when some config change

Could you share your detailed analysis with us? We've always had respect for robust code and hope to keep improving:-)

isSpaceToDelete method is not robust enough when some config change

You can find the earlier code in the commit records which has comments for each variable, then we can figure out the specific problems.

If diskspacewarninglevelratio is less than diskspaceclenforciblyratio, it will never go to the logic that
if(minPhysicRatio > diskspaceclenforciblyratio)

@guyinyou By design, this is to define the reclamation policy of the default message store and kick off the reclaiming thread when free disk space is running low. The whole design is pretty similar to how Linux manages memory
With that said, we may have two improvements:

Watermarks measured in megabytes are better than the ratio. Image, if disks with a capacity of 100G expect a much more urgent action than those with a capacity of 4T if both of them have 15% disks free;
Free disk watermarks of min, low, and high (in Linux kernel terms) shall be validated before getting applied, where min <= low <= high.


runPluginVerifier task downloads wrong IDE

When I set up the verifier task like this:
tasks.runPluginVerifier {
    ideVersions(listOf("IC-2019.3"))
}

then the wrong IDE is downloaded. It downloads 2020.2.3, even though it thinks it downloaded 2019.3:
$ cat ~/.pluginVerifier/ides/IC-2019.3/build.txt
IC-202.7660.26

Here is the URL is tries to download from:
https://data.services.jetbrains.com/products/download?code=IC&platform=linux&type=release&majorVersion=2019.3

It looks correct, but in fact that link downloads 2020.2.3. My guess is that the majorVersion parameter is unknown or misspelled(?), and instead of returning an error the server just defaults to returning the latest stable IntelliJ version(!)
In fact, this link downloads 2020.2.3 as well:
https://data.services.jetbrains.com/products/download?code=IC&platform=linux&type=release&majorVersion=123412341234123412341234123412341234

Thanks, Matthew for a detailed report. It's a known issue already fixed with #553
Please check my last comments in there.

Thanks! (Sorry, I should have looked harder for the duplicate issue!)

No worries!

The list of the available products that can be used for testing is here: https://jb.gg/intellij-platform-builds-list


add a python test to showcase how KMAC256 is used

I had a need for using kmac256 in a project and wrote a test while figuring out how it worked, thought I should contribute that upstream.
Values are taken from https://asecuritysite.com/hash/cs2

I had a need for using kmac256 in a project and wrote a test while figuring out how it worked, thought I should contribute that upstream.
Values are taken from https://asecuritysite.com/hash/cs2

Thanks. I overlooked your contribution first because in this repo there is usually no discussion about this PR, only in the Botan parent project. I manually added it now again to the PR.


[QUERY] Stop receiving messages using spring-cloud-azure-stream-binder-servicebus

Hi,
We have an application that is consuming messages from a service bus queue using spring-cloud-azure-stream-binder-servicebus and our code is similar to the one showed here:
https://docs.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-cloud-stream-binder-java-app-with-service-bus
using manual checkpointing.
We are using openjdk <IP_ADDRESS>, spring-boot version 3.1.2 and 5.3.0 for spring-cloud-azure-stream-binder-servicebus.
The application is running in Kubernetes, and there are 4 instances of our application that can pick the messages.
The service bus queue has a messgae lock duration of 5 minutes and 10 for the max delivery count.
The problem we encountered was that there were 11 consumers in our application listening to 11 queue messages, and only one consumer would stop receiving any messages,the problematic consumer received 300000 messages in one day, and the consumer  processed 100000 messages before the problem occurred,but the other 10 consumers were still consuming normally. The faulty consumer can only be made to consume again by restarting the application.The configuration information of the 11 consumer terminals is the same.
error log：
Error in the operation USER_CALLBACK occurred on entity XXX-topic/subscriptions/XXXXX-sub. Error: {} Cannot perform operations on a disposed receiver ReactorDispatcher instance is closed. Should not continue dispatching work to this reactor.
configuration information：
spring.cloud.stream.servicebus.bindings.consumer-in-0.consumer.autoComplete=false spring.cloud.stream.servicebus.bindings.consumer-in-0.consumer.session-enabled=true spring.cloud.stream.servicebus.bindings.consumer-in-0.consumer.maxConcurrentSessions=50
VM option:
-Dreactor.schedulers.defaultBoundedElasticSize=560"
Why is this not a Bug or a feature Request?
From the level of receiving messages, other consumer side of the same code is no problem
Setup (please complete the following information if applicable):

OS: Linux 11
Library/Libraries:
com.azure.spring:spring-cloud-azure-stream-binder-servicebus-core:5.3.0
org.springframework.boot:spring-boot-starter-parent:3.1.2

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Query Added
[x] Setup information Added

Hi @InvokerPeng thanks for reaching out.
Could you try with JDK 17 or above?
Can it be reproduced locally?

@Netyyyy Sorry, I made a mistake when I fill in the JDK version. We have already used JDK17. By the way, we simulate 30000 data locally, so this problem will not occur

Close for resolved

@Netyyyy Sorry, I mean not solved, the problem still exists, I said no means that I am now JDK17 version, there is no problem in the local, but in Kubernetes will occur this non-consumption problem

@Netyyyy  hello Netyyyy，Can you help with that？

Thank you for reaching out. We have received your submission and will take it into consideration. We appreciate your input and will review this matter as soon as possible.
Please feel free to provide any additional information or context that you think may be helpful. We'll keep you updated on the progress of our review.
Thank you for your contribution to improving our project.

By the way, we replicated this problem, only when there are more than 300,000 messages

Hi @InvokerPeng , sorry for the late reply, we are focusing on other issues now but will consider this as soon as possible.

thanks


Allow unsupported tensorflow versions

Tensorflow counterpart of #229.
Closes #181
This code is quite spaghetti-like now, so there are a few random bodges in there to make the errors work right. I just bashed away at this until the tests passed and the project reported in #694 worked. Could do with refactor at some point, as mentioned in #181.

Getting this in and shipped because it should be pretty minor.


How to use enums ?

I'm confused on how we can use enum string values instead of integer ?
syntax = "proto3";
package test

message Packet {
	oneof type {
		HelloPacket hello = 1;
	}
}

enum SomeEnum {	A = 0; }
message HelloPacket { SomeEnum letter = 1; }

import * as Packets from 'test_pb.js'

const buffer = Packets.Packet.fromJson({ helloPacket: { letter: 'A' } }).toBinary()
const { type: { value, case } } = Packets.Packet.fromBinary(buffer)

Here value.letter will be 0 and I'd like to find A instead, how can I do ?

const valueLetterEnumLabel = Packets.SomeEnum[value.letter];

The enum value is always going to be the thing on the right hand side. The enum value label is the thing on the left hand side. This is just how TypeScript enums work:
enum SomeEnum {	A = 0; }

Will generate:
var SomeEnum;
(function (SomeEnum) {
    SomeEnum[SomeEnum["A"] = 0] = "A";
})(SomeEnum || (SomeEnum = {}));

See this playground link.

Thanks @jcready for sure but as per my example I use a generic approach with oneof where I don't have knowledge of what I receive, I don't know if I was supposed to do it that way but I'm sending packets through websocket and when I receive the buffer, I want to convert it back to JSON including enums so I can't do Packets.SomeEnum because I won't know the content of the packet unless my proto file only contains a single big Enum for all values.
websocket.on('message', event => {
	try {
    	const { type: { value, case: name } } = Packets.Packet.fromBinary(new Uint8Array(event.data))

     	if (!type) throw new Error('Invalid packet')

		const received_packet = { name, value }
      	// handle packet elsewhere { name: 'helloPacket', value: { letter: 0 } }
})

To answer your original question, there are two ways to find A based on what you have:

You can use the value to look up the name (docs)

Convert the message to a JSON object and read it that way. By default, the name of the enum value is used when serializing to JSON. Note that you have to use the emitDefaultValues: true option in your example. This is because 'A' is the default value of your enum. Without that option, you won't see the value in your serialized JSON output.

const buffer = Packets.Packet.fromJson({ hello: { letter: "A" }}).toBinary();
const packet = Packets.Packet.fromBinary(buffer);

// 1st approach using enum
const { type: { value }} = packet;
console.log(Packets.SomeEnum[value.letter]); // A

// 2nd approach using JSON output
const packetJson = packet.toJson({ emitDefaultValues: true });
console.log(packetJson.hello.letter);  // A

I wasn't even using the .toJson() that's great, and it works indeed with the emitDefaultValues option thanks


Add .mjs support back to webpack (it has native ESM support)

Fixes #5234.
Closes #5257.
Closes #5235.
Webpack was never the problem with .mjs support, so we probably shouldn't of removed it.
We still want to figure out a story for Jest, we're just not sure what that is yet.

I opted to resolve .mjs before .web.js this time, does this seem OK?

We can use the existing behavior tests and add a few more, making sure GraphQL & friends work.

Here's my understanding:
The ecosystem is currently embracing experimental mjs support due to widespread adoption of ESM, fueled by the early days of Babel.
Turning off this support holistically is not an option (like we tried to do in v2). It's just not practical, and still begs questions about how ESM in .js files should be handled.
.mjs is the specification and nitty-gritty details on how ESM will work in Node, meaning we should align as closely to this behavior for .mjs files.
This specification currently mandates that ESM can only import the default export from CommonJS.
This constraint has been applied to the following systems:

TypeScript 2.7 added a new mode close in line to this proposal.
webpack 4 added more spec-compliant handling of ESM.
Babel added a spec mode, in line with above behavior, only permitting importing the default export from CommonJS.

webpack 4's default behavior is to enforce spec for files with the .mjs extension, only allowing the default import to be imported from CommonJS.
webpack 4 still allows .js files containing ESM to import "named exports" from CommonJS.
This behavior aligns closely with what we currently see in the ecosystem:

Legacy ESM interop/previously compiled ESM modules are published under .js extensions
Node-specified interop between ESM and CJS will lives under .mjs extensions, which has strict behavior

I believe setting javascript/auto will just make the .mjs adoption story worse, either forcing Node to support bad semantics or dramatically increasing the churn when .mjs is finalized.
Given all the information provided above, I suggest we take the following path:

We add support for .mjs files back to webpack, and resolve them before all other extensions
We leave .mjs support on in strict mode -- this will ensure proper compatibility when Node finalizes the specification and we have to start wondering about how usage with Jest will look
We attempt to add no support for mjs to Jest or our Jest configuration until the Node specification is no longer experimental and ships in a LTS version of Node
We discourage users from using the .mjs extension in their project code, as it will be problematic to test

Potential issues:

The browser field is recognized before module, meaning if it points to index.js and index.js imports ./foo, webpack will import ./foo.mjs before ./foo.js.

This behavior will be breaking since we're in strict mode
Loose mode would allow this
We cannot resolve module first because browser typically sheds some browser incompatible packages. I suspect the former option produce the least breakages, while the latter would be problematic.

Users start shipping packages without CommonJS available under the main key in package.json as a result of this behavior, further reducing the ability to test with Jest (we're already seeing this, probably not a concern)

Do you mean the browser entry will start importing from the server files by accident? That shouldn't happen with this structure:
lib/
├── server/
│   ├── index.mjs
│   └── index.js
└── browser/
    ├── index.mjs
    └── index.js

{
  "browser": "lib/browser",
  "main": "lib/server"
}

The browser entry may not be bundled, if it's a .js file that requires other files that don't specify an extension, it'll be automatically promoted to .mjs.

Just a thought.

Not following what you mean with graphql, they are meant to be sibling .mjs and .js files. It does not have a browser field, so both .mjs and .js files should be ok to bundle for use in a browser. .mjs is preferable, so Webpack can treeshake.

I used graphql just as an example, pretend it had a browser field and pretend that behavior was different for some wild reason.

It's just a possible (not probable) concern.

Just a side note, but I think with an extensionless main entry and sibling .mjs/.js files, the module entry is kind of redundant, since webpack would have got to the same .mjs file following either entrypoint. I might remove the module field from my packages at some point.

Also, this example was incorrect:
{
  "main": "index.js",
  "module": "index.mjs",
  "browser": "index.js"
}

Node.js only looks at the main field, so it needs to be extensionless:
{
  "main": "index",
  "module": "index.mjs"
}

I'm definitely a proponent of dropping module once main is extensionless with side-by-side files.

I'm going to land this because it aligns with my latest understanding of this.
If we uncover more information or this breaks everything, I'm more than happy to make .mjs use javascript/auto and make this a breaking change in the next version of CRA.
For now, we'll classify this as a bug fix. Cases where this would be considered breaking probably aren't working right now anyway.
We still need to come up with a good testing story for this, e2e.

Tested via #5263.

@Timer

TypeScript 2.7 added a new mode close in line to this proposal.

That mode aligns TS more with traditional Babel in terms of the __esModule property, enabling support for named exports of CJS modules, and handling of namespace objects more correctly. So not related to .mjs or --experimental-modules rules.

Given all the information provided above, I suggest we take the following path:

We add support for .mjs files back to webpack, and resolve them before all other extensions
We leave .mjs support on in strict mode -- this will ensure proper compatibility when Node finalizes the specification and we have to start wondering about how usage with Jest will look

It would be wonderful if there was a way to give a heads up to folks that using .mjs (by way of --experimental-modules) is experimental and not intended for production use.

We attempt to add no support for mjs to Jest or our Jest configuration until the Node specification is no longer experimental and ships in a LTS version of Node

This will encourage users to continue shipping CommonJS versions of their package while the specification settles. If the fickle finger of fate ruins everything, we can always revert back to CommonJS. 😄

:clap:

We discourage users from using the .mjs extension in their project code, as it will be problematic to test

I've done something similar with the esm loader. With esm there is no way to enable CJS interop (module vars, mocking, stubing, spys, code coverage, APM, etc.) or experimental features (like top-level await) with .mjs.


sequencer-relayer: limit size of txs posted

we should ensure we have a limit on the amount of data posted in one tx such that celestia won't reject it. if the data queued up to be posted is larger than this limit, we should split it into multiple txs.

this was done with refactor of sequencer-relayer


Proactively build wheels for source distributions during pip install resolution

When we pip install, we first run the resolver, then use the resolution to install. If we encounter a source distribution while resolving, we'll attempt to get the metadata, which may involve running prepare_metadata_for_build_wheel as an optimization, to skip the wheel build. After the resolution, we need to install, so we go to build the wheel, which requires creating the build environment again.
This is somewhat wasteful, since we had to setup the build environment twice. If we know we'll need to include the distribution in the resolution, and we know that we're going to need to install (as in pip install or pip sync, but not pip compile), we should consider always building the distribution and avoiding prepare_metadata_for_build_wheel.
This could make sense for, e.g., direct URL distributions that we encounter during pip install and pip sync resolutions.
I don't know how much this matters, but it did occur to me today, since we're now doing more metadata resolutions during pip install. We should verify before changing anything, but in https://github.com/timothyjlaurent/uv-poetry-monorepo-mre, my estimate is that it cost us about 150ms.

I think it's a good idea taking into acount all the dynamic complications - and also it follows the path that PEP 660 took for editable builds https://peps.python.org/pep-0660/. For dependencies that you indeed know that you have to install and you know that this is the version you are going to install for sure (URL. local paths)  as you noted this will make the resolution a bit longer, but overall impact on installation time will be net-negative. It will also allow to avoid the cases like we had with making some exceptions for specific cases like in #2130

Just to clarify, I think this should be faster when we know we need to install the wheel eventually.

The downside here is that we may end up reducing the amount of parallelism if we're waiting on source distributions to build during resolution.

We could safely do this in pip sync and pip install --no-deps with no penalty though.


Fixing console reading for csharp template

Description
As discussed in #107 this PR changes the way the csharp template reads the console so that newline characters are not converted.
Motivation and Context

Issue #107

[x] I have raised an issue to propose this change (required)

Which issue(s) this PR fixes

Fixes #107
How Has This Been Tested?

I reran the steps to reproduce from #107
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I've read the CONTRIBUTION guide
[x] I have signed-off my commits with git commit -s
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Thank you!


Update xargs example in aur.1

The example "xargs -a installed.txt aur sync --repo=custom" should be "xargs -a installed.txt aur sync repo -d custom",

repo is the name of the database (specified to -d, --repo or --database), aur sync repo would attempt to install the repo package. The packages to aur sync are already appended through xargs.

I see, but --repo itself throws an error:
$ xargs -a installed.txt aur sync --repo=custom
aur-sync: invalid option '--repo'
    usage: sync [-d repo] [-CDM path] [-AcfgkLnpPstTu] [--] pkgname...

I missed that, so it should be xargs -a installed.txt aur sync -d custom assuming custom is the repo name?

https://github.com/AladW/aurutils/issues/353
You're right, the --repo option was removed at some point. The new proposed command should work.


Parallel execution

Probably this should wait for async but if I'm feeling cheeky I could write something roughly compatible with it. See https://ziglang.org/news/0.11.0-postponed-again/
Start with a form of each that parallelizes whatever it's doing.
Move on to map and filter and others if it's simple to extend. In anything parallel, ordering of operations, or the resulting data, is not guaranteed. In these cases, there will still need to be locking on the state for any writes.

This really absolutely requires that at least everything within dt's state is following immutable semantics.
This may require reference counting and/or copy-on-write. For example, reversing/sorting a quote/string should have the effect that it only reverses/sorts that single string, and can conceptually be considered as creating a new string. If it's a reverse/sort on the only remaining copy of a quote/string then it's fine if the implementation involves reusing the allocated memory (for example: in-place reverse or sort with no extra allocation)
There can't be a compromise on this from my perspective, it's key to making sure a dt program can be read and remain simple enough to follow exactly what it will perform. (And factor it and refactor it etc)
For side effects... You're on your own! Behavior once you start doing parallel writes to files or sockets or anything else outside the world of dt values will be completely nondeterministic. As an example, a flurry of activity all trying to write or append to the same file will be delegated to whatever filesystem locking behavior exists (if any)


VS code working very slow

Extension Name: configuration-editing
Extension Version: 1.0.0
OS Version: Windows_NT x64 6.3.9600
VSCode version: 1.28.0

We have written the needed data into your clipboard. Please paste:

Please see #60318


[semver:major] Upgrade Slack to notify on failed deploys

With the current configuration, we only get Slack notifications about
successful deployments, despite having the notification steps in the
compiled CircleCI steps.
This is an attempt to enable notifications for all cases.
As part of this upgrade, Slack configuration needs to change.

old SLACK_WEBHOOK_URL
new SLACK_ACCESS_TOKEN through moj-slack-notifications context

Slack orb 4+ requires an application to be set up and a
SLACK_ACCESS_TOKEN variable. To enable this, we've installed an app
called ci-deploy-to-cloud-platform on the MoJ Slack instance.
The token is shared in the moj-slack-notifications CircleCI context.
Please see the example notification workflow for a usage example.

Is it possible to push a dev/alpha version up from this so I can test it out in a project?

closing this, have re-opened a new PR which is from a fork, as we dont build forked PRs.  Have also give hmpps-development team write access to this repo - for future PRs.


Reconsider using reCAPTCHA for contactPost

Even if authorized, the authorization process may be done by human, but the contactPost process might be done by deploying bots to collect personal data. This is similar to #40 where there are inappropriate data uses.
This requires further discussion.

ok. Sounds reasonable enough. Should we implement Recaptcha V3 (calculating suspiciousness score in the background) or bots challenge?

For now I'll stick with V2. Let's move on later on sprint 2 or later.


Fine tune is dirty behavior

I wanted to get this test to work, but it looks like this just isn't how this library (or maybe jsonapi?) works. 🤷♂
    it('sets isPersisted = true on related records when save succeeds', async () => {
      const note = store.add('notes', {
        id: 10,
        description: 'Example description'
      })
      expect(note.isPersisted).toBe(true)
      const todo = store.add('organizations', { title: 'Buy Milk' })
      todo.notes.add(note)
      note.description = 'something else'
      expect(note.isPersisted).toBe(false)
      fetch.mockResponse(mockTodoWithNotesResponse)
      await todo.save({ relationships: ['notes'] }) // <-- this doesn't save the note itself, just the relationship between the note and the todo
      expect(note.isPersisted).toBe(true)
    })


Add SimpleInjector support

Based on discussion https://github.com/vany0114/EF.DbContextFactory/pull/3.

Closed since the PR was already merged. Thanks for your contributtions  @TerraVenil !!!


Ground truth table

Show ground truth table.
Uses the same display filters as the predictions, so tables match each other.
Added row limit to avoid GUI breakdowns.

@deanlorenz I don't see the value in adding a separate ground truth table to prediction results  (see my comment here. Can you explain how the user will use this table for comparison purposes?

After discussion with @deanlorenz and @drbwa we reached the conclusion that for now for the use case of 'compare with ground truth', the UI should present the same tables that are currently generated by the CLI (i.e., (1) merged table with actual versus predicted plus MAPE, and (2) summary of results table). Graphical representation is deferred to a later stage.


Setup scripts for root-required benchmarks

If a benchmark in a directory (e.g. railsbench/benchmark.rb, not getivar.rb) provides a setup.rb (or setup.sh?) we should have a simple way to run the top-level runner with sudo or root and do privileged setup (and shutdown, see below.)
This is useful for e.g. installing Rails app dependencies, such as for Discourse. It would also permit starting up and shutting down Docker instances. And since we probably want to mess with Docker in between Ruby configs (e.g. run YJIT versus no-JIT for a Rails app), that means we'll need the runner to retain root privileges. It's not a one-and-done install.
We may also want to assume benchmarks with a setup script require sudo/root, and just not run them if you don't have it. Or we could allow the benchmark to specify that it's root-required some other way, not just "if it has a setup script." If we can tell it needs root, we won't need to change how run_benchmarks.rb works -- if we run run_benchmarks.rb without root, it would keep running all non-root-required benchmarks like it does now. If we ran it with sudo, it would also pick up the only-possible-with-sudo benchmarks.
We'd want to make sure the error message is decent if they specify a sudo-only benchmark without using sudo. But that's easy enough.

It's possible to instead just require that the account running the runner script is in the Docker group, which I guess doesn't require root. But unfortunately, last I checked it was a known "feature" that somebody with root in the Docker container can effectively use that to run processes as root on the outside host, which is why you don't want to give out membership in the Docker group freely.
So if we said, "oh wait, you don't need root, you can just be in the Docker group" that's security-by-obscurity at best.

Are you thinking we'd have a separate setup.rb for benchmarks, or that benchmark.rb would check if it's being run as a script vs imported and then do the setup, eg:
benchmark.rb --setup # Does the setup ?

Are you thinking we'd have a separate setup.rb for benchmarks, or that benchmark.rb would check if it's being run as a script vs imported and then do the setup, eg:
benchmark.rb --setup # Does the setup ?

I had been thinking that for root-privilege setup, there would be a setup.rb (or setup.sh?).
There's a separate kind of setup that doesn't require root privilege, such as what Railsbench does. I think if we decide to make that a separate step (and at some point we should) then that one we would control with a command-line parameter or an env var, as you suggest here.
Both are useful - we'd love to skip the Railsbench setup on most runs, for instance. But for this issue I was thinking of the "needs root" kind of setup.

OTOH why not have all the setup happen in a setup script, regroup it all in one place (for each benchmark)?

Discourse requires either setting it up locally, which requires installing a lot of packages, or it requires a Docker container. There's a setup script that will handle most of the heavy lifting... but also installs rbenv, which can be overly invasive. The Docker container avoids polluting the parent environment.
So: if we don't take on Docker as a dependency, we'd need to take on a lot of other dependencies for Discourse. Or skip Discourse.

Yeah that's unfortunate :(
What we did with railsbench was trying to strip down the benchmark a bit, remove some dependencies. For example, it would be nice if we could get rid of the rbenv dependency, but I'm guessing discourse is too big to manually do that.
I understand why you're tempted to put it in a docker container. Is there a pre-existing image they created or would you create your own? Is there some way we could have discourse in there as an optional benchmark that doesn't automatically run/install?

Removing the rbenv dependency isn't too difficult. But it means we either need to run the setup script and then manually remove rbenv from the .bashrc, or we need to maintain our own (pretty sizeable) setup script.
Yes, there's a preexisting Docker container. I'd modify from there to add more Rubies, but it's a pretty straightforward modification.
There are a number of ways we could have non-default benchmarks in yjit-metrics and/or run_benchmark.rb.

I don't disagree about Docker affecting performance. For my previous benchmark I used Packer to build and maintain a dedicated AMI that built the appropriate Ruby environment, including Discourse's various dependencies. I'm 95% sure we don't want to duplicate and maintain Discourse's setup stuff in this case - we're not intending to put that much effort into our Discourse benchmarks, I assume.

I don't disagree about Docker affecting performance. For my previous benchmark I used Packer to build and maintain a dedicated AMI that built the appropriate Ruby environment, including Discourse's various dependencies. I'm 95% sure we don't want to duplicate and maintain Discourse's setup stuff in this case - we're not intending to put that much effort into our Discourse benchmarks, I assume.

Docker affecting performance is another legit concern, as is ergonomics when trying to get profiling data. Might be worth investigating how to strip down the discourse bench a bit. I wish we had a way to do tree shaking and remove everything that's not strictly needed to run the benchmark.

Discourse is enormous, and removing pieces of initialisation is quite hard. The tree shaking would need to take several different processes into account (e.g. database migration and asset precompilation aren't structural to the app's process, but you can't actually remove them) so you really can't do it JS-style.
If we did that, we'd basically need to do the same thing again when/if we changed the version of Discourse we support. And it changes fairly rapidly.
There's an easy-but-unscalable solution where we install Discourse using its own scripts onto an AWS instance -- then it's native and we don't have to maintain it. But it also doesn't necessarily play well with other stuff we use (e.g. chruby.) That's basically what I'm doing as a one-off right now. It's also very similar to my previous successful attempt using Packer: build a Discourse-capable AMI, spin up an instance, run the benchmark, spin down the instance. Obviously that's far too heavyweight for our current benchmarking harnesses, though.
But if what you want is to run Discourse on demand with only a few seconds of setup, that's going to be really hard. As well, if we stripped it down until you could do that, it's not clear that we could claim the performance numbers were valid for real Discourse.  In a performance sense, it wouldn't really be Discourse.
Discourse is quite heavyweight. If we want to describe "our results for Discourse," that's not going to look very much like the activerecord benchmark, or even Railsbench, in how we run it.
So then it depends why we care. Are we trying to tell people about our results on Discourse because it's a typical Rails app? If so, then stripping out dependencies, initialisation, auth layers, background jobs, etc, is going to compromise that goal, because those are typical things in a mid-size or large Rails app. If we want to use Discourse because we want something bigger than Railsbench, there are some much easier ways to do that.

Removing the rbenv dependency isn't too difficult. But it means we either need to run the setup script and then manually remove rbenv from the .bashrc, or we need to maintain our own (pretty sizeable) setup script.

Why not adapting the existing script and upstreaming it? Then you don't have to do either of those things.
I guess anyway to run Discourse on YJIT you would likely need some changes upstream (so that it runs on 3.1dev).

The setup script in question is some guy's set of preferred Rails tools (https://github.com/TechAPJ/install-rails). I don't think he'd want to maintain "like your preferred tools, but without rbenv." We could modify his script, add the few remaining Discourse-specific things, and then we're maintaining a Discourse setup script. But I don't think getting him to maintain it for us with our changes is going to work out.
And yes, 3.1dev is going to need some upstream changes. Those we could probably upstream without a problem.

To be clear: Discourse has not historically shown an interest in maintaining a local-setup script. They have local-setup instructions (https://meta.discourse.org/t/beginners-guide-to-install-discourse-on-ubuntu-for-development/14727). IME those haven't been kept up to date. And they have their Docker build infrastructure (https://github.com/discourse/discourse_docker), which is how they actually ship a working Discourse to customers.

I think you would need to tweak that script anyway, for instance upgrading RubyGems for ruby-head is typically a bad idea/risky, installing Bundler is redundant/bad on ruby-head, installing latest rails is redundant with the Discourse Gemfile, rbenv is redundant/bad for the use case where we expect devs already have a Ruby manager, etc.
That script is not really long so I think the most pragmatic solution would be to fork it/include it directly in this repo and tweak it as needed. You might also need to tweak it based on the actual machine/OS you want to let it run automatically.
FWIW I did setup Discourse some time ago on a RHEL-based Linux and IIRC it wasn't hard, just need to install a few system packages and configure the DB and that's about it. Discourse did have official instructions for dev setup on Linux in the repo at the time IIRC.
Yeah the Docker route might be easier, although e.g. on recent Fedora there is no Docker (replaced by podman, but for instance that doesn't handle docker-compose).
My main point is I think it's worth trying to tweak that Linux install script and see if it works easily enough.
If run via Docker, one would also likely need to tweak some scripts or learn how to get in the Docker image and investigate things there (e.g., install some system deps for profiling, might not work if inside Docker, takes forever to rerun the setup unless it somehow saves the bundle on the host system, etc).

There's a second version of it for Mac already, so if we're adopting it we would probably just adopt both and modify them roughly in lockstep.
It isn't hard to make the script work once. It's not hard to adapt it. It's annoying to maintain it since Discourse changes requirements over time, Ubuntu package names change, etc.


Getting an error while connecting with data source - Unable to connect to data source.

Hello,
I've created a private blob storage to store the JSON files.
Now, I'm trying to use that storage withe the Search service. Unfortunately, after I've created a data source and linked it with the blob storage, I got:
Unable to connect to data source.
It's a kind of weird, because I'm using the connection string from the storage's Access Key tab.
Is it possible to somehow get more info what is wrong, because that info isn't super meaningful for me?
Or maybe I need to do some additional steps to connect the storage with the Search service?

@dzajda Thanks for the feedback! Request you to share the document you are referring to help you better on this.

@dzajda As we have not received any response on your side and there are no details of the issue , we are closing this on our end. In case you have any issue with any of the document , please feel free to open a new issue with us and we will be happy to help .


HTTP Error 500: Internal Server Error

Hello,
I'm getting an error, HTTP Error 500: Internal Server Error, when running this notebook.  All seems fine until it reaches Step 7 -  'Define the channels to use for segmentation'
Many thanks if you have any advice on this.
Huw
<>:86: SyntaxWarning: "is" with a literal. Did you mean "=="?
<>:86: SyntaxWarning: "is" with a literal. Did you mean "=="?
Using model  LC4
HTTPError                                 Traceback (most recent call last)
 in <cell line: 68>()
66 # DEFINE CELLPOSE MODEL
67 # model_type='cyto' or model_type='nuclei'
---> 68 model = models.Cellpose(gpu=use_GPU, model_type=model_type, net_avg = True)#, omni = omni
69
70 # define CHANNELS to run segementation on
9 frames
/usr/local/lib/python3.10/dist-packages/cellpose/models.py in init(self, gpu, model_type, net_avg, device)
98
99         # size model not used for bacterial model
--> 100         self.pretrained_size = size_model_path(model_type, self.torch)
101         self.sz = SizeModel(device=self.device, pretrained_size=self.pretrained_size,
102                             cp_model=self.cp)
/usr/local/lib/python3.10/dist-packages/cellpose/models.py in size_model_path(model_type, use_torch)
33     torch_str = 'torch'
34     basename = 'size_%s%s_0.npy' % (model_type, torch_str)
---> 35     return cache_model_path(basename)
36
37 def cache_model_path(basename):
/usr/local/lib/python3.10/dist-packages/cellpose/models.py in cache_model_path(basename)
41     if not os.path.exists(cached_file):
42         models_logger.info('Downloading: "{}" to {}\n'.format(url, cached_file))
---> 43         utils.download_url_to_file(url, cached_file, progress=True)
44     return cached_file
45
/usr/local/lib/python3.10/dist-packages/cellpose/utils.py in download_url_to_file(url, dst, progress)
63     import ssl
64     ssl._create_default_https_context = ssl._create_unverified_context
---> 65     u = urlopen(url)
66     meta = u.info()
67     if hasattr(meta, 'getheaders'):
/usr/lib/python3.10/urllib/request.py in urlopen(url, data, timeout, cafile, capath, cadefault, context)
214     else:
215         opener = _opener
--> 216     return opener.open(url, data, timeout)
217
218 def install_opener(opener):
/usr/lib/python3.10/urllib/request.py in open(self, fullurl, data, timeout)
523         for processor in self.process_response.get(protocol, []):
524             meth = getattr(processor, meth_name)
--> 525             response = meth(req, response)
526
527         return response
/usr/lib/python3.10/urllib/request.py in http_response(self, request, response)
632         # request was successfully received, understood, and accepted.
633         if not (200 <= code < 300):
--> 634             response = self.parent.error(
635                 'http', request, response, code, msg, hdrs)
636
/usr/lib/python3.10/urllib/request.py in error(self, proto, *args)
561         if http_err:
562             args = (dict, 'default', 'http_error_default') + orig_args
--> 563             return self._call_chain(*args)
564
565 # XXX probably also want an abstract factory that knows when it makes
/usr/lib/python3.10/urllib/request.py in _call_chain(self, chain, kind, meth_name, *args)
494         for handler in handlers:
495             func = getattr(handler, meth_name)
--> 496             result = func(*args)
497             if result is not None:
498                 return result
/usr/lib/python3.10/urllib/request.py in http_error_default(self, req, fp, code, msg, hdrs)
641 class HTTPDefaultErrorHandler(BaseHandler):
642     def http_error_default(self, req, fp, code, msg, hdrs):
--> 643         raise HTTPError(req.full_url, code, msg, hdrs, fp)
644
645 class HTTPRedirectHandler(BaseHandler):
HTTPError: HTTP Error 500: INTERNAL SERVER ERROR

Hi @diligentgiantsquid
Can you try the new notebook and see if it fixes the problem??
Cheers
Pradeep

Thank you so much for the fast reply @pr4deepr - yes this is working perfectly for me now.
Best wishes!