Support tab characters for -d

Seems no matter how you try, you can't pass a tab character to -d

Tested with:
~/dev/zindex/build/cmake-build-debug/zindex --delimiter \t --field 1 data.gz --debug --verbose

I downloaded zindex on 2/15/2017
Seems no matter how I try, I can't pass a tab character to -d or to --delimiter
The example in comment from Nov 24, 2016 ( with --delimiter  \t )    does not seem to work.
$ zindex  -f 2 --delimiter \t --debug tab10.gz
Indexing...
Debug: Creating checkpoint at 0 bytes (compressed offset 16 bytes)
Progress: 16 bytes of 107 bytes (14.95%)
Index building complete; creating line index
Debug: Indexing line '1 10583   G       A       PASS'
Debug: Indexing line '1 10583   G       A       PASS'
==========================================
comma delimited:     -d ,     works fine:
$ zindex  -f 2 -d , --debug comma10.gz
...
Debug: Creating checkpoint at 0 bytes (compressed offset 18 bytes)
Progress: 18 bytes of 109 bytes (16.51%)
Index building complete; creating line index
Debug: Indexing line '1,10583,G,A,PASS'
Debug: Found key '10583'
Debug: Indexing line '1,10583,G,A,PASS'
Debug: Found key '10583'

Hi,
which shell are you using? it's feasible something else is interpreting the \t ? Can you try --delimiter \\t ?
I should probably add a --tab-delimiter option to make this easier :/
If that all fails you can try making a JSON description of the index you need.

Hi Matt,$ bash --versionGNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)# Unfortunately, none of these work# Seems odd, because "\t" works fine for awk$ zindex  -f 2 --debug --delimiter \t tab10.gz$ zindex  -f 2 --debug --delimiter \t tab10.gz$ zindex  -f 2 --debug --delimiter "\t" tab10.gz$ zindex  -f 2 --debug --delimiter "\t" tab10.gz#So, I built a file called "tab"...$ cat tab{     "indexes": [        {            "type": "field",            "delimiter": "\t",            "fieldNum": 2        }    ]}# now this works!  finally!!!$ zindex  -f 2 --debug --config tab tab10.gz###############Thanks for your help with this!  I think the --tab-delimiter option is a GREAT idea. Also, the --config option does not show in the --help message or in the short list of options in the USAGE section.NEW QUESTION:(I am new to JSON but not new to MySQL)  Is there a way to combine two fields into a key?   For example, I have a .gz file where the first two (out of 360) columns looks like this (tab-delimited of course):10 1234510 2345610 123456711 2345678X 12345Y 123456I'd like to retrieve lines where col1=n and col2=mTHANKS,Jim Perry
-------- Original Message --------
Subject: Re: [mattgodbolt/zindex] Support tab characters for -d (#26)
From: Matt Godbolt<EMAIL_ADDRESS>Date: Fri, February 17, 2017 5:20 pm
To: mattgodbolt/zindex<EMAIL_ADDRESS>Cc: jim892<EMAIL_ADDRESS> Comment<EMAIL_ADDRESS>Hi, which shell are you using? it's feasible something else is interpreting the \t ? Can you try --delimiter \t ? I should probably add a --tab-delimiter option to make this easier :/ If that all fails you can try making a JSON description of the index you need. —You are receiving this because you commented.Reply to this email directly, view it on GitHub, or mute the thread.

Hi Jim,
Your reply seems to have gotten squashed up a bit so it's a little tricky to understand, so forgive me if I miss something.

weird re '\t' still not working. I think the command-line parsing library I use is swallowing it up as whitespace. I'm reopening this bug to track it.
I'll add a --tab-delimiter option as it seems a common-enough option.
My locally-built zindex shows the option:  -c <indexes>,  --config <indexes>     Create indexes using json config file <file>

Re: your question, it's a little tricky to do that but you'd need to create two indexes, which can only be done by the json configuation. Additionally then querying the index would need to be done with zq --raw.
Creating two indices should be straightforward, just use two entries in the json:
{
  "indexes": [
    {
      "type": "field",
      "delimiter": "\t",
      "fieldNum": 1,
      "name": "first"
    },
    {
      "type": "field",
      "delimiter": "\t",
      "fieldNum": 2,
      "name": "second"
    }
  ]
}

then crafting a --raw query like q --raw 'select a.line from index_first a, index_second b where a.line == b.line and a.key == "aa" and b.key =="bb"'  path/to/thing.gz

Hi Matt,
Thanks for the help with the two indexes and also the good example!
I cleaned up the squashed posting so you can see my example now.   Could I also use a regex to specify a single index?   May something like:  /^.{1,2}\t\d+/   This regex covers the first 2 "fields".   But, I wonder if it will work to have a regex like this that goes across the first two tab-delimited fields?   When I retrieve, I will want the entire line, not just certain fields in the line, so the file could be treated as lines with only one "very long" field.   Would that work?  Can there be no delimiter?
Regards,
Jim

(thanks for the edited post- much clearer now!)
You can definitely use a regex. There's no notion of 'fields' with a regex, you just define something which matches lines you're interested in, and (optionally) which part of that is the key. The whole line is always printed.
So yes, I think something like the regex you should work. NB the regex engine (POSIX) I use doesn't support "\t" or "\d', so be careful with it. zindex --regex '^.{1,2}\s[0-9]+' works well in my local tests. To see what's going on, use --debug and you can see what's matching when building the index.
matthew@danger /tmp> zcat test.gz
aa	1234<PHONE_NUMBER>231231
bb	4444	1aasdhjkl123hjkl12123
matthew@danger /tmp> ~/dev/zindex/build/Release/zindex --regex '^.{1,2}\s[0-9]+' test.gz
matthew@danger /tmp> ~/dev/zindex/build/Release/zq test.gz aa\t1234
aa	1234<PHONE_NUMBER>231231

Hi Matt,
Have to write and say "thanks so much" for developing zindex and for the good tutorial information above.  I have it working now on a gzipped text file that is 58GB zipped (765GB unzipped).   It has 220 million records with 360 columns of information in each record.  I can retrieve any record, based on an index built from the first two column (like in the example above) in ~1 second.   If I feed zq a list of 250 items, I get all results back in about 30 seconds.   I was initially using zgrep which took 12 minutes per search.
More answers on how to specify "tab" for a tab-delimited file:

The trick: put the commands with the tab character in a command file
Or, to enter a tab character from command line:  ctrl-V then the tab key

The search string needs to be in quotes as an argument to zq

#########################################
zcat t2.gz
this is tab character v (not spaces)
zindex --regex '^.{1,2}	[0-9]+' t2.gz
#zindex --regex '^.{1,2}\s[0-9]+' t2.gz      # \s will also match tab
zq t2.gz "aa	1234" > output.txt
cat output.txt
#######################################
Another way:
TAB=$'\t'     # define the tab character
zindex --regex "^.{1,2}${TAB}[0-9]+" t2.gz
zq t2.gz "aa${TAB}1234" > output.txt
cat output.txt
########################################

That's a great success story! Thanks for sharing :)


Use pointer for bool

Json Marshal/Unmarshal would not work with bool value with omitempty. false is treated as empty and gets omitted in the final output. We also want to keep the fields optional to make sure ease of use.
Use pointer to get correct output. https://stackoverflow.com/questions/37756236/json-golang-boolean-omitempty

Doesn't solve the problem.

@Xenorith  Could you help review this? Golang-related only.


[WIP] IDNA upgrade on Android

Failing on
okhttp.android.test.OkHttpTest > testUnderscoreRequest[test(AVD) - 10] FAILED
	java.lang.IllegalArgumentException: Invalid URL host: "example_underscore_123.s3.amazonaws.com"
	at okhttp3.HttpUrl$Builder.parse$okhttp(HttpUrl.kt:1338)

Underscore are not legal in hostnames, hence the test failure.
But it seems to be a tricky question, see this issue in a Python IDNA package https://github.com/kjd/idna/issues/17.

Here is a domain that should be correctly converted with the update while it was not before, if you want to include it in your tests:

U-Label
A-Label

fußball.test
xn--fuball-cta.test

Here is a domain that should be correctly converted with the update while it was not before, if you want to include it in your tests:
U-Label 	A-Label
fußball.test 	xn--fuball-cta.test

fußball.de (exists!) isn't the best example because lowercase works anyway. fußball -> fussball

fußball.de (exists!) isn't the best example because lowercase works anyway. fußball -> fussball

Maybe that is why it's a good test? https://mail.python.org/pipermail/python-dev/2017-December/151503.html

Firefox redirects to www.fußball.de and fails because the cert is for fussball.de
$ cft --host www.xn--fuball-cta.de
Error:  Hostname www.xn--fuball-cta.de not verified:
    certificate: sha256/IcNO01b1bwMEB0NO2fJwlgRHqaXf5cq7MgG+sCSN8/g=
    DN: CN=*.fussball.de, O=DFB GmbH, L=Frankfurt am Main, ST=Hessen, C=DE
    subjectAltNames: [*.fussball.de, fussball.de]

There seems a very real risk that we shouldn't land this because it isn't clear that it's implemented correctly in the wild and it it causes as many new problems as it solves...

If your check .de registry, they provide an IDN converter that does the right conversion. There FAQ also contains useful information.
So, fußball.de and fussball.de are different domains, but in that case it happens that the same registrar got both and performed a redirection from fußball.de to fussball.de.
The fact that Chrome is the most used web browser and does not correctly perform IDNA conversion does not help making the things right, and thus we have that kind of website that needs to set up workarounds to be reached by most users.

Thanks for the link.  I'll add a test for überall-ist.de from that link.

@jj-crypto curious about the approval? Are you affected by this issue? Any example domains that are affecting you?

@j-bernard Not sure it's safe to land, this actively breaks on "_", while Android tolerates it.  It's arguably going to cause more failures than new successes.
     Caused by: java.lang.IllegalArgumentException: nameToASCII error [DISALLOWED]
        at xxx.ICUIDNConverter.toASCII(BBCRadioWearActivity.kt:34)

Makes sense. The best would be that Android fixes it.


Challenge Caesars Cipher has an issue.

Challenge Caesars Cipher has an issue.
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36.
Description
For some reason the runtime environment of the site translates (letterCharCode - 65 - 13) % 26 + 65 into letterCharCode - 65 - 13 % 26 + 65 rendering the loop formula useless.
My code:

function rot13(str) { // LBH QVQ VG!
  return str
    .split('')
    .map(letter => {
      var letterCharCode = letter.charCodeAt(0);

      if (!(letterCharCode >= 65 && letterCharCode <= 90)) return String.fromCharCode(letterCharCode);

      var res = String.fromCharCode(
        (letterCharCode - 65 - 13) % 26 + 65
      );

      console.log(letterCharCode, (letterCharCode - 65 - 13) % 26 + 65, res);

      return res;
    })
    .join('');
}

console.clear();
// Change the inputs below to test
rot13("SERR PBQR PNZC");

My screenshot of the runtime:

@john-d-pelingo I believe this is a coding error. Some letters may need to be shifted 13 places one way, while others may need to be shifted 13 places the other way. Closing for now as I was able to get your code to work with a small change.

@john-d-pelingo I believe this is a coding error. Some letters may need to be shifted 13 places one way, while others may need to be shifted 13 places the other way. Closing for now as I was able to get your code to work with a small change.

I solved this problem with different approach just want to know you guys(@dhcodes, @john-d-pelingo ) views on it.
function rot13(str) { // LBH QVQ VG!
var oldArray = str.split("");
var newArray = oldArray.map(function(val){
var charCode = val.charCodeAt(0);
if(charCode<65){
charCode = String.fromCharCode(charCode);
}
else if(charCode>=65 && charCode<=90){
charCode+=13;
if(charCode >90){
var a = charCode -90;
charCode = String.fromCharCode(64 + a);
}
else
{
charCode = String.fromCharCode(charCode);
}
}else if(charCode>90){
charCode = String.fromCharCode(charCode);
}
return charCode;
});
return newArray.join("");
}
// Change the inputs below to test
rot13("SERR YBIR?");


soc: arm: nrf52810: reduce number of boot-time configured MPU regions

Fixes #13949
nRF52810 Flash and SRAM sizes do not have power-of-two values.
This commit reduces the amount of MPU regions reserved at boot
time to enforce basic permissions in Flash and SRAM memory. It
does this by selecting the next power-of-two size for the Flash
and SRAM regions, respectively. In this way we can cover the
entire Flash and SRAM space each with a single MPU region, thus,
save two MPU regions for use by the kernel/application.
Signed-off-by: Ioannis Glaropoulos<EMAIL_ADDRESS>

I believe it is safe to do this way, because the areas beyond the flash and SRAM boundaries are, anyways, covered by the background map (if MPU is enabled). The only functional difference is that now we even block execution fro the "non-existing" Flash and SRAM areas :) In any case, the additional memory ranges we cover inside the extended Flash and SRAM MPU regions are not implemented on the SOC, and should, anyways, cause BusFaults...

