IPython.display.Code syntax highlighting doesn't work

Applies To

[X] Notebooks (.ipynb files)
[ ] Interactive Window and/or Cell Scripts (.py files with #%% markers)

What happened?
In Jupyter Notebook (official), we can use the IPython.display.Code class to display syntax highlighted source code (using pygments in the background). For example,

In Jupyter Notebook (VS Code), the source code is displayed but does not feature syntax highlighting. For example,

This problem also occurs with JupterLab (https://github.com/ipython/ipython/issues/11747), so there might be overlap in the root cause.
VS Code Version
1.71.2
Jupyter Extension Version
v2022.8.1002431955
Jupyter logs
Visual Studio Code (1.71.2, undefined, desktop)
Jupyter Extension Version: 2022.8.1002431955.
Python Extension Version: 2022.14.0.
No workspace folder opened.
info 10:16:57.469: ZMQ install verified.
User belongs to experiment group 'jupyterTest'
User belongs to experiment group 'jupyterEnhancedDataViewer'
info 10:16:57.774: LSP Notebooks experiment is enabled
info 10:16:57.808: Preferred Remote kernel for Untitled-1.ipynb is undefined
info 10:16:57.808: Find preferred kernel for Untitled-1.ipynb with metadata {"orig_nbformat":4} & preferred interpreter
info 10:16:57.809: Preferred Remote kernel for Untitled-1.ipynb is undefined
info 10:16:59.708: Experiment status for python is {"enabled":true,"optInto":[],"optOutFrom":[]}
info 10:17:2.718: Process Execution: > ~\Anaconda3\python.exe -m pip list
> ~\Anaconda3\python.exe -m pip list
info 10:17:6.814: Preferred Remote kernel for Untitled-1.ipynb is undefined
info 10:17:6.814: Find preferred kernel for Untitled-1.ipynb with metadata {"orig_nbformat":4} & preferred interpreter
info 10:17:6.815: Preferred Remote kernel for Untitled-1.ipynb is undefined
info 10:17:6.818: Preferred Remote kernel for Untitled-1.ipynb is undefined
info 10:17:14.18: Execute Cell 0 Untitled-1.ipynb
info 10:17:14.23: Starting Jupyter Session id = 'startUsingPythonInterpreter:.jvsc<redacted>.c:\Users\davidhall\Anaconda3\python.exe.c:\Users\davidhall\Anaconda3\python.exe.-m#ipykernel_launcher' (Python Path: c:\Users\davidhall\Anaconda3, EnvType: Conda, EnvName: 'base', Version: 3.9.7) for 'Untitled-1.ipynb' (disableUI=false)
info 10:17:14.24: Creating raw notebook for resource 'Untitled-1.ipynb'
info 10:17:14.24: Computing working directory for resource 'Untitled-1.ipynb'
info 10:17:14.25: Starting raw kernel 'base (Python 3.9.7)' for interpreter c:\Users\davidhall\Anaconda3\python.exe
info 10:17:14.348: Process Execution: > ~\Anaconda3\python.exe -c "import ipykernel; print(ipykernel.__version__); print("<redacted>"); print(ipykernel.__file__)"
> ~\Anaconda3\python.exe -c "import ipykernel; print(ipykernel.__version__); print("<redacted>"); print(ipykernel.__file__)"
info 10:17:14.400: Kernel launching with ports 9000,9001,9002,9003,9004. Start port is 9000
info 10:17:14.533: Process Execution: > ~\Anaconda3\python.exe ~\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\pythonFiles\vscode_datascience_helpers\kernel_interrupt_daemon.py --ppid 18684
> ~\Anaconda3\python.exe ~\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\pythonFiles\vscode_datascience_helpers\kernel_interrupt_daemon.py --ppid 18684
info 10:17:14.533: Process Execution: cwd: ~\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\pythonFiles\vscode_datascience_helpers
cwd: ~\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\pythonFiles\vscode_datascience_helpers
info 10:17:14.909: Process Execution: > ~\Anaconda3\python.exe -m ipykernel_launcher --ip=<IP_ADDRESS> --stdin=9003 --control=9001 --hb=9000 --Session.signature_scheme="hmac-sha256" --Session.key=b"<redacted>" --shell=9002 --transport="tcp" --iopub=9004 --f=c:\Users\davidhall\AppData\Roaming\jupyter\runtime\kernel-v2-186842mUgiVRw1R24.json
> ~\Anaconda3\python.exe -m ipykernel_launcher --ip=<IP_ADDRESS> --stdin=9003 --control=9001 --hb=9000 --Session.signature_scheme="hmac-sha256" --Session.key=b"<redacted>" --shell=9002 --transport="tcp" --iopub=9004 --f=c:\Users\davidhall\AppData\Roaming\jupyter\runtime\kernel-v2-186842mUgiVRw1R24.json
info 10:17:14.909: Process Execution: cwd: ~\AppData\Local\Programs\Microsoft VS Code
cwd: ~\AppData\Local\Programs\Microsoft VS Code
info 10:17:14.912: Widget Message: Received IPyWidgetMessages.IPyWidgets_IsReadyRequest
info 10:17:14.914: ipykernel version 6.15.2 for c:\Users\davidhall\Anaconda3\python.exe
info 10:17:14.914: ipykernel location ~\Anaconda3\lib\site-packages\ipykernel\__init__.py for c:\Users\davidhall\Anaconda3\python.exe
warn 10:17:16.481: StdErr from Kernel Process c:\Users\davidhall\Anaconda3\lib\site-packages\traitlets\traitlets.py:2202: FutureWarning: Supporting extra quotes around strings is deprecated in traitlets 5.0. You can use 'hmac-sha256' instead of '"hmac-sha256"' if you require traitlets >=5.
  warn(
c:\Users\davidhall\Anaconda3\lib\site-packages\traitlets\traitlets.py:2157: FutureWarning: Supporting extra quotes around Bytes is deprecated in traitlets 5.0. Use '<redacted>' instead of 'b"<redacted>"'.
  warn(

info 10:17:16.535: Kernel Output: NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.

To exit, you will have to explicitly quit this process, by either sending
"quit" from a client, or using Ctrl-\ in UNIX-like environments.

To read more about this, see https://github.com/ipython/ipython/issues/2049

To connect another client to this kernel, use:
    --existing c:\Users\davidhall\AppData\Roaming\jupyter\runtime\kernel-v2-186842mUgiVRw1R24.json

info 10:17:16.616: Started kernel base (Python 3.9.7)., (Raw session started and connected)
info 10:17:16.616: Finished connecting <redacted>
error 10:17:16.624: stat() failed for "untitled:Untitled-1.ipynb?jupyter-notebook" [Error (FileSystemError): Unable to resolve filesystem provider with relative file path 'untitled:Untitled-1.ipynb?jupyter-notebook'
	at Qt._handleError (c:\Users\davidhall\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:87:30174)
	at Object.stat (c:\Users\davidhall\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:87:28102)
	at process.processTicksAndRejections (node:internal/process/task_queues:96:5)
	at async b.exists (c:\Users\davidhall\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\out\extension.node.js:7:20271)
	at async y.getCode (c:\Users\davidhall\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\out\extension.node.js:2:2285764)
	at async Promise.all (index 1)
	at async t.Kernel.gatherInternalStartupCode (c:\Users\davidhall\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\out\extension.node.js:2:2250440)
	at async t.Kernel.initializeAfterStart (c:\Users\davidhall\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\out\extension.node.js:2:2249025)
	at async t.Kernel.createJupyterSession (c:\Users\davidhall\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\out\extension.node.js:2:2246430)
	at async t.Kernel.start (c:\Users\davidhall\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\out\extension.node.js:2:2241145)
	at async k.wrapKernelMethodImpl (c:\Users\davidhall\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\out\extension.node.js:2:2492201)] {
  code: 'Unknown'
}
info 10:17:16.625: Executing silently Code (busy) = import os as __VSCODE_os\n__VSCODE_os.environ["PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING"] = "1"\ndel __VSCO
info 10:17:16.794: Executing silently Code (completed) = import os as __VSCODE_os\n__VSCODE_os.environ["PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING"] = "1"\ndel __VSCO with 0 output(s)
info 10:17:16.795: Waiting for idle on (kernel): <redacted> -> idle
info 10:17:16.795: Finished waiting for idle on (kernel): <redacted> -> idle
info 10:17:17.35: Process Execution: > ~\Anaconda3\python.exe ~\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\pythonFiles\printJupyterDataDir.py
> ~\Anaconda3\python.exe ~\.vscode\extensions\ms-toolsai.jupyter-2022.8.1002431955\pythonFiles\printJupyterDataDir.py
info 10:17:17.43: Widget Message: Received IPyWidgets_kernelOptions in ScriptManager
info 10:17:17.44: Widget Message: Received IPyWidgetMessages.IPyWidgets_kernelOptions
info 10:17:17.141: Cell 0 executed with state Success
warn 10:17:17.160: Got a non-existent Jupyer Data Dir file:///c%3A/Users/davidhall/AppData/Roaming/Python/share/jupyter
info 10:17:17.192: Widget Message: data-base-url set to https://file%2B.vscode-resource.vscode-cdn.net/c%3A/Users/davidhall/.vscode/extensions/ms-toolsai.jupyter-2022.8.1002431955/tmp/scripts/<redacted>/jupyter

Coding Language and Runtime Version
Python v3.9.7
Language Extension Version (if applicable)
No response
Anaconda Version (if applicable)
conda 4.14.0
Running Jupyter locally or remotely?
Local

Looks like an issue with the HTML output


Question: is a thread per node really necessary?

Hi,
I noticed that a single thread is created for each node. This seems like a waste of resources in large systems with potentially dozens of nodes.
I guess that either a custom (simple) scheduler or a coroutine library might be able to do the job.
Considering the overhead of the context switching, I have the feeling that even traversing the entire tree might be faster.
Is there any reason I am not aware of to use a separate thread per node?
Cheers
Davide

Hi Davide,
The reason behind the thread per node is that a running node should run in a separate thread from its parent. This is because the HALT of a node may be requested any time, asynchronously from the running node. For instance, imagine the tree: Sequence(Condition, Action). We need a thread that executes the action (Action Thread) and a thread that verify if the action must be halted (Sequence Thread).
Probably there is a better approach to this, but for my research I "just" make proof-of-concept BTs.
Do you have any suggestion?
Thank you
Michele

Hi Michele,
I am not sure I see the problem the way you do.

At the end of the day, your threads need to explicitly check the condition variable and interrupt their while() loop. From the point of view of the signal they work as "cooperative" multitsking.

The only node where there MIGHT be a need for threads are ActionNodes. It is very hard for me to see how a ControlNode might nee a separate thread. The fact that they shall be able to propagate the signal has nothing to do with the fact that they own their own thread.

You can serialize the tick() execution using boost::asio, but this require some thinking, I guess.

If you don't mind, I will play with it on my own fork and ply with different ideas I have.
Davide

Let's take a look to ActionNodeExample
A) We are waiting for the tick here.  https://github.com/miccol/Behavior-Tree/blob/master/src/ActionNodeExample.cpp#L23
This means that the following code is execvuted, oif course, once per tick. Ideally, we could just remove the thread and the while(true) and delegate the execution of the code inside Exec() to a centralized scheduler.
B) Despite the complex infrastructure of signals and waits, the user MUST actively check for interruption here:
https://github.com/miccol/Behavior-Tree/blob/master/src/ActionNodeExample.cpp#L41
Otherwise halt() has no effect.
I am thinking: if we remove the assumption that multiple threads are necessary, this piece of code is still the same.
C) I must admit that from the user point of view, the logic of halting and state trnasitions is pretty complicated. For example I don't understand the need for this wait
https://github.com/miccol/Behavior-Tree/blob/master/src/ActionNodeExample.cpp#L78

Sure, please feel free to improve it.
Just make sure that also the control flow nodes are preemptable (or find a smarter way to traverse the tree), probably the solution of one thread per node is a bit overkill. If you find a better one I will adopt it.
Thank you.
Michele

I think I have something you can look at here:
https://github.com/facontidavide/BehaviorTree/tree/refactoring
WARNING: I need to do unit testing, so the code might still contain severe bugs. Just focus on the concept and the API.
The main idea is that none of the node has by default its own thread.
The only one that has a separate thread is potentially the ActionNode. I created a thin wrapper that makes this case easier to manage, called ActionNodeAsync
https://github.com/facontidavide/BehaviorTree/blob/refactoring/lib/include/ActionNode.h#L27
To get an idea of how the user code shall be written, take a look here
https://github.com/facontidavide/BehaviorTree/blob/refactoring/sample/src/ActionNodeExample.cpp
As you can see it is dramatically simpler, since exec() implementation shall not focus on the different BT states and the logic of the signal, that was quite hard to follow IMHO.
What do you think? Does it make sense or am I missing something?

Thank you. I will check ASAP (bit busy in this period)
(ROS hydro did not support C++11, to compile in ROS you have to use catkin http://answers.ros.org/question/12227/ros-and-c11/)
Michele

ok, I was thinking about Indigo or later.
I am still doing many changes to my proposal, but I am quite confident that this approach would simplify considerably the code, from both the point of view of the library or the user code (and reduce the use of resources and latency).
this is a sample of the users' code
ActionNodeExample::ActionNodeExample(const std::string& name) :
    ActionNodeAsync(name),
    _max_cycles(1),
    _halt_requested(false)
{ }

BT::State ActionNodeExample::exec()
{
    // user must proactively split long computation and check
    // _halt_requested to see if the onHalt callback was executed

    for (int cycle_count=0; cycle_count < _max_cycles; cycle_count++)
    {
        // if _halt_requested is true, it is reset atomically to false.
        bool pending_halt = true;
        if( _halt_requested.compare_exchange_strong( pending_halt, false )) {
            // _halt_requested was true
            return ( BT::State::IDLE);
        }
        std::cout << name() << " working " << cycle_count<< "/" << _max_cycles << std::endl;
        std::this_thread::sleep_for( std::chrono::milliseconds(350));
    }
    // if you got here, it means that (_cycle_count == _time)
    // and no halt was received.
    return( BT::State::SUCCESS );
}

void ActionNodeExample::setCyclesCount(int cycles) {
    this->_max_cycles = cycles;
}

void ActionNodeExample::onHalt() {
    // the thread calling this callback almost surely is NOT the same
    // that runs exec().
    // For this reason you must change _halt_requested in a thread safe way,
    // using either a mutex or an atomic.
    _halt_requested.store(true);
}

I had a quick look (I have a strict deadline soon),
looks cool but if you create a SequenceNode composition (not SequenceStarNode) of a ConditionNodeExample with a ActionNodeExample setting the max cycles to say 1000 when the condition node returns failure the ActionNodeExample keeps running.
Can you try that?

As I said, the implementation is still being tested and it is not ready for prime time.
Nevertheless you were right, it was not working. I fixed it and added a unit test:
https://github.com/facontidavide/BehaviorTree/blob/refactoring/tests/bt_async_sample.cpp

Unfortunately I will be rather busy until March (I am writing my PhD thesis.) We can continue the discussion over email if you prefer (miccol@kth.se).
Anyway your way of programming looks much better I have to say. I did not have much experience in multithreading programming when I started developing the library but for my research worked OK (I and do not have time to code as I wish), in the ROS implementation I have released the  version 1.2 where I have applied the Google Code style and improved the tree visualization.  I am planning to release the version 2.0 after my defence. I will probably adopt you tick traversal method, giving you the credit of course.

Good luck with your thesis :)
Once you decide to work on 2.0. drop me a line and we can merge our two libraries and collaborate on a single one.
In the following weeks I will start using my own version in real-world projects and I will validate the  model.
Cheers


feat(commands): add Autosession commands using ui.select

This PR implements my suggestion in #140, although frankly I should have waited to get your take first 😅. Was just pretty keen on it. Anyway, the changes include adding an Autosession command using the vim.api.nvim_create_user_command. This command can be expanded in the future but for now it takes two arguments Autosession delete or Autosession search both will use vim.ui.select to open the picker a user has configured e.g. Telescope or FZF or some custom function.
On confirming a selection it will restore or delete the session (eventually) for now, when I try and restore the session it doesn't work. I don't know if the path I'm using is incorrect for the session or what the right argument looks like

Hey @akinsho, thanks for the PR, this makes sense to me! The one thing session-lens does that I kind of like which would go away with this is the ability to just have one picker and either select or delete from the same picker.
With session-lens I setup <C-d> on a selection to delete it, and <CR> to restore the selected session. I wonder if there's any way to achieve a similar thing with vim.ui.select 🤔

@rmagatti the simplest solution is just two pickers alternatively but very messily you could have entries for select & delete in the same picker, so it would appear like delete session-x, load session-x, or you could start with a choice e.g. prompt -> delete | restore -> sessions.
Tbh all this is to my mind is complexity that isn't really super valuable (personal opinion) I think the overhead of maintaining a whole separate code base to do what can be done in like 50 LOC here using built ins which also comes with the advantage of supporting all conceivable pickers that implement can take advantage of ui.select is a much better trade off (again IMO).
This mechanism also actually gives a user the ability to customise the picker on their side as well, whereas ATM it depends on the specific theme set in session lens for telescope etc

Don't mean this to sound pushy though obviously it's up to you to decide if maintaining session lens separately is worth it, although to be frank you could always just keep both plugins and maybe re-use some of this logic if applicable in session lens 🤷🏿♂. Or not use it at all. I just saw this pattern elsewhere and thought it was much simpler with quite a few positive wins, with the downside of losing things like picker mappings. Although this is probably more accessible for more users since anyone wanting to use this but not wanting to telescope was either stuck without a picker or had to use something else.


[AVM Module Issue]: name must start with specific naming microsoft-avdi-*

Check for previous/existing GitHub issues

[X] I have checked for previous/existing GitHub issues

Issue Type?
Feature Request
(Optional) Module Version
0.1.1
(Optional) Correlation Id
No response
Description
The AVDI configuration workbook in the azure portal currently only displays DCRs which start with microsoft-avdi-
https://github.com/microsoft/Application-Insights-Workbooks/blob/fa1b9fbf60f1c2e572a0d31ccae9b3c92666a652/Workbooks/Windows Virtual Desktop/CheckAMAConfiguration/CheckAMAConfiguration.workbook#L1214
In essence, the name variable in the module should be coded to always start with this

@audunsolemdal,
Thank you for raising the issues! You are correct DCRs which start with microsoft-avdi- is only allowed for AVD Insights. Hence the sample name. I have added the validation to the code. Fixes will be applied in PR #56

Fixes applied in PR #56


CSS conflict with shadcn ui's button style

There's a css style sheet conflict with shadcn ui's button. Shadcn UI's button is hidden everywhere, and it changes it's absolute position.

fyi, i downgraded to 0.1.17 for now to fix this issue

Sorry for the delay here! This should be fixed in<EMAIL_ADDRESS>https://github.com/steven-tey/novel/releases/tag/0.1.22

Hi, its seems the issue are still there when using shadcn. The button should be white but its seems the color is gone


Add support for Feather format

The backend packages are Feather.jl for version v1 and possibly Arrow.jl for version v2.

Moved to #74


Fix custom modules in Visual Studio

Without custom_modules (empty string by default) scons command in VS project was broken
(fixes regression from commit 6122a504eeb4f8678a012d08a0a8fcc5e661c69e)
Fixes #42152

CC @Xrayez

I'm able to build with and without custom_modules option while generating the VS project with vsproj=yes. 😮
Tested on Visual Studio 2019, with Python version 3.6.4.
Makes me wonder what Python version do you use which could make it different for you?
Have you used custom_modules build option in the past?
To be honest, the way I wrote it is likely error-prone anyway, if this fixes the issue (tested this PR, works), then ok, sorry for introducing regression, was likely a bad idea to add such a feature for something which I don't extensively use myself (custom_modules in VS).

As Akien said, was also too fast to merge #41453, as the build system could be improved to support including other build options (like module_mono_enabled=yes, which is disabled by default), but then again requires more work for which I'm not confident to do without introducing yet another regression like this. 🙂

@Xrayez Isn't it handled already in custom.py? We can think of it in another PR. I'll check the issue again on completely separate machine, but it was 100% reproducible if I didn't pass custom_modules creating vsproj with scons - I couldn't build any target inside VS, getting errors as on the attached screenshot.

Scons 3.1.1
Python 3.7.0
It works without any changes.
Scons 4.0.1
Python 3.8.5
It requires the fix.
Sorry @Xrayez I didn't mention my stack earlier.
I've just fixed code formatting in methods.py.

@Listwon I've just upgraded to SCons 4.0.1 now (without upgrading Python), I get the same error:
1>scons: Reading SConscript files ...
1>Build option 'custom_modules' must point to an existing directory.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(44,5): error MSB3073: The command "echo Starting SCons && cmd /V /C set "plat=x64" ^& (if "x64"=="x64" (set "plat=x86_amd64")) ^& set "tools=yes" ^& (if "debug"=="release" (set "tools=no")) ^& set "custom_modules=" ^& call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" !plat! ^& scons --directory="D:\src\godot\3" platform=windows progress=no target=debug tools=!tools! custom_modules=!custom_modules! -j6" exited with code 255.
1>Done building project "godot.vcxproj" -- FAILED.

It would seem like a regression from SCons in fact, but it's difficult to blame the SCons fellows because of compatibility breakage with 4.0.1.
When printing env_base["custom_modules"] from within SConstruct the value is: !custom_modules!, because somehow it gets undefined. Perhaps there was some breaking changes which return None vs "" (empty string) for a construction environment (env) which doesn't exists.

Isn't it handled already in custom.py?

That's certainly an option, and I'd recommend using that if you need to configure more advanced build options currently, it's just that it wouldn't be intuitive for the rest of the people I guess, and I feel like custom_modules is essential to prosperity of C++ development outside of Godot, for Godot.
VS still needs to define PlatformTarget for the target architecture, the rest can be configured outside of VS.
In any case, like I said, the current implementation is error-prone anyway, by now I've tested your implementation with and without custom_modules, both on SCons 3.1.1 and 4.0.1, so feel free to make the same changes on master first. Unless @akien-mga has some other ideas about this.

@Xrayez Oh, it wasn't clear. In "Isn't it handled already in custom.py?" what I meant was that module_mono_enabled=yes probably works with it and custom.py is properly handled even in VS. But yeah it would be convenient to pass it through the command line as well.

In any case, like I said, the current implementation is error-prone anyway, by now I've tested your implementation with and without custom_modules, both on SCons 3.1.1 and 4.0.1, so feel free to make the same changes on master first. Unless @akien-mga has some other ideas about this.

Sure.

Yeah I'm not completely sure about this, building scons module_mono_enabled=yes vsproj=yes would work but when you rebuild the solution in VS, module_mono_enabled=yes wouldn't be included in VS anymore because that's an option which has to be enabled explicitly every time, not to mention you then need to generate mono glue etc. VS generation could be improved so that it takes all SCons ARGUMENTS and pass that to the build prefix, but that's certainly out of scope for this.

Thanks!


Prism accepts double wildcard with no required fields in pattern match

Slightly related to  #2914
Prism parser the following code:
[1,2,3,4] => *a, *b

This results in a FindPatternNode with an empty list requireds.
MRI's parser rejects this syntax (I've tried this with Ruby 3.3.3 and a 3.4.0-dev of today):
ruby -e '[1,2,3,4] => *a, *b; p a; p b'
-e:1: syntax error, unexpected *
[1,2,3,4] => *a, *b; p a; p b
ruby: compile error (SyntaxError)

