Procfile respects 12 factor port and IP

I'm using c9.io for development and it configures the port and ip through environment variables. Since this seems to play nice with 12-factor principles, it seemed like a change that would be helpful for other situations too.

Fixed :+1: defaults provided

This looks right to me.  @dsander, do you foresee any issues with Docker?

I think it should work, the sed call will probably not do anything after merging and PORT is already exported in the Dockerfile

What's the easiest way for @TildeWill to test this against Docker?

The git repository and branch needs to be changed to git clone --depth 1 https://github.com/TildeWill/huginn -b twelve_factor /app here
Running docker build --rm=false -t huginn-test . && docker run -it -p 3000:3000 huginn-test in the docker subdirectory should then build and run the image.

I'm brand new to Docker and having trouble running the build command. The output is below, my challenge is finding out where /app/vendor... lives since it's not in my local file system, I assume it's in an image file somewhere, is that right?
Installing collected packages: supervisor-stdout
  Running setup.py install for supervisor-stdout

    Installing supervisor_stdout script to /usr/local/bin
Successfully installed supervisor-stdout
Cleaning up...
 ---> 2b61e7c602b8
Step 6 : ADD scripts/setup /scripts/setup
 ---> 7956a1bdf393
Step 7 : RUN chmod 755 /scripts/setup
 ---> Running in 76ce9cbcb2fe
 ---> 38ea5c5c39bc
Step 8 : RUN /scripts/setup
 ---> Running in 7987a62e5376
Cloning into '/app'...
Adding group `huginn' (GID 1000) ...
Done.
Adding user `huginn' ...
Adding new user `huginn' (1000) with group `huginn' ...
Not creating home directory `/app'.
Adding user `huginn' to group `sudo' ...
Adding user huginn to group sudo
Done.
passwd: password expiry information changed.
Fetching gem metadata from https://rubygems.org/.......
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Fetching https://github.com/cantino/delayed_job_active_record
Fetching git://github.com/wunderlist/omniauth-wunderlist.git
Fetching git://github.com/knu/tumblr_client.git
fatal: Could not parse object 'd6f1f64a7cba381345c588e28ebcff28048c3a6c'.
Git error: command `git reset --hard d6f1f64a7cba381345c588e28ebcff28048c3a6c`
in directory
/app/vendor/bundle/ruby/2.1.0/bundler/gems/tumblr_client-d6f1f64a7cba has
failed.
If this error persists you could try removing the cache directory
'/app/vendor/bundle/ruby/2.1.0/cache/bundler/git/tumblr_client-2912a1de785e17a92d41b26097499e890a41ec4a'
The command '/bin/sh -c /scripts/setup' returned a non-zero code: 11

@TildeWill I think that is due to this commit 68046b74d7a15c590ef15e520b6e10f69b7e00e9, rebasing your branch to include the latest master should fix the issue.

Thanks @dsander! I've got my environment and branches sorted out finally and everything looks good - server starts up just fine on the specified port (3000).

Awesome, thanks for checking!

By the way, this doesn't totally work.  See #1291.


bug fix.

is there a little bug. when using 'password' grant type.
return callback(Errors.unsupportedGrantType(context.state));
callback function running two times, because 151 line has no returns.

Thanks for the fix, this is now published as 2.3.1

my pleasure 👍


Docs suggestion: Instructions for building on Windows (e.g. via github actions)

I'm currently fighting through the best way to get libmysql available on GH actions to test with Windows, and I can't be the only one.
I've attempted installng via vcpkg which seems to be more or less what the CI here does (this is updated for powershell as gh actions now use)
$VCPKG_ROOT = "c:\projects\vcpkg"
git clone https://github.com/Microsoft/vcpkg --depth 1 $VCPKG_ROOT
& "${VCPKG_ROOT}\bootstrap-vcpkg.bat"
& "${VCPKG_ROOT}\vcpkg.exe" install libmysql

But hit the issue libmysql[core]:x86-windows is only supported on '!(windows & x86) & !uwp'
If I figure out a way around this, I will update this issue and create a PR.
Any suggestions are appreciated until then

Ok, turns out gh actions already has vcpkg installed for windows.  This is painfully slow so far
 echo "vcpkg root: ${VCPKG_ROOT}"
 echo "vcpkg install: ${VCPKG_INSTALLATION_ROOT}"
& c:\vcpkg\vcpkg.exe install libmysql:x64-windows

It turns out that the GH image actually ships with MySQL but the linker doesn't know where to look. Setting the following environment variable works:
env:
  MYSQLCLIENT_LIB_DIR: C:\mysql\lib

Maybe it would be good to add that to the search path?
For any other windows-based build where mysql isn't preinstalled, the required libary can be downloaded from a zip:
curl https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-winx64.zip -o mysql-installer.zip

Once extracted, the DLLs/LIBs are in mysql-8.0.31-winx64\lib, and that can be set to the environment variable

See here for diesels CI setup.
Otherwise I'm happy to merge PR's adding documentation and/or a CI configuration to this repo as well.

Thanks for the link. I learned that the windows images actually have mysql installed already, so the choco install isn't even needed https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md#database-tools
I will create a PR at some point to add some hints about this

Github must have changed something. On windows-latest C:\mysql\lib doesn't exist, so the location needs to be changed:
MYSQLCLIENT_LIB_DIR: 'C:\Program Files\MySQL\MySQL Server 8.0\lib'
# will be accepted by a later Diesel version
MYSQLCLIENT_LIB_DIR_X86_64_PC_WINDOWS_MSVC: 'C:\Program Files\MySQL\MySQL Server 8.0\lib'

Docs and CI are there now for vpkg and zip.


Is possible to have empty strings in the examples?

I was trying to add multiple examples to my documentation, one of those is what happen when the string for an json attribute is empty, but when the tag example in golang is put as empty i.g. example:"" the example field in swagger does not appear, any other value made it work, thanks.
This is my golang struct

This one is how swagger generates the docs.go

And this last one is how I need it to be

I'm using /${GO_PATH}/swag init -g /main.go to generate the documentation
Thanks in advance.

It's normal because we are checking the length of the struct tag.

released in v1.7.9

released in v1.7.9
Hey @ubogdan how are you doing?
If this was merged and released, shouldn't this issue be closed already?


Artifacts: Base Class Methods

Perhaps the Artifact base class should have a set of common methods

create
modify
archive
delete

Okay.. so 'create' and 'modify' don't really make sense as those are done by transform objects. I've put in delete.. and we can add archive later if we want.


Implementing FBDD-for-hypertension Notebooks

I thanks the authors for making their Jupyter notebooks available through open source. Following the specified steps, beginning
with Phase 0; importing relevant libraries, I am getting the same error as your example
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[1], line 3
1 # import all relevant libraries
----> 3 from rdkit.Chem import AllChem
4 from rdkit import Chem
5 from rdkit.Chem import BRICS
ModuleNotFoundError: No module named 'rdkit'
If possible could you provide the steps for installing rdkit?
In addition, I do not know the proper syntax for setting $PATH to include the input and output directories.
I have placed the github directories in my local folder.
Thanks in advance,
David Covell, Ph.D.

Dear Dr Covell,
Thank you so much for contacting me regarding the notebooks.
I was hoping that the requirements file would contain all the packages to run the code so that you do not have to encounter installation errors. I must have overlooked this one.
Query 1: Installing rdkit
In order to fix this error, may you please install rdkit. You can do so by executing any one of the following codes (I used the first one):

conda install conda-forge::rdkit
conda install conda-forge/label/cf201901::rdkit
conda install conda-forge/label/cf202003::rdkit
conda install conda-forge/label/gcc7::rdkit
conda install conda-forge/label/rdkit_rc::rdkit

Additional information regarding this installation can be found at the Anaconda rdkit link here: https://anaconda.org/conda-forge/rdkit
Query 2: File path
The file path should be the exact folder/location where you saved your input files.

For example, you can create a folder called "FBDD" in your local folder, where you save the input and output files for this project.
Then you can call this path in your code. This could read  'C:\Users\david\FBDD\Chembl_C09.sdf'

For instance, my path is '/Users/odilehasa/Hypertension/Final_Experiments/Data/Chembl_C09.sdf', which indicates that I saved the file (Chembl_C09.sdf) in my local drive (indicated by /Users/odilehasa), under the folder "Data", which is in the folder "Final_Experiments", which is inside the "Hypertension" folder.
Your computer's operating system also influences the syntax, specifically the backslash, C and colon. For example:

Mac computer path is: '/Users/odilehasa/Hypertension/Final_Experiments/Data/Chembl_C09.sdf'
Windows computer path would be: 'C:\Users\odilehasa\Hypertension\Final_Experiments\Data\Chembl_C09.sdf'

Have a look at this link which better explains how to get your path: https://www.geeksforgeeks.org/find-path-to-the-given-file-using-python/
I hope this helps.


How to run Python code in manaco-editor

monaco-editor version: 0.18.1
Browser:
OS:
Steps or JS usage snippet reproducing the issue:

@mengayng Monaco is simply an editor in the browser. Presumably if you want to run the Python code you would need some backend environment that retrieves the code the user is editing and then executes it.
You may also be interested in looking at alternatives and running Python in the browser directly perhaps. It really depends on your exact use cases and how big your Python files will be. You should also keep in mind whether your users will be doing stuff like import os or not.

@rcjsuen thanks, you've really been a big help


Optimise the icons

I've optimised the icons with ImageAlpha and ImageOptim and saved around 40%.

The look as before but with less weight.

Thank ya!


Fix memory leak and restore drag mouse cursor

remove windowRestoreThumb.MouseDoubleClick event on destroy
fix cursor after restore maximized window

Thank you! :100:


Cell color is not working. In place of color it  fills by pattern.

I tried as below to fill color into cell
sheet1.fill(3, 3, {type:'solid',fgColor:'8',bgColor:'64'});
In place of color it fills by pattern.

Same issue here. This is how the sample code looks like:

Hey guys. Take a look in here https://www.npmjs.com/package/msexcel-builder-colorfix

Color problems were fixed in this npm package:
https://www.npmjs.com/package/msexcel-builder-extended
npm install msexcel-builder-extended
In order to make it work, use:
sheet.font(col, row, {color: 'FFFFFF'}); // Text color, in HEX
sheet.fill(col,row,{type:'solid',fgColor:'000000'}) // Background color (Yes, background color), in HEX
It worked for me.

Thank you for the extended version. It works like a charm :-)


Unable to read from file

Describe the bug
Unable to use 'filter=(rule name is.in.file:test.txt)' to pull in a list of rule names to take action against.
Full command -
pa_rule-edit in=api://.com location= actions=securityProfile-Group-Set:* 'filter=(rule name is.in.file:test.txt)'
(* represents obfuscated data for privacy purposes)
Error -
ERROR Rule filter parser: unsupported operator name 'name' in expression 'rule name is.in.file:test.txt'