Codecov Report

Merging #13986 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master   #13986      +/-   ##
==========================================
- Coverage   52.23%   52.23%   -0.01%
==========================================
  Files         307      307
  Lines       45447    45447
  Branches    10514    10514
==========================================
- Hits        23741    23740       -1
  Misses      16912    16912
- Partials     4794     4795       +1

Impacted Files
Coverage Δ

arch/posix/core/posix_core.c
90.9% <0%> (-1.02%)
:arrow_down:

Continue to review full report at Codecov.

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


Struggling to upgrade to 3.x

Hey,
I've been reading the release notes, docs and looking again at the sample app but can't figure out how to get our existing ngrx forms reducers into the new approach.
Basically they all do roughly the same thing:

update the entire state of the form from a Http request complete action
apply validation to the form
some custom properties

The examples don't seem to do 1+2+3 together.
Here's an example:
export interface State extends McuViewModel {
  changingPassword: boolean;
  newMcuState: McuStates;
}

export function createState(model: State) {
  return createFormGroupState<State>(
    'callbridges',
    model
  );
}

export const initialState = createState({
  ...new McuService(null, null).newMcu(),
  changingPassword: false,
  newMcuState: McuStates.online
});

const validatePasswordsMatch = (state: FormGroupState<State>) =>
  state.value.password === state.value.confirmPassword ? {} : { match: false };

const validationFormGroupReducer = createFormGroupReducerWithUpdate<State>({
  name: validate<string>(required),
  ipAddress: validate<string>(required),
  ipPort: validate<number>([required, greaterThan(0), lessThan(65536)]),
  password: (control, state) =>
    validate<string>(() => validatePasswordsMatch(state), control),
  confirmPassword: (control, state) =>
    validate<string>(() => validatePasswordsMatch(state), control)
});

const customFormGroupReducer = (state: FormGroupState<State>, action: CallbridgeActions): FormGroupState<State> => {
  switch (action.type) {
    case CallbridgeActionTypes.FetchComplete:
      return createState({
        ...action.mcu,
        changingPassword: false,
        newMcuState: action.mcu.mcuState === McuStates.online ? McuStates.online : McuStates.offline,
      });

    case CallbridgeActionTypes.ToggleChangePassword:
      return updateGroup(
        state,
        { password: setValue(undefined) },
        { confirmPassword: setValue(undefined) },
        { changingPassword: setValue(!state.value.changingPassword) }
      );

    case CallbridgeActionTypes.Save:
      return updateGroup(
        state,
        { mcuState: setValue(state.value.newMcuState) }
      );

    default:
      return state;
  }
};

export function reducer(state = initialState, action: CallbridgeActions): FormGroupState<State> {
  state = customFormGroupReducer(state, action);
  state = validationFormGroupReducer(state, action);
  return state;
}

any pointers you can give would be much appreciated

Think I've got it. One thing that tripped me up is enums have to be cast to string.
i.e. I have a property of enum type McuStates and I had to write the setValue like mcuState: setValue<string>(state.value.newMcuState)