The behaviour is ambiguous: if we enable the prism parser in MRI, it turns out that the whole array is put into the right splat:
ruby --parser=prism -e '[1,2,3,4] => *a, *b; p a; p b'
ruby: warning: The compiler based on the Prism parser is currently experimental and compatibility with the compiler based on parse.y is not yet complete. Please report any issues you find on the `ruby/prism` issue tracker.
[]
[1, 2, 3, 4]

But the result a = [1, 2, 3, 4]; b = [] would have been just as valid. Other combinations like a = [1]; b = [2, 3, 4] would be valid too, but kind of random.
I would guess a FindPatternNode with no requireds should be a syntax error.

The same thing can happen with an ArrayPatternNode:
[1,2,3,4] => *a, *b, 4

This too gets rejected by MRI
ruby -e '[1,2,3,4] => *a, *b, 4'
-e:1: syntax error, unexpected *
[1,2,3,4] => *a, *b, 4
ruby: compile error (SyntaxError)

Switching the parser to Prism (ruby 3.4-dev, the default included prism 0.30) results in a segfault.

Thanks @herwinw! I'll get these fixed


Review C++ and Java APIs and consider matching them more closely

Some of the C# APIs are slightly different from how the C++/Java APIs look.
Have a look at https://github.com/edenhill/librdkafka/blob/master/src-cpp/rdkafkacpp.h and https://kafka.apache.org/090/javadoc/org/apache/kafka/clients/consumer/Consumer.html and try to match them a bit closer.