you are using the wrong syntax for this.
filters are always defined in a two or three steps process:
pa_rule-edit in=api://.com location= actions=securityProfile-Group-Set:* 'filter=(name is.in.file test.txt)'
how you can check this;
pa_rule-edit listfilters
will display something like this:
...

name

contains
eq                                : returns TRUE if rule name matches the one specified in argument
eq.nocase
is.in.file                        : returns TRUE if rule name matches one of the names found in text file provided in argument
regex                             : returns TRUE if rule name matches the regular expression provided in argument
....

so the first part could only be:
'filter=(name
combining with the second;
'filter=(name is.in.file
and then following the last argument:
'filter=(name is.in.file FILENAME)'

Ohhhhhhhh, the syntax changed.
I just tested it, it does indeed work.
You can close this as user error @swaschkut. Thanks for the help!


mergeWithLimit should not throw error if source has error. Fixes #475.

We used to get a
events.js:72
        throw er; // Unhandled 'error' event
              ^

error when a source emits errors due to listening for the end event without doing so for the error event.

LGTM.


Allow Using Embedded Preview Without Launching Server

Hi everyone, and thanks for this neat extension. I've found it very useful especially when teaching people the basics of web development, where I can give them a pretty modern experience without them having to learn about live servers and build tools etc.
I would like to use this extension for myself as well though. Especially the part of the extension that allows me to run a small browser within VSCode. This would make it much easier to stream myself working in tools like discord without sharing my whole screen. I think this is possible by starting the server and then just navigating to a different url, but that means an open port in the background and a few extra steps when starting up.
Thanks for considering this :wave:

I think that what you're looking for is Simple Browser, which comes with VS Code. Try running Simple Browser: Show in the command palette (CTRL+SHIFT+P). 🙂

I think what's missing from the Simple Browser is the 'Embedded Live Preview' output with the console logs (and the dev tools in general). I'm learning some web development now and it baffles me that you cannot disable the server functionality of the Live Preview extension and make it navigate to an address of your choosing.
As an example codepen.io has an embedded console which makes it really easy to experiment with things and everything is nicely in a single application too.


relayer: consider updating arbitrum and optimism SDKs

Running yarn outdated gives this, among other things:
Package                          Current Wanted   Latest   Package Type    URL
@arbitrum/sdk                    3.0.0   3.0.0    3.1.2    dependencies    https://offchainlabs.com/
@eth-optimism/sdk                1.8.0   1.10.4   2.0.1    dependencies    https://github.com/ethereum-optimism/optimism/tree/develop/packages/sdk#readme
@eth-optimism/sdk-1.0.2          1.0.2   exotic   exotic   dependencies    npm<EMAIL_ADDRESS>

We should

consider updating arbitrum and optimism SDKs
investigate why we seem to have two different optimism SDKs: eth-optimism/sdk-1.0.2 and eth-optimism/sdk

@GabrielBuragev

I believe arbitrum sdk can be updated easily.
Not sure for OP since they have an upcoming bedrock update. Maybe we plan the sdk upgrade accordingly once they announce the Bedrock updates.

Relayer was adjusted to support the OP Bedrock network.
We need to update the @eth-optimism/sdk version to the latest version 2.1.0 as it contains important changes to the contract addresses.


Value extractor feature

[ ]  Value extractor part is missed. please also add this feature.

The beta feature is up. please report bugs here.


Open room by roomId message open ON mobile

Describe the bug
When I'm trying to open a room by roomId it works only in a case if in the chat exist more than 1 room
Actually, I am not 100 percent sure that it's a bug, maybe I am doing something wrong :( Anyway it would be grateful if we could discuss that

<template>     <div class="window-container">         <chat-window                 :auth-user="authUser"                 :current-user-id="this.currentUserId"                 :roomId="this.getRoom ? this.getRoom : this.dummyOrNothing"                 :rooms="this.rooms"                 :rooms-loaded="this.roomsLoaded"                 :loading-rooms="this.loadingRooms"                 :messages-loaded="this.messagesLoaded"                 :messages="this.messages"                 :show-audio="false"                 :show-files="false"                 :show-add-room="false"                 :vehicle="vehicle"                 @send-message="sendMessage"                 @fetch-more-rooms="fetchRooms"                 @fetch-messages="fetchMessages"                 @room-info="roomInfo"         />     </div> </template>
``
<style scoped>     .vac-card-window {         height: calc(100vh - 216px) !important;         max-height: 700px !important;         min-height: 300px !important;     } </style>

What is happening exactly when you try to use roomId with only one room? A gif or video might be helpful to understand your issue

Due to lack of activity, I'm closing this issue. Please reopen if you have more information to share about the issue.


add new categories (input + ticket)

Omnichannel
AR + VR, 3D

profile field updated https://admin.ecommercegermanyawards.com/admin/inputedit/236


Amendment to section entitled 'How to setup an Azure Key Vault'

Within the section entitled 'How to setup an Azure Key Vault'  would it be possible to add a small note to elaborate a point in relation to the following:
$connectionString. The connection string to the Azure SQL Database. You can use the ADO.NET connection string as it is displayed in your Azure dashboard.
If the connection string is copied and pasted from the Azure portal, it is important to stress that the user ID must have appropriate permissions to the target SQL database. As it is assumed that the global admin account taken when copying and pasting the string has permissions, which is not always the case. Which can lead to validation failures in Dynamics when creating a DES profile.

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

ID: 3d51ad6f-b7a7-7abd-f1d1-1d7963dd3d49
Version Independent ID: 4612ff88-8457-2f49-8222-4fd110fd72f6
Content: Replicate data to Azure SQL Database using Data Export Service - Power Platform
Content Source: power-platform/admin/replicate-data-microsoft-azure-sql-database.md
Service: power-platform
Sub-service: admin
GitHub Login: @sabinn-msft
Microsoft Alias: sabinn

Taking to internal thread.


TestCafe can't detect test files located on a Windows network drive

