Tone mapping does not work on Android

Describe the bug
A shader error is printed in the log.
See https://discord.com/channels/1046005690809978911/1193592586884091914/1208742600840978502
To Reproduce
Steps to reproduce the behavior:

Open a file in Android with tone mapping enabled (seems reproducible on device only, not the emulator)

Do we need a new label for android ? Or should this be opened in https://github.com/f3d-app/f3d-android ?


Train_on_completions cant handle eval_datasets as dictionary

Just putting here. Raisin issue to github as well (I can deal with this for now but would be also usefull for unsloth to handle this automatically).
So in huggingface trainer eval_datasets can also be a dictionary so it is nice to see eval loss on different datasets across the run.
Currently the train_on_completions processing can't handle this kind of structure of eval datasets

Added it in! Please update unsloth-zoo via pip install --upgrade --no-cache-dir --no-deps unsloth-zoo


Removing nullish operator to support node v14

Thank you! I should definitely have tested this on Node 14 myself 😄


Support Node.js 10

As mentioned in sindresorhus/electron-store#103, this package can support earlier Node.js versions. Version 8 failed in a Docker container, but 10 didn't, so that's what I went with.
Also included lodash as a dev dependency, as I presume that you had it installed globally on your machine.

If you're interested, here's the output of the failed test on Node.js 8:
user@89b7c7c59613:~/Documents/Projects/atomically$ npm run test

><EMAIL_ADDRESS>test /home/user/Documents/Projects/atomically
> tap --no-coverage-report

 PASS  test/concurrency.js 39 OK 551.502ms
 PASS  test/integration.js 68 OK 921.345ms
 FAIL  test/basic.js
 ✖ expect falsey value

  test/basic.js
  249 |     const pathMissingFolders = path.join(os.tmpdir(),String(Math.random()),String(Math.random()),String(Math.random()),'foo.txt');
  250 |     writeFileAtomicNative(pathMissingFolders,'test', err => {
> 251 |       t.notOk(err)
      | --------^
  252 |     })
  253 |   })
  254 |

  test: test/basic.js async tests non-root tests
  stack: |
    err (test/basic.js:251:9)
    <anonymous>

 FAIL  test/basic.js
 ✖ expect falsey value

  test/basic.js
  245 |     const {writeFile: writeFileAtomicNative} = requireInject('../dist', { fs });
  246 |     writeFileAtomicNative(longPath,'test', err => {
> 247 |       t.notOk(err)
      | --------^
  248 |     })
  249 |     const pathMissingFolders = path.join(os.tmpdir(),String(Math.random()),String(Math.random()),String(Math.random()),'foo.txt');
  250 |     writeFileAtomicNative(pathMissingFolders,'test', err => {

  test: test/basic.js async tests non-root tests
  stack: |
    err (test/basic.js:247:9)
    <anonymous>

 FAIL  test/basic.js
 ✖ temp files are purged on success

  test/basic.js
  299 |     let err
  300 |     try { todo() } catch (e) { err = e }
> 301 |     t.ifError(err, msg)
      | ------^
  302 |   }
  303 |   let tmpfile
  304 |

  test: test/basic.js sync tests non-root
  origin:
    at:
      line: 766
      column: 18
      file: fs.js
      function: apply
    stack: |
      apply (dist/utils/retryify.js:26:27)
      apply (dist/utils/retryify.js:32:36)
      apply (dist/utils/retryify.js:32:36)
      apply (dist/utils/retryify.js:32:36)
      apply (dist/utils/retryify.js:32:36)
      apply (dist/utils/retryify.js:32:36)
      apply (dist/utils/retryify.js:32:36)
      apply (dist/utils/retryify.js:32:36)
      attempt (dist/utils/retryify.js:32:36)
    errno: -1
    code: EPERM
    syscall: rename
    path: /tmp/atomically-test-0.temp
    dest: /tmp/atomically-test-0
  found:
    !error
    name: Error
    message: "EPERM: operation not permitted, rename '/tmp/atomically-test-0.temp'
      -> '/tmp/atomically-test-0'"
    stack: >-
      Error:
          at apply (fs.js:766:18)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:26:27)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at attempt (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
    errno: -1
    code: EPERM
    syscall: rename
    path: /tmp/atomically-test-0.temp
    dest: /tmp/atomically-test-0
  stack: |
    noexception (test/basic.js:301:7)
    Test.t.test.t (test/basic.js:397:5)
    Test.t (test/basic.js:305:5)
    err (test/basic.js:279:7)
    <anonymous>

 FAIL  test/basic.js
 ✖ temp files can also not be purged on error

  test/basic.js
  294 |     let err
  295 |     try { todo() } catch (e) { err = e }
> 296 |     t.is(shouldthrow, err && err.message, msg)
      | ------^
  297 |   }
  298 |   const noexception = function (t, msg, todo) {
  299 |     let err

  --- expected
  +++ actual
  @@ -1,1 +1,1 @@
  -EACCES: permission denied, open '/tmp/atomically-test-norename-2.temp'
  +ENORENAME

  test: test/basic.js sync tests non-root
  stack: |
    throws (test/basic.js:296:7)
    Test.t.test.t (test/basic.js:413:5)
    Test.t (test/basic.js:305:5)
    err (test/basic.js:279:7)
    <anonymous>

 FAIL  test/basic.js
 ✖ temp files are truncated

  test/basic.js
  299 |     let err
  300 |     try { todo() } catch (e) { err = e }
> 301 |     t.ifError(err, msg)
      | ------^
  302 |   }
  303 |   let tmpfile
  304 |

  test: test/basic.js sync tests non-root
  origin:
    at:
      line: 761
      column: 25
      file: fs.js
      function: apply
    stack: |
      apply (dist/utils/retryify.js:26:27)
      apply (dist/utils/retryify.js:32:36)
      apply (dist/utils/retryify.js:32:36)
      apply (dist/utils/retryify.js:32:36)
      apply (dist/utils/retryify.js:32:36)
      apply (dist/utils/retryify.js:32:36)
      apply (dist/utils/retryify.js:32:36)
      apply (dist/utils/retryify.js:32:36)
      attempt (dist/utils/retryify.js:32:36)
    type: RangeError
  found:
    !error
    name: RangeError
    message: Maximum call stack size exceeded
    stack: >-
      RangeError:
          at apply (fs.js:761:25)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:26:27)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at apply (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
          at attempt (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:32:36)
  stack: |
    noexception (test/basic.js:301:7)
    Test.t.test.t (test/basic.js:420:5)
    Test.t (test/basic.js:305:5)
    err (test/basic.js:279:7)
    <anonymous>

 FAIL  test/basic.js
 ✖ parent folders are created

  test/basic.js
  299 |     let err
  300 |     try { todo() } catch (e) { err = e }
> 301 |     t.ifError(err, msg)
      | ------^
  302 |   }
  303 |   let tmpfile
  304 |

  test: test/basic.js sync tests non-root
  origin:
    at:
      line: 646
      column: 18
      file: fs.js
      function: apply
    stack: |
      attempt (dist/utils/retryify.js:26:27)
      writeFileSync (dist/index.js:136:14)
      noexception (test/basic.js:427:7)
      noexception (test/basic.js:300:11)
      Test.t.test.t (test/basic.js:425:5)
    errno: -2
    code: ENOENT
    syscall: open
    path: /tmp/0.28287465377020693/0.6245907721345334/0.7125146804257945/foo.txt.tmp-5214357407d910f6
  found:
    !error
    name: Error
    message: "ENOENT: no such file or directory, open
      '/tmp/0.28287465377020693/0.6245907721345334/0.7125146804257945/foo.txt.tmp\
      -5214357407d910f6'"
    stack: >-
      Error:
          at apply (fs.js:646:18)
          at attempt (/home/user/Documents/Projects/atomically/dist/utils/retryify.js:26:27)
          at writeFileSync (/home/user/Documents/Projects/atomically/dist/index.js:136:14)
          at noexception (/home/user/Documents/Projects/atomically/test/basic.js:427:7)
          at noexception (/home/user/Documents/Projects/atomically/test/basic.js:300:11)
          at Test.t.test.t (/home/user/Documents/Projects/atomically/test/basic.js:425:5)
          at TapWrap.runInAsyncScope (async_hooks.js:194:21)
          at Test.cb.args (/home/user/Documents/Projects/atomically/node_modules/tap/lib/test.js:145:40)
          at ret (/home/user/Documents/Projects/atomically/node_modules/tap/lib/test.js:383:21)
          at Test.main (/home/user/Documents/Projects/atomically/node_modules/tap/lib/test.js:390:7)
    errno: -2
    code: ENOENT
    syscall: open
    path: /tmp/0.28287465377020693/0.6245907721345334/0.7125146804257945/foo.txt.tmp-5214357407d910f6
  stack: |
    noexception (test/basic.js:301:7)
    Test.t.test.t (test/basic.js:425:5)
    Test.t (test/basic.js:305:5)
    err (test/basic.js:279:7)
    <anonymous>

 FAIL  test/basic.js 6 failed of 82 6s
 ✖ expect falsey value
 ✖ expect falsey value
 ✖ temp files are purged on success
 ✖ temp files can also not be purged on error
 ✖ temp files are truncated
 ✖ parent folders are created

  🌈 SUMMARY RESULTS 🌈

 FAIL  test/basic.js 6 failed of 82 6s
 ✖ expect falsey value
 ✖ expect falsey value
 ✖ temp files are purged on success
 ✖ temp files can also not be purged on error
 ✖ temp files are truncated
 ✖ parent folders are created

Suites:   1 failed, 2 passed, 3 of 3 completed
Asserts:  6 failed, 183 passed, of 189

v10 and v10.10 didn't pass the test suite in my system, but v10.12 did, I went with that. Available in v1.3.2 👍


[Getting Started] Alignment issues in getting-started page

Description
There's some alignment issues in here
Expected Behavior

Add some proper spacing between letter and numbers
push the logos slightly right

Screenshots

@leecalcote Oh stupid me, this should be in layer5/meshery.io Can you please move this?


404 Not Found of '/.devd.livereload.js'

how to reproduce

start devd like below

$ devd -l test=.
16:03:40: Route test.devd.io/ -> reads files from .
16:03:40: Listening on http://devd.io (<IP_ADDRESS>:80)
16:04:17: GET /index.html
        <- 301 Moved Permanently
16:04:17: GET /
        <- 304 Not Modified
16:04:17: GET /.devd.livereload.js
        <- 404 Not Found 133 B
16:04:17: GET /scripts/main.js
        <- 304 Not Modified
16:04:18: GET /.devd.livereload.js
        <- 404 Not Found 133 B

visit  test.devd.io/index.html on browser