Updated the consumer and I'm happy with the current producer interface.


Research Xelah and Lexical

As a core developer, I want to know the abilities of Xelah and Lexical to know how to make an informed decision regarding a shared editor base.
Following up from #327 and the shared editor meeting, let's investigate and do some work in filling out the matrix
Also note here is a performance measurements sheet regarding Slate from the POC.
If it seems like there are gaps in Lexical and/or Xelah, we can follow up and look at ProseMirror.

@tjcouch-sil should this be closed as I understand decision is made to use Lexical?

edit: @tjcouch-sil is this investigation/decision still open?

Yep, we're still working on a few things and are having a meeting with Xelah people today! :)

Results in doc Editor Comparison Matrix.


Support for .lrc lyric files

Wondering if it's possible we could get support for .lrc files that would view lyrics to songs in the app

Hey, great suggestion! Does Jellyfin support importing .lrc files? And if they do, do they already support playing them back?

No, I don’t think so, I guess it would have to be supported there first? Another solution could be Fintunes downloading lyrics from something like Musixmatch.

Apparently support for this has been merged in https://github.com/jellyfin/jellyfin/pull/8381. It's got an endpoint that can request the lyrics files, so that should help immensely with integrating. Let me see what I can do.

Hi @leinelissen Any update on this one?

Hey @vijayvcm, this is not a priority at this moment. If anyone wants to take a look, I can give some pointers.

Hi @leinelissen I want to work on it. If there is no ongoing development.

Hi @akrv7591, there is none at the moment, so that would be awesome. You can start by getting the project running. My implementation hunches are the following:

You'll need to get your lyrics into Jellyfin to begin with
We'll need to pull in the lyrics somewhere. The regular /Items call does have a HasLyrics property, but I'm not sure it sends over the lyrics when they are available. See here: https://github.com/leinelissen/jellyfin-audio-player/blob/a97611c0ad267c798c45fe31282417a597cfc0e7/src/utility/JellyfinApi/track.ts#L75-L81 If they're not, we'll need to pull them in separately using a separate API. In any case, it would be good to merge the data under the AlbumTrack type, and store it under the music.tracks entity in Redux, potentially with a new action, see: https://github.com/leinelissen/jellyfin-audio-player/blob/a97611c0ad267c798c45fe31282417a597cfc0e7/src/store/music/types.ts#L48-L69
Once the data is in, you'll need to build an interface for displaying the lyrics. I think it would be nice to have a separate view for this in the Player modal, here: https://github.com/leinelissen/jellyfin-audio-player/blob/a97611c0ad267c798c45fe31282417a597cfc0e7/src/screens/modals/Player/index.tsx#L17-L25 Let's add a button next to the Sleep Timer displaying "Lyrics" if they are available. When clicking it, there would be a separate scrollable view containing all the lyrics, with the current lyric highlighted in orange and potentially some of the simple media controls at the bottom.
For styling, take a look at other components. If you re-use the <Text /> component (src/components/Typography.tsx) and the useDefaultStyles() hook, you'll get dark mode automatically.

Just try things out and let me know if you run into things. Don't bother getting things perfect the first time around, I might loop in with some design feedback. We can iterate until everything fits together.

Thank a lot for great detailed pointers. I will let you know when I finish prototype.

It seems /Items is not sending lyrics. I have searched Jellyfin api with no success

Right! From what I can see on my end, /Items is sending the HasLyrics property. So if it is set to true you can use the GetLyrics operation to retrieve them, and then merge it manually with the track data.

