Failed to install vrms-arch-git with pyenv installed

Workaround:
$ pyenv global system

If the global Python version is not used, a number of errors appear:
$yay -S vrms-arch-git
Sync Dependency (1): pyalpm-0.10.6-5
AUR Explicit (1): vrms-arch-git-2.0.1.r0.g637e123-1
:: PKGBUILD up to date, skipping download: vrms-arch-git
  1 vrms-arch-git                            (Build Files Exist)
==> Packages to cleanBuild?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==>
  1 vrms-arch-git                            (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==>
==> Making package: vrms-arch-git 2.0.1.r0.g637e123-1 (Wed 29 Nov 2023 10:19:56 PM UTC)
==> Retrieving sources...
  -> Updating vrms-arch git repo...
==> WARNING: Skipping verification of source file PGP signatures.
==> Validating source files with sha256sums...
    vrms-arch ... Skipped
:: (1/1) Parsing SRCINFO: vrms-arch-git
resolving dependencies...
looking for conflicting packages...

Packages (1) pyalpm-0.10.6-5

Total Installed Size:  0.20 MiB

:: Proceed with installation?
There are no unread news items
:: Processing package changes...
(1/1) installing pyalpm                            [######################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
==> Making package: vrms-arch-git 2.0.1.r0.g637e123-1 (Wed 29 Nov 2023 10:19:58 PM UTC)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating vrms-arch git repo...
==> Validating source files with sha256sums...
    vrms-arch ... Skipped
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Creating working copy of vrms-arch git repo...
Cloning into 'vrms-arch'...
done.
==> Starting pkgver()...
==> Updated version: vrms-arch-git 2.0.2.r19.gd5fb44c-1
==> Sources are ready.
==> Making package: vrms-arch-git 2.0.2.r19.gd5fb44c-1 (Wed 29 Nov 2023 10:20:00 PM UTC)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting pkgver()...
==> Removing existing $pkgdir/ directory...
==> Starting build()...
/home/marek/.pyenv/versions/3.12.0/bin/python: No module named build
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: vrms-arch-git-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
vrms-arch-git - exit status 4

$python --version
Python 3.12.0
$/usr/bin/python --version
Python 3.11.6

After running pip3 install build another errors appears:
$yay -S vrms-arch-git
AUR Explicit (1): vrms-arch-git-2.0.1.r0.g637e123-1
:: PKGBUILD up to date, skipping download: vrms-arch-git
  1 vrms-arch-git                            (Build Files Exist)
==> Packages to cleanBuild?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==>
  1 vrms-arch-git                            (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==>
==> Making package: vrms-arch-git 2.0.1.r0.g637e123-1 (Wed 29 Nov 2023 10:21:27 PM UTC)
==> Retrieving sources...
  -> Updating vrms-arch git repo...
==> WARNING: Skipping verification of source file PGP signatures.
==> Validating source files with sha256sums...
    vrms-arch ... Skipped
:: (1/1) Parsing SRCINFO: vrms-arch-git
==> Making package: vrms-arch-git 2.0.1.r0.g637e123-1 (Wed 29 Nov 2023 10:21:28 PM UTC)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating vrms-arch git repo...
==> Validating source files with sha256sums...
    vrms-arch ... Skipped
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Creating working copy of vrms-arch git repo...
Cloning into 'vrms-arch'...
done.
==> Starting pkgver()...
==> Updated version: vrms-arch-git 2.0.2.r19.gd5fb44c-1
==> Sources are ready.
==> Making package: vrms-arch-git 2.0.2.r19.gd5fb44c-1 (Wed 29 Nov 2023 10:21:31 PM UTC)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting pkgver()...
==> Removing existing $pkgdir/ directory...
==> Starting build()...
* Getting build dependencies for wheel...
running egg_info
creating src/vrms_arch.egg-info
writing src/vrms_arch.egg-info/PKG-INFO
writing dependency_links to src/vrms_arch.egg-info/dependency_links.txt
writing entry points to src/vrms_arch.egg-info/entry_points.txt
writing top-level names to src/vrms_arch.egg-info/top_level.txt
writing manifest file 'src/vrms_arch.egg-info/SOURCES.txt'
reading manifest file 'src/vrms_arch.egg-info/SOURCES.txt'
adding license file 'LICENSE.md'
writing manifest file 'src/vrms_arch.egg-info/SOURCES.txt'

ERROR Missing dependencies:
	wheel
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: vrms-arch-git-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
vrms-arch-git - exit status 4

If you use makepkg to build and install vrms as a system package, then yes, you should use the system's Python, not some virtual environment and not some other Python version located elsewhere.


Connecting to Testcafe from google app engine

Are you requesting a feature or reporting a bug?
Reporting
What is the current behavior?
I can't create Testcafe runner from google app engine so my test is working good localy but
when I deploy it to google app engine, it doesn't work
I have all the things that necessary for test saved in sql databases and I'm querying from the database and send it to testcafe. But when I run the app on app engine my app doesn't read the function  createTestCafe().
some help will be great!!
What is the expected behavior?
My test should works when I run it from app engine and connect to browserstack
Provide the test code and the tested page URL (if applicable)
Tested page URL:
Test code
const createTestCafe = require('testcafe');
const BrowserStack = require('browserstack');
const browserStackCredentials = {
  username: process.env.BROWSERSTACK_USERNAME,
  password: process.env.BROWSERSTACK_ACCESS_KEY,
};

async function createTestCafeInstance(browsers, testFiles) {
  try {
    const options = { skipJsErrors: false };
    if(browsers === 'browserstack:safari@11.1:OS X High Sierra') {
      options.selectorTimeout = 50000;
    }

    const testcafe = await createTestCafe(// what should be here);

    const failedCount = await testcafe
      .createRunner()
      .src(testFiles)
      .browsers(browsers)
      .run(options);
    console.log('Tests failed: ' + failedCount);

   // testcafe.close();
    return;

  } catch(e) {
    console.error(e);
  }

}

async function startTests(createTestCafeInstance) {
  try {
    const browsers = await model.readActiveTests();
    // Create a new testcafe instance for each batch of browsers
    const tests = [];
    for (let i = 0; i < browsers.length; i++) {
      console.log(`Starting test: ${browsers[i].name} for ${browsers[i].browser}`);
      tests.push(runTest(createTestCafeInstance, browsers[i].browser));
    //await model.createTestResult(today, `${obj.errorTime}`, `${obj.result}`, `${obj.stepTestFailed}`);
    }
    await Promise.all(tests);
    await sendMailData();
  }
  catch (err) {
    console.error("this is the error",err);
  }
}

async function runTest(createTestCafeInstance, browser) {
  try {
    createTestCafeInstance(browser, './belgiumPrijsofferte/testFiles/citroenBelgium.js');
} catch (e) {
    console.error(e);
  }
}

const express = require('express');
const app = express();

app.get('/', async function (req, res) {
  console.log('Start....');
  await startTests(createTestCafeInstance);
  res.send('Test is doen');
});

app.listen(8080, function () {
  console.log('Example app listening on port 8080.');
});

Specify your

operating system:
testcafe version:
0.20.5
node.js version:
8

Hi @Elias011 ,
I'm not familiar with the Google App engine. We didn't use it.
Here is what the createTestCafe factory accepts as parameters: https://devexpress.github.io/testcafe/documentation/using-testcafe/programming-interface/createtestcafe.html.
What difficulties did you face when specifying them?

Hi @VasilyStrelyaev ,
thanks for your reaction.
my question is here:
 const testcafe = await createTestCafe(// what should be here);

What is the hostname and the port if I'm running test cafe from cloud function?
is that more cleare?
because what I'm trying to do is running the test automaticly every 24 hours by using google app engine and cron jobs

I will close the issue because no activity has been encountered for a long time.
Feel free to reopen the issue if the problem persists and or you have additional questions.


ClientHello not identical when Retry is received

This originates from a Wireshark bug report: https://gitlab.com/wireshark/wireshark/-/issues/18757.
When the quiche client receives a Retry packet, it resends the ClientHello. According to the standard, this new ClientHello has to be the same as the first one, but it isn't, as the 32 random bytes are different.

From RFC 9000:
Other than updating the Destination Connection ID and Token fields, the Initial packet sent by the client is subject to the same restrictions as the first Initial packet. A client MUST use the same cryptographic handshake message it included in this packet. A server MAY treat a packet that contains a different cryptographic handshake message as a connection error or discard it. Note that including a Token field reduces the available space for the cryptographic handshake message, which might result in the client needing to send multiple Initial packets.
A client MUST NOT reset the packet number for any packet number space after processing a Retry packet.

@heinrich5991 Hello, can you tell me how to turn off quic.reassemble_crypto_out_of_order setting in quiche project?
I found this solution in this issue link https://gitlab.com/wireshark/wireshark/-/issues/18757.

I think I've just run into the same issue. I'm unable to decrypt captures in Wireshark because the SSLKEYLOGFILE output from quiche-server does not have the random value from either the ClientHello or ServerHello. I'm able to reproduce this at-will using the quiche-server app with the http3-client example.
That being said, I'm completely new to quiche (and quic in general), so is this a genuine issue or am I just holding it wrong?

Note the workaround posted in the comment if you want to debug it right now.

This problem seems to go away if I turn off the quic.reassemble_crypto_out_of_order setting.

Note the workaround posted in the comment if you want to debug it right now.

Wow, I somehow completely missed that while reading the issue. Thanks for the pointer!


Nick: Watch dharapvd.com

Nick requests the watch of the watch_keyword dharapvd\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

dharapvd\.com has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


adjacent() and groupby_transform()

From issue #109, this PR implements adjacent() and groupby_transform().
It's mostly straightforward, except that the one possibly-contentious design decision I made was to have groupby_transform() use default key and value transformations of itemgetter(0) and itemgetter(1) respectively, so you can call
groupby_transform(zip(keys, values))

to group one iterable by the elements of another. That seems like the use case where this tool is going to be by far the most useful. And it's not like we lose any functionality, since without this special case, the only sensible behavior for default arguments (as far as I can imagine) is to just pass through to groupby(), in which case people should just use groupby() directly.
That being said, it does seem rather weird, especially given the name of the function. And it's not unimaginable that this special-case behavior could complicate things in some cases. And yes, "explicit is better than implicit", though I could counter with "practicality beats purity" ;-) Anyway, the point is, I'm fine with it if you think it's better to omit this special case and just have the default arguments emulate groupby(), and make people explicitly pass itemgetter(0) and itemgetter(1) whenever they want to group one iterable by another. I just think if we do that, it's a missed opportunity to simplify potentially a lot of client code.
Oh, and I'm also not thrilled with the test coverage, though I couldn't really think of any other useful tests to add.
(I'm also not attached to either of these function names.)

Could you fix up the Python 2 error? I'll review more thoroughly when I get some time, but Travis is complaining of a legitimate issue.

Seems OK now. Sorry about that, I always seem to forget to test in Python 2. (Admittedly this was a tricky one)

Thanks! I'll have some comments and change requests, as usual. :scissors:

I'll get to work on those changes. I've got a busy weekend coming up so it may take a little while.

Many thanks for the alterations. I'll add these to the API docs and changelog before the next release.


PR to add profile of Vinayak Rao Dikshit

Please merge.

I am requesting an update on the merge status of my PR. Kindly assign it to someone at the earliest.


events.lua

3x WarpDeplete/Events.lua:280: attempt to index field '?' (a nil value)
[string "@WarpDeplete/Events.lua"]:280: in function UpdateObjectives' [string "@WarpDeplete/Events.lua"]:552: in function ?'
[string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:109: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>
[string "=[C]"]: ?
[string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:19: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:54: in function `Fire'
[string "@Ace3/AceEvent-3.0-4/AceEvent-3.0.lua"]:120: in function <Ace3/AceEvent-3.0/AceEvent-3.0.lua:119>
Locals:
Skipped (In Encounter)
^was in necrotic wake 10. bar showed always 100%.

Thanks for the report. I'm currently in the process of rewriting a lot of the objective handling code, so this should be fixed in that process.

The rewrite is now released as version 4.0. Please reopen this issue if the bug appears again!


Dispatch emails when partner providers and schools are added

Context

When a provider adds a partner school,  each user of the school is sent an email notifying them.
When a school adds a partner provider, each user of the provider is sent an email notifying them.
When a provider removes a partner school, each user of the the school is sent an email notifying them.
When a school removes a partner provider, each user of the the provider is sent an email notifying them.

Changes proposed in this pull request

Implements a new service and mailer to notify users when a partner school/provider is added/removed.

Link to Trello card
https://trello.com/c/A9XqiACe/229-when-adding-removing-school-to-an-itt-provider-adding-removing-itt-provider-to-a-school-dispatch-emails-to-the-organisation-user

e909b4b

Resolved in e909b4b


skbio.write index out-of-range error for embeddings

Description
While developing the scikit-bio-tutorials repo, I ran into the following attached issue:

When attempting to write embedding objects to a new file, the _objects_to_embed method runs into a resize issue.
Steps to Reproduce

Import necessary modules in \scikit-bio-tutorials/02-language-model/language_model_tutorial.ipynb
Run helper_functions for step 1.
Run step 1 code block, then add code:

from skbio.io import write

write(embed_list, format='embed', into='data/pdb_hits.h5')

Expected Behavior
Print out all embeddings in skbio format.
Current Context
After testing, I believe the issue could stem from the resizing logic in the _objects_to_embed function, as the error occurs when a resize doesn't increase the idptr_fh array size to be greater than i. Still in progress, will update after more debugging.
Screenshots/Logs
Error Message:

Print Statement Outputs:

@paarth-b This is a very well written issue! :+1: :+1:

After some testing, It's pretty clear the issue stems from the idptr_resize not functioning as intended. By removing the if condition in resizing, I was able to execute the testcases. I'll be linking my testing branch shortly.
The downside to this change is not efficiently resizing the id and embedding pointers. Will discuss this with @mortonjt in the meeting tomorrow.

error_testing_2097 branch

Resolved 🎉
Updated PR with bugfix. #2100


feat: Extend plugin configuration loader to support dynamic levels

Problem
The configuration loader in BasePlugin was designed to load plugin configurations exclusively from the plugins section of config.yaml. This approach was rigid and incompatible with newer configuration structures that introduced sections like community-plugins and custom-plugins.
This limitation caused plugins defined outside the plugins section to fail to load their configurations.
Solution
The configuration loader was enhanced to support dynamic levels (plugins, community-plugins, custom-plugins) without breaking existing setups:

Added a list of levels to search for plugin configurations.
Iterated through these levels to find the appropriate configuration for each plugin.
Ensured backward compatibility by prioritizing plugins.

Usage
Plugin developers can access their configuration options dynamically through self.config, which contains all the options defined in the configuration file for that plugin.
Example:
gpx_directory = self.config.get("gpx_directory", "./default/path")
allowed_device_ids = self.config.get("allowed_device_ids", [])

Backward Compatibility

Existing plugins defined in plugins continue to work as before.
Additional sections like community-plugins and custom-plugins are seamlessly supported.

I did some testing from my side but would really appreciate some testing before merging. Specially check the core plugins.


Create the page header component is used for NFTs screens

Freedcamp 40212219

I think @CrazyOptimist is a perfect reviewer for this PR.


Service invocation with ERR_DIRECT_INVOKE

In what area(s)?

/area runtime

What version of Dapr?

1.12.4

Expected Behavior
Touch the called service.
Actual Behavior
Got an error, http status code 500, response:
{"errorCode":"ERR_DIRECT_INVOKE","message":"failed to invoke, id: app123, err: context deadline exceeded"}
Previously, everything was running normally in 1.11. x, but after upgrading to 1.12.4, this issue occurred by chance.
It is always a fixed app, which means that such a problem has never occurred when other applications are invoked.
All of this runs in k8s (v1.29), and all apps use the same resiliency/configuration.
I tried using kubectl logs <pod> -n <namespace> to query both applications, but did not obtain any logs. There are no logs (with a warning level) when viewing the applications involved in dapr dashboard. And, the system resources (CPU, mem) are occupied normally, and all pods are running normally.
And according to my log records, the request did not reach "app123" when an error occurred.

There are two types of response messages for this error code, the second one is as follows:
{"errorCode":"ERR_DIRECT_INVOKE","message":"failed to invoke, id: app123, err: rpc error: code = Internal desc = error invoking app channel: Post \"http://<IP_ADDRESS>:80/<path_and_query>\": context deadline exceeded"}
It seems that this prompt is an error that occurred when daprd was forwarded to the container of “app123-service” on the pod of “app123”.
However, as of now, this situation has only been encountered once.

Can you provide some troubleshooting ideas?


Remove tower-http infavor of http-body

This also brings us a step closer to releasing by removing another git dep for its published version.

Thanks 👍


Cross Origin Issue?

I'm receiving this error when using this component,
Uncaught DOMException: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "https://myapp.herokuapp.com" from accessing a cross-origin frame.

I have tried setting setOrigin to false and also an array of URLs and still get this error when building.
Is this a bug or is it because I'm on different domains for the React app and iframe src?
Thanks!

Same error for me, any update please??

Yeah, it seems to work fine but still outputs the error .

but not working for me :(

Actually, seems it causes errors preventing the form in my iframe from even submitting. Fun.

Looks like a duplicate of #5.

@wvengen sorta. The error message is the same, however my iframe is resizing so that could be a key difference in the issue.


[core eng] modern CICD

Primarily building off @Chengming-Li great work on testCICD.
This PR introduces CICD workflows via Github Actions for:

production in cd-prod.yaml. Manually triggered, must be reviewed.
staging in cd-stage.yaml. Automatically triggered on push to master (and gql for now).
development in cd-dev.yaml. Manually triggered, does not need review.

Manually triggered workflows use the workflow dispatch trigger. To trigger these, go into the "Actions" tab, select the correct action on the left panel, then click "Run workflow".
The development workflow also initiates a pod that cleans up the dev install after a certain amount of seconds, inputted from engineers when first running the dev workflow. There is no enforced cap, but please keep this number small.

I'd strongly recommend using reusable workflows when you have multiple workflows which do practically the same thing:
cd.yaml
name: Deploy

on:
  workflow_call:
    inputs:
      environment:
        type: string
        required: true
      ...

# All examples
env:
  GKE_CLUSTER: main-cluster
  GKE_ZONE: us-central1-c
  VAR_TAG: ${{ format('tag-{0}', inputs.environment) }}
  ...

jobs:
  deploy:
    name: Build and Deploy
    runs-on: ubuntu-latest-m

    steps:
      ...

cd-prod.yaml
name: Deploy to Production

on:
  workflow_dispatch:
  push:
    branches: ["main"]
    paths: ["apps/*"]

jobs:
  deploy:
    uses: ./.github/workflows/cd.yaml
    secrets: inherit
    with:
      environment: prod
      ...


replace return@Surface with else block

Related to issue: # https://devtopia.esri.com/runtime/kotlin/issues/4551

Description:

With the upgrade to the compose compiler the FloorFilter has started crashing.

Summary of changes:

Remove the return @Surface call which is causing the crash and replace it with else block.

Pre-merge Checklist

a vTest Job for this PR has been run

[x] link: https://runtime-kotlin.esri.com/view/all/job/vtest/job/toolkit/75/
https://runtime-kotlin.esri.com/view/all/job/vtest/job/toolkit/75/Test_20Report_20-_20Integration/

Unit and/or integration tests have been added to exercise this PR's logic, and the tests are passing:

[ ] Yes
[ ] No

closing this PR as the issue has been fixed in the latest version of Kotlin and compose plugin
https://github.com/Esri/arcgis-maps-sdk-kotlin-toolkit/pull/555


GdkPixbuf loader (as used by eog) breaks on large files

Describe the bug
I can't open certain large JPEG XL files (the breaking point is somewhere between 4097x2731 and 6000x4000; I can do a more exhaustive test if needed) in eog. This holds for lossless and lossy files, as well as losslessly transcoded JPEGs. I'm pretty sure that these files used to work in eog, although I'm not certain. I don't think this is a bug in GdkPixbuf or eog, since the full-resolution source JPEGs (6000x4000) open just fine.
To Reproduce
Steps to reproduce the behavior:

Try to open a large JPEG XL image (one that breaks is attached) with eog

Expected behavior
The image is displayed.
Screenshots
If applicable, add screenshots or example input/output images to help explain your problem.
Environment

OS: Arch Linux
Compiler version: clang 13.0.0 (what Arch's package was built with)
CPU type: x86_64
cjxl/djxl version string: cjxl v0.6.1 a205468b [AVX2,SSE4,SSSE3,Scalar]
GdkPixbuf version: 2.42.6-2
eog version: 41.1

Additional context
Log output from eog:

(eog:264174): GdkPixbuf-CRITICAL **: 23:41:50.805: gdk_pixbuf_animation_is_static_image: assertion 'GDK_IS_PIXBUF_ANIMATION (animation)' failed

(eog:264174): GdkPixbuf-CRITICAL **: 23:41:50.805: gdk_pixbuf_animation_get_iter: assertion 'GDK_IS_PIXBUF_ANIMATION (animation)' failed

(eog:264174): GdkPixbuf-CRITICAL **: 23:41:50.805: gdk_pixbuf_animation_iter_get_pixbuf: assertion 'GDK_IS_PIXBUF_ANIMATION_ITER (iter)' failed

(eog:264174): EOG-WARNING **: 23:41:50.902: Thumbnail creation failed

(eog:264174): EOG-WARNING **: 23:41:50.902: Thumbnail creation failed

(eog:264174): EOG-WARNING **: 23:41:50.902: Thumbnail creation failed

(eog:264174): EOG-WARNING **: 23:41:50.902: Thumbnail creation failed

ZIP archive containing a file that breaks in eog (works with Chromium and djxl):
broken-file.zip

Thanks for the report!
I tried to reproduce the issue and have pretty similar settings/versions, except that I used current main fbcd01984bb6d724eaf3bf07955269787ad60cc7. There it seems to work and I can view the image big.jxl you provide just fine in eog.
Could you try building with the current main and see if you still have the issue?

Oh yeah, seems like it's been fixed since 0.6.1. I'll run the git build for now and see if I can figure out where it got fixed with git bisect.


chore: prep for release clients

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

Project coverage is 88.41%. Comparing base (772acde) to head (4ea2c62).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #315   +/-   ##
=======================================
  Coverage   88.41%   88.41%
=======================================
  Files          10       10
  Lines        3685     3685
=======================================
  Hits         3258     3258
  Misses        427      427

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


Cyclone and Foxglove possible interop issue for complex appendable types

Description
I believe appendable annotation is part of the supported OMGIDL features as I have not come across anything on the readme saying otherwise. If that's not the case then this issue is not relevant.
I noticed a possible interop issue between Foxglove and cyclonedds. We use cyclonedds v0.10.2 and IDL structs serialized with D_CDR2_LE/BE (I believe internally you call it RTPS_DELIMITED_CDR2_LE/BE) fail to deserialize with something like the following:
RangeError: Offset is outside the bounds of the DataView in field a of Inner at location 24. in field inners of Outer at location 24.
I believe this is due to a mismatch in the implementation of the spec as noted in the following issue https://github.com/eclipse-cyclonedds/cyclonedds-cxx/issues/218

Version: omgidl-parser/v1.0.3
Platform: Ubuntu 22.04

Steps To Reproduce
The following IDL fails to deserialize when the serialized data is generated by cyclone:
@appendable
struct Inner {
  uint32 a;
};
@appendable
struct Outer {
  sequence<Inner> inners;
};

Specifically cyclone will serialize Outer with an empty sequence as:
[0, 9, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0] while Foxglove seems to expect: [0, 9, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0]. I validated this by removing the additional sequence header and Foxglove was able to deserialize the data.
Expected Behavior
I would expect Foxglove to be able to deserialize cyclonedds data.
If the difference in the implementation is the issue, do you think it's possible for Foxglove to align on what cyclone does in this case ? I understand there's different interpretations of the spec so I mainly want to know if this is something I need to address myself rather than wait for a new version.

Thanks for the report, we will look into this issue soon. Any chance you can share some sample code you used to generate the data?

Internal tracking issue: https://linear.app/foxglove/issue/FG-8929/cyclone-and-foxglove-possible-interop-issue-for-complex-appendable

Thanks for the quick response.

Thanks for the report, we will look into this issue soon. Any chance you can share some sample code you used to generate the data?

I've forked the cyclonedds python repo and prepared a minimal example that generates the serialized CDR data I've provided above here.
You have to follow the README instructions to get cyclonedds installed in your python env, then you should be able to run the example from the root of the repo with:
python3 examples/foxglove/foxglove.py
Which should print the serialize data as:
[0, 9, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0]

@max-inn Thanks for bringing this up, I have a draft PR that at least fixes the issue with the specific example you mention and doesn't break any of our tests. I still have to test it against some other data in our app, but if that works out hopefully we'll be able to have a fix in the app for you in the next week or so.

That sounds great, thank you !


mount and umount

When mounting, the format of mountpoint should be: [hostname:mountpoint], but when using curveadm mount, the format of mountpoint becomes [a string of numbers: /usr/local/curvefs/client/mnt]
Although unmounting with umount is successful, the mount point is unavailable and an error output appears.

Although it shows that umount is successfully uninstalled, the mount point is still inaccessible, and the error output is as follows:

At this time, deleting fs will fail, mds log shows fs_busy, you need to use the tool umount, you can delete successfully at this time.

The bucket name in config file isn't exists on s3, and the docker image isn't published by curve.
So this issue is invalid.

still work

The umount command will execute the below two operations:

stop fuse process
remove the container which fuse occupied

So as you said, there is no exception handling.
On the other hand, i think we should use fusemount to umount filesystem instead of stop fuse process, welcome to submit a PR to solve this problem :)

closing it


Working on Gnome 42

More just of a heads up.
Running this extension on Arch with Gnome 42 RC. After updating the metadata with version 42, seems to be working fine (for my use case anyway, swapping between HDMI and Headset).
Thanks

Done! Thanks for the testing.


Release a new gem version

Could a new gem version be released?   The current 2.0.0 does not work with rails 6.

It's maintained but not as frequently as it used to be, will work on a gem release to support Rails 6.


Enable for javascriptnext syntax

This syntax becoming quite popular, no reason to not to run linter
in it as it seems to support classes and other ES6 syntax quite well.

Thanks!


Cluster membership changes

We need to support adding and removing peers to the raft cluster. While this is described briefly in section 6 of the raft paper I feel like the explanation is underspecified specifically with regards to the rejection of request vote rpcs and the explanation of "catching up" new peers before initiating the joint consensus.
I'm reading through the raft mailing list, and other resources that I'll link here in order to get a better feel for potential improvements to the solution. Right now my intuition is that we should look at using the AddServer and RemoveServer RPCs from the "ongaro thesis" which I've linked below.
Research / Links

https://groups.google.com/forum/m/#!topic/raft-dev/JEtBYaPpHXo
https://github.com/hashicorp/raft/issues/235
http://openlife.cc/system/files/4-modifications-for-Raft-consensus.pdf
https://ramcloud.stanford.edu/~ongaro/thesis.pdf

I'm certainly interested in working on this, so I'll set aside some time to read the paper again and catch up on some of the other links you mentioned here. My thought would be to review how etcd or Consul do it, and borrow their approach, since it is relatively battle-tested, rather than implementing our own interpretation of it (assuming we can't find a concrete "this is exactly how you do it" process).

Most real implementations use the "pre-vote rpc" along with the AddServer and RemoveServer Rpcs. Both are defined in that "modifications for Raft consensus" document. Based on my research thats what etcd does as well. I'm not sure hashicorps raft has incorporated these changes at this point.

So after reading through all this I think it makes the most sense to use the explicit steps for initializing the cluster, adding peers, and removing peers. I think we can use something like:
@type peer :: module() | {module(), node()}

@spec initialize_cluster(peer()) :: :ok | {:error, term()}
@spec add_peer(peer(), peer()) :: :ok | {:error, {:redirect, peer()}} | {:error, :not_leader}
@spec remove_peer(peer(), peer()) :: :ok | {:error, {:redirect, peer()}} | {:error, :not_leader}

I think I have a pretty good handle on how all of this works based on the thesis paper so I'll try to lay that out here when I get a chance.

So my take on this is that while an explicit API is nice to have (particularly for testing), it is possible to make this automatic using node monitoring (where we effectively get the equivalent of add_peer and remove_peer events). This is how Swarm handles automatically forming a cluster, although it does support a way to blacklist/whitelist nodes so that only those you want participating in the cluster are able to.
Reading through the paper and it's section on cluster membership changes, I didn't see anything that indicated this would be a problem, but I haven't dug into the internals of this library yet, so I don't know if there is a constraint based on the implementation.
I spent some time yesterday putting together a distributed process registry based on raft, and by far the thing that stood out to me was that initializing the cluster was a manual process, and there isn't a great place to put that in our own applications. It would be preferable if the implementation of the state machine server was working to form a cluster on it's own. This behaviour would need to be configurable, because there are obviously times where you may want to manually manage the configuration (testing again is an example), but I think for a library like this to be successful, it needs to be easy to use by default, and offer escape hatches for things which may need tweaking in some situations.
Thoughts?

I totally agree that we need to make cluster membership changes automatic. I can work on implementing the underlying functions such as initialize_cluster, add_peer, etc. so that we can leverage them from a higher level abstraction that can automatically call those based on node monitoring.


.wasm missing from 2.x

If you have an issue with a specific extension or type
Locate the definition for your extension/type in the db.json file in the mime-db project.  Does it look right?

[ ] No. File a mime-db issue.
[x] Yes: Go ahead and submit your issue/PR here and I'll look into it.

It looks like the 1.x has enjoyed an update from mime-db which includes a definition for `.wasm' in this commit: https://github.com/broofa/node-mime/commit/c0853d2f600235c6019b57ce68f1d0845c9319b7
The relevant commit in mime-db is https://github.com/jshttp/mime-db/commit/1ab71a1d8a2c15be21b1f457e9109d49b48b91a3
The 2.x branch looks like it needs an update as well.

Thanks for the report.  I'll look into it.


Access blocked: Nest’s request is invalid

The problem
hi when i go top authorize my nest account is it says invalid is thee a way to get my token another way?
What version of this integration (ha-nest-protect) has the issue?
0.3.12
What version of Home Assistant Core has the issue?
6.2
Device / Model
No response
Diagnostics information
No response
Home Assistant log
Logs
```
Copy/paste any log here, between the starting and ending backticks (`)
```

Additional information
No response

I have the same issue.

The beta version fixes this and works very well

Thanks

tried the beta version (4.0b2) but doesn't work for me.

Make sure you have set a value for location in the nest app.  For me on my iPhone it’s located by using the gear icon top right, selecting the device in the “Protects” section, then in the next screen look under the “About” section for “Where”. The value there should be one of the room names you already use in HA, spelling identically and same case. I probably restarted HA a couple of times after that before I noticed that it started working. On Jun 30, 2023, at 03:57, Stefano @.***> wrote:
tried the beta version (4.0b2) but doesn't work for me.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

Tried again this morning and new instructions appeared, on how to retrieve token and cookie, and it worked!
Thanks @douginoz for trying to help :)

Tried again this morning and new instructions appeared, on how to retrieve token and cookie, and it worked! Thanks @douginoz for trying to help :)
What did you end up doing to get it to work? I've done all the above plus ensuring my language is set to English and I still get the above error. Neither Beta version nor the latest release work.

There is a link that redirects here https://github.com/imicknl/ha-nest-protect/tree/beta#retrieving-issue_token-and-cookies
Following this instructions to retrieve token and cookies worked for me.

There is a link that redirects here https://github.com/imicknl/ha-nest-protect/tree/beta#retrieving-issue_token-and-cookies Following this instructions to retrieve token and cookies worked for me.

This worked for me as well using v0.4.0b2. The input fields weren't labelled for me. The top field was the token and the bottom field was the cookie. Also, I had to allow cookies in my settings for Incognito mode when following the linked instructions above.


Add PHPUnit as require-dev in composer.json.

I had PHPUnit included before in my local copy, however didn't want to have PHPUnit loaded as part of Yasumi since I have it installed globally. Do you think it is still good to be included as require-dev?

I think that with this, it just works for every contributor, no matter their development environment. Also, you are able to point to certain PHPUnit version that works, in case they will make some backward incompatible changes.

Yes, makes sense! I will merge your PR.


Disable Kafka-unsupported lz4 dependent blocks

Specify in lz4 compress to not use dependent blocks.

This commit is identical to https://github.com/dpkp/kafka-python/commit/afc6346d05054faf75e30a01b9e41a9916e703a9

Codecov Report

Merging #915 into master will decrease coverage by 7.79%.
The diff coverage is 62.5%.

@@            Coverage Diff            @@
##           master     #915     +/-   ##
=========================================
- Coverage   83.75%   75.95%   -7.8%
=========================================
  Files          36       36
  Lines        3799     3806      +7
  Branches      562      524     -38
=========================================
- Hits         3182     2891    -291
- Misses        471      757    +286
- Partials      146      158     +12

Impacted Files
Coverage Δ

pykafka/utils/compression.py
72.85% <62.5%> (-6.1%)
:arrow_down:

pykafka/rdkafka/helpers.py
20% <0%> (-73.34%)
:arrow_down:

pykafka/managedbalancedconsumer.py
45.03% <0%> (-40.4%)
:arrow_down:

pykafka/connection.py
59.4% <0%> (-26.74%)
:arrow_down:

pykafka/broker.py
67.05% <0%> (-26.02%)
:arrow_down:

pykafka/handlers.py
73.52% <0%> (-19.86%)
:arrow_down:

pykafka/utils/compat.py
70.27% <0%> (-14.87%)
:arrow_down:

pykafka/simpleconsumer.py
75.66% <0%> (-10.72%)
:arrow_down:

pykafka/topic.py
71.13% <0%> (-9.28%)
:arrow_down:

pykafka/cluster.py
65.56% <0%> (-7.7%)
:arrow_down:

... and 8 more

Continue to review full report at Codecov.

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

This changeset looks great, thanks for putting in the extra effort to add a test that validates this case. Travis is showing some failures that look like they're originating with rdkafka, so we'll have to figure out what's going on there. Aside from that, though, this looks close to mergeable.

It looks possible that parameterized is somehow causing the rdkafka tests to fail. Maybe try setting up the new tests without the use of that library?
 I'll debug this later today.

My feeling was that it was more about rdkafka than parameterized.  If you remove this test, everything works well. This problematic test somehow breaks the consumer reset offset function after disconnecting for rdkafka.

@carsonip I wonder what happens if you move test_recover_disconnected to be the very last test that runs, even after your newly added test. I bet that will let us merge this PR without having to block on fixing the broken test.

@emmett9001 There are 2 changes:

The faulty test is moved to the last.
librdkafka supports lz4 compression from v0.9.2 but requires liblz4-dev for librdkafka version <0.9.5. They only had in-tree built liblz4 from v0.9.5. See  v0.9.5 release notes. I have added liblz4-dev dependency in travis config, but we could simply use librdkafka v0.9.5 in travis.

I expect the test to pass soon (it is still running now).

Well, it failed again. I cannot reproduce the python 3.5 + rdkafka one. Any comment on Pypy fails?

It looks possible that the python lz4 library doesn't fully support PyPy. To facilitate this PR getting merged, I think it's fine to ignore the lz4 test when running under PyPy, as in this example. The use of parameterized might make using this decorator a bit difficult, so the right answer might just be to do something like this conditional skip for PyPy specifically. Once that test is skipped, this PR should be mergeable.

How can we trigger a rebuild? The failure was just unlucky probably.

If you click "Details" next to the Travis CI check, you'll get a view of the build. From there, click on the job number of the failed job, then click Restart Job on the Travis job page. I've gone ahead and done this for the current build.

Thanks for the awesome work and for seeing this through multiple edits, @carsonip!

If you click "Details" next to the Travis CI check, you'll get a view of the build. From there, click on the job number of the failed job, then click Restart Job on the Travis job page. I've gone ahead and done this for the current build.

I suppose that is only accessible for repo owners. Never mind. Thanks!


Improve documentation

Fixed in #6

Pull request:

https://github.com/Senzing/senzing-with-chatgpt-notebook/pull/6


could not load plugins while karma not installed in node_modules/karma

Expected behavior
loading plugins even if karma installed in sub directory in node_modules
Actual behavior
can not load plugins
Enviroment Details

Karma version 1.1.0 and 0.0.13 (output of karma --version):

Steps to reproduce the behaviour
karma installed by a npm installing tool, located in node_modules/.npminstall/karma, the same as all other karma plugins.

I think that code here load plugins could be promoted to resolve this problem.
var pluginDirectory = path.normalize(path.join(__dirname, '/../..'))

// could be changed to

var pluginDirectory = path.normalize(path.join(process.cwd(), 'node_modules'))

I'd like to make a PR, but it would take some time

I checked out the source code, but the unit test failed ... master branch
here is some error info, is that normal?
01 07 2016 00:58:06.047:ERROR [launcher]: Chrome failed 2 times (timeout). Giving up.
[Error: failed to add custom browserify preprocessor
{ [Error: Cannot find module 'karma/lib/preprocessor'] code: 'MODULE_NOT_FOUND' }]
Fatal error: Client unit tests failed.

I made some change in #2404, now all ci passed. @dignifiedquire could you please take a look at it.  I would like to add some tests but not found tests about plugin loading.

Can you explain more in detail your setup that causes this problem to be exposed? The change in the PR is likely not to get merged, as it appears to add potential problems & smells like a hack. With more detail, a better fix can probably emerge.

Thanks you guys. This issue could be closed. We had drop the use of npm-install which causes this problem. npm install is too slow for us T_T, but now we found another way faster to install.


Update dev documentation

Closing this, because this project probably wont be developed further form this point on. (Except for closing some of those issues which are already open, e.g. #55 )

Oh no! And here I was being all hyped up... :(

I am so so sorry 💟


Consumer waits 10 minutes when no message are coming

Hello,
I run a script where I produce a message to a topic A then waits for another message on a topic B.
Sometimes, message is not posted on topic B, and I would like the consumer to wait a few seconds, no more. Currently, it waits around 10 minutes.
I don't really understand why as I see that the MaxWait is configured to 200ms in the go consumer class.

I tried to run a simple test with no parameters to k6 (a simple ./k6 run test_json.js) on a empty Kafka topic and it resulted in k6 setting the duration to 10m30s. This causes the script to iterate for 10 minutes and leave 30 seconds for a graceful stop. If there are no message in these 10m30s, it will report an error: There was an error fetching messages: context deadline exceeded.
So, I reduced the duration to 5 seconds to test again and this is the result and the intended behavior of k6 and xk6-kafka.
If you have any other questions or want to provide more information (test script, parameters, ...), let me know and I'll investigate.
$ ./k6 run -d 5s scripts/test_json.js

          /\      |‾‾| /‾‾/   /‾‾/
     /\  /  \     |  |/  /   /  /
    /  \/    \    |     (   /   ‾‾\
   /          \   |  |\  \ |  (‾)  |
  / __________ \  |__| \__\ \_____/ .io

  execution: local
     script: scripts/test_json.js
     output: -

  scenarios: (100.00%) 1 scenario, 1 max VUs, 35s max duration (incl. graceful stop):
           * default: 1 looping VUs for 5s (gracefulStop: 30s)

There was an error fetching messages: context deadline exceeded
running (35.0s), 0/1 VUs, 0 complete and 1 interrupted iterations
default ✓ [======================================] 1 VUs  5s
WARN[0035] No script iterations finished, consider making the test duration longer

     ✓ is sent

     █ teardown

     checks.........................: 100.00% ✓ 100      ✗ 0
     data_received..................: 0 B     0 B/s
     data_sent......................: 0 B     0 B/s
     iteration_duration.............: avg=69.79µs min=69.79µs med=69.79µs max=69.79µs p(90)=69.79µs p(95)=69.79µs
     kafka.writer.dial.count........: 3       0.08568/s
     kafka.writer.error.count.......: 0       0/s
     kafka.writer.message.bytes.....: 44 kB   1.2 kB/s
     kafka.writer.message.count.....: 200     5.711978/s
     kafka.writer.rebalance.count...: 0       0/s
     kafka.writer.write.count.......: 200     5.711978/s
     vus............................: 1       min=1      max=1
     vus_max........................: 1       min=1      max=1

Hello,
Thanks for your answer, I have ran with a duration of 5s and it behaved like you said.
I'd like to reduce the graceful stop duration though, so I'll dig inside k6 options.
Thanks again.


note import: make regex for parsing/replacing head more strict

Random usages of --------- somewhere inside the node can truncate the note body that is actually imported and stored inside the database.
The regex for replacing the metadata should be changed from
/^(---\n[^]*\n---)/
to
/^(---\n[^]*\n---\n)/
Reference code:
https://github.com/dungeon-revealer/dungeon-revealer/blob/677f4d3e54e10ec64fe2e6f27527311e8f80bc99/server/note-import.ts#L134-L139

As @maxb2 mentioned on discord it might even be better to use /^(---\n[^]*\n---\ *\n)/ to be a bit more forgiving with trailing whitespace.


Animations/Visual Feedback

Please check out the above .gif of how teleports/deaths/resets could be handled and how the path can 'go cold' over time.
Currently a single line is beign drawn from the location the players 'dissapears' in to the location they 'reappear' in.
With a bunch of teleports/reset/death, the map can quickly become a visual mess.
I know you expressed a way to somehow differantiate between an older path and a new path being drawn over it. I think something like that can simply be done by changing the colours of the line segments over time.

What I propose is to pause the replay for a sec, and visually show the player icon dissapearring. (as shown in the top right of the .gif)
After like half a second make the player icon appear again in the new location and make it visually demand the attention of the viewer. In this case I simply made it shine brightly and increase the size of time and the fade it out gradually, revealing the original player icon. (bottom left, imagine the player died at doppel10 and didnt do a save.)
While all of this is happening, also notice how the path towards Doppel 10 is changing colour.

I've removed the warp lines in the dev build. I don't think the framework I'm using would allow for a gradient color to be applied for the path unfortunately. I like having some kind of warp indication / animation. I also honestly kind of liked the lines as long as they aren't permanent. Will experiment.

The path doesnt need to have a gradient. You can just make it so that each new path segment starts out being white and fades out to orange or whatever other colour over time.
Since the path keeps expanding, that will give it the impression that a gradient fade is being applied to the path, since the colours fade at different times.
If you need me to visually illustrate it let me know.

I can't really do that unless I split up the path into segmented objects, which I don't want to do. Will continue to experiment with it. For now I have removed the warp lines and added a pause / slowdown during the warp. The player indicator still travels so the viewer can follow to the destination. No flashy animation yet, but I'm looking into options.

Cool, if you need any graphics made, just let me know.

Added a simple animation to the warps.


Added support for SPDX 2.3 documents.

This commit introduces support for SPDX 2.3 documents, with the same underlying data type as 2.2 documents (all changes for 2.3 are backwards compatible, so no splitting of the data model is necessary).
This also includes additions of new tests for SPDX 2.3 documents.

Approved for Public Release; Distribution Unlimited. Case Number 23-1849.
©2023 The MITRE Corporation. All Rights Reserved.

Thanks @alilleybrinker !


nixos/tests/v2ray: init

Motivation for this change
Add test for nixos/v2ray.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Merged into #96958


returnNew/returnOld options are not respected when updating vertices

ArangoJS: v6.14.1
ArangoDB: v3.6.4
When returnNew/returnOld options passed to graph vertex collection update() method, new/old properties are not set in return object.
It looks like the issue is at (new/old properties are in res.body) https://github.com/arangodb/arangojs/blob/f310fb31597362ec7947c308530e1d60796d8d21/src/graph.ts#L155

Yes, this is a known (but undocumented) bug in v6 that has been fixed in v7.
See the last bullet point of https://github.com/arangodb/arangojs/blob/v7.0.0-rc-1/CHANGELOG.md#graph-api-2

Are there any plans to fix this in v6? I tried moving to v7 but it's not straight forward so will probably have to stick to v6 for a while.


add Kauai, HI

You beat me to it!  Do you think UNIT_NO is useful?  Where available it's also part of the house number and I can't tell from google maps if it's legitimately part of the house number or it's actually a true unit.

I spot-checked a few and they're standalone houses.  There don't appear to be any duplicate house numbers (just the digits) among those with units.

Ok, looked like they were actual unit numbers except for the lettered units, but can remove them.

Oh, given the sheer number of alpha-only UNIT_NO values, I didn't see the digits-only ones.  Those appear to be legit units and backed up by street view.

Sorry, should've been more explicit, the digits-only units appear to be legit units.  Given the number of records with 'CONDOMINIUM' in the name, it's probably safe to assume that most are legit units so this is probably good as-is.


Display gcov Code Coverage when running Unit/Integration Tests

We should set up gcov so that we know where what per file test coverage we have when running the Unit Tests.
Links:

https://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Gcov.html
http://www.network-theory.co.uk/docs/gccintro/gccintro_81.html
https://linux.die.net/man/1/gcov
http://gcovr.com/guide.html
https://qiaomuf.wordpress.com/2011/05/26/use-gcov-and-lcov-to-know-your-test-coverage/
http://www.linux-mag.com/id/1409/

GitHub Code Coverage Integrations:

https://codecov.io/
https://docs.coveralls.io

Steps:

Install gcov during Travis builds (It may already be included as part of GCC)
Run Unit + Integration with gcov enabled
Print Code Coverage of Unit Tests and Integration Tests once they are complete
Ensure make clean deletes any old gcov files

Picking this issue up. Going to split it up into several phases:

Unit Test Coverage
Fuzz Test Coverage
Integ Test Coverage

Code Coverage metrics for unit, integration, and fuzz tests are now being uploaded to https://codecov.io/gh/awslabs/s2n for every build and Pull Request. Marking this as closed.


Search filters put 'Programming Language :: Python :: N :: Only' checkboxes in an odd place

The search-filter checkboxes are sorting the Programming Language :: Python :: N :: Only checkboxes below all of the respective N.n checkboxes, instead of placing them immediately below the N checkboxes:

This is highly nonintuitive, at least to me.
This may be low priority given that, e.g., #2442 and/or #3462 would presumably change the UI considerably.

I second this. 'Only' checkbox is a bit confusing. As @bskinn mentioned we should probably place 'Only' below '2' and '3'.

@nlhkabu do you want me to have a look at it?

@dstufft is this something for you to look at?

This seems to have resolved itself. https://pypi.org/search/?q= currently shows the following:


FEATURE REQ: granularity and movement data

As from title:

do we have an idea on what is our sensitivity? Based on #335 seems to be 5 meters, might not be enough to spread contagion
can we overlap on top of public transportation routes and other public places? Maybe using a simulation based on normal traffic? Putting those as some sort of "weight" for the overlap risk?

These would help making the overlap function more accurate and effective.

Can you state the issue in a more clear way? I.e. What is the problem? What do you propose to fix it?

On 2nd thought, google does have the time table for most public transport lines, so in theory one should be able to use that data as well, to extract something useful.

Current sensitivity is 20m (60ft).


Do not discard return value of fgets in function ‘ya_str_get_default_net_interface’

Code:
       if(route_h) {
                //Ignore first line as it is headers
                fgets(buffer, sizeof(buffer), route_h);
                fgets(buffer, sizeof(buffer), route_h);
                char *it = (char*) memchr(buffer, '\t', strlen(buffer));
                *it = '\0';
        }

(see https://github.com/yabar-dev/yabar/blob/master/src/intern_blks/ya_intern.c#L220)
Compiler:
src/intern_blks/ya_intern.c: In function ‘ya_str_get_default_net_interface’:
src/intern_blks/ya_intern.c:220:22: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]
                 fgets(buffer, sizeof(buffer), route_h);
                      ^
src/intern_blks/ya_intern.c:221:22: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]
                 fgets(buffer, sizeof(buffer), route_h);

see https://travis-ci.org/yabar-dev/yabar/builds/191465528#L197
Even though the first line is discarded, the first fgets may still have failed (basically resulting in undefined behaviour) and we don't even check the output of the second (relevant) fgets.
http://man7.org/linux/man-pages/man3/fgets.3p.html

I made a pass over warnings here https://github.com/yabar-dev/yabar/pull/5
I didn't care much about returns of fgets as we read a file from procfs filesystem which is in RAM. And if fgets fails, well the user will have bigger problems than yabbar.

Fixed with #5


fix: replace console logs by error

This solution showed ineffective behavior in the testing process. It is more correct to log the error without throwing it. Because this error will not be handled correctly by NestJS
I am closing this PR and have prepared another solution: https://github.com/lidofinance/lido-keys-api/pull/213


mark output from XW product as mutable

@havardpe started on this, feel free to improve test

moved the testing to the xw product test


Can't log into either iOS or Google

Appreciate this idea, this is literally what I have searched for years. However I can't log into either iOS or Google in the first place. Wonder if it is no longer supported

I am having the same issue. Thought it would be a great tool but unfortunately no luck.

Same issue too... as it hasn't been committed to in a year I presume it is no longer supported


Change to use media box for page size instead of cropbox.

For PDF documents where media box is larger or smaller than crop box the content get squeezed or stretched.
For PDF content the media box should be used as the page size.
More information about this at
http://www.prepressure.com/pdf/basics/page-boxes

This repo is an SVN mirror and the PDFBox project team do not have access to PRs created here. Please close this issue and follow the instructions on http://pdfbox.apache.org/support.html to create issues on JIRA.

Why is the project using svn... ?


apache_request_headers() undefined

When I extend ApiGuardController in my controller I get this error.
FatalThrowableError in ApiGuard.php line 195: Fatal error: Call to undefined function Chrisbjr\ApiGuard\Http\Middleware\apache_request_headers()
Not all PHP configs support apache_request_headers. Are you planning fix it?
PHP docs

Hi @maksymkhar try using the dev-master branch instead for the meantime

Hi @chrisbjr, thank you for the reply.
I tried the dev-master branch but i get the following error:
FatalThrowableError in ApiGuardController.php line 38: Fatal error: Class 'ApiGuardAuth' not found

I tried add aliase in the app.php file following this issue: #101 and I get this error:
FatalThrowableError in ApiGuardAuth.php line 14: Type error: Argument 1 passed to Chrisbjr\ApiGuard\ApiGuardAuth::__construct() must be an instance of Chrisbjr\ApiGuard\Contracts\Providers\Auth, null given, called in /home/vagrant/Code/NotiApp/vendor/chrisbjr/api-guard/src/Providers/ApiGuardServiceProvider.php on line 49
Any idea?

@maksymkhar - have a look at the difference between your config/apigaurd.php add vendor/chrisbjr/api-guard/config/apiguard.php and reconcile.

@ivannovak Awesome, that's it! Thanks!!

Hi all, please use 3.1.x


V2 Blueprint APIs

We've got through a few conceptual iterations of the object-oriented APIs for blueprints.
See: https://github.com/rerun-io/rerun/blob/main/design/blueprint_store.md
Specific must-have features:

Support for hierarchy and layout
Single-construction blueprint object
Blueprint passed to spawn/serve: rr.spawn(blueprint)

Voting to bring this issue to fore-front :wave:

Done in:

https://github.com/rerun-io/rerun/pull/5408
https://github.com/rerun-io/rerun/pull/5484
https://github.com/rerun-io/rerun/pull/5498


What is the meaning of 'delta' in plot_error.py? Is it the subtraction between previous model and ViTSTR-Base?

plot_error.py is error analysis when data augmentation with rand augment was applied on baseline str models. plot of increase in accuracy and the corresponding std. not included in this paper but on a separate technical report.

on

Many thanks for your rely!  Is the xlabel is the number of  randomly selected augmentation?  And what is the data of your proposed method?

The xlabel is the number of samples used by rand augment. We will release the technical report (arxiv) on this part including the data/analysis.

Look forward to this. Many thanks.


Hide -h/--help options

Hi, I'm using this project recently and it's great.
My question is: how can I hide the -h and --help for specific argument as it would be neater when displaying a lot of candidate options.
For example:
>>> mycmd new 'abc'
--help      -h        option1     option2     option3    option4     option5

Could it just be:
>>> mycmd new 'abc'
option1     option2     option3    option4     option5

Hi @cuyu. There is no option to specifically suppress help, but the use case you show can be satisfied by passing the always_complete_options=False keyword argument to argcomplete.autocomplete(). Please try it out and let us know if that works for you.

@kislyuk Yes, that works for me! Thank you.


Is there a way to make the instance jump to next month if all dates in first month are disabled?

I configure it with a start date, some disabled dates (through the "disable" callback/hook option in config object) and this might result in all dates disabled in the first month. From usability point of view it doesn't make sense to still show this month to the user, since nothing can be selected. Of course, for the general case there could be more months (not just the first) that will have no selectable date. What would be the easiest way to achieve this - i.e. jump the calendar to the next month that has at least one selectable date?
Thanks.

Hello,
You could simply loop through elements in fp.days and check if they're all disabled, and if they are, do something like fp.changeMonth(1).
I'd suggest doing it in onOpen or other hooks.
See https://chmln.github.io/flatpickr/events/


Smart-Table implementation

Hello guys im new to Angular 2 and i was trying to implement the smart-table on my website. My problem is i cant find 'ng2-smart-table' module that is being refered on this line, on my smartTables.component.ts
import { LocalDataSource } from 'ng2-smart-table';
Maybe im missing something ovbious , my plan was  to copy all the archives from smarTables folder and just solve every error until it worked on my website, i dont know if this is the dumb way to do it, or even if it is gonna work this way,  but its the first time that i try to implement a external component, any help would be very apreciated, thanks.


$message->author sometimes NULL

Stragely it only happens on one of the 2 servers the bot is running on, the one with the problem has nearly 400(+hidden ones) online users, the other only a handful (a testserver).
Could narrow it down to a problem with hidden users.
Tested it like that: Created a new discord acc, joined both servers, set myself to hidden, started bot and then wrote in both servers. Small testserver had proper author object, big server had just null. If I'm online from the start it works on both!
I worked around it for now by always checking is_object($message->author) first, but that's not a good solution. As it works on one but not the other I don't know if this is a Discord bug, or if it's DiscordPHP. Is that maybe what the largeGuild stuff in the code is for? Couldn't find any documentation for that.
Edit: Even with checks for object the bot sometimes shuts down without error if such a NULL person writes in chat :/

So I added the 'loadAllMembers' => true option to startup which seems to have fixed the problem, without it would often run into a segmentation fault!
Is this intended or should there be a way to load memebers on demand?

This is the only fix, you have to load members for large guilds (>100 members I think).

This problem was fixed that way, but I may have found another similar one. Anyways, this can be closed.


Refactor lora

s-lora is hard to maintain.

Should we update api_server_lora.md?

May update pipeline.html as well.

https://github.com/InternLM/lmdeploy/blob/85cf6e3f3f780e83f33cda608f5e312c5502cda2/docs/zh_cn/llm/pipeline.md
Do adapters only support local paths?
  File "/home/chenxin/ws3/topk/lmdeploy/pytorch/engine/model_agent.py", line 248, in _build_model
    add_adapters(patched_model,
  File "/home/chenxin/miniconda3/envs/38/lib/python3.8/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
  File "/home/chenxin/ws3/topk/lmdeploy/pytorch/models/patch.py", line 298, in add_adapters
    state_dict = torch.load(checkpoint_path, map_location=device)
  File "/home/chenxin/miniconda3/envs/38/lib/python3.8/site-packages/torch/serialization.py", line 997, in load
    with _open_file_like(f, 'rb') as opened_file:
  File "/home/chenxin/miniconda3/envs/38/lib/python3.8/site-packages/torch/serialization.py", line 444, in _open_file_like
    return _open_file(name_or_buffer, mode)
  File "/home/chenxin/miniconda3/envs/38/lib/python3.8/site-packages/torch/serialization.py", line 425, in __init__
    super().__init__(open(name, mode))
FileNotFoundError: [Errno 2] No such file or directory: 'chenchi/lora-chatglm2-6b-guodegang/adapter_model.bin'

Do adapters only support local paths?

Add download adapters.

With do_sample=False and same input, the output of the first request is different from the output of the subsequent request. Is this as expected?
from lmdeploy import pipeline, GenerationConfig, PytorchEngineConfig
backend_config = PytorchEngineConfig(session_len=2048,
                                     adapters=dict(lora_name_1='chenchi/lora-chatglm2-6b-guodegang'))
pipe = pipeline('/mnt/140/chatglm2-6b/',
                log_level='INFO',
                backend_config=backend_config)
prompts = [[{
    'role': 'user',
    'content': '您猜怎么着'
}]]
response = pipe(prompts, adapter_name='lora_name_1')
print(response[0].text)
response = pipe(prompts, adapter_name='lora_name_1')
print(response[0].text)
response = pipe(prompts, adapter_name='lora_name_1')
print(response[0].text)

#  我不知道您想说什么,可以请您把您的想法、问题、观点、建议或者疑问提出来,我会尽力帮助您解答。
#  没有啊，您给我说。
#  没有啊，您给我说。

With do_sample=False and same input, the output of the first request is different from the output of the subsequent request. Is this as expected?

Fixed.


[!] add RPC sink support, closes #464

Addresses Issue #464 .
Still WIP.

Please, resolve all requested changes


Sample VUE app deployed in Terraform pipeline

As a User I want a landing page So That I can do stuff with FAM
Additional Context
-- Hello World Vue app deployed with Terraform to Cloudfront so it is web accessible
-- Deployment verification test (curl-based test)
-- vanity URL is OOS
Acceptance Criteria

[ ] Given , When I hit the relevant URL, Then I see 'Hello FAM'

Definition of Done

[ ] Ready to Demo in Sprint Review
[ ] Does what I have made have appropriate test coverage?
[ ] Documentation and/or scientific documentation exists and can be found
[ ] Peer Reviewed by 2 people on the team
[ ] Manual testing of all PRs
[ ] Merged

PR - needs review attached to this ticket
link to app:
https://d3t77o3i70rv6u.cloudfront.net

Added the curl test into the GHA... introduced a couple issues.  terraform output when pipled to stdout through GHA extra text can get injected into the output that can make parsing the output tricky.
Other issue is the cloudfront is geographically restricted to CA, modified this, however terraform did not detect a state change and trigger an update to cloudfront.  Ran again and forced re-deploy of cloudfront.  Geographic restriction change didn't take.

completed: https://github.com/bcgov/nr-forests-access-management/pull/232

modified the geo restrictions to allow US, so that that curl test can run from gha.

A few review comments:
.github/workflows/debugging_frontend_deploy.yml could be removed since the PR is closed.
pull_request.yml:
line 163 – probably want to run “npm ci” instead of “npm install”
line 157 vs line 175 – I’d expect we’d just run terraform plan once for our entire stack. Running it multiple times in the same action is redundant.
push.yml: similar comments to pull_request.yml
Otherwise the Vue starter app looks cool!

Ah, I got confused by line #170 creating a 'backend.hcl' file. And I thought Conrad's intent was to have everything related to AWS Terraform under the server directory (e.g. move terraform files for cloudfront/VUE app into /server/frontend).

Add comment to GHA to document why separate builds are needed

Here's the RC thread that explains why the separate workspace is used: https://chat.developer.gov.bc.ca/channel/aws-how-to/thread/4un3eXu9EHbbT3Eps
Fundamentally, build-time for the front-end depends on deploy-time for the back end. So the back-end terraform runs, then the github action for the front-end runs (injecting the API URL), THEN the front-end terraform runs.

I was confused too, which is why I asked on RC. There may be a better way to do it, but this way is proven to work for now.

minor cleanup, deactivating the debugging gha, ready for review


python310Packages.nose2: 0.13.0 -> 0.14.0

Description of changes

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 267137 at e16ad523 run on aarch64-darwin 1

6 packages marked as broken and skipped:

aw-watcher-afk
dvc-with-remotes
mailman
mailman-hyperkitty
qmk
whisper-ctranslate2

2 packages failed to build:

python310Packages.duo-client
python311Packages.duo-client

26 packages built successfully:

aw-watcher-window
checkov
dvc (python311Packages.dvc)
python310Packages.aw-client
python310Packages.dataclass-factory
python310Packages.dpath
python310Packages.dvc
python310Packages.dvclive
python310Packages.flufl_bounce
python310Packages.milc
python310Packages.nose2
python310Packages.persist-queue
python310Packages.shazamio
python310Packages.yte
python311Packages.aw-client
python311Packages.dataclass-factory
python311Packages.dpath
python311Packages.dvclive
python311Packages.flufl_bounce
python311Packages.milc
python311Packages.nose2
python311Packages.persist-queue
python311Packages.shazamio
python311Packages.yte
shaq
snakemake


Differing Speeds as Compared To The Paper After Distillation

I attempted to reproduce your numbers for the NLI task using the NLI corpus but I'm not getting the same computation speed up as outlined in the paper
SENTENCE EMBEDDING EXTRATION ON CPU:
BERT-LARGE-WHOLE-WORD-MASKING took 74s to encode 1000 sentences one by one (batchSize = 1)
DSE Trained on logits from finetuned model of BERT-LARGE-WHOLE-WORD-MASKING took 67s  to encode 1000 sentences one by one (batchSize = 1)
This speed up is quite low and compared to the paper it is nowhere even close
MORE INFO
I followed the example python commands to the dot.
a) Finetuned a large bert model using the script for MNLI corpus
b) Extracted Logits using the script for MNLI corpus
c) Trained a DSE model using the logits
i) Hardware specifications : A single 2080TI 11GB CUDA RAM, VM with 12 vCPU cores and 32 GB system RAM
ii) Hyperparameters - All same as default except batchSize is 4 (Had to reduce because 11GB CUDA ram was a constraint )
- As a reference at batchsize 4 9GB of ram was being consumed just by the models.
iii) Took a total of 80 hrs to train on 8 epochs
d) Once the model was trained i used the load_dse_checkpoint_example.py to load the dse model, tokenize sentence pairs into one input_ids sequence which was fed to the dse model
i ran this same sentence embedding extraction a 1000 times in a loop in 67 s
the same 1000 runs looping around a bert large model for extracting sentence embedding took 74s
Can you please reach out and explain if i'm doing something wrong or what could be wrong?
because sentence pair sentence embedding extraction in the paper was sped BY A FACTOR OF 934
THIS IS NOT WHAT I HAVE BEEN ABLE TO REPRODUCE. :((

Hi,
If I understand correctly, you are attempting to create sentence embeddings for 1000 sentences 1 by 1. Indeed, DSE does not give any major speed up for this scenario, and this is not what is claimed in the paper. Notice that the model size and computations are essentially the same for an original  BERT-Large model and DSE when encoding single sentences, therefore this is to be expected.
As described in the paper, the speed-up is observed in the following scenarios, common in large-scale ranking and retrieval tasks:

Computing similarities for all pairs of sentences: Displayed in Table 3 in the paper. Since DSE decouples the computation for each sentence, this is done by first computing the 1000 sentence embeddings, followed by computing 1M similarity scores using a low-cost similarity function (e.g. a shallow FC network, cosine-similarity). Notice that in this case, to compute the similarity score with the original BERT-Large model you must pass all 1M pairs through the whole network due to cross-attention operations.

Computing similarities for a single query sentence and an existing large database of sentences: Displayed in Table 4 in the paper. In this case, we assume that sentence embeddings for the existing database were pre-computed, which is possible only when the encoding process for a query and candidate sentence is decoupled (as in DSE). Thus, DSE requires only to encode the new query sentence, followed by computing 100K similarity scores using a low-cost similarity function (the query sentence is scored against all sentences in the database). Naively, BERT does not allow such a decoupling, and requires to run all 100K possible query-candidate pairs through the whole network (i.e. pre-computing embeddings for existing sentences in the database does not offer any speed-up in general).

I hope this is clear, and you will be able to reproduce the results.

So in a case where 1m pairs of DIFFERENT sentences want to be tested that DSE and BERT-LARGE would take the same amount of time for sentence embedding extraction?

Also not sure if i agree with you that all 1m pairs must be sent through bert model
since you could extract 1000 sentences' cls embedding and do pairwise similarity there too?
why should all 1m pairs be sent to the bert model?
the comparison itself is quite misleading and you should mention for any other task apart from sentence similarity this speed up is not seen, since you yourself said that the single extraction of one sentence's embedding is not much faster using DSE vs BERT large

just to conclude
one cannot expect DSE to give universal sentence embeddings to be downstreamed on any task any faster than BERT-LARGE
unless it's cross-attention similarity task?

In case of 1M different pairs of sentences, where all sentences are unique (2M sentences total), then DSE does not offer a significant speed-up over the standard BERT-Large. As stated in the paper, the speed up is mainly in the 2 common scenarios mentioned above.

Yes, you can use the standard BERT model and extract sentence embeddings from it by plugging in 1 sentence at a time (we compare to such a method in the downstream tasks section). There are multiple ways to do so --- e.g. taking the CLS representation, or some pooling operation over the token representations. However, BERT itself is pre-trained only with pairs of sentences, and we've observed this to be sub-optimal. We offer one way of alleviating this issue by using knowledge distillation to train BERT in a manner that better suits the creation of sentence embeddings for single sentences.

Yes, the purpose of DSE is to allow significant speed-up with a relatively small degradation in performance for tasks that require scoring pairs of sentences, where some sentences appear multiple times. Thus, simply for creating sentence representations it does not offer a significant speed-up. Yet, as shown in the paper, the quality of embeddings (according to several benchmarks) still improves over vanilla BERT.


performance of baselines in mimic-iii

Hello, I appreciate the effort put into this work. However, upon executing the baseline code (for instance, gamenet), I've observed a significant deviation in performance compared to your reported figures. Notably, the PRAUC achieved is only 0.72, markedly lower than the expected 0.76 as per your report. This result is consistent with the PRAUC of approximately 0.72 also reported in Pyhealth. Despite thorough examination, I haven't identified any discernible differences between the two codebases.

@Data-Designer Hi, thanks for your interest in this work! The leaderboard of PyHealth was also reported and maintained by me.
The performance difference might be due to the different task definitions (e.g., drug_recommendation_mimic3_fn in pyhealth.tasks) we used.
I will show the local modification on this later.

Hi, I found that I have already incorporate the task definition in the repo (in graphcare_/task_fn.py). Please also run ehr_models.py instead of baselines.py to reproduce the baseline results. Thank you!
We will sort the repo and release a more neat codebase in the future.
The following is a piece of running result I just obtained for GAMENet on MIMIC-III:

Please feel free to let me know if you have other questions.

Many thanks!
| |
赵闯
|
|
@.***
|
---- Replied Message ----
| From | Patrick @.> |
| Date | 01/18/2024 15:23 |
| To | @.> |
| Cc | Zhao @.> ,
@.> |
| Subject | Re: [pat-jj/GraphCare] performance of baselines in mimic-iii (Issue #2) |
Hi, I found that I have already incorporate the task definition in the repo (in graphcare_/task_fn.py). Please also run ehr_models.py instead of baselines.py to reproduce the baseline results. Thank you!
We will sort the repo and release a more neat codebase in the future.
The following is a piece of running result I just obtained for GAMENet on MIMIC-III:
image.png (view on web)
image.png (view on web)
Please feel free to let me know if you have other questions.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>


Email links allow for multiple cancellations of ride request

When a rider clicks the "Cancel this ride request" link in the email notification, they receive email/email and SMS notifications.
When the click the link again, they receive the same notifications. This goes on and on. It is unclear whether the request has actually been canceled or not.

I can reject Cancel requests in case the status is already Cancel or Expired
But not today, not if you have a demo soon
I'm too jetlagged to trust what I write today
On Mon, Jun 5, 2017 at 9:46 AM, Sasjkia Otto<EMAIL_ADDRESS>wrote:

When a rider clicks the "Cancel this ride request" link in the email
notification, they receive email/email and SMS notifications.
When the click the link again, they receive the same notifications. This
goes on and on. It is unclear whether the request has actually been
canceled or not.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/voteamerica/backend/issues/161, or mute the thread
https://github.com/notifications/unsubscribe-auth/ALXSaP8IkBgcshmYWaGSeVvWKalg02N1ks5sA13bgaJpZM4NvkGY
.

@sasjkia I've tested this and the email seems clear now that the request has been cancelled. There are multiple emails but this doesn't seem unreasonable.
I'm closing this. However, as the test system doesn't seem to be sending emails, I'm presuming this behaviour is occurring based on the db entries. If that is incorrect, or you feel that multiple emails are unhelpful, please re-open or open a new issue


Enhancement #122 test suite

This rather large pull request serves the following purposes:

Pull in the Bonnie test suite
a. Fix any issues with operators
b. Document and report any discrepancies
Begin implementing a portable test suite
DateTime/Time migration from Joda Time to Java 8 Time

For item 1, there are some missing tests:

The Bonnie tests that check for valid Quantity units are commented out (will include once 1.3 is released)
Tests that require retrieval of resources or terminology have not been included
Tests with invalid results due to non-conformance to the CQL specification v1.2.1 have been commented out and will be raised as an issue in the Bonnie repo

For item 2, I decided to scrap the work done by Darren Duncan, which used an XML suite much like the FHIRPath tests. I did away with that work because I really dislike the amount of work it requires from implementers to run it and because it takes far too long to execute (~8 mins). I decided to go with a set of pure CQL libraries that use the Message operator (and several conversion functions) to report whether the test passed or failed. I think this greatly improves the usability of the tests as the implementer merely needs to translate and execute the expressions with basic boilerplate code and the execution time is <1 min.
For item 3, there were so many issues with the DateTime and Time logic that a large refactoring was in store. I decided to migrate to Java 8 Time as part of this refactoring to satisfy another issue (#121). Joda Time recommends this migration and the logic was greatly simplified.

Please don't delete my XML-based portable test suite, rather just add your new one in parallel.
Purely by coincidence, today being a long weekend where I live, I was planning to continue my work on the XML test suite today, which was incomplete, and then that was going to be a priority of mine.
I had already premeditated several improvements to the test suite.
This was starting with a simple change to fix the performance issues you mentioned.  In a nutshell, the overhead of parsing the CQL for each test fully isolated was the problem; so I was going to parse all the tests together at once, with a single Translator call (actually 2), which would make it take almost zero time.
Another change was making it possible to reliably test in a portable way CQL semantics in the generic suite that previously were only possible in the legacy Java, such as testing that uncertainty results are exactly as expected.
I will also be making any improvements for compatibility as the CQL spec and CQL Engine implementation has changed.
You said: "For item 2, I decided to scrap the work done by Darren Duncan, which used an XML suite much like the FHIRPath tests. I did away with that work because I really dislike the amount of work it requires from implementers to run it and because it takes far too long to execute (~8 mins). I decided to go with a set of pure CQL libraries that use the Message operator (and several conversion functions) to report whether the test passed or failed. I think this greatly improves the usability of the tests as the implementer merely needs to translate and execute the expressions with basic boilerplate code and the execution time is <1 min."
With regards to that, pure CQL libraries is exactly how I implemented the portable test suite the first time, and this approach was rejected, saying that the XML-based approach like the FHIRPath tests was the correct way forward, and so I did it that way on my second version and I agree that was a superior approach.  At least considering that at the time CQL itself was not sufficiently computationally complete to properly test corner cases.
Please explain why you think the XML-based approach I used requires too much work from implementers to run it.  Depending on the reasoning, I may be able to fix it easily while I'm making the other improvements.
Regardless of whether your testing solution is actually superior, please leave the XML one alone in the source tree so it is available for now as a parallel option.
This pull request should not be approved until it has been modified to only add the new tests without removing the old ones.
Thank you.

On a further note, running the entire portable XML test suite, for the engine proper and not including the FHIRpath tests, took 2m25s, as of its committed state on 2018 March 12, on my machine, which is an iMac dating from 2013.  After my performance fix this should be reduced almost to zero.  If its taking 8 minutes for you, then either you're including the FHIRpath tests, not part of the portable suite, or your hardware is much slower than mine, or the translator/engine itself became a lot slower.  I will re-test the latest shortly.

@duncand I'd be happy to review a simplified approach to your first attempt at the XML test suite. Feel free to add a PR and request my review. We appreciate your contributions to this project and don't want to discourage future collaboration. Thank you.

@c-schuler So let me ask you both this:  One constraint I was under originally when developing the XML test suite for CQL-Engine was to keep the input file format exactly the same as the FHIR one it was based on, as well to a lesser extent to keep the output format the same.  Also my pre-meditated further enhancements would have maintained that constraint but otherwise had a goal of being able to completely handle the legacy Java+CQL suite's features.  However, if that constraint no longer exists and I can evolve it to simply be a good portable test suite, I will be able to achieve something that is both simpler and more powerful.  So do you feel that matching the FHIR format is no longer necessary and I can be better?


findroot bisect solver should dynamically set maxsteps

The default maxsteps for the bisect solver is not high enough to find roots for higher precision. Consider the following:
In [37]: import mpmath as mp

In [38]: mp.mp.dps = 15

In [39]: mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect')
Out[39]: mpf('0.73908513321516064')

Works fine, but
In [40]: mp.mp.dps = 100

In [41]: mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-41-3f13b0529a9a> in <module>()
----> 1 mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect')

/Users/aaronmeurer/anaconda3/lib/python3.5/site-packages/mpmath/calculus/optimization.py in findroot(ctx, f, x0, solver, tol, verbose, verify, **kwargs)
    973                              '(%g > %g)\n'
    974                              'Try another starting point or tweak arguments.'
--> 975                              % (norm(f(*xl))**2, tol))
    976         return x
    977     finally:

ValueError: Could not find root within given tolerance. (1.00455e-63 > 1.39525e-104)
Try another starting point or tweak arguments.

With a little bisection, I find that the maxsteps needs to be at least 172 for 100 digits of precision:

In [42]: mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect', maxsteps=171)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-42-196333f2d7bd> in <module>()
----> 1 mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect', maxsteps=171)

/Users/aaronmeurer/anaconda3/lib/python3.5/site-packages/mpmath/calculus/optimization.py in findroot(ctx, f, x0, solver, tol, verbose, verify, **kwargs)
    973                              '(%g > %g)\n'
    974                              'Try another starting point or tweak arguments.'
--> 975                              % (norm(f(*xl))**2, tol))
    976         return x
    977     finally:

ValueError: Could not find root within given tolerance. (5.31455e-104 > 1.39525e-104)
Try another starting point or tweak arguments.

In [43]: mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect', maxsteps=172)
Out[43]: mpf('0.7390851332151606416553120876738734040134117589007575191876080010538405475879238025538562218703542515087')

For 200 digits I need 337 steps
In [44]: mp.mp.dps = 200

In [45]: mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect', maxsteps=336)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-45-0e1552ec2280> in <module>()
----> 1 mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect', maxsteps=336)

/Users/aaronmeurer/anaconda3/lib/python3.5/site-packages/mpmath/calculus/optimization.py in findroot(ctx, f, x0, solver, tol, verbose, verify, **kwargs)
    973                              '(%g > %g)\n'
    974                              'Try another starting point or tweak arguments.'
--> 975                              % (norm(f(*xl))**2, tol))
    976         return x
    977     finally:

ValueError: Could not find root within given tolerance. (3.91903e-204 > 1.59475e-204)
Try another starting point or tweak arguments.

In [46]: mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect', maxsteps=337)
Out[46]: mpf('0.73908513321516064165531208767387340401341175890075746496568063577328465488354759459937610693176653184919819275735830418435568063419760355316796482170968483234993805142330598738012953875703419358306567112')

And 504 for 300 digits:
In [62]: mp.mp.dps = 300

In [63]: mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect', maxsteps=503)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-63-2f854689d955> in <module>()
----> 1 mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect', maxsteps=503)

/Users/aaronmeurer/anaconda3/lib/python3.5/site-packages/mpmath/calculus/optimization.py in findroot(ctx, f, x0, solver, tol, verbose, verify, **kwargs)
    973                              '(%g > %g)\n'
    974                              'Try another starting point or tweak arguments.'
--> 975                              % (norm(f(*xl))**2, tol))
    976         return x
    977     finally:

ValueError: Could not find root within given tolerance. (2.30543e-304 > 1.82278e-304)
Try another starting point or tweak arguments.

In [64]: mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect', maxsteps=504)
Out[64]: mpf('0.73908513321516064165531208767387340401341175890075746496568063577328465488354759459937610693176653184980124664398716302771490369130842031578044057462077916282162797578542473636933798179130401805184490463795874555827715563044280142803837427540806357309007481391227727881966551733721964594436217179273782')

It appears to be a roughly linear relationship (bisection should converge exponentially, so this makes sense).

maxsteps=1.7*dps seems to do the trick (maybe it can be a bit tighter; I'm guessing the theoretical value is somewhere around log2(10)/2*dps).
Related issue (maybe also related to https://github.com/fredrik-johansson/mpmath/issues/338), the error message here:
In [100]: mpmath.mp.dps = 1000

In [101]: mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect', maxsteps=int(1.6*1000))
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-101-f7d2e2402e0a> in <module>()
----> 1 mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect', maxsteps=int(1.6*1000))

/Users/aaronmeurer/anaconda3/lib/python3.5/site-packages/mpmath/calculus/optimization.py in findroot(ctx, f, x0, solver, tol, verbose, verify, **kwargs)
    973                              '(%g > %g)\n'
    974                              'Try another starting point or tweak arguments.'
--> 975                              % (norm(f(*xl))**2, tol))
    976         return x
    977     finally:

ValueError: Could not find root within given tolerance. (0 > 0)
Try another starting point or tweak arguments.

In [102]: mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='bisect', maxsteps=int(1.7*1000))
Out[102]: mpf('0.7390851332151606416553120876738734040134117589007574649656806357732846548835475945993761069317665318498012466439871630277149036913084203157804405746207786885249038915392894388450952348013356312767722315809563537765724512043734199364335125384097800343406467004794021434780802718018837711361382042066316335037277991696731223230061388658203621770810997897062684240588094898683261860600485898958548725736764015075227608180391459518101628159120096461646067544051326415171064466281109360825848783713839555561751414947236484445905951725761941148124675640177779314940116256134645924226342365252988830797652100338640082594708891018634196239732723884319303214358459663243138212618441901510120562257664282369345426395275701837074195755827548189527226772711639712666269485383630038160237483500476900830750278028872088259473095780628227615380400702052684894648023683076752844039751753554952926602731285027770932877599438100266338506241996659896926245284831688941621543668733559784374419780341206614185258016707072152')

says (0 > 0).

The 0 > 0 is because the error message uses "%g". That's the only place in the code that uses that. Is there a better alternative?

Related issue #285

The 0 > 0 is because the error message uses "%g". That's the only place in the code that uses that. Is there a better alternative?

@asmeurer, this seems to be fixed by #341 and is present in 1.3.0.

It appears to be a roughly linear relationship (bisection should converge exponentially, so this makes sense).

There a other solvers.
bisection shouldn't converge exponentially, rather the newton method.

BTW, 'anderson' solver works fine on your examples:
>>> mp.dps = 100
>>> mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='anderson')
mpf('0.7390851332151606416553120876738734040134117589007574649656806357732846548835475945993761069317665318498')
>>> mp.dps = 200
>>> mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='anderson')
mpf('0.73908513321516064165531208767387340401341175890075746496568063577328465488354759459937610693176653184980124664398716302771490369130842031578044057462077868852490389153928943884509523480133563127677223158')
>>> mp.dps = 300
>>> mpmath.findroot(lambda x: mp.cos(x) - x, [0, 1], solver='anderson')
mpf('0.739085133215160641655312087673873404013411758900757464965680635773284654883547594599376106931766531849801246643987163027714903691308420315780440574620778688524903891539289438845095234801335631276772231580956353776572451204373419936433512538409780034340646700479402143478080271801883771136138204206631634')

So, I'm not sure if should make API more complex (i.e. set maxsteps=None and then change it dynamically for some solvers.  I think there are better alternatives.  bisect is toooo slow, anyway.

The fact that there are other solvers is irrelevant to this issue. Of course other solvers work for my toy example. In general, bisection may be more appropriate for some types of equations than other solvers as it has nice properties that other solvers do not.

bisection shouldn't converge exponentially

Not sure why you think that. The convergence rate is trivial to compute https://en.wikipedia.org/wiki/Bisection_method#Analysis.

So, I'm not sure if should make API more complex (i.e. set maxsteps=None and then change it dynamically for some solvers. I think there are better alternatives. bisect is too slow, anyway.

mpmath should automatically do the right thing when the precision is set higher than the default.

Not sure why you think that.

I was thinking of https://en.wikipedia.org/wiki/Rate_of_convergence

maxsteps=1.7dps seems to do the trick (maybe it can be a bit tighter; I'm guessing the theoretical value is somewhere around log2(10)/2dps=1.66*dps).

Keep in mind, it will depend on the interval (it's not scaled to [0,1] in the Bisect solver).
I think the correct theoretical value (but only for default norm function) is something like: ceil(log2(|b-a|/(tol*max(1, max(|x| in [a, b])))).

mpmath should automatically do the right thing when the precision is set higher than the default.

Yep, probably you are right in this case.  Solvers have different values for maxsteps properties (now class-wide), maxsteps value could be overridden from kwargs.  So, you could just add a dynamic property instead.  No API break, PR welcomed.


feat: add shield:model command for make custom UserModel

This command helps to create custom user model.

php spark shield:model MyCustomUser
php spark shield:model MyCustomUser --force
php spark shield:model MyCustomUser --suffix
php spark shield:model MyCustomUser --namespace CodeIgniter\Shield

output
<?php

declare(strict_types=1);

namespace App\Models;

use CodeIgniter\Shield\Models\UserModel;

class MyCustomUser extends UserModel
{
    protected function initialize(): void
    {
        // Merge properties with parent
        $this->allowedFields = array_merge($this->allowedFields, [
            // Add here your custom fields
            // 'first_name',

        ]);
    }
}

see: #https://github.com/codeigniter4/shield/pull/489#issuecomment-1296417150

The name php spark shield:make doesn't seem right,
php spark shield:make name are received as class names, do you have any ideas?
Where to add documents? Do we need a new CLI file?

php spark shield:model?

php spark shield:model?

I think this is reasonable and good. do you all agree?

@datamweb @paulbalandan Where does this PR stand? Other than resolving the conflicts is there anything left?

I'm not sure with @datamweb on the status.

Other than resolving the conflicts is there anything left?

Change this to a $this->assertFileExist test. Deleting the file will be made in tearDown.
There is a small problem in the test. I will try to deal with this PR after the 2022-12-17.

It will be great if someone takes over before me.

Closing this one since another is in its place.