injected script tag
<script src="/.devd.livereload.js"></script>

browser is try to load test.devd.io/.devd.livereload.js. but. .devd.livereload.js is served by devd.io/.devd.livereload.js

thank you for your efforts. it works as expected.


cannot open 2 line xlsx in Excel 365

I cannot open a simple 2 line xlsx in
Excel 365 MSO 16.0.11929.20288 64 bit
I created the XLSX using these lines of Typescript:
    const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(**json**);
    const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
    const buffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' });
    const readable = this.getReadable(buffer);

The buffer is converted to a Readable using these lines:
// transform a buffer to a stream
private getReadable(buffer: Buffer): Readable {
    const readable = new Readable();

    readable.push(buffer);
    readable.push(null);

    return readable;
}

Then the stream is sent back to the client (Postman in my case) using this line:
readable.pipe(res);
When I save the resulting response in Postman to a file, then Excel shows the following message on file open:
"We found a problem with some content in file.xlsx. Do you want us to try to recover as much as we can? If you trust the source of the workbook, click yes."
How can I avoid this and create the file so that Excel can open it?
If I replace 'xlsx' in the code above with 'xlsb', then Excel can open the binary file without the warning. The problem only occurs with XLSX file type.
It is strange that XLSX.utils.json_to_sheet does not accept a string with JSON content (e.g. created with JSON.stringify). The method only accepts an array but no JSON content - therefore I find the name of the method misleading - it is not transforming JSON to a sheet, but it transforms an array to a sheet, right?
Thanks a lot for your help!
Mario
json looks as follows:
[ [ 'object_id',
'name',
'column_id',
'system_type_id',
'user_type_id',
'max_length',
'precision',
'scale',
'is_nullable',
'is_ansi_padded',
'is_rowguidcol',
'is_identity',
'is_computed',
'is_filestream',
'is_replicated',
'is_non_sql_subscribed',
'is_merge_published',
'is_dts_replicated',
'is_x005F_xml_document',
'xml_collection_id',
'default_object_id',
'rule_object_id',
'is_sparse',
'is_column_set',
'generated_always_type',
'generated_always_type_desc',
'is_hidden',
'is_masked' ],
[ '3',
'rsid',
'1',
'127',
'127',
'8',
'19',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'NOT_APPLICABLE',
'0',
'0' ] ]

Can you share the generated XLSX file (the one that is causing problems)?

It's most likely an integration issue.  Please reopen if you can share the file.


Multiple/Duplicate services(recipes) available to choose from.

Bug description:
Duplicate services are being shown, unsure which is the latest service.
Steps to reproduce:

Add new service
Search for "drive"
two services show instead of one.
search for "voice"
two services show instead of one.
search for "glowing"
two services show instead of one.
Expected behavior
Expected to see only one service
Screenshots

Operating System:
Windows 11
Version: 5.6.2
Electron: 13.3.0
Chrome: 91.0.4472.164
Node.js: 14.16.0
Arch: x64
Git SHA: 40a3d0b
Git branch: release

Server: No account

Debug information:

Fixed via getferdi/server@e4a7fcb.


Move token_stream_parse implementation to Wasm

As noted in https://github.com/dtolnay/watt/issues/2#issuecomment-548018670,

watt::sym::token_stream_parse is me being too lazy to implement a Rust syntax tokenizer in wasm (aka copy it from proc-macro2), but we could likely optimize that slightly by running that in wasm as well.

We'll need to import something like https://github.com/alexcrichton/proc-macro2/blob/1.0.6/src/strnom.rs and use that to implement token stream parsing rather than calling out to a host func.
It's possible we can simplify the implementation from proc-macro2 by omitting the parts that deal with parsing comments, as those won't appear in our use case.

One thing I should note on this is that I was surprised that #[derive(Serialize)] called this function, but then I remembered this is part of quote!, which also lends itself well to reasoning that this may be relatively hot if it's called in quote! a lot. In that sense I think we could perhaps speed up but a mild amount, but as the linked post shows it's only 1-2ms for a massive macro.

Does that include time spent running watt::sym::token_stream_serialize to get the parsed data into wasm? Running parsing in wasm should eliminate a bunch of calls to these other methods, which might increase the impact a bit.
In addition, given the higher minimum rustc version for watt, it may be reasonable to use rustc_lexer as the lexer within wasm, probably based on the work in https://github.com/alexcrichton/proc-macro2/pull/202. I'm guessing it's been optimized a bit more than strnom.

Oh right that's an excellent point! Yes the timing information of watt::sym::token_stream_parse doesn't include the timing of watt::sym::token_stream_serialize nor the time to deserialize inside of wasm itself. Those would all largely be avoided if we move this to wasm. While still likely to be modest, I think it'd be a clear win speed-wise.

@dtolnay benchmarked an impl of this in https://github.com/dtolnay/watt/pull/26#pullrequestreview-310856210, and found it had equivalent (or worse) performance, even on large inputs. I'm inclined to think that we should leave the token_stream_parse implementation implemented by the host runtime.


base model for self-query?

Thanks to the FLAN team for open-sourcing your methods and prompts!
If I want to create a system that can self-query - generate its own options and decide on a best option depending on context, which pre-trained model would you recommend as a baseline model?
Would any of the Flan-T5 models (or U2) currently published on Huggingface be sufficient?  Would you recommend further finetuning?
Thank you.

@i-am-neo Thank you for your question!
I would suggest you use the largest size model in the Flan-T5/UL2 series that fits your hardware/latency/cost requirements. And yep, they are all on Huggingface.
The task of generating your own answer options from the instruction is an interesting one. I would probably suggest further finetuning since this is not a common setup. You could generate your own finetuning data from the Flan Collection, across many tasks, by manipulating the zsopt (Zero Shot prompted with Answer Options) submixtures. Simply remove the answer options in their final generated input, and prepend those to the gold output text.

Thanks for your suggestion. Another perhaps related one - have you experimented with prompts that encourage say Flan-T5xl to "express" responses in a certain style?  For example, "in bullet points" or "in prose" or "in fully formed sentences" or "one cohesive paragraph."
Could you share some suggestions?

@i-am-neo I have not experimented with this. Only a subset of the Flan Collection data asks for responses like this, due to the nature of most academic training tasks. If this is your goal you may wish to do additional finetuning on more prose-like open-ended generation, or use the Flan Collection with a bigger model (Flan-UL2 or larger), where the models seem more capable of these tasks.


Question/Feature: Generator Functions where the type of Next depends on the type of Yield

Let me start with a motivating example. Let's say I want to implement something like redux-saga where I write a generator function that yields some function that represents XHR, and have a framework call itr.next with the value that comes back from a server.
const getName = () => 'Brian';
const getAge = () => 123;
const parseJSON: (string => () => Object) = ...;

function gen* () {
  const name: string = yield getName;
  const age: number = yield getAge;
  const parsed: Object = yield parseJSON('{"greeting":"yo"}');
  return {...parsed, name, age};
}

Here's the example on try.flow.org.
The definition for a generator function assumes that the generator will always accept values and yield values of the same type. The Generator interface declaration in ./flow/code.js currently reads:
Generator<Yield, Return, Next> { ... }

And so the type of gen is:
Generator<string | number | Object, Object, ( () => string ) | ( () => number ) | ( () => Object )>

In practice, this means that I have to disambiguate the type of Next at each yield within the body of the generator function.
While I understand why this is important for the iterator returned from the generator function (because you cannot statically know how many times the iterator was iterated over), I suspect that you could at least improve the types within the generator function itself.
What I want is to map the Next value based on what is passed to Yield:
Generator<Yield => Next, Return>

// So the type of gen becomes:
Generator<(() => string) => string | (() => number) => number | (() => Object) => Object), Object>

// or even better:
type ExtractReturnType = <R>(() => R) => R;
Generator<ExtractReturnType, Object>

The existing use-case (where Yield and Next are always the same type within the generator function) is easily captured:
Generator<Yield, Return, Next> /* becomes */ Generator<Yield => Next, Return>

I suspect that it would be difficult (and maybe even impossible) to disambiguate the values yielded from the iterator, since it can't always be statically known how many times at iterator has been called. For my use-case, it's fine if the iterator returned is like:
interface Generator<Yield => Next, Return> {
    next(value?: Next): IteratorResult<Yield, Return>;
}

// So in the example above...
const i = gen();

// i.next takes any of: "number | string | Object | void"
const v1: ( () => number | () => string | () => Object | void ) = i.next().value;
const v2: ( () => number | () => string | () => Object | void ) = i.next().value;

...so that disambiguating a union outside the generator function is still necessary.
Is there a way to achieve this effect currently (by for instance overloading the code type decl for Generator)? Is there a type-level "utility" function that would let me operate over unions in this way (something like PureScript's RowToList)? And if not, is this something that would be interesting as a general improvement to Flow?
Thanks in advance :)

See https://github.com/facebook/flow/issues/2613

Oh nice! @vkurchatkin feel free to pull any of my explanation here into the master issue if you think it would help others discover it, or explain the motivation better.
Cheers!


feat(shouldForceFirmwareUpdate): add <1.1.1 condition for europa

✅ Checklist

[ ] npx changeset was attached.
[ ] Covered by automatic tests.
[ ] Impact of the changes:

...

📝 Description
Replace this text by a clear and concise description of what this pull request is about and why it is needed. Be sure to explain the problem you're addressing and the solution you're proposing.
For libraries, you can add a code sample of how to use it.
For bugfixes, you can explain the previous behavior and how it was fixed.
In case of visual features, please attach screenshots or video recordings to demonstrate the changes.

❓ Context

JIRA or GitHub link: LIVE-13429

🧐 Checklist for the PR Reviewers

The code aligns with the requirements described in the linked JIRA or GitHub issue.
The PR description clearly documents the changes made and explains any technical trade-offs or design decisions.
There are no undocumented trade-offs, technical debt, or maintainability issues.
The PR has been tested thoroughly, and any potential edge cases have been considered and handled.
Any new dependencies have been justified and documented.
Performance considerations have been taken into account. (changes have been profiled or benchmarked if necessary)

[ASK] No changeset here ?


Orphaned "Azure Relay Documentation"

Describe the bug
The Azure Relay Documentation
is not included in the Azure Documentation  - All Products.
To Reproduce
Steps to reproduce the behavior:

Go to Azure Documentation - All Products
Search for the word "relay" on this site
You will find nothing, but you should.

@deBFM Please move this issue to https://github.com/MicrosoftDocs/azure-docs/issues


AutoRunner issues