First prototype is ready youtube video showing how it works
I've used react-native-lyric library to render music lyrics.
For now when lyrics screen is mounted it will check if Track has HasLyrics property then fetches lyrics from jellyfin api endpoint(/Audio/:audioId/Lyrics).
It is just prototype now. I did not used state management yet. Should we store lyrics to cache?
@leinelissen Can you share some ideas

Right, congrats on getting so far along already! This is starting to shape up nicely. Couple remarks from my end:

Yes, the lyrics will need to be in the cache so we can display them with downloaded tracks. There are multiple calls where tracks are received, most notably retrieveAllTracks(), retrieveAlbumTracks() and retrievePlaylistTracks(). I think it would be cleanest to wrap these with a check for HasLyrics, and if they do have lyrics, retrieve them from the API and merge them with the AlbumTrack object under the Lyrics key. Then, the lyrics will automatically appear in the cache.
react-native-lyric looks like a decent start, but I'm a bit hesitant on adding poorly maintained dependencies. I think it's easiest to implement it ourselves, and that should give us some flexibility in terms of how the lyrics are displayed.
As for lyric display, I think it would be nice to left-align all the lyrics, and prepend them with the timestamp when they start. Even more, it could be helpful to add some kind of loading bar until a next lyric starts.
Lastly, I think it might be nice to show the lyrics on top of the album art when they are available, so we can hint the existence of them to the user.

Lastly, feel free to already create a pull request, so I can take a look at the code. I can help out with some of the design details if you get the brunt of the implementation down.

Injecting lyrics to AlbumTrack sounds great and it should be pretty easy
I have several issues react-native-lyric library myself. I was considering creating my own component.
As for design I am bad at it I am mainly backend developer so we are definitely going to fix components together lol.
After implementing custom lyrics renderer component I will make pull request with implementation above mentioned issues.

Should I make pull request as a whole Lyrics implementation or smaller commits?

Make a pull request for the whole thing, we can update it gradually.

I have made pull request


Add support for Google Play Services ProviderInstaller

This will upgrade the crypto stack if it's available.

Coverage increased (+0.01%) to 34.65% when pulling c729539884aa5249389f94c7bce42dd18e667794 on kruton:update-all into e69481c8273a7aff33394aa9ae11e7ee20f60131 on connectbot:master.


Only put when item doesn't already exist

Apologies for raising an issue again. I've been struggling for longer than I'd like to admit on this.
When doing a put I want to only succeed if an entry with the id doesn't already exist. Reading the dynamodb docs it's done using attribute_not_exists(id).
I'm a little stuck in determining how to formulate that condition using dynamodb-expressions.
Here's my attempt.
const release = new Release()
release.id = 'foo'
const condition = new FunctionExpression(
    'attribute_not_exists',
    new AttributePath([{type: 'AttributeName', name: 'id'}]),
)
await mapper.put(release, { condition })

This gives me a ValidationException: ExpressionAttributeValues must not be empty error but I can't for the life of me work out how to solve this (maybe I need new AttributeValue({ S: release.id }) somewhere?), only that I'm guessing it's quite simple!
Thanks again for the work on this lib.