What is your Test Scenario?
Use test files located on a network drive.
What is the Current behavior?
TestCafe says that there is no files.
What is the Expected behavior?
TestCafe should run tests from a network drive.
Explanation:
We use an old globby version for searching test files. It is built upon [isaacs/glob](http://github.com/isaacs/node-glob] that doesn't with network drives. Newer globby versions use fast-glob internally, that works well with network drives, but have different search algorithm: glob uses a depth-first search algorithm, fast-glob uses a width-first search algorithm. If we just update to the latest globby version, we can change test execution order.
Your Environment details:

testcafe version:                   1.2.1
node.js version:                    10.15.0
command-line arguments:  testcafe chrome Z:\tests
browser name and version: any
platform and version:          Windows
other:

Related to:
https://github.com/isaacs/node-glob/issues/290
https://github.com/isaacs/node-glob/issues/74


Store a ref to a custom Dockerfile, rather than the file itself

It would be nice if the custom Dockerfile could live in the src/ repo (in a git repo), rather than an untracked copy in the ROS workspace.   This could be done with a symlink.  Another option could change the syntax of the docker_override file to support either a Docker tag or a path to a Dockerfile.

Come to think of it, this could be done with a symlink (?)


IndMach012: issues in dynamic mode

Investigate differences vs. COM in the InductionMachine example from the official distribution.

Turns out it was an issue with the monitor stream, which needed to be copied. Fortunately it what the only place where it was missing an explicit copy.


Add bug tracking link to pypi

Just noticed another package on pypi with a link back to bug tracking. I did not realize/think about that at the time. It would be really nice to have a link from pypi back to here so people can report any bugs they find.

Turns out this is something that is not included from the setup.py script but must be edited on the pypi.python.org website itself.


[navigation] Page up/down keys scroll the grid twice and then the entire page

In ag-grid version 6.0.1 on Chrome...

Click on a cell, press page up/down. The grid will scroll twice and then the page will scroll, even if the grid has more rows to scroll.
Resize cells so there's space on the right of the grid not occupied by a column ('whitespace'). Press page up/down. The grid scrolls perfectly.

yes in know about this. on my list. it's because the cell with the focus is no longer in the dom due to row virtualisation.

tracked by AG-140
https://www.ag-grid.com/ag-grid-pipeline/

This is already available in 8.0.0


Better layout

Following the discussion here, and seeing as it looks like this may not be maintained by @garethp any longer, I'm opening this PR to hopefully get visibility on the better layout. I've just used Gareth's better-layout branch and I definitely like it more than the default in terms of how my space is utilized.

@phatsk could you strip this PR down to the relevant parts only please, currently you are dragging in a lot of stuff that is no longer needed to make this layout update work. I would also rather have an update that is not having a fixed layout, but lets you choose how you want your layout to look.

I'll try to do the best that I can to at least merge in current and resolve conflicts, but my vim-fu might not be up to the task of making this configurable. We'll see!

@phatsk You're right that I'm not maintaining this (I don't really use VIM all that often, I just like to muck around now and then for fun), but here's some advice:
You should be able to pare down the PR by looking at the one commit that actually changes the layout to look like this, which you can find here. And referring to my initial feature suggestion ticket, there's two main things that need to be configurable to get this working:

Being able to set the height for each window
The option to allow for the single line status bar

The option bar is the easiest, you throw a boolean value into the default options and then read from it at set_status to either set the status bar to text or set it to an icon. The first one should just be a case of adding a height and width option to windows and setting said height and width in vimui.
It looks like adding options shouldn't be too difficult. You add the option in as JSON in the vim plugin here, and then you can simply read from that option with the opt module, with one example being in session.py

Actually, once I wrote that comment it all seemed pretty easy, so I've opened a PR at #402

lets favour #402 and close thisone


How to add more 3DTeliset or terrian？

About your demo，there are only one country. How to add global terrian and teliset? Thank you !

Cesium is used for displaying the 3D map, you can check out how to add/change data here


Alternative Go AMQP 1.0 (ActiveMQ) compatible libraries.

I will start off by saying that this library is awesome and the author is more awesome. He helped me directly by taking his own time to review my code and offer extremely helpful advice.
I can certainly understand the enormous pressure and time commitment of maintaining a library such as this as a side project and applaud the author for his efforts and contribution.
Thank you @vcabbage!!!
All that said, since this library is now on its way to archival, has anyone found an active alternative library that works with Apache ActiveMQ and specifically AWS MQ?

It seems that Microsoft has taken over the maintenance of this project: https://github.com/Azure/go-amqp


false positives

Please describe the problem.
For hints on what information is helpful, see: https://clangd.llvm.org/troubleshooting.html
I am getting "'iostream' file not foundclang(pp_file_not_found)" false positive in VSCode. Clangd
seems to have just stop working.
If you can, provide a minimal chunk of code that shows the problem (either inline, or attach it if larger).
`#include
int main(int argc, char **argv)
{
if (argc != 2)
{
std::cout << "Incorrect number of arguments.\n" << argv[0] << " <scenario number>\n";

}
return 0;
}
`
Code compiles correctly on the system with installed compilers. Tried reinstalling clangd / clang. Tried --query-driver. No changes to clangd config have been made. I have recently installed mingw recently for cross-compiling (don't think this would have changed anything).
Logs
Please attach the clangd stderr log if you can. (Usually available from the editor)
If possible, run with --log=verbose - note that the logs will include the contents of open files!
If this is a crash, try to put llvm-symbolizer on your PATH per the troubleshooting instructions.
https://paste.ubuntu.com/p/X72bqxZRs4/
System information
Output of clangd --version: clangd version 11.0.0 (from logs)
Editor/LSP plugin: llvm-vs-code-extensions.vscode-clangd
Operating system: Pop!_OS 20.04 LTS x86_64

can you try installing libstdc++ ?  possibly via sudo apt-get install libstdc++-10-dev

can you try installing libstdc++ ?  possibly via sudo apt-get install libstdc++-10-dev

can you try installing libstdc++ ? possibly via sudo apt-get install libstdc++-10-dev

oh thats weird. It works again now. Thank you.

can you try installing libstdc++ ? possibly via sudo apt-get install libstdc++-10-dev

oh thats weird. It works again now. Thank you.


Error with accumulation in for loop

Hello @chriselrod
First of all thanks for this wonderful package.
I have encountered a weird issue related to for loop accelerated with turbo.  A "simple" for loop gives very different results when the macro activated.
In this loop, we only increment values in a matrix (e.g a confusion matrix) based on the value on two matrices.
A MWE is presented below
using LoopVectorization

""" Create a confusion matrix based on the 2 inputs. Here this only counts the occurence of each element
"""
function create_confusionMatrix(l̂::AbstractArray,l::AbstractArray,nbRadios::Number)
    confMatrix = zeros(nbRadios,nbRadios)
    for n ∈ eachindex(l)
        confMatrix[l[n],l̂[n]] += 1
    end
    return confMatrix
end

""" Exactly same as before with @turbo power
"""
function turbo_create_confusionMatrix(l̂::AbstractArray,l::AbstractArray,nbRadios::Number)
    confMatrix = zeros(nbRadios,nbRadios)
    @turbo for n ∈ eachindex(l)
        confMatrix[l[n],l̂[n]] += 1
    end
    return confMatrix
end

# True labels
nbRadios = 4
l = repeat(1:4,100) # l = [1;2;3;4;1;2;3;4;....;1;2;3;4]

# Create the 2 confusion matrices, should be the same
m             = create_confusionMatrix(l,l,nbRadios)
m_turbo  = turbo_create_confusionMatrix(l,l,nbRadios)
# Same result right ?
@assert m == m_turbo "Matrices are not identical"

And we have
julia> m
4×4 Matrix{Float64}:
 100    0    0    0
   0  100    0    0
   0    0  100    0
   0    0    0  100

julia> m_turbo
4×4 Matrix{Float64}:
 50   0   0   0
  0  50   0   0
  0   0  50   0
  0   0   0  50

This code has been used on Julia 1.8 with
[bdcacae8] LoopVectorization v0.12.157

We should have diagonal matrix (same array is used as true label and estimated label), and the 2 functions should lead to exactly the same numbers of the diagonal (100 in this case). This is not the case, and the turbo version has only half of the elements (50).
It seems that not every index is used when using the turbo version like a multiple load that leads to only one update ? I try to have a look on the @code_llvm but god this is hard 😅
It is something on our side that we do very bad ? A corner case of the package ? Something attended ?

This issue, or a few like it, come up often.
It should probably be documented more clearly, but LoopVectorization.jl assumes indices don't alias whenever you have A[f(i...)], and f isn't + or - (it'll recognize aliasing in that case).
In plain English, that means if you have A[l[i]] it'll assume that l[i] != l[j] for all i != j.

For example
julia> """ Create a confusion matrix based on the 2 inputs. Here this only counts the occurence of each element
       """
       function create_confusionMatrix(l::AbstractArray,l::AbstractArray,nbRadios::Number)
           confMatrix = zeros(nbRadios,nbRadios)
           for n ∈ eachindex(l)
               confMatrix[l[n],l[n]] += 1
           end
           return confMatrix
       end
create_confusionMatrix

julia> """ Create a confusion matrix based on the 2 inputs. Here this only counts the occurence of each element
       """
       function simd_create_confusionMatrix(l::AbstractArray,l::AbstractArray,nbRadios::Number)
           confMatrix = zeros(nbRadios,nbRadios)
           @inbounds @simd ivdep for n ∈ eachindex(l)
               confMatrix[l[n],l[n]] += 1
           end
           return confMatrix
       end
simd_create_confusionMatrix

julia> using LoopVectorization

julia> """ Exactly same as before with @turbo power
       """
       function turbo_create_confusionMatrix(l::AbstractArray,l::AbstractArray,nbRadios::Number)
           confMatrix = zeros(nbRadios,nbRadios)
           @turbo for n ∈ eachindex(l)
               confMatrix[l[n],l[n]] += 1
           end
           return confMatrix
       end
turbo_create_confusionMatrix

julia> # True labels
       nbRadios = 4;

julia> l = repeat(1:4,100) # l = [1;2;3;4;1;2;3;4;....;1;2;3;4];

julia> # Create the 2 confusion matrices, should be the same
       m             = create_confusionMatrix(l,l,nbRadios)
4×4 Matrix{Float64}:
 100.0    0.0    0.0    0.0
   0.0  100.0    0.0    0.0
   0.0    0.0  100.0    0.0
   0.0    0.0    0.0  100.0

julia> m_turbo  = turbo_create_confusionMatrix(l,l,nbRadios)
4×4 Matrix{Float64}:
 13.0   0.0   0.0   0.0
  0.0  13.0   0.0   0.0
  0.0   0.0  13.0   0.0
  0.0   0.0   0.0  13.0

julia> # Same result right ?
       @assert m == m_turbo "Matrices are not identical"
ERROR: AssertionError: Matrices are not identical
Stacktrace:
 [1] top-level scope
   @ REPL[11]:2

julia> m_simd = simd_create_confusionMatrix(l,l,nbRadios)
4×4 Matrix{Float64}:
 50.0   0.0   0.0   0.0
  0.0  50.0   0.0   0.0
  0.0   0.0  50.0   0.0
  0.0   0.0   0.0  50.0

I got a different wrong answer from @turbo than you did, because the order at which it loads, accumulates, and stores isn't guaranteed and will vary from one platform to another based on what it thinks is fastest. If the answer depends on the order, different orders generate different answers.
I can also lie to the base Julia compiler with @simd ivdep to promise that the loop is order independent, and get a different wrong answer (in this case, it happens to be the same one you got with @turbo).
Obviously don't do this, just saying it's expected.
The answer is to not promise out of order when that isn't allowed.

I am working on a rewrite of LoopVectorization that does much more extensive analysis. It'll only reorder when legal.
LoopVectorization.jl can't do any sophisiticated dependence analysis. It knows how to optimize a few kinds correctly, and for everything else it assumes they're independent.
It's easy to ignore problems. Especially if I know exactly which kinds it can and can't handle -- I'm not going to be caught off guard, but I guess the documentation should make that more clear for everyone else.
The rewrite (LoopModels) does a lot of modeling, so it can correctly optimize a ton of loops without needing to make those sorts of assumptions, so giving up when it can't prove (e.g. here) is reasonable.
It's of course impossible to prove that here, so I'll eventually have it read parallel loop iteration metadata (which @simd ivdep adds) to let users still make this promise, for when they have code that looks like yours, but they've guaranteed length(unique(l)) == l, i.e. when they know a priori that all elements are unique.

Hello Chris,
Many thanks for the precious insights you have provided here. This is indeed a very complicated issue, and I did not realize that it was due to some kind of index dependency.
Let's hope that it will be addressed by the rework of Loop Vectorization. In the meantime, I would like to express my gratitude for all the support you have provided to the language and for all the vectorization assets.
Thank you once again!
Kudos !!


10 triggers max per Logic App workflow

When we save a Logic App Workflow with 11 triggers, we got this error message:

Failed to save logic app my-logic-app. The template validation failed: 'The number of template triggers limit exceeded: maximum '10' and actual '11'.'.

Note: to be consistent with this other documentation as well:
https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-limits-and-config#definition-limits

@mathieu-benoit,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

#sign-off


Before executing the executeHook method，consumerGroup field of FilterMessageContext should be assigned.

The following code, which is located inPullAPIWrapper may contain a bug
  if (this.hasHook()) {
                FilterMessageContext filterMessageContext = new FilterMessageContext();
                filterMessageContext.setUnitMode(unitMode);
                filterMessageContext.setMsgList(msgListFilterAgain);
                this.executeHook(filterMessageContext);
            }

Before executing the executeHook method，consumerGroup field should be assigned.
Otherwise, in the subsequent filtering logic, this field will be empty

Consider adding filterMessageContext.setConsumerGroup(consumerGroup);
if (this.hasHook()) {
FilterMessageContext filterMessageContext = new FilterMessageContext();
filterMessageContext.setUnitMode(unitMode);
filterMessageContext.setConsumerGroup(consumerGroup);
filterMessageContext.setMsgList(msgListFilterAgain);
this.executeHook(filterMessageContext);
}

Agree, seems the field consumerGroup and mq in FilterMessageContext may be used but never assigned. And please notice FilterMessageContext is used in both DefaultMQPushConsumerImpl#processPopResult and PullAPIWrapper#processPullResult.
Will you submit a pr to fix it?


Update Datum in LICENSE

Thank you, but we're fine with leaving the copyright date being the date of the original publication.
We might revisit the line that defines the copyright holder in the future, and then we can easily take care of the year in the same step. But right now it's not necessary.

Ok.


fuzz: Dump error file as hex instead of using cat

If there's a fuzz failure, the contents of the file are printed using cat, which isn't useful for binary files.  Instead, use od -t x1 to get a hex output that's easy to use with xxd -r to reconstruct the binary file.  That way we can reliably reproduce the fuzz failure locally.  There are now more instructions included in the script as well.

Merging on red, error is unrelated, the fuzz part passed

Merging on red, error is unrelated, the fuzz part passed


Failing to get warranty information for Surface Pro 9

The documentation at the following link claims that you can pull the warranty information from the diagnostic app console, however when I attempted this I got nothing, the app did not create any files nor output any response to the console, I tried various methods of providing a path or providing no path, and tried all variations with both the x86 and 64 versions but both behaved the same run as an administrator.

Microsoft.Surface.Diagnostics.App.Console.exe –warranty “warranty.xml”
The -DataCollector attribute however behaved as intended and wrote the file to the correct location (the current directory)

https://github.com/MicrosoftDocs/Devices-docs/blob/public/surface/surface-diagnostic-toolkit-command-line.md

The following screenshot shows the Microsoft documentation on the usage of this command


[STORM-2470] kafkaspout should support kerberos

https://issues.apache.org/jira/browse/STORM-2470
kafkaspout should work normally when the cluster(storm and kafka) is in kerberos mode.

Users should provide the path to jaas.conf which includes a section named "KafkaClient" in storm.yaml or .

@liu-zhaokun with the latest kafka consumer APIs one can pass a keytab and principal via consumer or producer properties. Even before that they can pass the jaas config via JVM param and set security.protocol to SASL_PLAINTEXT.
with the new kafka client APIs we are trying hard to remain with configs supported by them. Let's not introduce to new configs on storm side to make it confusing for the user.
I am -1 on this.

@liu-zhaokun More details are documented here http://kafka.apache.org/documentation.html#security_sasl . We don't need these changes on storm-kafka-client side

@liu-zhaokun KafkaSpoutConfig offers this method to add security-related configs
https://github.com/apache/storm/blob/master/external/storm-kafka-client/src/main/java/org/apache/storm/kafka/spout/KafkaSpoutConfig.java#L227
you can pass in consumer side properties by passing in  "sasl.jaas.config"  via setProps/setProp method.

Hello, @harshach
Yes,you are right.But I found there isn't 'sasl.jaas.config' in kafka 0.9.x, so I will create a new PR for storm 1.0.x-branch.


Question: how to add an index?

I've noticed this function:
Index[] getIndexes()

But how do I set it?
Suppose I have this spec:
@TableModelSpec(className = "SomeSpec ", tableName = "someTable")
public class SomeSpec {
    public long time;
    public String name, number, key;
}

how do I set an index for the "number" field? And how do I set the field to be unique?

One of two ways. You can either create an implicit index using a table constraint, like so:
@TableModelSpec(className = "SomeSpec", tableName = "someTable",
    tableConstraints = "UNIQUE(number)") // Add optional conflict resolution clause

The tableConstraints field is a clause of raw SQL you want your table to be created with, so you can refer to the SQLite documentation for what kinds of constraints you can specify.
Or, you can create an explicit index using the function you mentioned:
// In your SquidDatabase subclass:
private static final Index someSpecNumberIdx = SomeSpec.TABLE.uniqueIndex("indexName", SomeSpec.NUMBER);

protected Index[] getIndexes() {
    return new Index[] {
        someSpecNumberIdx
    };
}

Personally I'd go for the implicit one using the table constraint, but the choice is yours!

Thank you.
About unique fields, you mean that in order to set it, I don't really need to specify it in the spec file, with "TableModelSpec"  ? I can put it in the index-creation function instead?

If you use tableConstraints = "UNIQUE(number)", this adds a uniqueness constraint on the column named number, SQLite will automatically index it, but this is an internal index that you cannot reference by name in any of your SQLite commands. If instead you use SomeSpec.TABLE.uniqueIndex(...) and add it to your SquidDatabase subclass, it will create an index that you can reference by name, if that's something you desire.

I don't think I need to use the index by reference, because as I remember, it's supposed to be used automatically when performing DB operations that involve it (query, update, delete).
I'd like to ask though: what's the difference between the "uniqueIndex" function you mentioned, and adding this instead:
    @Override
    protected Index[] getIndexes() {
        return new Index[]{
                new Index("number", SomeSpecEntity.TABLE, true, SomeSpecEntity.NUMBER)};
    }

As I see "true" is for the uniqueness.

There's not really any difference. The uniqueIndex function simply calls that constructor.
Sounds like you're leaning towards using a table constraint, but if you do decide to declare the index yourself, one thing to note is that I'd recommend declaring any indexes you make manually as their own static constant objects outside the getIndexes() method. This would make the indexes easier to create in database migrations (getIndexes() is like getTables() -- it tells the db what things to create for a new database but you still need to write migrations for existing ones).

You mean it's better to use "tableConstraint" ?

It's not always "better", it just depends entirely on your use case. But yes, to me it sounds like in this case you probably would be better off using the tableConstraint.

ok, thank you.


Fix proxy support for http/https requests

Hello,
The proxy support was missed when creating a new http.Client with custom Transport{}.
Therefore the "-proxy" option had no effect on http/https connections. This PR reverts to the standard behavior of the go http client with os environ support.

oof. Thanks! Giving this a test.

Before:
albinolobster@mournland:~/cve-2023-22527/nashorn$ ./build/cve-2023-22527_linux-arm64 -v -rhost google.com -rport 443 -s -proxy http://<IP_ADDRESS>:8080
time=2024-04-09T21:17:40.296-04:00 level=STATUS msg="Starting target" index=0 host=google.com port=443 ssl=true "ssl auto"=false
time=2024-04-09T21:17:40.296-04:00 level=STATUS msg="Validating Confluence target" host=google.com port=443
time=2024-04-09T21:17:40.646-04:00 level=ERROR msg="The target isn't recognized as Confluence, quitting" host=google.com port=443 verified=false

Resulted in:
albinolobster@mournland:~/Downloads/PolarProxy$ ./PolarProxy --httpconnect 8080
<6>Starting PolarProxy <IP_ADDRESS>
<6>[8080] HTTP CONNECT proxy Listening on: <IP_ADDRESS>:8080

After:
albinolobster@mournland:~/cve-2023-22527/nashorn$ ./build/cve-2023-22527_linux-arm64 -v -rhost google.com -rport 443 -s -proxy http://<IP_ADDRESS>:8080
time=2024-04-09T21:16:15.992-04:00 level=STATUS msg="Starting target" index=0 host=google.com port=443 ssl=true "ssl auto"=false
time=2024-04-09T21:16:15.992-04:00 level=STATUS msg="Validating Confluence target" host=google.com port=443
time=2024-04-09T21:16:16.420-04:00 level=ERROR msg="The target isn't recognized as Confluence, quitting" host=google.com port=443 verified=false

Resulted in:
albinolobster@mournland:~/Downloads/PolarProxy$ ./PolarProxy --httpconnect 8080
<6>Starting PolarProxy <IP_ADDRESS>
<6>[8080] HTTP CONNECT proxy Listening on: <IP_ADDRESS>:8080
<6>[8080] HTTP CONNECT proxy CONNECT proxy request from <IP_ADDRESS>:45320 to google.com:443
<6>[8080] <IP_ADDRESS>:8080 -> google.com:443 Connection request for google.com from <IP_ADDRESS>:45320
<6>[8080] <IP_ADDRESS>:8080 -> google.com:443 Action: DECRYPT
<6>[8080] HTTP CONNECT proxy CONNECT proxy request from <IP_ADDRESS>:45322 to www.google.com:443
<6>[8080] <IP_ADDRESS>:8080 -> www.google.com:443 Connection request for www.google.com from <IP_ADDRESS>:45322
<6>[8080] <IP_ADDRESS>:8080 -> www.google.com:443 Action: DECRYPT
<6>[8080] <IP_ADDRESS>:8080 -> www.google.com:443 Stream closed by client (239 bytes read)
<6>[8080] <IP_ADDRESS>:8080 -> google.com:443 Stream closed by client (205 bytes read)


separate configs AIR and GS for datalink/wifibroadcast packages and add rcjoystick package

requested changes for 'separate configs AIR and GS for datalink/wifibroadcast packages' and rcjoystick

Thanks!


required keyword for empty string

What version of Ajv are you using? Does the issue happen if you use the latest version?
Ajv options object

{
  allErrors: true,
  jsonPointers: false,
  coerceTypes: true,
  validateSchema: false
}

JSON Schema

{
  "type": "object",
  "properties": {
    "test": {
      "type": "string"
    }
  },
  "required": ["test"]
}

Sample data

{
  "test": ""
}

Your code

  ajv.validate(schema, data)
  console.log(ajv.errors)

Validation result, data AFTER validation, error messages
  the ajv.erros is null

What results did you expect?
how can I validate the empty string to use required keyword, or another solution

You can use other JSON schema keywords, e. g. minLength for strings.

Unfortunately, if someone fills the field with spaces it will be valid because space counts as a character.


No TBBConfig.cmake generated(?)

Hi,
i am trying to build this repository to include the build into another cmake project. My environment is Windows with Visual Studio 2015 (vc14,x64), CMake (3.11.1, using cmake-gui).
My approach was to define the source and build directory and configure and generate the project using the CMakeLists.txt (LIBRT and LIDL are not available). Open the generated solution file VS2015. Build ALL_BUILD in Debug mode.
I can build this repo but for further use I do not find any TBBConfig.cmake file. There is no file generated in the build tree. Should there be a config.cmake file?

If you need this I have it on my master branch here: https://github.com/mitjap/tbb/
You define CMKAE_INSTALL_PREFIX as you normally would and it also installs tbbConfig.cmake.
When using tbb in your project you use find_package(tbb REQUIRED) and set tbb_DIR.

this can be closed


Add missing const in Area.h regulatoryElementsAs method

The primitives/Area.h file had a regulatoryElementsAs overload that appeared to be missing a const return value.
  template <typename RegElemT>
  std::vector<std::shared_ptr<RegElemT>> regulatoryElementsAs() const { // Return does not match
    return utils::transformSharedPtr<const RegElemT>(regulatoryElements_); // Return does not match
  }
  template <typename RegElemT>
  std::vector<std::shared_ptr<RegElemT>> regulatoryElementsAs() {
    return utils::transformSharedPtr<RegElemT>(regulatoryElements_);
  }

This PR adds the missing const value such that the Area.h regulatoryElementsAs methods match the Lanelet methods.
In addition this PR fixes a typo in LaneletOrArea.h which was calling regulatoryElementAs instead of regulatoryElementsAs (Elements needed an ending "s")
 template <typename T>
  std::vector<std::shared_ptr<const T>> regulatoryElementsAs() const {
    return applyVisitor([](auto& elem) { return elem.template regulatoryElementAs<T>(); });
  }

The unit tests still pass.

Thanks for fixing. I merged your changes from our internal repository.

Is this also a regulatoryElementAs naming bug?
https://github.com/fzi-forschungszentrum-informatik/Lanelet2/blob/master/lanelet2_core/include/lanelet2_core/primitives/LineStringOrPolygon.h#L62

No, that looks like a copy-paste error. The function shouldnt exist. Linestrings and polygons don't have regulatory elements...


Vinted API not accessable anymore?

Since yesterday, 19th of November 2024, I am having trouble reaching the Vinted API. Very similiar to your source code I am sending following requests:

POST-Request to: https://www.vinted.fr/auth/token_refresh
GET-Request to: https://www.vinted.fr/api/v2/catalog/items

Usually this would lead me to have access to the api endpoint. Since yesterday this is not the case anymore and i get a response 401 Unauthorized:
{
    "code": 100,
    "message": "Jeton d'authentification invalide",
    "message_code": "invalid_authentication_token"
}

Do you encounter the same issues? If yes can we confirm that the vinted API was closed to public? If not can we find a way to solve this problem? I am open to contribute in the problem solving process, if there is a way.

It has being reported but did not have time to look into it yet. They probably changed the way auth token are fetched

I'm also interested on any news about this.
I am using this repo very often and I'm facing the same issue.
P.S : thanks for the great job done here !

Hello everyone, the issue has being identified, i'm just missing time to make the update. Basically auth requests should not send a post request to /token_refresh but a simple HEAD request to the main page ("https://www.vinted.fr"). This should set the cookies correctly

That's the workaround I've been using for the past few days and I've encountered no issues since. Looks like the proper solution 👍

The issue is now fixed please update to version 0.5.2 of pyVinted


Errors in bidirectional cursor-based pagination

Describe the feature
How would you know in which end of a list an error occured when #670 is implemented? I have a custom implementation of bidirectional cursor-based pagination where a "try again"-button is shown on either the start or the end of the list, which the users can press to refetch the query that caused an error. However, this logic needs to know where the error occurred. I have three possible cases in my implementation:

The error occurs during the initial loading.
The error occurs when loading the previous page.
The error occurs when loading the next page.

It would be useful to get some kind of signal about where the error occurred when bidirectional cursor-based pagination is implemented.
Criticality
cool improvement, my projects will benefit from it

Hey @samuel-utbult-oborgen! Mind adding this to #670 so we can keep all of the conversation in one place? I really appreciate the thoughts. I'll try to find some time over the next few days to go through everything you've written and post a summary for how I imagine this being implemented in #670


Overriding BadgeView background color to set transparent background

Platforms Impacted

[X] iOS
[ ] macOS

Description of changes
Override background color for base view
Set it to transparent color and update color for front view (badge view background)
Verification
Override the background Color for badge view instance.
       badge.backgroundColor = Colors.Palette.blueMagenta30.color

Before
After

Pull request checklist
This PR has considered:

[X] Light and Dark appearances
[ ] VoiceOver and Keyboard Accessibility
[ ] Internationalization and Right to Left layouts
[ ] Different resolutions (1x, 2x, 3x)
[ ] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)

Microsoft Reviewers: Open in CodeFlow

we should add a test case for this custom color

This change is on a branch of the repo, instead of in a fork. As per our contribution guidelines, we should move the change to a fork and have an upstream pull request that way

This change is on a branch of the repo, instead of in a fork. As per our contribution guidelines, we should move the change to a fork and have an upstream pull request that way

Just for convenience, here's the contribution guidelines Saad mentioned:
https://github.com/microsoft/fluentui-apple#developing-in-the-repo
Developing in the repo
Fluent UI Apple requires all pull requests to come from forks of the repository. Please see Fork a Repo - GitHub Help for more details on how to set up a fork of Microsoft/fluentui-apple, keep it up-to-date, and submit pull requests back to this repository.


Context Menu (long press over a cell)

Hi, Id like to change the longpress behavior to show the copy context menu from the bubble to the full cell. For example you longpress the cell out of the bubble but in the bubble row and the context menu appears in order to achive showing the menu even if the cell is a link. When you send a message with just a link or a phone number the long press will show the actionsheet disabling the possibility of copying the cell which is not the expected behavior.
I've tried to modify the jsq_didReceiveMenuWillShowNotification to create the CGRect with the selectedCell.frame (not the messageBubbleContainerView.frame) and does not work :(
Any help would be appreciated.

hey @jaimeslr - this is currently expected behavior.
the actionsheet provides a "copy" option, so this shouldn't be too much of an issue.

Hi jesse, you're right but when you are using a context menu with a custom option (i.e.: Delete) will not appear in the actionsheet (ovbious). If the long press could be done over the row this action could be supported.

Ahhhhh. Now I understand. re-opened as an enhancement issue.


Add missing YAML separator between clusterroles

Thanks yamllint!

Nice one. Feel free to merge once tests run through


Add inventory_cache arg to sphinx_runner

Currently the sphinx_runner reads a config file in the Envoy/website repos  and downloads the inventories on every docs build
It would be useful to add an inventory_cache arg that read from a directory and/or tarball to find the inventory files
this would allow bazel some control over how the inventories were fetched/found
in the case of the website the inventory files are present in the repo/workspace so they can be used directly
for Envoy, probably the best plan is to add them directly to the repo as they rarely change, but the challenge here is that we would then need CI to ensure this was up to date
one option would be to add a --strict-inventory-cache or similar that made sure that all/only the expected inventory files were present

Seems like this is not what is required. Sphinx config allows you to specify (multiple) sources for the objects.inv file so we can just specify and bundle the inventory files
What we do need is something to download (and maybe sync) the inv files


Further issues found with the EOL being written to the Database

@albeanth and I identified two places where the ARMI codebase does not support the new EOL time point being written to the database (added in PR 1090):

Database3.genTimeSteps():

https://github.com/terrapower/armi/blob/8b5163a8b61ebe704419d2d77067bfcf8018f328/armi/bookkeeping/db/database3.py#L612
Returns (cycle, node), but if the EOL is present in the DB, it just returns the last time node twice.

Database3.load() takes in cycle and node as integers, thus not allowing us to load an EOL timestep:

https://github.com/terrapower/armi/blob/8b5163a8b61ebe704419d2d77067bfcf8018f328/armi/bookkeeping/db/database3.py#L702

Cross-referencing #1090 since it's related.


Pinned the NearbyAdapterFactoryTest to api level 21 for the test.

The error
fr.free.nrw.commons.mwapi.ApacheHttpClientMediaWikiApiTest > initializationError FAILED
    java.lang.NoClassDefFoundError
        Caused by: java.lang.ClassNotFoundException

Most likely stems from the deprecated code.  I believe that SchemeRegistry has been been removed in the newest API levels and the gradle flag useLibrary 'org.apache.http.legacy' gets around the problem for production code, but Robolectric is being strict in its emulation of the API level in the tests.  Although ApacheHttpClientMediaWikiApiTest was annotated to pin it to API 21, NearbyAdapterFactoryTest was not so I think the highest API level (recently changed to 25 in gradle.properties) was winning.  I ran the tests on the command line with gradle and inside Android Studio and they were green with this tweak.  Hopefully it fixes #783 (Travis build error)!

The latest failure was in the connected Android tests -
fr.free.nrw.commons.SettingsActivityTest > afterClickingCcby4ItWillStay[test(AVD) - 5.1.1] FAILED
	android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: (is descendant of a: with id: fr.free.nrw.commons:id/settingsFragment and with res-name that is "list" and has focus on the screen to the user)

	If the target view is not part of the view hierarchy, you may need to use Espresso.onData to load it from one of the following AdapterViews:android.widget.ListView{2657862b VFED.VC. ......I. 0,0-480,678 #102000a android:id/list}

:app:connectedDebugAndroidTest FAILED

Can you try cherry-picking https://github.com/whym/apps-android-commons/commit/4bf93d638b4b99a4830559ce4fa2dac0e645e99f ?

Codecov Report

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

@@           Coverage Diff           @@
##             master   #784   +/-   ##
=======================================
  Coverage          ?   6.6%
=======================================
  Files             ?     99
  Lines             ?   5135
  Branches          ?    466
=======================================
  Hits              ?    339
  Misses            ?   4769
  Partials          ?     27

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 44d294e...2e4b25a. Read the comment docs.

Looks like the changes from #787 combined with this PR worked their combined magic.  👍 thanks @whym  for the assist!

Thanks guys!


link updates

when does the link to manual updates https://go.microsoft.com/fwlink/?LinkID=394789 gets updated to latest versions?

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

ID: ab75f449-661d-bd1e-3ebd-61e2384a911a
Version Independent ID: e7c93a31-6076-26b8-a53d-d36df01ec6bc
Content: Azure Virtual Machine Agent Overview - Azure Virtual Machines
Content Source: articles/virtual-machines/extensions/agent-windows.md
Service: virtual-machines
Sub-service: extensions
GitHub Login: @amjads1
Microsoft Alias: amjads

@Kmdkca
Thanks for the feedback! I have assigned the issue to content author to check and update the document as appropriate.

@amjads1
Can you please check and add your comments on this doc update request as applicable.

#reassign @MsGabsta

I am looking into this.

#please-close Thank you @MsGabsta


replace cilium/customvet by cilium/linters

The cilium/customvet repository is now archived and replaced by cilium/linters.

go->precheck->customvet ran successfully. Ready-to-merge.

@rolinh I'm marking this as backport/author - pulling the new linters package bumps some other dependencies on the v1.13 branch, e.g.
        go.uber.org/goleak v1.2.0
        go.uber.org/multierr v1.8.0
        go.universe.tf/metallb v0.11.0
-       golang.org/x/crypto v0.3.0
+       golang.org/x/crypto v0.11.0
        golang.org/x/exp v0.0.0-20221106115401-f9659909a136
-       golang.org/x/net v0.10.0
-       golang.org/x/sync v0.1.0
-       golang.org/x/sys v0.8.0
-       golang.org/x/term v0.8.0
+       golang.org/x/net v0.12.0
+       golang.org/x/sync v0.3.0
+       golang.org/x/sys v0.10.0
+       golang.org/x/term v0.10.0
        golang.org/x/time v0.2.0
-       golang.org/x/tools v0.6.0
+       golang.org/x/tools v0.11.0

I'm not sure that's intended.
If you don't think this should be backported, then feel free to remove the labels.

Discussed offline with @gandro, although the original repository is archived, it only contains static analysis tools hence nothing critical from a runtime or security perspective. Therefore, let's not backport the change to the stable branches as it could cause more harm than not.


OnSwipe event

I will like to transition into another screen with react-navigation-transition when a user swipe-left on the last slide.
I couldn't achieve this with the onSlideChange, onDone and onSkip events, unfortunately.
Can we have an onSwipe event?

Why doesn't it work if you listen to  onSlideChange and check when a user swipes to the last screen?

Hi- just want to touch on this.
I'm using this for an Android project and the onSlideChange method only seems to work when swiping to the last slide.
To be clearer, I am loading 3 Lottie animations (3 slides)
It seems as if each slide is preloaded (this is is fine)

Slide 1: First animation plays
Slide 2: Animation is static (this is because it already played when it was not it view), but I have a .reset() and .play() method I am calling onSlideChange, but nothing happens.
Slide 3 (last slide): Animation plays as the .reset() and .play() methods are called in the onSlideChange function.

Why doesn't it work for slide 2?
Many Thanks in advance :)

@ymcewen that's hard to say. onSlideChange should be called everytime the user moves between pages. Could you share a minimum reproducible repo?

Closing this for now. Let me know if you still experience the issue!


Support steady state runs

See https://github.com/Deltares/Ribasim/issues/40#issuecomment-1476005613 and below.

This can be interesting for simplified usage with large timesteps where changes in storage don't matter, except for large reservoirs.

I'm thinking about a configuration option like this:
[solver]
steady_state = true     # optional, default false

When starttime == endtime this would just do a steady state run. When starttime > endtime it will calculate the steady state using Basin / state as u0, and then use the steady state as u0 for the transient simulation. If it is very robust to initial guesses perhaps we can even make Basin / state optional, but for now I would just use it.
There is some documentation here:
https://docs.sciml.ai/DiffEqDocs/stable/solvers/steady_state_solve/
https://docs.sciml.ai/DiffEqDocs/stable/types/steady_state_types/
https://docs.sciml.ai/NonlinearSolve/stable/

Yeah steady_state="first" or steady_state="all". Is probably better. This issue should only implement first, but at least then we have an obvious way of specifying repeated steady states. In that scenario dt would probably be required, such that we know the times at which to solve the steady states.

A steady state might not always exist

This is correct: if you specify an inflow but no outflows, there is no steady-state. But this is almost certainly the sign of a wrongly schematized model. The transient case will run, but will produce bad results. Having steady-states blow up is actually a way of detecting such faults!

For certain models there might only be a steady state when certain basins are empty, which might not be a desirable steady state.

Empty is fine.
The "absoluteness" of steady-states is exactly what makes them an excellent tool to understand your model setup.

This code looks for a steady state (positive storage enforced):
model = Ribasim.Model(toml_path)
function steady_initial_state!(du, u, p, _)
    Ribasim.water_balance!(du, u, p, 0.0)
    du .^= 2
    du.storage += max.(-du.storage, 0) .^ 2
end

prob = NonlinearProblem{true}(steady_initial_state!, model.integrator.u, model.integrator.p)
sol = solve(prob, NewtonRaphson(linesearch=HagerZhang()))
display(sol)
du = zero(model.integrator.u)
Ribasim.water_balance!(du, sol.u, model.integrator.p, 0.0)
du

It doesn't converge with default tolerances but maybe it is good enough for our purposes. What are sensible tolerances?

The solver algorithms for finding the steady state feel too much like a black box to me, especially for large models. Therefore I tried to come up with easy to understand necessary conditions for the existence of a steady state we can check before trying to compute it. This can also give nice feedback to the modeler.
Idea 1: test steady state feasibility
We talked about 'checking whether the water can leave the model', and in that direction I came up with the following idea: we can set up a JuMP problem for the flow through whole model with 'feasibility' objective, with:

An equality constraint per basin for inflow = outflow, taking into account forcings and flow boundaries;
Allowing unlimited outflow into terminals and level boundaries

Of course this has its own subtle problems and takes some time to implement, let me know what you think.
Idea 2: constrained root finding
Finding the steady state with a root-finding algorithm on the RHS has its own problems: getting stuck in local minima, converging to infeasible solutions etc. To give this method the best chance of success, we can enforce certain properties of the solution. For instance enforcing non-negative storages is easy to do (see latest commit in PR). Let me know what properties of the solution you think we can enforce based on the model schematization.
Idea 3: custom breakoff conditions
Steady states can also be computed by fixing the transient parameters and letting the model converge to a steady state by simulating. This is (mostly) what SteadyStateDiffEq.DynamicSS does under the hood, with a dedicated callback for checking convergence. We could do something similar, but make our own callbacks which test (somehow) whether it's likely/unlikely whether convergence to a steady state is actually happening/going to happen.

Idea 2 sounds the best to me. Besides non-negative storages, I cannot think of other constraints right now. Is that one not enough? Either S goes to 0 or Inf. And Inf means there is no steady state. But probably I'm just not aware of the subtleties. What do the local minima and infeasible solutions look like? Have you see local minima with Inf storage, where you know there is an actual steady state?

I have the feeling the scope is getting widened? We just want a steady-state. If the model is poorly schematized such that a steady-state cannot be found, it will not converge. Stating that in clear terms such that anyone will understand is a separate issue.
Idea 1 seems rather complicated, and requires building a kind of "shadow model".

Finding the steady state with a root-finding algorithm on the RHS has its own problems: getting stuck in local minima, converging to infeasible solutions etc.

This is a general problem that applies both to steady and transient runs, right? Not just for steady-state.

The solver algorithms for finding the steady state feel too much like a black box to me, especially for large models.

Why? If we're simplifying to just ImplicitEuler, the concept in principle is straightforward (find u such du/dt = 0, which is just rootfinding like Newton-Rhapson does). Mathematically the problem is harder to solve than transient flow though, which is why you might need tricks like "pseudo-transient-continuation" (PTC) where you add a little bit of storage change to get to your next iteration.

I haven't done many very specific experiments, but:

I don't trust the root finding approach to always find the steady state if it exists
The simulation approach is most of a black box, because that function internally creates an ODE problem and solves it (with a special callback for detecting convergence) without any feedback.

You say that a steady state should exist if water can sufficiently leave the model, and I tend to agree because oscillations preventing convergence would require higher order derivatives to be present in the ODE (I think). PID control can mess that up but for that we can fix the integral value to 0.
Maybe it's best if we have a more relaxed convergence criterion in the simulation case: don't look for du = 0, just look for the sum of the storages converging (I.e. the sum of du.storage converging to 0).

I just discussed this with @SouthEndMusic:
What wasn't clear to me, but was clarified:

DynamicSS is just a sequence of timesteps until du/dt approaches 0. This works across solvers; with an explicit method you just keep advancing.
Rootfinder solves a different problem and will solve for du/dt = 0.

What I hadn't considered properly yet is the interaction with various callbacks. There's no need to update the boundary condition values during the initial steady-state, but in my thinking DiscreteControl should be involved somehow. Bart mentioned that initially DiscreteControl is evaluated initially, but not changed. I don't think this is the desired behavior:

Let's assume we have some stage-controlled area like a polder
If in the initial condition the polder is dry, the pump Q = 0.
If water is draining from another area, this means that there's no steady-state possible as the water can only accumulate.
Alternatively, if the initial condition is wet, the pump Q = capacity.
This will result in a steady-state with near dry conditions, as the reduction factor balances inflow with outflow.

To note: I think we (as hydrologists) generally consider that there's a steady-state available given a physical (!) system with boundary conditions. This generally results in a single steady-state, but I would not be surprised if complex control measures can to lead to non-unique/equifinal steady-states. This makes things more difficult conceptually, since path dependence either via initial condition or through different solver setttings may result in a different steady-state.
Conclusion 1: discrete control will almost always(?) be unsuitable for steady-state computation. The essential idea with discrete control is that e.g. a pump switches on or off; and through doing so, it ends up varying around some set point level.
In the hydrological context, we could call that setpoint the steady-state level (something reflecting an equilibrium) but it requires a pump that is on 30%-off 70%, which cannot be reflected in a DiscreteControl way.
Conclusion 2: Taking 1 into account, a "hydrological steady-state" is dependent on control measures. This means that unlike for a transient simulation, to solve it properly in a Newton-Rhapson manner we should incorporate control terms in the Jacobian. This does not seem attractive to me. A "pseudo-transient" approach (like DynamicSS) seems much easier to me; the control callback would be called at every pseudo-timestep.
In terms of solutions:

We have to accept that there are multiple steady-state solutions possible for a given model. I don't think this is what hydrologists are used to seeing: they mostly deal with natural/physical systems rather than control systems. So it probably requires good documentation, ideally even an example where two different initial states result in two separate solutions.
I don't have good ideas for DiscreteControl. The only thing I can come up with is to make DiscreteControl continuous for steady-state. On/Off can be turned into a piecewise linear relation, but it's not trivial deciding on a slope. For a pump, you could argue that Qcapacity = volume at set point, and Q0 = volume when empty, but likely not every control measure has straightforward or intuitive points like that to choose.


[Feature] Support any shape of Llava (from llava 1.6)

  File "/home/username/.local/lib/python3.11/site-packages/mmengine/runner/loops.py", line 270, in run
    self.runner.call_hook('before_train')
  File "/home/username/.local/lib/python3.11/site-packages/mmengine/runner/_flexible_runner.py", line 1271, in call_hook
    getattr(hook, fn_name)(self, **kwargs)
  File "/home/username/xtuner/xtuner/engine/hooks/evaluate_chat_hook.py", line 216, in before_train
    self._generate_samples(runner, max_new_tokens=50)
  File "/home/username/xtuner/xtuner/engine/hooks/evaluate_chat_hook.py", line 202, in _generate_samples
    self._eval_images(runner, model, device, max_new_tokens,
  File "/home/username/xtuner/xtuner/engine/hooks/anyshape_evaluate_chat_hook.py", line 53, in _eval_images
    image_features = model.preprocess_for_pixel_values({
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/xtuner/xtuner/model/anyshape_llava.py", line 109, in preprocess_for_pixel_values
    self.image_newline[:, None, None].expand(
RuntimeError: The expanded size of the tensor (8192) must match the existing size (0) at non-singleton dimension 0.  Target sizes: [8192, 32, 1].  Tensor sizes: [0, 1, 1]

Not working with zero3: https://github.com/InternLM/xtuner/issues/432#issuecomment-2002443611

Not working with zero3: #432 (comment)

qlora does not currently support zero3.

Not working with zero3: #432 (comment)

qlora does not currently support zero3.

It is not the issue with 4bit. I used full and no lora, however the 'newline' is somehow not compatible with Zero3.

该提交：支持基于llava 34b 的lora微调吗？

@hhaAndroid  什么时候支持： 加载https://huggingface.co/liuhaotian/llava-v1.6-34b 这个权重，进行微调呢？ @hhaAndroid

@hhaAndroid @tpoisonooo 这个PR啥时候合并呢？我急需

@hhaAndroid  this pr can support llama3 8B ?


Update Go to 1.23.4, /x/net to v0.33.0, and /x/crypto to v0.31.0

What this PR does / why we need it:

Update Go to 1.23.4
Update golang.org/x/crypto to v0.31.0 to pick up CVE fixes
Update golang.org/x/net to v0.33.0 to pick up CVE fixes

I disabled gosec G115 linter error because it has a lot of false positives that are not relevant to us, but that take significant amount of code to fix (and potentially an external dependency). See https://github.com/securego/gosec/issues/1212 for more details
What type of PR is this?
/kind chore
Does this PR introduce a user-facing change? Then add your Release Note here:
KubeOne is now built with Go 1.23.4

Documentation:
NONE

/assign @kron4eg

/test pull-kubeone-e2e-aws-default-install-containerd-external-v1.29

/cherrypick release/v1.9

/test pull-kubeone-e2e-aws-default-install-containerd-external-v1.29

/approve
/lgtm

/retest


added methods to set/get a database's _security doc

Description

added two method to database to allow to retrieve and update a database's security doc.
Motivation and Context

I need to programmatically add a user to a database.
How Has This Been Tested?

I tested this on Mac OS X with CouchDB 2.0 installed locally.
Checklist:

[x] I have submitted a CLA form
[ ] If applicable, I have updated the documentation accordingly.
[ ] If applicable, I have added tests to cover my changes.

Thank you for PR to help improve Kitura-CouchDB.
Can you add a pair of tests for those two new functions you wrote? Don't worry if the Travis CI test fails for you, it is normal for people outside the core Kitura group.

I can do this. It will take some time as I'm traveling the next weeks though.
Greetings
Dominik
Sent from my iPad

On 2 Jan 2017, at 18:50, Shmuel Kallner<EMAIL_ADDRESS>wrote:
Thank you for PR to help improve Kitura-CouchDB.
Can you add a pair of tests for those two new functions you wrote? Don't worry if the Travis CI test fails for you, it is normal for people outside the core Kitura group.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@nikwest Have you had a chance to write the tests for the functions you've added to Kitura-CouchDB?


Switch to Brotli causing issue.

Describe the bug
I know this is outside the confines of the package, hoping you can help though. I had the app working with gzip compression and now we're trying to move to brotli. However I'm getting this error:

Here's our unityContent file:

And the build files:

And finally our server res to add br:

Details (please complete the following information):

React Unity WebGL Version: "react-unity-webgl": "^7.1.10",
Unity Version: 2019.2
Device and OS: MacOS 12
Browser: Chrome/Firefox
NodeJS Version: 15.7.0
Bundler: Webpack

We were able to solve this issue. For posterity, we fixed this by upgrading react-unity-weggl to V8, and upgrading Unity to V20.
Thanks again for your package, it's very well maintained! :D

What is Unity V20? 2020?


Sync pyproject.toml settings with Nautobot core

Example -- nautobot core ruff settings:
[tool.ruff.lint]
select = [
    "DJ",  # flake8-django
    "E",  # pycodestyle
    "F",  # pyflakes
    "I",  # isort
    "PIE",  # flake8-pie
    "RUF",  # ruff itself
    "S",  # flake8-bandit
    "W",  # pycodestyle
]
ignore = [
    "E501",  # pycodestyle: line-too-long
    "PIE808",  # unnecessary-range-start
    "RUF012",  # mutable-class-default - see https://github.com/astral-sh/ruff/issues/5243
]

[tool.ruff.lint.isort]
combine-as-imports = true
force-sort-within-sections = true
known-local-folder = ["example_app"]
order-by-type = false

Cookie ruff settings:
[tool.ruff.lint]
select = [
    "D",  # pydocstyle
    "F", "E", "W",  # flake8
    "PL",  # pylint
    "S",  # bandit
    "I",  # isort
]
ignore = [
    # warning: `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible.
    "D203",  # 1 blank line required before class docstring

    # D212 is enabled by default in google convention, and complains if we have a docstring like:
    # """
    # My docstring is on the line after the opening quotes instead of on the same line as them.
    # """
    # We've discussed and concluded that we consider this to be a valid style choice.
    "D212",  # Multi-line docstring summary should start at the first line
    "D213",  # Multi-line docstring summary should start at the second line

    # Produces a lot of issues in the current codebase.
    "D401",  # First line of docstring should be in imperative mood
    "D407",  # Missing dashed underline after section
    "D416",  # Section name ends in colon
    "E501",  # Line too long
]

[tool.ruff.lint.pydocstyle]
convention = "google"

[tool.ruff.lint.per-file-ignores]
"{{ cookiecutter.app_name }}/migrations/*" = [
    "D",
]
"{{ cookiecutter.app_name }}/tests/*" = [
    "D",
    "S"
]

Perhaps the example_app ruff settings in core are also relevant - https://github.com/nautobot/nautobot/blob/develop/examples/example_app/pyproject.toml


K8s 1.7.0, dashboard 1.6.1, and kube-dns 1.14.4 artifacts

K8s 1.7.0, dashboard 1.6.1, and kube-dns 1.14.4 artifacts
[#148010959]
Signed-off-by: Tony Wong<EMAIL_ADDRESS>

https://github.com/cloudfoundry-incubator/kubo-release/issues/83


Update site configs for v20.2.0-alpha.3

Forgot to do the "edit config files" portion during the original PR to address #7976.

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/21e5085938388d52ccddd998f0d01fe8611da8af/

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/346671d3021268134f03693f74aae7c577daaaeb/
Edited pages:

releases/v20.2.0-alpha.3.md


Support "multipart/form-data" on the server

For now we only support "application/json" and "application/x-www-form-urlencoded", but it would be nice to support "multipart/form-data" as well to be able to send GraphQL query along with files.

I pushed this change to my old PR, here is the code if you want to merge it alone
src/Server/Helper.php on line 72
            } else if (stripos($contentType, 'multipart/form-data') !== false) {
                $bodyParams = $_POST;

Thanks, we also need some tests for it

Dupe of #178 (#220 is also related)


add scipy.special.factorial and scipy.special.comb

I found a need for comb in a Threefry PRNG change that I'm working on...

Hi, how is this PR moving along? Is there something I can do to help? I came here as I was looking for a way to make double_factorial work with JIT/VMAP. Is it possible to do so with something similar by approximating in the following way using a Stirling approximation for the factorial?
(2n-1)!! = (2n)!/((2^n)n!)


WIP: feat(sfn-&-client): add pipe handler for sequential processing

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Junzhuo Wu seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


New logging system (addresses #5874)

Here's my first stab at a better Logger class for the standard library as discussed in #5874. Control goes from Logger -> Handler -> Adapter, where Logger stores a class name and provides user-friendly methods, Handler filters by severity, and Adapter formats the message to an IO.
One detail I wasn't sure whether to address - how much do we care about backwards compatibility? As-is this breaks 100% of programs using Logger, but I can add a slightly ugly constructor that will preserve some of the simpler use cases.

@straight-shoota, thanks for the feedback.
Right now the extremely simple use case is easier than on master; you just do logger = Logger.new; logger.info "Hello". But if you want to write to an IO other than STDERR that's more complicated. I'll probably go back and add a constructor that takes an IO and builds a handler with an appropriate IOAdapter automatically.

In the current implementation, if you do Logger.new("foo") twice, you will get two separate Logger objects. Since the objects are immutable this is an implementation detail, and we could replace new with a method that does a hash lookup and returns an existing Logger if possible, but should we? Why bother?
My assumption for getting rid of Formatter was that if you weren't using an IOAdapter you're probably doing something that requires formatting specific to your logging system anyway so it might as well be baked into the Adapter class. But I'll go ahead and revert this anyway; there are probably use cases here I'm not seeing.
I started to implement Logger::Record but then didn't bother because it only simplifies two methods (Adapter#write and Adapter#format) at the cost of adding code to two other methods (both forms of Handler#log). You can't build the Record earlier than Handler#log. I'll take a look and see how Java handles this - I do want to be able to add more context to a log record without it bloating all the method signatures.

Ad 1) I didn't mean fetching a cached object. Logger.get should still initialize a new Logger instance (could probably even be a struct). I just propose to rename the constructor to .get to make clear it is not actually creating an independent logging setup. It's really just a minor detail about naming the API method.
Ad 2) There are probable use cases where you want to format a log record but not write it to an IO (send formatted log records as UDP messages). It would certainly be possible to use an IO wrapper for such an Adapter, but that's just bloating things up and defeats the purpose.
Ad 3) A record also simplifies usage in an adapter/formatter handlers. And it should also have serialization (JSON/YAML mapping).

I really think we should have a longer think and finalise design in #5874 before we put too much effort into this PR

@RX14 Agreed, I just wanted to put something down on paper (figuratively) for the purposes of discussion. I don't mind redoing things if this turns out not to be what we want.

Closing in favor of https://github.com/crystal-lang/crystal/pull/6901


Duplicate data from an existing Item to a new WorskpaceItem, aka clone/copy item

References

Fixes DSpace/dspace-angular#1757
Angular PR DSpace/DSpace-angular#3076

Description
This PR introduces the ability to create a new WorkspaceItem by reusing properties from an existing Item, kind of like how versioning works now, but resulting in a partially completed edit form of a new Item. Some existing code from the versioning infrastructure was adapted and integrated as two new methods, copy and clone, within the ItemService, and tweaked, just to make things work more smoothly.
Here's a preview:
https://github.com/DSpace/dspace-angular/assets/17811486/ad5f70b1-f14f-49d2-884c-63fb906fd642
Instructions for Reviewers
On the REST side:
Example request (endpoint, header, body):
POST /api/submission/workspaceitems?owningCollection=:collectionUuid
Content-Type: text/uri-list

http://localhost:8080/server/api/core/items/:itemUuid

Response should show a new WorkspaceItem with some of the metadata copied from the specified :itemUuid. Although some of the metadata will be omitted to prevent duplicates or multiple values in places they shouldn't occur – see nonCopyableMetadataFields in core-services.xml.
On the Angular side:

Login as admin and either deposit a new item or locate an existing one.
Navigate to the item management page (edit -> status).
Between move and delete, a new button should be visible for cloning the item. Click it, select any collection, then click save.
The browser should redirect the user to the edit form, similar to what happens after creating a new item. However, most of the metadata should be copied from the previous item.

Checklist

[X] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & integration tests). Exceptions may be made if previously agreed upon.
[X] My PR passes Checkstyle validation based on the Code Style Guide.
[X] My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
[ ] My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.
[X] If my PR includes new libraries/dependencies (in any pom.xml), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
[ ] If my PR modifies REST API endpoints, I've opened a separate REST Contract PR related to this change.
[X] If my PR includes new configurations, I've provided basic technical documentation in the PR itself.
[X] If my PR fixes an issue ticket, I've linked them together.

Hello @kshepherd, thanks for the feedback. I'm glad to read the feature is working well overall.
Since I've got your attention, do you agree with the direction I've taken regarding the REST operation or do you have any thoughts on a different approach? I'm still toing and froing whether the clone operation:

should be handled as it is in my PR (vide: ExternalSourceEntryItemUriListHandler)?
the distinction between ItemService#clone (to create a new Item) and ItemService#copy (void; to copy data from one Item to another) – isn't a bit confusing?

I'll have a look into the ITs and mention you again after checking what's happening inside a VersionProvider#updateItemState.

@MMilosz regarding the approach / code:
I think clone is an OK service method name, and copy or deepCopy make sense to me, especially when viewed with their return types, it is clear that copy wants an existing object as a target (returning void) while clone is going to return a new Item.
I think the changes / use of ExternalSourceEntry* endpoints can cause a bit of confusion, though it's not your fault that ExternalSourceEntryItemUriListHandler<T> is the base handler for anything of type workpace item... perhaps we could abstract this, or even just rename the classes to something more generic like WorkspaceItemUriListHandler<T>, and make it more clear in javadoc, comments and the structure of the logic there, that the URI lists can contain hrefs to external data object entries, or existing DSpace objects.
(In general though, I support the idea of using the existing 'createAndReturn with uri-list' paradigm since it is how we do things for similar cases, and existing items in dspace which we want to use as the source, are addressable objects with URIs...)
With changes to core behaviour like how the versioning provider operates, we just have to make sure we really nail down what it means to "copy" an item, how we test that, and how we ensure things continue to work as before.
A new equality operator for Item, to go along with the copy() and clone() methods might be useful for more thorough tests - eg. isCloneOf() or something.

@MMilosz if the current IT failures seem spurious, try rebasing against main and force pushing your branch again, just in case it is not related to your changes.
When there are new commits/changes ready for a re-review or feedback please let me know, and a brief explanation of the latest changes would help


Customer feedback feature

This is the front-end code for the customer feedback workflow.

resolved with 33c64aaf78d89612bb0d1c443c2a40659a17a81d


lesspipe: 2.11 -> 2.14

Description of changes
Updates lesspipe to v2.14. Among other things, this introduces the ability to use nvimpager for colorization et al on Neovim.
Changelog: https://github.com/wofr06/lesspipe/blob/v2.14/ChangeLog
Note that xmq, csvtable, and snap were added to the resholve exemptions (for lesspipe.sh only) so that the build succeeded. I'm assuming these are safe to ignore as optional dependencies.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 339954 run on x86_64-linux 1

1 package built:

lesspipe

I've done some basic testing of this by browsing some source files, archive files, and manpages after setting this package as my pager manually. Everything seems to work, I get colors when I didn't before based on my comment at https://github.com/NixOS/nixpkgs/issues/319128#issuecomment-2212539641.
Note that this doesn't address the comments coming up there or the work that @shaver is looking into, as I had to disable the system-wide config, add the nvimpager package to my package set in home-manager, and set LESSOPEN manually.

There's also this, though it's waiting for review and it looks like yours doesn't need it: https://github.com/NixOS/nixpkgs/pull/335194

Oh, oops! :man_facepalming: My bad, if we want to close this one in favor of the other one I'm fine with that - either way!

@martijnvermaat this and/or #335194 have been sitting for a few months (was hoping this would have been looked at before 24.11, but looks like that didn't happen. Can you review one of them so that those of us with the related issues can close off any local forks?
Thanks!

@SuperSandro2000 saw your commits here. Does this mean we'll see this merged soon? 😉

@SuperSandro2000 thanks for the merge here!


Refactor to remove necessity to call cleargrad

The idiom in higher-order derivative
gx = x.grad
x.cleargrad()
gx.backward()
ggx = x.grad

is counter intuitive because x.cleargrad() nullifies x.grad while actual computation is on the original x.grad. Furthermore, computation is also accumulated on x.grad again if we require a gradient w.r.t. x.
I have modified the backward method in Variable to remove the necessity to call cleargrad() before higher-order derivative calculation by memoizing all seen variables, with memory overhead ~ memoizing all seen functions.

It seems a good idea.
Although It's hard to incorporate this fix because I want to respect the current book version of the code.
But I would like to consider it in a future version. Thanks!

Thank you.


Add integration with Rollbar error tracking service

Link

https://github.com/msa7/crystal-rollbar
Checklist

[x] - Shard is at least 30 days old.
[ ] - Shard has CI implemented.
[ ] - Shard has daily/weekly periodic builds (ideally with Crystal latest and nightly).

@msa7 sorry for the delay in review. There is a lack of testing, which blocks merging this PR.


May have to update fake data if we adjust the model relationships down the line.


Table not displaying correctly using Parsedown 1.7.4 or 1.8.0-beta-7

I have the following table in a .MD file:
| Letter | Status | Details | | :----: | ------ | ------- | | N | Not Validated | The item is in the **Not Validated** tab in the Claims module, awaiting validation by the user. | | V | Validated | The item is in the **Validated** tab in the Claims module, awaiting verification checks by the system. | | E | Exceptions | The item is in the **Claim Exceptions** tab in the Claims module, awaiting editing/fixing by the user. | | C | Ready To Claim | The item is in the **Send Claim** tab in the Claims module, awaiting transmission to the PCRS. | | P | Paid | The item has been sent to the PCRS and has not yet received an Exception response. As such, we assume it will be paid for unless the system is told otherwise. | | D | Deleted | The item has been deleted from the **Claims Exceptions** tab as it was rejected by the PCRS and then deleted manually by the user, presumably because they opted not to pursue a further reclaim for the item. |
When testing this table on the website, it parses correctly:

However, when using Parsedown 1.7.4 or Parsedown 1.8.0-beta-7, neither of them display the table correctly:

I am running PHP v5.6 on an IIS Server. Is this a bug or a configuration issue or a PHP version issue perhaps?
This is the code being used to display the Markdown:
$handle = fopen($path, 'r'); if ($handle) { while (($line = fgets($handle)) !== false) { // process the line read. echo $Parsedown->text($line); } fclose($handle); } else { // error opening the file. echo "Error"; }

Have you forgotten to create a new object?
$Parsedown = new Parsedown();

Have you forgotten to create a new object?
$Parsedown = new Parsedown();

Hi jockel09, thanks for the reply. No, that is done higher up, I just didn't include that line of code.

Hi, it looks like the issue is that the table you're wanting to display is an object that spans multiple lines, however you're asking Parsedown to parse the lines individually. To get the result you'd expect, you'd need to read the file into a single string, and then pass that string to Parsedown all in one go.

Hi, it looks like the issue is that the table you're wanting to display is an object that spans multiple lines, however you're asking Parsedown to parse the lines individually. To get the result you'd expect, you'd need to read the file into a single string, and then pass that string to Parsedown all in one go.

Hi Aidan, ok that makes so much sense. Stupid question, apologies, am I reading the contents of the file into a string in PHP and then passing that string to the same $Parsedown->text() function or is there a separate function?


Added routes for Books & Reviews

Added routes to add books.
Added routes to add reviews.
Used record links instead of graph edges.

Didn't add the route to edit reviews.


⚠ Bofrost.com has degraded performance

In dbf8589, Bofrost.com (https://www.bofrost.com) experienced degraded performance:

HTTP code: 200
Response time: 904 ms

Resolved: Bofrost.com performance has improved in 8d864e6.


mermaid 10 is incompatible

the documentation says you can use the latest version.
https://github.com/fralau/mkdocs-mermaid2-plugin#explicit-declaration-of-the-mermaid-library  "For the latest version:"
this is no longer true. 10.0.0 introduces a breaking change, and the min.js file is no longer available (ESM only).
unfortunately unpkg recognizes the new version, and redirects to it. but the file itself is missing.
https://unpkg.com/mermaid/dist/mermaid.min.js -> 302 to 10.0.0
<EMAIL_ADDRESS>-> 404
maybe it would be worthwhile to remove this from the doc, or even add an explicit warning not to omit the version.

Hi @fralau
To elaborate here –
From v10 mermaid no longer distributes a js file that exposes mermaid to the window. They instead distrubte an esm module that must be loaded differently on the frontend. See discussion here https://github.com/mermaid-js/mermaid/issues/3590
For those of us using latest as referenced in the readme the release of mermaid 10 breaks the plugin because there is no longer a mermaid.min.js available to load.
I'm not a frontend / javascript person so forgive any errors here!
With the move to ESM only mermaid is now distributed as an esm module see here
Instead of being able to include mermaid through <script src="..."> one now has to explicitly import mermaid through use of
<script type="module">
import mermaid from "[http...](https://unpkg.com/mermaid@10.0.2/dist/mermaid.esm.min.mjs)"
mermaid.initialize()
</script>

I have made some changes to the plugin to support loading mermaid via a module if the requested version is >= 10. This will unfortunately break including mermaid via extra_javascript but that doesn't seem addressable without changes to mkdoc itself.
See https://github.com/laterpay/mkdocs-mermaid2-plugin/tree/esm_support / https://github.com/fralau/mkdocs-mermaid2-plugin/pull/72

Thanks for the great explanation! It seems indeed something important for the future of mkdocs-mermaid2, since it appears that the extra_javascript feature of mkdocs will no longer work.

@fralau have you had a chance to look at this PR https://github.com/fralau/mkdocs-mermaid2-plugin/pull/72

I reopened #72 , let's see what we do about it.

New version of mkdocs-mermaid2 (1.1.0-alpha) shoud solve it.
Could you please test it for yourself?

for anyone else still using the old version, you can use the .min.js file from jsdelivr:
extra_javascript:
    -<EMAIL_ADDRESS>


Fix issue 1027

This PR fixes issue #1027, where inherited subclass methods couldn't have before/after functionality applied. As it turns out, the functionality was already built in, but only for set methods, not get. This PR extends functionality so it works on both getters and setters.

Please add a test


:hammer: Refactor fast track

Simplify fast-track. This is needed for easier implementation of Origins.

allow only one source / origin
remove YAMLMeta class and replace it by Dataset to avoid duplication

TODO

[ ] test loading from CSV
[ ] test loading from S3 path
[ ] add origins
[ ] make sure as much metadata as possible is saved in Origin YAML
[ ] modify fasttrack template to allow only one source / origin

Are any of the unchecked tasks on Issues open for collaboration?
Just came across this repo from ourworldindata.org.

Hey @MutugiD. Unfortunately, these tasks need a lot of context, but thanks for your interest!

Quick note: I just swapped the values of producer and citation_producer in the template.