Hmm, I'll look into the support for enum form values.
Looking at the code there is one other thing that may also cause the state to not be properly validated. In v3 I changed the reducer returned by createFormGroupReducerWithUpdate to only apply the update if the form state changed as a result of reducing the action. In your code for example when CallbridgeActionTypes.FetchComplete  is encountered it will re-create the form state but not validate it since the form group reducer doesn't know anything about that action and therefore the state doesn't change. In your case I recommend changing your code to make the validation function explicitly called, i.e. instead of const validationFormGroupReducer = createFormGroupReducerWithUpdate<State>({ use const validateFormGroup = updateGroup<State>({ and then in reducer use state = validateFormGroup(formGroupReducer(state, action)). This way your validation is guaranteed to be applied.

Thank you, @MrWolfZ for the validation fix idea!

Having looked into enums I don't think there is a way for me to do this. The workaround as explained by @philjones88 is simple enough though.


How do I inject stores in navigationOptions function of react-navigation library

const Router = createStackNavigator({
  Session: SessionScreen,
  Content: ContentScreen
},{
  navigationOptions: ({ navigation }) => {
     ...// do something
  }
})

This is my example code, I want to inject store in navigationOptions function like below
inject('store')(({ navigation }) => {
     ...// do something
  })

but it didn't work and show error massage like below

I have never used react-navigation, but based on a quick research, you may try something like:
const Router = createStackNavigator({
  Session: SessionScreen,
  Content: ContentScreen
},{
  navigationOptions: ({ navigation, screenProps }) => {
    console.log(screenProps.store1)
    console.log(screenProps.store2)
  }
})
const RouterWithStores = inject(stores => {
  return {
    screenProps: {
      ...stores,
    },
  }
})(Router);

It did not work. The only place inject seem to work is where you export default your component. inject(stores=> { console.log('stores: ' + stores);} outside class declaration does not run. Running inject inside onPress event handler does not run


added ToString() in schema.h and added corresponding test in schema_t…

…est.cc

All ready for another look. Thanks @bgogul!


fix(top-app-bar): change scrollTop to offsetTop in getViewportScrollY

I signed it!
related to #401

Codecov Report

Merging #771 into rc0.12.0 will not change coverage.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           rc0.12.0     #771   +/-   ##
=========================================
  Coverage     95.14%   95.14%
=========================================
  Files            73       73
  Lines          2924     2924
  Branches        449      449
=========================================
  Hits           2782     2782
  Misses           46       46
  Partials         96       96

Impacted Files
Coverage Δ

packages/top-app-bar/index.tsx
100% <100%> (ø)
:arrow_up:

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 b9b468d...3555e82. Read the comment docs.

@TroyTae, isn't scrollTop and offsetTop the same value? Is this change necessary. Also I cannot get the tests to pass locally. Can you?

@moog16
I understand purpose of function "getViewportScrollY" is that gets scrollTarget's scroll distance.
But offsetTop returns distance between current DOM and offset parent DOM.
So I change that from offsetTop to scrollTop.

@moog16

I can pass all of tests well.
Can you show me your error log?

WARN: 'Warning: testdouble.js - td.verify - test double was both stubbed and verified with arguments (), which is redundant and probably unnecessary. (see: https://github.com/testdouble/testdouble.js/blob/master/docs/B-frequently-asked-questions.md#why-shouldnt-i-call-both-tdwhen-and-tdverify-for-a-single-interaction-with-a-test-double )'
Chrome 73.0.3683 (Linux 0.0.0): Executed 108 of 1102 SUCCESS (0 secs / 0.106 secs)
WARN: 'Warning: testdouble.js - td.verify - test double was both stubbed and verified with arguments (), which is redundant and probably unnecessary. (see: https://github.com/testdouble/testdouble.js/blob/master/docs/B-frequently-asked-questiWARN: 'Warning: testdouble.js - td.verify - test double was both stubbed and verified with arguments (), which is redundant and probably unnecessary. (see: https://github.com/testdouble/testdouble.js/blob/master/docs/B-frequently-asked-questions.md#why-shouldnt-i-call-both-tdwhen-and-tdverify-for-a-single-interaction-with-a-test-double )'
Chrome 73.0.3683 (Linux 0.0.0): Executed 134 of 1102 SUCCESS (0 secs / 0.165 secs)
WARN: 'Warning: testdouble.js - td.verify - test double was both stubbed and verified with arguments (), which is redundant and probably unnecessary. (see: https://github.com/testdouble/testdouble.js/blob/master/docs/B-frequently-asked-questiChrome 73.0.3683 (Linux 0.0.0) TopAppBar #adapter.getViewportScrollY test for changing scrollTarget FAILED
	AssertionError: expected 150 to equal 0
	    at Context.<anonymous> (test/unit/index.tsx:66744:19)
Chrome 73.0.3683 (Linux 0.0.0): Executed 1042 of 1102 (1 FAILED) (0 secs / 1.004 secs)
Chrome 73.0.3683 (Linux 0.0.0) TopAppBar #adapter.getViewportScrollY test for changing scrollTarget FAILED
	AssertionError: expected 150 to equal 0
Chrome 73.0.3683 (Linux 0.0.0): Executed 1102 of 1102 (1 FAILED) (1.347 secs / 1.017 secs)
TOTAL: 1 FAILED, 1101 SUCCESS

Also getting 2 warnings, which I don't exist in master

I'm actually on Linux, what OS are you on? My MacOSx works fine.

@moog16
This warning prints by testdouble and here is reason.(https://github.com/testdouble/testdouble.js/blob/master/docs/B-frequently-asked-questions.md)
And they recommend to use td.explain about this situation.
So I changed it!

@moog16
I test it with Win and Mac.
Maybe I need to install Linux 😅
Can you tell me your linux version?

NAME="Debian GNU/Linux"

Ummmmmmm
I can see another issue in my case, not my test code.

That's strange. That is on Linux? You didn't touch label, so something else must be up with the environment. Try running it on master for good measure.

@moog16
I test it on master branch and I can see same issue.
So I modified the label test code first.
Can you check it again please?

@TroyTae I'm seeing it pass on master, fail on this branch -- it is also failing on Travis.

@moog16
I reviewed my code but it's hard to think the code is wrong.
I guess lower version browser of lower version os makes this error.
So I fix code for supporting lower version.
I'm so sorry one more check please 😢

@TroyTae I appreciate the effort your are putting into this, however I'm not sure why we need this change. I'm not sure what you mean in this comment https://github.com/material-components/material-components-web-react/pull/771#issuecomment-476493479

@moog16
https://github.com/material-components/material-components-web-react/issues/401#issue-376503885
https://github.com/material-components/material-components-web/pull/2914/files#diff-23ddc28e64221729a4d88134f69c1f05R110
I saw you already write same code with me.
And as I said in the comment, I think this method have to return scrollTarget's scroll distance.
However offsetTop doesn't return that so I changed it.

@TroyTae I totally forgot that I made that change in Web! Sorry. I didn't understand your description of scrollTop vs offsetTop.
Regarding the tests, I'm not sure what's going on with them. I'll investigate.

I think the changes I recommended will fix it. I'm thinking that the linux puppeteer version does not scroll.

Oh my god that's sad.
I reflect your review and delete code element.scrollTo(x, y).

@TroyTae what is sad? I'm not following. Ready for review again?

@moog16
Ah I want to talk "That't sad we cannot scroll test".
Yes check my code please.

Ah ya...its too bad it doesn't work on Linux. We should actually add a comment there explaining why we don't test against the value 150.

@moog16
Thank you for your review!
I added explanation comment.

Thanks @TroyTae !


Tracking Issue for --crate-type flag

Summary
RFC: #3180
Implementation: #10093
Documentation: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#crate-type
This is the tracking issue for RFC 3180 which adds the --crate-type argument to cargo rustc to explicitly change the crate type of the crate being built.
Unresolved Issues
No response
Future Extensions
No response
About tracking issues
Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.

I would like to try to add it. Can I claim it?

Sure! I don't think anyone else has expressed interest.
Let me know if you have any questions.  For handling unstable support, fail_if_stable_opt can be used to require -Z unstable-options.
I'm not sure about the best way to pass the information down to the right place.  I'm thinking adding another map to BuildContext similar to extra_compiler_args might be a good option for now. Then the points where the crate-type is selected can consult that map to see if there is an override.

I tried this out in hyper today, and hit errors. Filed https://github.com/rust-lang/cargo/issues/10356

Is making this feature stable on hold until the cargo team has additional review capacity? If not, what needs to happen to get this over the finish line?
I assume we just want to wait to see if anyone runs into more issues, but how long should we wait?

Yes, I think we need to wait a little longer.

It's been a little over two months since I last asked so I thought I'd poke this issue once more.
I took a look at the cargo issue tracker and could find no open issues about the --crate-type flag nor any issues opened and then closed in the past two months.
I asked last time how long the team would like to wait, though I didn't get any answer. I understand if this is something that is more of a gut feeling.
I'm sorry if I'm being a bit of a bother, I know I'm just being impatient.

@ehuss What do you think? Should we stabilize it now?
I'm happy to help stabilize it if needed.


Google OAuth Not Working - The OAuth client was not found.

Describe the bug
I am trying to use OAuth with Google. Its always complaining with error
"Access blocked: Authorization Error
The OAuth client was not found.
If you are a developer of this app, see error details.
Error 401: invalid_client"
To Reproduce
Steps to reproduce the behavior:
Just save below code into app.py and run chainlit run app.py -w

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
It should have prompted to select google account and login. after that it should have redirected to my regular chat app.
Screenshots

Desktop (please complete the following information):

OS: Windows 11
Browser : Chrome and Firefox
Version : chainlit                                 1.1.306

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.
a) Code
****  I have setup environment variables
OAUTH_GOOGLE_CLIENT_ID
OAUTH_GOOGLE_CLIENT_SECRET
and here is code:
from typing import Dict, Optional
import chainlit as cl
import os
os.environ["OAUTH_GOOGLE_CLIENT_ID"] = "xxxx.apps.googleusercontent.com"
os.environ["OAUTH_GOOGLE_CLIENT_SECRET"]= "SecretPass"
os.environ["CHAINLIT_AUTH_SECRET"]="xxxxxxxxdkmYlv3IzT25nm8P"
print(f"H:{os.environ.get('OAUTH_GOOGLE_CLIENT_ID')}")
@cl.oauth_callback
def oauth_callback(
provider_id: str,
token: str,
raw_user_data: Dict[str, str],
default_user: cl.User,
) -> Optional[cl.User]:
print("In callback ")
return default_user
@cl.on_message
async def main(message: cl.Message):
# Your custom logic goes here...
# Send a response back to the user
await cl.Message(
    content=f"Received: {message.content}",
).send()

b) Debug logs
2024-07-22 16:10:40 - File modified: app.py. Reloading app...
←[32mINFO←[0m:     <IP_ADDRESS>:62892 - "←[1mGET / HTTP/1.1←[0m" ←[32m200 OK←[0m
←[32mINFO←[0m:     <IP_ADDRESS>:62896 - "←[1mGET /auth/config HTTP/1.1←[0m" ←[32m200 OK←[0m
←[32mINFO←[0m:     <IP_ADDRESS>:62897 - "←[1mGET /project/translations?language=en-US HTTP/1.1←[0m" ←[32m200 OK←[0m
←[32mINFO←[0m:     <IP_ADDRESS>:62897 - "←[1mGET /login HTTP/1.1←[0m" ←[32m200 OK←[0m
←[32mINFO←[0m:     <IP_ADDRESS>:62897 - "←[1mGET /logo?theme=dark HTTP/1.1←[0m" ←[32m200 OK←[0m
←[32mINFO←[0m:     <IP_ADDRESS>:62896 - "←[1mGET /auth/oauth/google HTTP/1.1←[0m" ←[33m307 Temporary Redirect←[0m

The auth callback url generated is /callback rather than /auth/oauth/google/callback

I figured it out. issue was mainly the way env variables were being set


Warn about the bonus favicon request from browser clients

Because people get bitten by it!  Supersedes #1330 - to my mind this is a more discoverable place for a warning.
Content must go through a pre-merge checklist.
Pre-Merge Content Checklist
This documentation has been checked to ensure that:

[ ] The title, template, and date are all set
[ ] Does this PR have a new menu item (anywhere in templates/*.hbs files) that points to a document .md that is set to publish in the future? If so please only publish the .md and .hbs changes in real-time (otherwise there will be a menu item pointing to a .md file that does not exist)
[ ] File does not use CRLF, but uses plain LF (hint: use cat -ve <filename> | grep $'\r' | wc -l and expect 0 as a result)
[ ] Has passed bart check
[ ] Has been manually tested by running in Spin/Bartholomew (hint: use PREVIEW_MODE=1 and run npm run styles to update styling)
[ ] Headings are using Title Case
[ ] Code blocks have the programming language set to properly highlight syntax and the proper copy directive
[ ] Have tested with npm run test and resolved all errors
[ ] Relates to an existing (potentially outdated) blog article? If so please add URL in blog to point to this content.

CI failure is unrelated broken links - fixed in #1344


doesn't work with autosave

I have to press cmd+S to trigger the auto compile even though I have Atom's Autosave enabled.

Just published version 0.4.1 that should fix this.


Update withings-api to avoid data parsing bugs.

Breaking Change:
None
Description:
Previous versions of withings api had data parsing bugs that could cause instability.
Related issue (if applicable): fixes None
Pull request with documentation for home-assistant.io (if applicable): None
Checklist:

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

If user exposed functionality or configuration variables are added/changed:

[X] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[X] The manifest file has all fields filled out correctly. Update and include derived files by running python3 -m script.hassfest.
[X] New or updated dependencies have been added to requirements_all.txt by running python3 -m script.gen_requirements_all.
[X] Untested files have been added to .coveragerc.

If the code does not interact with devices:

[X] Tests have been added to verify that the new code works.

Removing this from the milestone because a lot has changed to Withings since the 101 release.


release: 3.3.0

Travis fails because the changelog links to the v3.3.0 tag which will be created after merging.


can't find the .cptk file

Thank you for your contribution to Arabic NLP,
I am trying to tune (continue pre-training) the pre-trained model on more task-specific data, and I can't download the model weights, specifically, I need the .cptk file.

Hi,
I haven't upload .ckpt file to huggingface portal. I will upload it as soon as possible. in the mean time you can convert pytorch model to tensorflow checkpoint using this script: convert_bert_pytorch_checkpoint_to_original_tf.py from transformers library.


Document how to build

Short Description of the issue
Update the README with clear instructions on how to install dependencies and build the site

Summary of proposed changes

Fixed by #33


Last update e7bbd1e...86a86ad


Unable to create aab when using this package

BlueWallet use this package, and I notice that when I try to build bundle I got problems.
I execute the command:
./gradlew bundleRelease
but I get at the end of the process error:
Unrecognized native architecture for directory 'lib/arm64'.
If I try to build APK with:
./gradlew assembleRelease
It works without error, but it's not really helping me.
I saw that when I remobe the implementation of aar from the build gradle file the build success, I guess there is problem with handle of so files for arm64.
Someone can help me?

why is this ticket closed?
related: https://github.com/BlueWallet/BlueWallet/issues/4235


Fixed memory leak warning

Fixed memory leak warning removing the message listener after socket
disconnect

I don't even have tests for this since it's a sample server, but it looks good to me from a quick code review. Thanks for the contribution!


[InvalidOperationException: The same key was already used for another template!]

I am using,
Engine.Razor.RunCompile(template, "pop", products.GetType(), products);
[InvalidOperationException: The same key was already used for another template!]
   RazorEngine.Templating.<>c__DisplayClass1.<AddDynamic>b__0(ITemplateKey k, ITemplateSource oldSource) +91
   System.Collections.Concurrent.ConcurrentDictionary`2.AddOrUpdate(TKey key, TValue addValue, Func`3 updateValueFactory) +71
   RazorEngine.Templating.DelegateTemplateManager.AddDynamic(ITemplateKey key, ITemplateSource source) +85
   RazorEngine.Templating.RazorEngineService.AddTemplate(ITemplateKey key, ITemplateSource templateSource) +27
   RazorEngine.Templating.DynamicWrapperService.AddTemplate(ITemplateKey key, ITemplateSource templateSource) +14
   RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String templateSource, String name, Type modelType, Object model, DynamicViewBag viewBag) +58

As the exception says: You already the key "pop" for another template. I close this as this looks like expected behavior. If you can show a testcase when this happens on the first call I will re-open this.

You mean for each template I should have different name. What about,
Engine.Razor.RunCompile(template, template, products.GetType(), products);

OK I did with MD5,
    Engine.Razor.RunCompile(template, GetMd5Hash(template), products.GetType(), products);

       private static string GetMd5Hash(string input)
        {
            var md5 = MD5.Create();
            var inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
            var hash = md5.ComputeHash(inputBytes);
            var sb = new StringBuilder();
            foreach (byte t in hash)
            {
                sb.Append(t.ToString("X2"));
            }
            return sb.ToString();
        }

Basically the idea is that this key is used for caching purposes, so it doesn't make sense to re-use it for multiple templates.
The other thing is that the API is designed in a way so that you don't need to provide the template source code at all: http://antaris.github.io/RazorEngine/#Set-a-template-manager
If you provide a template manager you can just write
Engine.Razor.RunCompile("home.cshtml", products.GetType(), products);

I have the same sort of issue going on here. I think the underlying problem is that it isn't invalidating and updating the cache when a template changes.
For example, say I am reading a .cshtml file from disk as my template and then I make a change to that file. I would expect that RazorEngine would update its cache with my new file, but instead it throws "The same key was already used for another template!" exception.

Please also follow the discussion on https://github.com/Antaris/RazorEngine/issues/232

I'm a bit confused about this and the doc isn't really clear...
My use-case :

A web app that sends emails. The template for the email is editable and stored in the database.

So I'm expecting RazorEngine to do this simple task:
Combine the template with some data into a string that I can email.
Now, from what I understand (because I got the exception from this issue), it's not as simple as I would have expected. RazorEngine's API forces me away from my simple use-case into using a template manager and caching stuff. It would be nice to document more the reason behind why this is necessary. What I found out here (correct me if wrong) and isn't well documented on the website:

When a template is compiled, the associated memory cannot be freed.
(Because assemblies can't be unloaded)
Since creating a new templates has a memory cost that can't be freed, it's kind of a memory leak and therefore it must be done as few times as possible ? (and that's why there's all that Caching/Template management stuff).

So based on these facts, what would be a the best approach for a web app that has several templates that can change during runtime ?
As suggested by imran1231, I could generate a md5/sha1 of the template and use it as a key ?
That would ensure that the cached template is reused until it changes. Hopefully the template doesn't change very often which will limit memory usage. Or is there a better way ?
And, as per recommendation from #232, what would be the benefit of implementing a custom manager/caching/invalidating if the memory associated with an old template cannot be released ?

I find this a major problem with RazorEngine, the situation for dynamic templates is a real use case.  And some kind of option to replace the cached template or to remove it should be implemented without having to create a caching provider.
I understand your point that caching should not be replaced once implemented, but in the real world this is driving my designers crazy,  they have to restart the app pool after every design change.  Looks like the MD5 workaround is the only easy option for now!

I really don't know what else I could write (see #232)

Yes, I posted on that thread as well :-)
It's a shame you can't find a work around for this.  I'm no expert in this area so I'll bow to your judgement, but I do think it's holding the project back.  I've implemented the MD5 workaround and that seems to work well, but it's not very elegant.
Maybe a option on the config to allow this kind of multiple temnplatekey might be a solution, after all in most use case the templates will not be changed.  It's just a major problem in development more than anything!
I do like this project, but I just don;t have the time to get deep into this kind of complexity, but the MD5 workaround solves my problem for now.
Thx for you work on this.

I agree with @leedavi
I have as well used the MD5 workaround, and again, it solves my problem for now.
Are there are future updates regarding this fix please?
Thanks

My solution (don't now where i got it from) is to disable the temp file locking:
add this before your compile command:
`
var config = new TemplateServiceConfiguration();
config.Language = Language.CSharp;
config.EncodedStringFactory = new HtmlEncodedStringFactory();
config.DisableTempFileLocking = true; // this seems to be the relevant part
var service = RazorEngineService.Create(config);
Engine.Razor = service;
`

@mstrojek @imran1231 @leedavi
as per the mstrojek, I changed the configs . and I got this message
C:\Users[user_account]\AppData\Local\Temp\RazorEngine_qeouaznq. ett' manually!
Now when want to revert back i.e to the task automatically, config.DisableTempFileLocking = true;  is not working

This is working fine for me.
string templateContent = "Hey, i am content";
string razorTemplateName = "emailTemplate";
bool isTemplateCached = Engine.Razor.IsTemplateCached(razorTemplateName, null);

if (!isTemplateCached)
{
      var layoutSource = new LoadedTemplateSource(templateContent);
      Engine.Razor.AddTemplate(razorTemplateName, layoutSource);
      Engine.Razor.RunCompile(templateContent, (razorTemplateName), null, (object)_model);
}
else
{
      Engine.Razor.Run(razorTemplateName, null, (object)_model);
}


Added Class-side content

Ping

Looks good.

@jecisc still need your review to be able to merge :-(


Editing files in Filemin returns empty editor field

I have the latest version of Authentic Theme and Filemin, I cannot edit any of txt/php files. I'm not saying it's a bug.... however,
do others have the same problem? It worked before...
Regards

I have things working just as expected. Opened PHP file and edited it successfully. Make a video-screencast. What exactly doesn't work for you?

Please have a look the screencast at: http://screencast-o-matic.com/watch/coXTX2hr7m

The only thing that could be happening is that your session expired. While your trying to access Filemin being unauthorized, it just hangs.
As you reload the page, it should take you to login screen.
I see no left menu? Where is it?

Hi,
I'm logged in, the session is OK. There is a left menu, I just cropped it using screen casting. Done some other tests, and still cannot edit files, other Internet Browsers the same... No errors in debugger. Any other idea what to do?

Any special settings for  minserver? What version of Webmin/Filemin you got?

No special settings... I guess
Webmin 1.770
Filemin 0.9.6

What OS browser did you take the screencast?

Windows 7 and FireFox  v42

Can you got to console, open Network tab, fileter XHR requests only and click this button. What is the server's reply?

Well there is no error, however I discovered something... I don't want to publish sensitive server data online, so could you please reply for my email and I will email you full screen cast   reply please for<EMAIL_ADDRESS> of course if needed...
but first have a look this: http://screencast-o-matic.com/watch/coXOXwh3Fl

It seems like stuck cache. Can you clean all browser's cache and stored temporary data. Probably trying in incognito mode?

This didn't help. Removed cache using ccleaner + in the browser + open incognito mode, and the problem still there ;(

I will reload to my test Windows installation to check in Firefox 42. Will come back to you later after that!

Thank you, do you know why:

the latest Opera, Chrome FF not working, I don't think this is Internet Browser related... but who knows...

redirect cookie belongs to the theme. I have the reset too, it's ok. You shared sid. I would logged out and log in again as soon as possible.

Ups... Thank you so much for this advice ;) Shall I change the password? Just in case?

No, you should not.
I have checked your issue in my Windows installation - all is fine. In all browsers, even Microsoft Explorer and Edge.

Do you use https connection?

Does regular listing through directories feature work in Filemin?

Also check in theme settings that you didn't load broken CSS extension!?

I use https connection,regular listing through directories feature is working fine in Filemin, and I don't use aby customers CSS. I use only 1 additional module, which is csf Firewall.

I honestly don't see an issue here and don't understand how come it doesn't work only for you!?

Thank you for the help. The problem is with my PC, because editing files working on my smartphone using FF Android... I have to format my PC now....

Alright, I see! I deeply recommend Linux distribution, like Fedora 23, for example!

 I had no problem on Android FF, however I still cannot edit files on stock Internet Browser from Cyanogenmod 5.1.1
It must be a problem with my server (...)
I'll make more tests to find out where the problem is.

Alright! Let me know if you find anything! Cheers.

Not sure what I have done but it is working now for me. I uninstalled the theme including the Filemin, installed it back and it is working.  ;)  now I can see what I'm editing.

Good to hear! ;)

Got it!
I can retrieve that problem.... and I think this is a bug...
Editing files aren't possible when I start Filemin from the Favorites, and Virtualmin tab is active... When Webmin tab is active editing files are possible ;)

Great point, pal! Confirmed! I will fix it in 17.21! Thanks!

Is it a theme bug or Filemin bug?

This is the theme bug, I think! I see in code.

Ah, OK :)

I hope I'll have some time after NY to fix existing FM bugs :)))

Sure! But in general it works very well. Thank you!

Well, there're still some major issues :D

Let's nail it down then! :D

I have the same problem, but in some directorys editor works, in some not. I dont know if that matters, but it is a new created sub-domain in which edit it is not working.
Please see the youtube video: https://www.youtube.com/watch?v=vwCbevHb2c8

It looks like you simply don't have permissions to read a file. In case you try Gray Theme just to test, what result do you get? The same, right?

no in gray theme it shows everything

What are the actual URLs that are being requested in case of non-working and working file editor? The easiest way is to open console and take a look at Network tab or switch to Gray Theme and copy link's URL, while hovering on the editor's icon.

What are the actual URLs that are being requested in case of non-working and working file editor? The easiest way is to open console and take a look at Network tab or switch to Gray Theme and copy link's URL, while hovering on the editor's icon.

I deleted the cache of the Browser (Chrome) and then it worked


[BugFix] Fix hudi s3 connector

Get cloud configuration from connector if any
What type of PR is this:

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.2
[ ] 3.1
[ ] 3.0
[ ] 2.5

[BE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[FE Incremental Coverage Report]
:heart_eyes: pass : 7 / 7 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/catalog/HudiTable.java
7
7
100.00%
[]

[BE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[FE Incremental Coverage Report]
:heart_eyes: pass : 7 / 7 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/catalog/HudiTable.java
7
7
100.00%
[]

@Mergifyio backport branch-3.2

@mergify backport branch-3.1


Cannot change text color of text element

Bug Description

Whenever I want to change the text color of a text element, it won't let me. The color is immediately reset to black / the original color.
Expected Behaviour

I should be able to change the text color
Steps to Reproduce

Insert text element
Try to change color

Screenshots

https://user-images.githubusercontent.com/841956/144714614-d7da5495-d73f-449c-b1b7-2183a5919d63.mov
Additional Context

Plugin Version: 1.16.0-alpha
WordPress Version: 5.9 Beta 1
Operating System: macOS
Browser: Chrome

Hm, not able to reproduce this in local nor in QA on main --  could you try again just in case on the current main to see if you can still reproduce it?

Weird, now I can't reproduce it anymore either 🤔
Sorry for the false alarm!


after MatDialogService.AskAsync closes you can't scroll anymore

Describe the bug
When calling the MatDialogService.AskSync to show a popup, mdc-dialog-scroll-lock gets added to .
When the user clicks on one of the supplied answers, the dialog closes, without removing the mdc-dialog-scroll-lock.
To Reproduce
private async Task OnDelete()
{
    var result = await MatDialogService.AskAsync("Are you sure?", new string[] { "Yes", "No" });
    if (result == "No") return;

    //... do the delete
}

Expected behavior
The dialog should properly close, and remove the scroll lock

I was trying to debug this further. mdc-dialog-scroll-lock appears in matBlazor.js. Is there a non minified source version of this somewhere?


Fix ambiguous grammar

The grammar has always had some ambiguities, but it's been getting a bit worse. Someone who enjoys parsers should take a look at fixing this—they would be free to make changes to the concrete notation if it helped.

Fixed by #271.


It looks like the special character · can't be done

Describe the bug
Hello,
My company uses easy markdown for our back office to write news for our website. But I can't get the special character "·" with easy markdown. Bigger problem, the request even freezes my browser !
To Reproduce
I usually get that special character "·" without any problem (for example on gmail, on facebook, on twitter...) with the keyboard sequence Shift + alt + f, without any problem. But it doesn't work on easy markdown creator. It even freezed my browser, i had to close my browser and reopen it.
Expected behavior
I would have expect the special character to appear.
** Version information **

OS:  MacOS Mojave 10.14.3
Browser: Firefox 66.0.2

Cannot reproduce this problem on Firefox 66.0.3 or in Edge on windows 10

I haven't been able to reproduce this issue either.
Copy-pasting the character does not cause any issues for me in Firefox or Chrome, Linux Ubuntu 18.04.


The user should be able to choose the imbalance price for electricity

If there are no more dispatchable plants left in the merit order calculation, the model imports electricity and assumes a price of 140 EUR/MWh. I remember this price being based on historic values or something like that or a multiplier of the most expensive plant.
This is not very transparent to the user and I think we should turn this into a slider of some sort.
Happy to hear your ideas!

This is not very transparent to the user

Agreed

Happy to hear your ideas!

How about:

an extra sidebar item "Electricity import" in the costs tab
the slider sets an absolute value for the costs of imported electricity
a chart (bar) shows for both present and future (average or max) costs of nationally produced and imported electricity. The future costs are set using a slider, default is present costs. The costs of nationally produced electricity can be used as inspiration for the slider setting (do the costs of electricity increase or decrease?)
do we have information regarding present costs of imported electricity?

an extra sidebar item "Electricity import" in the costs tab
the slider sets an absolute value for the costs of imported electricity
a chart (bar) shows for both present and future (average or max) costs of nationally produced and imported electricity. The future costs are set using a slider, default is present costs. The costs of nationally produced electricity can be used as inspiration for the slider setting (do the costs of electricity increase or decrease?)
do we have information regarding present costs of imported electricity?

I like it!
Perhaps we can show an extra line in this chart?

Also, I now realise that I made a mistake in my description of the issue. We assume a price for import but we also assume another price when even import is depleted.
@antw isn't it something like this:

If most expensive dispatchable plant is running, assume some price A
If more electricity is needed than the most expensive dispatchable plant can provide, assume another price B?

If most expensive dispatchable plant is running, assume some price A
If more electricity is needed than the most expensive dispatchable plant can provide, assume another price B?

Correct. The price is the most expensive plant which is running. If demand exceeds supply, the price is the most expensive plant × 7.22.


Re-architect widget-load and data transfer workflow

Description
Capturing this in a new issue after lengthy discussions and issues captured here:

https://discourse.nodered.org/t/how-to-sync-the-full-config-between-server-and-client-side-state/89252/80
https://github.com/FlowFuse/node-red-dashboard/issues/1117

Widget Load Loses State
The problem can be seen in the Events Architecture here:

Note that in the widget-load event, there is no reference to the state store, so when a user navigates away from a page, updates to that store can occur, but the widget-load events is not aware of them.
Loosely thinking, we need to have something like:

Data Store Changes
There is also merit here in swapping how the datastore is used - rather than being a full msg store - we could treat it like state in that it's a singular, cumulative reference to the data for a single widget. For example, if msg.payload and msg.otherProperty are sent in different messages, they would still be stored in the same place, and would be replayed accordingly.

I am confused about the relation between the widget-load event and mounted(). In a third party node in mounted() the state store is passed in, so it isn't necessary to include in widget-load.

mounted() is just a VueJS event to saw the HTML has loaded.
I think the state passed in that you're referring to is on the component definition, and I'll likely be removing it. It was part of an old design pattern that can be cleared out as only one widget (ui-button) still uses it, and it doesn't actually need to.
widget-load is the event that the component uses to tell the server-side "I'm ready, send me the latest info you have please", which, up until this issue, has only been the latest msg received by that widget.
What we're now proposing is introducing the server-side state here  (from the statestore) too so that the widget is aware of any changes made between the initial configuration (being sent in ui-config) and the widget-load event

It was part of an old design pattern that can be cleared out as only one widget (ui-button) still uses it, and it doesn't actually need to.

Isn't it the mechanism by which, at the moment, third party nodes receive the node config?  Won't removing that break all existing third party nodes? Or is it just me doing it the wrong way?

Node config comes in via props on a component at the moment - this will still be the case

Oh, I see, I presume that is what this does
    props: {
        /* do not remove entries from this - Dashboard's Layout Manager's will pass this data to your component */
        id: { type: String, required: true },
        props: { type: Object, default: () => ({}) },
        state: { type: Object, default: () => ({ enabled: false, visible: false }) }
    },

So props and state are automagically available, but when navigating away and back again the state is not updated to the latest, hence the problem you are addressing here.  My nodes work because I am picking up the state in mounted(), which is re-run on navigation away and back again, giving me the latest values.  Are you sure it is not better just to make that the recommended way?

huh - I'd completely forgot I implemented that, maybe I need to re-consider this again... back to the drawing board

This behaviour was also mentioned in #871
From my understanding, not all widgets generate a widget-load event, for example ui-button, this behaviour should be standardized for all widgets (at least core widgets), upon being mounted (loaded, either via page refresh or via page/tab change) the configuration props or msg.ui_update should be updated for each widget in the page, if no configuration exists in the store maybe a empty message should also be sent, to indicate no configuration pending for example...
Maybe a better place would be on file ui_base.js in the function async function onLoad (conn, id, msg) {, to add all the contents of the statestore to a msg.ui_update and emit a widget-load event that will be catch by data-tracker.mjs that will send to the widgets, for this to work the widgets must have the onLoad handler defined and handling the message, or data-tracker on seeing the message has ui_update calls onDynamicProperties event.

if no configuration exists in the store

Which store?
I don't know what is wrong with the current implementation. mounted provides the latest props and state store, widget-load provides the data store, if any.

not all widgets generate a widget-load event, for example ui-button
A button never has anything in the data store, so that is ok.

this behaviour should be standardized for all widgets (at least core widgets)

This is my plan for this issue, and what I'm working on as we speak

Maybe a better place would be on file ui_base.js in the function async function onLoad (conn, id, msg) {, to add all the contents of the statestore to a msg.ui_update and emit a widget-load event that will be catch by data-tracker.mjs that will send to the widgets, for this to work the widgets must have the onLoad handler defined and handling the message, or data-tracker on seeing the message has ui_update calls onDynamicProperties event.

Precisely what I'm doing 😄

I don't know what is wrong with the current implementation

If you pass a ui_update to a node that's not on a page you're viewing now, and then navigate to that page, you will not see the effects of it. You will, if you then refresh the page. The widget-load event contains zero reference to anything in our server-side statestore (where we save dynamic options)

If you pass a ui_update to a node that's not on a page you're viewing now, and then navigate to that page, you will not see the effects of it.

You do, provided the ui_update has updated the state store in the server.

I guarantee you do not @colinl - we've had many users report the bugs and I can see that problem locally. By "navigate to that page", I mean via the sidebar btw. If you navigate directly to it, it will work because the ui-config event is fired then.

Which store?

Regarding ui_update would say is the statestore -> require('../store/state.js')

You do, provided the ui_update has updated the state store in the server.

The ui_update is currently being updated on the statestore on server side when a new message is sent by node-red, but it is not currently being restored to re-send the configuration to the widget, that is the point of this and some other issues / discussions.
In most cases on a page refresh it works since the function function emitConfig (socket) { in ui_base.js handles that correctly (to get the values from statestore, to send the configuration to the widget but in the props property, if the widget is not expecting to have the configuration in question in the props (like in the ui-dropdown related to issue #1117) it never receives it even in a page refresh.

@arturv2000 FYI I've just settled on some large changes to how we're handling front-end dynamic properties, will be providing a new API to make this a lot easier. I'm updating docs now, and will push a draft PR.
I'll be sweeping through myself and updating any existing use of dynamic, but wanted to give you a heads up as I know you were working your way through a few of these.

I guarantee you do not @colinl - we've had many users report the bugs

I was referring to my nodes, which do not suffer from the problem. Updates saved in the state store are seen in mounted() on a page change.

Okay, I don't know what you're doing different to core then in order to achieve that, but I have seen a flaw in the architecture based on the bug reports, and I'm fixing now.
If I recall correctly, you were using datastore, and not statestore - the former works, the latter does not

Aargh, now I am confused. I do see the problem on a new node I am working on, but not on the classic gauge node.  I will have to look and see what the difference is.

Don't worry, a fix for all of this is incoming

If I recall correctly, you were using datastore, and not statestore - the former works, the latter does not

Yes you are right, that explains it.  Sorry again.

Don't worry, a fix for all of this is incoming

If it is likely to break existing nodes it would be good to have a gap between merging into main and release so testing and updates can be done.

If it is likely to break existing nodes it would be good to have a gap between merging into main and release so testing and updates can be done.

If all goes to plan, this shouldn't break anything. It'll just provide a new API to interface with, and argument for widget-load which will help you load the correct data

@arturv2000 FYI I've just settled on some large changes to how we're handling front-end dynamic properties, will be providing a new API to make this a lot easier. I'm updating docs now, and will push a draft PR.
I'll be sweeping through myself and updating any existing use of dynamic, but wanted to give you a heads up as I know you were working your way through a few of these.

Yes, i have been trying, there is one PR #1059 related to that, that would presumably solve the issue for ui-button, for the rest of the widgets would need to be updated / Verified for similar changes. That PR was an attempt to solve the issue without too many changes but obviously not the ideal way to do that...
I will close that PR and wait for your implementation to do some testing/possible feedback when the PR starts coming.

That PR was an attempt to solve the issue without too many changes but obviously not the ideal way to do that...

yeah, I've just had to rip the band-aid with this one, really appreciate your time on this though

Once the work is complete, would it be possible for you to extend the example node so I can see the recommended way of handling it in third party nodes?  Possibly just a config field that is displayed in the widget and can be updated via ui_update.

Would it be possible for you to extend the example node so I can see the recommended way of handling it in third party nodes?

Of course

Great, thanks.

I will add example into https://github.com/FlowFuse/node-red-dashboard-2-ui-example
But we'll also heavily benefit from https://github.com/FlowFuse/node-red-dashboard/pull/1099 here too
So, this PR, whilst ready, I won't merge/review yet, I'll hold out for next release

Will do some testing tonight or during the weekend to see if my main concerns are addressed.
Did a small test last night with a ui-button and the issue of enabled and class been correctly updated when changing to the widget visible tab seems OK.

I know how to build and run the dashboard locally, but I don't know how to add in the proposed changes. Could someone give me some pointers please?

The PR #1123 is available on the branch 1122-dynamic-props-rewrite - so you can switch to that branch in your local development environment to get the changes.

A step by step (at least what I do)
Assuming the git repository is not yet local...

Create a folder in disk, open a command line and navigate to that folder
Execute

git clone https://github.com/FlowFuse/node-red-dashboard.git

will create a folder node-red-dashboard or
git clone https://github.com/FlowFuse/node-red-dashboard.git .

to clone the repo directly to the current folder

change to the downloaded folder cd node-red-dashboard
Execute npm install
Execute  git checkout 1122-dynamic-props-rewrite for this particular branch

Highlight in red the branch name for this particular PR.
It can be a good ideia to run npm install after checking out a branch, in case it updates dependencies in package.json, but typically not necessary.
Execute npm run build or npm run build:dev to easally debug in the browser

In Windows for dev build first execute $env:NODE_ENV="development" and build using npm run build

Open a command line, and navigate to your node-red install directory
Remove the "official" dashboard, npm uninstall @flowfuse/node-red-dashboard
Install the locally compiled version, npm install D:\Projectos\Node-Red\Main_Repo\ The path should the path where the repository was cloned

After this is necessary to restart node-red.
The last two steps are not necessary to repeat if recompiling the project after some modifications, restarting node-red may be necessary if changing stuff in the nodes folder, and is necessary to at least refresh the dashboard page if recompiling.

Thanks @arturv2000. Though I knew most of that. I have been running with a fork, which doesn't have the branch.  In fact rather than work out how to get the branch I cloned from flowfuse directly as you suggest.
@joepavitt the only possibly breaking change I can see is that widget-load now sends null the first time, which could cause issues, though it is not a problem for my gauge node, which is the only one on public release.
I am seeing a message in the browser console, though, that I don't remember seeing before
[Intervention] Slow network is detected. See ￼https://www.chromestatus.com/feature/5636954674692096 for more details. Fallback font will be used while loading: ￼http://localhost:1880/dashboard/assets/materialdesignicons-webfont-Dp5v-WZN.woff2?v=7.4.47

@colinl I suffer the same issue, i have searched how to pull a PR from the fork but the instructions seem confusing, so for the safe side i prefer to maintain two repos on my PC, a "myFork" and "Original_Repo" and switch between booth of them as necessary.

Did some testing, all seems good. At least the uses cases that I was complaining seem to have been solved by this.

Hi @joepavitt,
I have a (yearly reoccuring) computerless period, so I cannot install or test any of this. But it looks quite a great step forward.  So thanks for all your efforts and hard labour!!!
Forgive me if me if my below assumptions are completely incorrect, because reviewing this PR is FAR from easy on a small phone screen 😞

Am I correct that we need to update the server and client side state stores ourselves (via quite similar duplicate code), or did you perhaps found a solution to that?  Reason of my question is that in my svg node there are a lot of possible commands, which would result in lots of duplicate code.  And I cannot simply sync the entire state, because that would ear a lot of bandwith.  I did not find a solution for that yet...

It "looks" to me that things like ´options´ or ´selection´ (e.g. for a dropdown) are not stored in the state store, but instead are still being stored in the (last msg inside the) data store.  If correct, is there any advantage in not putting everything inside the state store?

Thanks again for taking into account our feedback!  Really appreciated!
Bart

Am I correct that we need to update the server and client side state stores ourselves (via quite similar duplicate code), or did you perhaps found a solution to that? Reason of my question is that in my svg node there are a lot of possible commands, which would result in lots of duplicate code. And I cannot simply sync the entire state, because that would ear a lot of bandwith. I did not find a solution for that yet...

You'll have access to the data tracker now via https://github.com/FlowFuse/node-red-dashboard/pull/1097, so if you're doing the "standard" store of latest message, then no need. Any loading of state will also be handled automatically, and now available in widget-load event.
The re-loading of msg history, or latest msg still stands (currently). I think we'll likely update some APIs there so that it can behave more like the state store, but haven't established any standard there yet.

It "looks" to me that things like ´options´ or ´selection´ (e.g. for a dropdown) are not stored in the state store, but instead are still being stored in the (last msg inside the) data store. If correct, is there any advantage in not putting everything inside the state store?

options still are in the state store. It'll be a recommended pattern that any overrides of the Node-RED configuration should be saved in the state store. Only msg.payload (value) type data is dependent upon being in the data store.

Did you remember that you were going to add some stuff to the example node to show the techniques you are suggesting?

Did you remember that you were going to add some stuff to the example node to show the techniques you are suggesting?

Yes Colin 👍

I didn't really think you had forgotten :)

Only msg.payload (value) type data is dependent upon being in the data store

So the ´msg.payload´ is used for real data (e.g. chart samples, radiobutton selected value, ...).  And other state related stuff needs to be injected via ´msg.ui_update´.  If so, it seems to make sense...


Fix link to section

Thanks for the PR! Do you mind making this PR in the eslint/eslint repository? This file actually gets copied from there when we run a release. Corresponding file is here.

Done: https://github.com/eslint/eslint/pull/12732


maybe ADD G Sensor support

Your last update is working smoothly in Win10 X64，THX!
But, when I started dolphin emu to play some Wii games, I realise that the mi-360 did not fully utilize all the natures of xiaomi gamepad.
Like 3-axis G Sensor and the home button.
People play emu game on PC need a good gamepad ,not necessarily to be a xbox360 one.
With some hard work ,maybe U can make this thing better than any gamepad with PC.
btw.  Over 1k downloads in mainlend chaina.This site and Wii was baned there.

Hi!
Thanks for the kind words!
Sadly I already tried in #12 to read the accelerometer data from the gamepad, but it seems impossible on Windows, due to the way the gamepad reports itself to the system.
On the other hand, the home button is mapped to the XBox button, so I think it's a matter of whether Dolphin supports it or not.

Thx for your reply!


Application CounterEvent metrics are not splitted over the application instances

We are using firehose-exporter as a single endpoint to scrape all in one application and system metrics from the firehose . Unfortunately for application metrics , we can only see the ValueMetric for individual instances . For CounterEvent we have one uniq metric which does not even represent the aggregation of all the instances of a particular application .
In the firehose we see them (cf nozzle -f CounterEvent) . So as a firehose proxy , i would expect to see the same metrics in firehose-exporter .
Thanks to answer if it's an improvement or an issue .

Having this same problem. Any updates?


Raise error when hint option is provided on unacknowledged

writes against any server version
JAVA-3705
Evergreen patch: https://evergreen.mongodb.com/version/5eabcba32a60ed4827b5394e

Looks like Jeffs got this one


Keyboard overlap on android

my code
class LoginPage extends StatefulWidget {
  @override
  _LoginPageState createState() => new _LoginPageState();
}

class _LoginPageState extends State<LoginPage> {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      theme: themeData,
      home: new Scaffold(
        appBar: _appBar,
        backgroundColor: Colors.white,
        body: _buildBody(),
      ),
    );
  }
}

Logs
17:13:27.746 1 info flutter.tools I/flutter ( 5042): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
17:13:27.748 2 info flutter.tools I/flutter ( 5042): The following message was thrown during layout:
17:13:27.748 3 info flutter.tools I/flutter ( 5042): A RenderFlex overflowed by 29 pixels on the bottom.
17:13:27.754 4 info flutter.tools I/flutter ( 5042):
17:13:27.754 5 info flutter.tools I/flutter ( 5042): The overflowing RenderFlex has an orientation of Axis.vertical.
17:13:27.754 6 info flutter.tools I/flutter ( 5042): The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and
17:13:27.754 7 info flutter.tools I/flutter ( 5042): black striped pattern. This is usually caused by the contents being too big for the RenderFlex.
17:13:27.754 8 info flutter.tools I/flutter ( 5042): Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the
17:13:27.754 9 info flutter.tools I/flutter ( 5042): RenderFlex to fit within the available space instead of being sized to their natural size.
17:13:27.754 10 info flutter.tools I/flutter ( 5042): This is considered an error condition because it indicates that there is content that cannot be
17:13:27.754 11 info flutter.tools I/flutter ( 5042): seen. If the content is legitimately bigger than the available space, consider clipping it with a
17:13:27.754 12 info flutter.tools I/flutter ( 5042): ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex,
17:13:27.754 13 info flutter.tools I/flutter ( 5042): like a ListView.
17:13:27.754 14 info flutter.tools I/flutter ( 5042): The specific RenderFlex in question is:
17:13:27.754 15 info flutter.tools I/flutter ( 5042):   RenderFlex#962ef relayoutBoundary=up2 OVERFLOWING
17:13:27.754 16 info flutter.tools I/flutter ( 5042):   creator: Column ← Center ← MediaQuery ← LayoutId-[<_ScaffoldSlot.body>] ← CustomMultiChildLayout ←
17:13:27.754 17 info flutter.tools I/flutter ( 5042):   AnimatedBuilder ← DefaultTextStyle ← AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#0e7cf ink
17:13:27.754 18 info flutter.tools I/flutter ( 5042):   renderer] ← NotificationListener<LayoutChangedNotification> ← PhysicalModel ←
17:13:27.754 19 info flutter.tools I/flutter ( 5042):   AnimatedPhysicalModel ← ⋯
17:13:27.754 20 info flutter.tools I/flutter ( 5042):   parentData: offset=Offset(0.0, 0.0) (can use size)
17:13:27.754 21 info flutter.tools I/flutter ( 5042):   constraints: BoxConstraints(0.0<=w<=411.4, 0.0<=h<=321.4)
17:13:27.754 22 info flutter.tools I/flutter ( 5042):   size: Size(411.4, 321.4)
17:13:27.754 23 info flutter.tools I/flutter ( 5042):   direction: vertical
17:13:27.754 24 info flutter.tools I/flutter ( 5042):   mainAxisAlignment: start
17:13:27.754 25 info flutter.tools I/flutter ( 5042):   mainAxisSize: max
17:13:27.754 26 info flutter.tools I/flutter ( 5042):   crossAxisAlignment: center
17:13:27.754 27 info flutter.tools I/flutter ( 5042):   verticalDirection: down
17:13:27.754 28 info flutter.tools I/flutter ( 5042): ◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤
17:13:27.754 29 info flutter.tools I/flutter ( 5042): ════════════════════════════════════════════════════════════════════════════════════════════════════
17:13:27.632 30 finer runtime.gc collection time 137ms • 63.9MB used of 46.2MB • isolates/579610234

94 issues found. (ran in 2.3s)

[✓] Flutter (Channel master, v0.9.3-pre.3, on Mac OS X 10.13.6 17G2307, locale zh-Hans-CN)
    • Flutter version 0.9.3-pre.3 at /Users/simon/dev/flutter
    • Framework revision 8b5af14f24 (11 hours ago), 2018-09-19 15:42:51 -0700
    • Engine revision 2e8e96fad1
    • Dart version 2.1.0-dev.4.0.flutter-4eb879133a

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.2)
    • Android SDK at /Users/simon/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.0, Build version 10A255
    • ios-deploy 2.0.0
    • CocoaPods version 1.6.0.beta.1

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 28.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] VS Code (version 1.27.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.18.0

[✓] Connected devices (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 9 (API 28) (emulator)

! Doctor found issues in 1 category.

This problem happens because the android device's screen is smaller than the android's.
It would also happen on iOS.
You can wrap your body in a https://docs.flutter.io/flutter/widgets/SingleChildScrollView-class.html

This problem happens because the android device's screen is smaller than the android's.
It would also happen on iOS.
You can wrap your body in a https://docs.flutter.io/flutter/widgets/SingleChildScrollView-class.html

it works thanks!


chore: Update Pagefind to 1.3.0

I'm seeing the same error about mime types in the deploy preview

This doesn't fix the issue in #332 unfortunately.


Is this actions still working in github

Action does not return any result when run on github at the moment. Is this action still working in github?
The workflow I am trying to fix is at  this link

FWIW in the block where you run the check, there is no actions/checkout action. it is not in the usage example in the README.

Action works just fine once workflow is fixed as suggested by @mehlert. Thanks so much indeed @mehlert  😄 😄 😄


varInspector close event fix

varInspector on close (using close button rather than 'v') event to set variable to null

Oops. Fixed it. I have amended to the original commit to keep the git history clean.

great, thanks!


FIR-4 (rich query updates) and FIR-7 (DX manifests) integration to onchain-logic branch

Delivery PR for this FIRs into the onchain-logic next-release branch:

https://github.com/hyperledger/firefly-fir/pull/4
https://github.com/hyperledger/firefly-fir/pull/7

Ok - the big merge is done! @awrichar or @nguyer over to you for a review and merge into the onchain-logic branch.

Key commits to consider:

FIR-7: https://github.com/hyperledger/firefly/pull/403/commits/d216ebf0208441c2abae24fee9d009623573801f
Byte limit on batch size: https://github.com/hyperledger/firefly/pull/403/commits/f4663c0aeaf19546b5103cd3a12788dc6eacbff4
Bytables -> JSONAny: https://github.com/hyperledger/firefly/pull/403/commits/bc09eea1c7488cc7e1419afb748770362ad02f6a

I've also restored coverage on a couple of packages that dropped


Can't update to 1.13.1.

%= /= in scoreboard players operation isn't updated.

Can't support 1.13.1.


Documents changes to accounts included relationships and new holdings total APIs

https://www.notion.so/sixpark/Six-Park-Update-API-documentation-69bc4ff7a1c1463f9625f705cf980aa3

Are you thinking there will be a separate PR for the portfolio endpoint?

We don't have a portfolio endpoint? At the moment it's just a namespace in the routes that the holdings totals index sits under... Happy to add it back in as a single resource endpoint though.

Are you thinking there will be a separate PR for the portfolio endpoint?

We don't have a portfolio endpoint? At the moment it's just a namespace in the routes that the holdings totals index sits under... Happy to add it back in as a single resource endpoint though.

As in - to remove it from the documentation, etc.

@adriancb Ah cool, then nah, I ended up pulling that out already.


create() doesn't return created object

I have this simple code, but created variable seems to be defined with first existing record instead of newly created record.
const created = await prisma.jobTitle.create({
  data: {
    label: 'dummy',
  },
});

I try to reproduce in your unit tests, and it seems to work properly. Maybe it's because i use uuid as @id inside this entity model.

Fixed in 0.6.0


dlv: bugfix: Allow quoting in build flags argument

Allows quoted substrings in build-flags flag. This fixes a build
problem on windows where the default build flags must contain a space.
Fixes #634 and #638

This change is

Merging is blocked
Who can help?

Sorry for delay, reviewing now.


Added comment about config_list in the README example #216

Why are these changes needed?
Added comment about config_list in the README example #216
Related issue number
Closes #216

Checks

[X] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[X] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[X] I've made sure all auto checks have passed.

Codecov Report

Merging #218 (0bc3844) into main (fbf8fae) will decrease coverage by 2.40%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #218      +/-   ##
==========================================
- Coverage   43.31%   40.92%   -2.40%
==========================================
  Files          17       17
  Lines        2133     2133
  Branches      481      481
==========================================
- Hits          924      873      -51
- Misses       1126     1173      +47
- Partials       83       87       +4

Flag
Coverage Δ

unittests
40.92% <ø> (-2.30%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 2 files with indirect coverage changes


Enable full functional testing of modeltestSDK

[x] Set up mt database and api as part of sdk testing by gihub actions
[x] Enable local testing towards locally hosted api, too
[ ] Write functional tests

Remaining step is to increase test coverage


muiCardContent is disappeared

i type muiCardContent but no this option

oh i am sorry i thought this extension is ready for all mui components. I will wait it fully support mui, thanks


mount error with docker on windows

Hi,
I'm using docker / docker-compose on W10. If I run docker-compose up  it fails with:
ERROR: for i40-aas_rabbitmq_1  Cannot start service rabbitmq: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:449: container init caused "rootfs_linux.go:58: mounting \"/host_mnt/c/2_Git/i40-aas/k8s/rabbitmq-broker/enabled_plugins\" to rootfs \"/var/lib/docker/overlay2/10dd0ad9b75796ba4fe5013b922c1309b9788ea863c4719741f81b728c27f2a9/merged\" at \"/var/lib/docker/overlay2/10dd0ad9b75796ba4fe5013b922c1309b9788ea863c4719741f81b728c27f2a9/merged/etc/rabbitmq/enabled_plugins\" caused \"not a directory\""": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
ERROR: for rabbitmq  Cannot start service rabbitmq: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:449: container init caused "rootfs_linux.go:58: mounting \"/host_mnt/c/2_Git/i40-aas/k8s/rabbitmq-broker/enabled_plugins\" to rootfs \"/var/lib/docker/overlay2/10dd0ad9b75796ba4fe5013b922c1309b9788ea863c4719741f81b728c27f2a9/merged\" at \"/var/lib/docker/overlay2/10dd0ad9b75796ba4fe5013b922c1309b9788ea863c4719741f81b728c27f2a9/merged/etc/rabbitmq/enabled_plugins\" caused \"not a directory\""": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
ERROR: Encountered errors while bringing up the project.
It starts if I remove the volume definition for rabbit-mq.
Cheers
J.

Hi,
thanks for opening the issue! This should be fixed with the PR just reviewed & pushed to master (https://github.com/SAP/i40-aas/pull/40). The volume definition was not up to date after the recent restructuring. It should work fine now.
Cheers!

Thanks a lot - refreshed the project and it starts now without any changes !
J.


Updating the link to the resources

We needed to migrate the resources required in this tutorial to a production container with public access so users can keep their access to this resource. This PR addresses the issue of broken links to those resources.

Learn Build status updates of commit 14748c1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/machine-learning/tutorials/r-clustering-model-introduction.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

#sign-off


Issue uploading configuration to ReqMgr2 Config Cache: Document is too large

Impact of the bug
System affected:

For WMCore: ReqMgr2 Config Cache
For PdmV: McM

Describe the bug
When McM requires to upload the configuration to ReqMgr2 Config Cache for a request with a large number of files listed in the ‘PSet’ attribute, the request body tends to be big, the HTTP request size is more than 8 MB. This raises issues for uploading the request because the maximum HTTP request size allowed by this DB is 8 MB [1] (as confirmed via email). As a result, this operation returns an HTTP 400 response with the message: {“error”: “document_too_large”, “reason”: “”}
How to reproduce it
Send an HTTP POST request to the endpoint https://cmsweb.cern.ch/couchdb/reqmgr_config_cache/_bulk_docs including into the body the JSON content available in the file BPH-GenericGSmearS-00001.json (I am attaching it into this issue as an example into a zip file: BPH-GenericGSmearS-00001.zip). This request has around 74K file names registered under the list: docs → (First element) → "pset_tweak_details" → "process" → "source" →  "fileNames"
Expected behavior
The HTTP request to upload the configuration to ReqMgr2 Config Cache should be accepted and finished successfully.
Additional context and error message
With the feedback received by email, I think we can have the following solutions available:

Increase the maximum allowed size for an HTTP request by updating the configuration attribute max_document_size [1].

Reduce the HTTP request size to be lower than the limit. As shared in the email discussion, the list of filenames listed in the PSet attribute could be dropped. If so, please describe the conditions that allow us (from PdmV side) to discard this attribute.

Thanks,
Best regards,
Geovanny
References
[1] CouchDB Configuration – max_document_size – Available at: https://docs.couchdb.org/en/stable/config/couchdb.html#couchdb/max_document_size

@ggonzr Hi Geovanny, apologies for the delay on getting back to this.
From what I can see, the worst offender in these job configuration files (PSet) is the list of input files, by far. To the best of my knowledge, we have basically 2 potential lists of input files.
a) primary input files (which can be classified in empty, primary EDM data, and lhe files)
b) secondary input files (apparently classified as premix or classic)
Other than lhe files (using LHESource), all of the other input files are overwritten when a job is getting bootstrapped in the worker node.
However, to be on the safe side, I would suggest to stop providing the list of secondary files in the final PSet that gets uploaded to central CouchDB / ReqMgr2, while keeping the primary files untouched, at least for the moment.
On what concerns the list of secondary files, I can see that it can be provided through the following attributes in the PSet:

process.mix.input.fileNames: for classical pileup
process.mixData.input.fileNames: for premix pileup
I am unsure though whether there is any other module that could be used for that. We would have to cross check this with framework experts or someone in PdmV.

Just in case, I also provide configuration examples:

lhe files that must be provided in the PSet, which are not overriden: https://cmsweb.cern.ch/couchdb/reqmgr_config_cache/a46ab47e0d46279933674d7eee454c89/configFile
primary files overriden before job starts: https://cmsweb.cern.ch/couchdb/reqmgr_config_cache/de191a69f92a15f3c8a10ee7c3e221f1/configFile
secondary PREMIX files overriden before job starts: https://cmsweb.cern.ch/couchdb/reqmgr_config_cache/557ee47472a545146ac6b25d2c075a84/configFile
secondary classical mix files override before job starts: https://cmsweb.cern.ch/couchdb/reqmgr_config_cache/cecfb297ab9549f1d4d97f7e00c7be30/configFile

Hi Alan (@amaltaro),
Thanks for the feedback. Checking with PdmV conveners, all the files listed in that field are primary input files so, based on the approach shared, we can not discard them. Also, there are no secondary files listed for this McM request (the attribute available in JSON file at the same level, secondaryFileNames, is empty).
Is there any other approach we can follow from the PdmV side to upload this information in the ReqMgr2 config cache or would it be possible to increase the maximum allowed size to accept this information as it is?
Best regards,
Geovanny

@ggonzr Hi Geovanny, I see you have the following data structure in your zipped file (json of the PSet):
{"docs": [
  {"pset_tweak_details":
    {"process":
      {"options":
        {"source": {"parameters_": ["fileNames", "secondaryFileNames", "inputCommands", "dropDescendantsOfDroppedBranches"]
          "fileNames": [HUGE list of LFNs]

both fileNames and secondaryFileNames are NOT used as provided in the original PSet configuration, instead WMAgent updates them during the job runtime. As mentioned above, the only exception is for the LHESource, where a list of non-EDM files are provided (their file extension is .lhe).
Do you think we could identify those specific cases in McM and let them through, while primary and secondary files get removed from the configuration uploaded to CouchDB/ReqMgr2? Those requests should be called wmLHE (or pLHE, I always confuse them!).
Sorry for pushing into the non-easy direction, but this is definitely the most sustainable solution.

Hi Alan (@amaltaro), I performed some tests to retrieve the source type from the cmssw embedded code to check whether the files can be discarded or not following the advice given. Unfortunately, we paused this development due to we had/have other tasks with higher priority to solve. This issue is mainly related to a test request we want to process so there is no hurry on finishing this. There are no changes deployed in our production environments related to this and I will let you know if I require any assistance from your side or if there is any update related to this from the PdmV side.
Thanks,
Best regards,
Geovanny

Hi @ggonzr , I just crossed through this ticket again and I was wondering if there are any plans for resuming this evaluation from your side? If not in the near future, then we might consider closing this out as "Not Planned". Please let me know your thoughts.

Hi @amaltaro, I am currently working on other tasks for migrating the McM code base to Python 3 and some features for other applications like RelVal for PdmV. Regarding this issue, I will start working on a patch in the first week of February 2025.


Headers aren't aligned when split horizontally and collapsed

Issue Type: Bug
#93787

Drag views into a single panel so that they are split horizontally
Collapse the headers

Expected: the headers are equal in height and position
Actual: the headers are sometimes equal in height and offset in vertical position

VS Code version: Code - Insiders 1.44.0-insider (d7d1147d6b764a48b789000c03088ee9afabcd8a, 2020-03-31T08:23:56.446Z)
OS version: Windows_NT x64 10.0.19587
Remote OS version: Linux x64 4.19.104-microsoft-standard

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz (8 x 1498)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: enabledrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_off_okwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.60GB (6.83GB free)

Process Argv

Screen Reader
no

VM
0%

Item
Value

Remote
WSL: Ubuntu

OS
Linux x64 4.19.104-microsoft-standard

CPUs
Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz (8 x 1497)

Memory (System)
12.17GB (11.71GB free)

VM
0%

Extensions (9)

Extension
Author (truncated)
Version

vscode-azureappservice
ms-
0.16.4

vscode-azurefunctions
ms-
0.21.0

vscode-cosmosdb
ms-
0.12.2

azure-account
ms-
0.8.8

vsliveshare
ms-
1.0.1891

vscode-docker
ms-
1.0.0

remote-ssh
ms-
0.51.0

remote-ssh-edit
ms-
0.51.0

remote-wsl
ms-
0.44.2

(1 theme extensions excluded)

yea this isn't great, the collapsing experience should be better in the panel, but i don't have an immediate solution.

I think I misunderstood the issue you were reporting originally. I now see that Problems is slightly lower than Registries header. Can you try to repro today? There was some work done and it may have resolved the issue?

Yep, this appears to be fixed.

adding label as per @fiveisprime


TRINITY-47 Add rest endpoint for favorite sites

Work in progress

Good job so far @stetsche, just some minor changes.

I think unit tests are super desirable here but none of the other controllers have unit tests, I think would be good to provide it for this new methods, what do you think?


Rive animation not functioning on iOS mobile phones in Lockdown mode

Description
Users have reported that Rive animations fail to function on iOS mobile devices when the device is in 'lockdown' mode. This issue appears to be isolated to iOS devices, as animations are functioning correctly on Android devices and on iOS devices with 'lockdown' mode disabled.
As per Apple's restrictions, WebAssembly (WASM) modules are not allowed to execute within browsers when the device is in 'lockdown' mode. This limitation is impacting the functionality of Rive animations.
Steps to Reproduce:

Enable 'lockdown' mode on an iOS mobile device.
Access the web application featuring Rive animations using either Safari or Chrome.
Attempt to run a Rive animation within the web application.
Observe that the animation does not play or function as expected.

Expected Behavior:
The Rive animation should play and function correctly on iOS mobile devices, regardless of the 'lockdown' mode status, when accessed through Safari or Chrome browsers.
Actual Behavior:
The animation fails to play or function when the iOS device is in 'lockdown' mode, irrespective of the browser used (Safari or Chrome).
Screenshots
Browser & Versions (please complete the following information)

Browser: Safari,
OS: iOS 17.3.1
NPM Version: 10.2.3

Additional context
This issue is evident even on the showcase animations hosted on the Rive website.
This issue significantly impacts users who rely on 'lockdown' mode for security purposes while also utilizing the web application featuring Rive animations on iOS devices. Collaborative efforts to address and resolve this issue are greatly appreciated.
Please suggest possible solutions

Hi @chinmayakcv, our web runtimes rely on WASM to run.
Something we could provide is a way to demonstrate how to build using pure JS (not WASM) and a way to to host it. Note that at runtime, this will result in a slower update cycle as it'll run on JS instead of WASM, and that only the canvas renderer can be used (not WebGL).

Hi @HayesGordon ,
Thanks for the update. It would be helpful if you can point me to any guides/resources for building runtime in pure JS. I understand we can only use canvas renderer and performance hit using pure JS implementation


requirements: sigstore ~3.0

The 3.x series is out. Let's see what breaks!

Looks good now. Key changes:

The default suffix change from .sigstore to .sigstore.json has taken effect; we should communicate this as part of the (major) release notes for this change.
The manual state options for Fulcio, Rekor, etc. instances have been fully removed. We could replace these with a new option for --trust-config, but there's been no user demand for it yet. So maybe in a subsequent release.

(NB: This doesn't enable the DSSE parts of sigstore-python, which are in 3.x. Enabling those with appropriate settings will probably require more design thought.)

FTR, the 2.x stream prints out deprecation warnings that would be fixed in 3.x per my understanding:
/home/runner/.local/lib/python3.10/site-packages/sigstore/sign.py:141: CryptographyDeprecationWarning: Properties that return a naïve datetime object have been deprecated. Please switch to not_valid_after_utc.
  not_valid_after = self.__cached_signing_certificate.cert.not_valid_after
/home/runner/.local/lib/python3.10/site-packages/sigstore/sign.py:141: CryptographyDeprecationWarning: Properties that return a naïve datetime object have been deprecated. Please switch to not_valid_after_utc.
  not_valid_after = self.__cached_signing_certificate.cert.not_valid_after
/home/runner/.local/lib/python3.10/site-packages/sigstore/sign.py:141: CryptographyDeprecationWarning: Properties that return a naïve datetime object have been deprecated. Please switch to not_valid_after_utc.
  not_valid_after = self.__cached_signing_certificate.cert.not_valid_after

Perhaps, mention this in the change log as well?

Hmm, it's actually strange that those are in 2.x -- the 2.x series of sigstore-python should be using a sufficiently new version of cryptography as well.
But yeah, if you're seeing them with one but not the other, I'll include it in the release notes :slightly_smiling_face:

I haven't tried. Just checked that you changed corresponding line in v3.

Thanks both! I'll prep the changelog and release today.
(Longer-term, the value of this action is now a bit murky, since GitHub has attestation support directly built in with official actions. But that can be a separate discussion...)