CMIIW, it seems that based on the current version of dynamodb-data-mapper-js as the time of this writing (v0.4.0), to achieve the same functionality as the OP described, the syntax is slightly different.
mapper.put(release, {condition} should be instead mapper.put({item: release, condition: condition}) for it to be working as expected. From the source code at DataMapper.ts, it seems that on certain condition the options argument which is the way OP did to pass the condition is overriden with itemOrParameters which in this case equals to release in which does not contain any condition expression. Hence the solution for me to get it working is to pass item and condition together as the first parameter and leaving the second parameter blank. Is this intended?


Zipato rgb no getting colors

Anyone having problems with z-wave Zipato Bulb2 not getting colors? There is also missing color temperature switch. I can only switch on/off and dim. Also tried to factory reset the bulb and readd to z-wave in Hassio.

Please help

Hassio 0.81.6, with aeotec zwave stick on raspberry pi3b+. It won’t change color when I change it on color wheel! Other also have color temperatue switch-I don’t have it!

This is the bug/issue tracker for Home Assistant. Please use the forum for questions about installation, setup, configuration and usage.
If it's a bug, please re-open the issue with the issue template filled.

It is a issue!


Bonemeal on Aether grass creates overworld tallgrass

If you right click with bonemeal on aether grass in the aether, overworld tallgrass will be created instead of aether tallgrass

Resolved in current dev build, slated for 1.6.0


python310Packages.jupyterlab-lsp: 5.0.0 -> 5.0.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.jupyterlab-lsp is: Language Server Protocol integration for Jupyter(Lab)
meta.homepage for python310Packages.jupyterlab-lsp is: https://github.com/jupyter-lsp/jupyterlab-lsp
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 5.0.1 with grep in /nix/store/3k869ykx0fyngf14dbwlhrc6596lvwxi-python3.10-jupyterlab-lsp-5.0.1
found 5.0.1 in filename of file in /nix/store/3k869ykx0fyngf14dbwlhrc6596lvwxi-python3.10-jupyterlab-lsp-5.0.1

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
python310Packages.jupyterlab-lsp
python311Packages.jupyterlab-lsp

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/3k869ykx0fyngf14dbwlhrc6596lvwxi-python3.10-jupyterlab-lsp-5.0.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.jupyterlab-lsp https://github.com/r-ryantm/nixpkgs/archive/fbce8ca3f4360d9ec4184e57e3692dfdd015bc76.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/fbce8ca3f4360d9ec4184e57e3692dfdd015bc76#python310Packages.jupyterlab-lsp

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/3k869ykx0fyngf14dbwlhrc6596lvwxi-python3.10-jupyterlab-lsp-5.0.1
ls -la /nix/store/3k869ykx0fyngf14dbwlhrc6596lvwxi-python3.10-jupyterlab-lsp-5.0.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python310Packages.jupyterlab-lsp
python311Packages.jupyterlab-lsp

Maintainer pings

Merge conflict, please open a new PR.


Database general-purpose target attribute

Proposal for new db.target attribute
The type of targets available for a database operation is dependent on a database system. For example, the target of a SQL database operation may be a table, function, or stored procedure. Other database systems may refer to their targets as collections or indexes, etc.
Currently, there exists database system specific attributes for describing this. Examples include:

db.sql.table
db.redis.database_index
db.mongodb.collection

Introducing a general-purpose attribute would enable backends to provide a generic experience for faceting database operations by their target without requiring the backend have knowledge of all the database system specific attributes. It would also enable end users to more easily explore their data at a high-level without having to know the specific database systems in use.
I propose a new call-level attribute db.target  for describing the target of a database operation. The term "target" may not be the greatest, but I'm using it for lack of a better term for the moment. I considered db.operation.target but of course db.operation is already an attribute. Maybe db.operation could become db.operation.type thereby allowing db.operation.target.
Issues to consider

Similar to db.operation, the value of the db.target may not be readily available without parsing the value of db.statement, e.g. SELECT * FROM Users the db.operation is SELECT and the db.target is Users. The specification advises against parsing db.statement to derive other attributes. I consider this a limitation particularly once we have a database client operation metric (see #512). The db.statement attribute is fine for spans but because of its high-cardinality will not work for metrics. Therefore, having db.operation and db.target attributes on metrics will be useful.
There may be many targets for a single database operation, e.g. SELECT * FROM Users U JOIN Company C ON ....

Perhaps parsing db.statement can be an opt-in feature?
Various backends have prior art for addressing these issues. For example:

Elastic APM performs a limited parsing to extract the operation and outer-most table name from a SQL statement. This is described in their agent specifications.
New Relic APM agents perform a similar limited parsing and includes operation/target on metric data. New Relic's agent specs are unfortunately not publicly available, so I do not have a link to share. Though here is New Relic Java agent source code that performs the parsing.
New Relic agents offer a feature for providing a "hint" of the database target. The hint can be added as a comment prior to the database statement to simplify parsing, e.g., /* nrhint:Company */ SELECT * FROM Users U JOIN Company C ON ....

In the messaging space we have a similar scenario, there we settled on the more or less generic term destination, which covers both queues and topics.
We also ended up making messaging.destination a namespace. There's messaging.destination.name, and then there are further attributes to describe the destination. Maybe something similar makes sense if one decides to go with the db.target approach.

Perhaps parsing db.statement can be an opt-in feature?

FWIW the javaagent already does that. We have a query sanitization feature that replaces all the query variables with ?. It uses a performant tokenizer that scans the query looking for the interesting parts: https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/instrumentation-api-semconv/src/main/jflex/SqlSanitizer.jflex
Since we're already iterating over the query once, we figured we might as well try to extract the table name while we're at it.

Currently, there exists database system specific attributes for describing this. Examples include:

Cosmos DB also has a custom attribute for this called db.cosmosdb.container. Standardizing on a term for the semantic convention makes sense to me.

Perhaps parsing db.statement can be an opt-in feature?

Wouldn't the source library be responsible for populating the db.target, so each library would presumably only need to know how to parse its own db.statement (vs. the APM tool doing it)? Cosmos DB currently doesn't populate db.statement at all, and it doesn't apply to most of our operations.

This is one of our biggest barriers from moving from app insights to otel. App insights includes the whole statement, we use mainly stored procs though, and where we don't its parameterised query strings. It would cause cardinality issues if people are injecting values into the query. But I think people shouldn't be doing this anyway.
I don't see the value of the target begin the table alone. Think about what you need to debug a problem. If you put only a table then these two queries will be grouped together
SELECT * FROM users

SELECT name FROM users WHERE userid = @userid

They will have drastically different performance right? So why group them?
I think adding the whole query is the way to go imo.

It would cause cardinality issues if people are injecting values into the query. But I think people shouldn't be doing this anyway.

I believe even properly parameterized statements are too high-cardinality for metrics, e.g. it's not uncommon to have 100's of tables

If you don't have the query. I would question the use of the metric. What are you measuring?

Compiling the query syntax docs from a sampling of the different db systems we reference:

In postgres you select from a from_item
In [mysql](https://dev.mysql.com/doc/refman/8.0/en/select.html you select from table_references
In redis you search an index
In mongodb you query a collection
In DynamoDb you query a TableName
In Cassandra you query a table_name
In Elasticsearch you query against an index
In cosmosdb you query a container

db.target seems like a decent choice.
I also like db.collection, since it implies a collections of rows, columns, records, documents, entries in an index, etc.

You could also be calling a stored procedure too

If you don't have the query. I would question the use of the metric. What are you measuring?

One could measure all db.operation in a certain db.target - say  "Give me a count of all SELECT in target MYTABLE. Or Give me a count of all EXECin targetMY_SPROC`.
The statement in a metric makes not much sense, but makes total sense in spans.

Assuming I do cross-table query, would target be an array?
Also, it'd be great to have it as opt-in on metrics, but array attribute on metrics is questionable.
I.e.

the default experience (for SQL) is not super-helpful (no table name, no statement)
opt-in statement parsing can add db.target and db.operation, but it's still far from perfect, especially if there is more than one operation/target

An 'ideal' solution as I see it would be if users could optionally give queries a nick-name which would appear on spans and metrics.
We don't have a common way to achieve it, but if there was one and we could get this nick-name, we could put it into  something like db.query.name.
The propagation mechanism could look like this:
Context dbScope = Context.current();
try(Scope scope = dbScope.with(ContextKey.named("db.query.name"), "get user by id").makeCurrent()) {
    // SELECT name FROM users WHERE userid = @userid
}

It could be fragile in some languages/cases and probably needs a spec change to make it possible in all languages.
What we can do now is to define such attribute, add it to metrics as conditionally_required: when available (even though it never is). This way semconv can go stable, default experience would not be great, but we'll have means in the semconv to greate a good one.
We have similar cases (messaging.destination.template, http.route on client)

Another option  could be that:

assuming db.statement can be templated
user can opt-in into collecting a very limited number of db.statement (templated one) on metrics

We could potentially extend metrics advisory params api to configure an explicit allow-list for db.statement values.
this way cardinality would be fully in the user hands.

I think this is resolved by #870?


gradle: handle non-final res ids for AGP >8.0.0

The android gradle plugin for jadx gradle export can't be updated to newer versions > 8.0.0 due to several issues. One issue e.g. is a compiler error when android resource identifiers are uses as constant expressions.
Example:
Decompile an app with like this, export sources to gradle, update AGP version manually (> 8.0.0) and recompile it:
package` jadx.app.test;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
public @interface RequiresFinalResId {
    int value() default android.R.string.ok;
}

package jadx.app.test;

import android.app.Activity;

@RequiresFinalResId(value=R.string.app_name) // <-- error: constant expression required
public class MainActivity extends Activity {

    @RequiresFinalResId(value=R.string.app_name) // <-- error: constant expression required
    public class Test {
    }

    @RequiresFinalResId(value=R.string.app_name) // <-- error: constant expression required
    private int i;

    @RequiresFinalResId(value=R.string.app_name) // <-- error: constant expression required
    public int test(@RequiresFinalResId(value=R.string.app_name) int i) { // <-- error: constant expression required, error introduced with https://github.com/skylot/jadx/pull/2358
        @RequiresFinalResId(value=R.string.app_name) // <-- Jadx ignores runtime annotations with variable, no error until jadx can decompile this line
        int a = i + 1;
        this.i = i;
        switch (i) {
            case R.string.app_name: // <-- error: constant expression required
                break;
            case android.R.string.ok: // <-- ok, no error
                break;
        }
        return a;
    }
}

With the current gradle export using a AGP version < 8.0.0 this class could be recompiled without any issues.
The solution is to set a property android.nonFinalResIds=false in gradle.properties (see https://stackoverflow.com/questions/76430646/constant-expression-required-when-trying-to-create-a-switch-case-block).
I introduced a new pass to detect these cases. For the new visitor I introduced also a new package jadx.core.dex.visitors.gradle for visitors only required for gradle export. For a refactored visitor for https://github.com/skylot/jadx/pull/1927 I would use the same package.
Real world example:
See switch instruction in class de.sellfisch.android.wwr.a.k of https://apkpure.com/who-becomes-rich/de.sellfisch.android.wwr/download/1.15.1

@nitram84 looks good, thanks!

for visitors only required for gradle export

We can improve performance a little for jadx-cli by disabling such passes if Gradle export not requested.
Unfortunately, in jadx-gui this can't be done because we don't know if gradle export will be executed.
Also, if everything in jadx-gui is loaded from code cache new flag will be not set, we need somehow save such info with code cache. One possible way is to implement persistent jadx attributes - mark attributes (implement interface) and save along with code cache and restore on cache loading (I will create new issue for this).


Feature/68 mip to consider multiple energy states

Please take a look.
Namely,

When there are auxiliary variables and multiple target energy levels, generate_bqm(..) will result to an ImpossiblePenaltyModel error.  See unit test test_multiple_nonzero_feasible_states_with_aux(..). Oddly enough, the unit test would pass if the target energy levels were all the same value.
A bigger problem that probably involves the master branch: if you specify all possible spin configurations, the bqm will not generate. This is regardless of whether an auxiliary variable is used. See unit test test_all_possible_config(..)

Codecov Report

Merging #82 into master will increase coverage by 0.15%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master     #82      +/-   ##
=========================================
+ Coverage   95.94%   96.1%   +0.15%
=========================================
  Files          28      28
  Lines        1358    1359       +1
=========================================
+ Hits         1303    1306       +3
+ Misses         55      53       -2

Impacted Files
Coverage Δ

penaltymodel_mip/penaltymodel/mip/generation.py
94.91% <100%> (+1.75%)
:arrow_up:

Continue to review full report at Codecov.

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

Code is ready to be reviewed.


Modify model to support tasks

Changes

Add new Task class, and the corresponding property classes

Name
Description
Tags
isCompleted
Deadline (added validation, regex adapted from this resource)
~Phone~
~Email~
~Address~
~Remark~

Add Task exceptions
Add TaskList class
Update User Preferences
Modify model to support Task instead of Person

Latest check does not pass due to known incompatibility between the changed model and the commands. To be fixed in future PRs.


[SPARK-36321][K8S] Do not fail application in kubernetes if name is too long

What changes were proposed in this pull request?

Use short string as executor pod name prefix if app name is long.
Why are the changes needed?

If we have a long spark app name and start with k8s master, we will get the execption.
java.lang.IllegalArgumentException: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-89fe2f7ae71c3570' in spark.kubernetes.executor.podNamePrefix is invalid. must conform https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names and the value length <= 47
	at org.apache.spark.internal.config.TypedConfigBuilder.$anonfun$checkValue$1(ConfigBuilder.scala:108)
	at org.apache.spark.internal.config.TypedConfigBuilder.$anonfun$transform$1(ConfigBuilder.scala:101)
	at scala.Option.map(Option.scala:230)
	at org.apache.spark.internal.config.OptionalConfigEntry.readFrom(ConfigEntry.scala:239)
	at org.apache.spark.internal.config.OptionalConfigEntry.readFrom(ConfigEntry.scala:214)
	at org.apache.spark.SparkConf.get(SparkConf.scala:261)
	at org.apache.spark.deploy.k8s.KubernetesConf.get(KubernetesConf.scala:67)
	at org.apache.spark.deploy.k8s.KubernetesExecutorConf.<init>(KubernetesConf.scala:147)
	at org.apache.spark.deploy.k8s.KubernetesConf$.createExecutorConf(KubernetesConf.scala:231)
	at org.apache.spark.scheduler.cluster.k8s.ExecutorPodsAllocator.$anonfun$requestNewExecutors$2(ExecutorPodsAllocator.scala:367)

Use app name as the executor pod name is the Spark internal behavior and we should not make application failure.
Does this PR introduce any user-facing change?

yes
How was this patch tested?

the new log:
21/07/28 09:35:53 INFO SparkEnv: Registering OutputCommitCoordinator
21/07/28 09:35:54 INFO Utils: Successfully started service 'SparkUI' on port 41926.
21/07/28 09:35:54 INFO SparkUI: Bound SparkUI to <IP_ADDRESS>, and started at http://:41926
21/07/28 09:35:54 WARN KubernetesClusterManager: Use spark-c460617aeac0fda9 as the executor pod's name prefix due to spark.app.name is too long. Please set 'spark.kubernetes.executor.podNamePrefix' if you need a custom executor pod's name prefix.
21/07/28 09:35:54 INFO SparkKubernetesClientFactory: Auto-configuring K8S client using current context from users K8S config file
21/07/28 09:35:55 WARN Utils: spark.executor.instances less than spark.dynamicAllocation.minExecutors is invalid, ignoring its setting, please update your configs.

verify the config:

verify the executor pod name

Test build #141747 has started for PR 33550 at commit ecfc026.

Test build #141747 has finished for PR 33550 at commit ecfc026.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46260/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/141747/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46260/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46260/

cc @dongjoon-hyun @holdenk @vanzin @attilapiros  Do you have time to take a look ? thanks

This seems reasonable to me, but I'd like to see a test for it.

@holdenk @dongjoon-hyun
  test("Run SparkPi with a very long application name.", k8sTestTag) {
    sparkAppConf.set("spark.app.name", "long" * 40)
    runSparkPiAndVerifyCompletion()
  }

I just found the exists test but not covered this issue since SparkPi changed the app name in code.
 val spark = SparkSession
      .builder
      .appName("Spark Pi")
      .getOrCreate()

I make a new classs that SparkPiWithoutAppName in example for k8s test. Please let me if you have other idea.

Test build #141802 has started for PR 33550 at commit e47cd50.

Test build #141802 has finished for PR 33550 at commit e47cd50.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46315/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/141802/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46315/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46315/

Test build #141891 has started for PR 33550 at commit 36e002b.

Test build #141891 has finished for PR 33550 at commit 36e002b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46400/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/141891/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46400/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46400/

Test build #141904 has started for PR 33550 at commit 9c304c3.

Test build #141904 has finished for PR 33550 at commit 9c304c3.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/141904/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46414/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46414/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46414/

Test build #141954 has started for PR 33550 at commit e6968ca.

Test build #141954 has finished for PR 33550 at commit e6968ca.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46465/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/141954/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46465/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46465/

Retest this please.

Test build #142305 has started for PR 33550 at commit e6968ca.

Test build #142305 has finished for PR 33550 at commit e6968ca.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/142305/

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46812/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46812/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46814/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46814/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46814/

Test build #142425 has started for PR 33550 at commit fa9fad5.

thank you @dongjoon-hyun @attilapiros @holdenk for review, addressed your comment. I covert this PR to draft to see if any test failed.

Test build #142425 has finished for PR 33550 at commit fa9fad5.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/142425/

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46931/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46931/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46932/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46932/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46932/

Test build #142431 has started for PR 33550 at commit b85c8f6.

Test build #142431 has finished for PR 33550 at commit b85c8f6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/142431/

Test build #142432 has started for PR 33550 at commit f44b7c6.

Test build #142432 has finished for PR 33550 at commit f44b7c6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/142432/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46938/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46938/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46938/

Test build #142433 has started for PR 33550 at commit 5beb518.

Test build #142433 has finished for PR 33550 at commit 5beb518.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/142433/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46940/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46940/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46940/

retest this please

Test build #142436 has started for PR 33550 at commit 5beb518.

Test build #142436 has finished for PR 33550 at commit 5beb518.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/142436/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46943/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46943/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46943/


Period is getting removed during tokenization?

https://api.michigan.com/v1/article/75995706/
Goaltender Petr Mrazek turned aside 15 Ovechkin shots the last time the teams played (Nov. 10), a 1-0 Red Wings victory.\nThere’s not much of a plan or strategy, said Mrazek, other than being ready for the challenge.
turns into:
Goaltender Petr Mrazek turned aside 15 Ovechkin shots the last time the teams played (Nov. 10), a 1-0 Red Wings victory There’s not much of a plan or strategy, said Mrazek, other than being ready for the challenge.

https://www.youtube.com/watch?v=UtVjRG7PB_4&feature=youtu.be&t=9s

Haven't seen this since, can't replicate in summarizer, going to close issue for now.


Chart does not render in IE11

It works fine in all browsers except for IE.  There are no errors, the page itself loads and ajax calls are made, but the line chart simply does not render.  I am using version 2.6.2

I've added the necessary polyfill to get passed the object.assign error, so the page is showing no errors.  The chart simply isn't showing up in IE.

Sorry I don't have IE available to me. Does the example site work for you? http://jerairrest.github.io/react-chartjs-2/

The examples do work actually.  I did some more digging, and I narrowed it down to one small thing.
It appears as if the problem IE has is with the time scale code below in bold (Chrome, Firefox, have no issues with it):
<Line
data={this.props.chartData}
options={{
scales: {
xAxes: [{
margin: 0,
padding: 0,
type: 'time',
unit: 'day',
unitStepSize: 1,
ticks:{
bounds: 'label',
beginAtZero:true,
minRotation: 45
},
time: {
displayFormats: {
'day': 'MMM DD'
}}
}]
},
responsive: true,
hover: {
mode: 'index',
intersect: false
},
tooltips: {
position: 'average',
caretSize: 20,
mode: 'index',
intersect: false,
mode: 'label',
callbacks: {
label: function(tooltipItem, data) {
var corporation = data.datasets[tooltipItem.datasetIndex].label;
var valor = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
                // Loop through all datasets to get the actual total of the index
                var total = 0;
                  // if (data.datasets[i].label != "Limit" && !data.datasets[i]._meta[0].hidden)
                for (var i = 0; i < data.datasets.length; i++)
                    total += parseInt(data.datasets[i].data[tooltipItem.index].y);

                // If it is not the last dataset, you display it as you usually do
                if (tooltipItem.datasetIndex != data.datasets.length - 1) {
                    return corporation + " : " + valor.y;
                } else { // .. else, you display the dataset and the total, using an array
                    return [corporation + " : " + valor.y, "Total : " + total];
                }
            }
        }
      },
      title:{
        display:this.props.displayTitle,
        text:this.props.selectedGroup + ' Global Concurrent Users ' + this.props.timePeriod,
        fontSize:25
      ,
      legend:{
        display:this.props.displayLegend,
        position:this.props.legendPosition
      }
    }}}
  />

Closing for now. Please supply a sandbox or code example with the latest versions of both libraries. If the problem persists, feel free to open a new issue.


Async credential classes missing from azure.identity.aio

azure.identity.aio is missing many Credential classes that exist in the azure.identity namespace.
https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/identity/azure-identity/azure/identity/aio/__init__.py#L7-L20
compared with
https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/identity/azure-identity/azure/identity/__init__.py#L11-L27
missing:

AzureApplicationCredential
DeviceCodeCredential
InteractiveBrowserCredential
UsernamePasswordCredential

The implementations don't exist at all. I was trying to implement an asyncio application using InteractiveBrowser and DeviceCodeCredential, only to find they don't exist

Thanks for opening this issue! An async AzureApplicationCredential does exist but wasn't importable from azure.identity.aio. #19961 fixes that.
The other credentials you list don't exist because their implementation relies on MSAL Python, which doesn't yet have an async API (AzureAD/microsoft-authentication-library-for-python#88). Our #6354 tracks the SDK work needed to use an async MSAL once it exists. One workaround in the meantime is to wrap a blocking credential, for example:
class _AsyncDeviceCodeCredential(DeviceCodeCredential):
    async def get_token(self, *scopes, **kwargs):
        return super().get_token(*scopes, **kwargs)

I had a different work-around for this problem but I see there is a tidier one above; it is useful because the pandas.read_parquet()  uses packages ffspec and adlfs which only accept async credentials.
from azure.identity import InteractiveBrowserCredential
import pandas
import functools
import asyncio

# define an async wrapper
def run_in_executor(f):
    @functools.wraps(f)
    def inner(*args, **kwargs):
        loop = asyncio.get_running_loop()
        return loop.run_in_executor(None, lambda: f(*args, **kwargs))
    return inner

# apply the wrapper to the get_token function of the credential
interactive_browser_credential_async = InteractiveBrowserCredential()
interactive_browser_credential_async.get_token = run_in_executor(interactive_browser_credential_async.get_token)

# use the wrapped credential in async context:
df = pandas.read_parquet(
<EMAIL_ADDRESS>    storage_options={
        "credential":interactive_browser_credential_async,
    }
)

Also works for DeviceCodeCredential. Have not tested the others. Very handy for testing and debugging until scripts are deployed to environments that have better options.

Over the last 2 years several workaround have been reported and implemented, e.g., https://github.com/Azure/azure-sdk-for-python/issues/19943#issuecomment-1401548464 and https://github.com/microsoft/qdk-python/pull/162/. However none of these provide a smooth integration with AzureDefaultCredential.
In the absence of an async MSAL, one could just provide a class that uses the sync version and runs the methods in an executor like @MrNickArcher posted above.
Most users probably don't care about where the asynchronous-ness comes from. As long as it provides any async API, it will work with packages that depend on azure-identity's async auth implementations (such as adlfs, ffspec).
I see that @xiangyan99 has been assigned to this issue. Is solving this any priority at all?

This could be one of the answers. :)
https://github.com/Azure/azure-sdk-for-python/pull/30381

@xiangyan99, thanks for your quick reply.
If that works, great!
Otherwise one could do something like:
from azure.identity import InteractiveBrowserCredential
from azure.core.credentials import AccessToken
import asyncio
import functools

def run_in_executor(f):
    @functools.wraps(f)
    def inner(*args, **kwargs):
        loop = asyncio.get_running_loop()
        return loop.run_in_executor(None, functools.partial(f, *args, **kwargs))
    return inner

class AsyncInteractiveBrowserCredential(InteractiveBrowserCredential):
    async def get_token(self, *scopes: str, **kwargs) -> AccessToken:
        sync_get_token = run_in_executor(super().get_token)
        return await sync_get_token(*scopes, **kwargs)

Sorry I forgot. In the meanwhile, you can also use this one:
https://gist.github.com/xiangyan99/79004beae47179f8b17bf5bc61b3fc62
(This just offers another option. Your sample works too.)

@xiangyan99 anything we should do for the June release?

Let us have a discussion on https://github.com/Azure/azure-sdk-for-python/pull/30381 and if this one looks good, we can add it into June release.

Upon having a second look, I do not see how the PR you linked (#30381) solves this problem.
This issue is about not having async credentials implemented for all credential types (e.g., InteractiveBrowserCredential). The PR you linked allows async credentials in sync contexts IIUC. Am I missing some key point perhaps? 😅

w/ this PR, you can use the sync credential in the place that needs async type.
Does this work?


Update scalac-scapegoat-plugin to 1.4.14

Updates com.sksamuel.scapegoat:scalac-scapegoat-plugin from 1.4.13 to 1.4.14.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.sksamuel.scapegoat", artifactId = "scalac-scapegoat-plugin" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequest = { frequency = "@monthly" },
  dependency = { groupId = "com.sksamuel.scapegoat", artifactId = "scalac-scapegoat-plugin" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #548.


Keras: Regularizer not saved for Lambda layers

System information

Have I written custom code: Yes
OS Platform and Distribution: Ubuntu 16.04.6 LTS
TensorFlow installed from: binary, using pip
TensorFlow version: v2.1.0-rc2-17-ge5bf8de 2.1.0
Python version: 3.6.6
CUDA version: 10.2

Describe the current behavior
Using the keras API, I can add regularizers to all layers. However, if I add a regularizer to a Lambda layer, after saving and reloading, the regularizer is not existent anymore...
Describe the expected behavior
I would expect that all regularizers exist after saving and reloading.
Standalone code to reproduce the issue
Code example:
from tensorflow.keras.layers import Input, Dense, Lambda
from tensorflow.keras import regularizers
from tensorflow.keras.models import Model, load_model

layer_input = Input(shape=(None, 10), name='input')
layer_dense = Dense(12, activity_regularizer=regularizers.l2(), name='dense')(layer_input)
layer_lambda = Lambda(lambda batch: batch, activity_regularizer=regularizers.l2(), name='lambda')(layer_dense)

model = Model(inputs=layer_input, outputs=layer_lambda)
model.compile(loss='mean_squared_error')

print('* Original model *')
print('regularizer losses', model.losses)
print('regularizer dense', model.get_layer('dense').activity_regularizer)
print('regularizer lambda', model.get_layer('lambda').activity_regularizer)
print()

model.save('test.h5')
model_reloaded = load_model('test.h5')

print('* Reloaded model *')
print('regularizer losses', model_reloaded.losses)
print('regularizer dense', model_reloaded.get_layer('dense').activity_regularizer)
print('regularizer lambda', model_reloaded.get_layer('lambda').activity_regularizer)

Output
* Original model *
regularizer losses [<tf.Tensor 'dense/ActivityRegularizer/truediv:0' shape=() dtype=float32>, <tf.Tensor 'lambda/ActivityRegularizer/truediv:0' shape=() dtype=float32>]
regularizer dense <tensorflow.python.keras.regularizers.L1L2 object at 0x7f2b61e3c320>
regularizer lambda <tensorflow.python.keras.regularizers.L1L2 object at 0x7f2aeae19048>

* Reloaded model *
regularizer losses [<tf.Tensor 'dense_1/ActivityRegularizer/truediv:0' shape=() dtype=float32>]
regularizer dense <tensorflow.python.keras.regularizers.L1L2 object at 0x7f2aeaf85470>
regularizer lambda None

I tried in colab with TF version 2.1, 2.2, nightly versions and was able to reproduce the issue.Please, find the gist here.Thanks!

@fzalkow have you tried saving to a TF saved model format, remove the .h5 extension for save and load and the regularizer is available on loading.

If I remove the .h5 extension, then the regularizer is available in the reloaded model. Indeed, it seems to be an issue with the .h5 save format.

I was able to replicate issue in tf2.6 and tf-nightly(2.8.0-dev20211012). Please find the gist here.Thanks!

Hi There,
This is a stale issue. As you are using an older version of tensorflow, we are checking to see if you still need help on this issue. Please test the issue with the latest TensorFlow (TF2.7 and tf-nightly). If the issue still persists with the newer versions of TF, please feel free to open it in keras-team/keras repository by providing details about the issue and a standalone code to reproduce the issue. Thanks!
Please note that Keras development has moved to a separate Keras-team/keras repository to focus entirely on only Keras. Thanks!


Fix is defined bug on label

What is the context of this PR?
Another bug from the "is defined" PR
How to review

Check code
Tests pass
Label component looks as expected

 "Is defined" bugs


Full update but not supported

I get a "not supported" message from RDPConf, tried to update and message of "everything updated" message, then suggestion of sending the "termserv.dll" to developper for support, so, how can I send it? Zipped attached to this?
System is Windows 10 Pro 22H2 with lastest updates.
Thanks for your help

No termsrv.dll file uploaded, no screenshot of rdpconf uploaded

RDPWrap-v1.8.2.zip
Rty running update.bat

.dll files are not in the set of authorized files to upload, so, thus my question about how to do it, maybe zipped? I will do in some minutes both, .dll and screen capture of rdpconf.
De: bobo @.***
Enviado el: martes, 9 de abril de 2024 13:58
Para: stascorp/rdpwrap
CC: fjecp; Author
Asunto: Re: [stascorp/rdpwrap] Full update but not supported (Issue #2547)
No termsrv.dll file uploaded, no screenshot of rdpconf uploaded
—
Reply to this email directly, view it on GitHub https://github.com/stascorp/rdpwrap/issues/2547#issuecomment-2044953400 , or unsubscribe https://github.com/notifications/unsubscribe-auth/BHVV7FFTY4GFR553YKZGWWLY4PJVDAVCNFSM6AAAAABF47UG4OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBUHE2TGNBQGA .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/BHVV7FHSU4XKEBHNWUMYW23Y4PJVDA5CNFSM6AAAAABF47UG4OWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTZ4OBTQ.gif Message ID: @.***>

In the website my RDPWrap 1.6.2 was the most recent versión, I will try with this one before to send the .dll of the screen capture.
Thanks
De: bobo @.***
Enviado el: martes, 9 de abril de 2024 13:59
Para: stascorp/rdpwrap
CC: fjecp; Author
Asunto: Re: [stascorp/rdpwrap] Full update but not supported (Issue #2547)
RDPWrap-v1.8.2.zip https://github.com/stascorp/rdpwrap/files/14918207/RDPWrap-v1.8.2.zip
Rty running update.bat
—
Reply to this email directly, view it on GitHub https://github.com/stascorp/rdpwrap/issues/2547#issuecomment-2044957798 , or unsubscribe https://github.com/notifications/unsubscribe-auth/BHVV7FAW6DQOMA7QHHSZRXDY4PJY5AVCNFSM6AAAAABF47UG4OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBUHE2TONZZHA .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/BHVV7FHUD3KIF72YLOVGUVTY4PJY5A5CNFSM6AAAAABF47UG4OWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTZ4OKGM.gif Message ID: @.***>

Hi, I uninstalled 1.6.2 that I had and installed 1.8.2 you sent me... Now everything works as expected. Thanks so much for your help.
My question.. Why 1.8.2 is not found in the releases page? (1.6.2 is there as the latest)
Regards.
Javier

Hi, I uninstalled 1.6.2 that I had and installed 1.8.2 you sent me... Now everything works as expected. Thanks so much for your help.
My question.. Why 1.8.2 is not found in the releases page? (1.6.2 is there as the latest)
Regards.
Javier

This is not the official version.
https://github.com/loyejaotdiqr47123/rdpwrap/releases

No termsrv.dll file uploaded

I didn't upload the termsrv.dll first time because .dll was not a file allowed to upload and before I could try as zipped, I tested the 1.8.2 update and this solved the problem, so, this issue can be closed as solved.
Thanks so much

@fjecp

I didn't upload the termsrv.dll

You can pack this to ZIP archive.

But, my question, is it really needed once the problem has been solved with 1.8.2? If it is, I will upload it, of course.

If question solved, then not needed.

RDPWrap-v1.8.2.zip Try running update.bat

how did u find there link?

@TungAngbro

RDPWrap-v1.8.2.zip Try running update.bat

how did u find there link?

Latest official version is 1.6.2 !!!
The 1.8.2 dos NOT exists officially.


Update libbpf to v1.0.0

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Update libbpf to v1.0.0.
Which issue(s) this PR fixes:
None
Does this PR have test?
None
Special notes for your reviewer:
None
Does this PR introduce a user-facing change?
Update libbpf to v1.0.0.

Codecov Report

Merging #1139 (fb4392a) into main (38922fe) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1139   +/-   ##
=======================================
  Coverage   50.70%   50.70%
=======================================
  Files          42       42
  Lines        4753     4753
=======================================
  Hits         2410     2410
  Misses       2266     2266
  Partials       77       77


Change the type of Task.m_action to Delegate

This makes the code more strongly typed and avoids some casts.
This is a port of https://github.com/dotnet/coreclr/pull/8401.
I wasn't able to test this change locally due to https://github.com/dotnet/corert/issues/2286.

Hi @svick, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

Thank you!


Tooltip stories no longer appear by default and are not clickable

Describe the bug
Tooltip stories no longer appear by default and are not clickable
To Reproduce
Steps to reproduce the behavior:

Go to TooltipLinklist, TooltipMessage, and TooltipNote
These should appear open by default because of the startOpen prop.

Expected behavior
The tooltips should appear "open", i.e., shown, because of the startOpen prop which is passed through WithTooltip.
Screenshots
This is what the stories currently look like.

cc @tmeasday wrote the first version of WithTooltip and @ndelangen refactored it for SB 5.0

Fixed by https://github.com/storybooks/storybook/pull/5610

Boo-yah!! I just released https://github.com/storybooks/storybook/releases/tag/v5.0.0-rc.2 containing PR #5610 that references this issue. Upgrade today to try it out!
Because it's a pre-release you can find it on the @next NPM tag.


Do not depend on Mono executables being in the PATH, but use prefix a…

…nd system Mono paths to resolve them. Fixes El Capitan build issues.
The symlinks for the system Mono executables are installed in /usr/local/bin starting from OS X El Capitan, and we may no longer rely on them being part of the user's PATH. These changes prioritize using pkg-config to resolve their path, and look for pkg-config itself first in the F# install prefix, and then at the system Mono location. PATH is last resort.
This also properly isolates parallel installations from system Mono.

Thanks!


Fix hash

@robputt Looks like the changes yesterday broke snapshots.
> $ curl -s https://helium-snapshots-stage.nebra.com/latest-snap.json | jq
{
  "height": 1091561,
  "hash": ""
}

> $ curl -s https://helium-snapshots.nebra.com/latest-snap.json | jq
{
  "height": 1094142,
  "hash": ""
}

See https://github.com/NebraLtd/hm-block-tracker/pull/49


No unified function to check the inputs

Right now, almost each algorithm has its own function to prepare/preprocess/check its inputs (verify that there is no duplicate, etc).
Having a single such function which can deal with all inputs and is used by all algorithms would make the code more readable and modular.

Maybe it's also a good chance for us to think about how to handle batches of input or streaming data in case of larger dataset. Probably need to categorize the algorithms to see if it's doable algorithmically. Then we can do something similar to the concept of "input_fn" in TensorFlow Estimators.

@terrytangyuan yes, that's one of the next steps indeed. Nice, I didn't know about input_fn, it looks interesting I'll check it out

Addressed by #139


[Macros] Mangle attached macros for accessors

Attached macro mangles for accessors were using a fallback case that
triggers an assertion in +Asserts builds, and conflicting manglings is
non-Asserts builds. Provide a custom mangling for these cases that's
embedded in the identifier.
This is a narrow hack to eliminate an assertion. We are considering a
different approach for the long term that uses entity manglings with a
placeholder type, which will be more flexible long-term.

@swift-ci please smoke test

@swift-ci please smoke test macOS

https://github.com/apple/swift-driver/pull/1348
@swift-ci please smoke test macOS

Breadcrumbs, see followup: https://github.com/apple/swift/pull/70435.


Can't Ignore More Than One Test

Windows 10, version 3.0.0a5
Can't ignore multiple tests at one time.
For example
[env:mybaseenv]
test_ignore = test_a, test_b, test_c
doesn't ignore any tests
and
[env:mybaseenv]
test_ignore = test_a
test_ignore = test_b
only ignore test_b
It would be great to just run a single test rather than the whole test suite.
Thanks in advance!

See docs http://docs.platformio.org/en/latest/projectconf.html#test-ignore
Should I change separator to , to avoid the same issue?

Ahh, I thought I checked the docs but I must've skimmed. My Bad! :)
I think a comma separator is a bit more intuitive, and it's consistent with
lib_extra_dirs = path/to/lib1, path/to/lib2
Cheers!

Thanks, I'll change :)

I see that you use pio test. Could you share some feedback? What we should improve? Thanks.

Sure thing. I'm a pretty big fan of pio test!
One of the things that could be improved is how much text is dumped into the console. If you run a bunch of tests the console fills up pretty quickly and you can't scroll back up to see which test failed.
At the moment I'm putting all the console data in a .txt file so I can get everything using pio test -e myenv -v > test_results.txt which works ok cause i can ctrl+f failed and find what failed.
Maybe a default test logging feature would be handy? What do you think?
Another thing is that running an entire test suite takes a pretty long time. I'm using the nodemcu board so it might just be a slow platform but getting the whole process down to a few seconds would be great.
Also, I am having trouble getting native tests running. (see #752 ) Maybe a bit more documentation on getting native tests running would be helpful.
Other than that, it works great! I've been using Unity for the test framework but will be looking at getting Ceedling going probs next week-ish so I'll post any more feedback either in the community forum.
Love your work! Anything I can do to help out with PIO? Would love to contribute, where can I get started?
Cheers :)

Thanks! 👍
Please test new PlatformIO 3.0.0a6. Is it better?

That is much better!
For anyone curious
pio test will just print building, uploading, testing and test results
pio test -v will print everything to the console
Thanks!


Error with multiple routes files: prependMiddleware() can not be used before action()

What steps will reproduce the problem?
return [
    RouteCollectionInterface::class => static function (ApplicationParameters $appParams, RouteCollectorInterface $collector) use ($config) {
        $collector
            ->middleware(CsrfMiddleware::class)
            ->middleware(FormatDataResponse::class)
            ->addGroup(
                Group::create()->routes(...$config->get("routes-{$appParams->site}")),
            )
            ->addGroup(
                Group::create()->routes(...$config->get("routes-{$appParams->siteReversed}"))
            );

        return new RouteCollection($collector);
    },
];

I am not using prependMiddleware in my config and/or config anywhere. For testing purposes I have commented out every middleware in my routes as well.
What is the expected result?
What do you get instead?
prependMiddleware() can not be used before action().
Additional info

Q
A

Version
dev

PHP version
8.0.3

Operating system
Debian 10

Any route must contains action() method.

Any route must contains action() method.

Why?
        Route::get('orig')
            ->middleware(fn (Redirect $redirect) => $redirect->toRoute('new')),

What would be the action here?

Any route must contains action() method.

Why?
        Route::get('orig')
            ->middleware(fn (Redirect $redirect) => $redirect->toRoute('new')),

What would be the action here?

Redirect is the action.

Redirect is the action.

No, that is middleware and this rule failes with above very abstract error unless an empty action is added.

Also, this should be completely valid for its purpose:
    // Assets for urlGenerator, requests will not be handled by Yii
    Route::get('/images/{file}')
        ->host($appParams->assetDomain)
        ->name('img'),

Also, this should be completely valid for its purpose:
    // Assets for urlGenerator, requests will not be handled by Yii
    Route::get('/images/{file}')
        ->host($appParams->assetDomain)
        ->name('img'),

I don't think this is the right way to use routes.

@samdark Would that be a valid use case?

@samdark Would that be a valid use case?

Anyway you can solve the problem by creating a separate group for those routes.

I don't think I understand you there. How would that solve the issue?

I don't think I understand you there. How would that solve the issue?

RouteCollectionInterface::class => static function (RouteCollectorInterface $collector) use ($config) {
        $collector
            ->middleware(CsrfMiddleware::class)
            ->middleware(FormatDataResponse::class)
            ->addGroup(
                Group::create()
                    ->routes(...$config->get('routes'))
            );
        $vitrualRoutesForUrlGeneratorOnly = Group::create()
            ->routes(
                Route::get('/images/{file}')
                    ->host($appParams->assetDomain)
                    ->name('img'),
            );
        $root = Group::create()->routes($collector, $vitrualRoutesForUrlGeneratorOnly);

        return new RouteCollection($root);
    },

Of course you can get virtual routes form a separate file, this is just an example.

Not very intuitive, but I can confirm it works 👍🏻

Not very intuitive, but I can confirm it works 👍🏻

I think we will make static() method for those routes.


Stop processing http request for LE well-known acme challenge path

Fixes https://github.com/appscode/voyager/issues/1097

Codecov Report

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

@@          Coverage Diff           @@
##           master   #1121   +/-   ##
======================================
  Coverage    3.64%   3.64%
======================================
  Files         106     106
  Lines       21010   21010
======================================
  Hits          765     765
  Misses      20114   20114
  Partials      131     131

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 9673f43...2423656. Read the comment docs.


fix: use FindPython's suffix computation if possible

This should speed up the configuration by sometimes reducing the calls to Python of CMake is new enough.
Testing in https://github.com/wjakob/nanobind_example/pull/27, but the cross compile situation requires further work.

Looks all fine to me, let me know when it's ready to merge.

I think it's a nice little cleanup, though it doesn't fix cross compiles - that's a problem I'll have to continue to work on in scikit-build-core.

Can I convert to 'ready for review' and merge? The failing test is a fluke caused by pytest.

Yes, sorry, thought I converted it.


Use Caffeine CacheWriter and CacheLoader mechanism to manage interact…

…ions with off heap cache
Implemented suggestions from @ben-manes. Odd that I'm not seeing the log messages on eviction and promotion, but I think its working because it's much faster than the lru and tinylfu caches in the RandomSeekTest.testBlockCacheRandomSeekSmallOnHeap test (which has a 4MB on heap cache, 10GB off-heap cache). I tested with command:
mvn clean test -Dtest=RandomSeekTest#testBlockCacheRandomSeekSmallOnHeap -DpreScan=true -Drows=1000000 -Diterations=500
@keith-turner - I also made the change such that if off-heap size is not specified an error is thrown vs not enabling the off heap cache.

@dlmarion  I made some conflicting changes.  I'll merge this and resolve conflicts.


HttpResponse class missing WriteAsync() method ...

Issue description
Document Page:
https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.httpresponse?view=aspnetcore-3.0
Is the  WriteAsync( String ) method missing from the docs?   Other WriteAsync() methods with different signatures are present, but WriteAsync( String ) is not shown in the Methods list.
Software versions
Check the .NET target framework(s) being used, and include the version number(s).

.NET Core 3.0

The API docs are generated directly from the API itself.
https://github.com/aspnet/AspNetCore/blob/release/3.0/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs
Questions about what's in the API must go to the product unit.


Support repeated and map fields in field_mask

Fixes #1

changes could not support repeated fields

This PR works correctly for my project which has repeated field.

What result did you get? The changes just want skip the case, how does it support repeated fields?

The template is also called recursively from message.tpl#L43. As https://pkg.go.dev/github.com/lyft/protoc-gen-star#FieldType states $f.Type.Embed returns nil for maps and repeated fields.

I know that, what I really mean is that you fixed it rather than support it. Acutally, in my thought the repeated field should be treated as embed field to generate.