RMG Database incomplete for Liquid Phase Kinetics

Dear All,
tracking things down, like the expected hydroperoxide decomposition, I found that apparently the liquid_oxidation kinetics groups are not considered when RMG runs as it only searches through RMG_Database.
Is there a specific reason why liquid phase reactions were removed?
Looking through prior versions, it appears that liquid phase reactions were removed from the main RMG database from version 3.2 - while they are present prior in RMG 3.0 and 3.1.

Dear Dr. West,
I remember from my early fiddlings with RMG that I obtained sensible looking liquid oxidation schemes that covered hydroperoxide decomposition, forming predominantly alcohols, aldehydes and ketones.
These then vanished in later revisions - looking through it now, it seems I started using RMG in that 3.0-3.1 branch where these reactions were present.
I would say that back then it definitely worked.
As to being complete: Based on the work of Sicard (IASH conference, 2013), carboxylic acids are also formed in liquid phase oxidation (besides alcohols aldehydes, ketones), so it covers some of the chemistry, but not all.

OK, following this up some more, I just end up being more and more perplex....
From the dates, the earliest RMG version I would have used was 3.3. - or development code from GitHub.
I have an RMG Run on a version compiled in december 2012 - which shows nice decomposition of the hydroperoxides. The same input file fails with the current RMG version.
The condition file and RMG dictionary from the historic run are - with a changed file ending (!!!! txt -> png) attached below. (Change the file ending to txt and it should show.)

