Blank wallet window when submitting transaction

When attempting to generate a contract call in the sandbox which takes a list argument, the wallet popup is blank. For example, in this contract from the MIT Bitcoin hackathon: SP3C49EABFC91F21DJJZA1733QJ539PEW84R66G9E.MIT-Hackathon-NFT-Airdrop, the function airdrop takes a list of principals and can be used to reproduce this issue. This may also be a bug in the sandbox, generating a bad transaction, but the wallet should handle it better.
I see the following errors in the console:
instrument.jss:109 Error: Attempted to read beyond the bounds of the managed data.
    at SmartBuffer.ensureReadable (smartbuffer.jss:1093:1)
    at SmartBuffer._readNumberValue (smartbuffer.jss:1163:1)
    at SmartBuffer.readUInt8 (smartbuffer.jss:334:1)
    at BufferReader.readUInt8Enum (bufferReader.jss:70:1)
    at deserializeCV (deserialize.jss:19:1)
    at FunctionArgumentItem (function-argument-item.tsxx:20:28)
    at Ch (react-dom.production.min.jss:157:135)
    at ck (react-dom.production.min.jss:267:458)
    at bk (react-dom.production.min.jss:250:341)
    at ak (react-dom.production.min.jss:250:277)
    at Tj (react-dom.production.min.jss:250:138)
    at Lj (react-dom.production.min.jss:243:146)
    at react-dom.production.min.jss:123:110
    at exports.unstable_runWithPriority (scheduler.production.min.jss:18:336)
    at gg (react-dom.production.min.jss:122:318)
    at jg (react-dom.production.min.jss:123:61)
    at V (scheduler.production.min.jss:16:218)
    at MessagePort.F.port1.onmessage (scheduler.production.min.jss:12:346)
(anonymous) @ instrument.jss:109
scheduler.production.min.jss:12 Uncaught Error: Attempted to read beyond the bounds of the managed data.
    at SmartBuffer.ensureReadable (smartbuffer.jss:1093:1)
    at SmartBuffer._readNumberValue (smartbuffer.jss:1163:1)
    at SmartBuffer.readUInt8 (smartbuffer.jss:334:1)
    at BufferReader.readUInt8Enum (bufferReader.jss:70:1)
    at deserializeCV (deserialize.jss:19:1)
    at FunctionArgumentItem (function-argument-item.tsxx:20:28)
    at Ch (react-dom.production.min.jss:157:135)
    at ck (react-dom.production.min.jss:267:458)
    at bk (react-dom.production.min.jss:250:341)
    at ak (react-dom.production.min.jss:250:277)
    at Tj (react-dom.production.min.jss:250:138)
    at Lj (react-dom.production.min.jss:243:146)
    at react-dom.production.min.jss:123:110
    at exports.unstable_runWithPriority (scheduler.production.min.jss:18:336)
    at gg (react-dom.production.min.jss:122:318)
    at jg (react-dom.production.min.jss:123:61)
    at V (scheduler.production.min.jss:16:218)
    at MessagePort.F.port1.onmessage (scheduler.production.min.jss:12:346)

@obycode is this an issue you've run into more recently?

Nope, this seems to be working as expected now.


prototyping better UX

Strategy to support HF models:
Each model that needs to support alternative names (i.e. HF) names, inherit from ModuleBase. and defines HF names for it's parameters and submodules, via self.hf_name call.
ModuleBase defines get_hf_names_to_real_name that returns hf name to the model name; which the loader can then use to remap the names before loading.
Modules inside of layers.py (Attention) should inherit ModuleBase but shouldnt define any mappings, because it might be used in different models. Let those models to define the mapping to it's corresponding HF checkpoints.
Flags are organized in the following principles:

if a flag is used on only one file, define it there.
if a flag is for something internal for testing (like use_qkv);
if a flag is likely to be modified for unit test; then use the Environment to store it.
Try to have least amount of flags that the users need to touch.

Commandline entry point
The new entry point will by jetstream.cli / it will remain inside of jetstream_pt folder so it's importable from tests.
Install script will put it in the PATH so people can invoke it as a command without typing python.
python -m jetstream_pt.cli list

Lists the supported model
python -m jetstream_pt.cli serve --model_id ... --hf_token=...

runs the server
Currently this only works for llama2 and llama3
TODOS:

Mixtral Model
Quantization
Gemma
Install as command