Describe the bug
Upon running !python -m monai.apps.auto3dseg AutoRunner run --input='./task.yaml' with the prerequisite files, autorunner runs data analysis (expected) and training (expected) but fails to run further. Files and directories are generated as expected but bug occurs after 200 steps of training completed.
To Reproduce
running !python -m monai.apps.auto3dseg AutoRunner run --input='./task.yaml' on AMOS22 dataset
Expected behavior
Running autorunner pipeline with no internal errors pertaining to monai.metrics and configparser methods
Screenshots

Environment
================================
Printing MONAI config...
MONAI version: 1.1.dev2249
Numpy version: 1.23.5
Pytorch version: 1.13.1+cu117
MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False
MONAI rev id: 6ac8fa0b0d0f475a8cceea86b12e448c19aeb050
MONAI file: C:\Users\sathy\OneDrive\Documents\GitHub\Auto3DSeg\venv\lib\site-packages\monai_init_.py
Optional dependencies:
Pytorch Ignite version: 0.4.10
Nibabel version: 4.0.2
scikit-image version: 0.19.3
Pillow version: 9.3.0
Tensorboard version: 2.11.0
gdown version: 4.6.0
TorchVision version: 0.14.1+cu117
tqdm version: 4.64.1
lmdb version: 1.4.0
psutil version: 5.9.4
pandas version: 1.5.2
einops version: 0.6.0
transformers version: 4.25.1
mlflow version: 2.1.1
pynrrd version: 1.0.0
For details about installing the optional dependencies, please visit:
https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies
================================
Printing system config...
System: Windows
Win32 version: ('10', '10.0.22000', 'SP0', 'Multiprocessor Free')
Win32 edition: Core
Platform: Windows-10-10.0.22000-SP0
Processor: AMD64 Family 23 Model 113 Stepping 0, AuthenticAMD
Machine: AMD64
Python version: 3.9.6
Process name: python.exe
Command: ['C:\Users\sathy\AppData\Local\Programs\Python\Python39\python.exe', '-m', 'ipykernel_launcher', '-f', 'C:\Users\sathy\AppData\Roaming\jupyter\runtime\kernel-ccba08e5-3732-40b5-8658-16d2437a082e.json']
Open files: [popenfile(path='C:\Windows\System32\en-US\kernel32.dll.mui', fd=-1), popenfile(path='C:\Windows\System32\en-US\KernelBase.dll.mui', fd=-1), popenfile(path='C:\Program Files\WindowsApps\Microsoft.LanguageExperiencePacken-GB_22<IP_ADDRESS>_neutral__8wekyb3d8bbwe\Windows\System32\en-GB\fe441ef3ed396a241e46f9f354057863\tzres.dll.mui', fd=-1), popenfile(path='C:\Users\sathy.ipython\profile_default\history.sqlite', fd=-1)]
Num physical CPUs: 16
Num logical CPUs: 32
Num usable CPUs: 32
CPU usage (%): [46.2, 17.9, 61.6, 11.8, 29.3, 10.9, 14.5, 7.4, 8.0, 5.1, 5.4, 2.1, 3.7, 1.4, 2.4, 1.0, 1.6, 1.1, 0.7, 0.7, 0.3, 0.3, 0.5, 0.4, 0.3, 0.3, 0.4, 0.1, 0.3, 0.2, 1.2, 0.2]
CPU freq. (MHz): 3493
Load avg. in last 1, 5, 15 mins (%): [0.0, 0.0, 0.0]
Disk usage (%): 96.0
Avg. sensor temp. (Celsius): UNKNOWN for given OS
Total physical memory (GB): 31.9
Available memory (GB): 18.9
Used memory (GB): 13.0
================================
Printing GPU config...
Num GPUs: 1
Has CUDA: True
CUDA version: 11.7
cuDNN enabled: True
cuDNN version: 8500
Current device: 0
Library compiled for CUDA architectures: ['sm_37', 'sm_50', 'sm_60', 'sm_61', 'sm_70', 'sm_75', 'sm_80', 'sm_86', 'compute_37']
GPU 0 Name: NVIDIA GeForce RTX 2080 Ti
GPU 0 Is integrated: False
GPU 0 Is multi GPU board: False
GPU 0 Multi processor count: 68
GPU 0 Total memory (GB): 11.0
GPU 0 CUDA capability (maj.min): 7.5

Thanks @udiram for bringing up the issue. The import error suggests it may be related to some path issue. Do you have multiple Python and MONAI version?
Can you try if this command run successfully on your end?
python -c "from monai.metrics import compute_dice"