@DetlevCM do you have any of the other output files from this run? If any of them include the git hash of the version that was used to run it in the header, eg something like
!  This chemkin file was generated by RMG - Reaction Mechanism Generator (http://rmg.mit.edu)
!  The java code was compiled by ant at:
!    2010-10-27T11:10:41
!  The git repository was on the branch:
!    master
!  And at the commit with the hash:
!    5ad4962048c4b62389c777a00a4892638d46b067

then please share that with us too.
One thing to note is that input file uses the normal RMG_database not the liquid_oxidation one discussed at the top of this thread.
@ajalan (and other RMG-Java devs) don't suppose anything springs to mind as to why hydroperoxides no longer decompose?

Unfortunately it doesn't have a hash - none of the RMG builds I created from zipped downloads have one, sorry.
This is the start of the logfile:
In fact, from the RMG repository I know I ran it on our cluster - so it was definitely a "self compile".
A code that was available between December 2012 and the release of RMG 3.3, though I think 3.3 also had some decomposition.
On the liquid_phase library:
I have tried with copying it to the kinetics groups which works. However it still doesn't include the original reactions that I had in my older schemes, in retrospect after more time with it yesterday I think these are other additional reactions. I have tacked on the chemkin scheme I got in the past from that run, again a changed file ending.

The beginning of the log is below:
RMG execution initiated at 2012-12-21 12:05:29
######################################################################

RMG - Reaction Mechanism Generator

http://rmg.sourceforge.net/

This java code was compiled by ant at:
2012-12-21T11:54:08
The git repository was on the branch:
* Not in git repository
And at the commit with the hash:
* Not in git repository

For details visit:
http://github.com/GreenGroup/RMG-Java/

Copyright (c) 2002-2011
Prof. William H. Green and the RMG Team:
Joshua W. Allen, Dr. Robert W. Ashcraft, Dr. Gregory J. Beran,
Caleb A. Class, Connie Gao, Dr. C. Franklin Goldsmith,
Michael R. Harper, Amrit Jalan, Gregory R. Magoon,
Dr. David M. Matheu, Shamel S. Merchant, Jeffrey D. Mo,
Sarah Petway, Sumathy Raman, Dr. Sandeep Sharma,
Prof. Kevin M. Van Geem, Dr. Jing Song, Dr. John Wen,
Dr. Richard H. West, Andrew Wong, Dr. Hsi-Wu Wong,
Dr. Paul E. Yelvington, Dr. Joanna Yu

The RMGVE graphical user interface to the RMG database
was written by John Robotham.

This software package incorporates parts of the following
software packages:
DASSL    - Written by Prof. Linda Petzold et al
http://www.cs.ucsb.edu/~cse/software.html
CDK      - Written by Prof. Cristoph Steinbeck et al
http://cdk.sourceforge.net/
InChI    - Available from IUPAC
http://www.iupac.org/inchi/
cclib
http://cclib.sourceforge.net

For more information, including how to properly cite this
program, see http://rmg.sourceforge.net/.

######################################################################

Do any of the files (log, or chemkin) list the reaction family that generated the reactions that now seem to be missing?

Unfortunately, I don't think I can see any reaction family that is mising.
I would think that is is a finer change.
We initially did some products tracing - and found a difference between iso and normal alkanes in the ratio between aldehydes and ketones. A newer build then stopped producing the ketones - just aldehydes and the discrepancy disappeared. Since it again changed....
Alcohols were always present to some extent.
I would think it is an interaction somewhere in the datbase - but where and how I unfortunately do not know.

Another comment - I'm running a scheme with an error tolerance of 0.005 andnow have the odd ketone and some alcohols, BUT with species numbers of 3500 and hihger they formed very late.
-> They formed earlier and from published work (IASH conference, Sicard 2011) we know that a good number of alcohols and aldehydes form given sufficient oxygen.
Something that is more present in today's modern database is the formation of larger molecules from radicals combining.

A low error tolerance model became huge - with 300 species the RMG wesite also fails to visualise the scheme... (no output file produced), however on the smaller ones, some alcohols form and a lot of C20 polymers form. (Some would be expected.)
In fact, producing polymers was a weak spot of earlier RMG versions.
I then started to limit RMG - maximum of 15 carbon atoms. No more C20 polymerisations.
I now obtains a number of alcohols. (but no species breakdown).
Next I limted RMG to 15C and 2O atoms per molecule - I get some molecuels with 3 oxygen atoms.... (See https://github.com/GreenGroup/RMG-Java/issues/308 )
Also some cyclics, some recombination.... it looks more like the old runs, BUT I still don't get the decomposition, the decay of molecules into smaller species as would be expected from Sicard.
Then I looked at the manual - for RMG 3.3 and 4.0.0 - the species limits. Well, there is a minor mistake in the 3.3 manual... the example says maximum carbon atoms is 100 while the text says it is 30. I wonder if the bug could be there?
The other setting that must have changed is bond breaking - because that is what no longer takes place...
(See screenshots)

I have also provided a slide from the 2013 IASH prensentation by Mikael SIcard, which shows a breakdown of the products formed from liquid phase decomposition.
The PetroOxy, the device that was used in this test pressurised the test sample with oxygen and thus offers a reservoir, thus effects would be amplified, however it should be possible to reproduce the trend in RMG.
(Screenshot again)

OK, I did some more digging on the liquid phase aspect and I may have found an answer? Or maybe not...
I ran RMG 3.3. - and obtained the desired breakdown products. Visualizing the scheme and looking through it I found the following:
RO. + .OH <=> ROOH ! Radical Recombination
This looks very much like a hydroperoxide decomposition - and in my experience RMG often writes reactions backwards... (backwards relative to forward being determined by the dominant reaction rate)
I also obtain H2O2 <=> 2 HO. which I believe I no longer see.
This possibly directly links back to Ehsan's question here: https://github.com/GreenGroup/RMG-Java/issues/306

Ok, I did some investigating:
I took my version from December 2014, removed the radical recombination reactions and dropped in the radical recombination reactions from version 3.3. instead.
Results:
| RMG 3.3 | RMG 4.0.1+ with 3.3 R_recomb |
| 179 Species | 96 Species |
| 2890 reactions | 3105 reactions |
However, the hydroperoxide decomposition still takes place as expected.
I might need to try chasing this through a lower temperature (not 500K - 24.48atm, but 423K and 7.14atm - which are the conditions for the experimental work referenced above and also for our case).

OK, I did a bit fo a followup recently and tried my damnest to get RMG 4.0.1 (or later) to produce some hydroperoxide decomposition.
I raised the temperature, increased the pressure... no go...
It will decompose some, produce some alcohols, but nowhere near what would be expected.
I'm truly perplexed as to why RMG no longer predicts the production of species which we know to form as a result of autoxidation...
On a side note in case I didn't mention it before: The hydroperoxide decompositon features as a radical recombination and is printed in revese, i.e. RO. + .OH -> ROOH by RMG.


Can not add helper

Hello, I cannot add the helpers with the link.
Does anyone have the same problem ?
(This integration does not support configuration via the UI. If you followed this link from the Home Assistant website, make sure you are running the latest version of Home Assistant.)

You can also add a helper manually (once you have installed the integration, e.g., via HACS).
Open Settings --> Devices and Services --> Helpers  --> Create Helper --> EPEX Spot Sensor

Any update on this?

@mampfes I'm using your helper atm, didn't experience major problems to get it running.
The homeassistant integration URL in the manual didn't work, but when installing the helper manually everything worked as expected.

The links require that name resolution via mDNS for homeassistant.local is working correctly. Maybe that is the problem on your environment. The links are working fine on my machine.


Removed and fixed some dead sources

🌴

Sorry project hasn't been active in a while, currently rewriting code used to generate the blocklist, should be releasing new version soon


update connector V2 common-options doc

Purpose of this pull request
The main purpose is update connector V2 common-options doc.
Check list

[ ] Code changed are covered with tests, or it does not need tests for reason:
[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[X] If necessary, please update the documentation to describe the new feature. https://github.com/apache/incubator-seatunnel/tree/dev/docs

Please remove fields from https://github.com/apache/incubator-seatunnel/blob/dev/docs/en/connector-v2/source/common-options.md, because not all source connector can set fields.

Please remove fields from https://github.com/apache/incubator-seatunnel/blob/dev/docs/en/connector-v2/source/common-options.md, because not all source connector can set fields.
And, find the source connector can config fields params and then add fields to the connector document.

Thanks, I will fix it.


Added Apple ical namespace and properties

Adding Apples ical namespace to allow retrieving of the calendar color and order.

I have mixed feelings on adding support for "propretary" extensions on the standard in the library, but ... well, if it's useful for Apple users and won't hurt other users, then ... why not.


Add fxLifecycle to fxutil.TestRun

What does this PR do?
Adds a constructor to our fxutil.TestRun utility so that tests using it do not need to provide their own implementation for compdef.TestLifecycle.
Motivation
Additional Notes
Possible Drawbacks / Trade-offs
Describe how to test/QA your changes

/merge


feat: add export signatures for saved_models

This PR defines export signatures for serving models.
Any feedback is welcome

Not entirely sure, but either we:

transform this PR to make it flexible enough to integrate it
close the PR

What do you think @charlesmindee? :pray:


Add manifest file for Python v3.8.5 x64

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

Microsoft Reviewers: Open in CodeFlow

/azp run


Items not rotated after the max number of displayed items has been reached

On MacOS 10.14.6, using Clipy 1.2.9 beta 11:
If Max clipboard history size is set to the same value as Number of items place inline (lets's call it x), there is a history rotation issue after recording the first x items.
Please download the screencast showing the issue here (will only be hosted for 100 days): http://s000.tinyupload.com/?file_id=66911547351521227948
The history is sometimes rotated way later (like 15 minutes later). If the rotation is triggered by a specific action of mine, I've not been able to find out which one it is.

Ok I see. that is same as #30

You could temporally  fix it by set  order history with  last used

Fixed by #36


Sign in with Google

Add a login button to the navbar.
Also when users click the "Load" button, provide an "Or sign in with Google" option.
Sign in with Google: https://developers.google.com/identity/gsi/web
This should pair nicely with Amazon Cognito:

https://aws.amazon.com/cognito/
https://docs.aws.amazon.com/cognito/latest/developerguide/google.html

Idk we can use the ICSSC account for this. We may need to do this with a personal account and pass down access year-to-year.

Why would we need a personal account for this? It says on the page

The free tier does not automatically expire at the end of your 12 month AWS Free Tier term

Sorry I wasn't referring to AWS.
If we need a Google Developer account for this, then idk if we could use<EMAIL_ADDRESS>UCI disables some Google services (like Google Domains) from being used by @uci.edu accounts. Therefore, we'd need a different account.
I'll checkin with PeterPortal to see how they did it.

For the record
User flows:
User's first time on AntAlmanac.
This is easy to handle, just go through the normal login flow.
User already has a schedule on AntAlmanac.
On login, we should prompt them to import their old schedule.
User started to plan a schedule and then logs in.
Right now, logging in will wipe the current schedule. Should we try to maintain that state?
Now if there is an existing schedule or unsaved changes, the user will be prompted to import it when they press the login button.

This handles scenarios 2 and 3 with one solution!


mod not working on Feather Fabric mode

mod doesnt work on the featherclient tried several times still no progress

@legendvenom12492 Can you try it once to see if it works directly with Fabric without going through the Feather Client?

@legendvenom12492 Also, when you make an issue in a place like this, "How did it not work?" should be written. For example, "it didn't show up in the mod list in the first place" or "the instance stopped starting" or "I was able to install the mod, but it didn't show up HUD.".

it seems like obsolete. if you think this issue still be needed, feel free to reopen this issue.


Project Details Display

The "Project Details" dimension is really a pseudo-dimension.  It should not be displayed as it's own tab because none of it's contents are scored.   However, it does include crucial details about the submission.
Project details should be in the Project Summary page.
Gab to provide wireframes.

Done


Expose netty configuration using NettyServerCustomizer and NettyClien…

…tCustomizer
Solve https://github.com/line/armeria/issues/1009
just POC first to discuss. Wil add NettyClientCustomizer later.
Some concern:

As @trustin said, it may make it hard to shade netty later, I'm not sure but is that user still use shaded Netty's ChannelOption to config, and the only disadvantage is that they could not share common config only?
Added method to expose ServerBootstrap for testing , seems not beautiful but I could not find any other way.

I believe this will increase the amount of our future effort to shade Netty. Perhaps we should provide dedicated API for this?

@trustin we decided to not shade netty, so I guess I could continue this issue. Let me close this PR once (it has many conflicts) and recreate it later.


Can't share logs on Android Oppo

Reported by a user.

When clicking on the share logs button nothing happens.

Reported in version 2.2.0 and 2.2.1
Phone: Android Oppo

look into the library if it there is a known issue

I can't seem to find anything in share_plus's list of issues to indicate that it would be a known issue. Unfortunately, it is really hard to debug this with neither a reproducer nor the logs...


ENH: keep the attributes around

Ton of tests failing but the attributes are preserved.

@jGaboardi can you have a look at the failures and suggest optimal solutions form your perspective?

Well, it should not change the geometry... I'll have a look. I more thought about the missing column in appalochicola expected.

I more thought about the missing column in appalochicola expected.

Not sure. I'll take a look in a bit.

I more thought about the missing column in appalochicola expected.

That column is missing because that "truth" hasn't been updated.

apalachicola_simplified_standard.parquet
apalachicola_simplified_exclusion_mask.parquet

Although the Apalachicola test case doesn't hit nearly as many lines of the code base, it is nice because it passes and can be written from any OS (unlike our 6 large FUA tests).
I will see about getting those updated to find out where that gets us.
Since the appalachicola tests are failing here (after the length check) it appears they are not affected by the altered functionality that leads to differences in geometry.

Keep in mind that the "full" CI suite is only run on non-oldest Ubuntu.
When we check that – for example ubuntu-latest, py313_sgeop-latest – we see that all tests are failing within test_simplify.py

For small Appalachicola, it's the columns – passes length check; seems like no geometries are affected
For  the full FUA's its a mixed bag:

aleppo_1133 – passes length check; fails '_status' check
auckland_869 – fails length check
bucaramanga_4617 – fails length check
douala_809 – passes length check; fails index check – seems to be 1 more edge in the observed
liege_1656 – passes length check; fails '_status' check
slc_4881 – passes length check; fails index check – seems to be 3 fewer edges in the observed

I'll also add some language in the docstring to reflect this enhancement (once we figure out where geometry altering is happening).
Something along the lines of:

"... the attributes of the input network data are preserved where possible through the simplification process in modified geometries... ... entirely new geometries that are created thorough the simplification process (e.g., Voronoi skeletons) will have no attributes..."

I still don't understand how has this affected number of edges... something for tomorrow.

Doing some digging now – within the Apalachicola Standard (non-exclusion mask) stuff there are 74 mismatches in the '_status' column – all 'changed' in known and 'original' in observed.

known = thick & transparent-ish
observed = thin & bold

I found the culprit of the weirdness, but something is still happening whereby all non-[geometry, _status] columns are being dropped (in the FUA tests only?) somewhere in the second loop.
This means the current green CI is misleading -- attributes are not being retained and "passing" is actually failing
The FUA tests should all fail, then we updated the expected FUA results with fresh truth.
This problem is not affecting the Apalachicola scenarios

Also, we should check and update the "original" FUA parquet files for uniformity. Should have index of ['u', 'v', 'key'] while others have ['u', 'v', '__key'].

I don't understand the typing issue :D

I don't understand the typing issue :D

Typing fixed.


⚠ PrivateHD has degraded performance

In fa73d8a, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 1692 ms

Resolved: PrivateHD performance has improved in ff2ad54.


Kani crashes when handling code related to AtomicPtr

Caught by the M1 regression, Kani seems to crash when handling harness that use atomic pointers.
Here is a minimal example that causes the crash, in both linux and mac versions of Kani
#![feature(strict_provenance_atomic_ptr, strict_provenance)]
use std::sync::atomic::{AtomicPtr, Ordering};

#[kani::proof]
fn check_fetch_byte() {
    let atom = AtomicPtr::<i64>::new(core::ptr::invalid_mut(1));
    assert_eq!(atom.fetch_byte_sub(1, Ordering::Relaxed).addr(), 1);
    assert_eq!(atom.load(Ordering::Relaxed).addr(), 0);
}

This is the crash
Kani Rust Verifier 0.42.0 (standalone)
thread 'rustc' panicked at cprover_bindings/src/goto_program/stmt.rs:170:9:
assertion `left == right` failed: Error: assign statement with unequal types lhs Pointer { typ: Signedbv { width: 64 } } rhs CInteger(SSizeT)
  left: Pointer { typ: Signedbv { width: 64 } }
 right: CInteger(SSizeT)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Kani unexpectedly panicked during compilation.
Please file an issue here: https://github.com/model-checking/kani/issues/new?labels=bug&template=bug_report.md

[Kani] current codegen item: codegen_function: std::sync::atomic::atomic_sub::<*mut i64>
_RINvNtNtCslE7LfYgGyNS_4core4sync6atomic10atomic_subOxECsgohT1pLHQU2_4main
[Kani] current codegen location: Loc { file: "./.rustup/toolchains/nightly-2023-11-28-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/sync/atomic.rs", function: None, start_line: 3334, start_col: Some(1), end_line: 3334, end_col: Some(73) }
error: ./.kani/kani-0.42.0/bin/kani-compiler exited with status exit status: 101

using the following command line invocation:
kani main.rs

with Kani version: 0.46.0, 0.45.0, 0.42.0 (and possible older versions).

Found by @zhassan-aws , this seems to be the change commit in rust that likely caused the panic: https://github.com/rust-lang/rust/commit/b17491c8f6d555386104dfd82004c01bfef09c95

FYI, the test case was based on the test here: https://doc.rust-lang.org/std/sync/atomic/struct.AtomicPtr.html#method.fetch_byte_sub

Hi @qinheping, did you make any progress in this issue? I would be fantastic if we could fix the M1 job sooner rather than later. Let me know if you have any questions.

The atomic intrinsics such us atomic_xsub_relaxed allow arguments of the type (*mut *mut T, *mut T) while it is not supported in Kani codegen_atomic_binop. An minimal example to reproduce the issue:

#![feature(core_intrinsics)]
use std::intrinsics::{
    atomic_xsub_relaxed
};

#[kani::proof]
fn main() {
    let mut a = 1 as u8;

    let mut ptr: *mut u8 = &mut a;
    let ptr_ptr: *mut *mut u8 = &mut ptr;

    unsafe {
        let x = atomic_xsub_relaxed(ptr_ptr, ptr);

    }
}

We might need to also support such arguments in https://github.com/model-checking/kani/blob/main/kani-compiler/src/codegen_cprover_gotoc/codegen/intrinsic.rs#L243


Enable asking for file reload only once per session

Description of the problem or steps to reproduce
When viewing debug-level log files, micro asks if the file should be reloaded every second. There should be a configuration option to allow this question only once per session.

I think it would be nice (and more useful) to have an option to disable file reloading entirely, as currently there doesn't seem to be a way to do that.


Type error not indicated when spreading into a JSX component whose props type is defined as interface

Bug Report
🔎 Search Terms
react, component props, interface type, spread
🕗 Version & Regression Information
Bug present in 3.3.3 (oldest version available on Playground), as well as Nightly.
⏯ Playground Link
Playground link with relevant code
💻 Code
import * as React from 'react'

// Change interface to a type declaration and the bug disappears.
interface Props {}
// type Props = {}

// Change 'Props' => '{}' (ie. inline the type) and the bug disappears.
function Component(_: Props) {
    return
C2

}

export function Bug() {
    const props = { opt: "1" } as const

    // Should be a type error, since Component doesn't accept 'opt' prop
    return <Component {...props} />
}

🙁 Actual behavior
No error is indicated.
Error is indicated correctly when interface is changed to a type declaration, or the type is inlined.
🙂 Expected behavior
TypeScript should indicate a type error since Component doesn't accept the 'opt' prop.

Interfaces are subject to declaration merging. Types and inline types are not.

Are you saying in my code snippet there is another Props interface defined somewhere which defines a opt field? If so, where? How do I find out?

I'm saying due to declaration merging a new property could be added at any time, that's why TypeScript does not report an error.
If you don't want this behavior, then you can use type instead of interface.

Wait, so TS allows extending private interfaces that are not exported from modules? And therefore it speculatively assumes that Props ~ any since it can be arbitrarily extended?
Also, why does TS indicate a type error in <Component opt="1" />? In both cases, we are passing a (at compile time) known prop to a component which (due tu declaration merging) accepts, well, basically anything. I'm confused.

Hm, TS treats an empty interface differently, somehow? If I add a dummy field to Props now suddenly TS reports an error:
import * as React from 'react'

interface Props {
    unused?: number
}

function Component(_: Props) {
    return
C2

}

export function Bug() {
    const props = { opt: "1" } as const
    return <Component {...props} />
}

I might be confusing the issue with Why are all types assignable to empty interfaces?, but I would have expected type aliases and inline types to behave the same.
The TypeScript team can surely clarify this.

Ok, I think my problem is not related to React/JSX but ty interfaces, spread, and extra fields:
function f(_: { foo: number }) {
    return 1;
}

function g(props: { bar?: string }) {
    // When {...props} spread is removed, TS (correctly) reports an error that
    // 'bar' does not exist in type '{ foo: number; }'.
    // TS always complains about 'baz' though, regarless of the spread.
    return f({ foo: 1, bar: "1", baz: "1", ...props })
}

There are a lot of subtle things here but this isn't supposed to be one of them.

Facing a similar issue. Passing spread props isn't get catch. I'm surprised this is happening in old versions
Test in version 3.3.3

This issue is not only applicable to interfaces. Same behaviour with types
https://www.typescriptlang.org/play?#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wChSYBPMJOABRzAGc4BeOAb1LjgBsUARkl4AuOExhRgAOwDmpAL7lMAV2kZgEaXADCuSNKTSYACjCMmYhhGYBKTtzhotEzn0HC4CtnHM2mjkQwKlDaJo48ADwAJsAAbgB8HPxCvAqRAPSxiY62ispqGlr0KETGeuBaRqb2XDzO0q7OlYbG1sw+HO6pYvgC-PgANOK4SO29ABbCvBD4XoFIwaFwkRUG1ZwAdNvN620W3hkJ+UA

My Playground with same error.
I think this is TS's bug.
type A = {
    test: number
}

const a: A = {
    test: 11,

    // Where Error?
    ...{
        sds: 23,
    },
    // OK: Error
    sds: 23,
}

const b: A = {
    test: 11,

    // Where Error?
    ...{
        sds: 23,
    },
}

const c: A = {
    test: 11,
    // OK: Error
    sds: 23,
}


Upgrade java, maven and versions of other dependencies

Coverage increased (+0.8%) to 91.026% when pulling 42fdbfd0a9c6cccbe7cde67decdaceef3b39344a on velinovskav:master into 6ae20359efbc1a2cbfd6a04571ffd0d8c9f21442 on netceteragroup:master.

This is taking shape quite nicely. However, the more I think about it the more hesitant I become. There's a clearly defined mapping between Bean Validation constraints and valdr Angular JS validators as per https://github.com/netceteragroup/valdr-bean-validation#mapping-of-bean-validation-constraints-to-valdr-constraints (which this PR should also update).  This is established through a String match from e.g. https://github.com/netceteragroup/valdr/blob/master/src/core/validators/hibernateEmailValidator.js#L12 to https://github.com/netceteragroup/valdr-bean-validation/blob/master/valdr-bean-validation/src/main/java/com/github/valdr/BuiltInConstraint.java#L33. So, if you change hibernateEmail to email you'll effectively use a different validator (the one here https://github.com/netceteragroup/valdr-bean-validation/blob/master/valdr-bean-validation/src/main/java/com/github/valdr/BuiltInConstraint.java#L33).
I'm thinking that maybe we should add support for the Bean Validation email constraint without dropping the Hibernate email support at the same time. They could basically co-exist. However, we could also argue that anyone stuck with the proprietary and deprecated Hibernate stuff should simply not upgrade this library.
What do you think?


Spotdl download command getting stuck on 'Processing query' after downloading several songs

System OS
Linux
Python Version
3.9 (CPython)
Install Source
pip / PyPi
Install version / commit hash
4.2.4
Expected Behavior vs Actual Behavior
Expected: Expect it to download the MP3, SpotDL file and LRC (if available)
Actual: gets stuck on processing query
Steps to reproduce - Ensure to include actual links!
After having downloaded 3000 songs, running a command to download a single track results in the process hanging at processing query.
Ran the following command:
spotdl download https://open.spotify.com/track/7w5BiU7FKTioZLF9btCx1R --save-file 7w5BiU7FKTioZLF9btCx1R.spotdl --log-level DEBUG
Traceback
[01:12:20 PM] DEBUG    MainThread - Downloader settings: {'audio_providers': ['youtube-music'], 'lyrics_providers': ['genius', 'azlyrics', 'musixmatch', 'synced'], 'playlist_numbering': False, 'scan_for_songs': False, 'm3u': None, 'output': '/home/ubuntu/dataset/30_genres_250k_songs/210k-100k_disjoint/{track-id}.{output-ext}', 'overwrite': 'skip', 'search_query': None, 'ffmpeg': 'ffmpeg', 'bitrate': None, 'ffmpeg_args': None, 'format': 'mp3', 'save_file':           downloader.py:130
                       '7w5BiU7FKTioZLF9btCx1R.spotdl', 'filter_results': True, 'threads': 4, 'cookie_file': None, 'restrict': None, 'print_errors': False, 'sponsor_block': False, 'preload': False, 'archive': None, 'load_config': True, 'log_level': 'DEBUG', 'simple_tui': False, 'fetch_albums': False, 'id3_separator': '/', 'ytm_data': False, 'add_unavailable': False, 'generate_lrc': True, 'force_update_metadata': False, 'only_verified_results': False,
                       'sync_without_deleting': False, 'max_filename_length': None, 'yt_dlp_args': None, 'detect_formats': None, 'save_errors': None, 'ignore_albums': None, 'proxy': None, 'skip_explicit': False, 'log_format': None, 'redownload': False}
[01:12:20 PM] DEBUG    MainThread - FFmpeg path: ffmpeg                                                                                downloader.py:148
[01:12:20 PM] DEBUG    MainThread - Found 0 known songs                                                                                downloader.py:183
[01:12:22 PM] DEBUG    MainThread - Archive: 0 urls                                                                                downloader.py:230
[01:12:22 PM] DEBUG    MainThread - Downloader initialized                                                                                downloader.py:232
[01:12:22 PM] INFO     MainThread - Processing query: https://open.spotify.com/track/7w5BiU7FKTioZLF9btCx1R                                                                                search.py:132

Other details
This seems to be a very recent issue that started on 22/03/2024, where now after downloading a certain amount of songs the process hangs at the processing query stage. Before that I could download several songs continously without any issue. I'm not sure if some new rate limits have been introduced in the Youtube or Spotify APIs, but something has certainly changed.

I've also been facing this/similar issue for quite some time now.
The thread stalls for whatever reason at random points?
There's no real error which shows up in the debug log either.
I wanted to make a bugreport, but didn't have any definite info.
Try updating python and all related files.
It might help reduce the frequency of such issues.
It didn't completely fix it for me.
If anyone has additional info, it would be appreciated.

yes this is the same for me. Did anyone find a way to fix it?

Same for me. That's weird. It slowed down first significantly. Then got stuck in "Processing". In DEBUG mode it only throws this and doesn't continue from this point on. I download like a thousand song yesterday following the exact steps.
[14:23:31] DEBUG    MainThread - Downloader settings: {'audio_providers': ['youtube-music'], 'lyrics_providers':          downloader.py:131
['genius', 'azlyrics', 'musixmatch'], 'playlist_numbering': False, 'scan_for_songs': False, 'm3u':
None, 'output': '{artists} - {title}.{output-ext}', 'overwrite': 'skip', 'search_query': None,
'ffmpeg': 'ffmpeg', 'bitrate': None, 'ffmpeg_args': None, 'format': 'mp3', 'save_file': None,
'filter_results': True, 'album_type': None, 'threads': 4, 'cookie_file': None, 'restrict': None,
'print_errors': False, 'sponsor_block': False, 'preload': False, 'archive': None, 'load_config':
True, 'log_level': 'DEBUG', 'simple_tui': False, 'fetch_albums': False, 'id3_separator': '/',
'ytm_data': False, 'add_unavailable': False, 'generate_lrc': False, 'force_update_metadata': False,
'only_verified_results': False, 'sync_without_deleting': False, 'max_filename_length': None,
'yt_dlp_args': None, 'detect_formats': None, 'save_errors': None, 'ignore_albums': None, 'proxy':
None, 'skip_explicit': False, 'log_format': None, 'redownload': False, 'skip_album_art': False,
'create_skip_file': False, 'respect_skip_file': False}
[14:23:31] DEBUG    MainThread - FFmpeg path: ffmpeg                                                                      downloader.py:149
[14:23:31] DEBUG    MainThread - Found 0 known songs                                                                      downloader.py:184
[14:23:32] DEBUG    MainThread - Archive: 0 urls                                                                          downloader.py:231
[14:23:32] DEBUG    MainThread - Downloader initialized                                                                   downloader.py:233
[14:23:32] INFO     MainThread - Processing query: https://open.spotify.com/track/4VQ46sRJtb6osiD3xfYGHx search.py:137

Same for me!

Happening to me too,
seems to be related in same part to the Spotify API, as when I create a new client_id & client_secret it works again for a bit.

follow https://github.com/spotDL/spotify-downloader/issues/2142 for updates


Is there RGBA support?

Hi @mexitek,
Thanks for this handy class. I was wondering if this class also supports rgba format and some functions for manpulating it. e.g. changeOpacity(). It would be great if these features could be added into your class.
Thanks!

I was also looking into ways of generating colors with transparency, either with RGBA or preferably HSLA but when I try the method getRgbaCss()I get:
[29-Jan-2015 09:51:40 UTC] PHP Fatal error:  Call to undefined method Mexitek\PHPColors\Color::getRgbaCss()

getRgbaCss() was a suggested implementation of what @daviedR was wanting. What type of transparency are you looking for? e.g. color on one side of gradient and transparent on the other side of gradient

ops, I missread it then.
My use case would be simpler, I just need to output a color in HSLA or RGBA format so that it could have a transparency value.

if you want the color class to output the css for you then yes this is something that can be added to the class. In reality it sounds like you have ColorA, you use the class to lighten/darken this color resulting in ColorB. Then you want to set an opacity/transparency on ColorB. If that is correct, then you can do that today without giving the class your opacity value.
Let me know if I am not understanding your use case. Otherwise, you might be able to do something like this:
// Original Color: 336699
$colorA = new Color("#336699");

// New Color: 1A334D
$colorB = new Color( $colorA->darken() );
$colorBHSL = $colorB->getHsl();

// Your opacity
$opacity = 0.5;

$hslaCss = "hsla(".$colorBHSL['H'].", ".($colorBHSL['S']*100)."%, ".($colorBHSL['L']*100)."%, $opacity)";

Nice. A bit laborious if you need to use more than one of these but it actually solves my problem. Thanks.

It is, but the class was meant for manipulating 1 color and producing a
slight gradient. In the process it translates the color into hex, rbg and
hsl for you. I stopped supporting the color class, but I do accept pull
requests. If the community feels the class should expand then I am open to
accepting the code changes.
For your use case, you can abstract the laborious code into a method or a
subclass of color.
On Thu, Jan 29, 2015 at 11:31 AM, Luis Martins<EMAIL_ADDRESS>wrote:

Nice. A bit laborious if you need to use more than one of these but it
actually solves my problem. Thanks.
—
Reply to this email directly or view it on GitHub
https://github.com/mexitek/phpColors/issues/15#issuecomment-72088313.

--
Arlo Carreon http://arlocarreon.com
Web Developer


common.cpp: add --enable-special-out and --disable-special-out for ov…

…erride default special token handling behavior
Possible approach to address @HanClinto idea for a flag https://github.com/ggerganov/llama.cpp/pull/6923
Investigated using --conversation flag, but it touching multiple other logic so has much different semantic than this idea.
Also @jart would prefer keeping the different default special token behavior.
It would be nice if the 'settings' store has default behaviour + override flag... e.g. DEFAULT, OVERRIDE_TRUE, OVERRIDE_FALSE or something. But anyway this is the best approximation

The --conversation flag is so new I honestly don't know what it does.
I don't think it makes sense here to have two flags. I did that before, with --fast and --precise, but I think that's really an exception to the rule. Ideally the project should make a decision about what the default behavior should be, and then have a single flag to make that not happen.


Type error in union when using typesafe value keys.

The type signature of GremlinScala.union requires one or more anonymous GremlinScala traversals. When wrapping the __ TinkerPop traversal constructor and wrapping it with GremlinScala, something about the types don't align to allow the use of typesafe keys. In the example below, if you change the type parameters of Age and Lang to Vertex, then it compiles (and runs, due to erasure I suppose), but Age and Lang are clearly not of type Vertex.
I've tried a number of explicit type parameter specifications and haven't been able to get it to work without either using Vertex as the type parameter, or resorting to string keys.
import gremlin.scala._
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory

val g = TinkerFactory.createModern().asScala

val Age = Key[Int]("age")
val Lang = Key[String]("lang")

// This works...
g.V(4).in().value(Age).toList()
g.V(4).out().value(Lang).toList()

// This doesn't
val trav = g.V(4)
  .union(
    GremlinScala(__).in().value(Age),  // <--- Type error
    GremlinScala(__).out().value(Lang)
  ).path()

you are right, the type signature for union was wrong and I fixed that in https://github.com/mpollmeier/gremlin-scala/commit/c43dcff7951a2fb736cbfcfdaa8af190f8dabfd2 - let me know what you think. Don't merge that to master as there's no proper test yet - just exploring...
Note that this only works (and makes sense) if all anonymous traversals end at the same type, otherwise you end up with Any. Do you have an actual use case for having mixed types like Int and String in one result set?

Note that this only works (and makes sense) if all anonymous traversals end at the same type, otherwise you end up with Any. Do you have an actual use case for having mixed types like Int and String in one result set?

I'd expect the compiler to select the common upper type bounds. In this case it would be Any, but I could see the case where one traversal returns Int and the other Float, and expect Number to be the resulting type. Is that kind of type-fu possible?

This type-fu might be possible if union step would work as several method invocations, however the way it's done now (and so that it's close to gremlin-groovy) the compiler can only infer Any. See https://github.com/mpollmeier/gremlin-scala/blob/7a65c8bfb506679ef6aeacef238816d2746ffdc7/gremlin-scala/src/test/scala/gremlin/scala/TraversalSpec.scala#L369:L377


chore: bdd-spring-1587825033 to 0.0.1

chore: Promote bdd-spring-1587825033 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Enhancement: Replace quote strings with raw strings in Go test scripts in maistra-2.0 branch

Currently there are many quoted strings when calling util.Shell() , fmt.Sprintf() and other logging and command parts. There are many escaped characters ", ' make readability not good.
All test scripts should be reviewed and updated the quoted strings with raw strings.

Fixed in c49f185571a7a063cf4f28c433553f6f7f9dec52


Import error when trying to use kgtool --help

🐛 Bug Report
When I try to display the help page for the kgtool in the console, I get an import error.
🔬 How To Reproduce
Steps to reproduce the behavior:
Install kgtool via pip:
pip install git+https://github.com/process-intelligence-research/ChemEngKG_kgtool

then, run the help page
kgtool --help

Code sample
kgtool --help

Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\User\PycharmProjects\Data_mining_services\venv\Scripts\kgtool.exe\__main__.py", line 4, in <module>
  File "C:\Users\User\PycharmProjects\Data_mining_services\venv\lib\site-packages\kgtool\__main__.py", line 11, in <module>
    from kgtool.interface import connect, fullGraph
ImportError: cannot import name 'fullGraph' from 'kgtool.interface' (C:\Users\User\PycharmProjects\Data_mining_services\venv\lib\site-packages\kgtool\interface.py)

Environment

OS: Windows 10
Python version: 3.10.8

📈 Expected behavior
The help page should be displayed.
📎 Additional context

Please reinstall the kgtool and try again now.
If this fixed it close the issue.
Note that the help page is currently very rudimentary.

Resolved, thanks!


Bug fix and improvements in BIP32 path parsing

Fixes a minor bug in size checking during BIP32 path parsing, and created a new Bip32Path struct to store a path and its length in a more rusty way.

@kingofpayne you can rebase your branch before merging


[ Bug ] Module module-league-prm crashes when entring prime league group link

Describe the bug
When trying to load a prime league table for example https://www.primeleague.gg/leagues/prm/3062-summer-split-2023/group/509-gruppenphase/5558-division-4-6 the server crashes with the error
TypeError: string-strip-html/stripHtml(): [THROW_ID_01] Input must be string! Currently it's: undefined, equal to: undefined
To Reproduce
Steps to reproduce the behavior:

Go to 'League PRM Tables'
Add a Link to the PrimeLeague group under 'Link to Group'
Click on 'Get Table'
See crash and error in terminal

Expected behavior
PRM table gets shown in the preview and server does not crash
Screenshots
If applicable, add screenshots to help explain your problem.

System:

OS: MacOS 13.4
Node: 16.19.0
Prod Tool Version: 15.4
Observer Tool Version: -
Streaming Software & Version: -
Browser: chrome

Ok, this was due to a change from the prime league on their group pages and should be now fixed with the newest update to the module itself.


Cannot create a project with a groupId that has a hyphen

In the Quarkus superheros workshop, during the https://quarkus.io/quarkus-workshops/super-heroes/#_bootstrapping_the_villain_rest_endpoint step, it asks you to create a project with the groupId io.quarkus.workshop.super-heroes. The "Create new project" wizard provided by vscode-quarkus doesn't allow you to do this, although the Maven plugin that they suggest that you use to generate projects does.
(Also of note is that the https://code.quarkus.io/ doesn't let you do this either)

Looking into it, you're not supposed to use a group id that contains a hyphen; the group id is supposed to be a valid package name.


How to cast mssql.UniqueIdentifier to uuid inside struct

Hello I have the struct like here named person and when I call my rest endpoint and get data from mssql database (where ID is
ID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID() )
then golang return response with array of number
package entities import ( 	mssql "github.com/denisenkom/go-mssqldb" 	"time" ) type Person struct { 	ID           mssql.UniqueIdentifier 	FullName     string 	Comments     string 	DateCreated  time.Time 	DateModified time.Time }
bad response
after call like api from I get
{         "ID": [             160,63, 67,62,243,107,20,16,143,174,0, 45,192,113,147,0         ],         "FullName": "Tony Stark",         "Comments": "",         "DateCreated": "2022-04-06T10:12:18.523Z",         "DateModified": "2022-04-06T10:12:18.523Z"     }
I would like have response like
{         "ID": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" ,         "FullName": "Tony Stark",         "Comments": "",         "DateCreated": "2022-04-06T10:12:18.523Z",         "DateModified": "2022-04-06T10:12:18.523Z"     }
`
func Getperson(w http.ResponseWriter, r *http.Request) {
var persons []entities.person
//database.Instance.Find(&person)
database.Instance.Raw("SELECT * FROM Persons").Scan(&person)

w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
json.NewEncoder(w).Encode(person)

}
`
where I have a bug?

You seem to have been ignored, did you manage to solve it?


OpenSSH - Trouble setting agent

I'm not sure if my problem was already discussed in the issues (there are multiple issues openssh related), but I'm having a hard time figuring out how to properly set up my ssh-agent to handle my keys.
If I put a id_rsa (and id_rsa.pub) into the .ssh folder (inside the scoop/apps, not in users/myuser/.ssh) I can connect to some SSH server (in fact, I'm using Mercurial/Bitbucket), but I always get asked to put my password.
"No problem, I'll set the ssh-agent" I said! But there is something wrong...
I know that scoop doesn't handle services (and I love this! Thanks for not messing with my system), so I run the ssh-agent, which gives me the SSH_AUTH_SOCK and SSH_AGENT_PID, but PowerShell doesn't keep those vars, making it impossible to ssh-add to connect.
Then, I tried ssh-agent ssh-add path/to/my/key, which worked! The key appeared to be successfully loaded and my password is asked, but as soon as I tried to connect to SSH server the ssh-agent crashes (it simply disappears from task manager) and the connection with the server fails.
"The interwebz" doesn't help, most people uses Github's "Git for Windows", PuTTY (as I was, before finding out about scoop last week and changing my whole workspace) or even the git bash... I don't know what else I can try now. =/
Any help is appreciated!

Did you try posh-git?
It has built-in functions to start/stop the ssh-agent:
Install it via: powershellgallery.com

As I said, I was using PuTTY before and, if I can't make openssh to work, I rather go back to PuTTY instead of using yet another bundled tool... I don't want to install some SuperTool™+ssh (like git-with-openssh, git bash, posh-git, Git for Windows and such) just because of SSH.

As long ssh-agent doesn't set the environment variables itself, I think you're out of luck getting it to work without other tools.
Maybe PowerShell/Win32-OpenSSH might work for you. Unfortunately, it's not ready for production use right now.
But I couldn't try it myself, without breaking my current dev setup 😞

Thanks, @r15ch13, I'll fight PowerShell a bit longer before falling back to PuTTY again...

scoop install git-with-openssh
For some reason unknown to me, that package sets up the ssh-agent to run everytime and be accessible, while installing openssh doesn't.

@NemoStein Can you check your user env vars and see if you have a HOME variable set.
Some of these tools won't be able to find that .ssh directory without that variable.

@avluis, UNBELIEVABLE! Such simple fix for a problem that plagues so many of us (as I said, there are multiple issues related to this problem).
I've just added a HOME env var pointing to c:\users\my.user\, copied my public/private key to ~/.ssh folder (don't know if it was necessary) and it just worked...
I'd give you a hug if I could! Thx... ;D

@NemoStein I'm glad this has resolved your issue 😻
I don't currently have the time to create a PR, but if the issues you were having can be replicated with a new scoop install and certain packages, then it could be addressed by either having these packages set this variable (not the clean solution) or having scoop set it instead (IMO, the way to go) as part of its install.


fix(entity): Entity guid validation

This change will ensure that the customer-provided GUID is valid before it is accepted by the CLI, preventing any potential issues or errors that may arise from invalid input

@Avinash-Sanpala it looks like this has caused a bug in the change tracking cli command: https://github.com/newrelic/newrelic-cli/issues/1606


support for color data type

We need support for specifying 24bit rgb color data types.

led service
color sensor

We need to clarify this because we have colors in the led ring.

move to after june release


Pjax is not working on mobile firefox.

Hi, I have a problem. I'm making mobile web app using pjax. and then testing cross browsing. But only mobile firefox, pjax is not working.
I debugged library's codes and found a part that cause problem.
In bundle js file, line 711
        window.history.replaceState({
                url: currentState.url || window.location.href,
                title: currentState.title || document.title,
                uid: currentState.uid || newUid(),
                scrollPos: [document.documentElement.scrollLeft || document.body.scrollLeft,
                    document.documentElement.scrollTop || document.body.scrollTop]
            },
            document.title, window.location)

I tried catch the exception, then alert the message.
The message was 'DataCloneError: The object can not be cloned.'
After caught the exception, pjax is working.
Do you know why does this problem occurred?

pjax version: 0.2.5, 0.2.7
device: iPhone 7 / 8
iOS version: 12.0 (16A366)
mobile firefox version: 14.0 (12646)

The test above was done on a simple pages. But on real app, every link (a element) is not working, no response.
I spent much times, but I can't find cause.

Can you give some more details about the issue. Or better yet, can you provide a codepen reproducing the issue?

Hi, I found an article. I tested and checked that the codes work properly.
I checked that 'history.replaceState' function's parameters. Third parameter requires optional url. It might be String type. But in pjax codes, it passes 'window.location' object. I think that should be 'window.location.href'.
In a Mozilla's article, they noticed the following.

Note: In Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1) through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2), the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), the object is serialized using the structured clone algorithm. This allows a wider variety of objects to be safely passed.

I think that by any chance, the algorithm might cause the problem.
How do you think?

You are probably correct that your error is caused by that algorithm. However, that has nothing to do with the url parameter; it's only used for the state parameter. Looking at the Pjax source, I don't see anything that would cause the error.
Can you post or link to your full code?

Ok. So I'll give you the link for test. It also related to issue #182 . But I can't find your email address. Can you give me your email address? Or if you don't like to be discovered your email publicly, just send an contentless email me. then I will send an email with the link.
Thank you!

This appears to be a bug in Firefox. I'm not sure why it's only in Firefox, since all browsers on iOS use WebKit.
Regardless, we can pass window.location.href instead of window.location, like you suggested here

OK. Do you have a plan to change the codes?

Hopefully I can do that soon, bit it will take time until a new release is pushed out to NPM.

OK, thank you. I'll wait.

What about #182? Have you been testing it?

This issue should be fixed by #191. I would have made it a separate commit and PR, but it accidentally got included in that one.
There's still no timeline on when a new version will be pushed to npm.


Feature request: run Symbol Organizer automatically on specific events

Artboard manager has this feature where it just reorders the artboards when you drag and drop them.
It would be great if Symbol Organizer would do so we don't need to press the shortcut :).
The plugins' manifest has the following events registered, together with their handlers:
"handlers": {
        "actions": {
          "ArtboardChanged.finish": "ArtboardChanged",
          "LayersMoved.finish": "LayersMoved",
          "Duplicate.finish": "Duplicate",
          "HandlerLostFocus": "Resize",
          "ResizeArtboardToFit": "ResizeArtboardToFit",
          "InsertArtboard.finish": "InsertArtboard"
        }
      }

Already looking into it... problem is none of the existing actions will work well without being too taxing. CreateSymbol is the best candidate, however it doesn't work properly at this current time. See the post I made on the subject below...
http://sketchplugins.com/d/348-createsymbol-finish
Thanks for the feedback though, and for using Symbol Organizer! :)


Header: Set up Search feature

Dawn comes with a Search feature which has been set up according to https://github.com/TryGhost/Dawn#search. However, the search icon still does not appear in the navigation header and should be set up in the same spot as displayed on the Dawn demo.
This is probably due to partials/header.hbs hiding the search icon on larger screens for unknown reasons:
        <button class="button-icon hidden-lg hidden-xl js-modal" data-modal="search" aria-label="Search">
            <svg class="icon">
                <use xlink:href="#magnify"></use>
            </svg>
        </button>

Refer to https://github.com/TryGhost/Dawn/issues/50 for more details.


RAG and OpenAI Function Invocation is not working together properly for a single prompt !

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

-- coding: utf-8 --
"""Commands+RAG with personalization .ipynb
Automatically generated by Colab.
Original file is located at
https://colab.research.google.com/drive/1RXFuNJKCcXsqP9oTGTL3oiBuAJYCnnui
"""
!pip freeze | grep langchain

!python -m langchain_core.sys_info

"""# **Dependencies**"""

!pip install  cohere tiktoken langchain \
              openai==0.28.0 \
              pinecone-client==2.2.4 \
              docarray==0.39.0 \
              pydantic==1.10.8

!pip list

from google.colab import userdata

"""# **VectoreStore from Dataset**"""

import pandas as pd
data = pd.read_json('testDataset.jsonl', lines=True)
data

import pinecone

# get API key from app.pinecone.io and environment from console
pinecone.init(
    api_key=userdata.get('PINECONE_API_KEY'),
    environment="gcp-starter"
)

import time

# pinecone.delete_index("llama-2-rag")

index_name = 'llama-2-rag'

if index_name not in pinecone.list_indexes():
    pinecone.create_index(
        index_name,
        dimension=1536,
        metric='cosine'
    )
    # wait for index to finish initialization
    while not pinecone.describe_index(index_name).status['ready']:
        time.sleep(1)

index = pinecone.Index(index_name)

from langchain.embeddings.openai import OpenAIEmbeddings

embed_model = OpenAIEmbeddings(model="text-embedding-ada-002", openai_api_key=userdata.get("OpenAI_API_KEY"))

from tqdm.auto import tqdm  # for progress bar

# data = dataset.to_pandas()  # this makes it easier to iterate over the dataset

batch_size = 100

for i in tqdm(range(0, len(data), batch_size)):
    i_end = min(len(data), i+batch_size) # 13 100
    # get batch of data
    batch = data.iloc[i:i_end]
    # generate unique ids for each chunk
    ids = [f"{x['chunk-id']}" for i, x in batch.iterrows()]
    # get text to embed
    texts = [x['chunk'] for _, x in batch.iterrows()]
    # embed text
    embeds = embed_model.embed_documents(texts)
    # get metadata to store in Pinecone
    metadata = [
        {'text': x['chunk'],
         'title': x['title']} for i, x in batch.iterrows()
    ]
    # add to Pinecone
    print(ids,embeds, metadata)
    try:
      index.upsert(vectors=zip(ids, embeds, metadata))
      print("Inserted")
    except Exception as e:
      print("got exception" + str(e))

print(index)

index.describe_index_stats()

from langchain.vectorstores import Pinecone

text_field = "text"  # the metadata field that contains our text

# initialize the vector store object
vectorstore = Pinecone(
    index, embed_model.embed_query, text_field
)

"""# **Retreiver in action**

# **Function Definition as Commands..**
"""

from langchain.tools import tool
import requests
from pydantic import BaseModel, Field, constr
#import datetime
from datetime import date,datetime

"""# **User Session Info**"""

name = "Shibly"
room_number = 101

# Define the input schema
class OpenMeteoInput(BaseModel):
    latitude: float = Field(..., description="Latitude of the location to fetch weather data for")
    longitude: float = Field(..., description="Longitude of the location to fetch weather data for")

@tool(args_schema=OpenMeteoInput)
def get_current_temperature(latitude: float, longitude: float,name=name) -> dict:
    """Fetch current Weather for given cities or coordinates. For example: what is the weather of Colombo ?"""

    BASE_URL = "https://api.open-meteo.com/v1/forecast"

    # Parameters for the request
    params = {
        'latitude': latitude,
        'longitude': longitude,
        'hourly': 'temperature_2m',
        'forecast_days': 1,
    }

    # Make the request
    response = requests.get(BASE_URL, params=params)

    if response.status_code == 200:
        results = response.json()
    else:
        raise Exception(f"API Request failed with status code: {response.status_code}")

    current_utc_time = datetime.utcnow()
    time_list = [datetime.fromisoformat(time_str.replace('Z', '+00:00')) for time_str in results['hourly']['time']]
    temperature_list = results['hourly']['temperature_2m']

    closest_time_index = min(range(len(time_list)), key=lambda i: abs(time_list[i] - current_utc_time))
    current_temperature = temperature_list[closest_time_index]

    return f'Yes. {name},The current temperature is {current_temperature}°C'

class book_room_input(BaseModel):
    room_type: str = Field(..., description="Which type of room AC or Non-AC")
    class_type: str = Field(...,description="Which class of room it is. Business class or Economic class")
    check_in_date: date = Field(...,description="The date user will check-in")
    check_out_date: date = Field(...,description="The date user will check-out")
    mobile_no : constr(regex=r'(^(?:\+?88)?01[3-9]\d{8})$') = Field(...,description="Mobile number of the user")

@tool(args_schema=book_room_input)
def book_room(room_type: str, class_type: str, check_in_date: date, check_out_date: date, mobile_no: constr, name=name) -> str:
  """
    Book a room with the specified details.

    Args:
        room_type (str): Which type of room to book (AC or Non-AC).
        class_type (str): Which class of room it is (Business class or Economic class).
        check_in_date (date): The date the user will check-in.
        check_out_date (date): The date the user will check-out.
        mobile_no (str): Mobile number of the user.

    Returns:
        str: A message confirming the room booking.
    """
    # Placeholder logic for booking the room
  return f"Okay, {name} Room has been booked for {room_type} {class_type} class from {check_in_date} to {check_out_date}. Mobile number: {mobile_no}."

class requestFoodFromRestaurant(BaseModel):
    item_name : str = Field(..., description="The food item they want to order from the restaurant")
    # room_number: int = Field(..., description="Room number where the request is made")
    dine_in_type : str = Field(..., description="If the customer wants to eat in the door-step, take parcel or dine in the restaurant. It can have at most 3 values 'dine-in-room', 'dine-in-restaurant', 'parcel'")

@tool(args_schema=requestFoodFromRestaurant)
def order_resturant_item(item_name : str, dine_in_type : str, room_number=room_number, name=name) -> str:
  """
  Order food and bevarages at the hotel restaurant with specified details.

  Args:
    item_name (str) : The food item they want to order from the restaurant
    # room_number (int) : The room number from which the customer placed the order
    dine_in_type (str) : inside hotel room, dine in restaurant or parcel

  Returns
    str: A message for confirmation of food order.
  """

  if dine_in_type == "dine-in-room":
    return f"Your order have been placed. The food will get delivered at room {room_number}. Thank you {name}. Can I help you with anything else?"
  elif dine_in_type == "dine-in-restaurant":
    return f"Your order have been placed. You will be notified once the food is almost ready. Thank you {name}. Can I help you with anything else?"
  else:
    return f"Your order have been placed. The parcel will be ready in 45 minutes. Thank you {name}. Can I help you with anything else?"

class requestBillingChangeRequest(BaseModel):
    complaint: str = Field(..., description="Complain about the bill. It could be that the bill is more than it should be. Or some services are charged more than it was supposed to be")
    # room_number: int = Field(..., description="Which Room number the client is making billing request. If not provided, ask the user. Do not guess.")

@tool(args_schema=requestBillingChangeRequest)
def bill_complain_request(complaint: str , room_number=room_number, name=name) -> str:
  """
  Complaints about billing with specified details.
  Args:
    complaint (str) : Complain about the bill. It could be that the bill is more than it should be. Or some services are charged more than it was supposed to be.
    # room_number (int) : The room number from where the complain is made. Not Default value, should be asked from user.
  Returns
    str: A message for confirmation of the bill complaint.
  """

  return f"We  have received your complain from room: {room_number} and notified accounts department to handle the issue. Thank you {name} for keeping your patience while we resolve. You will be notified from the front-desk once it is resolved"

class SecurityEntity(BaseModel):
  exact_location : str = Field(..., description = "The location where the guest needs the help")
  # room : int = Field(..., description = "The room requested customer is staying")

@tool(args_schema=SecurityEntity)
def emergencySafetyRequest(exact_location : str, room_number=room_number, name=name):
  """
  Emergency Safety calls at a location for help with  speciefied details
  Args:
    location (str) : The location where the guest needs the help.
    # room (int) : The room number from where the complain is made. Not Default value, should be asked from user.
    # name (str) : Name of the guest.
  Returns
    str: A message for confirmation of the assistance.
  """

  return f"Our staff is on the way to {exact_location} to assist you. Don't you worry {name}"

class RecommendationExcursion(BaseModel):
  place_type : str = Field(..., description = "The type of place the customer wants to visit. Example - park, zoo, pool.")

class TransportationRecommendationEntity(BaseModel):
  location : str = Field(..., description = "The place customer wants to go visit")

class RoomRecommendation(BaseModel):
  budget_highest : int = Field(..., description = "Maximum customer can pay per day for a room")

@tool(args_schema = None)
def food_recommedation(name=name) -> str:
  """
  Recommend foods that is suited for the customer according to the weather from the restaurant.
  """
  food = "Shirmp Dumplings"

  return f"Sure {name}, I believe {food} would be best for now."

@tool(args_schema = TransportationRecommendationEntity)
def transportation_recommendation(location : str, name=name) -> str:
  """
  Recommends transportation with specified details
  Args:
    location (str) : The place customer wants to go visit
  Returns
    str: A message with transportation recommendation.
  """

  transport = "Private Car"

  return f"{name}, I recommend to go there by {transport}"

@tool(args_schema = RecommendationExcursion)
def excursion_recommendation(place_type : str, name=name) -> str :
  """
  Suggest nice places to visit nearby with specified details
  Args:
    place_type (str) : The type of place the customer wants to visit. Example - park, zoo, pool. Alsways ask for this value.
  Returns
    str: A message with excursion recommendation.
  """

  if place_type.lower() == "park":
    place = "National Park"
  elif place_type.lower() == "zoo":
    place = "National Zoo"
  else:
    place = "National Tower of Hanoy"
  return f"You can visit {place}. You will definitely enjoy it {name}"

@tool(args_schema = RoomRecommendation)
def room_recommendation(budget_highest : int,name=name) -> str:
  """
  Room recommendation for customer with specified details
  Args:
    budget_highest (int) : Maximum customer can pay per day for a room
  Returns
    str: A message with room suggestions according to budget.
  """

  if budget_highest < 1000:
    room = "Normal Suite"
  else:
    room = "Presidental Suite"

  return f"Sure, {name} Within your budget I suggest you to take the {room}"

@tool(args_schema = None)
def housekeeping_service_request(room_number=room_number) -> str:
    """
    Provides housekeeping service to the hotel room.
    """

    return f"We have notified our housekeeping service. A housekeeper will be at room: {room_number} within a moment."

class RoomMaintenanceRequestInput(BaseModel):
  # room_number : int = Field(..., description = "The room number that needs room maintenance service.")
  issue : str = Field(..., description = "The issue for which it needs maintenance service")

@tool(args_schema = RoomMaintenanceRequestInput)
def request_room_maintenance(issue : str, room_number=room_number,name=name) :
  """
  Resolves room issues regarding hardware like toilteries, furnitures, windows or electric gadgets like FAN, TC, AC etc of hotel room. For example:
  My room AC is not working.

  Args:
    issue (str) : The issue for which it needs maintenance service
  Returns
    str: An acknowdelgement that ensures that someone is sent to the room for fixing.
  """

  return f"Sure {name}, We have sent a staff immediately at {room_number} to fix {issue}"

class MiscellaneousRequestEntity(BaseModel):
  # room_number : int = Field(..., description = "The room number that needs the service")
  request : str = Field(..., description = "The service they want")

@tool(args_schema = MiscellaneousRequestEntity)
def request_miscellaneous(request : str, room_number=room_number,name=name):
  """
  Other requests that can be served by ordirnary staff.
  """

  return f"Sure {name}, A staff is sent at your room {room_number} for the issue sir."

# class ReminderEntity(BaseModel):
#   # room_number : int = Field(..., description = "The room number the request is made from")
#   reminder_message : str = Field(..., description = "The reminder message of the customer")
#   reminder_time : datetime = Field(..., description = "The time to remind at")

# @tool(args_schema = ReminderEntity)
# def request_reminder(reminder_message : str, reminder_time : str, name=name):
#   """
#   Set an alarm for the customer to remind about the message at the mentioned time.

#   Args:
#     # room_number (int) : The room number that needs reminder service
#     reminder_message (str) : The reminder message of the customer
#     reminder_time (str) : The time to remind the customer at.
#   Returns
#     str: An acknowdelgement message for the customer.
#   """

#   return f"Sure {name}, We wil remind you at {reminder_time} about {reminder_message}."

class WakeUpEntity(BaseModel):
  # room_number : int = Field(..., description = "The room number the request is made from")
  wakeup_time : str = Field(..., description = "The time to remind at")

@tool(args_schema = WakeUpEntity)
def request_wakeup(wakeup_time : str, room_number=room_number,name=name):
  """
  Set an alarm for the customer to wake him up.

  Args:
    # room_number (int) : The room number that needs wakeup call
    wakeup_time (str) : The time to remind the customer at
  Returns
    str: An acknowdelgement message for the customer.
  """

  return f"Sure {name}, We wil wake you up at {wakeup_time}"

# @tool(args_schema = None)
# def redirect_to_reception() -> str:
#   """
#   Redirects the call to the hotel reception when a customer only wants to directly
#   interact with a real human
#   """

#   return f"We are transferring the call to the hotel reception. Hold on a bit...."

class ShuttleServiceEntity(BaseModel):
    location : str = Field(..., description = "The location from where the customer will be picked up ")
    time : datetime = Field(..., description = "The time at which the customer will be picked up")

@tool(args_schema = ShuttleServiceEntity)
def shuttle_service_request(location : str, time : datetime, name=name) -> str:
  """
  Books a shuttle service that picks up or drops off customer.

  Args :
    location (str) : The location from where the customer will be picked up
    time (datetime) : The exact time of pickup or drop off
  return :
    str : A message that customer is picked or dropped successfully

  """
  return  f"Okay {name}. We have notified our shuttle service. They will be at {location}"

class StockAvailabilityEntity(BaseModel):
  stock_of : int = Field(..., description = "The object that user wants to know the availibility about")
  stock_date : date = Field(..., description = "The date time user wants to know about the stock")

@tool(args_schema = StockAvailabilityEntity)
def check_stock_availability(stock_of : str, stock_date : date):
  """
  Check for stock in the ware house by the specified information.

   Args :
    stock_of (int) : The room number the request is made from
    stock_date (date) : The date time user wants to know about the stock

  return :
    str : A message of the amount of stock

  """

  amount = 24

  return f"Currently we have {amount} in stock of {stock_of}"

class StatusOfRequest(BaseModel):
  room_number : int = Field(..., description = "The room number the request is made from")
  request_type : str = Field(..., description = "The type of request of the customer")

@tool(args_schema = StatusOfRequest)
def check_status_request(room_number : int, request_type : str):
  """
  Checks the status of the request.

  Args :
    room_number (int) : The room number the request is made from
    request_type (int) : The type of request of the customer

  return :
    str : A message of the status of the room
  """

  status = "processing"

  return f"We have checked about your {request_type}. We are currently {status} the request"

tools = [get_current_temperature,
         book_room,
         order_resturant_item,
         bill_complain_request,
         emergencySafetyRequest,
         room_recommendation,
         excursion_recommendation,
         transportation_recommendation,
         housekeeping_service_request,
         request_room_maintenance,
         request_miscellaneous,
         #request_reminder,
         request_wakeup,
         #redirect_to_reception,
         shuttle_service_request,
         check_stock_availability,
         check_status_request

         ] # Add extra function names here...

len(tools)

from langchain.tools.render import format_tool_to_openai_function
functions = [format_tool_to_openai_function(f) for f in tools]

"""# **Model with binded functions !!**"""

from langchain.chat_models import ChatOpenAI
functions = [format_tool_to_openai_function(f) for f in tools]

model = ChatOpenAI(openai_api_key=userdata.get("OpenAI_API_KEY")).bind(functions=functions)

"""# **Prompt Declaration**"""

from langchain.prompts import ChatPromptTemplate
prompt_model= ChatPromptTemplate.from_messages([
    ("system", "Extract the relevant information, if not explicitly provided do not guess. Extract partial info.  "),
    ("human", "{question}")
])

"""\# **Prompt in support of chat_history**"""

from langchain.prompts import MessagesPlaceholder
prompt = ChatPromptTemplate.from_messages([
    MessagesPlaceholder(variable_name="chat_history"),
    prompt_model,
    MessagesPlaceholder(variable_name="agent_scratchpad"),
])

"""# **Creating Chain using Langchain**"""

from langchain.agents.output_parsers import OpenAIFunctionsAgentOutputParser
from langchain.schema.runnable import RunnableMap
chain = RunnableMap({
    "context": lambda x: vectorstore.similarity_search(x["question"],k=2),
    "agent_scratchpad" : lambda x: x["agent_scratchpad"],
    "chat_history" : lambda x: x["chat_history"],
    "question": lambda x: x["question"],
}) | prompt| model | OpenAIFunctionsAgentOutputParser()

"""# **Adding memory for conversations**"""

from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(return_messages=True,memory_key="chat_history")

"""# **Agent Executor for final response**"""

from langchain.schema.runnable import RunnablePassthrough
from langchain.agents import AgentExecutor
from langchain.agents.format_scratchpad import format_to_openai_functions

agent_chain = RunnablePassthrough.assign(
    agent_scratchpad= lambda x: format_to_openai_functions(x["intermediate_steps"]),
) | chain
# print(chain.first.steps['agent_scratchpad'])
agent_executor = AgentExecutor(agent=agent_chain, tools=tools, verbose=True, memory=memory)
print(agent_executor.agent.aplan[0])

"""# **Satrt Conversation with LLM for Commands & Services**"""

response = agent_executor.invoke({"question": "Hi"})

response = agent_executor.invoke({"question": "What is the weather in Delhi"})["output"]

print(response)

agent_executor.invoke({"question": "What is the weather in Delhi"})

agent_executor.invoke({"question": "How can I book a room from 22th March to 23th March ?"})

agent_executor.invoke({"question": "AC room"})

agent_executor.invoke({"question": "Economic class"})

agent_executor.invoke({"question": "22th February 2024 and 24th Feb 2024"})

agent_executor.invoke({"question": "+8801787440110"})

agent_executor.invoke({"question": "Who is Nasif?"})

agent_executor.invoke({"question": "What is his age ?"})

agent_executor.invoke({"question": "I need to order some food."})

agent_executor.invoke({"question": "I want Ramen"})

agent_executor.invoke({"question": "I want to dine in my room "})

agent_executor.invoke({"question": "I have some problem with my bill. It is higher than it shoud be"})

agent_executor.invoke({"question": "I am in danger. Someone is following me."})

agent_executor.invoke({"question": "I am at third floor's balcony"})

agent_executor.invoke({"question": "I want some room recommendation"})

agent_executor.invoke({"question": "I can pay 300$ "})

agent_executor.invoke({"question": "Suggest me some places"})

agent_executor.invoke({"question": "zoo"})

agent_executor.invoke({"question": "How can I go there?"})

agent_executor.invoke({"question": "I need my room cleaned up"})

agent_executor.invoke({"question": "My AC is not working"})

agent_executor.invoke({"question": "Can you wake me up at 8 in the morning ?"})

agent_executor.invoke({"question": "I would like to talk to the Front Desk  "})

agent_executor.invoke({"question": "Can you remind me about my meeting at 4pm at hotel Sarina tomorrow ?"})

agent_executor.invoke({"question": "Can you send someone to pick up the glasses from my room ?"})

agent_executor.invoke({"question": "Can you send someone to pick up from Rajshahi at 4?"})

Error Message and Stack Trace (if applicable)
No response
Description
I'm trying to use LangChain to develop an agent having the capability of both RAG model for localization and OpenAI Function Calling feature for a single prompt together. But, agent fails to respond accurately while switching form the RAG and Functions back and forth. I'm facing two kind of problems:
Firstly, Despite using the ConversationBufferMemory to store chat history with the AgentExecutor, we are experiencing difficulty in obtaining the desired results.
Secondly, the agent is able to provide responses when questions are asked that have answers within the local document. However, it fails to respond to follow-up questions, even though the chat history is available.
Furthermore, when we use the {context} part in the prompt, particularly with functions that have multiple arguments, the agent attempts to guess the missing arguments although instructed not to. Afterwards, this behavior is inconsistent and unreliable.
We have experimented with various prompt descriptions in an attempt to address this issue. But, we have found that either the RAG model works properly or the Function Calling feature performs adequately, but not both simultaneously.
System Info
System Information

OS:  Linux
OS Version:  #1 SMP PREEMPT_DYNAMIC Sat Nov 18 15:31:17 UTC 2023
Python Version:  3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]

Package Information

langchain_core: 0.1.36
langchain: 0.1.13
langchain_community: 0.0.29
langsmith: 0.1.38
langchain_text_splitters: 0.0.1

Packages not installed (Not Necessarily a Problem)
The following packages were not found:

langgraph
langserve

Its kinda hard to read your post, would you mind editing and formatting like below?
You just need to do triple `python  {all your code}  triple tilde again
from google.colab import userdata

# VectoreStore from Dataset

import pandas as pd
data = pd.read_json('testDataset.jsonl', lines=True)
data

import pinecone

Its kinda hard to read your post, would you mind editing and formatting like below? You just need to do triple `python {all your code} triple tilde again
from google.colab import userdata

# VectoreStore from Dataset

import pandas as pd
data = pd.read_json('testDataset.jsonl', lines=True)
data

import pinecone

Code snippet updated with required format !


Fix the License Header being applied on stubs generated.

Is your feature request related to a problem?
Currently, on addition of new API Specs, the generated stubs have the original Apache 2 License being appended to the files. Since we will add the APIs for the plugins sooner rather than later and don't want the apache 2 license appended to those files, this needs to be fixed.

Is this still an issue?


beegfs is broken

While working on https://github.com/NixOS/nixpkgs/issues/72828, I noticed beegfs is marked as broken and unfree. Even when I flip the necessary bits, I can't get the kernel module to compile.
@markuskowa, you seem to have added it, but marked it as broken in August. Do you still use it somewhere? Otherwise, I'd propose to remove it.
Also cc @Mic92.

@flokli I am not using it anymore. My initial proposal was to remove it  since one of the server components was unstable in production. We decided to just mark it broken for now (https://github.com/NixOS/nixpkgs/pull/66352).


[FEATURE]:Should we consider changing the offline operator install method to only include the images related to the driver(and version) to be installed

Describe the solution you'd like
Should we consider changing the offline operator install method to only include the images related to the driver(and version) to be installed?
https://dell.github.io/csm-docs/docs/csidriver/installation/offline/
When doing an offline operator install, all images are pulled and pushed regardless of the driver(and version) that the user wished to install.
There would be considerably less images to pull/push/verify
Describe alternatives you've considered
manual steps, modifying files and directories to limit images pulled.
Additional context
n/a

Hi @gashof
Operator supports n-2 version of drivers. Operator has support for 5 drivers. Currently offline script pulls images of the supported versions of every driver and links for each of these are modified to point to internal registry.
Advantage of this approach is once the tar is created and copied to a system that does not have access to outside network, they can use the same tarball to install any version of the supported driver

Thank you @gashof for explaining in detail.
Firstly we need to understand why offline bundle of dell-csi-operator was designed that way
After that we could try working on fetching only those images that are required to install a specific version of the driver
I have created a backlog item to track the first part https://jira.cec.lab.emc.com/browse/KRV-6357

@gashof Dell CSI Operator is deprecated. It is recommended to use CSM operator going forward. I am closing this GH issue as no active work is being done on Dell CSI Operator. Thanks.


Slight inconsistency of statements in article

In the article titled "Dedicated hosting plans for Azure Functions" there are two statements, one at the beginning and one near the end which are slightly inconsistent.
The opening statement is:   "This article is about hosting your function app with dedicated resources in an App Service plan, including in an App Service Environment (ASE)."
Then there is this statement near the end of the article, under the heading "App Service Environments":  "Running in an App Service Environment (ASE) lets you fully isolate your functions and take advantage of higher numbers of instances than an App Service Plan."
The first statement implies that an ASE is a specific type of App Service Plan.  The second statement implies that an ASE is distinct from an App Service Plan.
So is an ASE a special case of an App Service Plan or not?
Kind of a nitpick, I'll concede, but it helps when statements are consistent.

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

ID: 57106982-21bb-f60a-fde3-7f9d4e83afb1
Version Independent ID: 5922b4e9-ea56-be60-760e-5e01f4dc422b
Content: Azure Functions Dedicated hosting
Content Source: articles/azure-functions/dedicated-plan.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@markshyn
Thanks for your feedback! We will investigate and update as appropriate.

Thanks for your additional clarification.  However, what I'm suggesting is a very simple wording adjustment to the sentence towards the end of the article under the heading "App Service Environments".  Something like this:  "Running in an App Service Environment (ASE) lets you fully isolate your functions and take advantage of higher numbers of instances than is available under a regular (non-ASE) App Service Plan."


Document what passing None to Handle::graceful_shutdown means

I was a bit confused by this, since None might indicate an immediate shutdown, or it might indicate an indefinite grace period.

It means indefinite grace period.
I will document it.


Update develop-tables-external-tables.md

In Dedicated pool the folders are alwasy scanned recursively.
Corrected alwasy into always.

Learn Build status updates of commit 66c0a60:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/synapse-analytics/sql/develop-tables-external-tables.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Looks good; thanks, @SubhMSFT!
Due to the upcoming Ignite conference, all merging and publishing is on hold until the morning of October 12.
This PR is ready for merge on 10/12.


Lets see what CodeCov can do

been having some trouble with scrutinizer not finding the coverage report (TT is open with them).  In the meantime figured I try other options.  First attempted codacy but .... now lets try codecov to see what it does

Codecov Report

:exclamation: No coverage uploaded for pull request base (development@a41aa5a). Click here to learn what that means.
The diff coverage is n/a.

@@              Coverage Diff               @@
##             development    #3371   +/-   ##
==============================================
  Coverage               ?   16.26%
  Complexity             ?    15661
==============================================
  Files                  ?      376
  Lines                  ?    84802
  Branches               ?        0
==============================================
  Hits                   ?    13794
  Misses                 ?    71008
  Partials               ?        0

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 a41aa5a...b301db5. Read the comment docs.

Scrutinizer fixed the issue with the coverage report, but leaving codecov in the mix seems like a good thing, it was easy to setup and the reports are decent.
Also just to note, the coverage % is now up to 21% take that coverage bots!  OK so there is still a long way to go but at least its moving again 😄

YAY! We have charts! :D
/me likes colors


Ctrl key can be stuck in Windows Terminal

Windows Terminal version
1.17.1023
Windows build number
10.0.25300.1000
Other Software
No response
Steps to reproduce
Not sure. Most of the time I'm just typing typical stuffs.
Expected Behavior
Ctrl key is not stuck.
Actual Behavior
I'm reopening #14343, which was suspected to be dupe of #14345/#14129, but those are supposedly fixed on the build I'm on.
After some times, Ctrl key will be stuck for a particular tab. I usually find out when hitting Backspace would delete the whole word even though I'm not pressing down Ctrl key, or typing some alphabets would produce something like ^A
I'm positive the problem is scoped to a Terminal tab:

If I open a new tab, the issue doesn't persist.
The problem doesn't repro on Windows Run dialog (WIN+R) while issue is happening.

Can you try the solution of the other issue that was linked (#14338)? In other words, if you're using PowerShell, try running this:
echo "`e[?67;9999l"

(OP responded to us on an internal mail thread - we're waiting for another repro to get the text of a debug tap. I didn't see any ?67h's in the output of the tap, but I was just scanning a screenshot. There were a couple git commands around the time of the repro, maybe there's some other API that triggers it?)

Bear in mind that the issue reported by the OP was that the Ctrl key was stuck in general, e.g. seeing ^A when typing an A, so it's not just BkSp becoming Ctrl+BkSp. That makes me think it's unlikely to be related to DECBKM.

OP replied in email and this issue hasn't come back since they recently paved their machine. We'll close till it comes back (if it ever does)


feat: code review add a functionality to pass custom policy statements.

Sometimes, users want to pass a custom check for different things like variables and stuff; we need to allow this text to be part of the prompt.

Custom policy seems to create injection vulnerability, so we want to hold off this feature


Fix Windows compatibility

'install_generator.rb' uses *nix instruction 'which' to find Node and npm path.
Now it use 'where' if detect running on Windows and 'which' in other case.

This change is

Coverage remained the same at 99.294% when pulling da203cc42cc141089208fd0be058626bcd78e406 on GeorgeGorbanev:install_generator_windows_fix into 13cff3feb5b0364a84c26cf1d56f31ef963fd7d0 on shakacode:master.

Coverage remained the same at 99.294% when pulling da203cc42cc141089208fd0be058626bcd78e406 on GeorgeGorbanev:install_generator_windows_fix into 13cff3feb5b0364a84c26cf1d56f31ef963fd7d0 on shakacode:master.

@GeorgeGorbanev Why did you close this PR?

@justin808 My bad, that was my first PR and something has gone wrong. Will fix it soon.

@justin808 Added few lines in changelog and separated checking method to utils module. But have some troubles with tests. Practically I never did it before and don't know how to do it. I tried to do it using this tips and on command:
bundle && npm i && rake examples:prepare_all && rake node_package && rake
get error
><EMAIL_ADDRESS>babel /home/george/RubymineProjects/react_on_rails
> babel --out-dir node_package/lib node_package/src

SyntaxError: node_package/src/Authenticity.js: Unexpected token (6:15)
  4 |
  5 |   authenticityToken() {
> 6 |     const token: ?HTMLElement = document.querySelector('meta[name="csrf-token"]');
    |                ^
  7 |     if (token && (token instanceof window.HTMLMetaElement)) {
  8 |       return token.content;
  9 |     }

npm ERR! Linux 4.4.0-51-generic
npm ERR! argv "/home/george/.nvm/versions/node/v7.4.0/bin/node" "/home/george/.nvm/versions/node/v7.4.0/bin/npm" "run" "babel"
npm ERR! node v7.4.0
npm ERR! npm  v4.0.5
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>babel: `babel --out-dir node_package/lib node_package/src`
npm ERR! Exit status 1

Log file is attached. npm-debug.txt
Can you help me?

@GeorgeGorbanev You'll have to yak shave that one. Possibly there's issues with Windows? Maybe downgrade the version of node to the latest 6.x version?

Remove the last commit and please try the rebase again. You should ONLY see the changes that you've made. @GeorgeGorbanev

@GeorgeGorbanev Any progress?

@justin808 Yes, some kind of progress. I configured system to run tests and ready to write rspec.  Also, did I rebased branch right way this time? Sorry for acting like a dummy.

almost there. Yes, tests and pass CI. did you lint?

Reviewed 2 of 3 files at r2, 1 of 1 files at r3.
Review status: all files reviewed at latest revision, 1 unresolved discussion, some commit checks broke.

Comments from Reviewable

@justin808 Guess no, don't know how to do it.

https://github.com/shakacode/react_on_rails/blob/master/CONTRIBUTING.md
rubocop probably

@justin808 Thank you. It will be done.

Coverage increased (+0.001%) to 99.299% when pulling b368777acd3eb79c008b88e2f0d95b713b06b971 on GeorgeGorbanev:install_generator_windows_fix into 6bb07f56e9e446171be253b32a20c6f6f054792c on shakacode:master.

Coverage increased (+0.001%) to 99.299% when pulling b1b247f4af1cfc4bb82375623d92e3985b520c00 on GeorgeGorbanev:install_generator_windows_fix into a607ad766d1373444cf68bdbf7c40041f89774ce on shakacode:master.

Coverage increased (+0.001%) to 99.299% when pulling b1b247f4af1cfc4bb82375623d92e3985b520c00 on GeorgeGorbanev:install_generator_windows_fix into a607ad766d1373444cf68bdbf7c40041f89774ce on shakacode:master.

Coverage increased (+0.001%) to 99.299% when pulling 2085aa22a961751bef93831f2571abaf67598556 on GeorgeGorbanev:install_generator_windows_fix into a607ad766d1373444cf68bdbf7c40041f89774ce on shakacode:master.

Coverage increased (+0.001%) to 99.299% when pulling 2085aa22a961751bef93831f2571abaf67598556 on GeorgeGorbanev:install_generator_windows_fix into a607ad766d1373444cf68bdbf7c40041f89774ce on shakacode:master.

Coverage increased (+0.001%) to 99.299% when pulling 2085aa22a961751bef93831f2571abaf67598556 on GeorgeGorbanev:install_generator_windows_fix into a607ad766d1373444cf68bdbf7c40041f89774ce on shakacode:master.

Coverage increased (+0.001%) to 99.299% when pulling 2085aa22a961751bef93831f2571abaf67598556 on GeorgeGorbanev:install_generator_windows_fix into a607ad766d1373444cf68bdbf7c40041f89774ce on shakacode:master.

@justin808  How it looks now?

Reviewed 2 of 2 files at r4.
Review status: all files reviewed at latest revision, 2 unresolved discussions, some commit checks failed.

spec/react_on_rails/utils_spec.rb, line 8 at r4 (raw file):

    %w(cygwin mswin mingw bccwin wince emx).each do |platform|
      RUBY_PLATFORM = platform
      ReactOnRails::Utils.running_on_windows?.should == true

Please see other tests for using the expect format
this will fail on linux -- use a different way of testing the OS to determine the expected result.

Please use this as an example:
https://github.com/shakacode/react_on_rails/blob/master/spec/react_on_rails/generators/version_syntax_converter_spec.rb
https://github.com/shakacode/react_on_rails/blob/master/lib/react_on_rails/version_syntax_converter.rb
follow the pattern not only of the code but where the files are places

Comments from Reviewable

Please resolve the conflict in the CHANGELOG.md with master. Thanks.

some more comments

Reviewed 5 of 5 files at r5.
Review status: 3 of 4 files reviewed at latest revision, 6 unresolved discussions.

CHANGELOG.md, line 19 at r5 (raw file):

### Fixed
- Removed foreman as a dependency. [#678](https://github.com/shakacode/react_on_rails/pull/678) by [x2es](https://github.com/x2es).
- Added checking of OS and fixed generator for Windows.

Please double check that your formatting matches all other entries.
get rid of the ====== and add the PR number and your github info!

lib/react_on_rails/utils.rb, line 43 at r5 (raw file):

      def self.linux?
        OS.unix? && !OS.mac?

Why do we care if mac or unix?

spec/react_on_rails/generators/install_generator_spec.rb, line 168 at r5 (raw file):

def `(*)
what is this syntax?

Comments from Reviewable

@justin808 Thanks for review and sorry for really dirty code. I will follow all your comments.
It would be right to use this method to detect OS?
And can I keep "def `(where)..." to mock windows system calls? Lint will not correctly take it.

I've never seen the def `(where) syntax
I don't see why you will call the wrong command on the wrong OS. That's the point of your fix.
And yes, no need to detect Mac.

This syntax described by Hal Fulton for example. Hope it is not bad style.

I don't see why you will call the wrong command on the wrong OS. That's the point of your fix.
Actually it turns wrong command to correct, so we can test method behavior as it would be correct OS. Better change it?

@justin808 Besides a RUBY_PLATFORM constant method I found method using shell command "uname -s" and method using rbconfig. But all of them require the same regexp-matching. Did you mean one of them?
Also, is it necessary to make new spec for this utility-method when it now tests with "missing_node?"?

Coverage increased (+0.008%) to 99.329% when pulling 182f65ecb8cd826f550dd0ed384a9e9b726b53b5 on GeorgeGorbanev:install_generator_windows_fix into 9f0f63b1c3053f877d44e0f09334e71bb50d5a8d on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 267e75390524d944c8fb748c8e21fdee2c489971 on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 267e75390524d944c8fb748c8e21fdee2c489971 on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 267e75390524d944c8fb748c8e21fdee2c489971 on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 67a7f024263c00e7eb3ee87f899547802951b3ab on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 67a7f024263c00e7eb3ee87f899547802951b3ab on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 67a7f024263c00e7eb3ee87f899547802951b3ab on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 67a7f024263c00e7eb3ee87f899547802951b3ab on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 13cff3feb5b0364a84c26cf1d56f31ef963fd7d0 on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 463ddb664e5202df0dd3a61af531c51511efc1cf on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 463ddb664e5202df0dd3a61af531c51511efc1cf on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 463ddb664e5202df0dd3a61af531c51511efc1cf on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 463ddb664e5202df0dd3a61af531c51511efc1cf on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

@justin808 Fixed all. It works and tests without weird syntax. Also changelog and commits history was cleared. Can I do something else?

Coverage increased (+0.008%) to 99.329% when pulling 463ddb664e5202df0dd3a61af531c51511efc1cf on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Coverage increased (+0.008%) to 99.329% when pulling 463ddb664e5202df0dd3a61af531c51511efc1cf on GeorgeGorbanev:install_generator_windows_fix into dcd2a928a2551efda8e6df974a5c2fa7252d283c on shakacode:master.

Big improvement!

Reviewed 4 of 4 files at r6.
Review status: all files reviewed at latest revision, 6 unresolved discussions.

Comments from Reviewable