Data package restructure

With the introduction of sub-packs included in the base game, there are several classes for the 1.20 datapack and several for the vanilla datapack which would benefit from being renamed and put into packages to make this clearer.
Classes which are only used for the vanilla datapack have been put into a vanilla subpackage, and ones for the 1.20 datapack have been put into a onetwenty subpackage.
Furthermore, classes which are only used for the vanilla datapack have been prefixed with Vanilla.
The above changes should not be considered impactful as these classes are strictly for generating the vanilla and 1.20 datapacks and are incredibly unlikely to be referenced by modders.
However, tag providers which were named with an Abstract prefix have had this removed. This makes them match with other providers. This is a somewhat impactful refactor.
All of these changes make the data package clearer as to what is to be used and extended by mods (things not in the vanilla or onetwenty packages) and what is used by each of the built-in datapacks.

However, tag providers which were named with an Abstract prefix have had this removed. This makes them match with other providers. This is a somewhat impactful refactor.

This shouldnt be too bad either, as most people will be using FabricTagProvider from API.

Gonna merge this, as modmuss said even the 'impactful' stuff isn't likely to actually be all that impactful.


communicating jupyter frontend with kernel

we recently introduced a plotting feature that allows creating histograms and boxplots for large datasets by pushing the data aggregation step to the SQL engine and only passing the aggregated data to the frontend.
however, the plots are static: the commands return an image with no interactivity. This issue discusses how we can add interactivity by connecting the frontend (the Jupyter UI) with the kernel (the process running the Python process): we want something like this. in the video, user's actions trigger computations in the Python process which then returns values that update the plot in the frontend.
I'm sharing resources I've found; however, this is still a work in progress, so we have to find the best architecture.
communication
Jupyter offers a comms feature to communicate the frontend with the backend.  for an implementation example, see the ipywidgets library
proof-of-concept
as a proof of concept, we should implement a simple end-to-end workflow. I'm thinking we can display a button that whenever pressed, it triggers the execution of a Python function whose value is then displayed in the frontend.
plotting
once we have the proof-of-concept, we can continue with the first interactive plot; sharing some details.
frontend
We can use Vega/Altair for this. Altair is a simplified Python API built on top of Vega. I'm unsure what's the right choice for this. I'm assuming Vega since that's it's the JS implementation that we want to display in the frontend.
we can check out vegafusion, a similar project:
https://github.com/hex-inc/vegafusion
https://medium.com/@jonmmease/announcing-vegafusion-570f62207ba7
backend
the current plotting feature builds SQL features as strings and then executes them in the database; this is a simple solution but it has some limitations because the generated queries might not work in specific databases (see https://github.com/ploomber/jupysql/issues/86). An alternative approach is to rely on sqlalchemy (which we already use for communicating with the db), which has a Python API that allows us to generate valid SQL for the connected db. we can start with hardcoded SQL for a proof-of-concept and then move to sqlalchemy.

found another interesting project: https://github.com/Kanaries/pygwalker
based on the HN discussion, looks like this is computing the data aggregation step in the frontend, although there's a PR to use DuckDB with WASM to scale it up.
the heavy lifting is happening here: https://github.com/Kanaries/graphic-walker

another interesting project: https://github.com/manzt/anywidget


Use the target_directory from cargo metadata for nih_plug_xtask's target directory

The target directory can be overridden in a couple different places. Instead of assuming the target directory is always target, nih_plug_xtask should use use cargo_metadata package (which parses cargo metadata) to obtain the target directory.

Implemented in bb274976ca138289436b0bfa209b2c8c13244225.


Use []string internally for commands

Passing a string is error prone, because we have to parse it in a way that matches bash's behavior (e.g. single quotes are 1 argument). It's a lot simpler and less prone to errors if we do this parsing at the very edge of user input, then use a []string internally, since a []string is a more accurate representation of command arguments (e.g. os.Args is a []string).
We should change the command field on the processes table to a postgres array and store it as such internally, but that requires a migration that uses the shellwords lib, which we don't have good support for right now.

:+1:

Once https://github.com/remind101/empire/pull/787 is merged, I'll cherry pick https://github.com/remind101/empire/commit/f362b39492c9c91685ef3dadb16301ef0cc5ff36 onto this, which changes the processes column to a jsonb type and migrates all of the data to be stored as an array.

@phobologic now that #787 is merged, I added another commit to this that migrates the database to store the command as an array in a jsonb column. Tested this migration with our staging database, which worked as expected.

👍 looks good


Updated disjointConstraintFailure Error() to also display VersionType

What does this do / why do we need it?
If you have a matching version string (say "master" and "master") but they are of different VersionTypes (say "branch" and "revision"), you will get a really confusing error message.
This adds a String() method for version type and uses it to improve disjointConstraintFailure Error() to also show the VersionType so that if you hit the above you will get an actionable error message.
What should your reviewer look out for in this PR?
Are there other places we should also update the error messaging?
Which issue(s) does this PR fix?
Fixes https://github.com/golang/dep/issues/1343

because this PR would need to be rather fundamentally restructured, i'm going to close it so that we can discuss appropriate implementations in #1343, then a new PR can be created once a path forward is agreed upon.


WIP: Remove in-tree max-encoded-len and use the new SCALE codec crate instead

Helps with #9140.
This PR uses the new version (git patch) of parity-scale-codec that's merged with the in-tree max-encoded-len crate. Since we don't plan to use/release this crate, this aims to gauge if using a hypothetical new release of the scale codec crate keeps the build running and tests passing, so that we can safely migrate and remove the max-encoded-len crate from the tree altogether.
It's worth noting that the in-tree version had some explicit impls for primitive hash types that but it's cleaner to implement these directly in the primitive-types crate (see https://github.com/paritytech/substrate/commit/fe797ffbe114487bcd16b99e001096d060d0e135 comment).
If the CI is green and this is accepted by reviews, we will need to release the locally patched crates to crates.io and then switch to them before this PR is merged.
Associated changes:
parity-scale-codec: https://github.com/paritytech/parity-scale-codec/compare/igor-max-encoded-len
primitive-types: https://github.com/paritytech/parity-common/compare/igor-prim-types-new-codec

With https://github.com/paritytech/parity-scale-codec/pull/268/ merged, MaxEncodedLen now exists on master of that repo.

As it turns out, if we want to proceed with using the pre-release, we need to explicitly select it (it's not considered SemVer-compatible), so this also requires paritytech/finality-grandpa#137 and paritytech/trie#136.

I'll fix the merge conflict and update the UI test once https://github.com/paritytech/substrate/pull/9163#issuecomment-866848386 progresses.

https://gitlab.parity.io/parity/substrate/-/jobs/997661#L332
error: failed to select a version for `impl-codec`.
    ... required by package `primitive-types v0.9.0`
    ... which is depended on by `parity-util-mem v0.9.0`
    ... which is depended on by `kvdb v0.9.0`
    ... which is depended on by `kvdb-memorydb v0.9.0`
    ... which is depended on by `kvdb-web v0.9.0`
    ... which is depended on by `substrate-browser-utils v0.9.0 (/builds/parity/substrate/utils/browser)`
    ... which is depended on by `polkadot-cli v0.9.8 (/builds/parity/substrate/polkadot/cli)`
    ... which is depended on by `polkadot v0.9.8 (/builds/parity/substrate/polkadot)`
versions that meet the requirements `=0.5.0` are: 0.5.0
all possible versions conflict with previously selected packages.
  previously selected package `impl-codec v0.5.1`
    ... which is depended on by `sp-core v3.0.0 (/builds/parity/substrate/primitives/core)`
    ... which is depended on by `beefy-gadget v0.1.0 (https://github.com/paritytech/grandpa-bridge-gadget?branch=master#10872bb2)`
    ... which is depended on by `beefy-gadget-rpc v0.1.0 (https://github.com/paritytech/grandpa-bridge-gadget?branch=master#10872bb2)`
    ... which is depended on by `polkadot-rpc v0.9.8 (/builds/parity/substrate/polkadot/rpc)`
    ... which is depended on by `polkadot-service v0.9.8 (/builds/parity/substrate/polkadot/node/service)`
    ... which is depended on by `polkadot-cli v0.9.8 (/builds/parity/substrate/polkadot/cli)`
    ... which is depended on by `polkadot v0.9.8 (/builds/parity/substrate/polkadot)`
failed to select a version for `impl-codec` which could resolve this conflict

That doesn't make any sense, primitive types v0.9.0 has a ^0.5.0 dependency on impl-codec so it should be compatible with our new ^0.5.1 explicitly selected constrain in https://github.com/paritytech/substrate/pull/9163/commits/dec27e26222ebd3cfa814a8dfba939dc705da9cb...
Any ideas?

bot merge


Some helpful tips on using the on Methods [Router flux v4.0.6]

Using Static on Methods with HOCs
This is just a helpful tip for anyone who use the onExit/onEnter methods as a static method in their Component Class. Please refer to this link https://reactjs.org/docs/higher-order-components.html.

If your Scene Components are Wrapped in Custom HOCs/ Decorators, then the static  onExit/onEnter methods will not work as your Custom HOCs will not copy the static methods over to your Enhanced Component.

Use this npm package called hoist-non-react-statics to copy your Component level static methods over to your Enhanced Component.

Implement onBack from your Scene and not while declaring the Scene

If you have a Scene where in you want to make some changes to your Component State when Back button is pressed, then doing this  <Scene key={...} component={...} onBack={()=>/*code*/}/> will not help.

<Scene key={...} component={...} onBack={()=>/*code*/} back={true}/> Make sure back = true is passed to your scene, now in your Component's lifecycle add this

componentDidMount(){
    setTimeout(()=> {
        Actions.refresh({onBack:()=>this.changeSomethingInYourComponent()})
    })
}

setTimeout is added because without setTimeout props of the prev screen get refreshed, may be because it waits for the animation to complete, so better to run it on a fresh queue.(Clarification required)

I want to create the private scene which redirects User to the login page
Can you make an example, please?

In case of animations and refresh props, it's better to use
const params = { onBack: this.onBack, onRight: this.onRight } InteractionManager.runAfterInteractions(() => {     Actions.refresh(params);   });
because

InteractionManager allows long-running work to be scheduled after any interactions/animations have completed

Yes InteracionManager is a better way to do it than setTimeout

@shubhang93 Great tips, thanks! It would be great if you can submit documentation PR

@shubhang93 Great tips, thanks! It would be great if you can submit documentation PR

PR submitted, please go through it.

@mahyar33 did you ever figure out how to do that?


[os-nut] make available the setting FINALDELAY in upsmon.conf

In my opinion this is a important setting to let opnsense wait until all slaves are shut down,
before starting own shutdown process.
This allows connected slaves to save data over network before shutting down.

On heady-duty UPS most of the time the 10% battery warning isn't even enough to let the systems power down, don't you think this is your issue?

Hi,
in my case opnsense is shutting down too fast after battery limit is reached.
network devices are connected on different network segments on different ports of opensense and when opensense
goes down immediately, these network segments cannot communicate with each other anymore and servers can not
write required data to other servers on different segments. these servers take forever to run into timeouts and orderly shutdown.
i tested it putting the option into the file manually with delay of 300 and tested again: this time all
servers where able to write their data within 1 minute and orderly shut down whitout any problems.
after that opensense hardware shut down and everything was in perfekt order. so there might be quite a
few scenarios, where this option is a great help so delay shutdown of master and have slaves shutdown first.

Your setup sounds kind of complex. Have you had a look at upssched and upssched.conf to trigger timebased cascaded shutdowns on the clients side before LB / FSD is reached?
e.g.

Trigger shutdown of "normal" servers after 60s on battery
Trigger shutdown of database / storage servers and/or NAS after 240s on battery
Trigger shutdown of master / UPS at LB / FSD (the plugin for OPNsense does not support upssched so far)

Caveat: If the Power comes back before your master shuts down the UPS, the servers won't come back up automatically! This could be fixed by adding upssched support to the plugin though.


Migrating to 0.3.+ and adding Broker instructions

Hi, what is the ETA for this release? I have checked https://aka.ms/MobileAppReg but it is redirecting to Docs at the moment.
I was just completing my implementation and would like to mive to version 0.3+ before I publish my app

Initial clone and build experience yields red errors that may disorient developers...
After a fresh clone + Open w/ Android Studio:
The value of attribute "android:host" associated with an element type "data" must not contain the '<' character.

Because the Gradle settings fail to sync, the project view displays a list of files, rather than a friendly project structure. The issue is the placeholders in the AndroidManifest.xml: they contain illegal characters.
The host and scheme attributes also seem to be flipped, depending on what we anticipate developers will register in the portal...
In the sample...
<!--Add in your scheme/host from registered redirect URI-->
<data
    android:scheme="msauth"
    android:host="<PACKAGE_NAME>/<SIGNATURE HASH> - must be registered at https://aka.ms/MobileAppReg" />

Whereas our test apps configure this the other way around....
<data
    android:scheme="msal<client_id>"
    android:host="auth" />

Are we expecting that developers will register and configure their broker redirect_uri in the app config/manifest? Or that they can use any arbitrary redirect_uri and we will compute the value only when connecting to the broker?

As for resolving the build-scaryness, I suggest we use placeholders that don't involve illegal characters or ship a working sample config that developers can use out-of-the-box**

** As discussed offline, there are drawbacks to this, such as developers actually shipping these values

For the default config, I think we should avoid portraying common as tenant_id - this property is optional and I think in this cases confuses more than aids
{
  "client_id" : "Register your app at https://aka.ms/MobileAppReg",
  "authorization_user_agent" : "DEFAULT",
  "redirect_uri" : "Register your app at https://aka.ms/MobileAppReg",
  "authorities" : [
    {
      "type": "AAD",
      "audience": {
        "type": "AzureADandPersonalMicrosoftAccount",
        "tenant_id": "common" <-- Not a real tenant!
      }
    }
  ]
}

For the project build.gradle -- we should reorder the repositories. Recently Google/AOSP have move dependencies out of jcenter() and into google(), causing lots of 404s when jcenter() is declared first.
Before:
allprojects {
    repositories {
        jcenter()
        mavenCentral()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
}

After:
allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
}

The buildToolsVersion shipping in this sample is pretty old
Ships: com.android.tools.build:gradle:3.1.4
Latest: com.android.tools.build:gradle:3.4.0

This conditional statement is always true based on the assignment.
https://github.com/Azure-Samples/ms-identity-android-native/blob/d91c72fd6e2d3779d5d78702a3cba3550b9c51a0/app/src/main/java/com/azuresamples/msalandroidapp/MainActivity.java#L58-L59

In the latest tooling versions, these findViewById calls no longer need to be casted, the type can be inferred
https://github.com/Azure-Samples/ms-identity-android-native/blob/d91c72fd6e2d3779d5d78702a3cba3550b9c51a0/app/src/main/java/com/azuresamples/msalandroidapp/MainActivity.java#L42-L43

This array declaration, while valid, is C-style (not Java-style) and generates warnings
https://github.com/Azure-Samples/ms-identity-android-native/blob/d91c72fd6e2d3779d5d78702a3cba3550b9c51a0/app/src/main/java/com/azuresamples/msalandroidapp/MainActivity.java#L25
In Java-style
final static String[] SCOPES = {"https://graph.microsoft.com/User.Read"};

This condition is impossible
https://github.com/Azure-Samples/ms-identity-android-native/blob/d91c72fd6e2d3779d5d78702a3cba3550b9c51a0/app/src/main/java/com/azuresamples/msalandroidapp/MainActivity.java#L73

Could use the Graph SDK here - might be nice nod to some partners ;)
https://github.com/Azure-Samples/ms-identity-android-native/blob/d91c72fd6e2d3779d5d78702a3cba3550b9c51a0/app/src/main/java/com/azuresamples/msalandroidapp/MainActivity.java#L131-L175

Is auth_config.json required? I got my app working without it just fine.

We can omit this throws declaration, as it cannot happen
https://github.com/Azure-Samples/ms-identity-android-native/blob/d91c72fd6e2d3779d5d78702a3cba3550b9c51a0/app/src/main/java/com/azuresamples/msalandroidapp/MainActivity.java#L161

'Canceled' or 'Cancelled'? ;-)
https://github.com/Azure-Samples/ms-identity-android-native/blob/d91c72fd6e2d3779d5d78702a3cba3550b9c51a0/app/src/main/java/com/azuresamples/msalandroidapp/MainActivity.java#L263-L264

This block....
https://github.com/Azure-Samples/ms-identity-android-native/blob/d91c72fd6e2d3779d5d78702a3cba3550b9c51a0/app/src/main/java/com/azuresamples/msalandroidapp/MainActivity.java#L104-L128
I see you've javadoc'd to keep expectations measured - I'm a little wary of the 'sign-out' language

@iambmelt @kreedula thanks for the review. Incoming changes with all the fixes. Brian's first 3 comments have no been applied and need to be discussed offline

@NLLAPPS the configuration is optional today, but we may make it the only option in the future. Do you have any reason you prefer not to use it? The design here is still open to influence and I'd like to hear your feedback.
As for the release + portal link to point to the awesome new experience, I'd expect something in the next 0-2 weeks!

This SDK is part of CloudResources module I use in my few of apps. It was a lot easier to provide config in Java with my custom config provider and have main app(s) provide it to the Cloud module .

I would also like to comment on  https://aka.ms/MobileAppReg url.
It loads https://aad.portal.azure.com which I don't have permission to register new application with my outlook account which I currently use to register my clients. Old Live SDK link apps.dev.microsoft.com allows me to register clients with my outlook account.
I can however use https://portal.azure.com/ with my outlook account.
I am able to use https://aad.portal.azure.com  with my Office 365/Exchange account but then client would be tied to my subscription and would be deleted if I cancel my Office365/Exchange subscription

@NLLAPPS thanks for all the info. Can you elaborate on your Cloud Resource module/
The link is not functional yet, but will be once our updated portal ships. For now, it's just a placeholder. For the issue about registering apps on the Azure portal, I would like to understand more. Can you reach out via email so we can chat offline? My email is in my Github profile. In the meantime, the Azure portal will also allow you to register/manage apps with your Outlook account and does NOT require a subscription for Azure AD app registrations.

Re Cloud Resources:
I have couple of apps that supports few cloud services such as OneDrive, Google Drive etc. I maintain one singe cloud upload module that abstracts different cloud services. It makes applying changes to different SDKs easy.
Re Registration:
I'll email you from m at nllapps.com with screenshots to clarify the issue further


fix: resize profile page layout

Addresses #695.
The layout now utilizes Flexbox to be responsive:

TODOs:

resize the avatars
resize the challenge card
resize the organization card
extract general scss definitions out of user-profile-*.scss to the general scss? For example, I can see us reusing row and col throughout the app

Items 2 and 3 will be addressed in another PR (see comment)

Challenge card and organization card are resized with this PR: #711

@vpchung I just tested it in my screen and the font-sizes and box layout make much sense now 🚀 ! Thanks for making the change. I will further review once this pr is ready.

To correct what I mentioned in the workshop, the "user name" font size should be bigger than the text in the navbar. Though, as @tschaffter said, we should increase the font size in navbar a bit bigger to make the proportion against main content text better - maybe in future PR.

Thanks for checking, @rrchai !
I think the PR is ready; the remaining TODOs will be tackled in separate PRs (so I can ensure this one stays "small" 🥲 )

so I can ensure this one stays "small" 🥲

After review this is definitively not a small PR (15 files changed, ~300 lines added). I could go over it in less than 5 minutes so it's definitively the right size! 🙂

Note
PRs that include HTML/SCSS code should be approved by @rrchai before being merged, or by you if Rong opened the PR. I can provide general feedback but my SCSS expertise is nowhere close to yours.


Remove pass-by-reference of Network in BitcoinAddress types

The BitcoinAddress types all unnecessarily pass Network by reference. This is dangerous, as it means they can change the Network object pointed to by reference.
✅All tests pass except SmartContracts integration tests (failing in master), AddNewAccount_for_xpub_only_wallet_informs_user_to_create_new_wallet_ (failing in master), and CreateExtPubKeyOnlyWallet_creates_wallet_with_extra_flag (failing in master)

Ah @Aprogiena what would you set this PR review policy?

I'm going to run tests on this one 👍

All tests and integration tests pass.


Chrome Dinosaur Game Updated Styling

PR Description 📜
This pull request contains the updated code for the 'Chrome Dinosaur Game' design. This pull request is the result of the following issue:
[Enhancement]: 'Chrome Dinosaur Game' Styling
Fixes #2490

Mark the task you have completed ✅

[x] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.

Add your screenshots(Optional) 📸
Before

After

Thank you soo much for contributing to our repository 💗

Thank you @iamRabia-N ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

@gurjeetsinghvirdee Kindly review this pull request. If any styling changes are required, do let me know.

Thank you  @iamRabia-N , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


resolving types issue

Pull Request
Description
resolving types issue

Related Issue
on importing there was types warning because there were not types definitions in package

Changes Made
added types definitions

Screenshots (if applicable)

Checklist

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

Project coverage is 100.00%. Comparing base (cd457f5) to head (f7bb4ab).

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #184   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines            1         1
  Branches         1         1
=========================================
  Hits             1         1

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


Update configuration-reference.md in SRIOV DPDK config

Taking a look of the example, looks like the code block is referring to an old name of the plugin.
Even in the doc file, in line 8 appears the correct type:

type (string, required): "sriov"

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 51.554%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
680

Relevant Lines:
1319

💛  - Coveralls


ca_roots: bundled_ca_roots cannot be a constant

Fixes https://github.com/JuliaLang/julia/issues/38429

Codecov Report

Merging #4 (1b61623) into master (9b248a8) will decrease coverage by 1.53%.
The diff coverage is 50.00%.

@@             Coverage Diff             @@
##            master       #4      +/-   ##
===========================================
- Coverage   100.00%   98.46%   -1.54%
===========================================
  Files            3        3
  Lines           64       65       +1
===========================================
  Hits            64       64
- Misses           0        1       +1

Impacted Files
Coverage Δ

src/ca_roots.jl
93.75% <50.00%> (-6.25%)
:arrow_down:

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 9b248a8...00627d8. Read the comment docs.


Upgrade fails using helm on 3.1.0 and 3.1.1

Describe the bug
When issuing the helm upgrade command, I get:
init-postgres pgb-pgbouncer.ops:5432 - accepting connections                                                                                │
│ init-postgres Database ready to accept connections.                                                                                │
│ Stream closed EOF for support/chatwoot-migrate-dgd7r (init-postgres)                                                                                │
│ Stream closed EOF for support/chatwoot-migrate-dgd7r (init-redis)                                                                                │
│ db-migrate-job fatal: not a git repository (or any of the parent directories): .git                                                                                │
│ db-migrate-job I, [2023-09-27T12:13:35.132167 chatwoot/chatwoot#1]  INFO -- : Migrating to UpdateReportingEventsFirstResponseTime<PHONE_NUMBER>4408)                                                                                │
│ db-migrate-job ==<PHONE_NUMBER>4408 UpdateReportingEventsFirstResponseTime: migrating ===========                                                                                │
│ db-migrate-job rails aborted!                                                                                │
│ db-migrate-job StandardError: An error has occurred, this and all later migrations canceled:                                                                                │
│ db-migrate-job                                                                                │
│ db-migrate-job PG::SyntaxError: ERROR:  zero-length delimited identifier at or near """"                                                                                │
│ db-migrate-job LINE 1: ... "accounts".* FROM "accounts" ORDER BY "accounts"."" ASC LIM...                                                                                │
│ db-migrate-job                                                              ^                                                                                │
│ db-migrate-job /app/db/migrate/20230302054408_update_reporting_events_first_response_time.rb:3:in `change'                                                                                │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:26:in `block (3 levels) in <main>'                                                                                │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:18:in `each'                                                                                │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:18:in `block (2 levels) in <main>'                                                                                │
│ db-migrate-job                                                                                │
│ db-migrate-job Caused by:                                                                                │
│ db-migrate-job ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR:  zero-length delimited identifier at or near """"                                                                                │
│ db-migrate-job LINE 1: ... "accounts".* FROM "accounts" ORDER BY "accounts"."" ASC LIM...                                                                                │
│ db-migrate-job                                                              ^                                                                                │
│ db-migrate-job /app/db/migrate/20230302054408_update_reporting_events_first_response_time.rb:3:in `change'                                                                                │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:26:in `block (3 levels) in <main>'                                                                                │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:18:in `each'                                                                                │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:18:in `block (2 levels) in <main>'                                                                                │
│ db-migrate-job                                                                                │
│ db-migrate-job Caused by:                                                                                │
│ db-migrate-job PG::SyntaxError: ERROR:  zero-length delimited identifier at or near """"                                                                                │
│ db-migrate-job LINE 1: ... "accounts".* FROM "accounts" ORDER BY "accounts"."" ASC LIM...                                                                                │
│ db-migrate-job                                                              ^                                                                                │
│ db-migrate-job /app/db/migrate/20230302054408_update_reporting_events_first_response_time.rb:3:in `change'                                                                                │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:26:in `block (3 levels) in <main>'                                                                                │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:18:in `each'                                                                                │
│ db-migrate-job /app/lib/tasks/db_enhancements.rake:18:in `block (2 levels) in <main>'                                                                                │
│ db-migrate-job Tasks: TOP => db:migrate                                                                                │
│ db-migrate-job (See full trace by running task with --trace)

To Reproduce

try to upgrade to 3.1.0
use helm upgrade
get logs of migration jobs

Expected behavior
No response
Environment
Kubernetes
Cloud Provider
Other [please specify in the description]
Platform
None
Operating system
No response
Browser and version
No response
Docker (if applicable)

k8s 1.28.0

Additional context
No response

I think this happened at some point on migrating the DB from one server to another by using pg dump/restore
Somehow, still not clear to me as only happened to chatwoot, some tables lost its primarykey configuration and the sequences were resented
I will close this issue as I cannot ensure it was something in chatwoot side.


Translations are required, although the required option is not set

Using the following code to show an input field. Note, there is no required option attached to the TextInput.
TranslatableContainer::make(
Forms\Components\TextInput::make('description_short')
)
Expectation: neither the value for the main locale nor the other locales are necessary to enter, as ->required() is not given for the TextInput component.
Issue: I cannot save the form, as the form expects the value for the main locale to be entered. I have to add ->onlyMainLocaleRequired() to the TranslatableContainer to be able to save the form when all values for this input are empty.
Expectation: when there is no ->required() option set for the input component, it shall not be necessary to add ->onlyMainLocaleRequired() option to the container to successfully pass validation.

Hey @OliverTe ,
thx for reporting! I released a new version where this is fixed.
Regards
Marcus


Improve API endpoints for Risk Acceptances

Improve API endpoints for Risk Acceptances
[sc-3340]
Description
This feature allows the user create a risk acceptance via API and allows indicate multiple findings.
Test results

I believe we need to add some validation to ensure RBAC is respected when adding Findings to a Risk Acceptance object through the API.
For example, if Finding A (with an ID of 1) existed in DefectDojo, but I did not have access to Finding A, I should not be able to add it to a Risk Acceptance through the API.

I believe we need to add some validation to ensure RBAC is respected when adding Findings to a Risk Acceptance object through the API.
For example, if Finding A (with an ID of 1) existed in DefectDojo, but I did not have access to Finding A, I should not be able to add it to a Risk Acceptance through the API.

@blakeaowens  It will be on next commit

I wanted to do the same in #8694 but didn't have enough time to finish it.
Can you also remove 'risk_acceptance' from unittests/test_apiv2_methods.py? It will be useless there after your change. https://github.com/DefectDojo/django-DefectDojo/pull/8694/files#diff-945579b7c6e1756ac20ac4c60e066118404fe5416965dff77ae97a9f4e62e0d1R20

Can I ask for this, please?

87cfcb7
https://github.com/DefectDojo/django-DefectDojo/pull/9415#issuecomment-1935017133
@kiblik
Done!

87cfcb7
https://github.com/DefectDojo/django-DefectDojo/pull/9415#issuecomment-1935017133
@kiblik
Done!

Thank you


Touch event 'passes through' to the next page when using turbolinks transition cache

I'm using Turbolinks 3.0 on iOS with Fastclick to remove the 300ms iOS delay, with the transition cache enabled. This provides a really great/instant experience with Rails on mobile devices
I have a link on both pages in the same place, and when I press the link on one page, fastclick+turbolinks loads the next page instantly - but the event passes through to the next page and the link on that page gets clicked too, triggering both links and navigating pages twice.
The event will actually pass through to anything thats in the same place (if I click a link and a form input is on the same place on the next page loaded, it will focus on the input).
I can actually do a 'faster tap' with my finger to prevent it from happening. Its only when the tap is more sluggish (it lasts longer) that it happens.
Any help or insight would be greatly appreciated!

No longer an issue with turbolinks 5. And really kind of a turbolinks issue.


Refactor binary data projection

Previously, we include data_binary in the projection which causes invalid request. The error is reported by the query analyzer becuase every projection field must be a valid field defined in the schema.
However, the dataBinary is indeed a special field in the write entity, so it should equivalently be treated specifically from query side.
This PR intends to refine the query protocol with an additional bool data_binary field. After this PR is merged, I will sync this protocol for java client.

@lujiajing1126 pls fix ci failures

@lujiajing1126 pls fix ci failures

Fixed


Fix KeyAuthValidator's example

fix KeyAuthValidator's example

The function signature is correct in in recent versions of echo matching the documentation:
KeyAuthValidator func(string, echo.Context) (bool, error)
Closing.


Move items to hand

It would look nice, if when you want to build something that the TAS moves that item before hand.

Moves the item into the hand as seen by the images. I can see why my description could be hard to read, i hope this is clearer

I see - yeah that would be a nice "cherry on top" kind of thing to have.

local a = player.character.get_main_inventory()
local b = a.find_item_stack(item)
player.cursor_stack.set_stack(b)

It looks weird when the cursor isn't near the target

Ohh yeah, I guess the cursor is just some random place - that might not give the effect we want. :(

It might be more simple to blueprint entities you want to place, and mark for deconstruct entities you want to mine. Which might give most of the same effect.


NGLI Optimizations (GL): add buffer map/unmap/download, add swapchain module

The commits "style: fix indentation issues", "buffer: add download" and "buffer: bind before map/unmap", should be fixed up in the relevant previous commits.

Thanks, and I should probably update the warning message too …
From: cboesch-gpsw<EMAIL_ADDRESS>Sent: Friday, September 18, 2020 2:58 PM
To: gopro/gopro-lib-node.gl<EMAIL_ADDRESS>Cc: Jeffrey Moguillansky<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [gopro/gopro-lib-node.gl] NGLI Optimizations (GL): add buffer map/unmap/download, add swapchain module (#75)
@cboesch-gpsw commented on this pull request.

In libnodegl/buffer_gl.chttps://github.com/gopro/gopro-lib-node.gl/pull/75#discussion_r491211100:

if (ret < 0)

   return ret;

memcpy(data, src, size);

ngli_buffer_gl_unmap(s);

return 0;

+}

+int ngli_buffer_gl_map(struct buffer s, int size, uint32_t offset, void* data)
+{

struct gctx_gl *gctx_gl = (struct gctx_gl *)s->gctx;

struct glcontext *gl = gctx_gl->glcontext;

struct buffer_gl *s_priv = (struct buffer_gl *)s;

if (!(gl->features & NGLI_FEATURE_MAP_BUFFER)) {

   LOG(WARNING, "context does support glMapBufferRange");

   return NGL_ERROR_GENERIC;

NGL_ERROR_UNSUPPORTED?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/gopro/gopro-lib-node.gl/pull/75#pullrequestreview-491805640, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AO3BUEYLILXWWQSAOXPYPWDSGPJWBANCNFSM4RC4AFPA.

Thanks, I’ll follow this approach and test it
From: cboesch-gpsw<EMAIL_ADDRESS>Sent: Friday, September 18, 2020 2:48 PM
To: gopro/gopro-lib-node.gl<EMAIL_ADDRESS>Cc: Jeffrey Moguillansky<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [gopro/gopro-lib-node.gl] NGLI Optimizations (GL): add buffer map/unmap/download, add swapchain module (#75)
@cboesch-gpsw commented on this pull request.

In ngl-tools/Makefilehttps://github.com/gopro/gopro-lib-node.gl/pull/75#discussion_r491205649:

-TOOLS_CFLAGS := $(shell $(PKG_CONFIG) --cflags libnodegl)

+TOOLS_CFLAGS := $(shell $(PKG_CONFIG) --cflags libnodegl) -fPIC
Perhaps this flag was already set in your environment indirectly via pkg-config and a third-party lib
No, the reason you need to add -fPIC is because of a bug in Debian/Ubuntu packaging and Python. You can see it because the only 2 binaries it's unable to link are the 2 that depend on Python. You can find an extensive explanation of this issue in .github/workflows/ci_linux.yml:

This -fPIE is a workaround for the following link issue:
relocation R_X86_64_32 against `.rodata.str1.8' can not be used
when making a PIE object; recompile with -fPIE

To summarize the issue:

- On Python side, python3-config is a script generated from a
template using a global CFLAGS. But at the same time, the script
uses LIBS and SYSLIBS to construct the LDFLAGS (and not LDFLAGS for
some moronic reason).
- On Debian/Ubuntu side, they decided to have the following injected:
CFLAGS="-specs=/usr/share/dpkg/no-pie-compile.specs"
LDFLAGS="-specs=/usr/share/dpkg/no-pie-link.specs"
And unfortunately, the former can not go without the latter
(otherwise there is a link error).

As a result, python3-config --cflags will return the -specs=...
flags, but python3-config --ldflags will not return the
complementary -specs=....

export CFLAGS=-fPIE
I opened an issue a few months ago on Debian bug tracker: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959945. Needless to say, they don't give a damn so far, but feel free to insist.
but regardless of third-party libs: we need to ensure that the right compile flags are enabled in our code.
This is incorrect as well: while -fPIC makes sense for shared libraries, is not very meaningful for end binaries. It could be used for some security reasons, but this is merely a distribution choice, not something the project has to decide for the user.
So what I suggest instead if you really want to workaround the bugs of Debian/Ubuntu/Python, is to make an exception for this configuration only. For example, like this:
diff --git a/.github/workflows/ci_linux.yml b/.github/workflows/ci_linux.yml
index 3e03e7c4..bfca20fc 100644
--- a/.github/workflows/ci_linux.yml
+++ b/.github/workflows/ci_linux.yml
@@ -30,28 +30,6 @@ jobs:
 - name: Build

   run: |

   #

   # This -fPIE is a workaround for the following link issue:

   #     relocation R_X86_64_32 against `.rodata.str1.8' can not be used

   #     when making a PIE object; recompile with -fPIE

   #

   # To summarize the issue:

   #

   # - On Python side, `python3-config` is a script generated from a

   #   template using a global CFLAGS. But at the same time, the script

   #   uses LIBS and SYSLIBS to construct the LDFLAGS (and not LDFLAGS for

   #   some moronic reason).

   # - On Debian/Ubuntu side, they decided to have the following injected:

   #   CFLAGS="-specs=/usr/share/dpkg/no-pie-compile.specs"

   #   LDFLAGS="-specs=/usr/share/dpkg/no-pie-link.specs"

   #   And unfortunately, the former can not go without the latter

   #   (otherwise there is a link error).

   #

   # As a result, `python3-config --cflags` will return the `-specs=...`

   # flags, but `python3-config --ldflags` will not return the

   # complementary `-specs=...`.

   #

   export CFLAGS=-fPIE

   make -j$(($(nproc)+1))

name: Run tests with GL backend
run: |

diff --git a/ngl-tools/Makefile b/ngl-tools/Makefile
index 44784858..b7ad0650 100644
--- a/ngl-tools/Makefile
+++ b/ngl-tools/Makefile
@@ -74,6 +74,32 @@ PYTHON_LDLIBS_EMBED-yes = $(shell python$(PYTHON_MAJOR)-config --ldflags --embed
PYTHON_HAS_EMBED := $(shell python$(PYTHON_MAJOR)-config --embed >/dev/null && echo yes || echo no)
PYTHON_LDLIBS := $(PYTHON_LDLIBS_EMBED-$(PYTHON_HAS_EMBED))
TOOLS += python serialize

+#
+# This -fPIE is a workaround for the following link issue:
+#     relocation R_X86_64_32 against `.rodata.str1.8' can not be used
+#     when making a PIE object; recompile with -fPIE
+#
+# To summarize the issue:
+#
+# - On Python side, python3-config is a script generated from a
+#   template using a global CFLAGS. But at the same time, the script
+#   uses LIBS and SYSLIBS to construct the LDFLAGS (and not LDFLAGS for
+#   some moronic reason).
+# - On Debian/Ubuntu side, they decided to have the following injected:
+#   CFLAGS="-specs=/usr/share/dpkg/no-pie-compile.specs"
+#   LDFLAGS="-specs=/usr/share/dpkg/no-pie-link.specs"
+#   And unfortunately, the former can not go without the latter
+#   (otherwise there is a link error).
+#
+# As a result, python3-config --cflags will return the -specs=...
+# flags, but python3-config --ldflags will not return the
+# complementary -specs=....
+#
+DISTRIB_ID := $(shell lsb_release -si 2>/dev/null)
+ifeq ($(DISTRIB_ID),$(filter $(DISTRIB_ID),Ubuntu Debian))
+PYTHON_CFLAGS += -fPIE
+endif
endif
TOOLS_BINS = $(addprefix ngl-, $(addsuffix $(EXESUF), $(TOOLS)))
This is untested, but you get the idea. Also, It's also important to limit this to Python objects, it's not required for the other executables.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/gopro/gopro-lib-node.gl/pull/75#pullrequestreview-491802363, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AO3BUE2H64XED5EJB6OJU3TSGPIS3ANCNFSM4RC4AFPA.

Thanks, good catch
From: cboesch-gpsw<EMAIL_ADDRESS>Sent: Friday, September 18, 2020 2:51 PM
To: gopro/gopro-lib-node.gl<EMAIL_ADDRESS>Cc: Jeffrey Moguillansky<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [gopro/gopro-lib-node.gl] NGLI Optimizations (GL): add buffer map/unmap/download, add swapchain module (#75)
@cboesch-gpsw commented on this pull request.

In libnodegl/features.hhttps://github.com/gopro/gopro-lib-node.gl/pull/75#discussion_r491206711:

@@ -53,6 +53,7 @@

#define NGLI_FEATURE_SOFTWARE                     (1 << 28)
#define NGLI_FEATURE_UINT_UNIFORMS                (1 << 29)
#define NGLI_FEATURE_EGL_ANDROID_GET_IMAGE_NATIVE_CLIENT_BUFFER (1 << 30)
+#define NGLI_FEATURE_MAP_BUFFER                   (1 << 31)
This is undefined because it's a signed shift in which you reach the MSB. You need to do something like 1U << 31.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/gopro/gopro-lib-node.gl/pull/75#pullrequestreview-491803033, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AO3BUEZFWL77QNXR24ZY6J3SGPI23ANCNFSM4RC4AFPA.

We’re returning a void*.  So we can either use void* as a return value, or as a parameter: but in this case we need to pass by address (e.g. void**)?
From: cboesch-gpsw<EMAIL_ADDRESS>Sent: Friday, September 18, 2020 2:56 PM
To: gopro/gopro-lib-node.gl<EMAIL_ADDRESS>Cc: Jeffrey Moguillansky<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [gopro/gopro-lib-node.gl] NGLI Optimizations (GL): add buffer map/unmap/download, add swapchain module (#75)
@cboesch-gpsw commented on this pull request.

In libnodegl/buffer.chttps://github.com/gopro/gopro-lib-node.gl/pull/75#discussion_r491209937:

@@ -39,6 +39,21 @@ int ngli_buffer_upload(struct buffer *s, const void *data, int size)

 return s->gctx->class->buffer_upload(s, data, size);

}
+int ngli_buffer_download(struct buffer* s, void* data, uint32_t size, uint32_t offset)
+{

return s->gctx->class->buffer_download(s, data, size, offset);

+}

+int ngli_buffer_map(struct buffer s, int size, uint32_t offset, void* data)
void ** doesn't make much sense and may lead to aliasing issue; you want void *.
Also style point: beware in C the convention is to stick the * to the variable name (you have this issue in various places). While semantically weird, the reason is because declaring multiple pointers looks like type *foo, *bar, where sticking the * to the type would be confusing and prone to error.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/gopro/gopro-lib-node.gl/pull/75#pullrequestreview-491804976, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AO3BUE53JURVQN3CSBCUG2DSGPJOTANCNFSM4RC4AFPA.

Thanks, agreed
From: cboesch-gpsw<EMAIL_ADDRESS>Sent: Friday, September 18, 2020 2:59 PM
To: gopro/gopro-lib-node.gl<EMAIL_ADDRESS>Cc: Jeffrey Moguillansky<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [gopro/gopro-lib-node.gl] NGLI Optimizations (GL): add buffer map/unmap/download, add swapchain module (#75)
@cboesch-gpsw commented on this pull request.

In libnodegl/buffer_gl.chttps://github.com/gopro/gopro-lib-node.gl/pull/75#discussion_r491211927:

return 0;

+}

+int ngli_buffer_gl_map(struct buffer s, int size, uint32_t offset, void* data)
+{

struct gctx_gl *gctx_gl = (struct gctx_gl *)s->gctx;

struct glcontext *gl = gctx_gl->glcontext;

struct buffer_gl *s_priv = (struct buffer_gl *)s;

if (!(gl->features & NGLI_FEATURE_MAP_BUFFER)) {

   LOG(WARNING, "context does support glMapBufferRange");

   return NGL_ERROR_GENERIC;

}

if (!data) {

   LOG(ERROR, "data is NULL");

Can this be triggered by a end user (from someone using the public API) or can it be triggered only because of a bug in our code? If the latter, please use ngli_assert(data) instead.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/gopro/gopro-lib-node.gl/pull/75#pullrequestreview-491806152, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AO3BUEYTI2ARQZ3HVLGZTPTSGPJ3RANCNFSM4RC4AFPA.

Yes strange compile error.  Maybe it has something to do with forward declarations.  Regardless, we don't need to compile in this code for other platforms
Get Outlook for Androidhttps://aka.ms/ghei36

From: cboesch-gpsw<EMAIL_ADDRESS>Sent: Monday, September 21, 2020 8:56:58 AM
To: gopro/gopro-lib-node.gl<EMAIL_ADDRESS>Cc: Jeffrey Moguillansky<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [gopro/gopro-lib-node.gl] NGLI Optimizations (GL): add buffer map/unmap/download, add swapchain module (#75)
@cboesch-gpsw commented on this pull request.

In libnodegl/egl.hhttps://github.com/gopro/gopro-lib-node.gl/pull/75#discussion_r492172046:

+#if defined(TARGET_ANDROID)

EGLClientBuffer ngli_eglGetNativeClientBufferANDROID(struct glcontext *gl,
                                                  const struct AHardwareBuffer *buffer);

+#endif
expected ‘const struct AHardwareBuffer *’ but argument is of type ‘const struct AHardwareBuffer *’
??
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/gopro/gopro-lib-node.gl/pull/75#discussion_r492172046, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AO3BUE63M55TVYNATC4JSU3SG5ZUVANCNFSM4RC4AFPA.

Yes strange compile error. Maybe it has something to do with forward declarations. Regardless, we don't need to compile in this code for other platforms

Yes but maybe we can fix it without so much ifdefery. Sure it fixes your issue, but it's just like with the -fPIC, it's important to understand the issue before trying to fix the symptoms. You didn't say on which environment and configuration you have this issue. Is it when compiling on Ubuntu? MacOS? Cross-compiling?
If I understand the issue correctly, to me it looks like you could address the issue by moving:
#if defined(TARGET_ANDROID)
#include <android/native_window.h>
#include <android/hardware_buffer.h>
#endif

from libnodegl/glcontext_egl.c to libnodegl/egl.h, and making sure the following:
#include <EGL/egl.h>
#include <EGL/eglext.h>

Is only included once (in the header).
Can you test that?

Closing this PR:

glcontext_egl: guard ngli_eglGetNativeClientBufferANDROID() declaration, has been merged into master
glfeatures: change flag to 64 bit, has been merged into master (with small changes, gctx->features has also been changed to uint64_t)
tools/build: enable position independent, a corresponding commit has been merged into master by Clément
glfeatures: add glMapBufferRange / glUnmapBuffer, has been merged into origin/vulkan
buffer: add map/unmap/download functions, has been merged into origin/vulkan
internal: add swapchain, has been merged into origin/vulkan


Feature specification: how to edit an entry to remove its phone number?

We want to make phone number optional. But it's not clear how to best implement the feature.
Currently, the behavior is:

if the user types edit <fields>, and p/… field is not specified, then the old phone number is used.
Otherwise, the old phone number is overwritten with the new phone number.

How can the user use the edit command to delete a phone number?

One reasonable option is to type just p/ (empty phone number = no phone number).
Nevertheless, if we follow this route, should we allow p/ in add command (for consistency) as well? But then there are two distinct ways to not specify phone number --- namely, specify p/, and not specify p/ at all.

Opinion?

For edit to delete: my opinion is to just put an empty space
For add: i would think itd be easier to not specify p/ if there is no intention to put a phone number, but regarding logic, im not sure if its more troublesome to omit p/

im not sure if its more troublesome to omit p/

We're not optimizing for simplicity in implementation here. We optimize for best-designed features.
After all, we need something to reach 300 lines of functional code per person.

I think we can follow how the "tag" part is implemented. For the tag, we can remove all the person’s tags by typing t/ without specifying any tags after it with the command edit. For add, I think we can omit it.


Feature request: Option to not list argument aliases in the completion

It would be nice to have an option to not list aliases in the completion list. Many applications with rich command line interfaces (like svn) tend to liberally use aliases for subcommands. These are very useful as shortcuts (eg: svn list is same as svn ls) for advanced users. However, it's confusing and noisy when all these are listed as completions.
However, some times, listing aliases might be useful. For example, svn blame has {praise, annotate, ann} as aliases, and the user might want to see these.
So perhaps the ultimate solution is to allow for fine-grained control of listing aliases. But for now, what would be useful is a global "includeAliases = True/False" option passed to argcomplete.
(As a side note, zsh is again light years ahead of bash completion in this regard: it understands aliases.)
I would think this would be easy to accomplish, given that aliases to argparse are specified separately, but I might be mistaken.

About subcommands, does argcomplete support argparse subcommands?

It does. Please open a new issue if you have problems that are not related to this feature request.


few properties were not getting updated via rules on form initialization

Description

Some Properties like 'required' 'description' and 'label' were not getting updated when set via rule 'When Form is Initialized'.
Further, the 'description' was never getting updated as if no description was authored initially then the description div was explicitly ignored in the Sightly. As a fix, included the long description div (which is always hidden by default until question mark icon is clicked), and marked the questionMark div as hidden unless we see that the description is present.
Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

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

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes and the overall coverage did not decrease.
[ ] All unit tests pass on CircleCi.
[ ] I ran all tests locally and they pass.

Also, do we have a customer who has asked for this change ? Can you link the JIRA in the PR


[bug] no owned vehicle near

Hi, i'm using the latest vrp and i have problem with vehicles. i was testing it about 2 weeks and trying to fix it(unsuccessfully). When i take my cars from garage its ok, i can open vehicle menu and my cars are "mine". But when i ride with other players (and go far away from) my cars become not mine "no owned vehicle near" and other player can't open vehicle menu too  "no owned vehicle near". p.s sorry for my bad english.

do you need some help with vrp 2 ? I'm not a pro coder, bun know mach about scripting with lua. i'm almost finished my own server using vrp1.

What part of the code in vrp 2 did you use to solve this problem?
I am trying to implement in my vrp 1.0
Sorry bad English


Update iot-hub-devguide-direct-methods.md for a typo issue

update "Direct method are" to "Direct methods are"

@nberdy - Please review the proposed changes.  Thanks

Merged per request by Phil Meadows.


DP-4299 Connecting to WS server in test command

Agent tries to connect to WS server up to 3 times, sends ping and expects pong from server. This call does not require device authentication.
Signed-off-by: Marek Tomczewski<EMAIL_ADDRESS>

Despite the log entry, code looks ok


Make JSONEncoder internal; remove serializeJSONValue from FieldType

PR #291 managed to make almost all of the encoding machinery private or internal, except for JSONEncoder and the associated serializeJSONValue methods on FieldType.
Because of the way that JSON encoding handles maps and Struct, we can't use the standard FieldType reflectors with the standard JSONEncodingVisitor.  I think we can introduce a new JSONMapEncodingVisitor that writes out only values (without field names) and use that to drive the map encoding process.  That should allow us to make all of the JSON machinery internal to the library.

Addressed in PR #317.


React/RCTConvert.h file not found

Hello,
I'm trying to build for ios, followed the installation steps carefully but I'm getting this error when building:
React/RCTConvert.h not found
on the first line of RCTConvert+WebRTC.h file.
Any help please?

Did you use CocoaPods?

No, but I think what is the problem, I was adding react-native-webrtc in a
cordova project, but it needs react-native instead of cordova... total noob
at this..
On Wed, Dec 20, 2017 at 5:01 PM, Saúl Ibarra Corretgé <
<EMAIL_ADDRESS>wrote:

Did you use CocoaPods?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/oney/react-native-webrtc/issues/394#issuecomment-353121291,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARu1DdFAWX73oYhWEIh-qCnFHIKpe0ggks5tCT1cgaJpZM4RIi6y
.

Yes indeed, this is a React Native plugin.


Added njd_509180.html/json files for regression tests

https://github.com/freelawproject/juriscraper/pull/1121#issuecomment-2289564443
Added new tests after this comment.

This is helpful. Thank you for following up!


Move imports in startca component to top-level

Breaking Change:

Description:
Moved import from function to top-level as requested in #27284
Related issue (if applicable): fixes #27284
Pull request with documentation for home-assistant.io (if applicable): home-assistant/home-assistant.io#<home-assistant.io PR number goes here>
Checklist:

[ ] The code change is tested and works locally.
[ ] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[x] I have followed the development checklist

I tried running tox but took age, but tox -e lint passed. I will run fully if needed.


Inject a custom type and serialize as bytes

I have the following proto.
message XXX {
    bytes bitset = 1;
}

And I have a struct BitSet defined in my code.
Can I somehow inject my BitSet struct into generated code, and let my code take over the serialization and deserialization?
The README.md says it is possible, but I cannot find the example using the "attributes" for that.

Allows existing Rust types (not generated from a .proto) to be serialized and deserialized by adding attributes.

Thank you in advance

Unfortunately this is not currently possible in a straightforward way.
There is a technical path forward to allowing this naturally (it's essentially the same feature as https://github.com/danburkert/prost/issues/392 and #369), but it's still 'future work'.
The somewhat good news is that with some effort there's a workaround that works with current prost: define struct XXX yourself and impl Message for XXX in your own code, then use prost_bulid::Config::extern_path to have the rest of your generated code refer to this custom implementation.

Thanks @danburkert
What trait should I implement in my struct XXX so that prost knows how to serialize/deserilize my structure?
It would be helpful with some code reference :)

Hi @danburkert
I am trying to implement prost::Message trait for my own struct as below.
impl prost::Message for BitSet<u64> {
    fn encoded_len(&self) -> usize {
        let bit_vec = &self.bit_vec;
        // Obtain original length
        let old_len = bit_vec.storage().len();
        // Obtain coarse trailing zero length
        let n = bit_vec.storage().iter().rev().take_while(|&&n| n == u64::zero()).count();
        (old_len - n) * u64::bits() / u8::bits()
    }

    fn clear(&mut self){
        BitSet::clear(self);
    }

    fn encode_raw<BUF>(&self, buf: &mut BUF) where BUF: BufMut, Self: Sized {
        let bit_vec = &self.bit_vec;
        let mut buffer : Vec<u8> = bit_vec.to_bytes();
        let real_size = buffer.len() - buffer.iter().rev().take_while(|&&n| n == u8::zero()).count();
        // align to QWORD
        let mut len = real_size / u64::bytes();
        if real_size % u64::bytes() > 0 {
            len += 1;
        }
        buffer.truncate(len * u64::bytes());
        buf.put(Bytes::from(buffer));
    }

    fn merge_field<BUF>( &mut self, tag: u32, wire_type: WireType, buf: &mut BUF, ctx: DecodeContext) -> Result<(), DecodeError>
        where BUF: Buf, Self: Sized
    {
        println!("{},{:?}", tag, wire_type);
        match tag {
            _ => ::prost::encoding::skip_field(wire_type, tag, buf, ctx),
        }
    }
}

When I decode my struct, I receive DecodeError which says invalid varint  , this error occurs before merge_field() is called
There must be something wrong with my encode_raw(). In my struct, there is just  one bytes to be written,  I guess I need write some wireType information, but cannot find any example.  Can you please give some hints?

impl prost::Message for BitSet<u64> {
    fn encoded_len(&self) -> usize {
        let bit_vec = &self.bit_vec;
        let mut len: usize = 0;
        let mut tailing_zero = true;
        for &n in bit_vec.storage().iter().rev() {
            if tailing_zero {
                if n != u64::zero() {
                    tailing_zero = false;
                }
            }
            if !tailing_zero {
                len += encoding::encoded_len_varint(n);
            }
        }
        len
    }

    fn clear(&mut self){
        BitSet::clear(self);
    }

    fn encode_raw<BUF>(&self, buf: &mut BUF) where BUF: BufMut, Self: Sized {
        let bit_vec = &self.bit_vec;

        let mut tailing_zero = true;
        let mut count: usize = 1;
        for &n in bit_vec.storage().iter().rev() {
            if tailing_zero {
                if n != u64::zero() {
                    tailing_zero = false;
                }
            }
            if !tailing_zero {
                count += 1;
            }
        }

        // only one field in this struct so we can reuse its tag to store the length
        encoding::encode_key(count as u32/*tag*/, WireType::LengthDelimited, buf);

        for (idx, &n) in bit_vec.storage().iter().enumerate() {
            if idx < count {
                encoding::encode_varint(n, buf);
            }
        }
    }

    fn merge_field<BUF>( &mut self, tag: u32, wire_type: WireType, buf: &mut BUF, ctx: DecodeContext) -> Result<(), DecodeError>
        where BUF: Buf, Self: Sized
    {
        let count : usize = (tag - 1) as usize;
        let bit_vec = &mut self.bit_vec;
        unsafe {
            bit_vec.storage_mut().resize(count, u64::zero());
            bit_vec.set_len(count * u64::bits());
        }

        for i in 0..count {
            let n : u64 = encoding::decode_varint(buf)?;
            unsafe {
                bit_vec.storage_mut()[i] = n;
            }
        }

        Ok(())

    }
}

I did it

Glad you figured it out.  One approach that makes this a bit easier is to use cargo expand to see the code that prost generates for when not rolling your own, as a model.

Thanks,  cargo expand helps me to improve my code.
impl prost::Message for BitSet<u32> {
    fn encoded_len(&self) -> usize {
        let bit_vec = &self.bit_vec;
        let vector : Vec<u8> = bit_vec.to_bytes();
        if !vector.is_empty() {
            encoding::bytes::encoded_len(1u32, &vector)
        } else {
            0
        }
    }

    fn clear(&mut self){
        BitSet::clear(self);
    }

    fn encode_raw<BUF>(&self, buf: &mut BUF) where BUF: BufMut, Self: Sized {
        let bit_vec = &self.bit_vec;
        let vector : Vec<u8> = bit_vec.to_bytes();
        if !vector.is_empty() {
            encoding::bytes::encode(1u32, &vector, buf);
        }
    }

    fn merge_field<BUF>( &mut self, tag: u32, wire_type: WireType, buf: &mut BUF, ctx: DecodeContext) -> Result<(), DecodeError>
        where BUF: Buf, Self: Sized
    {
        const STRUCT_NAME: &'static str = "BitSet";
        match tag {
            1u32 => {
                let mut buffer : Vec<u8> = Vec::new();
                let value = &mut buffer;
                encoding::bytes::merge(wire_type, value, buf, ctx)
                    .map( |_| {
                        drop(mem::replace( &mut self.bit_vec, BitVec::from_bytes(&buffer)));
                        ()
                    })
                    .map_err( |mut error| {
                        error.push(STRUCT_NAME, "buffer");
                        error
                    })
            }
            _ => encoding::skip_field(wire_type, tag, buf, ctx),
        }

    }
}

It's cool that a workaround like this exists and I'm going to look into it. However, I have a strange case where same type is sometimes encoded as bytes and sometimes as hex string (don't ask me why, I didn't come up with such idea; I can't change it either - external code) so it'd be great to support something like serde's with = "..." attribute as well.
For now I intend to look into having struct AsBytes<T>(T) and struct AsString<T>(T).

I seems not changed to prost are needed to support this use case

@caspermeijn from quick look into the documentation I don't see the feature there, can you point me to where it's documented?

from quick look into the documentation I don't see the feature there, can you point me to where it's documented?

As I understand this discussion, the requested feature (custom typed bitset) can be implemented with a custom impl Message.

Yes but unfortunately that doesn't solve my issue where the same type has different serializations in different places.

Yes but unfortunately that doesn't solve my issue where the same type has different serializations in different places.

I understand, but I think that use case doesn't fit prost well. We aim to be a Rust equivalent of the C++ protobuf library. I suggest parsing into a separate type to make that work.

We aim to be a Rust equivalent of the C++ protobuf library.

That's annoying. I originally moved to prost because it looked like it specifically is not an equivalent of C++ library but a Rust-idiomatic crate as opposed to the protobuf crate (though I now see that one changed significantly since the last time I checked, so I should check it out again).
Parsing to a manually-generated message is possible but it's annoying and also breaks my use case of allowing people to supply external proto definitions to support forks/experimental versions of the service I'm wrapping.


Change the title of the "realtime" page

The term "realtime" is very confusing, as we don't have real time data. Most of the time we're able to show about 5 minutes ago.
This page is more useful for querying historical data. For example - to find out the licence plate number of the vehicle that I saw yesterday on 19:47 driving too fast in front of our local school.
Suggested new title -

he - מפה לפי זמן
en - Time based map

I'm open to any other suggestion

Hey, I'll take it:)

@NoamGaash Can I take this issue?

@itsoriki sure! go ahead! :)


Web - Profile view - User's Recent Posts

As a part of the 271st issue, I will be making a component that lists the recent posts of the user in their preview form.

[ ] Profile Page created and its layout defined.
[ ] Post Preview Card component is created
[ ] Users Recent posts added to profile page
[ ] Profile Header created and added to Profile Page
[ ] Minor changes to Opening Page layout


Change snowflake ids to NonZeroU64

NonZeroU64 can be used instead of u64 since snowflakes are never 0, this saves some memory when wrapped in options as Option<u64> is 5 bytes and Option<NonZeroU64> is 4 bytes.
Remaining compile errors stem from non test code, specifically OptionalMemberDeserializer, MemberListDeserializer & PresenceListDeserializer which all take GuildId(0) and for which I'm unsure what the correct value should be.
Whether NonZeroU64 should be pub, should there be a method returning the inner u64, and if TryFrom should be implemented for the Id's remain to discuss.
This PR also removes Default from all IDs and structs that dependeded on it (CurrentUser, LavaLinkRef & CommandData)

This is quite the breaking change, but we've never particularly rejected the notion of causing breakage particularly on the premise of performance improvements. Pinging @twilight-rs/core for additional approval.
I'm in agreement with this change but what I would like to see implemented on ID newtypes are equivalents to the NonZero*::new, NonZero*::get, and probably NonZero*::new_unchecked methods. As an implementation condition I also would not want to introduce additional unsafe blocks. At a cursory glance this PR does not introduce any.
Considering the scale of this change I would almost want to put this two major versions away. The next major version already includes quite a lot of significant breaking changes - particularly in the HTTP crate - and this would significantly increase the complexity burden when upgrading.

I'll await approval of the idea before finishing the implementation.

I am in agreement with @zeylahellyer about waiting until the stable release after the next for this. We have talked about it in the past as well and it is a pretty niche optimization, but a interesting one nonetheless. I would also like to see the methods on the ID newtypes.

As an implementation condition I also would not want to introduce additional unsafe blocks through use of NonZero*::new_unchecked or its equivalents. At a cursory glance this PR does not introduce any.

There are currently 7 cases of unsafe for assigning temporary variables that are hard coded to be 1; these cases are trivially sound. I left them as unsafe so that they could easily be reviewed

This is a complex rebase so I'll leave you to do git rebase -i next since you're more familiar with the code at the moment.

I'll review this in the next day

Needs updated to latest next

rebased

NonZeroU64 can be used instead of u64 since snowflakes are never 0, this saves some memory when wrapped in options as Option<u64> is 5 bytes and Option<NonZeroU64> is 4 bytes.

Just a detail: because "composite structures have an alignment equal to the maximum of their fields' alignments", Option<u64> is actually 16 bytes (twice the size of u64), and not just 9 bytes, while Option<NonZeroU64>> is 8 bytes, so this change is more significant than what the PR description suggests.

This is going to conflict a lot, so I'm going to ask that we hold off on merging this until we can get some other things merged in

Thanks for the PR! I've gone ahead and merged it.


Update Datetime format inference

Update Datetime format inference to include formats with two digit year dates and timezones
Closes #1665

After creating the pull request: in order to pass the release_notes_updated check you will need to update the "Future Release" section of docs/source/release_notes.rst to include this pull request.

Couple of questions and needs a rebase, but otherwise looking good


Use BindingBase.platformDispatcher over BindingBase.window where possible

This is in preparation for multi-window support and removes the bias towards a single window from some of the framework code. There's still more work to do...
This PR basically removes SingletonFlutterWindow from the framework (with the exception of the still existing BindingBase.window and TestWindow from flutter_test - but all code now treats them as being regular FlutterViews and doesn't rely on any of the additional backwards-compatibility functionality that SingletonFlutterWindow provides over FlutterView).
Part of https://github.com/flutter/flutter/issues/60131 to work towards https://github.com/flutter/flutter/issues/30701.

Are there any examples of use？

Are there any examples of use？

Look at the files changed by this PR. They all show examples of how to use the platform dispatcher.


Server loading stuck at Updating Config

Issue Description:
I try to start server and when server gets to reload configs for EnderIO and EnderCore and server stucks at [Server thread/INFO] [enderio]: Updating config...
What happens:
After starting server it doesnt load on successfuly and stucks at [Server thread/INFO] [enderio]: Updating config...

Steps to reproduce:

Ive setted up server engine to Forge at my server hosting
Added mods that I like
Started server
Server got stuck

Affected Versions (Do not use "latest"):

EnderIO: 5.0.39
EnderCore: 0.5.45
Minecraft: 1.12.2
Forge: <IP_ADDRESS>11
SpongeForge? no
Optifine? no
Single Player and/or Server? Server

Your most recent log file where the issue was present:
https://pastebin.com/Lj8P710S

Please also upload the debug.log, thank you.

Done

Thanks. It nicely shows that the hang is completely unrelated to what you see in the normal logfile. It is, however, in the main initialization code of Ender IO. Which is about 2-3000 lines of code and the line if (user==Runevoice) { sleep(1000 years); } is absent for some weird reason...
Do you have a jdk installed and can trigger a thread dump instead of killing the process outright?

Sorry, I dont have it and even if I would I dont know how to use it.

When you install and run Minecraft with a JDK then you can run in another terminal the command "jstack" or "jconsole" to get a stack trace of the Minecraft process. Do this a few times while it hangs and upload the stack traces.


Dependence on cardano-node and cardano-cli executables

Currently to work properly Plutip requires executables for cardano-node and cardano-cli available in the environment. In the future we want to get rid of this dependency.
Note: Plutip depends on bot-plutus-interface, and bot-plutus-interface also requires cardano-cli executable at the moment.

I don't see why you'd want to remove this. If you're worried about adding more stuff to compile, it should be a very minor overhead, because AFAICT we're depending on all of the other libraries anyway. We just need to not use the outputs from the flakes but use haskell.nix to get the executables from project.hsPkgs.

I see the issue now, but this seems like a problem with bot-plutus-interface and not plutip.


Why devMode is marked as @internal?

Problem Statement
devMode is marked as @internal so we get a warning when we try to use it:
  @internal
  bool devMode = false;

Is there a reason for this to be @internal? I can see it being useful to be used as devMode = kDebugMode. This way we get exceptions when we are developing.
Solution Brainstorm
No response
Are you willing to submit a PR?
None

@denrase afaik this is one of the issues you worked on, maybe you have more context on this

Correct me if I am wrong please, as I did a very quick look at the source code. I thought I could set devMode when kDebugMode, so no alerts are sent to Sentry when we are coding and thus generating a bunch of exceptions.
Also to control if exceptions/logs are shown in the console, for development, or are redirected to sentry only for production builds.

so no alerts are sent to Sentry when we are coding and thus generating a bunch of exceptions.

In that case I'd suggest using [beforeSend](https://docs.sentry.io/platforms/flutter/configuration/filtering/) if you haven't yet. You can configure it to filter out events based on your environment (dev, staging, prod, etc...).

@feinstein You have several options to achieve what you want:
You can enable the options.debug flag to log issues that might occur.
As for not sending events when developing locally, you can always just opt to not init the SDK, or, like @buenaflor mentioned, filter out all events in beforeSend
Another option might be to setup different environments with the [options.environment] flag. You can then filter your issues in the web UI.
The documentation of those flags has more infos that might be of interest to you.

@denrase let's rename it to automatedTestMode and add a comment to explicitly say that it's only used for tests


Issues with 2.5.2 (dumping results, committing transactions, and timeout behaviors)

Hello :wave:
So I have upgraded to version 2.5.2 to be able to use the timeout fix reported here https://github.com/neo4j-php/neo4j-php-client/issues/102#issuecomment-1055904982
But I noticed some other issues happening and wanted to list them down here
All issues create the client as follows: (with varying timeout value)
$url = 'bolt://test:test@neo4j:7687?database=test'
$this->client = ClientBuilder::create()
                             ->withDriver('bolt', $url, null)
                             ->withDefaultTransactionConfiguration(TransactionConfiguration::default()->withTimeout(150.0))
                             ->withDefaultDriver('bolt')
                             ->build();

Dumping a query result
I run a query and then want to dump the result to see it, but an error occurs
Steps:

Create client
Run a query then dump the results

$result = $client->run("MATCH (n:Node) SET n.testing = 'hello' RETURN n");
dump($result);

This error is produced
In VarCloner.php line 108:

  Type error: Cannot assign Symfony\Component\VarDumper\Cloner\Stub to reference held by property Laudis\Neo4j\Databags\SummarizedResult::$summary of type ?Laudis\Neo4j\Databags\ResultSummary

This happens for both transactions and direct runs.
If I dump dump($result->getSummary()); it works and prints the summary, is this an intended behavior? I know this is not a critical issue, but I thought I would mention it :sweat_smile:
Note: something weird happens with the run, if a result is expected to be return (there is a return in the query), just the run itself doesn't run the query, but getSummary() or toArray() do, so this
$result = $client->run("MATCH (n:Node) WITH * CALL apoc.util.sleep(2000000) RETURN n");

finishes instantly, indicating that the query is not being ran or something.
But this
$result = $client->run("MATCH (n:Node) WITH * CALL apoc.util.sleep(2000000) RETURN n");
$summary = $result->getSummary();

or this
$result = $client->run("MATCH (n:Address) WITH * CALL apoc.util.sleep(2000000) RETURN n");
$array = $result->toArray();

Actually run the query and perform the sleep properly, is this behavior intended?
Committing a transaction causes an error
This issue is similar to https://github.com/neo4j-php/neo4j-php-client/issues/117
Run a query through a transaction, then commit, an error occurs indicating a failure on the DISCARD message
Steps:

Create client
Run a query through a transaction then commit

$tsx = $client->beginTransaction();
$result = $tsx->run("MATCH (n:Node) SET n.testing = 'world' RETURN n");
$tsx->commit();

This error is produced
In V4.php line 94:

  Message 'DISCARD Map{qid -> Long(0), n -> Long(-1)}' cannot be handled by a session in the READY state. (Neo.ClientError.Request.Invalid)

So I check the debug logs in neo4j and found this error
2022-03-16 17:34:35.029+0000 DEBUG [o.n.b.v.m.BoltResponseMessageWriterV3] Encoding a fatal failure message to send. Message: FAILURE Invalid Message 'DISCARD Map{qid -> Long(0), n -> Long(-1)}' cannot be handled by a session in the READY state.
2022-03-16 17:34:35.029+0000 ERROR [o.n.b.r.DefaultBoltConnection] Protocol breach detected in bolt session 'bolt-20'.
org.neo4j.bolt.runtime.BoltProtocolBreachFatality: Message 'DISCARD Map{qid -> Long(0), n -> Long(-1)}' cannot be handled by a session in the READY state.
	at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.nextState(AbstractBoltStateMachine.java:159) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.process(AbstractBoltStateMachine.java:102) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.messaging.BoltRequestMessageReader.lambda$doRead$1(BoltRequestMessageReader.java:93) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.DefaultBoltConnection.lambda$enqueue$0(DefaultBoltConnection.java:156) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatchInternal(DefaultBoltConnection.java:252) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:187) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:177) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.executeBatch(ExecutorBoltScheduler.java:257) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.lambda$scheduleBatchOrHandleError$3(ExecutorBoltScheduler.java:240) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.69.Final.jar:4.1.69.Final]
	at java.lang.Thread.run(Thread.java:829) [?:?]

After debugging a little bit I found that this part of the library causes the error
   /**
     * Send DISCARD message
     * The DISCARD message requests that the remainder of the result stream should be thrown away.
     *
     * @link https://7687.org/bolt/bolt-protocol-message-specification-4.html#request-message---discard
     * @param mixed ...$args
     * @return array
     * @throws Exception
     */
    public function discard(...$args): array
    {
        if (count($args) == 0)
            $args[0] = ['n' => -1];
        elseif (!array_key_exists('n', $args[0]))
            $args[0]['n'] = -1;

        $this->write($this->packer->pack(0x2F, $args[0]));
        $message = $this->read($signature);

        if ($signature == self::FAILURE) {
            throw new MessageException($message['message'], $message['code']);
        }

        if ($signature == self::IGNORED) {
            throw new IgnoredException('DISCARD message IGNORED. Server in FAILED or INTERRUPTED state.');
        }

        return $message;
    }

The server responds with a failure when the library tried to send a DISCARD message, I'm not sure if I have something wrong in my neo4j configuration or what could be causing this issue.
Worth noting that the query doesn't get completed, so the update doesn't take effect, although there is a commit right there, and although it is logged in the query logs that it was a success, but when I checked the data on the graph the update didn't take effect.
Timout
I'm noticing different behaviors for different scenarios when it comes to timeout, I just want to confirm if they are intended or not, as I think some of them might not be intended, so here are the behaviors:

A query that doesn't return and with low timeout value (like 10)

$result = $client->run("MATCH (n:Node) SET n.testing = 'hello' WITH * CALL apoc.util.sleep(2000000)");

This throws a Bolt\error\ConnectionTimeoutException exception and prints an error Connection timeout reached after 10 seconds. which is expected and the behavior I thought all scenarios would do.

A query that doesn't return and with high timeout value (like 150)

$result = $client->run("MATCH (n:Node) SET n.testing = 'hello' WITH * CALL apoc.util.sleep(2000000)");
$output->writeln("Finished");

This doesn't throw any errors on the run step, it proceeds and prints Finished, then the library tries to send a DISCARD message to the server, but the server responds with a null message, so the following error is produced
In MessageException.php line 32:

  Type error: Argument 1 passed to Bolt\error\MessageException::__construct() must be of the type string, null given, called in /var/www/udg.zlien.com/vendor/stefanak-michal/bolt/src/protocol/V4.php on
   line 94

And this error is produced on neo4j
2022-03-16 19:09:53.322+0000 ERROR [o.n.b.r.s.i.ErrorReporter] Client triggered an unexpected error [Neo.DatabaseError.General.UnknownError]: null, reference 76c15d57-68ae-47a5-8591-ee67af056a0e.
2022-03-16 19:09:53.322+0000 ERROR [o.n.b.r.s.i.ErrorReporter] Client triggered an unexpected error [Neo.DatabaseError.General.UnknownError]: null, reference 76c15d57-68ae-47a5-8591-ee67af056a0e.
java.lang.NullPointerException: null
	at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936) ~[?:?]
	at org.neo4j.bolt.transaction.StatementProcessorTxManager.retrieveTx(StatementProcessorTxManager.java:200) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.transaction.StatementProcessorTxManager.streamResults(StatementProcessorTxManager.java:246) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.transaction.StatementProcessorTxManager.discardData(StatementProcessorTxManager.java:118) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.v4.runtime.AutoCommitState.processStreamDiscardResultMessage(AutoCommitState.java:59) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.v4.runtime.AbstractStreamingState.processUnsafe(AbstractStreamingState.java:56) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.v3.runtime.FailSafeBoltStateMachineState.process(FailSafeBoltStateMachineState.java:48) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.nextState(AbstractBoltStateMachine.java:154) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.process(AbstractBoltStateMachine.java:102) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.messaging.BoltRequestMessageReader.lambda$doRead$1(BoltRequestMessageReader.java:93) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.DefaultBoltConnection.lambda$enqueue$0(DefaultBoltConnection.java:156) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatchInternal(DefaultBoltConnection.java:252) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:187) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:177) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.executeBatch(ExecutorBoltScheduler.java:257) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.lambda$scheduleBatchOrHandleError$3(ExecutorBoltScheduler.java:240) ~[neo4j-bolt-4.4.3.jar:4.4.3]
	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.69.Final.jar:4.1.69.Final]
	at java.lang.Thread.run(Thread.java:829) [?:?]

I don't believe this behavior is intended at all.

A query that does return and with low timeout value (like 10)

$result = $client->run("MATCH (n:Node) SET n.testing = 'hello' WITH * CALL apoc.util.sleep(2000000) RETURN n");
dump($result->toArray());

This throws a Bolt\error\MessageException exception with the message
The transaction has been terminated. Retry your operation in a new transaction, and you should see a successful result. The transaction has not completed within the specified timeout (dbms.transaction.timeout). You may want to retry with a longer timeout.  (Neo.ClientError.Transaction.TransactionTimedOut)

I think this behavior is intended, the error message is the one sent from the server so it is descriptive but the exception type is not ConnectionTimeoutException in this case (which I'm not sure if that is intended or not).
Note that neo4j logs the following in this case
2022-03-16 19:24:41.309+0000 WARN  [o.n.k.i.a.t.m.TransactionMonitor] Transaction QueryRouterTransaction[id=557,clientAddress=<IP_ADDRESS>:34622,username=neo4j] timeout.
2022-03-16 19:24:41.309+0000 WARN  [o.n.k.i.a.t.m.TransactionMonitor] Transaction QueryRouterTransaction[id=558,clientAddress=<IP_ADDRESS>:34624,username=neo4j] timeout.
2022-03-16 19:24:41.325+0000 WARN  [o.n.b.t.p.HouseKeeper] Fatal error occurred when handling a client connection, remote peer unexpectedly closed connection: [id: 0x4cdd3561, L:/<IP_ADDRESS>:7687 - R:/<IP_ADDRESS>:34624]

A query that does return and with high timeout value (like 150)

$result = $client->run("MATCH (n:Node) SET n.testing = 'hello' WITH * CALL apoc.util.sleep(2000000) RETURN n");
dump($result->toArray());

This throws a Bolt\error\IgnoredException exception with the message
DISCARD message IGNORED. Server in FAILED or INTERRUPTED state.

I don't think this behavior is intended, the exception is produced when the library tried to send the DISCARD message to the server, but the server ignores it.
NOTE: for all the scenarios, the timeout value is respected, so no scenario finished before the timeout value was reached.
Apologies for the very long write-down :pray: Any help/clarification on these issues would be extremely appreciated :pray:
Client version: 2.5.2
Neo4j version: 4.4.3

Hello @noureldin-khaled,
No need to apologize at all! I am flattered and grateful you took the time to write such an excellent and comprehensive issue. I'll try and fix them today.
The dump bug is an interesting side effect. I do indeed a bit of reference magic to allow for lazy evaluation. I'll try and look for a solution that doesn't break dumping, and presumably, serialization.

I will also take a time to break down the issue in multiple, smaller ones

Hello @noureldin-khaled,
Thank you for your patience. It's been quite busy, and I am on what is looking to be just a semi holiday. I hope to be able to fix all the issues soon. Issue #128 is already fixed, and I am working on #127 now

Sorry for the reminder again :sweat_smile: any updates on these issues?

Hello @noureldin-khaled,
Apologies for the wait. I will at least merge two of the three sub issues today. The final one is quite complex and requires a small redesign which I am working on right now.
Kind regards,
Ghle

Closed by #131, #130, #128
It is available in dev-master right now, and should be released before monday under version 2.3.0


Add support for GitLab merge request hook reopen event

See the below traceback:
2017-05-15 21:41:36,080 ERROR    Traceback (most recent call last):
  File "/home/zulip/deployments/2017-05-15-20-46-44/zulip-venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/zulip/deployments/2017-05-15-20-46-44/zulip-venv/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "./zerver/lib/request.py", line 166, in _wrapped_view_func
    return view_func(request, *args, **kwargs)
  File "./zerver/decorator.py", line 262, in _wrapped_func_arguments
    return view_func(request, user_profile, *args, **kwargs)
  File "./zerver/lib/request.py", line 166, in _wrapped_view_func
    return view_func(request, *args, **kwargs)
  File "./zerver/webhooks/gitlab/view.py", line 287, in api_gitlab_webhook
    event = get_event(request, payload, branches)
  File "./zerver/webhooks/gitlab/view.py", line 369, in get_event
    raise UnknownEventType(u'Event {} is unknown and cannot be handled'.format(event))
UnknownEventType: Event Merge Request Hook reopen is unknown and cannot be handled

This traceback is currently one of the more common on zulipchat.com, so it seems worth fixing soon.  @TomaszKolek @eeshangarg one of you want to claim this?  I think it should be pretty easy to fix.

@zulipbot claim! I'm on it! :)


Accept pasting in ISO8601 strings as well

So I can paste either a long formatted date/time or a UNIX timestamp in the first textbox, and then get the reverse format in the other box.

I can try to make it detect more datetime formats in the first box and convert it to a timestamp automatically? I'd rather not change the order/function of the fields magically.

We now allow pasting in a timestamp directly, anywhere in the page (#10), but accepting an ISO8601-formatted string as well (or maybe even doing some intelligent matching) might be even better.


get_all_user_info() Does not work

get_all_user_info() , get_att_log() Does not work
but work with https://github.com/dnaextrim/php_zklib
why ??

Fatal error:  Uncaught exception 'TADPHP\Exceptions\ConnectionError' with message 'Imposible iniciar conexión con dispositivo -------' in C:\Ampps\www\tad\tad\lib\TAD.php:408
Stack trace:
#0 C:\Ampps\www\tad\tad\lib\TAD.php(271): TADPHP\TAD->check_for_connection()
#1 C:\Ampps\www\tad\index.php(23): TADPHP\TAD->__call('get_all_user_in...', Array)
#2 C:\Ampps\www\tad\index.php(23): TADPHP\TAD->get_all_user_info()
#3 {main}
thrown in C:\Ampps\www\tad\tad\lib\TAD.php on line 408

Hi,
The reason: your device does not have SOAP support ant the functions
"get_all_user_info()", and "get_att_logs()" both depend on SOAP.
I am working in a new version where you can specify what provider, SOAP,
UDP or BOTH, are going to use to interact with the device.
My apologizes,
Cobis
El viernes, 22 de mayo de 2015, Amr Alaa<EMAIL_ADDRESS>escribió:

get_all_user_info() , get_att_log() Does not work
but work with https://github.com/dnaextrim/php_zklib
why ??
—
Reply to this email directly or view it on GitHub
https://github.com/cobisja/tad-php/issues/4.

Hi,
I'm also getting the error while accessing any information like $tad->get_date()
`TADPHP\Exceptions\ConnectionError
Imposible iniciar conexión con dispositivo <IP_ADDRESS>

in /home/awanish_k/http/demo/frontend/web/tad-php/lib/TAD.php at line 408
399400401402403404405406407408409410411412413414415416417    /**

Throws an Exception when device is not alive.

@return boolean true if there is a connection with the device.
@throws ConnectionError
*/
private function check_for_connection()
{
if (!$this->is_alive()) {
throw new ConnectionError('Imposible iniciar conexión con dispositivo ' . $this->get_ip());
}
return true;
}`

Any idea how to solve this.
Thanks

Hi my friend,
You have to be sure that your device has an integrated web server, because
although TAD-PHP offers an unique interface for sendind commands,
internally it uses 2 kind of connections: SOAP and UDP, and of course SOAP
commands relies on the web server.
I would like to improve TAD-PHP to change this behavior but unfortunately I
don't have a device to make the modifications and test them in a proper way.
Best regards,
Cobis
2016-10-20 7:57 GMT-04:00 Awanish Kumar<EMAIL_ADDRESS>
Hi,
I'm also getting the error while accessing any information like
$tad->get_date()
`TADPHP\Exceptions\ConnectionError
Imposible iniciar conexión con dispositivo <IP_ADDRESS>

in /home/awanish_k/http/demo/frontend/web/tad-php/lib/TAD.php at line
408
399400401402403404405406407408409410411412413414415416417 /**

Throws an Exception when device is not alive.

@return https://github.com/return boolean true if there is a
connection with the device.
@throws https://github.com/throws ConnectionError
*/
private function check_for_connection()
{
if (!$this->is_alive()) {
throw new ConnectionError('Imposible iniciar conexión con dispositivo ' .
$this->get_ip());
}
return true;
}`

Any idea how to solve this.
Thanks
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/cobisja/tad-php/issues/4#issuecomment-255085554, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AJzLMjN9xIvv1y4qcdXmOKTaNc_lJbs1ks5q11csgaJpZM4Ek20p
.

Hi,
Thank you for your valuable reply.
I can access the device from windows application (software CD came with the device), it also uses the LAN to connect, that means device has enabled the web interface (let me know if I am wrong).
If you can assist me to solve the issue, is great help for me.
Thanks
Awanish Kumar


Use double buffering on the console

When scrolling on the console, you see that input dramatically slows. This is a result of copying directly from the video buffer. The solution is a simple one, have two buffers, a back buffer, and a front buffer. The back buffer is the buffer we draw into via code, the front buffer is the buffer that is displayed on the screen. Once we are done drawing into the back buffer, we swap out the buffers and use the front buffer as the back buffer and vice versa. This solves a few issues, flickering, screen tearing, etc.

This seems like it will be unfeasible, closing for now.