Hi @mingxin-zheng thanks for getting back so quickly,
I am using a venv, and made sure to uninstall monai/monai-weekly and reinstall a single version (so that I'm up to date with the latest commits)
There is no output from the above command (it runs successfully presumably) so it's able to find it.
Additionally, within the jupyter notebook, I'm able to run from monai.metrics import compute dice with no errors.
Please let me know what else you would suggest,

Hi @udiram , I notice you have an exclamation mark (!) before the command in your post, which suggests that you may be running the command in a Jupyter notebook environment. Do you see the same issue when running the command in cmd.exe?

Hi @mingxin-zheng yes, i am running in jupyter, but I've also tried in just CMD and have the same issue (import error)
thanks

Hi @udiram ,
I now suspect there is a system python and it got called in AutoRunner. It may be in your Windows PATH setting. To test it, can you make two files in the same directory
the first one is "debug_main.py", with:
import os
import subprocess

cmd = "python debug_subprocess.py"
subprocess.run(cmd.split(), env=os.environ.copy(), check=True)

the second one is “debug_subprocess.py", with:
from monai.metrics import compute_dice

and issue the following command in your venv?
python debug_main.py

I got no output from my Windows environment, and I wonder if it will throw an error on your side.

hi @mingxin-zheng
I do in fact get the same error as before (import error) so what do you suggest I could change in my PATH?

Hi @udiram , I think it confirmed my assumption there.
I am not familiar with virtualvenv overall. I use miniconda to configure my environment and did not run into similar issues on Windows. But please check this thread and see if some answers are valid.

Great, thanks for your help, I appreciate it, I may start a fresh venv to see if that works.
Cheers

after a quick PATH check and uninstalling the older version of monai (0.9.0) that it was using, running the debug subprocess provides no output, just wanted to share in case anyone references this discussion in the future.


Fix artifact ownership problems

osbuild uses cp -a to export artifacts from a build and files are (usually) owned by root.  The cp command tries to set the ownership to root on the mounted volume from the host but if it's running in a podman machine, this will fail.
Set the output directory to a temporary one inside the container and copy the file to the /output directory when finished.
This was a bit fiddlier than I expected.  I initially tried to do it in the Go code but it's much simpler to just modify the entrypoint and adapt the output printing.  I tested this both on Linux and macOS and I ran multiple builds of the same type to make sure there are no issues with overwriting existing files.
Output directory on macOS
$ ls -lR output
total 384
drwxr-xr-x  3 achilleas  staff     96 Dec 14 15:46 image
-rw-r--r--  1 achilleas  staff  95668 Dec 14 15:48 manifest-ami.json
-rw-r--r--  1 achilleas  staff  97855 Dec 14 15:57 manifest-qcow2.json
drwxr-xr-x  3 achilleas  staff     96 Dec 14 15:40 qcow2

output/image:
total 6496120
-rw-r--r--  1 achilleas  staff<PHONE_NUMBER>0 Dec 14 15:48 disk.raw

output/qcow2:
total 1278064
-rw-r--r--  1 achilleas  staff  640516096 Dec 14 15:58 disk.qcow2

Fixes #14

cp -a attempts to maintain the ownership bits of the source file.
Let's look at some examples running as root.
First I create a file /foo as root which will be owned as root, then I copy the file to the users homedir, and the new file is owned as root. (This is what is blowing up on the MAC. cp creates files that do not exist based on the ownership UID of the process running cp, so file is owned by root.
# rm -rf /home/dwalsh/foo
# touch /foo
# cp /foo ~dwalsh/
# ls -l ~dwalsh/foo
-rw-r--r--. 1 root root 0 Dec 15 07:20 /home/dwalsh/foo

Now I show an example of what happens if the file pre-existed in the homedir and the root process replaced the file with the file owned by root.  In this case the file ends up owned by the user.  Since cp preserves the ownership of the destination file if it exists. This means even though the process running cp is root, the replacement file is still owned by dwalsh.
# chown dwalsh ~dwalsh/foo
# cp /foo ~dwalsh/
# ls -l ~dwalsh/foo
-rw-r--r--. 1 dwalsh root 0 Dec 15 07:21 /home/dwalsh/foo

When you run cp -a you are telling cp to maintain the ownership of the source file when replacing the destination file.
# cp -a /foo ~dwalsh/
# ls -l ~dwalsh/foo
-rw-r--r--. 1 root root 0 Dec 15 07:20 /home/dwalsh/foo

I am not sure your new containerimage works correctly if the target file does not pre-exist, or at least I don't understand what is going on, since the process inside of the container running cp is running as root.

cp -a attempts to maintain the ownership bits of the source file.

But there's also some interesting interactions with the way volumes are mounted in podman machine.  If cp can't set the ownership in the destination, and -a isn't specified, it wont, and I think the 9p access=client option that podman machine uses is what's controlling this.  You can see this if you do stuff onto the mounted volume from inside the machine:
achilleas@mmini ~ % podman machine ssh 'sudo touch /root/rootfile && sudo cp /root/rootfile /Users/achilleas/rootfile'
achilleas@mmini ~ % podman machine ssh 'sudo ls -l /root/rootfile /Users/achilleas/rootfile'
-rw-r--r--. 1 core games 0 Dec 14 16:42 /Users/achilleas/rootfile
-rw-r--r--. 1 root root  0 Dec 14 16:42 /root/rootfile
achilleas@mmini ~ % ls -l /Users/achilleas/rootfile
-rw-r--r--  1 achilleas  staff  0 Dec 14 16:42 /Users/achilleas/rootfile

Or even if you try to set perms:
achilleas@mmini ~ % podman machine ssh
Connecting to vm podman-machine-default. To close connection, use `~.` or `exit`
Fedora CoreOS 39.20231204.2.1
Tracker: https://github.com/coreos/fedora-coreos-tracker
Discuss: https://discussion.fedoraproject.org/tag/coreos

Last login: Fri Dec 15 14:43:44 2023 from <IP_ADDRESS>
root@localhost:~# pwd
/root
root@localhost:~# touch rootfile
root@localhost:~# ls -l rootfile
-rw-r--r--. 1 root root 0 Dec 15 14:44 rootfile
root@localhost:~# cp -a rootfile /Users/achilleas/
cp: failed to preserve ownership for '/Users/achilleas/rootfile': Operation not permitted
root@localhost:~# ls -l /Users/achilleas/rootfile
-rw-------. 1 core games 0 Dec 15 14:44 /Users/achilleas/rootfile
root@localhost:~# chown root:root /Users/achilleas/rootfile
chown: changing ownership of '/Users/achilleas/rootfile': Operation not permitted
root@localhost:~# rm /Users/achilleas/rootfile
root@localhost:~# cp rootfile /Users/achilleas/
root@localhost:~# ls -l /Users/achilleas/rootfile
-rw-r--r--. 1 core games 0 Dec 15  2023 /Users/achilleas/rootfile
root@localhost:~#
logout
achilleas@mmini ~ % ls -l /Users/achilleas/rootfile
-rw-r--r--  1 achilleas  staff  0 Dec 15 14:57 /Users/achilleas/rootfile

Now this is on the VM, not inside the container that's running in the VM, but the same rules should apply.

The problem is on a Mac when you mount the homedir into the MAC, it can only store files owned by the host user. Imaging the User UID=1000. When the user runs the VM, it is running as UID=1000. When the user picks a directory for /output that is in their homedir, then bootc-image-builder attempts to create a UID==0 file in the users homedir, which ends up with the VM process (qemu) running as UID=1000 attempting to create a file UID=0 on the host system. The MAC Os does not allow this.
On Windows this does not cause issues because the UIDs/GIDs mean nothing on Windows.
On Linux the qemu process is running within the User Namespace, so that UID=0 within the processes User namespace ends up being UID=1000 in the users homedir.
So this is only an issue on Macs.

This is close to the argument I want to make for having it in the entrypoint.  This is only an issue in containers and only when running on macOS (or possibly also on Linux with podman machine?).  I have it working as part of the bootc-image-builder binary, but that means that if you ever run the command outside a container (which should be fine, why not support this case?), then you're doing an unnecessary extra copy that was added to get around a specific container-related case even when you don't need it.  And to me it always feels strange when tools have container-specific behaviour built-in that still happens when they're not containerised.

Pushed the go code.

Tests are failing because of lack of space, which makes sense since the AMI is 10 GiB.  The previous tests with cp in the entrypoint succeeded, probably because it preserves file sparseness and the io.Copy() I used here doesn't.
We could keep the copy operation in the Go code but shell out to cp instead of doing it natively.

Updated with new approach: Check if we can set the ownership of files in the output directory and if we can't, use a new osbuild feature to disable the ownership preservation when exporting.
Converting the PR to draft until the osbuild PR is merged and released.

Fwiw  https://github.com/osbuild/osbuild/pull/1512 is now merged so this should be unblocked now

My ideas around some basic testing:
0001-bib-add-basic-testing-for-canChownInPath.patch.txt

Added.  Thanks for this.


Pixel Perfect Collision Detection

Suppose if I have an image with a transparent background and I want to detect collisions only when an object is colliding with the visual/colored part of the image. Is there a feature like that that already exists or maybe you're working on?
Here's an example,

When I press on the screen that ball/bullet is fired from that shooter in the middle of the screen. The walls outside is one image with a transparent background and I want to detect the collision if the ball collides with the colored part of that image, but that's not what is happening currently, the collision detection currently is on the bounding box of the image which means if the bullet goes through even the transparent part of the image, it will be considered a collision.
Is there any way to solve this problem?
Secondly can we group multiple objects/sprites together and then move or rotate them, if that is possible or can be made then I can take care of the above issue.

If I understand the desired mechanics correctly, you can use 8 game objects with area() component for the 4 corners, and use a origin(Vec2) to modify the rotate() origin point, i can try an implementation later

I see, well I thought of that solution as well but 8 game objects? 😅 I mean I'll have a bunch of more types of walls for different levels but anyway thanks for the reply I'll try that implementation as well...

I did solve that issue @slmjkdbtl but now I realise there's another issue i.e. the collision is not proper if the walls are rotated to an angle

Oh yes, kaboom only has naive AABB collision detections now :( Planning on moving to a more powerful system in the future

Ah man that's a bummer

I guess this issue can be closed then, my problem is like an inch away from being completely solved, but I do need to check for collisions perfectly while the walls are rotating, is there any kaboom fork or alternate library that does that?

If you want to check collision for rotated objects there's 2 way I'd suggest:

Look up SAT (Separating Axis Theorem) collision detection, which reliably provides collision checking and resolution for any convex polygon.
Use line collision detection and check for intersection between every 2 lines of each rectangles. If a single pair of line has intersection then the 2 rectangles must be colliding.

The second one is definitely easier and cheaper, but it still requires some math and wrangling since you'll have to calculate the rotated vertices of each rectangle.

is there any way to color the collision area? My problem is different as I'm trying to keep the collision area inside the colored area of the sprite. I have a 32x32 sprite but the character does not take the full space. Its hard because I cant see the collision area.

If I understand the desired mechanics correctly, you can use 8 game objects with area() component for the 4 corners, and use a origin(Vec2) to modify the rotate() origin point, i can try an implementation later

would you be able to share an implementation for this? I would like to learn how.

I figured out how. pressing F1 outlines the collision area. Its very helpful. The area function takes an object with different options for me to set the position of the box relative to the player origin and I'm able to set the width and height as well.

I see, since this follows AABB collision detection, I normally just imagined that the there was a box which was same as the resolution of the image which if scaled is the same aspect ratio. Anyway will try out the F1 key as well.


[Resource/Policy] Add support for policy at ManagementGroup level

Generated from RestAPI PR: https://github.com/Azure/azure-rest-api-specs/pull/1754

Codecov Report

Merging #1499 into master will decrease coverage by 0.04%.
The diff coverage is 5.4%.

@@            Coverage Diff             @@
##           master    #1499      +/-   ##
==========================================
- Coverage   55.07%   55.03%   -0.05%
==========================================
  Files        3454     3454
  Lines       84233    84307      +74
==========================================
+ Hits        46395    46399       +4
- Misses      37838    37908      +70

Impacted Files
Coverage Δ

..._12_01/operations/policy_definitions_operations.py
54.08% <5.4%> (-42.39%)
: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 c9a8a87...868bdac. Read the comment docs.

@lmazuel Can we please include changes from this spec PR as well?

@vivsriaus once the new spec PR will be merged, a new PR will be made automatically.

@lmazuel Sorry I wasn't clear - I meant we should hold off on publishing a new package with the changes in this PR until the new spec PR is also merged.

Replaced by https://github.com/Azure/azure-sdk-for-python/pull/1507


How to add this app to mac

dear sir,
I do not find the normal install file for your great leanote app, so how to install  this app to mac?

Sorry, there are still some bugs and unfinished features.
I will make v0.3.0 release before this weekend.

@LucasYuNju Great! Thanks for your reply, and waiting for the app.


Change "variable" to "expression", support escaping in expression names

An elegant way to handle this might be to use an "escaper" callback for each language, or even an entire callback function to construct the line (with a default implementation).

The ROI on implementing this will be too complicated.


[GHA] Call the reusable package workflow

Motivation
We are migrating our CI over to GH actions. We have created a reusable workflow inside the NIO repository that we want to move into a separate repo in the future. For testing purposes let's try out calling the reusable workflow from the this repo as well.
Modification
Add a GH actions workflow that calls the reusable package workflow.

Thanks @FranzBusch - is there a way to call that workflow manually on this PR before merging it, to test it out?

Thanks @FranzBusch - is there a way to call that workflow manually on this PR before merging it, to test it out?

Not that I know of. We have to land it on main once and can start iterating then. FYI I fully expect a few pipelines to fail since I need some fixes to handle the cross repo scripts. Would be great if we can land this though to start iterating. The checks aren't required so nothing should get blocked by them

@swift-server-bot add to allowlist


[GLib] Use G_DECLARE_DERIVABLE_TYPE()

Describe the enhancement requested
Old codes still use raw #defines.
Component(s)
GLib

Issue resolved by pull request 40497
https://github.com/apache/arrow/pull/40497


Deployment queue settings support

Is there a way to have the same behavior as classic pipelines' Deployment queue settings? We noticed our YAML pipelines will still deploy on environments even if there's an earlier pipeline execution awaiting approval or already deploying on the same environment.
Is this something we can implement in YAML pipelines?

To anyone else searching: the stale-bot link isn't really helpful, but I found this:
Developer Community - Bring queuing policies to YAML multistage pipelines
Hope this gets addressed soon.

I guess it doesn't cover 100% of the feature in release management, but something has been released already as part of Sprint 172:
https://docs.microsoft.com/en-us/azure/devops/release-notes/2020/sprint-172-update#exclusive-deployment-lock-policy


precheck for Value expression

Is your feature request related to a problem? Please describe.
When I set a property and set the value used an invalid expression, I got the error when I chat with the bot.

Describe the solution you'd like
Support a precheck for the expression when I type in so that I can fix the error before publish.
Describe alternatives you've considered

Additional context

This requires the expression validation support.


Poedit crashes when pressing F10, Space

OS: Windows 10
Poedit: Version 2.0beta2 (4723)
To reproduce:

Start Poedit without any file
Press the F10 key. This will select the File menu
Press the Space key. This will crash Poedit

These are the simplest steps to reproduce. My actual workflow looked like this:

Start Poedit with an existing translation
Focus the translation text field
Press AltGr+8, which on a German keyboard layout usually inserts an opening square bracket
Press Space

After step 3, the main menu is focused, which is weird. Also, no character is inserted into the translation text field. This means I cannot type any characters requiring the AltGr key.

Thanks! Looks like these are two unrelated bugs :(

After step 3, the main menu is focused, which is weird. Also, no character is inserted into the translation text field. This means I cannot type any characters requiring the AltGr key.

I’m not seeing the behavior you describe (with German keyboard). Yes, the menu is highlighted due to a mCtrl bug, but the text is also typed as it should. Are you sure you had focus in the text entry area at the time?

Could you please try this replacement executable to see if it fixes the issue (it does for me, but see above, there seem to be some discrepancies between our situations)? Or if there aren’t any other keyboard/menu related bugs?
https://jumpshare.com/v/QRtupakRD9Gy3CgRun8f
Thanks!

Are you sure you had focus in the text entry area at the time?

Veeery good question. I am not sure, and therefore I tried again. This time, the [ was inserted, as you expected. I had probably clicked into the English field instead of the German one.
With the replacement executable, the crash doesn't happen anymore.  The menu is still selected.
Thank you for the quick fix, and for the whole program after all. :)

The menu is still selected.
Thank you for the quick fix

That crash is a superficial triviality, it’s the bad keyboard input I’m concerned about — and what you’re saying is that it wasn’t fixed at all.
At the risk of repeating myself, are you sure? Because doing what you claim to do here, namely using AltGr+8 with the German keyboard (this matters, US keyboard behaves differently!), does not select the menu in this build.
If you’re still seeing unintended menu invocation, can you please describe what exactly you do, in the that test build, to trigger it? Thanks!

The exact steps are:

Start Windows. I'm on version 10.0.14393.
Start Poedit from the start menu. I'm on version 2.0beta2 (4723), as instructed by your above comment.
Hold down the AltGr key. The menu letters get underlined.
Release the AltGr key. The file menu gets a light blue background.

It's as simple as that.
For comparison, I tried Audacity, since it also uses wxWidgets. But that one doesn't show the effect.
Switching the keyboard to English also shows the effect.
Switching to a newly created local Windows account shows the effect.
Even if I turn off all other Windows applications, the effect is still there.

Hold down the AltGr key. The menu letters get underlined.

Release the AltGr key. The file menu gets a light blue background.

I thought you were saying that the menu still gets wrongly selected while typing [ using AltGr (as was the case before the test build above). That seems to be very different thing from the above. Am I missing something?
I'll retest tomorrow but I would swear I checked that just pressing different Alt keys (i.e. LeftAlt vs RightAlt vs AltGr), without doing anything else, behaves differently as it should.

since it also uses wxWidgets.

wx has no relevance to this.

Sorry, please give me a last try on this:

Start Poedit.
Hold down the AltGr key. The menu letters get underlined.
Press 8. Nothing changes visually.
Release 8. Nothing changes visually.
Release the AltGr key. The file menu gets a light blue background.

 That’s absolutely not it — but something is very, very wrong here, there are vast unexplainable differences in basic behavior between what I see in the same version of Windows, with the same keyboard, and between what you report. I’m trying to verify if my fix is correct, so I need to get to the bottom of this. So again, my apologies. Just trying to rule out things out.)
(1) First of, please use this build: https://jumpshare.com/v/D1Y7dS0IgUEm5tzyeU5e — it’s identical to the previous one, but adds a “TEST BUILD” string to the titlebar after you open a file, so that you can be sure you’re using the correct version. This is to ensure that you’re not still accidentally using the old build; it certainly would be one of the two simplest explanations.
(2) Per your latest step-by-step instructions, you’re trying to use AltGr+8 when there’s nothing to type in: you say to just "start Poedit”, which shows the welcome screen. There’s no place to type, so how can you test typing [? Please open a PO file and put focus into editing area for testing (as that’s where AltGr behavior matters). This is a "just in case” thing, because I see no wrong behavior on the welcome screen either here.
(3) This isn’t how Poedit or any native Windows app (try e.g. Notepad) behave:

Hold down the AltGr key. The menu letters get underlined.

The accelerators aren’t underlined until after you release the Alt key. Do you use any custom settings somewhere to change that?
(4) Do we understand each other about the difference between the Alt key (on the left side) and AltGr (on the right side if you use German keyboard)? Alt is supposed to behave like this, AltGr is not (i.e. the bug is that on Windows 10, Poedit/mCtrl treat AltGr equally to Alt).
(5) Please verify that you have in fact the German keyboard (not just German-language keyboard, but German layout keyboard) set when testing this, because English keyboards don’t have AltGr. This the 2nd simplest explanation for the discrepancy, that you accidentally test with a wrong keyboard.
(6) Please try some other key combinations too, such as AltGr+E (for €) or AltGr+Q (for @).
(7) Please try in Notepad too, just in case.
If all these checks pass, then I am at complete loss :( It just can’t be this radically different...

Also, you are able type using AltGr now, correct? There were three issues: crash (you reported fixed), selection of menu when it should (you reported still there) and inability to type e.g. “[“ with AltGr (you didn’t explicitly say either way).

I absolutely don't feel treated in any bad way. Narrowing down the issue with further precise questions is the only thing we can do to narrow down the problem.

(1) First of, please use this build: https://jumpshare.com/v/D1Y7dS0IgUEm5tzyeU5e — it’s identical to the previous one, but adds a “TEST BUILD” string to the titlebar after you open a file, so that you can be sure you’re using the correct version. This is to ensure that you’re not still accidentally using the old build; it certainly would be one of the two simplest explanations.

Succeeded. The "** TEST BUILD" appears.

(2) Per your latest step-by-step instructions, you’re trying to use AltGr+8 when there’s nothing to type in: you say to just "start Poedit”, which shows the welcome screen. There’s no place to type, so how can you test typing [?

With these step-by-step instructions I wanted to demonstrate that the menu gets the focus when it shouldn't. Since it doesn't matter whether I press the AltGr key in a text field or anywhere else, I thought having as few steps as possible would be best for reproducing the issue.
So this was not about being able to type something but just to reproduce the main menu focus. Since that is already unusual I thought fixing this issue would also fix the typing issue. That's why I concentrated on this one.

Please open a PO file and put focus into editing area for testing (as that’s where AltGr behavior matters). This is a "just in case” thing, because I see no wrong behavior on the welcome screen either here.

(3) This isn’t how Poedit or any native Windows app (try e.g. Notepad) behave:
Hold down the AltGr key. The menu letters get underlined.
The accelerators aren’t underlined until after you release the Alt key. Do you use any custom settings somewhere to change that?

I know that this is not the normal behavior. I tried Notepad and Audacity and Chrome and Poedit 1.8.11, and all these behave as expected. Only Poedit 2.0 doesn't, and I have no idea why.

(4) Do we understand each other about the difference between the Alt key (on the left side) and AltGr (on the right side if you use German keyboard)? Alt is supposed to behave like this, AltGr is not (i.e. the bug is that on Windows 10, Poedit/mCtrl treat AltGr equally to Alt).

I know that LeftAlt is different from AltGr.
I know that AltGr is indistinguishable from Alt+Strg on the WM_KEYDOWN layer.
I don't know what you mean by "the bug is that on Windows 10, Poedit/mCtrl treat AltGr equally to Alt". Is this "bug" a known one or the one we're currently hunting?

(5) Please verify that you have in fact the German keyboard (not just German-language keyboard, but German layout keyboard) set when testing this, because English keyboards don’t have AltGr. This the 2nd simplest explanation for the discrepancy, that you accidentally test with a wrong keyboard.

I have a Logitech keyboard with German labels on all the keys.
The keyboard layout in Windows is German/Germany.
As I already said above, when I switch the Windows keyboard layout to English (US), pressing AltGr also focuses the main menu.

(6) Please try some other key combinations too, such as AltGr+E (for €) or AltGr+Q (for @).

All the AltGr key combinations have the same effect: I can type, but as soon as I release the AltGr key, the main menu gets the focus.

(7) Please try in Notepad too, just in case.

I did. Notepad behaves normally, as does Poedit 1.8.11.

If all these checks pass, then I am at complete loss :( It just can’t be this radically different...

Can you think of anything that changed between 1.8.11 and 2.0beta2?

Also, you are able type using AltGr now, correct? There were three issues:
crash (you reported fixed),

No crash anymore.

selection of menu when it should (you reported still there)

When it shouldn't. Yes, this is still there in 2.0beta2, 2.0beta2-nocrash and 2.0beta2-testbuild. But not in 1.8.11.

and inability to type e.g. “[“ with AltGr (you didn’t explicitly say either way).

I am able to type. It's just that when I release AltGr, that the main menu gets the focus. When I press AltGr again, the focus is back in the text field and I can continue typing.
To rule out any other processes, I terminated all processes except Explorer.exe and Poedit.exe, so that should not be an issue. Yesterday I installed Visual Studio, so I will try to find out which WM_KEY messages are sent around. I still have no idea why this behaves differently.
A big thank you for all the support.

(3) This isn’t how Poedit or any native Windows app (try e.g. Notepad) behave:
Hold down the AltGr key. The menu letters get underlined.
The accelerators aren’t underlined until after you release the Alt key. Do you use any custom settings > somewhere to change that?
I know that this is not the normal behavior. I tried Notepad and Audacity and Chrome and Poedit 1.8.11, and all these behave as expected. Only Poedit 2.0 doesn't, and I have no idea why.

What does it mean “as expected” exactly? This issue very much requires exact, precise formulations, it keeps getting more and more confusing otherwise.
Are you saying that the menu items are not underlined in Notepad when you hold Alt (not AltGr!) (and are only underlined after you release it), but they are in Poedit 2 as soon as you press and still hold Alt (not AltGr!)?
Because that’s absolutely not what I’m seeing at all. In fact, part of the confusion was my use of Parallels — where holding Alt (not AltGr) doesn’t underline accels, whereas a physical USB keyboard does (here too). So I eliminated one discrepancy… except that your statement above, directly responding to me talking about exactly this issue, seems to contradict this as well as your previous statements. That makes debugging extremely hard :(

Can you think of anything that changed between 1.8.11 and 2.0beta2?

I am fully aware of what caused it and need help with understanding the cause of the bug. I already fixed the bug as far as I can tell — while I could reproduce the reported bugs without issues locally, I no longer can with the fix and Poedit behaves 100% identically to other native applications.
To be extra sure, I borrowed a Windows USB keyboard and plugged it in directly, eliminating any possibility of the input being messed up by Parallels. Still behaves identically in Poedit and everywhere else (with the difference in when menu items are highlighted during pressing Alt between hardware and Parallels keyboards).
What I need to do is understand why the fix which is working here mysteriously does NOT work for you.
About that I’m at lost. The principal difference between Alt and AltGr is that Alt sends WM_SYSKEYDOWN while AltGr sends WM_KEYDOWN — they can be distinguished easily enough. And it’s not like Windows would send radically different messages on different machines with the exact same OS version. So why does the fix not work in your case?
I’m so confused it’s not even funny.
Here’s one more test to try: Is there any difference between how LeftCtrl+LeftAlt+E behaves in Notepad and in the Poedit testbuild? AltGr is actually implemented as LeftCtrl+Alt in Windows and using the above combination types € in the same way as AltGr+E does — they are identical at the low level keyboard handling.

(3) This isn’t how Poedit or any native Windows app (try e.g. Notepad) behave:
Hold down the AltGr key. The menu letters get underlined.
The accelerators aren’t underlined until after you release the Alt key. Do you use any custom settings >> somewhere to change that?
I know that this is not the normal behavior. I tried Notepad and Audacity and Chrome and Poedit 1.8.11, and all these behave as expected. Only Poedit 2.0 doesn't, and I have no idea why.
What does it mean “as expected” exactly? This issue very much requires exact, precise formulations, it keeps getting more and more confusing otherwise.

With "as expected" I meant that these applications do not focus the main menu when I press AltGr. Since pretty much all applications act this way, this is what I expected.

Are you saying that the menu items are not underlined in Notepad when you hold Alt (not AltGr!) (and are only underlined after you release it), but they are in Poedit 2 as soon as you press and still hold Alt (not  AltGr!)?

No, I'm not saying that. I never said anything about the Alt key. I only said something about AltGr.
But now that you mention it, I tried out what happens in Notepad, Poedit 1.8.11 and Poedit 2.0beta2:
Notepad and Poedit 1.8.11:

Action
Menu letters
File menubackground color
Text cursor

0. Start
not underlined
white
blinks

1. KeyDown LeftAlt
underlined
white
blinks

2. KeyUp LeftAlt
underlined
blue
does not blink

3. KeyDown LeftAlt
not underlined
white
blinks

4. KeyRepeat LeftAlt
not underlined
white
blinks

5. KeyUp LeftAlt
not underlined
white
blinks

Poedit 2.0beta2 behaves the same, unless you wait 3 seconds between step 3 KeyDown LeftAlt and 4 KeyUp LeftAlt. Then the following happens:

Action
Menu letters
File menubackground color
Text cursor
Remarks

0. Start
not underlined
white
blinks

1. KeyDown LeftAlt
underlined
white
blinks

2. KeyUp LeftAlt
underlined
blue
does not blink

3. KeyDown LeftAlt
not underlined
white
blinks

4. KeyRepeat LeftAlt
underlined
white
blinks
different

5. KeyUp LeftAlt
underlined
blue
does not blink
different

Maybe this is a clue to find the actual cause.

Because that’s absolutely not what I’m seeing at all. In fact, part of the confusion was my use of Parallels — where holding Alt (not AltGr) doesn’t underline accels, whereas a physical USB keyboard does (here too). So I eliminated one discrepancy… except that your statement above, directly responding to me talking about exactly this issue, seems to contradict this as well as your previous statements. That makes debugging extremely hard :(

Here’s one more test to try: Is there any difference between how LeftCtrl+LeftAlt+E behaves in Notepad and in the Poedit testbuild? AltGr is actually implemented as LeftCtrl+Alt in Windows and using the above combination types € in the same way as AltGr+E does — they are identical at the low level keyboard handling.

In Notepad, LeftCtrl+LeftAlt+E types €, without underlining the main menu letters.
In Notepad, LeftAlt+LeftCtrl+E types €, while temporarily underlining the main menu letters.
After releasing all keys, the focus is still in the text field.
Poedit 1.8.11 behaves the same as Notepad.
In Poedit 2.0beta2, LeftCtrl+LeftAlt already underlines the main menu letters, which it shouldn't.
After releasing all keys, the main menu has the focus.
In Poedit 2.0beta2, LeftCtrl+LeftAlt+E types € and underlines the main menu letters.
After releasing all keys, the main menu has the focus.

I hope these cases clear up the situation. If you give me some pointers where to look in the code, I can do that. I have successfully checked out Poedit master, built it and it's running. My build shows the same weird behavior as the testbuild version you sent me.

Maybe this is a clue to find the actual cause.

Nah, that’s another subtle bug in the mCtrl menubar control that you discovered (thanks!).
I’m terribly sorry, I just discovered what the cause of the discrepancy is: my mind-boggling colossal stupidity. It would be impressive if it weren’t sad that I wasted so much of your time like this — and I can’t even blame it on the flu I was down with most of the week because I wasn’t nearly enough sick to be delirious.
You see, I sent you a replacement Poedit.exe. But the fix, being for mCtrl, was in mctrl.dll, which I never sent you… so of course you didn’t see any changes.
😐🔫
Here’s the DLL that presumably fixes it for you once you replace Poedit’s standard one with it: https://jumpshare.com/v/S26mnp6WRzXLVRoOwGj7
Sorry again for such an inexcusable waste of your time.

Yay, it works. And it's totally excusable. This exact same thing could have happened to me.
Thank you for spending so much time on this. Now let's get back to more interesting topics. :)


Allow SignedAmount parse values equal to i64::MIN

Fixes #2267.
Previously, parsing such textual value returned 'too big' error. This change fixes it and adds relevant tests. Without this patch, the newly added tests fail with TooBig.

Thanks!


Add separate-space dithering

Implements the SeparateSpace method including tests and examples in the docs. Closes #23.
API changes
This PR necessitated a small reworking of the API. The type hierarchy now looks as follows:
# Algorithms for which the user can define a custom output color palette.
# If no palette is specified, algorithms of this type will default to a binary color palette
# and act similarly to algorithms of type AbstractBinaryDither.
abstract type AbstractCustomColorDither <: AbstractDither end

# Algorithms whose output uses predefined sets of color, e.g. separate space dithering:
abstract type AbstractFixedColorDither <: AbstractDither end

# Algorithms which strictly do binary dithering:
abstract type AbstractBinaryDither <: AbstractFixedColorDither end

As the docstrings point out, every AbstractCustomColorDither algorithm is expected to work like a AbstractBinaryDither algorithm when applied to a gray-scale image without providing a color scheme. This is necessary to be able to use error diffusion algorithms (which are of type AbstractCustomColorDither) with SeparateSpace.
Breaking changes
The default output type of dither on gray-scale images is now the image eltype instead of Gray{Bool}.

Just curious, will
alg = Bayer() |> SeparateSpace |> SeparateSpace |> SeparateSpace |> SeparateSpace

work? 😄

I expected this to be the same as Bayer() |> SeparateSpace, but it isn't:

This is quite strange, as SeparateSpace just uses views onto channelview. At some point the images passed through SeparateSpace should just have one channel and nothing should change, but this doesn't appear to be the case.
This gets worse with repeated applications:

The issue is that repeated application of view(img, 1, :, :) slices the image:
julia> img = rand(RGB, 5, 5)
5×5 Array{RGB{Float64},2} with eltype RGB{Float64}:
 RGB{Float64}(0.715113,0.491371,0.296905)   …  RGB{Float64}(0.791234,0.951492,0.814854)
 RGB{Float64}(0.72507,0.188623,0.939496)       RGB{Float64}(0.743093,0.680352,0.643163)
 RGB{Float64}(0.706082,0.0881292,0.518988)     RGB{Float64}(0.158277,0.374302,0.0810188)
 RGB{Float64}(0.731997,0.700499,0.676473)      RGB{Float64}(0.230681,0.79649,0.11652)
 RGB{Float64}(0.780349,0.169881,0.798904)      RGB{Float64}(0.659169,0.948437,0.774215)

julia> channelview(view(channelview(img), 1, :, :))
5×5 view(reinterpret(reshape, Float64, ::Array{RGB{Float64},2}), 1, :, :) with eltype Float64:
 0.715113  0.134762  0.637772   0.213     0.791234
 0.72507   0.211181  0.925992   0.289092  0.743093
 0.706082  0.356741  0.0447958  0.523512  0.158277
 0.731997  0.747477  0.848042   0.737581  0.230681
 0.780349  0.916575  0.468991   0.709834  0.659169

julia> channelview(view(channelview(view(channelview(img), 1, :, :)), 1, :, :))
5×1 view(reshape(view(reinterpret(reshape, Float64, ::Array{RGB{Float64},2}), 1, :, :), 5, 5, 1), 1, :, :) with eltype Float64:
 0.71511314161005
 0.13476170768648266
 0.6377716535250101
 0.21300024258756445
 0.791234444784436

How about adding a constructor to avoid such cases?
SeparateSpace(alg::SeparateSpace) = alg

That's a more elegant solution than I had in mind... 😄


Only warn about unsupported JavaScript, in the viewer, when non-empty actions exist (issue 5767)

Some PDF files contain JavaScript actions that consist of nothing more that one, or possibly several, empty string(s). At least to me, printing a warning/showing the fallback seems completely unnecessary in that case.
Furthermore, this patch also makes use of an early return, so that we no longer will attempt to check for printing instructions when no JavaScript is present in the PDF file.
Note: It would perhaps make sense to change the API/core code, such that we ignore empty entries there instead. However, that would probably be considered a breaking changing with respect to backwards compatibility, hence this simple viewer only solution.
Fixes #5767.
Edit: The existing test-files issue6106.pdf and bug1001080.pdf could be used to check that this patch doesn't break the warning/fallback in cases where it's still applicable.


Refactoring ideas tracker

@diptorupd @reazulhoque @1e-to
This ticket is for collecting issues with ideas and proposals for code improvements.
All issues will be with following label: code-cleanup

[x] #635
[x] #633
[ ] ...

Both tasks have been completed.


Add "Hexide" as a new mirror

DisplayName: Hexide
WebUrl: https://osu.hexide.com/doc
DownloadUrl: https://osu.hexide.com/beatmaps/%ID%/download

Due to how the mirror has been saved in the settings file (a id which is also the position in the selection window - yes, I know that this is stupid) it's a little more complicated than expected to resolve this issue and will take a little more time.


cks: fix k8s cluster template retrieval

Description
Fixes #4107
Fixes template checks
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Screenshots (if appropriate):
How Has This Been Tested?

@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✔debian. JID-1255

@blueorangutan test

@shwstppr a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-1590)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 35638 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4116-t1590-kvm-centos7.zip
Smoke tests completed. 83 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✔debian. JID-1311

@blueorangutan test

@shwstppr a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✔debian. JID-1341

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@shwstppr can you club your cks PRs, and at least change base branch to 4.14?

@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✔debian. JID-1454

@blueorangutan test

@shwstppr a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✔debian. JID-1463

Can you help review and test @davidjumani

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✖debian. JID-1524

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✔debian. JID-1543

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-2028)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 37747 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4116-t2028-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_kubernetes_supported_versions.py
Intermittent failure detected: /marvin/tests/smoke/test_privategw_acl.py
Smoke tests completed. 82 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_add_delete_kubernetes_supported_version
Error
5.23
test_kubernetes_supported_versions.py

Packaging result: ✔centos7 ✔debian. JID-1562

@blueorangutan test

@shwstppr a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-2039)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 35106 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4116-t2039-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_kubernetes_supported_versions.py
Smoke tests completed. 82 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_add_delete_kubernetes_supported_version
Error
1807.31
test_kubernetes_supported_versions.py

@blueorangutan test

@shwstppr a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-2090)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 35181 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4116-t2090-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_privategw_acl.py
Smoke tests completed. 83 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

@shwstppr is this ready for review, can you open is for review then?
@davidjumani @Pearl1594 @DaanHoogland can you help review as well


Review default settings for filters

We should review the current default filter settings, especially in light of the OpenFE RFE Protocols.
Specifically we should look at the following filters:

Ring breaking settings
Hybridization change
Hydrogen to heavy atom (aiming to turn it off)

To achieve this we should:

Map plb v0.3 (and/or industry benchmarks) and run on edges that are different
Run both “same edges” and “new network”

@jthorton could you write some outcomes of this work? i.e. it's closed - what were your findings and what will you do next.

Following the filter investigation we plan on:

changing the hydrogen to heavy atom mapping to False by default which has no impact on performance but makes the visualisation of the mapping match what is used in practice as the hybrid topology protocol silently removed the mappings.
For the fused ring changes we saw minimal impact on performance across the 5 edges which had new mappings across all systems in the MST PLB networks. We plan to test this on more transformations by creating a maximally connected network for hif2a and looking at fused ring edges and some ASAP networks from Jenke which seem to break unless this method is used.
The hybridization filter needs to be refined as it was unexpectedly changing mappings due to the hybridization assigned by rdkit to aromatic ether linker groups, which caused very large perturbations.


Use with component state instead of the store?

This looks sorta kinda like something I threw together while prototyping stuff recently.  I wanted to have controlled inputs in a form, with immediate updates as the user typed, but only dispatch events on a delay after the user paused typing to cut down on the total number of "STUFF_EDITED" events that went through.  The component I came up with is over here: https://gist.github.com/markerikson/554cab15d83fd994dfab
Your utility looks passably similar to what I did, but more in depth.  I see that the wrapper component you generate does takes "dispatch" as an optional prop.  Would it be possible to use it in such a way that the "dispatched" actions actually get handled by a parent component rather than going straight to the Redux store?

It's kind of a trade-off, you choose between a fully controlled store or a easy-to-code-but-harder-to-reason state(even you can just use refs for form controls to get its value).
I prefer the former one personally, despite it is kind of verbose, it is really helpful when you're reasoning about your app, or for example, initializing with default value.

I'm closing this issue, if you have further concerns, feel free to reopen it.


Repeating Set of Tweets

Command Ran
import twint
c = twint.Config()
c.Search = "#OmpongPH"
c.Format = "{tweet}"
c.Lang = "tl"
c.Limit = 1000
twint.run.Search(c)
Description of Issue

Repeated gathered tweets. Every time I use c.Search, the tweets being displayed are repeated at a set of 20. There will be 20 unique tweets but after the first 20 unique tweets the following tweets are just repeated from those 20 tweets again and again.

Environment Details

Using Windows. Running this in Anaconda. Spyder Python 3.6

Started happening samw thing to me just now. didnt happen yesterday that I used it. So weird maybe twitter blocked it?

Could be related to #249
Will discuss about this in that issue to avoid double comments

Possibly solved by this PR: https://github.com/twintproject/twint/pull/251

having this problem still

@haRpxd be sure to use the latest version. If the problem persists, please provide us more details about your query (which username you want to scrape, date range, and so on)


Script failed an OP_EQUALVERIFY operation

Hi!
We are using this lib in our wallet and from 13 Sep 2018 ~10am UTC we are getting this error on all transactions:
16: mandatory-script-verify-flag-failed (Script failed an OP_EQUALVERIFY operation). Code:-26
What's the cause of this and how could this be fixed?
UPD: actual code
// Create tx
let transaction = core.transaction.createRawTx(
  data.inputs.map(item => ({
    txid: item.txId,
    vout: item.outputIndex,
    scriptPubKey: item.script,
  })),
  data.outputs.map(item => ({
    address: item.address,
    satoshis: item.value,
  })),
  blockHeight,
  blockHash,
);

// Get private key hex
let pvKey = null;
try {
  pvKey = core.address.WIFToPrivKey(privateKey);
} catch (ignore) {
  pvKey = core.address.mkPrivKey(privateKey);
}

// Sign tx
for (let i = 0; i < transaction.ins.length; i += 1) {
  transaction = core.transaction.signTx(transaction, i, pvKey);
}

// Publish serialized tx
const signedRawTx = core.transaction.serializeTx(transaction);
const { data: result } = await axios.post(API_BROADCAST, { rawtx: signedRawTx });

Solved it. Temporary solution is to pass true to transaction.sendTx:
transaction = core.transaction.signTx(transaction, i, pvKey, true);

The confusion was caused by a lack of documentation. The user has fixed the issue and the documentation is being updated: https://github.com/ZencashOfficial/zencashjs/pull/14


Split off heavier packages, make espaloma-base

#11
This would enable installation on osx-arm64 if it works

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

This should be fine since the normal/default way of installing espaloma will pull in DLG. At one point when DGL was harder to to install, we moved a lot of the imports around, so I don't have an answer for #11 but I don't think these is a drawback to doing this, since users should still get an error on osx-arm64 if they try and install espaloma

Hmm, so maybe it is needed all the way through
+ python test_readme.py
Traceback (most recent call last):
  File "/home/conda/feedstock_root/build_artifacts/espaloma_1701806628468/test_tmp/test_readme.py", line 8, in <module>
    graph = espaloma.Graph(Molecule.from_smiles("CN1C=NC2=C1C(=O)N(C(=O)N2C)C"))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/conda/feedstock_root/build_artifacts/espaloma_1701806628468/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.12/site-packages/espaloma/graphs/graph.py", line 60, in __init__
    homograph = self.get_homograph_from_mol(mol)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/conda/feedstock_root/build_artifacts/espaloma_1701806628468/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.12/site-packages/espaloma/graphs/graph.py", line 123, in get_homograph_from_mol
    esp.graphs.utils.read_homogeneous_graph.from_openff_toolkit_mol(
  File "/home/conda/feedstock_root/build_artifacts/espaloma_1701806628468/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.12/site-packages/espaloma/graphs/utils/read_homogeneous_graph.py", line 124, in from_openff_toolkit_mol
    import dgl
ModuleNotFoundError: No module named 'dgl'

Yeah lol
https://github.com/choderalab/espaloma/blob/13af90b8158d50730c2c6888dacce8351021f797/espaloma/graphs/utils/read_homogeneous_graph.py#L123-L128


remove leading and trailing quote

Codecov Report

Merging #397 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master    #397   +/-   ##
======================================
  Coverage    80.7%   80.7%
======================================
  Files          42      42
  Lines        1078    1078
  Branches      138     138
======================================
  Hits          870     870
  Misses        134     134
  Partials       74      74

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 6db6c8b...0429a5e. Read the comment docs.


Fix NPE when manually flushing a batch

When manually flushing a batch with a set size, we can potentially run into a NPE if the command queue is empty when flush() is called. This PR is fixing that.
I ran into this problem while working on a code that sends commands to Redis in batches. In my code I defined an interface like this:
@BatchSize(100)
public interface MyCommands extends Commands, BatchExecutor {

    public void set(String key, String value);
}

For each batch, no matter how many commands it has, I want to make sure that it flushes the commands as soon as I finish enqueuing them, like this:
for (int i = 0; i < myBatchSize; i++) {
    api.set(key[i], value[i]);
}
api.flush();

And that's when I ran into a problem: when myBatchSize == 100, after the 100th is enqueued a flush is automatically triggered because of @BatchSize(100), and the queue gets emptied. Right after, api.flush() is called and Lettuce raises a NPE.
A simpler way to reproduce the problem is to just call flush() without ever enqueueing anything, so that's what I did in the test that I wrote.
The fix is really simple and just involves replacing a do..while with a while block that first checks if the queue is empty before trying to poll from it.
The bug is there since at least 5.2 (the earliest version I tested).

Make sure that:

[x] You have read the contribution guidelines.
[ ] You have created a feature request first to discuss your contribution intent. Please reference the feature request ticket number in the pull request.
[x] You use the code formatters provided here and have them applied to your changes. Don’t submit any formatting related changes.
[x] You submit test cases (unit or integration tests) that back your changes.

Care to provide the stack trace showing where the exception originates from?

Care to provide the stack trace showing where the exception originates from?

Sure. This is 6.3.0.BUILD-SNAPSHOT when I run the new test without the fix:
java.lang.NullPointerException
	at io.lettuce.core.StatefulRedisConnectionImpl.preProcessCommand(StatefulRedisConnectionImpl.java:201)
	at io.lettuce.core.StatefulRedisConnectionImpl.dispatch(StatefulRedisConnectionImpl.java:159)
	at io.lettuce.core.dynamic.SimpleBatcher.doFlush(SimpleBatcher.java:138)
	at io.lettuce.core.dynamic.SimpleBatcher.flush(SimpleBatcher.java:108)
	at io.lettuce.core.dynamic.SimpleBatcher.flush(SimpleBatcher.java:85)
	at io.lettuce.core.dynamic.BatchExecutableCommandLookupStrategy$1.execute(BatchExecutableCommandLookupStrategy.java:79)
	at io.lettuce.core.dynamic.RedisCommandFactory$CommandFactoryExecutorMethodInterceptor.invoke(RedisCommandFactory.java:235)
	at io.lettuce.core.dynamic.intercept.MethodInterceptorChain$MethodInterceptorContext.proceed(MethodInterceptorChain.java:118)
	at io.lettuce.core.dynamic.intercept.MethodInterceptorChain$PooledMethodInvocation.proceed(MethodInterceptorChain.java:201)
	at io.lettuce.core.dynamic.intercept.DefaultMethodInvokingInterceptor.invoke(DefaultMethodInvokingInterceptor.java:45)
	at io.lettuce.core.dynamic.intercept.MethodInterceptorChain$MethodInterceptorContext.proceed(MethodInterceptorChain.java:118)
	at io.lettuce.core.dynamic.intercept.MethodInterceptorChain.invoke(MethodInterceptorChain.java:80)
	at io.lettuce.core.dynamic.intercept.InvocationProxyFactory$InterceptorChainInvocationHandler.handleInvocation(InvocationProxyFactory.java:102)
	at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)
	at io.lettuce.core.dynamic.$Proxy47.flush(Unknown Source)
	at io.lettuce.core.dynamic.RedisCommandsBatchingIntegrationTests.shouldNotCrashWhenFlushCalledWithEmptyQueue(RedisCommandsBatchingIntegrationTests.java:110)

SimpleBatcher::doFlush() calls connection.dispatch() passing it a list with a null value, and then it eventually crashes inside StatefulRedisConnectionImpl::preProcessCommand() when it tries to read the null value as a command.

Thank you for your contribution. That's merged, polished, and backported now.

@mp911de how is this being backported? Will we see this fix in 5.x, 4.x, etc at some point?

It is backported to Lettuce 6.2.5, which I released today. I maintain only a single bugfix branch at a time.


Forms: Micro-app add enterprise login

Summary of changes

Added new login flow using the Authenticator toolkit component.

AGOL auto login using built-in credentials.
Enterprise login flow -> enter the portal url -> enter credentials -> login.
Skip sign-in will load any pre-specified portals using Anonymous connection.

New navigation component to allow for the login flow.
Upgrades compose-navigation and compose to include animated navigation transitions. This also requires targetsdk to be 34.
Re-designed MapListScreen to include a Profile view with the name of the user logged in and sign out action.
Removed PortalItemUseCase since the layer information is no longer needed.

Thanks @sorenoid, I will merge this and we can make new issue for enhancements like the comment above.


[Utility][Persistence][Consensus] Implement SavePoints & Rollbacks

Objective
This issue is going to be an "umbrella" ticket/epic used to wrap and link all the intermediate steps/deliverables that are necessary to build Savepoints and Rollbacks as highlighted in the Design Document - Issue #493
Origin Document
This is the result of R&D work on #508 which was essentially asking the assignee to build savepoints and rollbacks, just with a different wording thanks to a more "practical" problem to solve.
Goals

Implement an abstraction that can contain the operations performed on the various persistence datastores (as described in the design document) and apply/rollback them atomically
Implement a way to serialize and deserialize the whole persistence state so that's possible to create snapshots and rehydrate them
Implement the Moonshot parts of the design document (perhaps out-of-scope for now? I won't include the deliverables below but please let me know if I should)
Ensure that the state of the modules is restored in case of a rollback

Deliverable

Work stream A

[ ] #563
[ ] #327
[ ] #564
[ ] #435
[ ] #567
[ ] #568

Work stream B

[ ] #565
[ ] #566

Work stream AB (when A & B are completed)

[ ] #570
[?] Moonshots TBD

Non-goals / Non-deliverables

Changes in logic with particular focus to Consensus

General issue deliverables

[ ] Update the appropriate CHANGELOG(s)
[ ] Update any relevant local/global README(s)
[ ] Update relevant source code tree explanations
[ ] Add or update any relevant or supporting mermaid diagrams

Testing Methodology

[ ] Task specific tests or benchmarks: make ...
[ ] New tests or benchmarks: make ...
[ ] All tests: make test_all
[ ] LocalNet: verify a LocalNet is still functioning correctly by following the instructions at docs/development/README.md

Creator: @deblasis
Co-Owners: @Olshansk

Implement the Moonshot parts of the design document (perhaps out-of-scope for now? I won't include the deliverables below but please let me know if I should)

@deblasis This is a goal?

@deblasis This is a goal? Are you implying that it's a stretch goal that may be possible, but you don't want to make it one of the deliverables?

The goal was to have a discussion about it and here we are :) I was meant to raise this yesterday but I forgot.
I think that the moonshot part should be a separate issue in the backlog.
Thoughts?

I think that the moonshot part should be a separate issue in the backlog.

Agreed.

Side note: I accidentally just discovered that if I highlight part of your message and click "quote reply", it only quotes the part that I highlighted.


How to run the server which source code in the directory named "signalling"?

I tried use "python -m SimpleHTTPServer 8000", but seems not work.
"code 404, message File not found"
""GET /socket.io/?EIO=3&transport=polling HTTP/1.1" 404 -"

You can refer to https://codelabs.developers.google.com/codelabs/webrtc-web/#6

I was able to successfully run it using Node.
Install Node, navigate to the Signalling folder in the terminal and use the command node index.js
For development purposes I made it an http request and removed the key and cert options from the request.
var os = require('os');
var nodeStatic = require('node-static');
var https = require('http');
var socketIO = require('socket.io');
var fs = require("fs");
var options = {
	// key: fs.readFileSync('key.pem'),
	// cert: fs.readFileSync('cert.pem')
};

you need "key.pem" and "cert.pem" certificate.

Thank you for your help.
Sorry for late response.


Added GitHub Repository Size Extension

🛠 Fixes Issue
Fixes #415
👨💻 Changes proposed
This Chrome Extension Shows the File Size and Repository Size of all Public Github repiositories.

Advanced Feature - Users can add their Personal Access Tokens to use this Extension for Private Github Repositories too.
Since this adds utility to Github Repositories, I request @ridsuteri to assign Level3 for this

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

📷 Screenshots

@ridsuteri Please review the PR


Using any external Docker Credentials Store (e.g., when using Azure az acr login) prevents using credentials from the POM file (MavenPomAuthSupplier)

Hi,
I'm using an Azure Container Registry where I want to use dockerfile-maven to push Docker images to.
When using the az acr login Azure Command Line Tools command in Windows, Microsoft changes the Docker config.json to instruct Docker for Windows to use the Windows Credential Store to retrieve the password for the respective registry. For reference, the resulting Docker config.json looks like this:
{
	"auths": {
		"[My ACR Name].azurecr.io": {}
	},
	"HttpHeaders": {
		"User-Agent": "Docker-Client/18.03.0-ce (windows)"
	},
	"credsStore": "wincred"
}

I specified the credentials in the POM file and expected the MultiRegistryAuthSupplier to "fall through" to the MavenPomAuthSupplier. However, when the ConfigFileRegistryAuthSupplier first encounters this file, it falsely assumes that there are in fact authentication information, when in reality, they are unavailable as it cannot use the wincred provider. It returns empty credentals, leading to an unauthorized error.
I think the easiest way to solve similar issues would be to change the AbstractDockerMojo#createRegistryAuthSupplier() to FIRST add the MavenPomAuthSupplier and then add the ConfigFileRegistryAuthSupplier, as I'd expect people to be surprised when their POM settings would be overwritten by their Docker config instead of the other way around.
Otherwise, maybe the docker-client could be asked to not return empty authentication information, as this would also be the case when the credsStore is used on other operating systems, e.g., when using D-Bus Secret Service, macOS keychain or pass, see the Docker reference.
For now I'll try removing or setting a wrong path to the Docker config file as a workaround.
Best regards and thanks again for this nice Maven plugin,
Mathias

Ah, I just saw that MultiRegistryAuthSupplier#authForBuild() reverses the list of suppliers before going through them, so maybe I have a different issue. I'll update when I know more about my problem. Sorry for not noticing earlier.

I debugged the problem a bit more. I see now that the MultiRegistryAuthSupplier#authForBuild() is unrelated to this error.
When the Docker config.json has the mentioned format, the MultiRegistryAuthSupplier#authFor() method returns an AutoValue_RegistryAuth  instance that has username=null and password=null because the first added Supplier in AbstractDockerMojo#createRegistryAuthSupplier() is the ConfigFileRegistryAuthSupplier and not as I would have expected the MavenPomAuthSupplier.
So either dockerfile-maven could reverse the order in which the suppliers are added or this issue should be sent to spotify/docker-client.
Thanks a lot for considering this issue.

I can confirm that a workaround for this problem is specifying an invalid value for the dockerConfigFile configuration option.

I saw support for credsStore in https://github.com/spotify/docker-client .
Would  dockerfile-maven support  credsStore soon?


bug: environment information opcodes should grab info from the environment struct, not syscalls

Bug Report
Kakarot version:

[ ] Modify exec_coinbase to grab coinbase address from the Environment. It should be an EthAddress.
[ ] Modify exec_blockhash to take the block number for the environment
[ ] Same for exec_timestamp
[ ] Same for exec_number

@enitrat  may i get assigned ton this issue?


stringToByteProducer doesn't work

The tests for ceylon.http.server contain this
OpenFile file = newOpenFile(path.resource);
file.writeFrom(stringToByteProducer(utf8, produceFileContent()));

which is suppose to write the UTF-8 encoded result of produceFileContent() to the file. AFAICS the producer returned from stringToByteProducer() just doesn't deal with the fact is may need to make multiple calls to encoder.convert() in order to encode the whole of the input.

I don't really want to do anything that causes us to call offsetByCodepoints(), because that would be slow. But ChunkConvert returns the number of elements that it's encoded (in Characters), so I don't see any way to avoid it.
Any thoughts @FroMage?

Just looked at ChunkConvert (first time I see it, it's new). It appears to be missing something, but it very well could be that this omission stems from my original version of the same component. Because it will tell you how much of the input elements it consumed entirely, yet you still need to read done to see that there aren't pieces remaining. For example if you have a 4-byte char and a size-2 buffer, it will tell you it read 1 char, but done will say false because it will have a remainder of the 2 bytes that did not fit. Then you call encode again with a new 2-byte buffer and it will cram the remaining 2 bytes and report that it consumed 0 characters. This time done will say true but you also have to keep in mind that you haven't finished encoding your string.
I believe you do need to keep track of a/ remainders, and b/ the input size (by char, not by code point), but that means that encode requires an optional parameter Integer startingFrom = 0, to continue encoding where you left it last. Or you modify the remaining String you pass it.

It may have been a mistake to accept FromImmutable (e.g. {Character*}) as the input to ChunkConverter.convert. FromMutable (e.g. CharacterBuffer) would keep track of the read Characters as designed.
I think I did this update to the io socket tests, which shows a working case of writing a String with a chunkEncoder via a CharacterBuffer.
ChunkConverter isn't used internally in ceylon.buffer, I added it to work with the ceylon.io stuff like stringToByteProducer. Codec.encode() for example ultimately uses a PieceConvert here, which is fine there, because it doesn't have to worry about the buffer running out of space.

Fixed by https://github.com/ceylon/ceylon-sdk/pull/595


Add support for Org-mode

This PR enables the plugin to be used when the user has chosen org mode as the format.
One problem is that Readwise does not support org syntax and hence the pulled content is still as markdown. Nevertheless, logseq renders it.
Things to fix:

[ ] Random highlight has some logic to look at the "## Readwise Highlights", this needs to be updated.

@ashfaqfarooqui Thanks for your pointers on Discord.
Feel free to make another PR if you like, with the correct syntax. As correctly pointed out in the discord, the "templates" are found on https://github.com/hkgnp/logseq-readwise-plugin/blob/master/src/services/checkOrgOrMarkdown.ts.


python runtime support, fixes #8

This is my attempt to solve #8 , as I need to run a Python 3 scientific app. I managed to do the deployment steps with my app, so I think it goes in the right direction, but it's not done yet. I'm still experiencing application errors due to gunicorn not being found. Maybe I need to source the condanev somewhere else as well?

Hi, I'm getting an error related to condaenv:
Total 0 (delta 0), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Fetching custom git buildpack... done
remote: -----> Python/Conda app detected
remote: -----> Installing dependencies using Conda
remote: Error: could not find environment: condaenv
remote:
remote:  !     Push rejected, failed to compile Python/Conda app

runtime.txt:
python-3.5.0

conda-requirements.txt:
numpy
scipy

Is there anything else I need to do besides changing the buildpack URL?
The original conda-buildpack deploys fine (except for using Python 2.7).

@scribu You have to add some dependencies to conda-requirements.txt (please see #14).
conda
conda-env
requests

The below is my repository that succeeded to deploy to Heroku.
https://github.com/icoxfog417/number_recognizer

I made the fork to support Python3. I confirmed this works fine on my application.
implementation