Hey @qihqi I tried this branch, but if I try to run python -m jetstream_pt.cli serve --model_id google/gemma-2 it fails:
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/amoran/Dev/jetstream-pytorch/jetstream_pt/cli.py", line 130, in <module>
    app.run(main)
  File "/home/amoran/Dev/jetstream-pytorch/alvaro/jetstream/lib/python3.10/site-packages/absl/app.py", line 307, in run
    _run_main(main, args)
  File "/home/amoran/Dev/jetstream-pytorch/alvaro/jetstream/lib/python3.10/site-packages/absl/app.py", line 253, in _run_main
    sys.exit(main(argv))
  File "/home/amoran/Dev/jetstream-pytorch/jetstream_pt/cli.py", line 121, in main
    serve()
  File "/home/amoran/Dev/jetstream-pytorch/jetstream_pt/cli.py", line 95, in serve
    jetstream_server = server_lib.run(
  File "/home/amoran/Dev/jetstream-pytorch/alvaro/jetstream/lib/python3.10/site-packages/jetstream/core/server_lib.py", line 119, in run
    engines = config_lib.get_engines(config, devices=devices)
  File "/home/amoran/Dev/jetstream-pytorch/alvaro/jetstream/lib/python3.10/site-packages/jetstream/core/config_lib.py", line 150, in get_engines
    interleaved_engines = [
  File "/home/amoran/Dev/jetstream-pytorch/alvaro/jetstream/lib/python3.10/site-packages/jetstream/core/config_lib.py", line 151, in <listcomp>
    e(split_devices.pop(0))
  File "/home/amoran/Dev/jetstream-pytorch/jetstream_pt/cli.py", line 44, in create_engine
    env_data = fetch_models.construct_env_data_from_model_id(
  File "/home/amoran/Dev/jetstream-pytorch/jetstream_pt/fetch_models.py", line 126, in construct_env_data_from_model_id
    model_info.num_heads,
AttributeError: 'NoneType' object has no attribute 'num_heads'

I think it's trying to get info from the model before downloading it (though I am not sure).

Hey @qihqi I tried this branch, but if I try to run python -m jetstream_pt.cli serve --model_id google/gemma-2 it fails:
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/amoran/Dev/jetstream-pytorch/jetstream_pt/cli.py", line 130, in <module>
    app.run(main)
  File "/home/amoran/Dev/jetstream-pytorch/alvaro/jetstream/lib/python3.10/site-packages/absl/app.py", line 307, in run
    _run_main(main, args)
  File "/home/amoran/Dev/jetstream-pytorch/alvaro/jetstream/lib/python3.10/site-packages/absl/app.py", line 253, in _run_main
    sys.exit(main(argv))
  File "/home/amoran/Dev/jetstream-pytorch/jetstream_pt/cli.py", line 121, in main
    serve()
  File "/home/amoran/Dev/jetstream-pytorch/jetstream_pt/cli.py", line 95, in serve
    jetstream_server = server_lib.run(
  File "/home/amoran/Dev/jetstream-pytorch/alvaro/jetstream/lib/python3.10/site-packages/jetstream/core/server_lib.py", line 119, in run
    engines = config_lib.get_engines(config, devices=devices)
  File "/home/amoran/Dev/jetstream-pytorch/alvaro/jetstream/lib/python3.10/site-packages/jetstream/core/config_lib.py", line 150, in get_engines
    interleaved_engines = [
  File "/home/amoran/Dev/jetstream-pytorch/alvaro/jetstream/lib/python3.10/site-packages/jetstream/core/config_lib.py", line 151, in <listcomp>
    e(split_devices.pop(0))
  File "/home/amoran/Dev/jetstream-pytorch/jetstream_pt/cli.py", line 44, in create_engine
    env_data = fetch_models.construct_env_data_from_model_id(
  File "/home/amoran/Dev/jetstream-pytorch/jetstream_pt/fetch_models.py", line 126, in construct_env_data_from_model_id
    model_info.num_heads,
AttributeError: 'NoneType' object has no attribute 'num_heads'

I think it's trying to get info from the model before downloading it (though I am not sure).

Hi, thanks for trying out. So now it only works for meta-llama/Llama-2-7b-hf and meta-llama/Meta-Llama-3-7B. For mixtral and gemma will be added in subsequent PRs.


feat: add dc operator for deleting comments

Sometimes it can be quite annoying to remove each comment at the end of the line.
For example, if I wanted to remove all comments from the code below:
print("never")
print("gonna") -- comment
print("give") -- komment
print("you") -- le commento
print("up")

The best I can think of is f-D followed by j.j., but this approach has some problems.

The code might contain - (or other comment prefixes like #, //)
It leaves behind 1 space that was between the code and the comment

One could come up with clever macros that can deal with these pesky details,
but it would not be very intuitive and has to be language specific.
Proposal
I think this problem fits within the purpose/scope of Comment.nvim.
Let's add dc as a "delete comment" operator.
dc{motion} or dc{textobj} will remove all comment nodes + preceding whitespaces in the given range.
The obvious addition of dcc works on the current line.
After this, the example above can be resolved just by doing dcip.

@WieeRd nvim-treesitter-textobjects adds a comment text object. It is still quite primitive (it doesn't handle multiline comments yet), but it does work for your case, allowing you to do dac (delete around comment) in your example with the following config:
require('nvim-treesitter.configs').setup({
  textobjects = {
    select = {
      enable = true,
      keymaps = {
        ic =<EMAIL_ADDRESS>        ac =<EMAIL_ADDRESS>      },
    }
  }
})

As @mawkler, nvim-treesitter-textobjects can get us close. But to implement this fully we need support of query quantifiers in neovim core (check other issues).
I am leaving this open for now as a reminder.


Journal Entry Adventure Muncher Taking Way Too Long

I'm currently trying to import all content from dnd beyond including my compendiums using the adventure muncher tool. Before attempting to import any compendiums, I imported everything else: spells, monsters, items, etc. The adventure much seems to be taking too long to import the journal because I had test world made where I was able to import the same compendium I'm attempting to import now on this world relatively quickly. Though in the test world, I had not imported the other assets before hand. Does the adventure muncher check each asset in the compendium to see if its missing from vtt? Is there a way to bypass it if that's the case?
By importing all assets before importing the adventure, I believe I may have significantly increased the time complexity of the adventure muncher

I reloaded the page and it seems to work, guess it was just a hiccup

Likely your chrome session became disconnected, which can sometimes happen after a long time or transferring a lot of data.
To answer your question though, pre populating the compendiums with data is a good idea, as it speeds up adventure munching because the muncher doesn't need to download and parse it.


Simulator: remove carla

carla has been replaced by metadrive in openpilot as it is much simpler and runs better
https://blog.comma.ai/095release/#metadrive-our-new-default-simulator-experience

Maybe the wiki should be updated too https://github.com/commaai/openpilot/wiki/Simulation ?


How to apply the theme in element desktop?

I've created ~/.config/Element/config.json file, pasted the Nord dark theme into there, but i still can't select it in the client. What should i do?

Show the contents of your config.json file

{
"name": "Nord dark theme",
"is_dark": true,
"colors": {
"accent-color": "#a3be8c",
"primary-color": "#88c0d0",
"warning-color": "#bf616a",
    "sidebar-color": "#2e3440",
    "roomlist-background-color": "#3b4252",
    "roomlist-text-color": "#ebcb8b",
    "roomlist-text-secondary-color": "#e5e9f0",
    "roomlist-highlights-color": "#2e3440",
    "roomlist-separator-color": "#434c5e",

    "timeline-background-color": "#434c5e",
    "timeline-text-color": "#eceff4",
    "secondary-content": "#eceff4",
    "tertiary-content": "#eceff4",
    "timeline-text-secondary-color": "#81a1c1",
    "timeline-highlights-color": "#3b4252",
    "reaction-row-button-selected-bg-color": "#bf616a"
}

}

You haven't put the theme in the right place. https://github.com/aaronraimist/element-themes#self-host-element-or-use-element-desktop is the minimum possible config.json file with themes enabled. Your theme needs to be inside
    "settingDefaults": {
        "custom_themes": [

thank you, now it works

Have I done anything wrong here?
{
	"settingDefaults":
	{
		"custom_themes":
		[
			{
				"colors":
				{
					"roomlist-background-color":"#000000",
					"sidebar-color":"#000000",
					"timeline-background-color":"#000000"
				},
				"is_dark":true,
				"name":"Amoled"
			}
		],
		"default_theme":"custom-Amoled"
	}
}

It works in Schildichat-Desktop, but not in Element-Desktop.

@Quantenzitrone looks fine to me. I don't know much about Schildichat but I would guess it hasn't done much custom work on theming. So if it works in one, it should work in the other. Make sure you are putting the config.json in the correct location. https://github.com/vector-im/element-desktop#user-specified-configjson

I'm also trying to configure element-desktop and I'm only able to set the themes via /devtools so far (reverse process from the uninstall procedure in #55).
 I know that the config.json gets read as the configured features and show_labs_settings get applied (and I actually have a default_server_config in there as well, which works fine).
I also tried setting_default instead of settingDefaults as documented upstream in element-web (assuming that it uses the same config format).
The custom theme neither appears in the list nor is it applied with any of the selectable themes (or “Use system theme”).
Any pointers here would be really helpful, I really don't know what might be wrong here.
Similar to @Quantenzitrone, the config.json works just fine for schildichat-desktop (although I'm using Element. Just tried that one to test it). default_theme had no effect there, though.


OmniSharp does not highlight or show errors when using neovim.

Hello, I recently switched from vim to neovim but I am somehow not able to make OmniSharp work with neovim. Here is my entire init.vim:
set nocompatible

call plug#begin()

Plug 'OmniSharp/omnisharp-vim'
Plug 'dense-analysis/ale'

call plug#end()

filetype plugin indent on
autocmd FileType cs set signcolumn=yes

"Python settings
let g:python_host_prog  = '~/AppData/Local/Programs/Python/Python27/python.exe'
let g:python3_host_prog = '~/AppData/Local/Programs/Python/Python38/python.exe'

"Omnisharp settings
let g:OmniSharp_server_stdio    = 1
let g:OmniSharp_highlight_types = 2
let g:OmniSharp_highlight_groups = {
    \  'csUserIdentifier': ['identifier', 'parameter name'],
    \  'csUserInterface' : ['interface name'],
    \  'csUserMethod'    : ['extension method name', 'method name'],
    \  'csUserType'      : ['class name', 'enum name', 'namespace name', 'struct name']
    \ }

"Ale settings
let g:ale_linters = { 'cs': ['OmniSharp'] }

I called OmniSharpInstall multiple times already.
When I open a C# file, OmniSharp echos that the server was loaded.
If I use something like "Conquer of Completion" the autocompletion also works.
I even tested this configuration on two different computers.
Almost the same config works when I use vim instead of neovim (when using vim I use Vundle as the plugin manager, thats the only difference).
Only the errors do not get shown and there is no highlighting.
Also sometimes there is a OmniSharp timeout.
How can I fix this?

Do other OmniSharp-vim commands work, like :OmniSharpGotoDefinition and :OmniSharpFindUsages?
Can you highlight with the command: :OmniSharpHighlightTypes?
Do you get completion using the init.vim you've shown here (no COC), with <C-x><C-o>?

Please open the server log (:OmniSharpOpenLog) and share it here. Note that it might be quite large - it is not cleared between sessions - so it could be a good idea to clear it first, and restart vim.

Thanks for your answer.
:OmniSharpGotoDefinition does not work, the cursor stays where it is.
:OmniSharpFindUsage does not work, no quickfix window appears.
:OmniSharpHighlightTypes does not work, the highlighting just stays as it is.
"Do you get completion using the init.vim you've shown here (no COC), with <C-x><C-o>?". No, the autocompletion of omnisharp does not work, it says that the pattern was not found.
Here is the log from the :OmniSharpOpenLog command:
stdio.log
Thank you for your help :)

Oh you're using Windows. The stdio server currently does not work in neovim on Windows, due to a neovim bug (currently being worked on), see #499

Oh, thank you!

@DasOhmoff the neovim bug has been fixed - if you get a nightly build then OmniSharp-vim can be used with neovim on Windows.


Fix type check for max/min

Type check did not apply to first argument.
Edit: didn't realise I added whitespace from first approach to fixing, will remove if it's inappropriate
Fixes: #74748

Thanks!

Thank you!

Cherry-picked for 4.0.2.


How to use for adding captions? i.e multiple text layers on same composition

Hey, love this library!
How would you go about adding multiple text layers (for example captions) to the composition?
The composition can only take a single animationLayer value, so no place to add an array.
My thoughts are to create a base CALayer, then add all of the subsequent text animation layers to that layer, adjust their animation (from and duration values), and then just assign that base layer to composition.
It hasn't worked for me yet, but is that the right approach at all?
Thanks!

did you find any solution?


Reactive streams for bambooStorage.get().createObservable()

We should provide an option for using observable created for get() operation as reactive stream:
For example:
Observable<List<User>> observableUsers = bambooStorage
  .get()
  .listOfObjects(User.class)
  .withMapFunc(User.MAP_FROM_CURSOR)
  .withQuery(Users.QUERY_ALL)
  .prepare()
  .createObservableStream();

observableUsers.subscribe(new Observer<List<Users>>() {
  @Override public void onNext(List<User> users) {
      // will be called after each change in users table
  }

  // ...
});

This is very important feature, because it's an analog for ContentProvider/Cursor notifications and with this feature BambooStorage can fully replace Loaders and other mechanisms for working with database


An user should have an easy way to verify a circuit is compatible with a target backend

What is the expected feature or enhancement?
If I am given a circuit, I would like an easy way to verify if it is, or is not, compatible with a given backend.
Tket has such functionality: https://tket.quantinuum.com/api-docs/backends.html#pytket.backends.Backend.valid_circuit and it would be nice to include it here as well.
Acceptance criteria
There is an easy way to verify a circuit will run on a target backend.

Sounds like this belongs to Qiskit Core?

@1ucian0 do you agree that this should be in Qiskit? Given Target lives in Qiskit, and this could apply to non-IBM target backend as well.

yeap, I agree
On Tue, Jul 30, 2024, 11:33 PM Jessie Yu @.***> wrote:

@1ucian0 https://github.com/1ucian0 do you agree that this should be in
Qiskit? Given Target lives in Qiskit, and this could apply to non-IBM
target backend as well.
—
Reply to this email directly, view it on GitHub
https://github.com/Qiskit/qiskit-ibm-runtime/issues/1814#issuecomment-2259249176,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAF3FZKP6TJUR2SEMFRZG3LZPABA7AVCNFSM6AAAAABLKVT6E2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJZGI2DSMJXGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

Is there already an issue in qiskit tracking this? I'd like to add some information.
First, FYI @nonhermitian the function https://github.com/Qiskit/qiskit-ibm-runtime/blob/3a9b08ed422e0de52981275537340c0a2af7a75b/qiskit_ibm_runtime/utils/utils.py#L78 I believe this is what you're looking for.
Note that currently the function is suspected to contain a bug, tracked in #1843.
Second, when the function is written in qiskit, I recommend not to write from scratch but to copy from qiskit-ibm-runtime. Although it looks easy, as you see it's not entirely trivial (we've spotted at least two bugs since its first version), so it will be a pity to repeat the same mistakes again in qiskit.

It is a bit confusing calling it an isa check. I don't think the underlying topology is part of the isa.

The documentation related to ISA from the beginning has always included connectivity, see for example https://www.ibm.com/quantum/blog/isa-circuits and https://docs.quantum.ibm.com/guides/get-started-with-primitives.

Huh, did not know that. The implication is that every Eagle has a different ISA.

Transfering to Qiskit/qiskit


Cannot Ctrl+S to save Interactive Window

Testing #186196
Cannot Ctrl+S to save Interactive Window. When I have my cursor in the IW and Ctrl+S, I would expect it to Export to Jupyter Notebook (i.e., same as Save button in IW as below).

does ctrl+s do nothing for you, or just perform a different operation than the toolbar's save action?

Doesn't do anything for me

Works now


Decisions on BIDS derivatives structure

While I have written a lot of text in various locations regarding core decisions that need to be made regarding the definitions of filesystem paths for DWI derivatives, they may be too verbose or DWI-specific and therefore not be appropriate for widespread community engagement.
It is my intention to first post what I believe to be the viable solutions to these issues. Others are free to comment and even make alternative suggestions. Once the set of viable solutions is established, I will then construct polls to evaluate the degree of community consensus.
The example
We have a hypothetical DWI model called ABC. This model is represented using parameters X and Y. X and Y are of fundamentally different data types, such that it is not possible to store both in a single NIfTI image, and they must be split across multiple images.
For metadata, there is information that is relevant to model ABC as a whole, and there is additionally information that is specific to parameter X and parameter Y separately.
Following fitting of the model to the empirical data, it is possible to derive from X and Y another parameter of interest Z. This may in and of itself require metadata to explain how it was calculated.
Decision 1: Directory structure
(For the sake of discussion of directory structure, I will assume the existence of a new entity with key "model", and two new suffixes: "model", and "mdp" (model-derived parameter). This corresponds to decision 2, option 1 "few suffixes", but is used for demonstrative purposes in the context of decision 1 only, and the two decisions should be considered independent)

See also: #32

Option 1: "Complex inheritance"
sub-01/
    dwi/
        sub-01_model-abc_param-x_model.nii.gz
        sub-01_model-abc_param-x_model.json
        sub-01_model-abc_param-y_model.nii.gz
        sub-01_model-abc_param-y_model.json
        sub-01_model-abc_param-z_mdp.nii.gz
        sub-01_model-abc_param-z_mdp.json
        sub-01_model-abc_model.json

Advantages:

No change to BIDS filesystem structure
Metadata relevant to ABC as a whole is centralised
Generalisation of inheritance principle has wider applicability
Supports even more advanced use cases. Eg. one could have, within a single model, multiple components, each of which has associated sidecar information; then, each of those components may themselves have multiple parameters necessitating their own individual sidecar information.

Disadvantages:

Requires modification to Inheritance Principle to be legal: https://github.com/bids-standard/bids-specification/pull/1003
Number of files in modaity-specific directories may increase to such an extent that manual navigation becomes difficult

Option 2: "No inheritance"
sub-01/
    dwi/
        sub-01_model-abc_param-x_model.nii.gz
        sub-01_model-abc_param-x_model.json
        sub-01_model-abc_param-y_model.nii.gz
        sub-01_model-abc_param-y_model.json
        sub-01_model-abc_param-z_mdp.nii.gz
        sub-01_model-abc_param-z_mdp.json

Advantages:

No changes to specification whatsoever

Disadvantages:

Information regarding fit of model ABC (eg. fitting parameters, software references, publication URL) must be duplicated across multiple JSONs; any downstream application that needs to know these contents would ideally need to explicitly compare these contents across JSONs to verify consistency.
Same as option 1 in that number of files within any given directory could grow very large.

Option 3: Directory hierarchy
sub-01/
    dwi/
        sub-01_model-abc_model/
            sub-01_model-abc_param-x_model.nii.gz
            sub-01_model-abc_param-x_model.json
            sub-01_model-abc_param-y_model.nii.gz
            sub-01_model-abc_param-y_model.json
            sub-01_model-abc_param-z_mdp.nii.gz
            sub-01_model-abc_param-z_mdp.json
        sub-01_model-abc_model.json

Advantages:

Natural exploitation of hierarchical nature of filesystem to reflect hierarchical nature of model data

Sets precedent for expanding modality directories to include sub-directories, which is a core component of TRX for tractography data and will therefore be requisite in the future

Disadvantages:

Requires modification of specification to permit sub-directories within modality directories

Breaks current implicit convention whereby sub-directory names don't bother duplicating entities corresponding to parents (eg. "sub-01/ses-01/dwi/"), whereas file names do (eg. "sub-01_ses-01_dwi.nii.gz"). This is impossible to resolve as long as the JSON file and corresponding sub-directory must have the same name.

Option 4: Tarballs
Option 4a: Tarball with separate JSON
sub-01/
    dwi/
        sub-01_model-abc_model.tar
        sub-01_model-abc_model.json

Contents of file sub-01_model-abc_model.tar:
sub-01_model-abc_param-x_model.nii.gz
sub-01_model-abc_param-x_model.json
sub-01_model-abc_param-y_model.nii.gz
sub-01_model-abc_param-y_model.json
sub-01_model-abc_param-z_mdp.nii.gz
sub-01_model-abc_param-z_mdp.json

Advantages:

Very compact storage; multi-resolution view of data
Tarballing is also an appealing solution for integration of non-conforming derivatives in a way that is trivially validator-compatible

Disadvantages:

BIDS Apps would need to have capability to work with tarballs (eg. unpacking and storing in scratch prior to feeding to underlying commands)

Model-derived parameters cannot be trivially added alongside the core model parameters.

PS. Apparently there's been a prior discussion regarding tarballing of non-conforming derivatives in BIDS datasets; can anyone provide a link?
Option 4b: Tarball with embedded json
sub-01/
    dwi/
        sub-01_model-abc_model.tar

Contents of file sub-01_model-abc_model.tar:
sub-01_model-abc_param-x_model.nii.gz
sub-01_model-abc_param-x_model.json
sub-01_model-abc_param-y_model.nii.gz
sub-01_model-abc_param-y_model.json
sub-01_model-abc_param-z_mdp.nii.gz
sub-01_model-abc_param-z_mdp.json
sub-01_model-abc_model.json

Advantages (relative to 4a):

Prevents potentially risky separation of model data in tarball and model sidecar data in JSON (similar to the pre-NIfTI Analyze .img / .hdr file pairs)

Disadvantages (relative to 4a):

Primary model sidecar information is not accessible without going into the tarball

Still requires more complex inheritance principle in a way; just it only applies to the contents of the tarball

Option 5: Hierarchy restricted to JSON
sub-01/
    dwi/
        sub-01_model-abc_param-x_model.nii.gz
        sub-01_model-abc_param-y_model.nii.gz
        sub-01_model-abc_param-z_mdp.nii.gz
        sub-01_model-abc_model.json

Contents of file sub-01_model-abc_model.json:
{
    "param-x_model": {
        ...
    },
    "param-y_model": {
        ...
    },
    "param-z_mdp": {
        ...
    },
    "ModelURL": "...",
    ....
}

Advantages:

No complex inheritance necessary

All information relevant to a model is visible within a single file

Disadvantages:

Necessitates explicit cross-referencing between general model JSON and individual parameter files

If model-derived parameter is to be added, metadata relating to that parameter needs to be inserted into the whole-model JSON

Metadata specific to one parameter is not immediately visible via a paired JSON

Decision 2: File names

See also: #46

(Note that for the sake of these examples, decision 1 option 1 "complex inheritance" is utilised; this is however purely for the sake of generation of examples, and the two decisions should be considered independent)
Option 1: "Few suffixes"
sub-01/
    dwi/
        sub-01_model-abc_param-x_model.nii.gz
        sub-01_model-abc_param-x_model.json
        sub-01_model-abc_param-y_model.nii.gz
        sub-01_model-abc_param-y_model.json
        sub-01_model-abc_param-z_mdp.nii.gz
        sub-01_model-abc_param-z_mdp.json
        sub-01_model-abc_model.json

"MDP": "Model-derived parameter" (exact nomenclature can be up for debate)
Advantages:

Validator does not need to have a large number of novel suffixes added
Easy to store yet-unseen models with BIDS conformity, provided the appropriate data representations are in the specification

Disadvantages:

Not as human-readable

Option 2: "Many suffixes"
sub-01/
    dwi/
        sub-01_model-abc_x.nii.gz
        sub-01_model-abc_x.json
        sub-01_model-abc_y.nii.gz
        sub-01_model-abc_y.json
        sub-01_model-abc_z.nii.gz
        sub-01_model-abc_z.json
        sub-01_model-abc_model.json

Advantages:

Information content of individual files easily human-readable from suffix

Disadvantages:

Data from model ABC can only be stored with BIDS compatibility if model ABC is explicitly added to the specification, and the validator is updated accordingly
Appropriate filesystem path for parameter-agnostic metadata (ie. sub-01_model-xyz_model.json above) is uncertain (and could depend on decision 1 RE: directory structure)

This is great. Do I understand correctly that poll 2 assumes that poll 1 was already resolved and that option 2 was chosen in that poll? Do we worry that might bias poll 2 somehow? (option 2 is probably my least favorite option in poll 1, fwiw).

I think Option 4 (or possibly Option 5 with some pros and cons) is the most convenient might provide some speed-ups by allowing search of the info in the top folder name only.

Just to see that I understand: the difference between option 4 and option 5 is that the tarball is not nested under DWI? How would we know that it's related to DWI, and discriminate it from models for FMRI or other modalities? Through the model name?

Difference between 4 and 5 is whether the JSON corresponding to model ABC as a whole is or is not embedded within the tarball. Both reside within the dwi/ modality directory. I'll probably reformat it as options 4a and 4b.

Option 5: Zipped/Tarball with complete folder

what is the cost of reading the .json inside the tarball?

Just clicked for me (and added to the dot points in the first post): This still really requires the more complex inheritance principle. If you read just one image (regardless of whether it's an intrinsic model output parameter or a model-derived parameter), both the contents of the paired sidecar JSON and the whole-model JSON are applicable.

@bids-standard/maintainers: Would very much appreciate any feedback on this thread. I can't keep up with everything happening in BIDS space, so it's possible that similar issues have been encountered elsewhere; also, any decisions made here may set a precedent for many other derivatives BEPs. After feedback from maintainers, if there's no clear consensus I'd like to open up discussion to the wider community.

@bids-maintenance We would like to make progress on this issue. We made a proposal, we would like to kindly request attention to allow us to move forward with the DWI-derivatives standard.

@bids-standard/maintainers: Would very much appreciate any feedback on this thread. I can't keep up with everything happening in BIDS space, so it's possible that similar issues have been encountered elsewhere; also, any decisions made here may set a precedent for many other derivatives BEPs. After feedback from maintainers, if there's no clear consensus I'd like to open up a discussion to the wider community.

@PeerHerholz @soichih @bids-standard/derivatives-mri-dwi @effigies

I find Decision 1 Option 4a appealing. Unfortunately I am not aware of the discussion that may have happened on tar balls. Maybe Chris knows, but he'll not be available for the next weeks AFAIK.
For Decision 1 Option 2 you say:

Same as option 1 in that number of files within any given directory could grow very large.

how large are we talking in the worst case?
Based on the discussion of revamping the Inheritance Principle, I am not very fond of Decision 1 Option 1.
Re: Decision 2 --> I think one of the principles in BIDS so far was to use as few suffixes as possible, as many as needed ... so that makes Option 1 appear more favorable for me.

I am not too familiar with BIDS structure, but I'd like to vote for option 2 (or maybe 4a..) on decision 1 for it's simplicity.
I feel that BIDS is becoming too complex already with too many rules that I am not aware of.. I did write a few simple BIDS directory parser for our BIDS data importer library that implements (probably incorrectly) subset of all BIDS structure principles. I assume that I am not the only one who had to write such "broken" parsers as not everyone has access to libraries such as pyBIDS or can use them for their use cases. I also assume that the point of BIDS structure is to make the data structure simple/visible so that it can be used without using a dedicated libraries such a as pyBIDS if they wanted to, otherwise why not just make the whole structure closed within ".bids.tgz" type file format and provide canonical parsers for every programming languages?
No comment on Decision 2.

Hi folks,
here are my 2 cents.
Re decision 1:
I would either vote for option 1 or 4a, depending on the tarball handling. Did the discussion/link @Lestropie referred to reappear?
Re decision 2:
+1 on @sappelhoff's comment!

how large are we talking in the worst case?

Consider two experiments:

Fitting a large number of different diffusion models in order to do data-driven discovery. Might do eg. DTI / DKI / B&S / NODDI / MSMT CSD / SMT. Imprecisely, this might be of the order of 4 + 4 + 10 + 10 + 6 + 8 ~ 40?
Fitting one model but with a range of different input parameters. Just the product of parameters per model fit and the number of different fits.

The former is perhaps less "exotic".

I think one of the principles in BIDS so far was to use as few suffixes as possible, as many as needed

That's useful. I've been leaning in favour of that myself, hence #46. Would be even better if anyone knows of a link to an explicit statement of such.

Will give a bit more time for maintainers / developers to comment / guide / suggest alternatives, but still like the idea of a community poll.

Contra-indication of interest in 4a:
Imagine one fits a model, producing a tarball of core output model parameters, and tarballing. Now one wants to use those parameters to produce a model-derived parameter (eg. an FA map from a tensor model fit). Sidecar information relating to the model fit are still applicable to the model-derived parameter. Would one therefore be obliged to unpack the tarball, add the new file(s), and repackage?
(Added to the list of disadvantages in the original post)

Would one therefore be obliged to unpack the tarball, add the new file(s), and repackage?

as the dataset curator if you do this before finally sharing your dataset ... or when sharing a new version of the data: yes, you'd have to do that and it'd be a bit laborious.
as a user of the dataset, you wouldn't want to edit the dataset anyhow, would you? Wouldn't you save your new outputs elsewhere? For example in a new (derived?) dataset, which would bring us back to the situation above, which is "a bit laborious".

Wouldn't you save your new outputs elsewhere?

Good point. I would say yes. That would be preferable. Saved in a new derived dataset.

Hmmm, I'm maybe here thinking of a use case outside of that intended. Sometimes I will take a dataset that's been processed using a BIDS App, and do a little bit of subsequent tweaking after the fact, eg. calculating model-derived parameters that weren't calculated by the App, and I'll try to remain vaguely BIDS-compliant when doing so. But that means that the contents no longer reflect the output of that particular App. So tarballing may make such manipulation less convenient, but maybe it's actually a good thing, as such tweaking within the purported output directory of a BIDS App should be discouraged.
The outstanding question would be whether having eg. the model parameters in one derivatives directory, and model-derived parameters in a different derivatives directory. I think that as long as the validator doesn't impose any requirement on model-derived parameters coexisting with the model parameters it should be fine, but some chance I'm overlooking something.

Originating from @oesteban
Option 5: Hierarchy restricted to JSON
sub-01/
    dwi/
        sub-01_model-abc_param-x_model.nii.gz
        sub-01_model-abc_param-y_model.nii.gz
        sub-01_model-abc_param-z_mdp.nii.gz
        sub-01_model-abc_model.json

Contents of file sub-01_model-abc_model.json:
{
    "param-x_model": {
        ...
    },
    "param-y_model": {
        ...
    },
    "param-z_mdp": {
        ...
    },
    "ModelURL": "...",
    ....
}

Advantages:

No complex inheritance necessary

All information relevant to a model is visible within a single file

Disadvantages:

Necessitates explicit cross-referencing between general model JSON and individual parameter files

If model-derived parameter is to be added, metadata relating to that parameter needs to be inserted into the whole-model JSON

Metadata specific to one parameter is not immediately visible via a paired JSON

Additional suggestion from @oesteban
This is described here as an augmentation of option 3; it does not in and of itself solve the complex inheritance problem.
sub-01/
    dwi/
        model-abc1/
            sub-01_model-abc1_param-x_model.nii.gz
            sub-01_model-abc1_param-x_model.json
            sub-01_model-abc1_param-y_model.nii.gz
            sub-01_model-abc1_param-y_model.json
            sub-01_model-abc1_param-z_mdp.nii.gz
            sub-01_model-abc1_param-z_mdp.json
        model-abc1.json
        model-abc2/
            sub-01_model-abc2_param-x_model.nii.gz
            sub-01_model-abc2_param-x_model.json
            sub-01_model-abc2_param-y_model.nii.gz
            sub-01_model-abc2_param-y_model.json
            sub-01_model-abc2_param-z_mdp.nii.gz
            sub-01_model-abc2_param-z_mdp.json
        model-abc2.json
        models.tsv

Must be content within file models.tsv that provides adequate identifying information for each model fit to be described both in a human-readable way, and for the validator to ensure correspondence between the unique identifiers in this file and the directory names.

For decision 1 is the following acceptable?:
sub-01/
    sub-01_model-abc_model.json
    dwi/
        sub-01_model-abc_param-x_model.nii.gz
        sub-01_model-abc_param-x_model.json
        sub-01_model-abc_param-y_model.nii.gz
        sub-01_model-abc_param-y_model.json
        sub-01_model-abc_param-z_mdp.nii.gz
        sub-01_model-abc_param-z_mdp.json

This does not address the issue of root level model files needing to use sidecar inheritance inheritance. Also does not deal with large number of files in a directory, but should be valid in the current specification.

For decision 1 is the following acceptable?

That precisely replicates the proposed "solution" as it appears in the current specification. However as I argue in https://github.com/bids-standard/bids-specification/pull/1003, it is to me unintuitive, as it involves placing datatype-specific data in a directory that has the specific purpose of disambiguating datatypes.
It could make more sense if alternatively "model-abc_model.json" could appear even higher in the filesystem tree such that it becomes applicable to that model as estimated for multiple subjects; that potentially comes with its own problems (eg. race conditions if parallel participant-level analyses attempt to write to it) but then again is a more advantageous utilisation of the inheritance principle if done properly.

Closing following merge of #92.


Use logrus to log errors and panics

This changes the framework from using glog to using logrus, which is
what the rest of code uses.

LGTM


Worker examples did not work

Hi,
I want try the worker examples but got an error:
Uncaught Error: Call to undefined function Amp\Promise\capture() in ... lib/Process/ChannelledProcess.php:100

Executed with "PHP 7.1.4". Let me hear if you need more informations.

Yes, the code hasn't been updated to the latest changes in Amp.

I have just pushed an updated version, at least all tests pass again now.

Same here. This is the code (same as README example):

{
  "message": "Call to undefined function Amp\\Parallel\\Worker\\Worker\\enqueueCallable()",
  "exception": "Symfony\\Component\\Debug\\Exception\\FatalThrowableError",
  "file": "/var/www/app/Http/Controllers/EdgesController.php",
  "line": 112,
  "trace": [
    {
      "function": "path",
      "class": "App\\Http\\Controllers\\EdgesController",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
      "line": 54,
      "function": "call_user_func_array"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
      "line": 45,
      "function": "callAction",
      "class": "Illuminate\\Routing\\Controller",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
      "line": 212,
      "function": "dispatch",
      "class": "Illuminate\\Routing\\ControllerDispatcher",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
      "line": 169,
      "function": "runController",
      "class": "Illuminate\\Routing\\Route",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
      "line": 665,
      "function": "run",
      "class": "Illuminate\\Routing\\Route",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
      "line": 30,
      "function": "Illuminate\\Routing\\{closure}",
      "class": "Illuminate\\Routing\\Router",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/barryvdh/laravel-cors/src/HandleCors.php",
      "line": 36,
      "function": "Illuminate\\Routing\\{closure}",
      "class": "Illuminate\\Routing\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
      "line": 151,
      "function": "handle",
      "class": "Barryvdh\\Cors\\HandleCors",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
      "line": 53,
      "function": "Illuminate\\Pipeline\\{closure}",
      "class": "Illuminate\\Pipeline\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
      "line": 41,
      "function": "Illuminate\\Routing\\{closure}",
      "class": "Illuminate\\Routing\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
      "line": 151,
      "function": "handle",
      "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
      "line": 53,
      "function": "Illuminate\\Pipeline\\{closure}",
      "class": "Illuminate\\Pipeline\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
      "line": 104,
      "function": "Illuminate\\Routing\\{closure}",
      "class": "Illuminate\\Routing\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
      "line": 667,
      "function": "then",
      "class": "Illuminate\\Pipeline\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
      "line": 642,
      "function": "runRouteWithinStack",
      "class": "Illuminate\\Routing\\Router",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
      "line": 608,
      "function": "runRoute",
      "class": "Illuminate\\Routing\\Router",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
      "line": 597,
      "function": "dispatchToRoute",
      "class": "Illuminate\\Routing\\Router",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
      "line": 176,
      "function": "dispatch",
      "class": "Illuminate\\Routing\\Router",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
      "line": 30,
      "function": "Illuminate\\Foundation\\Http\\{closure}",
      "class": "Illuminate\\Foundation\\Http\\Kernel",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/fideloper/proxy/src/TrustProxies.php",
      "line": 57,
      "function": "Illuminate\\Routing\\{closure}",
      "class": "Illuminate\\Routing\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
      "line": 151,
      "function": "handle",
      "class": "Fideloper\\Proxy\\TrustProxies",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
      "line": 53,
      "function": "Illuminate\\Pipeline\\{closure}",
      "class": "Illuminate\\Pipeline\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
      "line": 31,
      "function": "Illuminate\\Routing\\{closure}",
      "class": "Illuminate\\Routing\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
      "line": 151,
      "function": "handle",
      "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
      "line": 53,
      "function": "Illuminate\\Pipeline\\{closure}",
      "class": "Illuminate\\Pipeline\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
      "line": 31,
      "function": "Illuminate\\Routing\\{closure}",
      "class": "Illuminate\\Routing\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
      "line": 151,
      "function": "handle",
      "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
      "line": 53,
      "function": "Illuminate\\Pipeline\\{closure}",
      "class": "Illuminate\\Pipeline\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
      "line": 27,
      "function": "Illuminate\\Routing\\{closure}",
      "class": "Illuminate\\Routing\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
      "line": 151,
      "function": "handle",
      "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
      "line": 53,
      "function": "Illuminate\\Pipeline\\{closure}",
      "class": "Illuminate\\Pipeline\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php",
      "line": 62,
      "function": "Illuminate\\Routing\\{closure}",
      "class": "Illuminate\\Routing\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
      "line": 151,
      "function": "handle",
      "class": "Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
      "line": 53,
      "function": "Illuminate\\Pipeline\\{closure}",
      "class": "Illuminate\\Pipeline\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/barryvdh/laravel-cors/src/HandlePreflight.php",
      "line": 29,
      "function": "Illuminate\\Routing\\{closure}",
      "class": "Illuminate\\Routing\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
      "line": 151,
      "function": "handle",
      "class": "Barryvdh\\Cors\\HandlePreflight",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
      "line": 53,
      "function": "Illuminate\\Pipeline\\{closure}",
      "class": "Illuminate\\Pipeline\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
      "line": 104,
      "function": "Illuminate\\Routing\\{closure}",
      "class": "Illuminate\\Routing\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
      "line": 151,
      "function": "then",
      "class": "Illuminate\\Pipeline\\Pipeline",
      "type": "->"
    },
    {
      "file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
      "line": 116,
      "function": "sendRequestThroughRouter",
      "class": "Illuminate\\Foundation\\Http\\Kernel",
      "type": "->"
    },
    {
      "file": "/var/www/public/index.php",
      "line": 55,
      "function": "handle",
      "class": "Illuminate\\Foundation\\Http\\Kernel",
      "type": "->"
    }
  ]
}

@andreshg112 You have a double Worker in the namespace, should be Amp\Parallel\Worker\enqueueCallable

Yes, I realized about it some minutes ago. Thank you!

It's 2022 & the examples still don't work.

@DreadfulCode What exactly doesn't work for you?

@kelunik The example on https://github.com/amphp/parallel
I dropped it into a file called test.php, and get:
PHP Fatal error:  Uncaught Error: Call to undefined function Amp\Parallel\Worker\enqueueCallable() in /srv/parallel/test.php:16
Stack trace:
#0 {main}
thrown in /srv/parallel/test.php on line 16

@DreadfulCode I guess you haven't included the autoloader properly?

...And I was so sure my composer autoload files were correct. Sure enough, a missing Composer dependency.
The examples work perfectly.
Thank you!


matrix: Fix boolean logic in graphene_matrix_to_2d()

This looks like a thinko, where && and || where confused leading to way
too many matrices being accepted as 2D when they shouldn't.
A new test, matrix/is-2d has been added.

Updated the commit after finding graphene_matrix_is_2d() to use the same logic as that function, which was correct.


Run GCE Functional Tests FLOC-3824

We finally have some GCE static slaves in jenkins! Lets run the GCE functional tests every night.  We've sloppily engineered this and configured the jenkins master manually (instead of updating ci-platform).  The rationalization for this is that we might be able to accomplish dynamic slaves in the near future.
If you'd like to give this a whirl on my jenkins setup, you can find it at: http://<IP_ADDRESS>:8080/

http://<IP_ADDRESS>:8080/job/ClusterHQ-flocker/job/gce-jenkins-functional-tests-FLOC-3824/view/CentOS_7/job/_run_trial_for_gce_storage_driver_on_CentOS_7_flocker.node.agents.functional/ looks like the configured tests ran clean on CentOS 7.
http://<IP_ADDRESS>:8080/job/ClusterHQ-flocker/job/gce-jenkins-functional-tests-FLOC-3824/job/_run_trial_for_gce_storage_driver_on_Ubuntu_trusty_flocker.node.agents.functional/ does not have any builds. Can you please correct me if i am looking at the wrong workspace, @justnoise ? If you have free cycles on monday, might be quicker to understand this in person, will schedule something on your calendar. Thanks!

Thanks for the in-person conversation, @justnoise ! Accepted the JIRA ticket, please go ahead once the 2 jobs complete and are successful. Thanks!


Cached Set Selections don't handle multiple rows of the same card

This is not a big deal, but having variations on the same card doesn't store because there's no list checking.
ex.
4 Lightning Bolt
4 Lightning Bolt

This is one of those tricky things with handling list mutation. Would need to do some best effort matching on which lines are matching. A naive way might be to index the set selections and just reapply them in the same index order? That covers the scenario of just adding new cards to the list or modifying quantities. Removing lines would be inconsistent depending on which index the line was removed from.


Sorbet init crashes when printing symbol table

Input
sorbet init crashes on writing to the reflection.json on latest version Sorbet typechecker 0.4.4334 git 319ec980c4c0b7616fe9b406437b93274ba802b2 built on 2019-06-27 06:56:17 GMT with debug symbols
Observed output
Printing /var/folders/m9/9zbts5m541df8z14x3d8_mc40000gn/T/d20190627-50209-n6puh/reflection.rbi's symbol table into /var/folders/m9/9zbts5m541df8z14x3d8_mc40000gn/T/d20190627-50209-n6puh/reflection.json
Traceback (most recent call last):
        5: from /Users/andy/.gem/ruby/2.6.2/gems/sorbet-0.4.4334/bin/srb-rbi:232:in `<main>'
        4: from /Users/andy/.gem/ruby/2.6.2/gems/sorbet-0.4.4334/bin/srb-rbi:101:in `main'
        3: from /Users/andy/.gem/ruby/2.6.2/gems/sorbet-0.4.4334/bin/srb-rbi:227:in `block in make_step'
        2: from /Users/andy/.gem/ruby/2.6.2/gems/sorbet-0.4.4334/lib/hidden-definition-finder.rb:38:in `main'
        1: from /Users/andy/.gem/ruby/2.6.2/gems/sorbet-0.4.4334/lib/hidden-definition-finder.rb:47:in `main'
/Users/andy/.gem/ruby/2.6.2/gems/sorbet-0.4.4334/lib/hidden-definition-finder.rb:145:in `write_constants': /var/folders/m9/9zbts5m541df8z14x3d8_mc40000gn/T/d20190627-50209-n6puh/reflection.rbi had unexpected errors. Check this file for a clue: /var/folders/m9/9zbts5m541df8z14x3d8_mc40000gn/T/d20190627-50209-n6puh/reflection.json.err (RuntimeError)

Looking in reflection.json.err, it seems to only be a collection of 5014 errors
Expected behavior
Init on Sorbet typechecker 0.4.4296 git 84ca94bb59b7444a97368ee90aadc20740be43ab built on 2019-06-24 03:03:17 GMT with debug symbols
Printing your code's symbol table into /var/folders/m9/9zbts5m541df8z14x3d8_mc40000gn/T/d20190627-50011-130iq6b/from-source.json
Printing /var/folders/m9/9zbts5m541df8z14x3d8_mc40000gn/T/d20190627-50011-130iq6b/reflection.rbi's symbol table into /var/folders/m9/9zbts5m541df8z14x3d8_mc40000gn/T/d20190627-50011-130iq6b/reflection.json
Reading /var/folders/m9/9zbts5m541df8z14x3d8_mc40000gn/T/d20190627-50011-130iq6b/from-source.json
Reading /var/folders/m9/9zbts5m541df8z14x3d8_mc40000gn/T/d20190627-50011-130iq6b/reflection.json

App to reproduce this issue: https://github.com/Andy-Bell/sorbet-issue

Looking in reflection.json.err, it seems to only be a collection of 5014 errors

Can confirm with latest sorbet (0.4.4400). My reflection.json.err also contains only 5014 errors. They look like this:
/var/folders/sb/69c3drbd4pl_0j0xydlssh200000gn/T/d20190708-40961-1jitiys/reflection.rbi:38747: Type `Elem` declared by parent `T.class_of(ActiveRecord::Base)` must be re-declared in `T.class_of(ActiveRecord::InternalMetadata)` https://srb.help/5014
       38747 |class ActiveRecord::InternalMetadata < ActiveRecord::Base
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    /Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/sorbet-rails-0.3.0/rbi/activerecord.rbi:144: `Elem` declared in parent here
     144 |  Elem = type_template(fixed: ActiveRecord::Base)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The 0.4.4400 stack trace is basically the same as Andy got from 0.4.4334.

This may be a sorbet-rails issue, and may have already been fixed by https://github.com/chanzuckerberg/sorbet-rails/pull/68

.. we need the generation code to define Elem for the class. (Every subclass of ActiveRecord::Base need to redefine this regardless)

Compare the discussion in https://github.com/chanzuckerberg/sorbet-rails/pull/68 to the description of error 5014.
Upgrading sorbet-rails from 0.3.0 to 5bafcee6243b seems to have fixed this issue for me.

@Andy-Bell - Appears that this has been fixed. I forked/cloned and ran "srb init" against it.:
Generating /var/folders/lc/72klfq0j6x9dq5hysj5nsc7w0000gn/T/d20190712-81441-f4r7u4/reflection.rbi with 4750 modules and 127 aliases
Printing your code's symbol table into /var/folders/lc/72klfq0j6x9dq5hysj5nsc7w0000gn/T/d20190712-81441-f4r7u4/from-source.json
Printing /var/folders/lc/72klfq0j6x9dq5hysj5nsc7w0000gn/T/d20190712-81441-f4r7u4/reflection.rbi's symbol table into /var/folders/lc/72klfq0j6x9dq5hysj5nsc7w0000gn/T/d20190712-81441-f4r7u4/reflection.json
Reading /var/folders/lc/72klfq0j6x9dq5hysj5nsc7w0000gn/T/d20190712-81441-f4r7u4/from-source.json
Reading /var/folders/lc/72klfq0j6x9dq5hysj5nsc7w0000gn/T/d20190712-81441-f4r7u4/reflection.json
Building rbi id to symbol map
Building source id to symbol map
Writing /var/folders/lc/72klfq0j6x9dq5hysj5nsc7w0000gn/T/d20190712-81441-f4r7u4/hidden.rbi.tmp

This appears to have been an issue with sorbet-rails that is now fixed. If similar issues arise in the future, we can always revisit this issue.


Dependencies with vulnerabilities

I have been testing out my project for security vulnerabilities using the NPM module "retire" (https://www.npmjs.com/package/retire). Below are the 2 security vulnerabilites reported by retire:
node_modules/nedb/browser-version/test/jquery.min.js
↳ jquery 1.11.1 has known vulnerabilities: severity: medium; issue: 2432, summary: 3rd party CORS request may execute; https://github.com/jquery/jquery/issues/2432 http://blog.jquery.com/2016/01/08/jquery-2-2-and-1-12-released/
node_modules/nedb/node_modules/localforage/docs/scripts/jquery.min.js
↳ jquery 1.9.1 has known vulnerabilities: severity: medium; issue: 2432, summary: 3rd party CORS request may execute; https://github.com/jquery/jquery/issues/2432 http://blog.jquery.com/2016/01/08/jquery-2-2-and-1-12-released/
Note: I am using NeDB v1.8.0

Interesting to see, thanks for sharing!
That said, as far as risk goes, there is zero here from a consumer standpoint since neither of those are included in the NeDB module/library itself.  To address them specifically:

The first instance is only used for NeDB internal test pages

In my fork, NestDB, I already updated this one to use the latest<EMAIL_ADDRESS>

The second instance is used for the documentation pages of a 3rd party dependency

That said,

Interesting to see, thanks for sharing!
That said, as far as risk goes, there is zero here from a consumer standpoint since neither of those are included in the NeDB module/library itself.  To address them specifically:

The first instance is only used for NeDB internal test pages

In my fork, NestDB, I already updated this one to use the latest<EMAIL_ADDRESS>

The second instance is used for the documentation pages of a 3rd party dependency

For this one, you could submit an issue to the localforage repo since even the latest version of it (which NeDB is not using but NestDB is :wink:) still uses that old jQuery version in their docs

@JamesMGreene Thank you for your response. Looks like nestdb is not in the NPM registry anymore.
This is what I am getting while trying to install:
$ npm install nestdb --save
npm ERR! Darwin 16.7.0
npm ERR! argv "/**/**/.nvm/versions/node/v0.12.7/bin/node" "/**/**/.nvm/versions/node/v0.12.7/bin/npm" "install" "nestdb" "--save"
npm ERR! node v0.12.7
npm ERR! npm  v2.11.3
npm ERR! code E404

npm ERR! 404 Registry returned 404 for GET on https://registry.npmjs.org/nestdb
npm ERR! 404
npm ERR! 404 'nestdb' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 It was specified as a dependency of 'edm'
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

npm ERR! Please include the following file with any support request:
npm ERR!     /**/**/test/npm-debug.log

My bad, I haven't published it yet as I'm aiming to address one particular critical issue [inherited from NeDB] before releasing its first version: https://github.com/JamesMGreene/nestdb/issues/6
I was hoping to wrap that up a week ago but got sidelined with other work.


KYLIN-4346 Build Global Dict by MR/Hive, Parallel Total Build Step implementation

issue link: https://issues.apache.org/jira/browse/KYLIN-4346

Codecov Report

Merging #1092 into master will decrease coverage by 0.09%.
The diff coverage is 1.11%.

@@             Coverage Diff             @@
##             master    #1092     +/-   ##
===========================================
- Coverage     25.05%   24.95%   -0.1%
  Complexity     6223     6223
===========================================
  Files          1440     1446      +6
  Lines         87830    88253    +423
  Branches      12275    12314     +39
===========================================
+ Hits          22006    22027     +21
- Misses        63666    64067    +401
- Partials       2158     2159      +1

Impacted Files
Coverage Δ
Complexity Δ

...a/org/apache/kylin/source/hive/MRHiveDictUtil.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

.../org/apache/kylin/engine/mr/JobBuilderSupport.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

.../mr/steps/BuildGlobalHiveDictTotalBuildMapper.java
0% <0%> (ø)
0 <0> (?)

...va/org/apache/kylin/source/hive/HiveInputBase.java
7.11% <0%> (+0.42%)
4 <0> (ø)
:arrow_down:

...ne/mr/steps/BuildGlobalHiveDicPartPartitioner.java
0% <0%> (ø)
0 <0> (?)

...gine/mr/steps/BuildGlobalHiveDictPartBuildJob.java
0% <0%> (ø)
0 <0> (?)

...apache/kylin/engine/mr/BatchCubingJobBuilder2.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...e/mr/steps/BuildGlobalHiveDictPartBuildMapper.java
0% <0%> (ø)
0 <0> (?)

...e/mr/steps/BuildGlobalHiveDicPartBuildReducer.java
0% <0%> (ø)
0 <0> (?)

...gine/mr/steps/BuildGlobalHiveDicTotalBuildJob.java
0% <0%> (ø)
0 <0> (?)

... and 14 more

Continue to review full report at Codecov.

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

Pull Request Test Coverage Report for Build 5583

5 of 450 (1.11%)  changed or added relevant lines in 12 files are covered.
5 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.1%) to 27.409%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

engine-mr/src/main/java/org/apache/kylin/engine/mr/BatchCubingJobBuilder2.java
0
6
0.0%

source-hive/src/main/java/org/apache/kylin/source/hive/HiveInputBase.java
0
15
0.0%

engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/BuildGlobalHiveDicPartPartitioner.java
0
18
0.0%

engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/BuildGlobalHiveDicPartBuildReducer.java
0
27
0.0%

core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
1
35
2.86%

source-hive/src/main/java/org/apache/kylin/source/hive/MRHiveDictUtil.java
0
36
0.0%

engine-mr/src/main/java/org/apache/kylin/engine/mr/JobBuilderSupport.java
0
40
0.0%

engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/BuildGlobalHiveDictPartBuildMapper.java
0
43
0.0%

engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/BuildGlobalHiveDicTotalBuildJob.java
0
51
0.0%

engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/BuildGlobalHiveDictPartBuildJob.java
0
64
0.0%

Files with Coverage Reduction
New Missed Lines
%

source-hive/src/main/java/org/apache/kylin/source/hive/HiveInputBase.java
1
7.95%

core-cube/src/main/java/org/apache/kylin/cube/cuboid/TreeCuboidScheduler.java
2
68.46%

core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
2
80.23%

Totals

Change from base Build 5579:
-0.1%

Covered Lines:
24189

Relevant Lines:
88253

💛  - Coveralls

Merge pr: https://github.com/apache/kylin/pull/1097


Support named/top-level export

Warning: this pattern is highly experimental

<render-scope>
  <link top-level href=module.js>
  <template shadowrootmode=closed>
    <button :=counter>0</button>
    <span :: text:=set:total>0</span>
  </template>
</render-scope>

function increment() { this.value++ }

export function counter(element = <button/>) {
  element.addEventListener("click",  increment)
  return element
}

// footgun: how do you bind total?

export let total
// total += 1
// require compiler (compile to class with @bind accessor for the sake of performance 😂)

export const total = {}
// total.value += 1
// works without compiler but weird

The reason I'm interested in named export is because of handleEvent() pattern in class[^1]
<render-scope>
  <link top-level href=module.js>
  <template shadowrootmode=closed>
    <button :=new:Counter>0</button>
  </template>
</render-scope>

export class Counter {
  value = 0
  constructor(element = <button/>) {
    element.addEventListener("click",  this)
    return Object.setPrototypeOf(element, new.target.prototype)
  }
  handleEvent(event) {
    switch (event.type) {
      case "click":
        this.increment()
        break
      default:
        this.value = +event.currentTarget.value
    }
  }
  increment() { this.value++ }
}

use module in other area or projects
import { Counter } from "./module.js"
for (const input of document.querySelectorAll("input.counter")) {
  const counter = new Counter()
  input.after(counter)
  input.addEventListener("change", counter)
}

[^1]: DOM handleEvent: a cross-platform standard since year 2000

Seems the only compromise for avoiding data-binding footgun is to only allow named exports for handling ref Element #9. Basically named export must be a function or class.

I think I will go with ! prefix and only limit top-level export for ref, event handler, and setter.


Semantic tree problems with / division and invisible times

The following expression gives a Math Processing error. Can't be further minimised.
 <math>
   <mrow>
      <mi>n</mi>
      <mo mathvariant="normal">/</mo>
      <mi>ϕ</mi>
    </mrow>
    <mo mathvariant="italic"></mo>
    <mi>n</mi>
  </math>

The invisible times comes from LaTeXML that adds invisible times incorrectly in places, where invisible function applications should go.

Fixed in PR #146.


After install finrock locally, when I run your code, still can not find module name

Hello, I put requirements.txt / README.MD / int.py into finrock folder
And run pip install .
It works, I'm pretty sure finrock and wheels all successfully installed
But when I run the code, the error still says ModuleNotFoundError: No module named 'finrock'
I'm looking forward you publish your package so I think it will fix this problem
Cheers

Thanks, I'll check this. I'll add this package to pypi

This still missing :\


Add a proxy option, compatible with the previous usage

Hi,
Thanks for the PR, but NewDocument is really just a little helper, I don't want to add more network-related code to goquery as that doesn't belong in there anyway and short of passing a custom http.Client, there will always be different requirements (and no I don't want to add that NewDocumentFromHTTPClient :). There is NewDocumentFromResponse for when NewDocument doesn't do what you want (so you can use whatever options you want to retrieve the response).
Martin


[move prover] partial specs for LibraSystem and fix assumes in loop

Motivation
This PR adds partial specs to LibraSystem and fixes a bug related to loops.
Most of the functions have been specified and verified. The rest is pending issue #4872.
This PR also resolves issue #4854.
Have you read the Contributing Guidelines on pull requests?
Yes.
Test Plan
cargo test

:umbrella: The latest upstream changes (presumably 84f74bd931fff919d2dcf80c156e798918fe473c) made this pull request unmergeable. Please resolve the merge conflicts.

:umbrella: The latest upstream changes (presumably 8aa176ff9e42444b428fd15e0dabbbaaec661e43) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-libra r=shazqadeer

:pushpin: Commit 56d556e has been approved by shazqadeer

:hourglass: Testing commit 56d556e803d97e0f8471a8e931b3b89253b43212 with merge 3ebaffed544a4e69abca24ef479657df44f503aa...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: shazqadeer
Pushing 3ebaffed544a4e69abca24ef479657df44f503aa to master...


when click other navbar elements, it doesnt be active

on the navbar, when i click and open other pages like about or download active element always home. how can i change

Little late but it looks static at the moment.

                                 Blog

It shouldn't be a huge amount of work to make it active if you are in that URI zone.


Mempool installation confirmation info refers to BTC RPC Explorer install

At the end of installing Mempool Space in 1.6.1, there is a dialog box that says there may be ~7 hours required to build the transaction index before ready, and to use the EXPLORE option in the menu for more details. It looks like this is the standard dialog for BTC RPC Explorer's installation, and should be updated to refer to Mempool Space.

PR #1733 merged and correction will be part iof v1.6.2 release. Closing issue.


Adding isError property in Checkbox

Adding isError property into Checkbox component.
Tasks:

[X] test
[X] storybook documentation
[X] storybook unstyled
[X] storybook classBased

https://github.com/Capgemini/dcx-react-library/issues/581

@Ahmet-K in the storybook documentation please add one example for classBased.
You can make the checkbox and the label red for example (something like when you need to accept terms & condition), and in the description you can say that is not a standard gds standard behaviour but the library allow to do so


feat: add support for ListRetain

FOR REVIEW ONLY: this is based on erika's branch and needs to be rebased after her goes in.


Patch for 8.3

pubsub: populate from backup if the original json file is corrupted/missing
This is a follow up to [1].
This PR enhances pubsub such that it is now able to recover lost json files
with persisted items from backups. This is done by the Load()
method of the publisher's driver. The procedure of recovery is to first read
and then write the content of the *.bak file into the location of the original
file. This is done from inside of NewPublication() constructor, meaning that
all recovered items are then automatically also (re)published through sockets
(alongside all other loaded items).
[1] https://github.com/lf-edge/eve/pull/2630
Signed-off-by: Milan Lenco<EMAIL_ADDRESS>(cherry picked from commit 71a6ed0790a8f786859c76172bed521c774f57ec)

@milan-zededa are there any other PRs we need together with this or is everything else already in 8.3?

Nothing else needed for this recovery feature.


Not Building, Python Error

Expected behavior:
npm install is able to complete
Observed behavior:
On this step
><EMAIL_ADDRESS>copy-sources /Users/merlinpatterson/code/react-sketchapp/examples/basic-setup/node_modules/yoga-layout
> ! npm -s run is-monolithic || (rsync -r --checksum --delete ../yoga/ sources/yoga/)

I get the following error:
Error: Command failed: /Users/merlinpatterson/anaconda3/bin/python -c import sys; print "%s.%s.%s" % sys.version_info[:3];
  File "<string>", line 1
    import sys; print "%s.%s.%s" % sys.version_info[:3];
                                ^
SyntaxError: invalid syntax

     at ChildProcess.exithandler (child_process.js:289:12)
     at ChildProcess.emit (events.js:182:13)
     at maybeClose (internal/child_process.js:962:16)
     at Socket.stream.socket.on (internal/child_process.js:381:11)
     at Socket.emit (events.js:182:13)
     at Pipe._handle.close (net.js:606:12)

How to reproduce:
Clone a fresh copy of react-sketchapp. Attempt npm install. Fails.
Sketch version: 50.2
Please attach screenshots, a zip file of your project, and/or a link to your github project
Fresh copy, so I don't think this is needed?

fixed in v3


Bug located in nodal_solution reading

🔍 Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

🐞 Description of the bug
When using pymapdl-reader to read nodal solutions, the extracted values are mostly 0 with a few extreme maximum or minimum values, making it impossible to read normally.
📝 Steps to reproduce
Using Ansys 2023R1 workbench Static Analysis module.
The following code can be used to reproduce the issue：

from ansys.mapdl import reader as pymapdl_reader
rst = pymapdl_reader.read_binary(rstfile)
DISP = rst.nodal_solution(0)
Usis = DISP[1][:]

the values of "Usis" are mostly 0 with a few extreme maximum or minimum values, making it impossible to read normally.
!!!Note that: A project created solely using the Ansys 2023R1 Workbench static analysis module may encounter this issue, but projects saved using the Ansys 2021R2 Workbench static analysis module can be opened in Ansys 2023R1 Workbench and re-saved without encountering this issue. I suspect this to be a compatibility problem with Ansys 2023R1.
💻 Which operating system are you using?
Windows
📀 Which ANSYS version are you using?
ANSYS 2023R1
🐍 Which Python version are you using?
3.8
📦 Installed packages
absl-py==1.4.0
ansys-dpf-core==0.8.0
ansys-dpf-gate==0.3.1
ansys-dpf-gatebin==0.3.1
ansys-dpf-post==0.4.0
ansys-grpc-dpf==0.7.1
ansys-mapdl-reader==0.52.11
appdirs==1.4.4
astunparse==1.6.3
Bottleneck==1.3.5
cachetools==5.3.0
certifi==2022.12.7
charset-normalizer==3.1.0
colorama==0.4.6
contourpy==1.0.7
cycler==0.11.0
et-xmlfile==1.1.0
flatbuffers==2.0.7
fonttools==4.39.3
gast==0.4.0
google-api-core==2.11.0
google-api-python-client==2.83.0
google-auth==2.17.2
google-auth-httplib2==0.1.0
google-auth-oauthlib==1.0.0
google-pasta==0.2.0
googleapis-common-protos==1.59.0
grpcio==1.53.0
h5py==3.8.0
httplib2==0.22.0
idna==3.4
imageio==2.27.0
importlib-metadata==6.1.0
importlib-resources==5.12.0
joblib==1.2.0
keras==2.7.0
Keras-Preprocessing==1.1.2
kiwisolver==1.4.4
libclang==16.0.0
Markdown==3.4.3
MarkupSafe==2.1.2
matplotlib==3.7.1
mkl-fft==1.3.1
mkl-random==1.2.2
mkl-service==2.4.0
numexpr==2.8.4
numpy==1.24.2
oauthlib==3.2.2
openpyxl==3.1.2
opt-einsum==3.3.0
packaging==23.0
pandas==1.5.3
Pillow==9.5.0
pip==23.0.1
platformdirs==3.2.0
pooch==1.7.0
protobuf==4.22.1
psutil==5.9.4
pyasn1==0.4.8
pyasn1-modules==0.2.8
pyparsing==3.0.9
python-dateutil==2.8.2
pytz==2022.7
pyvista==0.38.5
requests==2.28.2
requests-oauthlib==1.3.1
rsa==4.9
scikit-learn==1.2.2
scipy==1.10.1
scooby==0.7.1
setuptools==67.6.1
six==1.16.0
tensorboard==2.12.1
tensorboard-data-server==0.7.0
tensorboard-plugin-wit==1.8.1
tensorflow-estimator==2.7.0
tensorflow-gpu==2.7.0
tensorflow-io-gcs-filesystem==0.31.0
termcolor==2.2.0
threadpoolctl==3.1.0
tqdm==4.65.0
typing_extensions==4.5.0
uritemplate==4.1.1
urllib3==1.26.15
vtk==9.2.6
Werkzeug==2.2.3
wheel==0.40.0
wincertstore==0.2
wrapt==1.15.0
zipp==3.15.0

This is another example where PyMAPDL Reader won't be able to keep up with MAPDL. There are compression changes occurring "under the hood" that are difficult to incorporate within this reader.
I'd strongly recommend transitioning to PyDPF-Core. If you absolutely need support for this, email me at<EMAIL_ADDRESS>and I can work something out with the powers that be.

This is another example where PyMAPDL Reader won't be able to keep up with MAPDL. There are compression changes occurring "under the hood" that are difficult to incorporate within this reader.
I'd strongly recommend transitioning to PyDPF-Core. If you absolutely need support for this, email me at<EMAIL_ADDRESS>and I can work something out with the powers that be.

Because I want to extract the X-component, Y-component, Z-component of displacement and X-component, Y-component, Z-component of rotation for static mechanical simulation, I can only use pymapdl-reader. PyDPF-Core and PyDPF-Post cannot meet my requirements as they can only extract nodal solutions, including the X-component, Y-component, Z-component of displacement.

Please upload a minimum working example result file here as a zip archive and I'll do the best I can to support it. I will also email the developers of DPF and have these features added for the next release.
CC @PProfizi @rlagha

Please upload a minimum working example result file here as a zip archive and I'll do the best I can to support it. I will also email the developers of DPF and have these features added for the next release.
CC @PProfizi @rlagha

Thank you so much for your help. Enclosed is a minimum working example result file that I have compressed into a zip archive. Kindly do your best to address this issue.
nodal_solution.zip

Hello @Tony-ooo ,
please find below an script showing how to extract rotational displacement values from the previously shared result files with PyDPF-Core.
Does this answer your need?
I will be adding this feature to the PyDPF-Post library as soon as possible.
import ansys.dpf.core as dpf
import numpy as np

rstfile = r'D:/nodal_solution/file.rst'
datfile = r'D:/nodal_solution/ds.dat'

substep = 4

# create the DataSource
ds = dpf.DataSources()
ds.set_result_file_path(rstfile, key="rst")
ds.add_file_path(datfile, key="dat")

# instantiate a Model
model = dpf.Model(data_sources=ds)
print(model)

# define a time_scoping on substep 4
time_scoping = dpf.time_freq_scoping_factory.scoping_by_step_and_substep_from_model(
    load_step_id=1,
    subset_id=substep,
    model=model
)

# extract the raw displacements
displacement_fc = dpf.operators.result.raw_displacement(
    time_scoping=time_scoping,
    data_sources=model,
).eval()
print(displacement_fc)

# extract the field from the fields_container
disp_field = displacement_fc[0]
print(disp_field)

# one can access the field's underlying numpy.ndarray using ".data"
print(disp_field.data)

# save to csv
np.savetxt(
    'displacement2_pydpf-core.csv',
    X=disp_field.data,
    delimiter=',',  comments='', fmt='%.18e',
    header="UX, UY, UZ, RX, RY, RZ"
)

# optional: extract the rotational dofs from the field
rotational_disp = dpf.operators.logic.component_selector(
    field=disp_field,
    component_number=[3, 4, 5]
).eval()
print(rotational_disp)

@PProfizi , please could you help @Tony-ooo , to get this use case working with pyDPF core and ensure that this is addressed with the new dpf-post API?

I have tested the new DPF-POST API "post.load_simulation" in ANSYS 2023R1, and it is functioning correctly. However, I have noticed that unlike pymapdl-reader, the new API is unable to extract the X, Y, and Z components of rotation from the rst file. It can only extract the X, Y, and Z components of displacement, which does not meet my requirements. Could you add the functionality of extracting the X, Y, and Z components of rotation in the new API? I am in urgent need of this feature.

Hi @Tony-ooo,
The reason you do not get identical field data for translational displacements between PyDPF-Core and PyDPF-Post is that when requesting them in PyDPF-Core, there is no specification of node IDs to request data for, and PyDPF-Core returns data as it is ordered server-side, which is not by ascending node ID.
When requesting the displacement data with PyDPF-Post however, you do indicate node_ids=nnum, which tells PyDPF-Post to request data for those specific nodes IDs in that specific order.
To obtain the same results, and as I guess you may want them ordered by ID for your .csv file to make sense, what you can do is modify the PyDPF-Core request as below:
nnum = dat.nnum
node_scoping = dpf.mesh_scoping_factory.nodal_scoping(node_ids=nnum)

# extract the raw displacements
displacement_fc = dpf.operators.result.raw_displacement(
    time_scoping=time_scoping,
    mesh_scoping=node_scoping,
    data_sources=model,
).eval()
disp_field = displacement_fc[0]

This will result in disp_field having data ordered by node ID, and your .csv being identical for translational displacement.

Thank you very much for your assistance. You solved my problem perfectly. I'm looking forward to the addition of this feature in the PyDPF-Post API.

Thanks @PProfizi for your rapid follow up here.


Check that hooks follow documentation standards

Forked from https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/241#issuecomment-133562703.

Even if the full filter DocBlock couldn't be fully checked yet, at least allowing DocBlocks before lines that contain  add_filter(,  do_action(,  do_action_ref_array(, or  apply_filters_ref_array(, would allow us to remove the Squiz.Commenting.BlockComment.WrongStart exclusion, so it can highlight any incorrect DocBlocks elsewhere.
(Actually, because of the need to ignore /** translators: ... */ too, this probably needs a bit more thought on it's own.)


Dashboard state - always open.

Hi, I'm an fpsVR developer and users of my app are facing a problem while using OculusKiller. fpsVR determines whether or not the Oculus dashboard is open via Oculus API requests. And when using OculusKiller, it turns out that the dash is always open. I made a workaround.
But fix it if possible, please. Let it be better for applications that request the state of the dash to always receive the information that it is closed.

Mind sharing the workaround?
Or is it included in fpsVR?


Adding runtime testing

While hacking on the activation script I noticed the lack of an infrastructure for
testing runtime features like generation activation and services.
Here's how runtime testing could be implemented:

Run tests in a VM using the NixOS testing framework, which is very pleasant to use
with the new Python backend.
Add an interactive testing mode to avoid VM restarts while creating and debugging tests.

Besides interactively running tests, it should be possible to rebuild and activate
changed test home configs from within testing Python REPL.

To keep runtime overhead low, we can simply run multiple tests sequentially in a
single VM. Between tests the home directory and user units are reset.
nmt integration is simple: just add a test case with an empty script and a home
config that references the test derivation.
Travis GCE nodes support KVM, so the tests can be run by Travis.

Do you like the concept? I'll then flesh it out and add a PR.

This should be done in a container instead of a VM. Let's revisit this issue when unprivileged containers are implemented in nixpkgs.


.env should not be mandatory

I was exploring #43 and was a bit irked by the need to have .env without which the project wouldn't fire up.  apparently dotenv.config({silent : true}) suppresses its absence and starts the project. Would be cool if we could patch it in ?

Sure seems like a great idea 👍


feat(minifier): reverse negated conditional exprs

#8209
#8208
#8207
#8206
#8205  👈 (View in Graphite)
main

How to use the Graphite Merge Queue
Add either label to this PR to merge it via the merge queue:

0-merge - adds this PR to the back of the merge queue
hotfix - for urgent hot fixes, skip the queue and merge this PR next

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.


Fix self trade bug in new_order

When callback_info_len != callback_id_len, self trades will be handled improperly. This PR fixes that issue.

Yes, thanks a lot for that!


After BoxZoom can't click on marker

debug/map/markers.html
click on marker - got popup
close popup
use boxzoom for zooming
click on marker - no popup :disappointed:

Confirmed. I'm looking at it.

Is this different to #3026?

No it's not! :)
Closing in favor of #3026 then.


Make several functions inline for improved performance

OSS Fuzz reports a timeout in issue 19900
(https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19900).
Im my test, making some functions which are called most often in that test inline
reduces the execution time from 44 s to 39 s.

thanks


Error: 2 UNKNOWN: error starting container: context deadline exceeded

Can anyone help me out with this? I looked at the other issues and tried the solutions but those didnt seem to work. I managed to run the build_ubuntu.sh script and it all worked fine. I'm running this on ubuntu 16.04.
I changed my build_ubuntu script to this:
`#!/bin/bash
cp ./binary_ubuntu/* .
export FABRIC_CFG_PATH=$PWD
sh ./ibm_fabric.sh
sh ./docker-images.sh
sleep 5
docker-compose up --no-start --force-recreate
sleep 60
docker-compose up -d --force-recreate`
After checking the logs of the web container, i get:

@in234

run ./clean.sh to get rid of existing images and containers and then run it with ./build_*.sh.
The project is updated with the latest fabric now


Fix error C3615 for qt5-base

Qt5-base failed with error: "qalgorithms.h(847): error C3615: constexpr function 'qCountLeadingZeroBits' cannot result in a constant expression"
As STL said in bug#616379, we followed the similar patch(0002-Fix-MSVC2017-compilation-with-enabled-relaxed-conste.patch) to fix this issue and this port install passed as expected.

@alexkaratarakis Please help review this PR, thanks.

Thanks!


Wrong arg name for map file in localize.launch

In src/svea_sensors/launch/localize.launch, the argument name evaluated to check if a map file name is passed is different from the defined arg name.
https://github.com/KTH-SML/svea/blob/56eb6b80df4b17c96d57144c37167624c2047137/src/svea_sensors/launch/localize.launch#L22-L23
https://github.com/KTH-SML/svea/blob/56eb6b80df4b17c96d57144c37167624c2047137/src/svea_sensors/launch/localize.launch#L53-L54

Fixed in PR #40


Api Telegram

hello, I followed the tutorial to put the telegram  api in pagermon , but I don't understand the instructions at:
Enter this chat ID in Telegram section in Pagermon Alias
Where should I put it, if someone can tell me, it's in telegram but where?
Thanks

In Pagermon under each Alias, there is a field to enter the Chat ID. This allows messages from each alias to go to different telegram groups/recipients if you choose.
You have to edit an existing alias and/or create a new one to see the field

A big thank-you
I have been looking since yesterday


Terminal should support to confirm an instance delete / kill on exit

In the old task system the task service prompted the user if the workbench closed with running tasks. However when executing the task in the terminal this doesn't happen anymore since the terminal service receives the shutdown event first and then kills all terminal instances. When the task service is ask all tasks are already gone. To support that the task service gets more control over this I see two options:

the terminal service fires an event that it shutsdown and the task service listens to that
a terminal instance can be marked as confirmOnExit and if one exist the terminal service prompts the user (as it would if the setting is set)

I would prefer option two and I am willing to provide a PR. @Tyriar what is your take on that.

@dbaeumer there is already the confirmOnExit setting, it will confirm even when the shell isn't running anything currently though.
Can this be closed in favor of https://github.com/Microsoft/vscode/issues/23808?

@Tyriar I was aware of that setting but it is global. I do have requests that people want to be warned for task A but not for task B. But may be we can postpone the request and I tell people to use the Terminal setting for now.

#23808 would be a prerequisite for using the setting with tasks. Most of the time the terminal doesn't have an active process anymore so closing it would be fine.

@alexr00 is this still desired from the tasks side? Do you have an issue reference for this?

I don't know of an issue for it. I'll re-open if I find something.


Request: please update papermc hangar listing

this is currently out of date, and it isn't very clear how to get to the latest version here on github from there. The only link to this repo is a broken readme url.
https://hangar.papermc.io/jensjeflensje/ImageryAPI
was probably forgotten about so I'll just throw a reminder in here

You're right. I totally forgot I even had this entry. Thanks for letting me know, it's updated now.


(new feature request) add a selector to directory

When I write code like this:

I expect the path is:

add path selector to directory may be usefule!

Thanks! I will look into it. Cheers
On Thu, Sep 29, 2016 at 4:43 AM +0200, "阳小东"<EMAIL_ADDRESS>wrote:
When I write code like this:
I expect the path is:
add path selector to directory may be usefule!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Would you like to give it a shot in an PR?


grains: use $v1 instead of $10 as output register for the high word

The grains exercise instructions suggest using the $10 register to store the high word of the output, but the test runner expects it in $v1.

lgtm

lgtm

Thanks! Should I post the link to this PR on the relevant forum topic?

Yes.

Yes.

Done, thank you! https://forum.exercism.org/t/grains-exercise-typo/8173

resolves #198


Links don't support inline styling.

e.g. you can't do [my _fancy_ link](/foo) and have the "fancy" show up as "fancy".
To fix this, the parser will need to be modified significantly. However, this is already something that needs to happen to address #68.

Fixed in the v0.9.0 alphas.


Support C2D on confidential networks (need signature to decrypt files object)

Right now this is not fully supported because at least for the "initialize" and "startCompute" operations we need to decrypt the DDO files object.
When we're dealing with a confidential EVM and template 4 we need to get the files object from a smart contract call, and for that we need a consumer signature, which ATM some of these operations are not requiring

is this done?

is this done?

Nope, its not. We will need to refactor some C2D APIs, node side at least.

closing this one (will be part of https://github.com/oceanprotocol/ocean-node/pull/705


Rsf decision doc

Please review. There is no Consequences section at present. I'm not sure if this is needed.

I've made a couple of corrections based on your comments.


Fix FileMeta.Equals.

Signed-off-by: Max Schaefer<EMAIL_ADDRESS>

Can one of the admins verify this patch?


Fix empty sources case in Merge operator in case of task termination …

There is a race condition can trigger Merge operator SEGV in
Meta internal Prestissimo shadowing test:

Presto coordinator sends all the splits to a worker (with no more split)
Presto coordinator (or some other worker side failure) triggers early
task termination which cleanup the pending splits to process
A running merge operator from the failed task calls isBlocked() call for
the first time and get empty sources and non-blocked reason to continue
Note: there is no source merge tree created
The merge operator getOutput call run into segment fault as no source
merge tree is created.

Add  a unit test to create this race condition and verified the fix which mark the
operator finishes when sources are empty.

Thanks for the fix. Will there be a situation in grouped execution where task is created without any splits yet. Operators created normally and noMoreSplits_ not set (future splits yet to come). Current fix will fail, right?


Credential with OVH Object Storage

I am trying to connect with my provider's credentials (OVH) but impossible.
With Cyberduck same credentials and endpoint work correctly.
Tutorial (in french) for get credential from OVH :
https://gist.github.com/BaptisteDixneuf/85dc4419a0398446d2d3
Do you have an idea what isn't work ?
(I have a doubt about endpoint... I use https://auth.cloud.ovh.net)
Thanks

Ok this project is dead...
Have you an another live project ?


Carthage Support

Added Carthage support #1

@hawk-ukr please review changes.
I apologize for the large number of files changed. While this may seem odd at first if you scroll through you'll notice I actually didn't change much. I updated the APValidators library using CocoaPods newest pod lib create **** command available with CocoaPods 1.1.1. They also suggest a .gitignore setup slightly different from the one you had previously. This pushed the .xcworkspace along with the Pods directory to the repo. Most of the files changes are these additions. You'll see I also updated the README.md to reflect installing via Carthage. I bumped the version in the .podspec but did not push a tag for release. I figured I'd leave that up to you.
Let me know if you see any issues with the way I went about doing this but the Carthage installation does work. You can create a Cartfile and add "chrisdhaan/APValidators" "carthage-support" to test it.

It looks like the continuous integration failed for this branch. Is there any way the failing output could be pasted here so I can fix it?

Hey @chrisdhaan, thank you for your contribution. And sorry for my late response.
I see that CI cannot compile tests target. And I know why - you've missed the target for tests .m files.
Also, about adding Pods folder to Git. I don't prefer this approach. You can read about pros and cons here - http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control So I think we should get back to the previous variant of .gitignore.
What do you think?

@hawk-ukr no worries on the late response.
Can you elaborate on "I missed the target for tests .m files? I didn't think I had touched anything regarding the tests.
No worries about not storing Pods in git. I'll remove that.

@chrisdhaan all test .m files added to main target, not in tests target

@hawk-ukr I removed most of the files from the Pods directory. Anything related to OCMock and Expecta have been removed. I also added the .m files back to the Test target but there still seems to be something failing. If you can update me on what it is I'll continue to fix the issue.
The reason I couldn't remove the whole Pods directory is because Carthage relies on parts of it to build the scheme for the framework. I don't know how else to make Carthage installation work without the Pods/APValidator files being there.

@hawk-ukr I can cancel this PR and delete my fork if you aren't interested in this anymore.